CMPUT 404

Web Applications and Architecture

Part 04: HTTP

Created by
Abram Hindle (abram.hindle@ualberta.ca)
and Hazel Campbell (hazel.campbell@ualberta.ca).
Copyright 2014-2019.

Context: FTP vs HTTP

  • 1971
  • Just files and lists of files (aka directories)
  • Out of band communication (files xferred via 2nd connection)
  • Firewalls prevent server connecting back to client (fixed with passive mode)
  • 200 OK
  • Must log in everytime, but by convention anonymous logins
  • 1991
  • Sends content, not files
  • Responds to requests: GET/POST/DELETE/PUT/HEAD/etc.
  • Allows extra information (headers) and arguments (queries) with commands
  • 200 OK
  • Default: anonymous, no log-in
  • Dynamic content (generated at the time the request is received)

Context: Gopher vs HTTP

  • 1991
  • Sends files, directories
  • Simple
  • Hypertext
  • Limited file types: menus, text, binary, gif, image
  • Death by licensing and adoption
  • 1991
  • Sends content, not files
  • Responds to requests: GET/POST/DELETE/PUT/HEAD/etc.
  • More complex
  • Any type of content

HTTP

  • Hypertext — "over" text
  • Transport — Move it/communicate it
  • Protocol — an agreed-upon method of communication
  • Accepted custom headers — allowing for extension, new features
  • Allowed for a more request/command oriented pattern (remember the command pattern)
  • Relied on the pairing of web clients and web servers
  • Relies on URIs to describe resources, allows more than 1 resource to be hosted on 1 server
  • RFC: The standard for HTTP: http://tools.ietf.org/html/rfc2616
  • RFC: Request For Comments
    • Hypertext Transfer Protocol — HTTP/1.1
    • IETF's definion of HTTP/1.1
  • No matter what I say about HTTP, the RFC is the final word.

HTTP Basics

  • HTTP uses TCP (usually)
  • HTTP uses TCP Port 80 (usually)
  • HTTPS allows for ENCRYPTED HTTP
  • HTTPS uses port TCP 443 (usually)
  • HTTP can work over IPV4 and IPV6
  • HTTP requests are made to addresses called URIs

HTTP Commands

Every HTTP command is made to a URI.
  • GET – Retrieve information from that URI
  • POST – Run search, log-in, append data, change data
  • HEAD – GET without a message body (for caching)
  • PUT – Store the entity at the that URI
  • DELETE – Delete the resource at that URI
  • PATCH – Modify the entity at that URI
  • OPTIONS – What options a resource can accommodate
  • TRACE – Debugging / Echo Request
  • CONNECT – Tunneling proxy over HTTP

URI or URL?

URI
  • Universal Resource Identifier
  • Identifies (points to) a resource
  • Most URIs are URLs
    • URL: Uniform Resource Locator
    • Tells you how to get to a resource
    • http://ualberta.ca/
  • Some URIs are URNs
    • URN: Uniform Resource Name
    • Tells you the unique name or number given to a resource by some body (e.g. IETF)
    • urn:ietf:rfc:3986

URLs

  • Two main parts: scheme and everything else
  • Common URL Schemes: http, https, mailto, file, data
  • URL Schemes for older technologies: ftp, gopher, irc
  • URI Schemes for new technologies: spotify:track:35zrlBOjpfDPMcZzglWOuV

URLs

  • scheme
  • :
  • authority
    • username:password@ (optional)
    • hostname
    • :port (optional)
  • path
  • ?query (optional)
  • #argument (optional)

Username/password not used much anymore...

http://joe:hunter23@[::1]:8000/search.html?q=cat%20pictures&results=20#result-10

  • scheme http
  • :
  • authority joe:hunter23@[::1]:8000
    • Username joe
    • Password hunter23
    • @
    • Host [::1]
    • :
    • Port 8000
  • path search.html
  • ?
  • ?query ?q=cat%20pictures&results=20
  • #
  • fragment #result-10

[::1] is IPv6 loopback address, like IPv4's 127.0.0.1

Absolute and relative URLs

Example URLs

Queries

URLs can have a query portion. Consider https://www.google.com/search?q=cat+pictures&ie=utf8

  • Query portions can have one or more arguments
  • Usually: key=value&key2=value2
  • But some other formats exist, such as using other separators ; instead of &, or just having a string and no keys/values.

Fragments

URLs can have a fragment portion. Consider https://en.wikipedia.org/wiki/Methanol#Applications

Why are URLs important?

URIs and Encoding

  • Universal URIs have to be able to handle anything
  • Even paths with spaces and other characters... (accents, punctuation, symbols, emoji...)
  • For HTTP assume our URLs are Unicode UTF-8 encoded
  • For characters that aren't in -._~0-9a-zA-Z we use % encoding
  • For domain names we use "punycode" encoding
    • http://☃.net/ which is converted to http://xn--n3h.net/

HTTP Example

Let's GET http://slashdot.org

  • Request http://slashdot.org
  • We see http, so we know it's going to be the HTTP protocol.
  • No port specified so assume port 80.
  • No path specified so assume /
  • Open up a connection to port 80 slashdot.org
  • Send...
GET / HTTP/1.1\r\n
Host: slashdot.org\r\n
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
Accept-Language: en-US,en;q=0.5\r\n
Accept-Encoding: gzip, deflate\r\n
Connection: keep-alive\r\n
Upgrade-Insecure-Requests: 1\r\n
DNT: 1\r\n
\r\n
  • / in GET / is the path: we're asking for the root aka the index of the root directory.
  • Host: slashdot.org... wait... I thought we already knew the IP address?
  • Receive headers...
HTTP/1.1 301 Moved Permanently\r\n
Server: nginx/1.13.12\r\n
Date: Mon, 14 Jan 2019 23:18:22 GMT\r\n
Content-Type: text/html\r\n
Content-Length: 186\r\n
Connection: keep-alive\r\n
Location: https://slashdot.org/\r\n
\r\n
  • 301 Moved Permanently — your princess is in another castle.
  • Receive content...
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.13.12</center>
</body>
</html>
  • Webpage should redirect, following the location header, but in case it doesn't we're provided a short HTML page as well to explain the situation.
  • So the browser doesn't show you this page, instead it goes to the location specific in the Location header.
Location: https://slashdot.org/\r\n
  • It's sending us to the same slashdot page we asked for, except now, HTTPS!
  • HTTPS: Encrypted... but... everyone still knows we're on slashdot. They might not be able to tell where on slashdot we are though.
  • Time for our web browser to try again...
  • Browser connects to slashdot.org on port 443.
  • Browser initiates a TLS connection!
  • For HTTP our layers look like:
    • Ethernet
    • IPv4
    • TCP
    • HTTP
  • Browser connects to slashdot.org on port 443.
  • Browser initiates a TLS connection!
  • For HTTPS our layers look like:
    • Ethernet
    • IPv4
    • TCP
    • TLS
    • HTTP
    • Squeeze in TLS between TCP and HTTP.
  • Open up a connection to port 443 slashdot.org
  • Do a TLS handshake and open up TLS connection
  • Send...
GET / HTTP/1.1\r\n
Host: slashdot.org\r\n
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
Accept-Language: en-US,en;q=0.5\r\n
Accept-Encoding: gzip, deflate\r\n
Connection: keep-alive\r\n
Upgrade-Insecure-Requests: 1\r\n
DNT: 1\r\n
\r\n
  • Receive headers...
HTTP/1.1 200 OK\r\n
Server: nginx/1.13.12\r\n
Date: Mon, 14 Jan 2019 23:18:22 GMT\r\n
Content-Type: text/html; charset=utf-8\r\n
Transfer-Encoding: chunked\r\n
Connection: keep-alive\r\n
SLASH_LOG_DATA: shtml\r\n
Cache-Control: no-cache\r\n
Pragma: no-cache\r\n
X-XRDS-Location: https://slashdot.org/slashdot.xrds\r\n
Strict-Transport-Security: max-age=31536000\r\n
Content-Encoding: gzip\r\n
\r\n
  • 200 OK — okay, I did what you asked, everything went fine.
  • Receive content...
  • Just get garbled binary junk... no HTML
  • Content-Encoding: gzip
  • Web browser has to uncompress it first
  • Decompress content...
<!-- html-header type=current begin -->
	
	<!DOCTYPE html>
	
	
	<html lang="en">
	<head>
	<!-- Render IE9 -->
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

	

<script>window.is_euro_union = 1;</script>
<script src="https://a.fsdn.com/con/js/sftheme/vendor/promise.polyfill.min.js"></script>
<script src="https://a.fsdn.com/con/js/sftheme/cmp.js"></script>
<script src="https://slashdot.org/country.js"></script>
<script type='text/javascript'>
if (window.is_euro_union) {
  bizx.cmp.init({
      // to test:   'Display UI': 'always',
      'Publisher Name': 'Slashdot',
      'Publisher Logo': 'https://a.fsdn.com/sd/sdlogo.svg',
      'Consent Scope': 'global group',
      'Consent Scope Group URL': 'https://slashdot.org/gdpr-cookies.pl',
    });
}
</script>
<link rel="stylesheet" href="//a.fsdn.com/con/css/sftheme/sandiego/cmp.css" type="text/css">
<style type="text/css">
.qc-cmp-publisher-logo, .qc-cmp-nav-bar-publisher-logo {
    background-color: #016765;
}
</style>
<script>
if (!window.is_euro_union) {
(function (s,o,n,a,r,i,z,e) {s['StackSonarObject']=r;s[r]=s[r]||function(){
 (s[r].q=s[r].q||[]).push(arguments)},s[r].l=1*new Date();i=o.createElement(n),
 z=o.getElementsByTagName(n)[0];i.async=1;i.src=a;z.parentNode.insertBefore(i,z)
 })(window,document,'script','https://www.stack-sonar.com/ping.js','stackSonar');
 stackSonar('stack-connect', '66');
}
</script>

	<script id="before-content" type="text/javascript">
(function () {
    if (typeof window.sdmedia !== 'object') {
         window.sdmedia = {};
    }
    if (typeof window.sdmedia.site !== 'object') {
        window.sdmedia.site = {};
    }

    var site = window.sdmedia.site;
    site.rootdir = "//slashdot.org";
}());

var pageload = {
	pagemark: '82601476630593824',
	before_content: (new Date).getTime()
};
function pageload_done( $, console, maybe ){
	pageload.after_readycode	= (new Date).getTime();
	pageload.content_ready_time	= pageload.content_ready - pageload.before_content;
	pageload.script_ready_time	= pageload.after_readycode - pageload.content_ready;
	pageload.ready_time		= pageload.after_readycode - pageload.before_content;
	// Only report 1% of cases.
	maybe || (Math.random()>0.01) || $.ajax({ data: {
		op: 'page_profile',
		pagemark: pageload.pagemark,
		dom: pageload.content_ready_time,
		js: pageload.script_ready_time
	} });
}
</script>
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
	
		<title>Slashdot: News for nerds, stuff that matters</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	  
		<meta name="description" content="Slashdot: News for nerds, stuff that matters. Timely news source for technology related news with a heavy slant towards Linux and Open Source issues.">
	    
		<meta property="og:title" content="Slashdot: News for nerds, stuff that matters">
		<meta property="og:description" content="Slashdot: News for nerds, stuff that matters. Timely news source for technology related news with a heavy slant towards Linux and Open Source issues.">
	  
	
	
		<meta property="fb:admins" content="100000696822412">
		<meta property="fb:page_id" content="267995220856">
	
		<meta name="viewport" content="width=1000, user-scalable=yes, minimum-scale=0, maximum-scale=10.0" >
		<meta name="apple-mobile-web-app-capable" content="yes">
		<meta name="apple-mobile-web-app-status-bar-style" content="black">
	
		<link rel="canonical" href="https://slashdot.org">
		
		<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.slashdot.org" >
	

		<link rel="stylesheet" type="text/css" media="screen, projection" href="//a.fsdn.com/sd/classic.ssl.css?0771f26796689b4c" >
		<!--[if IE 8]><link rel="stylesheet" type="text/css" media="screen, projection" href="//a.fsdn.com/sd/ie8-classic.ssl.css?0771f26796689b4c" ><![endif]-->
		<!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen, projection" href="//a.fsdn.com/sd/ie7-classic.ssl.css?0771f26796689b4c" ><![endif]-->
	
	
	



	
	<!--  -->

	
	

	
	<!-- SMACKS: NEW CSS -->
	<link rel="stylesheet" href="//a.fsdn.com/sd/css/app.css?0771f26796689b4c">

	<script type='text/javascript'>
var _gaq = _gaq || [];
</script>





   
   
   

<script type="text/javascript" id="pbjs_script" data-dom="https://d3tglifpd8whs6.cloudfront.net"  src="https://d3tglifpd8whs6.cloudfront.net/js/prebid/slash-homepage/slash-homepage.min.js"></script>
<script type='text/javascript'>
    /*global performance */
    var googletag = window.googletag || {};
    googletag.cmd = googletag.cmd || [];

    window.Ads_disallowPersonalization = 1;
    bizx.cmp.ifConsent('all', 'all', function(){
        window.Ads_disallowPersonalization = 0;
      }, function(){
        window.Ads_disallowPersonalization = 1;
      }, function () {
        window.bizxPrebid.Ads.initPrebid(window.bizxPrebid.adUnits);
      });
</script>

