newmedia en NEWMEDIA: A Year in Review <span>NEWMEDIA: A Year in Review</span> <div class="field--field-featured-image field--type-image"> <img alt="image of calendar" src="/sites/default/files/2017-01/foko4dpxamq-eric-rothermel.jpg" width="3872" height="2592" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/steve-morris" lang="" about="/user/steve-morris" typeof="schema:Person" property="schema:name" datatype="">Steve Morris</a></span> <span>Fri, 01/06/2017 - 15:36</span> <div class="field--field-intro field--type-string-long"> 2016 was a year of many milestones and accomplishments for NEWMEDIA and our sister brands, DRUD, RiotLabs and 1FEE. </div> <div class="field--body field--type-text-with-summary"> <p>NEWMEDIA proudly celebrated its 20-year anniversary and continues to expand and strengthen its position as a top-tier interactive agency. We work with companies across the country and around the globe (34 U.S. states and 5 continents), to solve complex technical problems, create award-winning designs, and provide premium full-service solutions that drive measurable ROI for our clients.</p> <p> </p> <p>Our in-house start-up brands, RiotLabs and 1FEE, have been aggressively growing in pursuit of the lofty goal of being the premier, full-service digital agency partner for the $24 Billion U.S. SMB market, by offering a robust and cost-effective alternative to cheap self-serve tools such as Wix or Squarespace. Leveraging best practices from NEWMEDIA's history and vast experience, RiotLabs and 1FEE’s consistently high-quality affordable solutions helped bring on 300+ new clients in 2016, a number that is expected to triple in 2017.</p> <p> </p> <p>Last but by no means least, we come to our flagship software (SaaS) solution, DRUD. After two solid years of core development, 2016 was truly a pivotal year for DRUD. We continued to build on its foundation and prepare for the release of the suite of products for DevOps in 2017. The suite of products includes tools for local development, security and password management, continuous integration, and hosting and infrastructure management, with the first slated for Q2/Q3.</p> <blockquote> <p> </p> <p>“It’s been a tremendous year. After year-over-year double-digit growth for the past several years, being recognized by the Inc. 5000 as the #111 fastest-growing software company in the US based on our 2015 numbers was an amazing acknowledgement all by itself. But then, revenues more than doubled again in 2016! We outgrew our old location and moved behind Union Station, tripling our office space in the process, hired dozens of new people, received multiple awards and accolades, and had a successful year with our start-ups,” said Steve Morris, CEO. “This continued trajectory serves to reinforce the radical concept that our unique position, of being an established, proven agency that is also willing to take risks and innovate like a startup, is not only possible, but can be a powerful, winning combination, both for ourselves and our clients. We are excited about what is to come in 2017.”</p> </blockquote> <p> </p> <p><strong>Here's an infographic to highlight the year in numbers:</strong></p> <p> </p> <img alt="2016 year in number infographic" data-entity-type="file" data-entity-uuid="c5fd9b38-3e53-4389-83a9-7c3eae6c5e75" src="/sites/default/files/inline-images/year_in_numbers_infographic-5.jpg" class="align-center" /><p><a href="">Click here to download our agency info PDF - Why Work With NEWMEDIA?</a></p> </div> Fri, 06 Jan 2017 15:36:24 +0000 Steve Morris 238 at User Testing with Userlytics and the American Water Works Association <span>User Testing with Userlytics and the American Water Works Association </span> <div class="field--field-featured-image field--type-image"> <img alt="image of water pipes" src="/sites/default/files/2016-11/shutterstock_80472742.jpg" width="4896" height="3264" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/70" lang="" about="/user/70" typeof="schema:Person" property="schema:name" datatype="">lilyberman</a></span> <span>Fri, 11/18/2016 - 15:48</span> <div class="field--field-intro field--type-string-long"> The American Water Works Association (AWWA) approached newmedia with a specific goal in mind - make it easier for users to find content on their site. </div> <div class="field--body field--type-text-with-summary"> <p>As their annual conference was weeks away, newmedia quickly developed a prototype to test user navigation and information preferences. <a href="">Userlytics</a>, our user testing partner, made it easy for the newmedia team to quickly synthesize data and update the prototype. Without data, web designers work from assumptions. With data, the end user experience becomes relevant to design implementations.</p> <h2>The Challenge</h2> <p>The challenge- build a “leap forward” prototype robust enough for users to test at <a href="">AWWA</a>’s annual conference, just one month from the start of our partnership. The new prototype needed to be both modern in design and effective in structure. Obtaining feedback at the conference was imperative, as <a href="">AWWA</a>’s primary audience of water professionals/executives, operators, and engineers would all be gathered in one place. <a href="">AWWA</a> wanted to conduct testing with industry users, as each industry professional group utilizes the site differently to fulfill their own specific needs.</p> <h2>Our Process</h2> <p>Our process began with discovery. We met with the client to determine what elements of the site were most important to test and to better understand their users and the problems they experience on the current site. </p> <h2>What We Learned</h2> <p>Many users were struggling to find relevant content, because the current menu contained many menu items with equal weight. Users are not given direction on where to look.</p> <img alt="image of awwa's current menu" data-entity-type="file" data-entity-uuid="3e637c7e-2080-49f2-ac05-4924f1beef59" src="/sites/default/files/inline-images/Screen%20Shot%202016-11-11%20at%202.42.48%20PM.png" class="align-center" /><h2>Recommendation</h2> <p>We proposed a few updates to their navigation, including a simplified structure with a hamburger menu and a clean look for primary and secondary navigation items. Along with the structure, we created a moodboard to set the design intentions for the prototype and a questionnaire to present to users testing the prototype at the conference. Our deliverable at the end of discovery became a prototype, robust enough for users to test, which included our proposed solution for navigation.</p> <blockquote> <p>Our primary question for testing became, “Would a modern and simplified navigation make it easier for users to find content on the <a href="">AWWA</a> site?”</p> </blockquote> <p>Fortunately, we were able to partner with <a href="">Userlytics</a> to complete the testing. As they effortlessly managed the “how” of testing, we were able to focus on the “what”. Not only did <a href="">Userlytics</a> capture screencasts of users’ experiences on the site, they also delivered the questionnaire at the end of the test. <a href="">AWWA </a>and newmedia collaborated on developing the questionnaire with thoughtful and specific questions. We created three pages with tasks for users to find specific content on the site. We wanted to accurately measure success rates and users’ reactions to the new navigation and other changes on the site.</p> <p><a href="">Userlytics</a> made the process so easy! Their dashboard allowed us to track results and modify our questionnaire. As the conference arrived, newmedia relied on <a href="">AWWA</a> to observe and document users’ reactions as they tested the prototype. Meanwhile, we watched test results arrive in real time on our <a href="">Userlytics</a> dashboard. At the end of the first day, our internal team met to watch screencasts, evaluate data, and recommend changes for the second day of user testing. On the day between tests, we talked through our recommendations with the client to create a second iteration of the navigation.</p> <p>On the first day of testing, some users struggled to find the menu, not immediately recognizing the hamburger menu. We found that many people were not using the main navigation at all, as they simply could not find it. As frequent web users, we can take for granted that people know what a hamburger menu looks like. We added the word “menu” for Day 2 testing. We also added an orange color to the expansion points within the menu, noting orange as the color for interaction throughout the site. Both changes were effective, significantly decreasing the number of users struggling to complete their tasks and increasing positive comments about the new design. After the second day of testing, we compiled our final recommendations based on our expertise and takeaways from the user testing results.</p> <img alt="image of awwa prototype" data-entity-type="file" data-entity-uuid="04603e0e-9509-4808-a442-55d2d4f3fdde" src="/sites/default/files/inline-images/Screen%20Shot%202016-11-11%20at%202.46.05%20PM.png" class="align-center" /><p> </p> <img alt="image of awwa prototype" data-entity-type="file" data-entity-uuid="63cc6ece-c45a-4dd7-b230-bd66d81224e1" src="/sites/default/files/inline-images/Screen%20Shot%202016-11-11%20at%202.46.14%20PM.png" class="align-center" /><p> </p> <p>This project would not have been possible without the positive collaboration we had with our client. We cannot understand, test, and design for the end user without the client. Clients cannot lean into human centered design practices without us. <a href="">AWWA</a> and newmedia were both happy with the results from the conference. As a team, we proved the validity of a simplified navigation and modern cleaner looking <a href="">AWWA </a>website in real-time.</p> </div> Fri, 18 Nov 2016 15:48:15 +0000 lilyberman 227 at Using the Haversine Formula in Drupal 7 <span>Using the Haversine Formula in Drupal 7</span> <div class="field--field-featured-image field--type-image"> <img alt="image of globes" src="/sites/default/files/2016-11/photo-1439218162959-f94eda3a382a.jpeg" width="5184" height="3456" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/77" lang="" about="/user/77" typeof="schema:Person" property="schema:name" datatype="">John Fiala</a></span> <span>Fri, 11/11/2016 - 16:05</span> <div class="field--field-intro field--type-string-long"> The Haversine formula is one of the easiest to use pieces of complicated math I&#039;ve had the pleasure to use. If you&#039;re not familiar with it, it&#039;s pretty simple in theory - it&#039;s an extension of the Pythagorean formula from a grid to the surface of a sphere, which basically means that you can use it to measure the distance between two points on a sphere (1). </div> <div class="field--body field--type-text-with-summary"> <p>"But what," I hear you ask through the secret microphone hidden in your keyboard, "does this have to do with Drupal?"  And the answer is - search.  I've worked on a number of projects over the years where users wanted to search for things which were some distance from a central point - a zip code, a city, or the like.  This can be done with apache solr these days, but sometimes apache solr isn't what you need. Either you’re not doing a keyword search and just filtering your nodes (show me all mexican restaurants near 12th and Vine) or else you don't think you need the extra complexity of adding an Apache Solr instance to the project.  An index of restaurants isn't a bad idea for an example, so let’s build one.  In the tradition of Drupal demos, we'll say we're creating a restaurant search engine, which we will name 'Shout'.  So, we spin up a copy of Drupal 7, set up the usual database, add a 'Restaurant' node type, download <a href="">Fivestar</a>* to do ratings, set up a few quick taxonomies (cuisine, price range [low, medium, high], and maybe style [sit-down, food court, fast food]) which we add to the restaurant node type.</p> <h3>Step 1</h3> <p>Create a node type with location information.  To store the address there’s two good options: the <a href="">Location module</a>, which grew out of CCK, and the <a href="">Address Field module</a>, which comes from the Commerce module.</p> <h3>Step 2</h3> <p>Add the latitude and longitude to the nodes - if you’re using the location module you can enable storing those values in the same field, but if you’re starting with the address field you need to add a field which stores that information.  I recommend the <a href="">Geofield module</a>.</p> <h3>Step 3</h3> <p>Finally, you will need to set up geocoding - the process of assigning latitude and longitude based off of an address.  There’s plenty of services which will do this for you, and if you’re using the location module, then you can enable it there.  Alternately you can use the <a href="">Geocoder module</a> to store these values.</p> <h2>Example</h2> <p>Following along with our Shout example, let's add the addressfield, geofield, and geocoder modules, which will also in turn require the <a href="">geoPHP</a> and <a href="">ctools</a> modules.  Add the Address field and tell it to store a postal address, set up a geofield on the restaurant node as well and set the widget to 'geocode from another field', and take a look at the configuration of geocoder in admin/config/content/geocoder.  You can use the google api in batch for free, as long as you don't get too crazy with the number of requests per day.  This being an example site, I think we'll be safe, but when doing a commercial site it's always best to read the Google terms of service,sign up for an API key, and close cover before striking.</p> <p> </p> <img alt="image of haversine formula implementation" data-entity-type="file" data-entity-uuid="c9ba3fe7-c603-4477-888f-a2e1c187bbcb" src="/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.34.15%20PM.png" class="align-center" /><p> </p> <p>I've named the Address field field_address, and in a fit of originality I've named the geofield field_map_location.  Once I had everything set up, I entered a few local restaurants and ran cron to make sure that I was getting data in the field_data_field_map_location table - I suggest you do the same.  (Well, to be honest, at first I wasn't getting data, but that's why we test our examples when writing blog posts.)</p> <h3>Step 4</h3> <p>Once you've got locations set up, the next step is your search engine.  For this task I suggest the <a href="">Search API module</a>, which allows you to define your own indexes, and to switch search engines in the future as the need arrives.  You’ll also need the <a href="">Search API DB</a> and <a href="">Search API Pages modules</a>.</p> <h3>Step 5</h3> <p>We'll start by setting up a service - in this case, just gave it an obvious name and select the Database engine.</p> <p> </p> <img alt="image of haversine formula implementation" data-entity-type="file" data-entity-uuid="1d3986b9-ad76-4a82-ac74-a2d449aa1dfb" src="/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.45.45%20PM.png" class="align-center" /><h3> </h3> <h3>Step 6</h3> <p>Then we'll create an index - although Search API creates a Default node index when it's enabled, we want one just for restaurant nodes.  So we'll click on 'Add Index', give it a name of 'Restaurant Index', select that we want to index Restaurant Nodes, and put in a quick description to remind us of what it is, and select the server we just created.</p> <p> </p> <img alt="image of haversine formula implementation" data-entity-type="file" data-entity-uuid="dc559562-9159-40ee-9a3a-7248df90d508" src="/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.47.30%20PM.png" class="align-center" /><h3> </h3> <h3>Step 7</h3> <p>After that, go into index fields for the index and select at least the title and the 'main body text' for indexing - I suggest including the address as well.  It's also important to add the Location field that you're using, and include the latitude and longitude values in the index.  When you can't find a field, expand the 'Add Related Fields' at the bottom and look for them there, and make sure you save your changes before leaving the page.</p> <p> </p> <p><img alt="image of haversine formula implementation" data-entity-type="file" data-entity-uuid="d262176b-e04e-4d92-b1b7-f78e5594d5d7" src="/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.49.35%20PM.png" /></p> <img alt="image of haversine formula implementation" data-entity-type="file" data-entity-uuid="ea2fc4e5-57a3-496a-8970-632f3c1644fe" src="/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%203.55.10%20PM.png" class="align-center" /><p> </p> <p>Finally, on the filter tab I suggest excluding unpublished nodes, as well as Ignoring case and adding the HTML filter.</p> <p>With all that setup, use the search_api_pages module to set up a search page for the index you've constructed.</p> <p> </p> <img alt="image of haversine formula implementation" data-entity-type="file" data-entity-uuid="9ace7dc0-95d6-40d4-8cc8-7c56d76771de" src="/sites/default/files/inline-images/Screen%20Shot%202016-10-07%20at%204.02.23%20PM.png" class="align-center" /><p>With data and index set up, it's time to add the location filtering.  Let's add a quick block to filter with:</p> <pre class="language-php"> <code> /** * Implements hook_block_info(). */ function example_block_info() { return [ 'location' =&gt; [ 'info' =&gt; t('Search Location Filter'), 'cache' =&gt; DRUPAL_CACHE_GLOBAL, ], ]; } /** * Implements hook_block_view(). */ function example_block_view($delta) { if ($delta == 'location') { $block['subject'] = t('Filter by location:'); $block['content'] = drupal_get_form('example_location_filter_form'); } return $block; } /** * This form allows the user to restrict the search by where they are. */ function example_location_filter_form($form, &amp;$form_state) { $form['center'] = array( '#type' =&gt; 'textfield', '#title' =&gt; t('From'), '#description' =&gt; t('Enter a zip code or city, state (ie, "Denver, CO")'), '#maxlength' =&gt; 64, '#size' =&gt; 20, '#default_value' =&gt; isset($_GET['center']) ? $_GET['center'] : '', ); $distances = [5, 10, 20, 50]; foreach ($distances as $distance) { $options[$distance] = t('Within @num miles', array('@num' =&gt; $distance)); } $form['radius'] = [ '#type' =&gt; 'radios', '#title' =&gt; t('Distance:'), '#options' =&gt; $options, '#default_value' =&gt; isset($_GET['radius']) ? $_GET['radius'] : 5, ]; $form['submit'] = [ '#type' =&gt; 'submit', '#value' =&gt; t('Filter'), ]; $parameters = drupal_get_query_parameters(NULL, ['q', 'radius', 'center']); $form['clear'] = [ '#type' =&gt; 'markup', '#markup' =&gt; l(t('Clear'), current_path(), array('query' =&gt; $parameters)), ]; return $form; } /** * Validation handler for location filter. */ function example_location_filter_form_validate(&amp;$form, &amp;$form_state) { if (!empty($form_state['values']['center'])) { $location = trim($form_state['values']['center']); // Is this a postal code? $point = example_location_lookup($location); if (empty($point)) { form_set_error('center', t('%location is not a valid location - please enter either a postal code or a city, state (like "Denver, CO")', ['%location' =&gt; $location])); } } } /** * Form submit handler for location filter form. */ function example_location_filter_form_submit(&amp;$form, &amp;$form_state) { $parameters = drupal_get_query_parameters(NULL, ['q', 'radius', 'center']); if (!empty($form_state['values']['center'])) { $parameters['radius'] = $form_state['values']['radius']; $parameters['center'] = $form_state['values']['center']; } $form_state['redirect'] = [current_path(), ['query' =&gt; $parameters]]; }</code> </pre> <p>In this case, &lt;code&gt;example_location_lookup()&lt;/code&gt; looks for a latitude/longitude pair for a given location entered by the user, which I'm leaving as an exercise for the reader in hopes to keep this post short.  It should return an array with the keys 'lat' and 'long', at least.  For testing, you can have it return a fixed point until you've got that setup, like:</p> <pre class="language-php"> <code>function example_location_lookup($location) { return array('lat' =&gt; 39.7392, 'long' =&gt; -104.9903); }</code> </pre> <p>So, now we can return to the <a href="">Haversine formula</a>.  Once you've got the position entered and passed along, it's time to match it against our restaurants.  Doing complex math is hard, so after a few moments of thought, we realize that anything more than the radius miles north or south, or east and west, of the center point will be too far away to bother including in the search radius, so we'll first filter on a range of latitude and longitude around the center, and then filter by the haversine formula to knock out everything outside of the circle.  For implementing the Haversine formula in SQL, I'm indebted to Ollie Jones of Plum Island Media, who does a great job of <a href="">demystifying the formula here</a>.</p> <pre class="language-php"> <code>/** * Implements hook_search_api_db_query_alter(). */ function example_search_api_db_query_alter(SelectQueryInterface &amp;$db_query, SearchApiQueryInterface $query) { $field_name = variable_get('example_location_field_name', 'field_location'); // Do we have a location? if (isset($_GET['center']) &amp;&amp; isset($db_query-&gt;alterMetaData['search_api_db_fields'][$field_name . ':lat'])) { $location = $_GET['center']; $radius = isset($_GET['radius']) &amp;&amp; is_numeric($_GET['radius']) ? $_GET['radius'] * 1 : 5; $point = example_location_lookup($location); if (!empty($point)) { // Basically, we make a subquery that generates the distance for each adventure, and then restrict the results from that to a bounding box. // Then, once that subquery is done, we check each item that survives the bounding box to check that the distance field is less than our radius. $latitude_field = $db_query-&gt;alterMetaData['search_api_db_fields'][$field_name . ':lat']['column']; $longitude_field = $db_query-&gt;alterMetaData['search_api_db_fields'][$field_name . ':lon']['column']; $table = $db_query-&gt;alterMetaData['search_api_db_fields'][$field_name . ':lat']['table']; $sub_query = db_select($table, 'haversine'); $sub_query-&gt;fields('haversine', ['item_id', $latitude_field, $longitude_field]); // Calculate a distance column for the query that we'll filter on later. $sub_query-&gt;addExpression("69.0 * DEGREES(ACOS(COS(RADIANS(:p_lat)) * COS(RADIANS($latitude_field)) * COS(RADIANS(:p_long - $longitude_field)) + SIN(RADIANS(:p_lat)) * SIN(RADIANS($latitude_field))))", 'distance', [':p_lat' =&gt; $point['lat'], ':p_long' =&gt; $point['long']]); // Filter out anything outside of the bounding box. $sub_query-&gt;condition($latitude_field, [$point['lat'] - ($radius / 69.0), $point['lat'] + ($radius / 69.0)], 'BETWEEN'); $sub_query-&gt;condition($longitude_field, [$point['long'] - ($radius / 69.0), $point['long'] + ($radius / (69.0 * cos(deg2rad($point['lat']))))], 'BETWEEN'); $db_query-&gt;join($sub_query, 'search_distance', 't.item_id = search_distance.item_id'); $db_query-&gt;condition('search_distance.distance', $radius, '&lt;'); } } }</code> </pre> <p>And there you go.  In my example, I set up the page as search, and tested with the url: search/diner?radius=500&amp;center=denver, and got back the Denver Diner, but not the New York Diner.</p> <p><em>* It's not certain depending on which version of </em><em>fivestar</em><em> you get, but you might need to download the <a href="">entity </a></em><a href=""><em>api</em></a><em><a href=""> module</a> as well. Just in case you're following along at home.</em></p> <p><em>(1) We're just going to ignore the fact that the Earth isn't a perfect sphere for the purposes of this article - there's a degree of error that may creep in, but honestly if you're trying to find locations within 300 miles of a city, there's already enough error creeping in on the 'center' of a city that the close approximation of the Haversine formula is a relief.</em></p> </div> Fri, 11 Nov 2016 16:05:36 +0000 John Fiala 226 at Which comes first: The brand or the logo? <span>Which comes first: The brand or the logo? </span> <div class="field--field-featured-image field--type-image"> <img alt="Which comes first: The brand or the logo? " src="/sites/default/files/2016-11/brand.jpg" width="1400" height="930" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/janna-moreau" lang="" about="/user/janna-moreau" typeof="schema:Person" property="schema:name" datatype="">JannaMoreau</a></span> <span>Fri, 07/01/2016 - 09:35</span> <div class="field--field-intro field--type-string-long"> A brand is not a logo, although a logo helps brand a company. What’s the difference between these two marketing tools that help position a company in the marketplace? </div> <div class="field--body field--type-text-with-summary"> <p>Some of the branding questions I’ve received as a web designer at newmedia have led me to believe there’s confusion for some folks around “brand” and “logo.” The two are not interchangeable. They are very different yet interdependent.</p> <h1>What’s a logo?</h1> <p>A logo is the physical representation, a symbol, icon, emblem, letter mark or word, for your company. It may be the first thing a customer sees, so it’s really important. Some well-known, recognizable logos include the Nike swish and McDonald’s golden arches. </p> <p>A logo ought to be easily recognizable. It’s often trademarked. Ideally, it evokes a positive emotion among consumers. </p> <h1>What’s the brand?</h1> <p>The brand is intangible; it’s how you’re perceived by your customers in the marketplace. We try to influence this with our brand strategy, which is a company’s tone, image, marketing tools, and so much more. A good branding strategy gets a company noticed in the marketplace. That’s the goal: to get noticed, and build a strong relationship with your audience. A good brand encourages repeat customers. </p> <p>A company’s logo ought to come out of its brand (not vice versa). A lot of research—about business goals, identity and strategy; brand personality and voice; the intended audience; and more—goes into creating a company brand. </p> <p>Out of this groundwork, a logo also may be created. It’s the face of the brand; it’s what people can relate to (think back to the familiar Nike and McDonald’s logos). </p> <p>I always keep the company’s brand in mind when designing its logo. I need to know about the company’s target audience and how it wants to be perceived. Creating a logo has less to do with the colors or symbols you like; what matters is how you want your company portrayed to your intended audience. </p> <p>Successful companies brand everything: the product packaging, how the company is presented in social media channels, the flavor of its advertising … right down to how the phones are answered at headquarters—it all comes out of a well-crafted brand. The logo is there too, facing the world, communicating the brand.</p> <p>Logo and brand: They play with each other, but the brand takes the lead.<br />  <br /> If you’d like more information about branding strategy or how newmedia can help your company strengthen its brand and logo, please contact us through <a href="">our website</a> or at (303) 860-6050. <br />  </p> </div> Fri, 01 Jul 2016 09:35:00 +0000 JannaMoreau 210 at Google Shakes Up SEO <span>Google Shakes Up SEO</span> <div class="field--field-featured-image field--type-image"> <img alt="Image of magnifying glass and book" src="/sites/default/files/2016-11/google%20search.jpeg" width="5184" height="3456" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/93" lang="" about="/user/93" typeof="schema:Person" property="schema:name" datatype="">arashghaemi</a></span> <span>Wed, 06/29/2016 - 08:55</span> <div class="field--field-intro field--type-string-long"> Google’s vision for a search engine is coming to fruition, changing how SEO works and resulting in a more relevant and functional search experience for everyone. </div> <div class="field--body field--type-text-with-summary"> <p>Google’s quest to organize the internet began in 1996. As a text-based search engine it made sense that content should determine a website's ranking. However, black-hat spammers soon found ways to exploit Google’s search algorithm by keyword stuffing their way to the very top of the search rankings using scripts. This negatively affected the user experience for everyone and also hurt Google’s bottom line. </p> <h1>RankBrain changes tactics</h1> <p>In today’s search marketing environment, these black-hat tactics no longer work and you could argue that old-school SEO tactics are completely dead. </p> <p>The final nail in the coffin came from Google’s RankBrain, which is a machine-learning ranking factor now equally as important as links and content. Machine learning is artificial intelligence that adjusts without the need of human interaction. Because of RankBrain, Google has created a better search experience for the end user. </p> <p>RankBrain is not new, and Google is so confident in its capabilities that it’s been deployed in every search query. Compare that to a year ago, when RankBrain was used in only 15 percent of searches.</p> <p>During the last several years Google has started to remake itself as an artificial intelligence company. Artificial Intelligence is now baked into a lot of its products. This will only increase over time, because artificial intelligence is the next big thing. Whether you embrace it or not is entirely up to you. </p> <p>RankBrain cannot be optimized for or exploited. The only way you can appeal to RankBrain is through great content. Google has stressed the importance of content for the last 15 years. What’s considered good content? </p> <p>Using natural language and making sure a piece is grammatically correct is a good place to start. Standard SEO practices still apply: h1 tags, title tags, meta descriptions and inner linkings still matter. Keep the end user in mind when optimizing your website's content and you’ll have a huge head start in getting your website ranked. </p> <h2>Other big search engine news</h2> <p>Google Trends Analyst Gary Illyes answered questions during a Q&amp;A session at this year’s SMX Advanced, an annual search marketing conference. Here are a few other important nuggets that you should start planning for right away. If you want to watch the full video, you can do so on <a href=";theater=&amp;utm_campaign=socialflow&amp;utm_source=twitter&amp;utm_medium=social" target="_blank">Search Engine Land's Facebook page.</a></p> <p>The next big thing to prepare for, which has been in the pipeline for quite some time, are accelerated mobile pages (AMP). Illyes urges webmasters to start preparing for it now. Here’s a <a href="" target="_blank">site</a> for learning what you need to know about accelerated mobile pages.</p> <p>Illyes said webmasters need to pay attention to assistants, bots and chatbots. <a href="" target="_blank">Bots</a> are software designed to automate tasks, such as adding an appointment or making a dinner reservation. Bots can handle a variety of customer service tasks that normally would require a human making a phone call.</p> <p>Google also is working on a mobile-only index that may be used for smartphone searches --  separate from its longtime index. This makes sense as we search differently on our mobile devices than we do on our desktops. Mobile uses currently are part of the one, giant index and afforded the same ranking signals as web-based uses. </p> <p>There could be more data for webmasters coming in Google Search Console. This is a huge win for everyone as Search Console only tracks data for 90 days. Illyes also stressed the importance of switching from HTTP to HTTPS as soon as possible. Currently, 34 percent of all websites have HTTPS.</p> <p>Google continues to update Google Panda, its content quality algorithm, which will take months to complete. When Google crawls your web page, it’s assigned a score. After that, it takes months for that score to hit the index. If you end up with a Panda penalty, you’ll have to make changes and then wait until the algorithm refreshes. Google wants scores to index faster and seamlessly. </p> <p>Google says it doesn’t have a timeline for unveiling its next version of Penguin, which combats websites that purchase links to unnaturally boost rankings. While link farms and private blog networks are still used, they aren’t as effective as they once were. If you create great content and share it through social media, websites will link naturally to you.</p> <p>For the full article head over to <a href="" target="_blank">Search Engine Land</a>, where there’s a more in-depth <a href="" target="_blank">RankBrain article</a>, too. </p> <p>If you’re interested in a full SEO audit of your website give us a call at 303-860-6050. newmedia offers a full array of SEO services, including SEO audits, strategy, consulting and execution. Contact one of our specialists to see how we can help, and receive a free quote.</p> <p> </p> <p> </p> </div> Wed, 29 Jun 2016 08:55:00 +0000 arashghaemi 209 at Growth has been good: It’s time to move <span>Growth has been good: It’s time to move</span> <div class="field--field-featured-image field--type-image"> <img alt="image of newmedia&#039;s new office building" src="/sites/default/files/2016-11/newmedia-new-building.jpg" width="750" height="750" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/steve-morris" lang="" about="/user/steve-morris" typeof="schema:Person" property="schema:name" datatype="">Steve Morris</a></span> <span>Thu, 03/03/2016 - 16:20</span> <div class="field--field-intro field--type-string-long"> newmedia is moving!  We have big plans for the continued growth of our agency itself, and our two funded startups—1FEE and DRUD—that require even bigger space. And let’s face it, there’s also the obligatory pingpong table, which needs some decent elbow room. </div> <div class="field--body field--type-text-with-summary"> <p><img alt="image of building at 1900 16th Street in Lower Downtown Denver " data-entity-type="file" data-entity-uuid="855ce372-253d-439d-a03d-611314b2ce88" src="/sites/default/files/inline-images/newmedia-new-building.jpg" /></p> <p>We’ve been in this area since before the Union Station neighborhood was cool, so we couldn’t leave now. We’re staying in the hood, but movin’ on up: We’re taking over the fourth floor at 1900 16th St. in LoDo—at the light-rail stop behind Union Station, and next to the footbridge leading across to Riverfront Park—at the beginning of April. While very exciting for us, the move also is great for our clients: Easily reached from anywhere in Denver, it’s also a quick hop from Denver International Airport on the light-rail system to our doorstep for those clients who fly in to work with us.</p> <p>Space has been tight for awhile at our current location across the street from Coors Field—so much so that internal teams have had to find very creative ways to meet: I walked by a pod standing in a huddle with open laptops, and Rick Manelius, our Director of Operations, was spotted in an alcove under the stairs (our ‘atrium”) doing an interview with a local newspaper reporter.</p> <p>The move uptown gives us 14,000 square feet—plenty of room (for now) for our people and equipment. Moving nearby keeps us in the loop: LoDo is a hotspot for high-tech companies like ours. </p> <p>The Mile High City ranked fourth as a technology industry hub last fall, according to a report by JLL Technology Office Outlook, which tracks such trends. This means Denver likely will continue to grow its prominence as a tech center—and we’ll be in the center of that energy.<br />  <br /> Denver tech growth is good for business: All high-tech companies benefit when more enter the scene. A healthy, high-tech ecosystem breeds innovation, pulls in more business and attracts more talent—it’s a virtuous cycle. </p> <p>We’re doing our part: We’re adding five new people a month, and we need to <a href="/about/careers">hire more creative talent</a>—brilliant back-end and front-end developers and savvy Drupal and Wordpress experts, to name a few. </p> <p>We’re notable for our 20-year track record of providing full-service website design and development that is smart, user-friendly and cutting-edge. We also build and maintain relationships, and this sets us apart. If you’re looking for a website designer and/or developer, <a href="/contact-us">drop us a line</a>. We’d love to work with you. </p> </div> Thu, 03 Mar 2016 16:20:53 +0000 Steve Morris 191 at Website Hosting, Maintenance & Upgrades With newmedia <span>Website Hosting, Maintenance &amp; Upgrades With newmedia</span> <div class="field--field-featured-image field--type-image"> <img alt="Image of woman browsing the web" src="/sites/default/files/2016-11/woman%20browsing%20web.jpeg" width="3000" height="2000" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/rick-manelius" lang="" about="/user/rick-manelius" typeof="schema:Person" property="schema:name" datatype="">Rick Manelius</a></span> <span>Mon, 02/08/2016 - 04:29</span> <div class="field--field-intro field--type-string-long"> When buying a home, there are several hidden costs that need to be considered beyond the purchase price. There is the cost of protecting it from loss or damage (insurance). There is the cost of replacing things that wear down and/or break (maintenance). And there is the cost of making overall improvements (upgrades). </div> <div class="field--body field--type-text-with-summary"> <p>The same principles apply to your business. Beyond the cost of creating the business is the cost of protecting it (insurance), maintaining it (cost of doing business), and updating it (innovation).</p> <p>Websites are no different than these types of investments. Once the site is built, you need a hosting infrastructure to operate it and ensure the site stays open for business. You need to allocate time and energy keeping it up to date with security patches and performance tuning. And finally, you may need to extend the existing functionality and/or create new functionality, which is necessary to serve the ever growing and ever changing needs of your visitors, clients, and customers.</p> <p><strong>At newmedia, we would like to be your partner for all of these (and many other) additional services so you can get the most out of your investment.</strong></p> <p>Not only can we deliver a great service for an exceptional price, but we have seen countless horror stories of clients trying to go it alone only to shoot themselves in the foot trying to save money on hosting or avoiding routine maintenance. In some cases, a simple security vulnerability can result in a server being breached or a website getting hacked; both of which can be a significant cost to repair and can result in a disruption in your business. We want to minimize that risk for you! The best way to do this is to get a hosting, maintenance, and upgrade plan in place before your site launches.</p> <p>To learn more about our website services, please review the following articles:</p> <ul><li><a href="/blog/why-you-should-ditch-bargain-or-self-service-hosting">Why You Should Ditch Bargain or Self-Service Hosting and Use DRUD</a></li> <li><a href="/blog/protecting-your-investment-with-routine-maintenance">Protecting Your Investment with Routine Maintenance</a></li> <li>Planning for an Upgrade (Coming Soon!)</li> </ul> </div> Mon, 08 Feb 2016 04:29:17 +0000 Rick Manelius 178 at Website Design in Denver, Drupal Web Development <span>Website Design in Denver, Drupal Web Development</span> <div class="field--field-slide-image field--type-image"> <img src="/sites/default/files/new-home-team-4_0.jpg" width="1200" height="500" alt="newmedia team" typeof="foaf:Image" /> </div> <span><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">nmd.admin</a></span> <span>Mon, 11/02/2015 - 21:37</span> <div class="field--field-slide-subtitle field--type-string"> Denver Business Journal&#039;s Top-Ranked Agency 3 years in a row! 2014, 2015 and 2016 </div> Mon, 02 Nov 2015 21:37:14 +0000 nmd.admin 85 at Amtrak Website Design <span>Amtrak Website Design</span> <div class="field--field-intro field--type-string-long"> Amtrak employs more than 20,000 people, and operates passenger service on 21,200 miles (34,000 km) of track. With more than 300 trains each day – at speeds up to 150 mph (240 km/h) connecting more than 500 destinations in 46 U.S. states and three Canadian provinces, Amtrak served 30.2 million passengers and had $2.7 billion in revenue in 2011.<br /> </div> <span><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">nmd.admin</a></span> <span>Mon, 11/02/2015 - 21:11</span> <div class="field--field-image field--type-image"> <img src="/sites/default/files/amtrak.png" width="1310" height="624" alt="Amtrak Homepage" typeof="foaf:Image" /> </div> <div class="field--field-services field--type-entity-reference"> <a href="/services/seo"> <div class="service-name">SEO</div> <div class="service-icon service-seo"></div> </a> </div> <div class="field--body field--type-text-with-summary"> <div class="grid-12"> <div class="grid-1-6"> <p>The Amtrak Acela offers hourly service downtown to downtown during peak morning and afternoon rush hours between New York, Washington, DC, Baltimore, Philadelphia and other intermediate cities, as well as many convenient round-trips between New York and Boston. To ensure their passengers remain connected while traveling, Amtrak Acela trains offer AmtrakConnect Wi-Fi - the Official Wi-Fi Network of Amtrak.</p> </div> <div class="grid-7-12"> <p>To help make it happen, Amtrak partners with newmedia, whose proprietary ad server model hosts, serves and tracks all Acela AmtrakConnect Wi-Fi advertising, wirelessly, in real-time. newmedia architected, built, and manage the server infrastructure 24/7, and our system has reliably supported up to 25,000,000 hit requests per month, while ensuring a seamless and transparent experience for Amtrak Acela passengers on a daily basis, all year long.</p> </div> </div> </div> <div class="field--field-screenshot-desktop field--type-image"> <div>Screenshot Desktop</div> <div class="field-screenshot-desktop-item"> <img src="/sites/default/files/2016-11/Screen%20Shot%202016-11-04%20at%2011.25.35%20AM.png" width="1195" height="569" alt="Amtrak Desktop Design" typeof="foaf:Image" /> </div> </div> Mon, 02 Nov 2015 21:11:28 +0000 nmd.admin 84 at Persuasion Strategies New Web Design <span>Persuasion Strategies New Web Design</span> <div class="field--field-intro field--type-string-long"> Persuasion Strategies, a service of Holland &amp; Hart LLP, is an integrated team of nationally recognized litigation consultants and legal graphics and video professionals dedicated to maximizing the effectiveness of your advocacy. </div> <span><a title="View user profile." href="/user/1" lang="" about="/user/1" typeof="schema:Person" property="schema:name" datatype="">nmd.admin</a></span> <span>Mon, 11/02/2015 - 21:07</span> <div class="field--field-image field--type-image"> <img src="/sites/default/files/main-image-persuasion.jpg" width="960" height="500" alt="Persuasion Strategies homepage" typeof="foaf:Image" /> </div> <div class="field--field-services field--type-entity-reference"> <a href="/services/ux"> <div class="service-name">UX - user experience</div> <div class="service-icon service-ux---user-experience"></div> </a> <a href="/services/consulting"> <div class="service-name">Website Consulting</div> <div class="service-icon service-website-consulting"></div> </a> <a href="/services/strategy"> <div class="service-name">Website Strategy</div> <div class="service-icon service-website-strategy"></div> </a> <a href="/services/design"> <div class="service-name">Web Design</div> <div class="service-icon service-web-design"></div> </a> <a href="/services/development"> <div class="service-name">Web Development</div> <div class="service-icon service-web-development"></div> </a> <a href="/services/drupal"> <div class="service-name">Drupal Developers</div> <div class="service-icon service-drupal-developers"></div> </a> <a href="/services/mobile"> <div class="service-name">Mobile Website Design</div> <div class="service-icon service-mobile-website-design"></div> </a> </div> <div class="field--field-client-url field--type-link"> <a href="">Visit Website</a> </div> <div class="field--body field--type-text-with-summary"> <p>Their history reflects their extensive experience, true innovation and proven results. In 1990 they became the first litigation consulting team serving in-house within a law firm to support trial attorneys and their clients. Their success quickly grew and they expanded our practice to attorneys and organizations outside of Holland &amp; Hart LLP, while at the same time continuing to benefit from the extensive knowledge gained from their colleagues within the firm. After taking on the name Persuasion Strategies in 2001, they have grown to a team of 14, comprised of litigation consultants, graphics professionals and staff.</p> <p>Persuasion Strategies came to newmedia to develop a cutting-edge website that would highlight their work, their people, and their unique set of strengths, all the while allowing nontechnical internal users to edit website content and functionality without requiring external development resources. The website was designed in Denver by newmedia and built with the Drupal CMS, be fully mobile-responsive, and support a variety of content and media types necessary by Persuasion Strategies to properly market and demonstrate their services.</p> <p><img alt="Persuasion Strategies select your jury" data-entity-type="file" data-entity-uuid="4071901d-eac6-4ed4-9e4c-76677d64f7f2" src="/sites/default/files/inline-images/ps-gallery-1.jpg" /><img alt="Persuasion Strategies Profile page" data-entity-type="file" data-entity-uuid="673cd66f-1884-474c-8d24-365b3d9ce93e" src="/sites/default/files/inline-images/ps-gallery-2_0.jpg" /><img alt="Persuasion Strategies Services" data-entity-type="file" data-entity-uuid="3e686266-20e7-4ca0-b400-b0e8f6abd171" src="/sites/default/files/inline-images/ps-gallery-3.jpg" /></p> </div> <div class="field--field-screenshot-tablet field--type-image"> <div>Screenshot Tablet</div> <div class="field-screenshot-tablet-item"> <img src="/sites/default/files/2016-11/Screen%20Shot%202016-11-04%20at%2011.23.40%20AM.png" width="768" height="1023" alt="Persuasion Strategies Tablet" typeof="foaf:Image" /> </div> </div> <div class="field--field-screenshot-desktop field--type-image"> <div>Screenshot Desktop</div> <div class="field-screenshot-desktop-item"> <img src="/sites/default/files/2016-11/Screen%20Shot%202016-11-04%20at%2011.23.16%20AM.png" width="1441" height="981" alt="Persuasion Strategies Desktop" typeof="foaf:Image" /> </div> </div> Mon, 02 Nov 2015 21:07:12 +0000 nmd.admin 83 at