Help California Protect Net Neutrality

Published on April 12, 2018

Sometimes, you don’t know what you have until it’s gone. In December 2017, the FCC…

Read More

Human Nature Spreads Fake News Faster Than the Truth

Published on March 12, 2018

Who’s to blame for the spread of fake news? Common suspected culprits are Russian bots…

Read More

One More Chance to Save the Open Internet

Published on January 9, 2018

This segment of Dogtown Media News deals with the open Internet, something near and dear…

Read More

Will Blockchain Take Net Neutrality’s Place?

Published on December 29, 2017

Unless you’ve been hiding under a rock, you probably heard about the FCC’s recent vote…

Read More

Telecom Lobby Tries to Discredit Pro-Net Neutrality Comments

Published on August 31, 2017

Back in May, we enlisted readers to head over to DearFCC.org and give the FCC…

Read More

DOJ Softens Warrant Requesting Info on Trump Protesters

Published on August 23, 2017

Since the tragedy at Charlottesville a couple weeks ago, the nation has had to deal…

Read More

Life in the Slow Lane: Tech Stands Up for Net Neutrality

Published on July 12, 2017

We’re living in an era of wall-to-wall news, a lot of it quite alarming. It’s…

Read More

Television White Spaces Can Bring Broadband to the Heartland

Published on July 11, 2017

This afternoon, Microsoft’s president Brad Smith is going to give a keynote speech at the…

Read More

OneWeb’s Broadband Satellite Network May Launch Next Year

Published on June 27, 2017

It’s easy for Boston iOS app developers to take a consistent high-speed internet connection for…

Read More

Leak Reveals Facebook’s Content Moderation Policies

Published on May 23, 2017

Tasked with monitoring content generated from 2 billion users from a wide range of cultural…

Read More
// Add original row class to side image sections $('section.side-image').each(function() {var rowClass = $(this).find('.wpb_row').first().attr('class').split('vc_row-fluid').pop().trim();$(this).addClass(rowClass);}); // Highlight portfolio in navigation on project pages $('body.posttype-portfolio').find('#menu-navigation a[href*="/portfolio/"]').parent().addClass('current-menu-item'); // Highlight services in navigation on services pages $('body.parent-pageid-12').find('#menu-navigation a[href*="/app-development-services/"]').parent().addClass('current-menu-item'); // Copy tab titles into content for responsive view $('.wpb_tabs .ui-tabs-anchor').each(function() {$( '.wpb_tab' + $(this).attr('href') ).prepend('
' + $(this).html() + '
');}); /*if (jQuery('.portfolio-page').length > 0){*/ /*portfolio-template-default*/ if (jQuery('.portfolio-template-default').length == 0){ $.fn.extend({ animationend: function(callback) { return this.one('webkitAnimationEnd mozAnimationEnd oAnimationEnd oanimationend animationend', callback); }, initWaypoint: function() { return this.addClass('waypoint') .removeClass('animated') .waypoint2(function(direction) { //console.log(this.element) $(this.element).addClass('animated'); this.destroy(); }, { offset: '80%' }); } }); } if (jQuery('.portfolio-template-default.single-portfolio').length > 0){ setTimeout(function () { jQuery('.page-header h1.waypoint, .page-header p.waypoint').addClass('animated'); }, 1000); } if ( window.matchMedia('(min-width: 481px)').matches ) { var waypoints = null; var $waypoints = $('.waypoint'); var waypointSelectors = { 'common': [ $('section.vc_row').has('.lead').find('h1, h2, .lead, .btn'), '[class*="vc_col-"]:not([class*="-12"])', 'section.side-image .image-container', 'section.text-intro h2', 'section.howwework-preview .wpb_tabs', 'section.publications .col-sm-4', 'section.featured-projects .rev_slider_wrapper', 'section.landing-location-intro .wpb_text_column' ], 'home': [], 'app-development-services': [ 'section.services-slider', 'section.services-specialities' ], 'portfolio': [ '.portfolio-showcase [class^="col-"]' ], 'about': [ $('.team-member') ], 'landing': [ '.posts-container .col-sm-6' ], 'staging': [ '.section-clients-v2 .col-sm-3' ] } var pageSlug = window.location.href.split('/'); if (pageSlug.length > 4) { pageSlug = pageSlug[pageSlug.length - 2]; } else { pageSlug = 'home'; } _.every(waypointSelectors, function(selectors, page) { _.each(selectors, function(selector) { $waypoints = $waypoints.add(selector); }); if (page === 'common' || page === pageSlug) { _.each(selectors, function(selector) { $waypoints = $waypoints.add(selector); }); if (page === pageSlug) return false; } return true; }); waypoints = $waypoints.initWaypoint(); } });})(jQuery);-->