<!-- prep GPT ads -->
<script type='text/javascript'>
(function() {
	function page_type (loc) {
		/*
		only four page types:
		- Story
		- Poll
		- Homepage (/ only)
		- Other (but AdOps wants 'Homepage' again)
		*/
		var path = loc.pathname;
		var just_the_root = /^\/?$/.test(path);
		var story_or_poll = /^\/(story(?=\/)|submission(?=\/)|poll(?=\/|Booth|s\b))/i.exec(path);

		var page_type = just_the_root ? 'homepage'
		              : story_or_poll ? story_or_poll[1]
		              :                 'other'

		// exceptions
		if (page_type.toLowerCase() === 'submission')
			page_type = 'story'; // submissions are like stories, right?
		else if (page_type.toLowerCase() === 'other')
			page_type = 'homepage'; // this one might move out of here

		return page_type;
	}
	function page_section (loc) {
		//var greek = ['alpha', 'beta', 'gamma', 'delta'].join('|');
		//var hostwise = '^([a-z]+)(?:-(?:'+greek+'))?\\.(?:slashdot\\.org|\\.xb\\.sf\\.net)$';
		var pathwise = '^/(?:(recent|popular|blog)|stories/([^/]+))';
		var rootwise = '^\/?$';

		//var hostwisely = new RegExp(hostwise,'i').exec(loc.hostname);
		var pathwisely = new RegExp(pathwise,'i').exec(loc.pathname);
		var rootwisely = new RegExp(rootwise,'i').exec(loc.pathname);

		var section = (rootwisely && 'homepage')
		           || (pathwisely && (pathwisely[1] || pathwisely[2]))
		           || ''
		            ;

		return section.replace(/[^_a-z]/ig, '');
	}
	function single_size (size) {
		return '' + size[0] + 'x' + size[1];
	}
	function sz_sz (sz) {
		var str = '';
		var sizes = [];
		if (sz[0] instanceof Array) {
			for (size in sz) {
				sizes.push(single_size(sz[size]));
			}
			return sizes.join(',');
		} else {
			return single_size(sz);
		}
	}

	function unique_tpc_array(array1,array2) {
		var j = array1.concat(array2);
		j.forEach(function (v,i,a) {
			a[i] = v.replace(/[^_a-z]/ig, '');
			});
		return j.filter(function (v,i,a) {
			return v != '' && a.indexOf(v) === i;
			});
	}

	/* LEGEND:
		- 'sz' = "size"
		- 'npt' = "no page type" in ad unit name
	*/
	var tags = {
        '728x90_A': { 'sz': [[728, 90], [970, 90], [970, 250], [980, 66]] },
        '728x90_B': { 'sz': [728, 90] },
        '728x90_C': { 'sz': [728, 90], 'skip': { 'homepage': 1 } },
        'HubIcon_200x90_A': { 'sz': [[200, 90], [220, 90]]},
        'PowerSwitch_980x66_A': { 'sz': [980, 66], 'skip': { 'homepage': 1 } },
        'PollPeel': { 'sz': [200, 90], 'skip': { 'homepage': 1 } },
        //'VideoWidget_300x250': { 'sz': [300, 250], 'npt': 1 },
        '300x250_A': { 'sz': [[300, 250], [300, 600], [300, 1050]] },
        '300x250_B': { 'sz': [[300, 250], [300, 600]] },
        '300x250_C': { 'sz': [[300, 250], [300, 600]] },
        '300x250_D': { 'sz': [[300, 250], [300, 600]] },
        'Pulse_300x600_A': { 'sz': [300, 600] },
        //'Polls_Detail_300x250_A': { 'sz': [[300, 250], [300, 600]], 'npt': 1 },
        //'Poll_300x250_A': { 'sz': [[300, 250], [300, 600]], 'npt': 1 },
        //'SD_Story_1x1': { 'sz': [1, 1] },
        '1x1': { 'sz': [1, 1] }
	};

	//var network_path = '/41014381/Slashdot/';
	var network_path = '/41014381/Slashdot/';
	var tag_name_prefix = 'SD';
	var tag_name_linkage = '_';
	var tag_name_pagetype = page_type(location);
	var tag_topic = page_section(location);
	if(tag_name_pagetype == 'poll'){
		tag_name_pagetype = 'Poll';
	}
	var before_tag_pagetyped    = network_path
	                            + tag_name_prefix
	                            + tag_name_linkage
	                            + tag_name_pagetype
	                            + tag_name_linkage
	                            ;
	var before_tag_pagetypeless = network_path
	                            + tag_name_prefix
	                            + tag_name_linkage
	                         /* + tag_name_pagetype */
	                         /* + tag_name_linkage */
	                            ;


	googletag.cmd.push(function() {

		function remove_sticky_top() {
      //console.log('run remove sticky banner');
		    setTimeout(function(){
			$('#div-gpt-ad-728x90_a').parent('div').addClass('adwrap-viewed-banner');
			$('#div-gpt-ad-728x90_a').addClass('viewableImpression');
			}, 1000);
		}
		function remove_sticky_railad() {
        //console.log('run remove sticky railed');
		    setTimeout(function(){
		    $('#slashboxes .adwrap-unviewed').addClass('adwrap-viewed-railad');
		    $('.railad').addClass('viewableImpression');
		    }, 1000);
		}
		function viewable_imp (slot) {
         //console.log('init ads detect');
		    for(var i in slot) {
			if(typeof slot[i] !== 'string') continue;
			switch(slot[i]){
			  case "/41014381/Slashdot/SD_homepage_728x90_A":
			  case "/41014381/Slashdot/SD_story_728x90_A":
			  case "/41014381/Slashdot/SD_Poll_728x90_A":
			  case "/41014381/Slashdot/SD_homepage_728x90_Ref_A":
			  case "/41014381/Slashdot/SD_story_728x90_Ref_A":
			  case "/41014381/Slashdot/SD_Poll_728x90_Ref_A":
				remove_sticky_top();
				break;
			  case "/41014381/Slashdot/SD_homepage_300x250_A":
			  case "/41014381/Slashdot/SD_story_300x250_A":
			  case "/41014381/Slashdot/SD_Poll_300x250_A":
			  case "/41014381/Slashdot/SD_homepage_300x250_Ref_A":
			  case "/41014381/Slashdot/SD_story_300x250_Ref_A":
			  case "/41014381/Slashdot/SD_Poll_300x250_Ref_A":
				remove_sticky_railad();
				break;
			}
			//if(slot[i] === "/41014381/Slashdot/SD_homepage_728x90_A") remove_sticky_top();
			//if(slot[i] === "/41014381/Slashdot/SD_homepage_300x250_A") remove_sticky_railad();
		    }
		}
		function define_me_a_slot (tag) {
			if (tags[tag].skip && tags[tag].skip[tag_name_pagetype])
				return;
			var sandbox_regex = /\.xb\.sf\.net$/i;
			var full_name = tags[tag].npt  // "no page type"
			              ? before_tag_pagetypeless + tag
			              : before_tag_pagetyped    + tag
			              ;
			var div_id = 'div-gpt-ad-' + tag.toLowerCase();

			var service;
			// extend jQuery and get URL query params
			jQuery.extend({
			  getQueryParameters : function(str) {
			      return (str || document.location.search).replace(/(^\?)/,'').split("&").map(function(n){
			      return n = n.split("="),this[n[0]] = n[1],this
			      }.bind({}))[0];
			  }
			});

			var queryParams = $.getQueryParameters();

			if( queryParams.source === 'autorefresh' ) {
			    full_name = full_name.replace(/(\d+x\d+)/,'$1_Ref');
			    //console.log('TAG NAME: ', full_name);
			}

			service = googletag.defineSlot(
				  full_name
				, tags[tag].sz
				, div_id
			).addService(googletag.pubads());

			service.setTargeting('sz', tags[tag].sz);

			
			var frontend_tpc = tag_topic.split(",");
			var backend_tpc = [  ];

			var tpc_final = unique_tpc_array(frontend_tpc, backend_tpc);
			service.setTargeting('tpc', tpc_final);
			if (location.hostname.match(sandbox_regex)) {
				service.setTargeting('test', 'adops');
			}

		}

		for (tag in tags) {
			define_me_a_slot(tag, false);
		}
		googletag.pubads().addEventListener('impressionViewable', function(event) {
			viewable_imp(event.slot);
		    });

                googletag.pubads().setTargeting('requestSource', 'GPT');
                googletag.pubads().setRequestNonPersonalizedAds(window.Ads_disallowPersonalization);
		googletag.pubads().enableAsyncRendering();
		

		googletag.pubads().collapseEmptyDivs();
		window.bizxPrebid.SAFEFRAMES = true;
		bizxPrebid.Ads.pushToGoogle();
		googletag.enableServices();
	});
})();
</script>



<!-- CrossPixel -->
<script type="text/javascript"> try{(function(){ var cb = new Date().getTime(); var s = document.createElement("script"); s.defer = true; s.src = "//tag.crsspxl.com/s1.js?d=2397&cb="+cb; var s0 = document.getElementsByTagName('script')[0]; s0.parentNode.insertBefore(s, s0); })();}catch(e){} </script>

<!-- AdBlock Check -->
<script>
var isAdBlockActive = true;
</script>
<script async src="//a.fsdn.com/sd/js/scripts/ad.js?0771f26796689b4c"></script>

</head>
<body class="anon index2 ">

	
	<script src="//a.fsdn.com/sd/all-minified.js?0771f26796689b4c" type="text/javascript"></script>
	
	
	<script type="text/javascript">
(function(){
var regexp=/\s*(?:\d+|many)\s+more\s*/i;

	
	var auto_more_count = 1;

	function auto_more(){
		var $more_link = $('#more-experiment a');
		$more_link.each(function(){
			var $lastitem = $('#firehoselist>article.fhitem:visible:last');
			if ( Bounds.intersect(window, $lastitem) ) {
			
			
				!--auto_more_count && (auto_more=undefined);
				// don't allow a call till the next paginate gets built and |more_possible|
				$(document).unbind('scroll', call_auto_more);
			}
		});
	};

	function call_auto_more(){ auto_more && auto_more(); }
	

$('#more-experiment a').
	live('more-possible', function( event ){
		var $more_link=$(this);
		if ( regexp.test($more_link.text()) ) {
		
			$(document).bind('scroll', call_auto_more);
		} else {
			$(document).unbind('scroll', call_auto_more);
		
		}
	});
})();
</script>
	<!--[if lt IE 9]><script src="//a.fsdn.com/sd/html5.js"></script><![endif]-->
	
	
	<script type="text/javascript">
		(function() {
			if (typeof window.janrain !== 'object') window.janrain = {};
			if (typeof window.janrain.settings !== 'object') window.janrain.settings = {};

			/* _______________ can edit below this line _______________ */

			janrain.settings.tokenUrl = 'https://slashdot.org/token_callback.pl';
			janrain.settings.type = 'embed';
			janrain.settings.appId = 'ggidemlconlmjciiohla';
			janrain.settings.appUrl = 'https://login.slashdot.org';
			janrain.settings.providers = [
			    'googleplus',
			    'facebook',
			    'twitter',
			    'linkedin'];
			janrain.settings.providersPerPage = '5';
			janrain.settings.format = 'one column';
			janrain.settings.actionText = 'Sign in with';
			janrain.settings.showAttribution = false;
			janrain.settings.fontColor = '#666666';
			janrain.settings.fontFamily = 'lucida grande, Helvetica, Verdana, sans-serif';
			janrain.settings.backgroundColor = '#ffffff';
			janrain.settings.width = '300';
			janrain.settings.borderColor = '#cccccc';
			janrain.settings.borderRadius = '5';    janrain.settings.buttonBorderColor = '#CCCCCC';
			janrain.settings.buttonBorderRadius = '0';
			janrain.settings.buttonBackgroundStyle = 'gray';
			janrain.settings.language = '';
			janrain.settings.linkClass = 'janrainEngage';

			/* _______________ can edit above this line _______________ */

			function isReady() { janrain.ready = true; };
			if (document.addEventListener) {
			  document.addEventListener("DOMContentLoaded", isReady, false);
			} else {
			  window.attachEvent('onload', isReady);
			}

			var e = document.createElement('script');
			e.type = 'text/javascript';
			e.id = 'janrainAuthWidget';

			e.src = 'https://rpxnow.com/js/lib/login.slashdot.org/engage.js';

			var s = document.getElementsByTagName('script')[0];
			s.parentNode.insertBefore(e, s);
		})();
	</script>
	
		<script src="//cdn-social.janrain.com/social/janrain-social.min.js"></script>
		<script type="text/javascript">
			(function($) {
				$(function(){
					janrain.settings.appUrl = "https://login.slashdot.org";
					$twitter = $('body .janrain_twitterButton');
					$twitter.append('<i class="icon-twitter"></i>');

					janrain.settings.social = {
						providers: [
							"native-facebook",
							"twitter",
							"linkedin",
							"native-googleplus",
							"native-reddit"
						],
						shareCountMin: "100",
						shareCountMode: "combined"
					};
				});
			})($j);
		</script>
	<!-- index2_variant |A|-->
	
	<!-- TABOOLA -->
	<script type="text/javascript">
	if (!window.is_euro_union) {
	  window._taboola = window._taboola || [];
	  _taboola.push({home:'auto'});
	  !function (e, f, u) {
		e.async = 1;
		e.src = u;
		f.parentNode.insertBefore(e, f);
	  }(document.createElement('script'),
	  document.getElementsByTagName('script')[0],
	  '//cdn.taboola.com/libtrc/slashdot/loader.js');
	}
	</script>
	
	<!-- html-header type=current end --><!-- header type=current begin -->
	
	
	
	<link rel="top"       title="News for nerds, stuff that matters" href="//slashdot.org/" >
<link rel="search"    title="Search Slashdot" href="//slashdot.org/search.pl">
<link rel="alternate" title="Slashdot RSS" href="http://rss.slashdot.org/Slashdot/slashdotMain" type="application/rss+xml">
	<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">

	
		<div id="top_parent"></div>
		<a name="topothepage"></a>
		
		<div class="container">
			<div class="nav-wrap">
				<nav class="nav-primary" role="navigation" aria-label="Global Navigation">
					<h1 class="logo">
	<a href="//slashdot.org"><span>Slashdot</span></a>
</h1>

<ul class="nav-site">
	<li><a href="//slashdot.org"><i class="icon-book" title="Stories"></i><span>Stories</span></a></li>
	<li>
		<ul class="filter-firehose">
			<li class="nav-label">Firehose <i class="icon-angle-right"></i></li>
			<li><a href="//slashdot.org/recent">All</a></li>
			<li><a href="//slashdot.org/popular">Popular</a></li>
		</ul>
	</li>
	<li><a href="//slashdot.org/polls"><i class="icon-chart-bar" title="Polls"></i><span>Polls</span></a></li>

	<!--
	<li><a href="//ask.slashdot.org"><i class="icon-question-circle"></i><span>Ask</span></a></li>
	
	<li><a href="//events.slashdot.org"><i class="icon-calendar"></i><span>Events</span></a></li>
	-->
	<li><a href="http://deals.slashdot.org/?utm_source=slashdot&amp;utm_medium=navbar&amp;utm_campaign=dealshp_1" target="_blank"><i class="sd-mini" title="Deals"></i> <span>Deals</span></a></li>
</ul>
<a href="//slashdot.org/submission" class="btn btn-success">Submit</a>
				</nav>
				<nav class="nav-user" role="navigation" aria-label="user access and account controls">
					<form id="search" class="form-inline nav-search-form" method="get" action="//slashdot.org/index2.pl">
<!-- //slashdot.org/index2.pl" -->
	<div class="form-group">
		<label class="sr-only" for="sitesearch">Search Slashdot</label>
		<div class="input-group">
			<input type="text" id="" class="" name="fhfilter" value="" placeholder="Search">
		</div>
	</div>
	<button type="submit" class="btn icon-search"></button>
</form>
<ul class="user-access">
	
		
			<li >
				<a href="//slashdot.org/my/login"  onclick="show_login_box(); return false;"><i class="icon-login"></i><span> Login</span></a>
				
			</li>
		
	
		
			<li class="nav-label">or</li>
		
	
		
			<li >
				<a href="//slashdot.org/my/newuser"  ><i class="icon-user-add"></i><span> Sign up</span></a>
				
			</li>
		
	
</ul>
				</nav>
			</div>
			<div class="nav-secondary-wrap">
				<nav class="nav-secondary" role="secondary-navigation">
	<ul>
		<li class="nav-label">Topics: </li>
		<li><a href="//devices.slashdot.org">Devices</a></li>
		<li><a href="//build.slashdot.org">Build</a></li>
		<li><a href="//entertainment.slashdot.org">Entertainment</a></li>
		<li><a href="//technology.slashdot.org">Technology</a></li>
		<li><a href="//slashdot.org/?fhfilter=opensource">Open Source</a></li>
		<li><a href="//science.slashdot.org">Science</a></li>
		<li><a href="//yro.slashdot.org">YRO</a></li>
		<!-- <li><a href="//slashdot.org/topics.pl">more...</a></li> -->
	</ul>
</nav>
<nav class="nav-social" role="social navigation">
	<ul>
		<li class="nav-label">Follow us:</li>
		<li><a href="http://rss.slashdot.org/Slashdot/slashdotMain" target="_blank"><i class="icon-rss-squared"></i><span class="sr-only">RSS</span></a></li>
		<li><a href="http://www.facebook.com/slashdot" target="_blank"><i class="icon-facebook-squared"></i><span class="sr-only">Facebook</span></a></li>
		<li><a href="https://plus.google.com/112601993642376762846/" target="_blank"><i class="icon-gplus-squared"></i><span class="sr-only">Google+</span></a></li>
		<li><a href="http://twitter.com/slashdot" target="_blank"><i class="icon-twitter-squared"></i><span class="sr-only">Twitter</span></a></li>
		<li><a href="//slashdot.org/newsletter" target="_blank"><i class="icon-mail-squared"></i><span class="sr-only">Newsletter</span></a></li>
	</ul>
</nav>
			</div>
		</div>

		<section>
		
			<div class="message-bar" id="firehose-message-tray">
				<span class="icon-quote-left"></span>
				<p>
					
						
						Become a fan of Slashdot on <a href="http://www.facebook.com/pages/Slashdotorg/267995220856">Facebook</a>
					
				</p>
			</div>
		
		
			<div id='embbeded_login_modal' class="hide">
<form action="https://slashdot.org/my/login" method="post" onsubmit="if (global_returnto) { this.returnto.value = global_returnto }" class="embedded"><fieldset style="-webkit-border-radius:10px 10px 0 0;border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0">
<div style='height:25px;'>&nbsp;</div>
    <input type="hidden" name="returnto" value="">
    <input type="hidden" name="op" value="userlogin">
    <p>
        <label class="fleft" for="unickname">Nickname:</label>
        <input type="text" name="unickname" value="">
    </p>
    <p>
        <label class="fleft" for="upasswd">Password:</label>
        <input type="password" name="upasswd" placeholder="6-1024 characters long">
    </p>
    <label class="checkbox"><input type="checkbox" name="login_temp" value="yes"> Public Terminal</label>
    <br>
    <hr>
    <input type="submit" name="userlogin" value="Log In" class="fno"> <a href="//slashdot.org/my/mailpassword" class="btn link" onclick="getModalPrefs('sendPasswdModal', 'Retrieve Password', 1); return false;">Forgot your password?</a>
</fieldset></form>

<div id="janrainEngageEmbed"></div>
<div class="actions">
 <a class="ico close" onclick="hide_login_slider();" href=""><span>Close</span></a>
</div>
</div>
		
		
			<div class="banner-wrapper">
				<div class="adwrap adwrap-unviewed banner-contain">
					
					<div id='div-gpt-ad-728x90_a'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-728x90_a');});</script></div>
					<div id='div-gpt-ad-hubicon_200x90_a'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-hubicon_200x90_a');});</script></div>
				</div>
			</div>
		
		<a name="main-articles"></a>
	
	<!-- header type=current end --><!--body begin -->








	<style type="text/css">
menu, menu * {
	text-decoration:none;
}

menu[type=context] {
	display:none;
	position:absolute;
	z-index:10000;
}

menu[type=context]:not(.brief) {
	background-color:#dfdfdf;
	margin:0;
	padding:2px 0.5em;
	border-style:solid;
	border-width:1px;
	border-color:#eeeeee #aaaaaa #aaaaaa #eeeeee;
	-moz-border-radius-topright:.7em;
	-webkit-border-top-right-radius: 0.7em 0.7em;
}

menu.full[type=context] > a.slash-hover:first-child {
	-moz-border-radius-topright:.6em;
	-webkit-border-top-right-radius: 0.6em 0.6em;
}



menu.brief[type=context] > a {
	-moz-border-radius:.6em;
	-webkit-border-radius: 0.6em;
	color:#ffffff;
	background-color:#000000;
}

/*
span.briefmenu a.tag:not(.datatype) {
    padding-left:.5em;
}
*/




/* #tag-menu a, #feedback-menu a  { */
menu.tag-menu-admin a {
	display:list-item;
	list-style:none;
	text-align:left;
	font-weight:bold;
	color:black;
	padding:0.1em 0.5em;
	margin:-0.1em -0.5em;
	cursor:pointer;
}


.tags .edit-bar { position:relative; }
article aside .share .addthis_toolbox { display:block; width:60px; float:left; }
article aside.view_mode .share { min-width:120px; padding-top:.5em; }
#firehose.list article header h2 {padding-left: 20px; !important}
.novote .vote { display:none; }

.vote > a, .votedup > a, .voteddown > a {
	display:inline-block;
	height:22px;
	width:22px;
	margin: 2px 10px 0 0;
	color:rgb(255,255,255);
	text-decoration:none;
	line-height:22px;
	text-align:center;
	font-weight:bold;
	font-size:14px;
	border-width:1px;
	border-style:solid;
	border-color:rgba(0,0,0,0.5);
}

.vote > a, .votedup > a, .voteddown > a {color:rgb(0,0,0);}

article.fhitem-submission h2 .vote > a, article.fhitem-submission h2 .votedup > a, article.fhitem-submission h2 .voteddown > a { border-color:rgba(0,0,0,0.15); }
.vote .up, .vote .down, .votedup .up, .votedup .down, .voteddown .up, .voteddown .down { border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; /* text-shadow:0 0 2px #000000; }*/}
article:not(.fhitem-story) .vote .up,article:not(.fhitem-story) .vote .down,article:not(.fhitem-story) .votedup .up,article:not(.fhitem-story) .votedup .down,article:not(.fhitem-story) .voteddown .up,article:not(.fhitem-story) .voteddown .down { /*text-shadow:none !important; */}
.voteddown .down, .votedup .up { margin-right: 10px; text-indent:2px; line-height:24px; }
article:not(.fhitem-story) .votedup .up,article:not(.fhitem-story) .voteddown .down {background: rgb(174,174,174);background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(174,174,174)), to(rgb(193,193,193)));background-image: -moz-linear-gradient(100% 100% 90deg,rgb(193,193,193), rgb(174,174,174) 100%);color:rgb(0,0,0);}
article.fhitem-story .votedup .up,article.fhitem-story .voteddown .down {background: rgb(0,66,66);background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(0,53,53)), to(rgb(0,102,102)));background-image: -moz-linear-gradient(100% 100% 90deg,rgb(0,102,102), rgb(0,53,53) 100%);}




#tag-menu span.var-tag {
font-weight:normal;
color:#444444;
}

menu.reasons-menu a {
padding:0 .25em 0 .25em;
font-size:80%;
-moz-border-radius:.5em;
-webkit-border-radius:.5em;
cursor:pointer;
}

menu.reasons-menu a:hover {
background:rgb(153,153,153);
background:-moz-linear-gradient(100% 100% 90deg, rgb(102,102,102), rgb(153,153,153) 70%) repeat scroll 0 0 rgb(102,102,102);
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(153,153,153)), to(rgb(102,102,102)));
color:#fff;
text-decoration:none;
font-weignt:normal;
}

article.fhitem-story menu.reasons-menu a:hover {
background:#002323 !important;
background:-moz-linear-gradient(100% 100% 90deg, #002323, #005353 70%) repeat scroll 0 0 #002323 !important;
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#005353), to(#002323)) !important;
}


menu.reasons-menu {
	display:none;
	margin:0;
	padding:0;
}

div.fhitem h3 menu.reasons-menu {
margin:0.25em 0 0;
}

div.fhitem h3 menu.reasons-menu a.tag {
font-size:.8em;
}

#tag-menu a.slash-hover,
#feedback-menu a.slash-hover,

.tag-display span.tag:hover,
.tag-display span.tag.trigger {
	color:white;
	background-color:rgb(0, 85, 85);
}

#tag-menu a.slash-hover span.var-tag {
	color:#eee;
}

.tag-entry.default {
        color:#ccc;
}

.brief .nix {
	margin-top:-1.35em;
	margin-left:0px;
	margin-top:-1.15em;
	text-decoration:none;
	line-height:1.35em;
	padding:0 2px;
	-moz-border-radius:.6em 0 0 .6em;
	-webkit-border-radius:.6em 0 0 .6em;
	-o-border-radius:.6em 0 0 .6em;
	border-radius:.6em 0 0 .6em;
    color:#fff !important;
    background:transparent !important;
}

.brief .nix:hover {
    background:rgb(153,153,153) !important;
    background:-moz-linear-gradient(100% 100% 90deg, rgb(102,102,102), rgb(153,153,153) 70%) repeat scroll 0 0 rgb(102,102,102) !important;
    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(153,153,153)), to(rgb(102,102,102))) !important;
}

</style>

<menu id="nix-reasons" style="display:none">
	<a class="tag">binspam</a><a class="tag">dupe</a><a class="tag">notthebest</a><a class="tag">offtopic</a><a class="tag">slownewsday</a><a class="tag">stale</a><a class="tag">stupid</a>
</menu>
<menu id="nod-reasons" style="display:none">
	<a class="tag">fresh</a><a class="tag">funny</a><a class="tag">insightful</a><a class="tag">interesting</a><a class="tag">maybe</a>
</menu>
<menu id="comment-nix-reasons" style="display:none">
	<a class="tag">offtopic</a><a class="tag">flamebait</a><a class="tag">troll</a><a class="tag">redundant</a><a class="tag">overrated</a>
</menu>
<menu id="comment-nod-reasons" style="display:none">
	<a class="tag">insightful</a><a class="tag">interesting</a><a class="tag">informative</a><a class="tag">funny</a><a class="tag">underrated</a>
</menu>

<menu id="tag-nod-reasons" style="display:none">
	<a class="tag">descriptive</a>
</menu>
<menu id="feedback-menu" class="tag-menu-admin" type="context">
	<a class="tag">typo</a><a class="tag">dupe</a><a class="tag">error</a>
</menu>
<menu id="tag-menu" class="tag-menu-admin none" type="context">

<!--	<a data-op="!" class="nix">!<span class="var-tag hide"></span></a>-->

</menu>

<script type="text/javascript">
$(function(){
var $CURRENT_MENU, $TAG_MENU=$('#tag-menu'), NOTNOT=/^!!/, IE7=/^7\.0/, TAG_PREFIX=/^\/tag\//;

function get_tag_name( $tag ){
	return ($tag.attr('href') || '').replace(TAG_PREFIX, '') || $tag.text().toLowerCase();
}

function trigger_menu( e, selector, $menu, menu_content ){
	var $target=$(original_target(e, selector)), in_use=$target.is('.trigger');
	if ( $CURRENT_MENU ) {
		$CURRENT_MENU.menu('cancel', e);
		$CURRENT_MENU = null;
	}

	if ( !in_use ) {
		menu_content && $menu.stop(true, true).hide().html(menu_content);
		($CURRENT_MENU=$menu).menu('context', e);
	}
	return !in_use;
}

function open_menu( trigger, $menu ){
	var $trigger=$(trigger), $fhitem=$trigger.closest('.fhitem');
	$fhitem.length && user_intent('interest', $fhitem[0]);

	$menu.appendTo(document.body).css({ opacity:0 }).show();

	var 	right	= $fhitem.offset().left + $fhitem.width(),
		global	= $trigger.offset(),
		local	= $menu.offsetParent().offset();

	// Ugly IE position hack required:
	$.browser.msie && IE7.test($.browser.version) && (local.top = 0);

	// pin the menu (horizontally) on-screen
	global.left = Math.min(global.left, right-$menu.width());

	$trigger.addClass('trigger');
	$menu.css({
		position:	'absolute',
		top:		global.top - local.top + $trigger.height(),
		left:		global.left - local.left,
		opacity:	1
	});
}

function close_menu( trigger, $menu ){
	$menu.hide();
	$(trigger).removeClass('trigger');
	($CURRENT_MENU===$menu) && ($CURRENT_MENU=false);
}

/* T2 tag context-menu */
var $TAG_MENU=$('#tag-menu'), NOTNOT=/^!!/;


    var user_is_admin = 0;



$('a[rel=tag]').live('mousedown',function(ea){
    window.open(this.href);
    return false;
})

$('.tag-bar .disagree').live('mousedown',function(ee){
	var fhitem = $(original_target(ee)).closest('.fhitem')[0],
		command = ('!' + $(original_target(ee)).attr("data-tag")).replace(NOTNOT, '');
    try { Tags.submit(fhitem, command); } catch ( err ) {  }
    return false;
})



$('a[rel=tag]').
	live('mousedown', function( e ){
        
            return true;
        

	}).
	live('click', function( e ){
		if ( !logged_in ) {
			var	target	= original_target(e),
				tag	= $(target).text();
			addfhfilter(tag);
		}
		e.preventDefault();
		return false;
	});

$TAG_MENU.menu({
	cssNamespace: 'slash',
	liveTriggers: true,
	clickDuration: 300,

	start: function( e, ui ){
		var	$tag	= $(ui.trigger),
			tag	= get_tag_name($tag),
			context	= firehose_settings && firehose_settings.viewtitle;

		// Insert the tagname into the menu items where needed.
		$TAG_MENU.find('span.var-tag').text(tag);
		$TAG_MENU.find('a.nix').attr('title','not ' + tag);


			// non-admins may only delete their own tags
		$TAG_MENU.find('a:[data-op="-"]').toggle($tag.is('.my'));
	

		// *tagname* in *viewtitle*
		$TAG_MENU.find('a:[data-op="="]').toggle(!!context);
		context && $TAG_MENU.find('span.var-view').text(context);

		open_menu($tag, $TAG_MENU);
	},

	select: function( e, ui ){
		var	$tag	= $(ui.trigger),
			tag	= get_tag_name($tag),
			op	= $(ui.select).attr('data-op'),
			fhitem,
			command;

		// Global for positioning other things.
		$related_trigger = $tag;

		switch ( op ) {
			case '=':
				addfhfilter(tag);
				break;

			default:
				fhitem = $tag.closest('.fhitem')[0];
				command = (op + tag).replace(NOTNOT, '');
				try { Tags.submit(fhitem, command); } catch ( err ) {  }
				break;
		}
	},

	stop: function( e, ui ){ close_menu(ui.trigger, $TAG_MENU); }
});




/* T2 feedback context-menu */



/* T2 datatype context-menu (admin-only) */






});
</script>
	



<div class="container">
	<div class="main-wrap  has-rail-right">
		<div class="main-content">
			<div id="firehose" class="nothumbs ">
				<!-- WIT -->
				<a name="articles"></a>


				
					
				


				<div id="firehoselist" class="fhroot row ">
					<div id="announcement">
  <div id="announcementText" style="display: none;"> <span class="headline">Migrate from GitHub to SourceForge quickly and easily with <strong><a href="https://sourceforge.net/p/forge/documentation/GitHub%20Importer/">this tool</a></strong>.</span> Check out all of SourceForge&rsquo;s <strong><a href="https://sourceforge.net/blog/brief-history-sourceforge-look-to-future/">recent improvements.</a></strong></div>
  <a href="" class="btn-close" title="don't show me this again" onclick="closeAnnouncement(); return false;">&times;</a>
</div>


<script type="text/javascript">

if (!$.cookie('hide_sitenotice_36')) {
	$('#announcement').fadeIn(300);
}

function closeAnnouncement() {
	$('#announcement').fadeOut(300);
	$.cookie('hide_sitenotice_36', 'true', { path: '/', domain: 'slashdot.org', expires: 1 });
}
</script>
					<article id="firehose-105744514" data-fhid="105744514" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105744514</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105744514">
			<a href="//slashdot.org/index2.pl?fhfilter=music" onclick="return addfhfilter('music');">
			
				<img src="//a.fsdn.com/sd/topics/music_64.png" width="64" height="64" alt="Music" title="Music">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105744514" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//entertainment.slashdot.org/story/19/01/14/2240234/tidal-under-criminal-investigation-in-norway-over-faked-streams">Tidal Under Criminal Investigation In Norway Over 'Faked' Streams</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.engadget.com/2019/01/14/tidal-criminal-investigation-faked-streams/"  title="External link - https://www.engadget.com/2019/01/14/tidal-criminal-investigation-faked-streams/" target="_blank"> (engadget.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105744514" style="display:none">0</span>-->
		

		
		<!-- comment bubble -->
		
	</h2>
	<div class="details" id="details-105744514">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  <a href="https://twitter.com/BeauHD" rel="nofollow">BeauHD</a>
			
		
		

		
		
		<time id="fhtime-105744514" datetime="on Monday January 14, 2019 @07:10PM">on Monday January 14, 2019 @07:10PM</time>
		
		
			 from the <span class="dept-text">would've-gotten-away-with-it-too-if-it-weren't-for-you-meddling-kids</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105744514">
	

	
		
		<div id="text-105744514" class="p">
			
		 	
				An anonymous reader quotes a report from Engadget: <i>High-fidelity music streaming service Tidal is <a href="https://www.engadget.com/2019/01/14/tidal-criminal-investigation-faked-streams/">under criminal investigation in Norway for allegedly inflating album streams</a> for Beyonce's Lemonade and Kanye West's The Life of Pablo. The alleged faking of streaming numbers was <a href="https://entertainment.slashdot.org/story/18/05/09/2058225/jay-zs-tidal-accused-of-faking-kanye-west-beyonce-streaming-numbers">exposed last year</a> by Norwegian newspaper Dagens Naeringsliv (DN), which said it had obtained a hard drive with the tampered data. Around 1.3 million accounts were supposedly used to lift the play counts of said albums by "several hundred million," with Tidal paying out higher royalty fees to the two artists and their record labels as a result.
<br> <br>
In the wake of the report, a Norwegian songwriter's association known as Tono filed an official police complaint against Tidal. The Jay-Z-owned streaming service denied the accusations and subsequently launched an internal review to be conducted by a third-party cyber security company, which is still ongoing. Today, <a href="https://www.dn.no/musikk/tidal/okokrim/musikernes-fellesorganisasjon/okokrim-har-sikret-avhor-av-interne-tidal-varslere/2-1-517241">DN revealed</a> that Norway's National Authority for Investigation and Prosecution of Economic and Environmental Crime (Okokrim) has begun an investigation into data manipulation at Tidal. Though still in its early stages, Okokrim says that at least four former Tidal employees (including its former head of business intelligence -- responsible for analyzing streams) have been interrogated in front of a judge as part of the investigation. The quartet have faced a total of 25 hours of questioning thus far.</i> Three former staffers reportedly recognized signs of meddling with the albums and contacted a lawyer before notifying Tidal. "All three individuals resigned from the company in 2016 after signing what a DN source called 'the gold standard of confidentiality contracts,'" reports Engadget.<br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://entertainment.slashdot.org/story/19/01/14/2240234/tidal-under-criminal-investigation-in-norway-over-faked-streams"
				  data-janrain-title="Tidal Under Criminal Investigation In Norway Over 'Faked' Streams"
				  data-janrain-message="Tidal Under Criminal Investigation In Norway Over 'Faked' Streams @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105744514" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/court" target="_blank">court</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/internet" target="_blank">internet</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/music" target="_blank">music</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105744238" data-fhid="105744238" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105744238</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105744238">
			<a href="//slashdot.org/index2.pl?fhfilter=security" onclick="return addfhfilter('security');">
			
				<img src="//a.fsdn.com/sd/topics/security_64.png" width="64" height="64" alt="Security" title="Security">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105744238" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//it.slashdot.org/story/19/01/14/2229223/hack-allows-escape-of-play-with-docker-containers">Hack Allows Escape of Play-With-Docker Containers</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://threatpost.com/hack-allows-escape-of-play-with-docker-containers/140831/"  title="External link - https://threatpost.com/hack-allows-escape-of-play-with-docker-containers/140831/" target="_blank"> (threatpost.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105744238" >6</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//it.slashdot.org/story/19/01/14/2229223/hack-allows-escape-of-play-with-docker-containers#comments" title="">6</a></span>
		
	</h2>
	<div class="details" id="details-105744238">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  <a href="https://twitter.com/BeauHD" rel="nofollow">BeauHD</a>
			
		
		

		
		
		<time id="fhtime-105744238" datetime="on Monday January 14, 2019 @06:30PM">on Monday January 14, 2019 @06:30PM</time>
		
		
			 from the <span class="dept-text">proof-of-concept</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105744238">
	

	
		
		<div id="text-105744238" class="p">
			
		 	
				<a href="/~secwatcher">secwatcher</a> quotes a report from Threatpost: <i>Researchers hacked the Docker test platform called Play-with-Docker, <a href="https://threatpost.com/hack-allows-escape-of-play-with-docker-containers/140831/">allowing them to access data and manipulate any test Docker containers running on the host system</a>. The proof-of-concept hack does not impact production Docker instances, according to CyberArk researchers that developed the proof-of-concept attack. "The team was able to escape the container and run code remotely right on the host, which has obvious security implications," wrote researchers in a technical <a href="https://www.cyberark.com/threat-research-blog/how-i-hacked-play-with-docker-and-remotely-ran-code-on-the-host/">write-up posted Monday</a>.

<br> <br>

Play-with-Docker is an open source free in-browser online playground designed to help developers learn how to use containers. While Play-with-Docker has the support of Docker, it was not created by nor is it maintained by the firm. The environment approximates having the Alpine Linux Virtual Machine in browser, allowing users to build and run Docker containers in various configurations. </i> The vulnerability was reported to the developers of the platform on November 6. On January 7, the bug was patched. As for how many instances of Play-with-Docker may have been affected, "CyberArk estimated there were as many as 200 instances of containers running on the platform it analyzed," reports Threatpost. "It also estimates the domain receives 100,000 monthly site visitors."<br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://it.slashdot.org/story/19/01/14/2229223/hack-allows-escape-of-play-with-docker-containers"
				  data-janrain-title="Hack Allows Escape of Play-With-Docker Containers"
				  data-janrain-message="Hack Allows Escape of Play-With-Docker Containers @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105744238" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/bug" target="_blank">bug</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/patch" target="_blank">patch</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/privacy" target="_blank">privacy</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105743946" data-fhid="105743946" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105743946</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105743946">
			<a href="//slashdot.org/index2.pl?fhfilter=cellphones" onclick="return addfhfilter('cellphones');">
			
				<img src="//a.fsdn.com/sd/topics/cellphones_64.png" width="64" height="64" alt="Cellphones" title="Cellphones">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105743946" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//hardware.slashdot.org/story/19/01/14/2217249/apple-wanted-to-use-qualcomm-chips-for-its-2018-iphones-but-qualcomm-refused-because-of-companies-licensing-dispute">Apple Wanted To Use Qualcomm Chips For Its 2018 iPhones, But Qualcomm Refused Because of Companies' Licensing Dispute</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.cnet.com/news/apple-wanted-to-use-qualcomm-chips-in-its-newest-iphones-but-qualcomm-wouldnt-supply-jeff-williams-says-at-ftc/"  title="External link - https://www.cnet.com/news/apple-wanted-to-use-qualcomm-chips-in-its-newest-iphones-but-qualcomm-wouldnt-supply-jeff-williams-says-at-ftc/" target="_blank"> (cnet.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105743946" >34</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//hardware.slashdot.org/story/19/01/14/2217249/apple-wanted-to-use-qualcomm-chips-for-its-2018-iphones-but-qualcomm-refused-because-of-companies-licensing-dispute#comments" title="">34</a></span>
		
	</h2>
	<div class="details" id="details-105743946">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  <a href="https://twitter.com/BeauHD" rel="nofollow">BeauHD</a>
			
		
		

		
		
		<time id="fhtime-105743946" datetime="on Monday January 14, 2019 @05:50PM">on Monday January 14, 2019 @05:50PM</time>
		
		
			 from the <span class="dept-text">takes-two-to-tango</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105743946">
	

	
		
		<div id="text-105743946" class="p">
			
		 	
				Apple's operating chief said on Monday that Qualcomm <a href="https://www.cnet.com/news/apple-wanted-to-use-qualcomm-chips-in-its-newest-iphones-but-qualcomm-wouldnt-supply-jeff-williams-says-at-ftc/">refused to sell its 4G LTE processors to the company</a> due to the companies' licensing dispute. According to CNET, that decision "had a ripple effect on how quickly Apple can make the shift to 5G." From the report: <i> Qualcomm continues to provide Apple with chips for its older iPhones, including the iPhone 7 and 7 Plus, Apple COO Jeff Williams testified Monday during the US Federal Trade Commission's trial against Qualcomm. But it won't provide Apple with processors for the newest iPhones, designed since the two began fighting over patents, he said. And Williams believes the royalty rate Apple paid for using Qualcomm patents -- $7.50 per iPhone -- is too high.
<br> <br>
The FTC has accused Qualcomm of operating a monopoly in wireless chips, forcing customers like Apple to work with it exclusively and charging excessive licensing fees for its technology. The FTC has said that Qualcomm forced Apple to pay licensing fees for its technology in exchange for using its chips in iPhones. The trial kicked off Jan. 4 in US District Court in San Jose, California. Testimony covers negotiations and events that occurred before March 2018 and can't encompass anything after that date.  </i> Apple is expected to only use Intel chips in its next iPhones, something that will make Apple late to the market for 5G phones. "By the 2019 holiday season, every major Android vendor in the U.S. will have a 5G phone available," reports CNET. "But Intel's 5G modem isn't expected to hit phones until 2020."<br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://hardware.slashdot.org/story/19/01/14/2217249/apple-wanted-to-use-qualcomm-chips-for-its-2018-iphones-but-qualcomm-refused-because-of-companies-licensing-dispute"
				  data-janrain-title="Apple Wanted To Use Qualcomm Chips For Its 2018 iPhones, But Qualcomm Refused Because of Companies' Licensing Dispute"
				  data-janrain-message="Apple Wanted To Use Qualcomm Chips For Its 2018 iPhones, But Qualcomm Refused Because of Companies' Licensing Dispute @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105743946" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/court" target="_blank">court</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/hardware" target="_blank">hardware</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/intel" target="_blank">intel</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105743696" data-fhid="105743696" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105743696</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105743696">
			<a href="//slashdot.org/index2.pl?fhfilter=windows" onclick="return addfhfilter('windows');">
			
				<img src="//a.fsdn.com/sd/topics/windows_64.png" width="64" height="64" alt="Windows" title="Windows">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105743696" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//tech.slashdot.org/story/19/01/14/228236/windows-7-enters-its-final-year-of-free-support">Windows 7 Enters Its Final Year of Free Support</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://arstechnica.com/gadgets/2019/01/windows-7-enters-its-final-year-of-free-support/"  title="External link - https://arstechnica.com/gadgets/2019/01/windows-7-enters-its-final-year-of-free-support/" target="_blank"> (arstechnica.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105743696" >48</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//tech.slashdot.org/story/19/01/14/228236/windows-7-enters-its-final-year-of-free-support#comments" title="">48</a></span>
		
	</h2>
	<div class="details" id="details-105743696">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  <a href="https://twitter.com/BeauHD" rel="nofollow">BeauHD</a>
			
		
		

		
		
		<time id="fhtime-105743696" datetime="on Monday January 14, 2019 @05:10PM">on Monday January 14, 2019 @05:10PM</time>
		
		
			 from the <span class="dept-text">public-service-announcement</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105743696">
	

	
		
		<div id="text-105743696" class="p">
			
		 	
				An anonymous reader quotes a report from Ars Technica: <i>Windows 7's five years of extended support <a href="https://arstechnica.com/gadgets/2019/01/windows-7-enters-its-final-year-of-free-support/">will expire on January 14, 2020</a> -- exactly one year from today. After this date, security fixes will no longer be freely available for the operating system that's still widely used. As always, the end of free support does not mean the end of support entirely. Microsoft has long offered paid support options for its operating systems beyond their normal lifetime, and Windows 7 is no different. What is different is the way that paid support will be offered. For previous versions of Windows, companies had to enter into a support contract of some kind to continue to receive patches. For Windows 7, however, the extra patches will simply be an optional extra that can be added to an existing volume license subscription -- no separate support contract needed -- on a per-device basis. These <a href="https://www.microsoft.com/en-us/cloud-platform/extended-security-updates">Extended Security Updates</a> (ESU) will be available for three years after the 2020 cut-off, with prices escalating each year.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://tech.slashdot.org/story/19/01/14/228236/windows-7-enters-its-final-year-of-free-support"
				  data-janrain-title="Windows 7 Enters Its Final Year of Free Support"
				  data-janrain-message="Windows 7 Enters Its Final Year of Free Support @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105743696" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/os" target="_blank">os</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/security" target="_blank">security</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/software" target="_blank">software</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105740954" data-fhid="105740954" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105740954</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105740954">
			<a href="//slashdot.org/index2.pl?fhfilter=security" onclick="return addfhfilter('security');">
			
				<img src="//a.fsdn.com/sd/topics/security_64.png" width="64" height="64" alt="Security" title="Security">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105740954" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//tech.slashdot.org/story/19/01/14/2027234/web-hosting-sites-bluehost-dreamhost-hostgator-ovh-and-ipage-were-vulnerable-to-simple-account-takeover-hacks">Web Hosting Sites Bluehost, DreamHost, Hostgator, OVH and iPage Were Vulnerable To Simple Account Takeover Hacks</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://techcrunch.com/2019/01/14/web-hosting-account-hacks/"  title="External link - https://techcrunch.com/2019/01/14/web-hosting-account-hacks/" target="_blank"> (techcrunch.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105740954" >12</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//tech.slashdot.org/story/19/01/14/2027234/web-hosting-sites-bluehost-dreamhost-hostgator-ovh-and-ipage-were-vulnerable-to-simple-account-takeover-hacks#comments" title="">12</a></span>
		
	</h2>
	<div class="details" id="details-105740954">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105740954" datetime="on Monday January 14, 2019 @04:30PM">on Monday January 14, 2019 @04:30PM</time>
		
		
			 from the <span class="dept-text">security-woes</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105740954">
	

	
		
		<div id="text-105740954" class="p">
			
		 	
				A security researcher has found, reported and now disclosed a dozen bugs that <a href="https://www.websiteplanet.com/blog/report-popular-hosting-hacked">made it easy to steal sensitive information or take over any customer's account</a> from some of the largest web hosting companies on the internet. From a news report:<i> In some cases, clicking on a simple link would have been enough for Paulos Yibelo, a well-known and respected bug hunter, to take over the accounts of anyone using five large hosting providers -- Bluehost, DreamHost, Hostgator, OVH and iPage. "<a href="https://techcrunch.com/2019/01/14/web-hosting-account-hacks/">All five had at least one serious vulnerability allowing a user account hijack</a>," he told <em>TechCrunch</em>, with which he shared his findings before going public. The results of his vulnerability testing likely wouldn't fill customers with much confidence. The bugs, now fixed -- according to Yibelo's writeup -- represent cases of aging infrastructure, complicated and sprawling web-based back-end systems and companies each with a massive user base -- with the potential to go easily wrong. In all, the bugs could have been used to target any number of the collective two million domains under Endurance-owned Bluehost, Hostgator and iPage, DreamHost's one million domains and OVH's four million domains -- totaling some seven million domains.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://tech.slashdot.org/story/19/01/14/2027234/web-hosting-sites-bluehost-dreamhost-hostgator-ovh-and-ipage-were-vulnerable-to-simple-account-takeover-hacks"
				  data-janrain-title="Web Hosting Sites Bluehost, DreamHost, Hostgator, OVH and iPage Were Vulnerable To Simple Account Takeover Hacks"
				  data-janrain-message="Web Hosting Sites Bluehost, DreamHost, Hostgator, OVH and iPage Were Vulnerable To Simple Account Takeover Hacks @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105740954" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/it" target="_blank">it</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/security" target="_blank">security</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/technology" target="_blank">technology</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105741754" data-fhid="105741754" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105741754</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105741754">
			<a href="//slashdot.org/index2.pl?fhfilter=privacy" onclick="return addfhfilter('privacy');">
			
				<img src="//a.fsdn.com/sd/topics/privacy_64.png" width="64" height="64" alt="Privacy" title="Privacy">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105741754" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//yro.slashdot.org/story/19/01/14/2056257/feds-cant-force-you-to-unlock-your-iphone-with-finger-or-face-judge-rules">Feds Can't Force You To Unlock Your iPhone With Finger Or Face, Judge Rules</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.forbes.com/sites/thomasbrewster/2019/01/14/feds-cant-force-you-to-unlock-your-iphone-with-finger-or-face-judge-rules/"  title="External link - https://www.forbes.com/sites/thomasbrewster/2019/01/14/feds-cant-force-you-to-unlock-your-iphone-with-finger-or-face-judge-rules/" target="_blank"> (forbes.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105741754" >89</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//yro.slashdot.org/story/19/01/14/2056257/feds-cant-force-you-to-unlock-your-iphone-with-finger-or-face-judge-rules#comments" title="">89</a></span>
		
	</h2>
	<div class="details" id="details-105741754">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105741754" datetime="on Monday January 14, 2019 @03:57PM">on Monday January 14, 2019 @03:57PM</time>
		
		
			 from the <span class="dept-text">landmark-ruling</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105741754">
	

	
		
		<div id="text-105741754" class="p">
			
		 	
				A California judge has ruled that American cops <a href="https://www.forbes.com/sites/thomasbrewster/2019/01/14/feds-cant-force-you-to-unlock-your-iphone-with-finger-or-face-judge-rules/">can't force people to unlock a mobile phone with their face or finger</a>. The ruling goes further to protect people's private lives from government searches than any before and is being hailed as a potentially landmark decision. From a report:<i> Previously, U.S. judges had ruled that police were allowed to force unlock devices like Apple's iPhone with biometrics, such as fingerprints, faces or irises. That was despite the fact feds weren't permitted to force a suspect to divulge a passcode. But according to a <a href="https://www.documentcloud.org/documents/5684083-Judge-Says-Facial-Recognition-Unlocks-Not.html">ruling uncovered by <em>Forbes</em></a>, all logins are equal. The order came from the U.S. District Court for the Northern District of California in the denial of a search warrant for an unspecified property in Oakland. The warrant was filed as part of an investigation into a Facebook extortion crime, in which a victim was asked to pay up or have an "embarassing" video of them publicly released. The cops had some suspects in mind and wanted to raid their property. In doing so, the feds also wanted to open up any phone on the premises via facial recognition, a fingerprint or an iris.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://yro.slashdot.org/story/19/01/14/2056257/feds-cant-force-you-to-unlock-your-iphone-with-finger-or-face-judge-rules"
				  data-janrain-title="Feds Can't Force You To Unlock Your iPhone With Finger Or Face, Judge Rules"
				  data-janrain-message="Feds Can't Force You To Unlock Your iPhone With Finger Or Face, Judge Rules @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105741754" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/court" target="_blank">court</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/iphone" target="_blank">iphone</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/privacy" target="_blank">privacy</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105740512" data-fhid="105740512" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105740512</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105740512">
			<a href="//slashdot.org/index2.pl?fhfilter=communications" onclick="return addfhfilter('communications');">
			
				<img src="//a.fsdn.com/sd/topics/communications_64.png" width="64" height="64" alt="Communications" title="Communications">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105740512" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//tech.slashdot.org/story/19/01/14/2012204/the-super-secure-quantum-cable-hiding-in-the-holland-tunnel">The Super-Secure Quantum Cable Hiding In the Holland Tunnel</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.bloombergquint.com/businessweek/the-super-secure-quantum-cable-hiding-in-the-holland-tunnel"  title="External link - https://www.bloombergquint.com/businessweek/the-super-secure-quantum-cable-hiding-in-the-holland-tunnel" target="_blank"> (bloombergquint.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105740512" >84</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//tech.slashdot.org/story/19/01/14/2012204/the-super-secure-quantum-cable-hiding-in-the-holland-tunnel#comments" title="">84</a></span>
		
	</h2>
	<div class="details" id="details-105740512">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105740512" datetime="on Monday January 14, 2019 @03:15PM">on Monday January 14, 2019 @03:15PM</time>
		
		
			 from the <span class="dept-text">how-about-that</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105740512">
	

	
		
		<div id="text-105740512" class="p">
			
		 	
				<a href="/~Zorro">Zorro</a> shares a report:<i> Commuters inching through rush-hour traffic in the Holland Tunnel between Lower Manhattan and New Jersey don't know it, but a technology likely to be the future of communication is being tested right outside their car windows. Running through the tunnel is a <a href="https://www.bloombergquint.com/businessweek/the-super-secure-quantum-cable-hiding-in-the-holland-tunnel">fiber-optic cable that harnesses the power of quantum mechanics to protect critical banking data from potential spies</a>.<br> <br>

The cable's trick is a technology called quantum key distribution, or QKD. Any half-decent intelligence agency can physically tap normal fiber optics and intercept whatever messages the networks are carrying: They bend the cable with a small clamp, then use a specialized piece of hardware to split the beam of light that carries digital ones and zeros through the line. The people communicating have no way of knowing someone is eavesdropping, because they're still getting their messages without any perceptible delay.<br> <br>

QKD solves this problem by taking advantage of the quantum physics notion that light -- normally thought of as a wave -- can also behave like a particle. At each end of the fiber-optic line, QKD systems, which from the outside look like the generic black-box servers you might find in any data center, use lasers to fire data in weak pulses of light, each just a little bigger than a single photon. If any of the pulses' paths are interrupted and they don't arrive at the endpoint at the expected nanosecond, the sender and receiver know their communication has been compromised.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://tech.slashdot.org/story/19/01/14/2012204/the-super-secure-quantum-cable-hiding-in-the-holland-tunnel"
				  data-janrain-title="The Super-Secure Quantum Cable Hiding In the Holland Tunnel"
				  data-janrain-message="The Super-Secure Quantum Cable Hiding In the Holland Tunnel @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105740512" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/usa" target="_blank">usa</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/communications" target="_blank">communications</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/privacy" target="_blank">privacy</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105705110" data-fhid="105705110" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105705110</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105705110">
			<a href="//slashdot.org/index2.pl?fhfilter=business" onclick="return addfhfilter('business');">
			
				<img src="//a.fsdn.com/sd/topics/business_64.png" width="64" height="64" alt="Businesses" title="Businesses">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105705110" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//games.slashdot.org/story/19/01/13/2017234/battlefield-5s-poor-sales-numbers-have-become-a-disaster-for-electronic-arts">Battlefield 5's Poor Sales Numbers Have Become a Disaster For Electronic Arts</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://seekingalpha.com/article/4229279-electronic-arts-expect-additional-estimate-reductions-battlefield-v-sales-disappoint"  title="External link - https://seekingalpha.com/article/4229279-electronic-arts-expect-additional-estimate-reductions-battlefield-v-sales-disappoint" target="_blank"> (seekingalpha.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105705110" >530</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//games.slashdot.org/story/19/01/13/2017234/battlefield-5s-poor-sales-numbers-have-become-a-disaster-for-electronic-arts#comments" title="">530</a></span>
		
	</h2>
	<div class="details" id="details-105705110">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  <a href="https://twitter.com/BeauHD" rel="nofollow">BeauHD</a>
			
		
		

		
		
		<time id="fhtime-105705110" datetime="on Monday January 14, 2019 @02:55PM">on Monday January 14, 2019 @02:55PM</time>
		
		
			 from the <span class="dept-text">cause-and-effect</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105705110">
	

	
		
		<div id="text-105705110" class="p">
			
		 	
				<a href="/~dryriver">dryriver</a> writes: <i>Electronic Arts has mismanaged the Battlefield franchise in the past -- BF3 and BF4 were not great from a gameplay perspective -- but with Battlefield 5, Electronic Arts is facing a real disaster that has sent its stock plummeting on the stock exchanges. First came the fierce cultural internet backlash from gamers to the <a href="https://www.youtube.com/watch?v=fb1MR85XFOc">Battlefield 5 reveal trailer</a> -- EA tried to inject so much 21st Century gender diversity and Hollywood action-movie style fighting into what was supposed to be a reasonably historically accurate WWII shooter trailer, that many gamers felt the game would be "a seriously inauthentic portrayal of what WW2 warfare really was like." Then the game sold very poorly after <a href="https://www.pcgamer.com/battlefield-5-release-date-delayed-to-november/">a delayed launch date</a> -- far less than the mildly successful WW1 shooter Battlefield 1 for example -- and is currently discounted by 33% to 50% at all major game retailers to try desperately to push sales numbers up. This was also a disaster for Nvidia, as Battlefield 5 was the tentpole title supposed to entice gamers into buying expensive new realtime ray-tracing <a href="https://hardware.slashdot.org/story/18/08/20/2112209/nvidia-unveils-powerful-new-rtx-2070-and-2080-graphics-cards">Nvidia 2080 RTX GPUs</a>. <br> <br>Electronic Arts had to revise its earnings estimates for 2019, some hedge funds sold off their EA stock, fearing low sales and stiff competition from popular Battle Royal games like Fortnite and PUBG, and EA stock is currently 45% down from its peak value in July 2018. EA had already become seriously unpopular with gamers because of annoying Battlefield franchise in-game mechanisms such as heaving to buy decent-aiming-accuracy weapons with additional cash, having to constantly pay for additional DLC content and game maps, and the very poor multiplayer gameplay of its two Star Wars: Battlefront titles (essentially Battlefield with laser blasters set in the Star Wars Universe). It seems that with Battlefield 5, EA -- not a company known for listening to its customers -- finally hit a brick wall, in the form of many Battlefield fans simply not buying or playing Battlefield 5.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://games.slashdot.org/story/19/01/13/2017234/battlefield-5s-poor-sales-numbers-have-become-a-disaster-for-electronic-arts"
				  data-janrain-title="Battlefield 5's Poor Sales Numbers Have Become a Disaster For Electronic Arts"
				  data-janrain-message="Battlefield 5's Poor Sales Numbers Have Become a Disaster For Electronic Arts @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105705110" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/business" target="_blank">business</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/ea" target="_blank">ea</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/games" target="_blank">games</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105739864" data-fhid="105739864" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105739864</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105739864">
			<a href="//slashdot.org/index2.pl?fhfilter=google" onclick="return addfhfilter('google');">
			
				<img src="//a.fsdn.com/sd/topics/google_64.png" width="64" height="64" alt="Google" title="Google">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105739864" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//tech.slashdot.org/story/19/01/14/1948207/android-studio-33-now-available-to-download-on-stable-channel-new-version-focuses-on-refinement-and-quality">Android Studio 3.3 Now Available To Download On Stable Channel, New Version Focuses On 'Refinement and Quality'</a></span>

		
		
		<!--<span class="comments commentcnt-105739864" >14</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//tech.slashdot.org/story/19/01/14/1948207/android-studio-33-now-available-to-download-on-stable-channel-new-version-focuses-on-refinement-and-quality#comments" title="">14</a></span>
		
	</h2>
	<div class="details" id="details-105739864">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105739864" datetime="on Monday January 14, 2019 @02:48PM">on Monday January 14, 2019 @02:48PM</time>
		
		
			 from the <span class="dept-text">IDE-updates</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105739864">
	

	
		
		<div id="text-105739864" class="p">
			
		 	
				Android Studio 3.3 is now available to <a href="https://developer.android.com/studio/">download through stable channel</a>, Google said Monday. The top new features of Android Studio 3.3 include a navigation editor, profiler tracking options, improvements on the build system, and lazy task configuration. However, the big focus with the new version was on "<a href="https://android-developers.googleblog.com/2019/01/">refinement and quality</a>," the company said. <b>Further reading:</b> <a href="https://venturebeat.com/2019/01/14/google-launches-android-studio-3-3-with-focus-on-refinement-and-quality/">VentureBeat</a>.
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://tech.slashdot.org/story/19/01/14/1948207/android-studio-33-now-available-to-download-on-stable-channel-new-version-focuses-on-refinement-and-quality"
				  data-janrain-title="Android Studio 3.3 Now Available To Download On Stable Channel, New Version Focuses On 'Refinement and Quality'"
				  data-janrain-message="Android Studio 3.3 Now Available To Download On Stable Channel, New Version Focuses On 'Refinement and Quality' @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105739864" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/android" target="_blank">android</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/google" target="_blank">google</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/developers" target="_blank">developers</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105738654" data-fhid="105738654" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105738654</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105738654">
			<a href="//slashdot.org/index2.pl?fhfilter=business" onclick="return addfhfilter('business');">
			
				<img src="//a.fsdn.com/sd/topics/business_64.png" width="64" height="64" alt="Businesses" title="Businesses">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105738654" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//news.slashdot.org/story/19/01/14/199251/the-last-of-manhattans-original-video-arcades">The Last of Manhattan's Original Video Arcades</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.nytimes.com/2019/01/14/style/old-arcades-new-york-chinatown-fair.html"  title="External link - https://www.nytimes.com/2019/01/14/style/old-arcades-new-york-chinatown-fair.html" target="_blank"> (nytimes.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105738654" >49</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//news.slashdot.org/story/19/01/14/199251/the-last-of-manhattans-original-video-arcades#comments" title="">49</a></span>
		
	</h2>
	<div class="details" id="details-105738654">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105738654" datetime="on Monday January 14, 2019 @02:10PM">on Monday January 14, 2019 @02:10PM</time>
		
		
			 from the <span class="dept-text">closer-look</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105738654">
	

	
		
		<div id="text-105738654" class="p">
			
		 	
				Video arcades -- those recreational arenas of illuminated screens and 8-bit soundtracks -- have been fading from the cultural landscape since the end of the Donkey Kong '80s. The advent of home video game consoles, hand-held gaming devices and smartphones has all but rendered them relics of a Gen X childhood. Yet somehow, <a href="https://www.nytimes.com/2019/01/14/style/old-arcades-new-york-chinatown-fair.html">Chinatown Fair Family Fun Center lives on</a>.

From a report:<i> The cramped downtown institution is among the last of the city's old-school arcades, often filled with gamers too young to remember Street Fighter IV a decade ago, let alone Missile Command in the Reagan years. "Chinatown Fair should have closed years ago, along with all the other arcades in the city, due to rising rent and the shift to online gaming," said Kurt Vincent, who directed "The Lost Arcade," a 2016 documentary about the arcade's enduring legacy in the city. "But it's still there on Mott Street after all these years because young people need a place to come together." <br> <br>

Say this about Chinatown Fair: It has been defying the odds for decades. The place opened in the 1940s as an "amusement arcade" in an era when Skee-Ball represented the apex of arcade fun. As youth tastes changed in the ensuing years, so too did Chinatown Fair. The arcade survived the rise and fall of pinball, the rise and fall of Pac-Man, the rise and fall of Super Nintendo, and perhaps most unimaginably, the rise, and rise some more, of Manhattan real estate prices.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://news.slashdot.org/story/19/01/14/199251/the-last-of-manhattans-original-video-arcades"
				  data-janrain-title="The Last of Manhattan's Original Video Arcades"
				  data-janrain-message="The Last of Manhattan's Original Video Arcades @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105738654" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/business" target="_blank">business</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/usa" target="_blank">usa</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/entertainment" target="_blank">entertainment</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105737226" data-fhid="105737226" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105737226</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105737226">
			<a href="//slashdot.org/index2.pl?fhfilter=internet" onclick="return addfhfilter('internet');">
			
				<img src="//a.fsdn.com/sd/topics/internet_64.png" width="64" height="64" alt="The Internet" title="The Internet">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105737226" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//tech.slashdot.org/story/19/01/14/1821233/godaddy-is-injecting-site-breaking-javascript-into-customer-websites">GoDaddy is Injecting Site-Breaking JavaScript Into Customer Websites</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.techrepublic.com/article/godaddy-injecting-site-breaking-javascript-into-customer-websites-heres-a-fix/"  title="External link - https://www.techrepublic.com/article/godaddy-injecting-site-breaking-javascript-into-customer-websites-heres-a-fix/" target="_blank"> (techrepublic.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105737226" >63</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//tech.slashdot.org/story/19/01/14/1821233/godaddy-is-injecting-site-breaking-javascript-into-customer-websites#comments" title="">63</a></span>
		
	</h2>
	<div class="details" id="details-105737226">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105737226" datetime="on Monday January 14, 2019 @01:25PM">on Monday January 14, 2019 @01:25PM</time>
		
		
			 from the <span class="dept-text">closer-look</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105737226">
	

	
		
		<div id="text-105737226" class="p">
			
		 	
				Web hosting service GoDaddy is injecting JavaScript into customer websites that could impact the overall performance of the website or even render it inoperable, according to Australian programmer Igor Kromin. From a report:<i> GoDaddy's analytics system is based on W3C Navigation Timing, but the company's practice of unilaterally opting in paying customers to an analytics service -- <a href="https://www.techrepublic.com/article/godaddy-injecting-site-breaking-javascript-into-customer-websites-heres-a-fix/">tracking the visitors to websites hosted on GoDaddy services -- without forewarning is deserving of criticism</a>. GoDaddy claims the technology, which it calls "Real User Metrics" (RUM), "[allows] us to identify internal bottlenecks and optimization opportunities by inserting a small snippet of javascript code into customer websites," that will "measure and track the performance of your website, and collects information such as connection time and page load time," adding that the script does not collect user information. The script name "Real User Metrics" is somewhat at odds with that claim; likewise, GoDaddy provides no definition of "user information." <br> <br>

GoDaddy claims "most customers won't experience issues when opted-in to RUM, but the JavaScript used may cause issues including slower site performance, or a broken/inoperable website," particularly for users of Accelerated Mobile Pages (AMP), and websites with pages containing multiple ending tags.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://tech.slashdot.org/story/19/01/14/1821233/godaddy-is-injecting-site-breaking-javascript-into-customer-websites"
				  data-janrain-title="GoDaddy is Injecting Site-Breaking JavaScript Into Customer Websites"
				  data-janrain-message="GoDaddy is Injecting Site-Breaking JavaScript Into Customer Websites @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105737226" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/internet" target="_blank">internet</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/godaddy" target="_blank">godaddy</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/web" target="_blank">web</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105736336" data-fhid="105736336" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105736336</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105736336">
			<a href="//slashdot.org/index2.pl?fhfilter=tv" onclick="return addfhfilter('tv');">
			
				<img src="//a.fsdn.com/sd/topics/tv_64.png" width="64" height="64" alt="Television" title="Television">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105736336" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//entertainment.slashdot.org/story/19/01/14/1749211/streaming-tv-may-never-again-be-as-simple-or-as-affordable-as-it-is-now">Streaming TV May Never Again Be as Simple, or as Affordable, as It is Now</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.sfgate.com/business/technology/article/Netflix-and-chill-no-more-streaming-is-getting-13510694.php"  title="External link - https://www.sfgate.com/business/technology/article/Netflix-and-chill-no-more-streaming-is-getting-13510694.php" target="_blank"> (sfgate.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105736336" >287</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//entertainment.slashdot.org/story/19/01/14/1749211/streaming-tv-may-never-again-be-as-simple-or-as-affordable-as-it-is-now#comments" title="">287</a></span>
		
	</h2>
	<div class="details" id="details-105736336">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105736336" datetime="on Monday January 14, 2019 @12:49PM">on Monday January 14, 2019 @12:49PM</time>
		
		
			 from the <span class="dept-text">closer-look</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105736336">
	

	
		
		<div id="text-105736336" class="p">
			
		 	
				An anonymous reader shares a report:<i> Disney and WarnerMedia are each launching their own streaming services in 2019 in a challenge to Netflix's dominance. Netflix viewers will no longer be able to watch hit movies such as "Black Panther" or "Moana," which will soon reside on Disney's subscription service. WarnerMedia, a unit of AT&amp;T, will also soon have its own service to showcase its library of blockbuster films and HBO series. Families will have to <a href="https://www.sfgate.com/business/technology/article/Netflix-and-chill-no-more-streaming-is-getting-13510694.php">decide between paying more each month or losing access to some of their favorite dramas, comedies, musicals and action flicks</a>. "There's definitely a lot of change coming," said Paul Verna at eMarketer, a digital research company. "People will have more choices of what to stream, but at the same time the market is already fragmented and intimidating and it is only going to get more so." <br> <br>

Media companies are seeking to capitalize on the popularity and profitability of streaming. But by fragmenting the market, they're also narrowing the once wide selection that fueled the rise of internet-based video. About 55 percent of U.S. households now subscribe to paid streaming video services, up from just 10 percent in 2009, according to research firm Deloitte. Just as Netflix, Hulu and Amazon Prime tempted people to "cut the cord" by canceling traditional cable TV packages, the newer services are looking to dismember those more-inclusive options. [...]
The cost of multiple streaming services could quickly approach the average cost of a cable bill -- not counting the cost of internet service. That's around $107 per month, according to Leichtman Research Group.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://entertainment.slashdot.org/story/19/01/14/1749211/streaming-tv-may-never-again-be-as-simple-or-as-affordable-as-it-is-now"
				  data-janrain-title="Streaming TV May Never Again Be as Simple, or as Affordable, as It is Now"
				  data-janrain-message="Streaming TV May Never Again Be as Simple, or as Affordable, as It is Now @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105736336" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/netflix" target="_blank">netflix</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/tv" target="_blank">tv</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/hulu" target="_blank">hulu</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105734824" data-fhid="105734824" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105734824</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105734824">
			<a href="//slashdot.org/index2.pl?fhfilter=it" onclick="return addfhfilter('it');">
			
				<img src="//a.fsdn.com/sd/topics/it_64.png" width="64" height="64" alt="IT" title="IT">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105734824" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//it.slashdot.org/story/19/01/14/1656224/a-guy-made-a-computer-mouse-that-is-also-a-functional-laptop">A Guy Made a Computer Mouse That is Also a Functional Laptop</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://motherboard.vice.com/en_us/article/d3bnb7/this-guy-made-a-computer-mouse-that-is-itself-a-computer"  title="External link - https://motherboard.vice.com/en_us/article/d3bnb7/this-guy-made-a-computer-mouse-that-is-itself-a-computer" target="_blank"> (vice.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105734824" >55</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//it.slashdot.org/story/19/01/14/1656224/a-guy-made-a-computer-mouse-that-is-also-a-functional-laptop#comments" title="">55</a></span>
		
	</h2>
	<div class="details" id="details-105734824">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105734824" datetime="on Monday January 14, 2019 @11:57AM">on Monday January 14, 2019 @11:57AM</time>
		
		
			 from the <span class="dept-text">because-why-not</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105734824">
	

	
		
		<div id="text-105734824" class="p">
			
		 	
				A YouTube user who goes by Electronic Grenade has <a href="https://motherboard.vice.com/en_us/article/d3bnb7/this-guy-made-a-computer-mouse-that-is-itself-a-computer">designed a computer mouse that is also a functional laptop</a>. From a report:<i> As detailed in a <a href="https://www.youtube.com/watch?v=bLjFe7Lzjs8">video published on Sunday</a>, the computer mouse computer consists of a 3d-printed mouse, a Raspberry Pi microcontroller, a small keyboard, and a handful of components that were taken from a normal computer mouse. "Even though the screen is attached to the mouse, the sensitivity of the mouse makes it not that hard to follow along with what is happening on the screen," Electronic Grenade said in the video. Nevertheless, the mouse does have its faults. According to Electronic Grenade, a few resource intensive applications will occasionally cause the mouse computer to crash.</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://it.slashdot.org/story/19/01/14/1656224/a-guy-made-a-computer-mouse-that-is-also-a-functional-laptop"
				  data-janrain-title="A Guy Made a Computer Mouse That is Also a Functional Laptop"
				  data-janrain-message="A Guy Made a Computer Mouse That is Also a Functional Laptop @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105734824" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/it" target="_blank">it</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/technology" target="_blank">technology</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/donotwant" target="_blank">donotwant</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105733764" data-fhid="105733764" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105733764</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105733764">
			<a href="//slashdot.org/index2.pl?fhfilter=intel" onclick="return addfhfilter('intel');">
			
				<img src="//a.fsdn.com/sd/topics/intel_64.png" width="64" height="64" alt="Intel" title="Intel">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105733764" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//slashdot.org/story/19/01/14/1620212/in-ceo-search-intel-still-hasnt-found-what-its-looking-for">In CEO Search, Intel Still Hasn't Found What It's Looking For</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.bloomberg.com/news/articles/2019-01-14/in-ceo-search-intel-still-hasn-t-found-what-it-s-looking-for"  title="External link - https://www.bloomberg.com/news/articles/2019-01-14/in-ceo-search-intel-still-hasn-t-found-what-it-s-looking-for" target="_blank"> (bloomberg.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105733764" >56</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//slashdot.org/story/19/01/14/1620212/in-ceo-search-intel-still-hasnt-found-what-its-looking-for#comments" title="">56</a></span>
		
	</h2>
	<div class="details" id="details-105733764">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105733764" datetime="on Monday January 14, 2019 @11:20AM">on Monday January 14, 2019 @11:20AM</time>
		
		
			 from the <span class="dept-text">quest-continues</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105733764">
	

	
		
		<div id="text-105733764" class="p">
			
		 	
				Intel has been trying to <a href="https://news.slashdot.org/story/18/06/21/1333258/intel-ceo-brian-krzanich-resigns-over-relationship-with-employee">fill the most prominent role</a> in the $400-billion chip industry for more than six months. The company's board still hasn't found what it's looking for. From a report:<i> Intel directors have ruled out some candidates for the vacant chief executive officer post, <a href="https://www.bloomberg.com/news/articles/2019-01-14/in-ceo-search-intel-still-hasn-t-found-what-it-s-looking-for">passed up obvious ones, been rejected by some and decided to go back and re-interview others</a>, extending the search, according to people familiar with the process. Chairman Andy Bryant told some employees recently that the chipmaker may go with a "non-traditional" candidate, suggesting a CEO from outside the company is a possibility. <br> <br>

Whoever is chosen will take the reins at a company that's churning out record results, but is facing rising competition. The new CEO will have to convince investors that Intel's loss of manufacturing leadership -- a cornerstone of its dominance -- won't cost it market share in the lucrative semiconductor market. He or she will also have to deliver on the company's promise to maintain growth by winning orders beyond personal computer and server chips. "The new CEO will have many difficult decisions to make in a short amount of time," said Kevin Cassidy, an analyst at Stifel Nicolaus &amp; Co. "The company can perform well in the near term due to good demand for PC and servers, but longer-term decisions and strategy need a CEO soon."</i><br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://slashdot.org/story/19/01/14/1620212/in-ceo-search-intel-still-hasnt-found-what-its-looking-for"
				  data-janrain-title="In CEO Search, Intel Still Hasn't Found What It's Looking For"
				  data-janrain-message="In CEO Search, Intel Still Hasn't Found What It's Looking For @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105733764" class="tag-bar none">
			<a  class="popular topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/business" target="_blank">business</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/intel" target="_blank">intel</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article><article id="firehose-105732002" data-fhid="105732002" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
		<span class="sd-info-block" style="display: none">
			<span class="sd-key-firehose-id">105732002</span>
			<span class="type">story</span>
			
		</span>







	
	

<header>
	
		<span class="topic" id="topic-105732002">
			<a href="//slashdot.org/index2.pl?fhfilter=android" onclick="return addfhfilter('android');">
			
				<img src="//a.fsdn.com/sd/topics/android_64.png" width="64" height="64" alt="Android" title="Android">
			
		</a>
		</span>
	

	<h2 class="story">
		

		

		
		

		

		

		

		<span id="title-105732002" class="story-title"> <a onclick="return toggle_fh_body_wrap_return(this);"  href="//mobile.slashdot.org/story/19/01/14/1518242/top-android-phone-makers-are-killing-useful-background-processes-and-breaking-3rd-party-apps-to-superficially-improve-battery-life-developers-allege">Top Android Phone Makers Are Killing Useful Background Processes and Breaking 3rd-Party Apps To 'Superficially Improve' Battery Life, Developers Allege</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://dontkillmyapp.com/"  title="External link - https://dontkillmyapp.com/" target="_blank"> (dontkillmyapp.com) </a></span></span>

		
		
		<!--<span class="comments commentcnt-105732002" >132</span>-->
		

		
		<!-- comment bubble -->
		
			<span class="comment-bubble"><a href="//mobile.slashdot.org/story/19/01/14/1518242/top-android-phone-makers-are-killing-useful-background-processes-and-breaking-3rd-party-apps-to-superficially-improve-battery-life-developers-allege#comments" title="">132</a></span>
		
	</h2>
	<div class="details" id="details-105732002">
		<span class="story-details">
		<span class="story-views">
			<span class="sodify" onclick="firehose_set_options('color', 'red')" title="Filter Firehose to entries rated red or better"></span><span class="icon-beaker pop1 " alt="Popularity" title="Filter Firehose to entries rated red or better" onclick="firehose_set_options('color', 'red')"><span></span></span> 
		</span>
		</span>
		<span class="story-byline">
	
				
			Posted
				by 
		
		
			
				  msmash
			
		
		

		
		
		<time id="fhtime-105732002" datetime="on Monday January 14, 2019 @10:25AM">on Monday January 14, 2019 @10:25AM</time>
		
		
			 from the <span class="dept-text">closer-look</span> dept.
		
		</span>
	</div>
</header>

<div class="body" id="fhbody-105732002">
	

	
		
		<div id="text-105732002" class="p">
			
		 	
				A team of developers has <a href="https://dontkillmyapp.com/">accused</a> several popular smartphone vendors of <a href="https://dontkillmyapp.com/problem">compromising the functionality of third-party apps and other background processes</a> on their phones in an attempt to "superficially improve" the battery life.  The team, Urbandroid, further alleges that these vendors have not correctly implemented Doze mode feature that Google introduced with Android Marshmallow. They also say that Google appears to be doing nothing about it.<br> <br>

Among the worst offenders are, per developers (in descending order): Nokia, OnePlus, Xiaomi, Huawei, Meizu, Sony, Samsung, and HTC.<br>
		 	
		</div>

		

		

		
	</div>
	<aside class="novote">
		
	</aside>
	
	  	

		
		<footer class="clearfix meta article-foot">
			<div class="story-controls">
				<div
				  class="janrainSocialPlaceholder"
				  data-janrain-url="https://mobile.slashdot.org/story/19/01/14/1518242/top-android-phone-makers-are-killing-useful-background-processes-and-breaking-3rd-party-apps-to-superficially-improve-battery-life-developers-allege"
				  data-janrain-title="Top Android Phone Makers Are Killing Useful Background Processes and Breaking 3rd-Party Apps To 'Superficially Improve' Battery Life, Developers Allege"
				  data-janrain-message="Top Android Phone Makers Are Killing Useful Background Processes and Breaking 3rd-Party Apps To 'Superficially Improve' Battery Life, Developers Allege @slashdot"
				></div>
				
                    
					
				
			</div>
			
				
				<div class="story-tags">
					<span class="tright tags"><menu type="toolbar" class="edit-bar">
		<span id="tagbar-105732002" class="tag-bar none">
			<a  class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/android" target="_blank">android</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/mobile" target="_blank">mobile</a>
<a  class="popular tag" rel="statictag" href="//slashdot.org/tag/smartphone" target="_blank">smartphone</a>

		</span>
		
			<a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
				<span class="icon-tag btn collapse"></span>
			</a>
		
		
		<div class="tag-menu">
			<input class="tag-entry default" type="text" value="apply tags">
		</div>
		

		
		

	</menu></span>
				</div>
				
			
		</footer>
	



	</article>
				</div>

				<!-- LOWER PAGINATION -->
				<div class="row">
					<div class="paginate" id="fh-pag-div">
<div class="menu2" id="fh-paginate">





	 
	 <a class="prevnextbutdis" href="#" onclick="return false;">&laquo; Newer</a>

	
		<a class="prevnextbutact" href="//slashdot.org/?page=1" >Older &raquo;</a>

	<span class="inactive more">
		
	</span>





</div>
</div>
				</div>

				<!-- WIT -->
				<span id="itemsreturned" class="row">
					
				</span>
				

				<!-- index2_variant |A|-->
				

				<div class="row">
				</div>

				

				<!-- Taboola: below articles widget -->
<div class="row">
	<div id="taboola-below-article-thumbnails-2nd"></div>
	<script type="text/javascript">
		window._taboola = window._taboola || [];
		_taboola.push({
			mode: 'thumbnails-b',
			container: 'taboola-below-article-thumbnails-2nd',
			placement: 'Below Article Thumbnails 2nd',
			target_type: 'mix'
		});
	</script>
</div>

				<!-- Slashdot Deals 6 Best Sellers -->
				<div class="row">
					<div class="deals-wrapper">
					  <div class="deals-header"><h1>Slashdot Top Deals</h1></div>
					  <div id="deals-output">
						<script id="deals-template" type="text/x-handlebars-template">
						  {{#each deal}}
							<div class="deal">
							  <a href="{{urlPath permalink}}?&utm_source=slashdot.org&utm_medium=dealfeed-footerfeed&utm_campaign={{slug}}" target="_blank">
							  	<img src="{{main_image}}" alt="" >
							  </a>
							  <p class="title"><a href="{{urlPath permalink}}?&utm_source=slashdot.org&utm_medium=dealfeed-footerfeed&utm_campaign={{slug}}" target="_blank">{{title}}</a></p>
							  <p class="deal-price">{{centConversion price_in_cents}}</p>
							</div>
						  {{/each}}
						</script>
					  </div>
					</div>
				</div>
				<script>
					if ( isAdBlockActive ) {
						$.getScript( "//a.fsdn.com/sd/js/scripts/min/deals-min.js", function(){
							runDealsWidget();
						});
					}
				</script>

			<!-- End Slashdot Deals 6 Best Sellers -->

				<!-- SLASH-4560 NEW AD HERE (dhand) -->
				<div id="bottomadspace">
					<table id="bottomadtable">
						<tr>
							<td><div id='div-gpt-ad-728x90_b'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-728x90_b');});</script></div></td>
						</tr>
					</table>
				</div>
			</div>
		</div>
	</div>

		
	<aside id="slashboxes" class="rail-right scroll-fixable">

	   
		   <div class="advertisement railad adwrap-unviewed">
<div id='div-gpt-ad-300x250_a'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-300x250_a');});</script></div>
</div>
	   

		<article class="deals-rail">
		  <header id="slashdot_deals-title"><h2>Slashdot Top Deals</h2></header>
		  <div id="deals-rail-output">
			<script id="deals-rail-template" type="text/x-handlebars-template">
				{{#each deal}}
					<div class="">
					  <a href="{{urlPath permalink}}?&utm_source=slashdot.org&utm_medium=dealfeed-righthand&utm_campaign={{slug}}" target="_blank">
					  	<img src="{{main_image}}" alt="" >
					  </a>
					  <div class="deal-overlay">
						  <div class="title"><a href="{{urlPath permalink}}?&utm_source=slashdot.org&utm_medium=dealfeed-righthand&utm_campaign={{slug}}" target="_blank">{{title}}</a></div>
						  <div class="deal-price">{{centConversion price_in_cents}}</div>
						</div>
					</div>
				{{/each}}
			</script>
		  </div>
		</article>

		<!-- Newsletter image -->
		<div class="ad-blocked-newsletter">
			<a href="//slashdot.org/newsletter" target="_blank"><img src="//a.fsdn.com/sd/NewsletterSubscription.png" alt="" ></a>
		</div>


		


			<script type="text/javascript">
				$(function() {
					// Poll/Pulse
					(function(){
						var sd_poll = $('#poll'),
								pulsead = $('#div-gpt-ad-pulse_300x600_a');

						sd_poll.hide();

						function showSdPoll(){
							if( pulsead.closest('.advertisement').height() < 250 ) {
								sd_poll.fadeIn();
								pulsead.closest('.advertisement').hide();
							}
						}
						//this function will display the Slashdot Poll if the Pulse Ad is not delivered
						setTimeout(function() { showSdPoll(); }, 2000);
					})();
				});
			</script>
			<div id='my_forgebox'>
				 
			</div>

			

					<article id="slashdot_deals" class="nosort">
		<header id="slashdot_deals-title">
			<h2><a href="http://deals.slashdot.org/">Slashdot Deals</a></h2>
		</header>
		<section class="b" id="slashdot_deals-content">
			<script type='text/javascript'>
googletag.cmd.push(function()
{ googletag.defineSlot('/7346874/sld-300x250', [300, 250], 'div-gpt-ad-1435005138111-0').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }
);
</script>
<div id='div-gpt-ad-1435005138111-0' style='height:250px; width:300px;'>
<script type='text/javascript'>
googletag.cmd.push(function()
{ googletag.display('div-gpt-ad-1435005138111-0'); }
);
</script>

</div>
			
		</section>
	</article><div class="railad advertisement">
<div id='div-gpt-ad-300x250_b'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-300x250_b');});</script></div>
</div><article class="nosort">
	<header id="poll-title">
		<h2>Slashdot Poll</h2>
	</header>
	<section class="b" id="poll-content">
		<style>
		.poll-voted { display: none; }
	</style>
	
		<div class="units-6 poll-group-form">
			
				<h3>How many programming languages do you know? (Let us know which ones in the comments)</h3>
			
			<h3 class="output"></h3>
			<form id="pollBooth" action="//slashdot.org/pollBooth.pl" method="post">
				<input type="hidden" name="qid" value="3106">
				
					<input type="hidden" name="section" value="slashdot">
				
					
						<label>
							<input type="radio" name="aid" value="1">
							1
						</label>
					
						<label>
							<input type="radio" name="aid" value="2">
							2
						</label>
					
						<label>
							<input type="radio" name="aid" value="3">
							3
						</label>
					
						<label>
							<input type="radio" name="aid" value="4">
							4
						</label>
					
						<label>
							<input type="radio" name="aid" value="5">
							5
						</label>
					
						<label>
							<input type="radio" name="aid" value="6">
							6
						</label>
					
						<label>
							<input type="radio" name="aid" value="7">
							More than 6
						</label>
					
						<label>
							<input type="radio" name="aid" value="8">
							Zero
						</label>
					
					<div class="poll-controls">
						<button type="submit" class="btn-polls">vote now</button>
						
					</div>
					<footer>
						<span>
							<a href="/poll/3106/how-many-programming-languages-do-you-know-let-us-know-which-ones-in-the-comments">Read the <strong>54</strong> comments </a> |
							<strong>1056</strong> votes
						</span>
					</footer>
			</form>
		</div>
		<div class="units-6 poll-results-inline">
			<h3 id="message-completed-poll">
				
					Looks like someone has already voted from this IP. If you would like to vote please login and try again.
				
			</h3>
			
				<h3>How many programming languages do you know? (Let us know which ones in the comments)</h3>
			
			<div class="doughnut-chart-wrapper">
				<div class="doughnut-chart" data-percent="0"><span>0</span></div>
				<div class="doughnut-chart-label">
					<span>Percentage of others that also voted for:</span>
					<h3></h3>
				</div>
			</div>

			<div class="poll-controls">
				<ul class="poll-options">
					<li>
						<a href="/poll/3106/how-many-programming-languages-do-you-know-let-us-know-which-ones-in-the-comments" class="btn-polls">view results</a>
					</li>
					<li class="poll-choice"> Or <li>
					<li>
						<a href="//slashdot.org/polls" class="btn-polls">view more</a>
						<input type="hidden" id="reskey" name="reskey" value="215LXeiy648miyBTQgEU">
					</li>
				</ul>
			</div>
			<footer>
				<span>
					<a href="/poll/3106/how-many-programming-languages-do-you-know-let-us-know-which-ones-in-the-comments">Read the <strong>54</strong> comments </a> |
					<strong>1056</strong> voted
				</span>
			</footer>
		</div>
	</section>
</article><div class="railad advertisement">
<div id='div-gpt-ad-300x250_c'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-300x250_c');});</script></div>
</div><div id="taboola-below-main-column-thumbnails"></div>
<script type="text/javascript">
  if ( 1 || isAdBlockActive ) {
    if (!window.is_euro_union) {
      window._taboola = window._taboola || [];
      _taboola.push({
        mode: 'thumbnails-rr3',
        container: 'taboola-below-main-column-thumbnails',
        placement: 'Below Main Column Thumbnails',
        target_type: 'mix'
      });
    }
  };
</script><article class="nosort">
	<header id="mostdiscussed-title">
		<h2>Most Discussed</h2>
	</header>
	<section class="b" id="mostdiscussed-content">
		<ul id="mostdiscussed">


<li>
<span class="cmntcnt"><span class="slant"></span><span >521<span class="hide"> comments</span></span></span>
 <a href="//games.slashdot.org/story/19/01/13/2017234/battlefield-5s-poor-sales-numbers-have-become-a-disaster-for-electronic-arts?sbsrc=md">Battlefield 5's Poor Sales Numbers Have Become a Disaster For Electronic Arts</a>
</li>


<li>
<span class="cmntcnt"><span class="slant"></span><span >443<span class="hide"> comments</span></span></span>
 <a href="//news.slashdot.org/story/19/01/13/0036207/should-america-build-a-virtual-border-wall-or-just-crowdfund-it?sbsrc=md">Should America Build a Virtual Border Wall?  Or Just Crowdfund It...</a>
</li>


<li>
<span class="cmntcnt"><span class="slant"></span><span >333<span class="hide"> comments</span></span></span>
 <a href="//tech.slashdot.org/story/19/01/13/056212/ask-slashdot-is-todays-technology-as-cool-as-youd-predicted-when-you-were-young?sbsrc=md">Ask Slashdot:  Is Today's Technology As Cool As You'd Predicted When You Were Young?</a>
</li>


<li>
<span class="cmntcnt"><span class="slant"></span><span >283<span class="hide"> comments</span></span></span>
 <a href="//entertainment.slashdot.org/story/19/01/14/1749211/streaming-tv-may-never-again-be-as-simple-or-as-affordable-as-it-is-now?sbsrc=md">Streaming TV May Never Again Be as Simple, or as Affordable, as It is Now</a>
</li>


<li>
<span class="cmntcnt"><span class="slant"></span><span >265<span class="hide"> comments</span></span></span>
 <a href="//yro.slashdot.org/story/19/01/13/0436205/pedestrians-e-scooters-are-clashing-in-the-struggle-for-sidewalk-space?sbsrc=md">Pedestrians, E-Scooters Are Clashing In the Struggle For Sidewalk Space</a>
</li>

</ul>
	</section>
</article><article class="nosort">
	<header id="srandblock-title">
		<h2><a href="//science.slashdot.org">Science</a></h2>
	</header>
	<section class="b" id="srandblock-content">
		<ul>
<li>

	
	<a href="//science.slashdot.org/story/19/01/13/059257/arborists-are-bringing-the-dinosaur-of-trees-back-to-life?utm_source=rss0.9mainlinkanon&amp;utm_medium=feed&amp;sbsrc=science">
		Arborists Are Bringing the 'Dinosaur of Trees' Back To Life
	</a>
</li><li>

	
	<a href="//science.slashdot.org/story/19/01/13/0446241/plants-can-hear-animals-using-their-flowers?utm_source=rss0.9mainlinkanon&amp;utm_medium=feed&amp;sbsrc=science">
		Plants Can Hear Animals Using Their Flowers
	</a>
</li><li>

	
	<a href="//science.slashdot.org/story/19/01/13/0427222/earths-magnetic-field-is-acting-up-and-geologists-dont-know-why?utm_source=rss0.9mainlinkanon&amp;utm_medium=feed&amp;sbsrc=science">
		Earth's Magnetic Field Is Acting Up and Geologists Don't Know Why
	</a>
</li><li>

	
	<a href="//science.slashdot.org/story/19/01/13/0237200/old-people-can-produce-as-many-new-brain-cells-as-teenagers?utm_source=rss0.9mainlinkanon&amp;utm_medium=feed&amp;sbsrc=science">
		Old People Can Produce As Many New Brain Cells As Teenagers
	</a>
</li><li>

	
	<a href="//science.slashdot.org/story/19/01/12/1921212/legendary-mathematician-sir-michael-atiyah-dies-at-age-89?utm_source=rss0.9mainlinkanon&amp;utm_medium=feed&amp;sbsrc=science">
		Legendary Mathematician Sir Michael Atiyah Dies at Age 89
	</a>
</li>
</ul>
	</section>
</article><article id="thisday" class="nosort">
		<header id="thisday-title">
			<h2><a href="">This Day on Slashdot</a></h2>
		</header>
		<section class="b" id="thisday-content">
			<table bgcolor="333333" class="thisday-tb"><tbody>


<tr>
	<td class="thisday-yr">
		2014
	</td>
	<td>
		<a href="//yro.slashdot.org/story/14/01/14/1559226/man-shot-to-death-for-texting-during-movie?sbsrc=thisday">Man Shot To Death For Texting During Movie</a>
	</td>
	<td>
	<span style="" class="cmntcnt"><span style="background:#333" class="slant"></span><span style="background: #333; color:#fff; font-weight:bold; font-size:.85em">1431<span class="hide"> comments</span></span></span>
	</td>
</tr>


<tr>
	<td class="thisday-yr">
		2009
	</td>
	<td>
		<a href="//ask.slashdot.org/story/09/01/13/222229/how-does-a-980-work-schedule-work-out?sbsrc=thisday">How Does a 9/80 Work Schedule Work Out?</a>
	</td>
	<td>
	<span style="" class="cmntcnt"><span style="background:#333" class="slant"></span><span style="background: #333; color:#fff; font-weight:bold; font-size:.85em">1055<span class="hide"> comments</span></span></span>
	</td>
</tr>


<tr>
	<td class="thisday-yr">
		2008
	</td>
	<td>
		<a href="//ask.slashdot.org/story/08/01/14/1637201/what-would-you-do-as-president?sbsrc=thisday">What Would You Do As President?</a>
	</td>
	<td>
	<span style="" class="cmntcnt"><span style="background:#333" class="slant"></span><span style="background: #333; color:#fff; font-weight:bold; font-size:.85em">1455<span class="hide"> comments</span></span></span>
	</td>
</tr>


<tr>
	<td class="thisday-yr">
		2007
	</td>
	<td>
		<a href="//slashdot.org/story/07/01/14/1629226/is-a-bad-attitude-damaging-the-it-profession?sbsrc=thisday">Is A Bad Attitude Damaging The IT Profession?</a>
	</td>
	<td>
	<span style="" class="cmntcnt"><span style="background:#333" class="slant"></span><span style="background: #333; color:#fff; font-weight:bold; font-size:.85em">892<span class="hide"> comments</span></span></span>
	</td>
</tr>


<tr>
	<td class="thisday-yr">
		2005
	</td>
	<td>
		<a href="//slashdot.org/story/05/01/13/2357223/creationist-textbook-stickers-declared-unconstitutional?sbsrc=thisday">Creationist Textbook Stickers Declared Unconstitutional</a>
	</td>
	<td>
	<span style="" class="cmntcnt"><span style="background:#333" class="slant"></span><span style="background: #333; color:#fff; font-weight:bold; font-size:.85em">3360<span class="hide"> comments</span></span></span>
	</td>
</tr>

</tbody></table>
			
		</section>
	</article><article id="sourceforge2" class="nosort">
		<header id="sourceforge2-title">
			<h2><a href="">Sourceforge Top Downloads</a></h2>
		</header>
		<section class="b" id="sourceforge2-content">
			<ul class="sf_widget">
<li>
<a onclick="trackLink(this, 'sfSlashboxDownloadLink', 'https://sourceforge.net/projects/corefonts/?source=sd_slashbox'); return false;" href="https://sourceforge.net/projects/corefonts/?source=sd_slashbox" title="Microsoft&#39;s TrueType core fonts">
TrueType core fonts <span class="sf-size">2.2B downloads</span></a>
</li>
<li>
<a onclick="trackLink(this, 'sfSlashboxDownloadLink', 'https://sourceforge.net/projects/npppluginmgr/?source=sd_slashbox'); return false;" href="https://sourceforge.net/projects/npppluginmgr/?source=sd_slashbox" title="Notepad++ Plugin Manager (old repo)">
Notepad++ Plugin Mgr <span class="sf-size">1.5B downloads</span></a>
</li>
<li>
<a onclick="trackLink(this, 'sfSlashboxDownloadLink', 'https://sourceforge.net/projects/vlc/?source=sd_slashbox'); return false;" href="https://sourceforge.net/projects/vlc/?source=sd_slashbox" title="VLC media player">
VLC media player <span class="sf-size">899M downloads</span></a>
</li>
<li>
<a onclick="trackLink(this, 'sfSlashboxDownloadLink', 'https://sourceforge.net/projects/emule/?source=sd_slashbox'); return false;" href="https://sourceforge.net/projects/emule/?source=sd_slashbox" title="eMule">
eMule <span class="sf-size">686M downloads</span></a>
</li>
<li>
<a onclick="trackLink(this, 'sfSlashboxDownloadLink', 'https://sourceforge.net/projects/mingw/?source=sd_slashbox'); return false;" href="https://sourceforge.net/projects/mingw/?source=sd_slashbox" title="MinGW - Minimalist GNU for Windows">
MinGW <span class="sf-size">631M downloads</span></a>
</li>
</ul>
<div id="sf-logo">
<p>Powered By</p>
<a onclick="trackLink(this, 'sfSlashboxHomeLink', 'https://sourceforge.net/?source=sd_slashbox'); return false;" href="https://sourceforge.net/?source=sd_slashbox">sf</a>
</div>

			
		</section>
	</article>
					<div class="advertisement railad">
<div id='div-gpt-ad-300x250_d'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-300x250_d');});</script></div>
</div>
					
						
						
					
				
			
	</aside>
</div>

<script type="text/javascript">
	firehose_exists = 1;
	$(function(){
	$('#firehose-filter').focus(function(event){ gFocusedText = this; })
	.blur(function(event){
		if ( gFocusedText === this ) {
			gFocusedText = null;
		}
	});

	
	apply_updates_when(		'at-end', true);
});

			
					firehose_settings.startdate = "";
					firehose_settings.mode = "mixed";
					firehose_settings.fhfilter = "";
					firehose_settings.orderdir = "DESC";
					firehose_settings.orderby = "createtime";
					firehose_settings.duration = -1;
					firehose_settings.color = "green";
					firehose_settings.view = "stories";
					firehose_settings.viewtitle = "";
					firehose_settings.tab = "";
					firehose_settings.base_filter = "";
					firehose_settings.user_view_uid = "";
					firehose_settings.sectionname = "Main";
	
	firehose_settings.issue = "";
	firehose_settings.section = 13;
	$('#searchquery').val(firehose_settings.fhfilter);

	

    fh_is_admin = 0;

	firehose_sitename = "Slashdot";
	firehose_slogan = "News for nerds, stuff that matters";
    if (fh_is_admin) {
	   firehose_update_title_count();
    }
	firehose_smallscreen = 0;

	

	
	
		firehose_settings.index = 1;
	

	

	var firehose_action_time = 0;
	var firehose_user_class = 0;
	
	
	
	var fh_color = "green";
	fh_colors = [ "red", "orange", "yellow", "green", "blue", "indigo", "violet", "black" ];
	var fh_colors_hash = new Array(0);
	for (var i=0; i< fh_colors.length; i++) {
		fh_colors_hash[fh_colors[i]] = i;
	}

	var fh_view_mode = "mixed";
	firehose_settings.page = 0;
	
	fh_is_admin = 0;
	var updateIntervalType = 2;
	var inactivity_timeout = 3600;
	setFirehoseAction();
	var update_time = "2019-01-15 00:10:52";

	var maxtime = "2019-01-15 00:10:52";
	var insert_new_at = "top";

	

fh_ticksize = 15;
sitename = 'idle.slashdot.org';





</script><!-- footer type=current begin -->
	
	</section>
	
	


	<footer id="fhft" class="grid_24 nf">
		<div id="logo_nf" class="fleft">
			<a href="//slashdot.org"><span>Slashdot</span></a>
		</div>
		<nav role="firehose footer">
			

			
				<ul id="pagination-controls">
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190114&view=search">Today</a>
						</li>
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190113&view=search">Sunday</a>
						</li>
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190112&view=search">Saturday</a>
						</li>
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190111&view=search">Friday</a>
						</li>
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190110&view=search">Thursday</a>
						</li>
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190109&view=search">Wednesday</a>
						</li>
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190108&view=search">Tuesday</a>
						</li>
					
						
						<li class="fleft">
							<a href="//mobile.slashdot.org/?issue=20190107&view=search">Monday</a>
						</li>
					
				</ul>
				<script> /* fh_pag_update() */</script>
			
			<ul class="fright submitstory">
					<li class="fright">
						<a href="/submit">Submit<span class="opt"> Story</span></a>
					</li>
			</ul>
		</nav>
		


	</footer>
	<section class="bq">
		<blockquote class="msg grid_24" cite="https://slashdot.org">
			<p>Unix is a Registered Bell of AT&T Trademark Laboratories.
		-- Donn Seeley</p>
			<span class="slant"></span>
		</blockquote>
	</section>
	<footer id="ft" class="grid_24">
		<nav class="grid_10" role="footer">
			<ul>
				<li><a href="//slashdot.org/faq">FAQ</a></li>
				<li><a href="//slashdot.org/archive.pl">Story Archive</a></li>
				<li><a href="//slashdot.org/hof.shtml">Hall of Fame</a></li>
				<li><a href="http://slashdotmedia.com/advertising-and-marketing-services/">Advertising</a></li>
				<li><a href="http://slashdotmedia.com/terms-of-use/">Terms</a></li>
				<li><a href="http://slashdotmedia.com/privacy-statement/">Privacy Statement</a></li>
				<li id='eu_privacy' style='display:none'><a href="#" title="Privacy Choices" onclick="bizx.cmp.promptConsent();return false;">Privacy Choices</a></li>
				<li><a href="http://slashdotmedia.com/opt-out-choices/">Opt-out Choices</a></li>
				<li><a href="//slashdot.org/faq/slashmeta.shtml">About</a></li>
				<li><a href="mailto:feedback@slashdot.org">Feedback</a></li>
				<li><a href="#" onclick="set_mobile_pref('mobile',1);return false;">Mobile View</a></li>
				<li><a href="//slashdot.org/blog">Blog</a></li>
			</ul>
		</nav>
		<script>
		if (window.is_euro_union) {
			document.getElementById('eu_privacy').style.display = 'inline';
		}
		</script>
		<br>
		
		<div class="grid_14 tright tm">Trademarks property of their respective owners. Comments owned by the poster. <span class="nobr">Copyright &copy; 2019 SlashdotMedia. All Rights Reserved.</span></div>
	</footer>

	
	<div class="overlay"></div>
<div class="modal-box">
    <a href="#" id="close-modal">Close</a>
    <article class="modal-content">
    </article>
    <footer>
</div>




<div id="modal_cover" class="hide" onclick="hide_modal_box(); return false;"></div>
<div id="modal_box" class="hide">
      <div id="modal_box_content"></div>
      <header class="n">
                  <span class="fadeout"></span>
                  <span class="fadeoutfade"></span>
		  <span class="pf"><a class="ico close" onclick="hide_modal_box(); return false;" href="#"><span>Close</span></a></span>
		  <h3 class="pf"><div id="logo"><a href="//slashdot.org">Slashdot</a></div><span id="preference_title"></span></h3>
      </header>
</div>
	
	<!-- CCM Tag -->
<script type="text/javascript">
if (!window.is_euro_union) {
  (function () {
    /*global _ml:true, window */
    _ml = window._ml || {};
    _ml.eid = '771';

    var s = document.getElementsByTagName('script')[0], cd = new Date(), mltag = document.createElement('script');
    mltag.type = 'text/javascript'; mltag.async = true;
    mltag.src = '//ml314.com/tag.aspx?' + cd.getDate() + cd.getMonth() + cd.getFullYear();
    s.parentNode.insertBefore(mltag, s);
  })();
}
</script>
<!-- End CCM Tag -->

<script type="text/javascript">
window.google_analytics_uacct = "UA-32013-5";

var _gaq = _gaq || [];





  _gaq.push(['_setAccount', 'UA-36136016-1']);
  _gaq.push(['b._setAccount', 'UA-32013-5']);
  _gaq.push(['_setDomainName', '.slashdot.org']);
  _gaq.push(['b._setDomainName', '.slashdot.org']);

	
		_gaq.push(['_addIgnoredRef', 'slashdot.org']);
		_gaq.push(['b._addIgnoredRef', 'slashdot.org']);
	


  _gaq.push(['_setCustomVar', 1, 'User Type',  'Anon', 3]);
  _gaq.push(['b._setCustomVar', 1, 'User Type',  'Anon', 3]);
	
		
	
	_gaq.push(['_setCustomVar', 2, 'Page','search', 3]);
	_gaq.push(['b._setCustomVar', 2, 'Page','search', 3]);

	



// track beta behavior for user
var betamatches = document.cookie.match(/betagroup=(-?\d+)/);

if(betamatches && betamatches[1]) {
  if(betamatches[1] == -1) {
    _gaq.push(['_setCustomVar', 3, 'Beta-Usage','opt-out', 3]);
  } else {
    _gaq.push(['_setCustomVar', 3, 'Beta-Usage','unredirected', 3]);
  }
}



  _gaq.push(['_trackPageview']);
  _gaq.push(['b._trackPageview']);
  _gaq.push(['_trackPageLoadTime']);
  _gaq.push(['b._trackPageLoadTime']);


if (!window.is_euro_union) {
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
}
</script>

<!-- CCM GA Push -->
<script>
    if (typeof _ml !== 'undefined' && _ml.us) {
        if (_ml.us.tp && _ml.us.tp.length > 0) {
            ga('set', 'dimension2', _ml.us.tp[0]);
        }
        if (_ml.us.pc && _ml.us.pc.length > 0) {
            ga('set', 'dimension7', _ml.us.pc[0]);
        }
        ga('set', 'dimension3', _ml.us.ind);
        ga('set', 'dimension4', _ml.us.cr);
        ga('set', 'dimension5', _ml.us.cs);
        ga('set', 'dimension6', _ml.us.dm);
        ga('set', 'dimension8', _ml.us.sn);
    }
</script>

<!-- Sticky Ads -->
<script type="text/javascript">
var topBannerViewed = false;
if($('#div-gpt-ad-728x90_a').length > 0 && $('#div-gpt-ad-300x250_a').length > 0 && window.outerWidth >= 1070 && !isAdBlockActive){
    $(window).scroll(function(){
        var y = $(document).scrollTop();
        var z =  y + window.outerHeight;
        var navOffset = 0;
        var offset = [
            $('.nav-wrap').outerHeight(true),
            $('.nav-secondary-wrap').outerHeight(true)
        ];
        for(row in offset){
            if(offset[row]) navOffset = navOffset + parseInt(offset[row]);
        }
        $('.adwrap-unviewed').each(function(){
            var cls = 'adwrap-sticky';
            var toggleCls = 'adwrap';
			//$('.banner-wrapper').css('height', $('.banner-contain').outerHeight());
            if($(this).hasClass('railad')) {
                if(topBannerViewed){
                    var topPixels = $(this).offset().top;
                    navOffset += $('.adwrap').outerHeight();
                    if(y >= topPixels && y >= navOffset){
                        $('#slashboxes').css('top', 0).css('position','fixed').css('right',13);
                    } else {
                        $('#slashboxes').removeAttr('style');
                    }
                }
                return;
            }
            var topPixels = $(this).offset().top;
        if(y >= topPixels && y >= navOffset){
                $(this).addClass(cls);
                $(this).removeClass('adwrap');
				if(cls == 'adwrap-sticky') { //top banner
                    topBannerViewed = false;
					$('#slashboxes').css('top',$(this).outerHeight() || 0).css('position','fixed').css('right',13);
				}
        if(topBannerViewed) {
                    //console.log('hereeee');
					$('#slashboxes').css('top', 0).css('position','fixed').css('right',13);
				}
            }else{
								//console.log('topBannerViewed', topBannerViewed);
                $(this).removeClass(cls);
                $(this).addClass(toggleCls);
                $('#slashboxes').removeAttr('style');
            }
        });
		if($('.adwrap-viewed-banner').length > 0){
		  //console.log('ads topBanner displayed');
			topBannerViewed = true;
			$('.adwrap-viewed-banner').removeClass('adwrap-unviewed').removeClass('adwrap-sticky').addClass('adwrap');
		}
    if($('.adwrap-viewed-railad').length > 0){
						//console.log('ads sidebar displayed');
            $('.adwrap-viewed-railad').removeClass('adwrap-unviewed').removeClass('adwrap-railad-sticky');
			$('#slashboxes').removeAttr('style');
		}
    });
}
</script>

<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["setCookieDomain", "*.slashdot.org"]);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
function initPiwikAndNels() {
  (function() {
    var u="//analytics.slashdotmedia.com/";
    _paq.push(['setTrackerUrl', u+'sd.php']);
    _paq.push(['setSiteId', 40]);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'sd.js'; s.parentNode.insertBefore(g,s);
  })();

    if(window.location.pathname == '/'){
        var nelId = (location.search.split('nel_id=')[1] || '').split('&')[0];
        var url = '/ajax.pl?op=nel';
        if(nelId){
            url += '&nel_id='+nelId;
        }
        $.ajax({
            url: url,
            success: function(html){
                $('#firehoselist article').eq(1).after(html);
            }
        });
    }
    //announcement NEL
    if(document.getElementById('announcementText')){
      $('#announcementText').hide();
      var hlUrl = '/ajax.pl?op=hl_nel';
      if(nelId){
        hlUrl += '&nel_id='+nelId;
      }
      $.ajax({
        url: hlUrl,
        success: function(html){
          if(html.length < 10){
            $('#announcementText').show();
            return;
          }
          $('#announcementText').html(html).show();
        },
        error: function () {
          $('#announcementText').show();
        }
      });
    }
}
bizx.cmp.ifConsent('publisher', ['storage', 'measurement'], initPiwikAndNels);
</script>


<script type="text/javascript">
_linkedin_data_partner_id = "113712";
</script><script type="text/javascript">
if (!window.is_euro_union) {
(function(){var s = document.getElementsByTagName("script")[0];
var b = document.createElement("script");
b.type = "text/javascript";b.async = true;
b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
s.parentNode.insertBefore(b, s);})();
}
</script>
<noscript>
<img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=113712&fmt=gif" >
</noscript>

<!-- Datonics -->
<script async type="text/javascript" src="//ads.pro-market.net/ads/scripts/site-143573.js"></script>
	<script id="after-content" type="text/javascript">
(function( $, fn, console ){
	$ && fn && $(function(){ fn($, console); });
})(window.jQuery, window.pageload_done, window.console);
</script>
	
	<script type='text/javascript'>
	if(!document.location.href.match(/source=autorefresh/)) {
		document.write('<img src="//slashdot.org/images/js.gif?720">');
	}
</script>
<noscript>
	<img src="//slashdot.org/images/njs.gif?621">
</noscript>
	<div class="busy genericspinner hide"><span>Working...</span></div>
	<script>
		if(typeof(Storage)!=="undefined"){
			window.scrollTo(0,sessionStorage.scrollPos);
				$(window).scroll(function () {
				//You've scrolled this much:
				sessionStorage.scrollPos = $(window).scrollTop();
			});
		}
		$(function(){
			$('a').click(function(){
				delete sessionStorage.scrollPos;
			})
		});
		// window.onbeforeunload = function () {
		// 	console.log('bakc button clicked');
		// 	delete sessionStorage.scrollPos;
		// }
		window.onpopstate=function() {
			delete sessionStorage.scrollPos;
		}
	</script>
	

	
		<!-- 1x1 home page -->
		<div id='div-gpt-ad-1x1'><script type='text/javascript'>
googletag.cmd.push(function(){
googletag.display('div-gpt-ad-1x1');});</script></div>
	

	<script type="text/javascript">
	if (!window.is_euro_union) {
		window._taboola = window._taboola || [];
		_taboola.push({flush: true});
	}
	</script>

	</body>
	</html>


	<!-- footer type=current end -->

HTTP GET

Remember, we used HTTP GET on slashdot.org

  • HTTP GET is a simple request to be sent that resource.
    • It might be dynamic (resource is generated when the request is recieved by software on the server)
    • It might be static (just a file sitting on the server, unchanging)
    • It might be a mix of static and dynamic content
  • We can send query parameters along an HTTP get in the URL
  • It is considered bad if GET request causes the server to change data—we should use a different HTTP method for that

HTTP POST

  • HTTP POST is a request to update, create, or generally interact with a URL.
    • Can do things like ?queries but not limited by length.
    • Used to submit HTML forms
    • POST is expected to add or mutate data
  • We can send query parameters along an HTTP get in the URL
  • It is considered bad if GET request causes the server to change data—we should use a different HTTP method for that

HTTP POST

  • URL-encoded parameters (percent-encoded)
    • POST parameters are usually sent in a POST request body as application/x-www-form-urlencoded
    • They could also be sent following RFC 2388's format: multipart/form-data.

HTTP POST Example

name
occupation

HTTP POST Example

Web browser sends:
POST /04-HTTP.html HTTP/1.1
Host: localhost:8000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost:8000/04-HTTP.html
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Connection: keep-alive
Upgrade-Insecure-Requests: 1
DNT: 1

name=Hazel&occupation=Slide+maker

HTTP POST and Forms

  • Each form element has a name
  • The name matches the key.
  • E.g. <input name="occupation"> becomes occupation=
  • The content of the input element becomes the value

multipart/form-data

  • http://tools.ietf.org/html/rfc2388
  • Use mime to send form data
    • Multipurpose Internet Mail Extensions
  • Mostly used to upload files as binary, but it can be used for any form
  • Sends the content-size first and then asks the server if that's okay
    • Server responds HTTP/1.1 100 Continue if it can handle that size of data
    • Then the client sends the body
  • Because of this interaction you can argue that this is a slower method (adds a round trip latency) since it requires the server to respond to the initial header before it sends the body.
  • This is so the client doesn't try to send files that are too big for the server to handle, or of a type it can't handle, etc.

multipart/form-data Example

hindle1@st-francis:~$ curl -F 'what=1' -F 'suzie=q' -X POST http://webdocs.cs.ualberta.ca/~hindle1/1.py --trace-ascii /dev/stdout
POST /~hindle1/1.py HTTP/1.1
User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 Ope
nSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Host: webdocs.cs.ualberta.ca
Accept: */*
Content-Length: 235
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------9edfbc1fb1b0
  • The boundary lets the server tell when one part of the form ends and another begins.
  • The random number should be chosen so that it won't show up in the contents.

multipart/form-data

The server sends back:
HTTP/1.1 100 Continue
Then the client proceeds:
------------------------------9edfbc1fb1b0
Content-Disposition: form-data; name="what"

1
------------------------------9edfbc1fb1b0
Content-Disposition: form-data; name="suzie"

q
------------------------------9edfbc1fb1b0--
The server finally gives its actual response:
<= Recv
HTTP/1.1 200 OK
Date: Mon, 13 Jan 2014 23:37:30 GMT
Server: Apache/2.2.3 (Red Hat)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

<H3>Form Contents:</H3>
<DL>
<DT>suzie: <i>&lt;type 'instance'&gt;</i>
<DD>FieldStorage('suzie', None, 'q')
<DT>what: <i>&lt;type 'instance'&gt;</i>
<DD>FieldStorage('what', None, '1')

HTTP 2

  • 2015—24 years after HTTP
  • Based on proposed SPDY protocol by Google: designed to reduce latency
  • Only supported over TLS (HTTPS)
  • Same methods, status codes, headers and URIs for compatibility
  • Binary protocol: not viewable/debuggable/writable in plain text
    • Compress headers for less bandwidth
  • Pipelining: request request request ... response response response
  • Push: psychic servers look into the future and sends clients content before they even request it 🔮
  • Multiplexing

Multiplexing and Pipelining

Ilya Grigorik, Surma, https://developers.google.com/web/fundamentals/performance/http2/#request_and_response_multiplexing, Retrieved 2019-01-17 under a Creative Commons Attribution 3.0 License
  • Avoid using multiple TCP connections to a single server
    • Reduce high-latency TCP handshakes
    • Reduce high-CPU TLS handshakes
  • Requests and responses in both directions happening all at the same time, data is interleaved
  • Requests/responses can be prioritized

Resources: RFCs

Resources

License

Copyright 2014 ⓒ Abram Hindle

Copyright 2019 ⓒ Hazel Victoria Campbell and contributors

Creative Commons Licence
The textual components and original images of this slide deck are placed under the Creative Commons is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Other images used under fair use and copyright their copyright holders.

License

The source code to this slide deck is:

          Copyright (C) 2018 Hakim El Hattab, http://hakim.se, and reveal.js contributors
          Copyright (C) 2019 Hazel Victoria Campbell, Abram Hindle and contributors

          Permission is hereby granted, free of charge, to any person obtaining a copy
          of this software and associated documentation files (the "Software"), to deal
          in the Software without restriction, including without limitation the rights
          to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
          copies of the Software, and to permit persons to whom the Software is
          furnished to do so, subject to the following conditions:

          The above copyright notice and this permission notice shall be included in
          all copies or substantial portions of the Software.

          THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
          IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
          FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
          AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
          LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
          OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN