Add test for Slashdot + fix style
[gofetch.git] / test / source / SLASHDOT / hardware.slashdot.org / story_18_09_06_2058201_mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking.html
1 <!-- html-header type=current begin -->
2
3 <!DOCTYPE html>
4
5 <html lang="en">
6 <head>
7 <!-- Render IE9 -->
8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9
10
11
12 <script>window.is_euro_union = 1;</script>
13 <script src="https://a.fsdn.com/con/js/sftheme/vendor/promise.polyfill.min.js"></script>
14 <script src="https://a.fsdn.com/con/js/sftheme/cmp.js"></script>
15 <script src="https://slashdot.org/country.js"></script>
16 <script type='text/javascript'>
17 if (window.is_euro_union) {
18 bizx.cmp.init({
19 // to test: 'Display UI': 'always',
20 'Publisher Name': 'Slashdot',
21 'Publisher Logo': 'https://a.fsdn.com/sd/sdlogo.svg',
22 'Consent Scope': 'global group',
23 'Consent Scope Group URL': 'https://slashdot.org/gdpr-cookies.pl',
24 });
25 }
26 </script>
27 <link rel="stylesheet" href="//a.fsdn.com/con/css/sftheme/sandiego/cmp.css" type="text/css">
28 <style type="text/css">
29 .qc-cmp-publisher-logo, .qc-cmp-nav-bar-publisher-logo {
30 background-color: #016765;
31 }
32 </style>
33 <script>
34 if (!window.is_euro_union) {
35 (function (s,o,n,a,r,i,z,e) {s['StackSonarObject']=r;s[r]=s[r]||function(){
36 (s[r].q=s[r].q||[]).push(arguments)},s[r].l=1*new Date();i=o.createElement(n),
37 z=o.getElementsByTagName(n)[0];i.async=1;i.src=a;z.parentNode.insertBefore(i,z)
38 })(window,document,'script','https://www.stack-sonar.com/ping.js','stackSonar');
39 stackSonar('stack-connect', '66');
40 }
41 </script>
42
43 <script id="before-content" type="text/javascript">
44 (function () {
45 if (typeof window.sdmedia !== 'object') {
46 window.sdmedia = {};
47 }
48 if (typeof window.sdmedia.site !== 'object') {
49 window.sdmedia.site = {};
50 }
51
52 var site = window.sdmedia.site;
53 site.rootdir = "//slashdot.org";
54 }());
55
56 var pageload = {
57 pagemark: '681082805745628692',
58 before_content: (new Date).getTime()
59 };
60 function pageload_done( $, console, maybe ){
61 pageload.after_readycode = (new Date).getTime();
62 pageload.content_ready_time = pageload.content_ready - pageload.before_content;
63 pageload.script_ready_time = pageload.after_readycode - pageload.content_ready;
64 pageload.ready_time = pageload.after_readycode - pageload.before_content;
65 // Only report 1% of cases.
66 maybe || (Math.random()>0.01) || $.ajax({ data: {
67 op: 'page_profile',
68 pagemark: pageload.pagemark,
69 dom: pageload.content_ready_time,
70 js: pageload.script_ready_time
71 } });
72 }
73 </script>
74 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
75
76 <title>MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking - Slashdot</title>
77 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
78
79 <meta name="description" content="A 28-year-old MIT graduate named You Wu spent six years developing a low-cost robot designed to find leaks in pipes early, both to save water and to avoid bigger damage later from bursting water mains. &#34;Called Lighthouse, the robot looks like a badminton birdie,&#34; reports Fast Company. &#34;A soft 'skirt...">
80
81 <meta name="twitter:card" content="summary">
82 <meta name="twitter:site" content="@slashdot">
83 <meta name="twitter:domain" content="hardware.slashdot.org">
84 <meta property="og:url" content="https://hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29">
85
86 <meta property="og:title" content="MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking - Slashdot">
87 <meta property="og:description" content="A 28-year-old MIT graduate named You Wu spent six years developing a low-cost robot designed to find leaks in pipes early, both to save water and to avoid bigger damage later from bursting water mains. &#34;Called Lighthouse, the robot looks like a badminton birdie,&#34; reports Fast Company. &#34;A soft 'skirt...">
88
89
90
91 <meta property="og:image" content="https://a.fsdn.com/sd/topics/robot_64.png">
92
93 <meta property="fb:admins" content="100000696822412">
94 <meta property="fb:page_id" content="267995220856">
95
96 <meta name="viewport" content="width=1000, user-scalable=yes, minimum-scale=0, maximum-scale=10.0" />
97 <meta name="apple-mobile-web-app-capable" content="yes">
98 <meta name="apple-mobile-web-app-status-bar-style" content="black">
99
100 <link rel="canonical" href="https://hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking">
101
102 <link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.slashdot.org/story/345548" >
103
104
105 <link rel="stylesheet" type="text/css" media="screen, projection" href="//a.fsdn.com/sd/classic.ssl.css?8f5016a67a2f2048" >
106 <!--[if IE 8]><link rel="stylesheet" type="text/css" media="screen, projection" href="//a.fsdn.com/sd/ie8-classic.ssl.css?8f5016a67a2f2048" ><![endif]-->
107 <!--[if IE 7]><link rel="stylesheet" type="text/css" media="screen, projection" href="//a.fsdn.com/sd/ie7-classic.ssl.css?8f5016a67a2f2048" ><![endif]-->
108
109
110
111
112
113
114
115 <!-- -->
116
117
118
119
120
121 <!-- SMACKS: NEW CSS -->
122 <link rel="stylesheet" href="//a.fsdn.com/sd/css/app.css?8f5016a67a2f2048">
123
124 <script type='text/javascript'>
125 var _gaq = _gaq || [];
126 </script>
127
128
129
130
131
132
133
134
135
136 <script type="text/javascript" id="pbjs_script" data-dom="https://d3tglifpd8whs6.cloudfront.net" src="https://d3tglifpd8whs6.cloudfront.net/js/prebid/slash-story/slash-story.min.js"></script>
137 <script type='text/javascript'>
138 /*global performance */
139 var googletag = window.googletag || {};
140 googletag.cmd = googletag.cmd || [];
141
142 window.Ads_disallowPersonalization = 1;
143 bizx.cmp.ifConsent('all', 'all', function(){
144 window.Ads_disallowPersonalization = 0;
145 }, function(){
146 window.Ads_disallowPersonalization = 1;
147 }, function () {
148 window.bizxPrebid.Ads.initPrebid(window.bizxPrebid.adUnits);
149 });
150 </script>
151
152 <!-- prep GPT ads -->
153 <script type='text/javascript'>
154 (function() {
155 function page_type (loc) {
156 /*
157 only four page types:
158 - Story
159 - Poll
160 - Homepage (/ only)
161 - Other (but AdOps wants 'Homepage' again)
162 */
163 var path = loc.pathname;
164 var just_the_root = /^\/?$/.test(path);
165 var story_or_poll = /^\/(story(?=\/)|submission(?=\/)|poll(?=\/|Booth|s\b))/i.exec(path);
166
167 var page_type = just_the_root ? 'homepage'
168 : story_or_poll ? story_or_poll[1]
169 : 'other'
170
171 // exceptions
172 if (page_type.toLowerCase() === 'submission')
173 page_type = 'story'; // submissions are like stories, right?
174 else if (page_type.toLowerCase() === 'other')
175 page_type = 'homepage'; // this one might move out of here
176
177 return page_type;
178 }
179 function page_section (loc) {
180 //var greek = ['alpha', 'beta', 'gamma', 'delta'].join('|');
181 //var hostwise = '^([a-z]+)(?:-(?:'+greek+'))?\\.(?:slashdot\\.org|\\.xb\\.sf\\.net)$';
182 var pathwise = '^/(?:(recent|popular|blog)|stories/([^/]+))';
183 var rootwise = '^\/?$';
184
185 //var hostwisely = new RegExp(hostwise,'i').exec(loc.hostname);
186 var pathwisely = new RegExp(pathwise,'i').exec(loc.pathname);
187 var rootwisely = new RegExp(rootwise,'i').exec(loc.pathname);
188
189 var section = (rootwisely && 'homepage')
190 || (pathwisely && (pathwisely[1] || pathwisely[2]))
191 || ''
192 ;
193
194 return section.replace(/[^_a-z]/ig, '');
195 }
196 function single_size (size) {
197 return '' + size[0] + 'x' + size[1];
198 }
199 function sz_sz (sz) {
200 var str = '';
201 var sizes = [];
202 if (sz[0] instanceof Array) {
203 for (size in sz) {
204 sizes.push(single_size(sz[size]));
205 }
206 return sizes.join(',');
207 } else {
208 return single_size(sz);
209 }
210 }
211
212 function unique_tpc_array(array1,array2) {
213 var j = array1.concat(array2);
214 j.forEach(function (v,i,a) {
215 a[i] = v.replace(/[^_a-z]/ig, '');
216 });
217 return j.filter(function (v,i,a) {
218 return v != '' && a.indexOf(v) === i;
219 });
220 }
221
222 /* LEGEND:
223 - 'sz' = "size"
224 - 'npt' = "no page type" in ad unit name
225 */
226 var tags = {
227 '728x90_A': { 'sz': [[728, 90], [970, 90], [970, 250], [980, 66]] },
228 '728x90_B': { 'sz': [728, 90] },
229 '728x90_C': { 'sz': [728, 90], 'skip': { 'homepage': 1 } },
230 'HubIcon_200x90_A': { 'sz': [[200, 90], [220, 90]]},
231 'PowerSwitch_980x66_A': { 'sz': [980, 66], 'skip': { 'homepage': 1 } },
232 'PollPeel': { 'sz': [200, 90], 'skip': { 'homepage': 1 } },
233 //'VideoWidget_300x250': { 'sz': [300, 250], 'npt': 1 },
234 '300x250_A': { 'sz': [[300, 250], [300, 600], [300, 1050]] },
235 '300x250_B': { 'sz': [[300, 250], [300, 600]] },
236 '300x250_C': { 'sz': [[300, 250], [300, 600]] },
237 '300x250_D': { 'sz': [[300, 250], [300, 600]] },
238 'Pulse_300x600_A': { 'sz': [300, 600] },
239 //'Polls_Detail_300x250_A': { 'sz': [[300, 250], [300, 600]], 'npt': 1 },
240 //'Poll_300x250_A': { 'sz': [[300, 250], [300, 600]], 'npt': 1 },
241 //'SD_Story_1x1': { 'sz': [1, 1] },
242 '1x1': { 'sz': [1, 1] }
243 };
244
245 //var network_path = '/41014381/Slashdot/';
246 var network_path = '/41014381/Slashdot/';
247 var tag_name_prefix = 'SD';
248 var tag_name_linkage = '_';
249 var tag_name_pagetype = page_type(location);
250 var tag_topic = page_section(location);
251 if(tag_name_pagetype == 'poll'){
252 tag_name_pagetype = 'Poll';
253 }
254 var before_tag_pagetyped = network_path
255 + tag_name_prefix
256 + tag_name_linkage
257 + tag_name_pagetype
258 + tag_name_linkage
259 ;
260 var before_tag_pagetypeless = network_path
261 + tag_name_prefix
262 + tag_name_linkage
263 /* + tag_name_pagetype */
264 /* + tag_name_linkage */
265 ;
266
267
268 googletag.cmd.push(function() {
269
270 function remove_sticky_top() {
271 setTimeout(function(){
272 $('#div-gpt-ad-728x90_a').parent('div').addClass('adwrap-viewed-banner');
273 $('#div-gpt-ad-728x90_a').addClass('viewableImpression');
274 }, 1000);
275 }
276 function remove_sticky_railad() {
277 setTimeout(function(){
278 $('#slashboxes .adwrap-unviewed').addClass('adwrap-viewed-railad');
279 $('.railad').addClass('viewableImpression');
280 }, 1000);
281 }
282 function viewable_imp (slot) {
283 for(var i in slot) {
284 if(typeof slot[i] !== 'string') continue;
285 switch(slot[i]){
286 case "/41014381/Slashdot/SD_homepage_728x90_A":
287 case "/41014381/Slashdot/SD_story_728x90_A":
288 case "/41014381/Slashdot/SD_Poll_728x90_A":
289 case "/41014381/Slashdot/SD_homepage_728x90_Ref_A":
290 case "/41014381/Slashdot/SD_story_728x90_Ref_A":
291 case "/41014381/Slashdot/SD_Poll_728x90_Ref_A":
292 remove_sticky_top();
293 break;
294 case "/41014381/Slashdot/SD_homepage_300x250_A":
295 case "/41014381/Slashdot/SD_story_300x250_A":
296 case "/41014381/Slashdot/SD_Poll_300x250_A":
297 case "/41014381/Slashdot/SD_homepage_300x250_Ref_A":
298 case "/41014381/Slashdot/SD_story_300x250_Ref_A":
299 case "/41014381/Slashdot/SD_Poll_300x250_Ref_A":
300 remove_sticky_railad();
301 break;
302 }
303 //if(slot[i] === "/41014381/Slashdot/SD_homepage_728x90_A") remove_sticky_top();
304 //if(slot[i] === "/41014381/Slashdot/SD_homepage_300x250_A") remove_sticky_railad();
305 }
306 }
307 function define_me_a_slot (tag) {
308 if (tags[tag].skip && tags[tag].skip[tag_name_pagetype])
309 return;
310 var sandbox_regex = /\.xb\.sf\.net$/i;
311 var full_name = tags[tag].npt // "no page type"
312 ? before_tag_pagetypeless + tag
313 : before_tag_pagetyped + tag
314 ;
315 var div_id = 'div-gpt-ad-' + tag.toLowerCase();
316
317 var service;
318 // extend jQuery and get URL query params
319 jQuery.extend({
320 getQueryParameters : function(str) {
321 return (str || document.location.search).replace(/(^\?)/,'').split("&").map(function(n){
322 return n = n.split("="),this[n[0]] = n[1],this
323 }.bind({}))[0];
324 }
325 });
326
327 var queryParams = $.getQueryParameters();
328
329 if( queryParams.source === 'autorefresh' ) {
330 full_name = full_name.replace(/(\d+x\d+)/,'$1_Ref');
331 //console.log('TAG NAME: ', full_name);
332 }
333
334 service = googletag.defineSlot(
335 full_name
336 , tags[tag].sz
337 , div_id
338 ).addService(googletag.pubads());
339
340 service.setTargeting('sz', tags[tag].sz);
341
342
343 var frontend_tpc = tag_topic.split(",");
344 var backend_tpc = [ "technology", "science", "robot", "hardware", "mit", "leak" ];
345
346 var tpc_final = unique_tpc_array(frontend_tpc, backend_tpc);
347 service.setTargeting('tpc', tpc_final);
348 if (location.hostname.match(sandbox_regex)) {
349 service.setTargeting('test', 'adops');
350 }
351
352 }
353
354 for (tag in tags) {
355 define_me_a_slot(tag, false);
356 }
357 googletag.pubads().addEventListener('impressionViewable', function(event) {
358 viewable_imp(event.slot);
359 });
360
361 googletag.pubads().setTargeting('requestSource', 'GPT');
362 googletag.pubads().setRequestNonPersonalizedAds(window.Ads_disallowPersonalization);
363 googletag.pubads().enableAsyncRendering();
364
365
366 googletag.pubads().collapseEmptyDivs();
367 window.bizxPrebid.SAFEFRAMES = true;
368 bizxPrebid.Ads.pushToGoogle();
369 googletag.enableServices();
370 });
371 })();
372 </script>
373
374
375
376 <!-- CrossPixel -->
377 <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>
378
379 <!-- AdBlock Check -->
380 <script>
381 var isAdBlockActive = true;
382 </script>
383 <script async src="//a.fsdn.com/sd/js/scripts/ad.js?8f5016a67a2f2048"></script>
384
385 </head>
386 <body class="anon firehose ">
387
388
389 <script src="//a.fsdn.com/sd/all-minified.js?8f5016a67a2f2048" type="text/javascript"></script>
390
391
392 <script type="text/javascript">
393 (function(){
394 var regexp=/\s*(?:\d+|many)\s+more\s*/i;
395
396
397 var auto_more_count = 1;
398
399 function auto_more(){
400 var $more_link = $('#more-experiment a');
401 $more_link.each(function(){
402 var $lastitem = $('#firehoselist>article.fhitem:visible:last');
403 if ( Bounds.intersect(window, $lastitem) ) {
404
405
406 !--auto_more_count && (auto_more=undefined);
407 // don't allow a call till the next paginate gets built and |more_possible|
408 $(document).unbind('scroll', call_auto_more);
409 }
410 });
411 };
412
413 function call_auto_more(){ auto_more && auto_more(); }
414
415
416 $('#more-experiment a').
417 live('more-possible', function( event ){
418 var $more_link=$(this);
419 if ( regexp.test($more_link.text()) ) {
420
421 $(document).bind('scroll', call_auto_more);
422 } else {
423 $(document).unbind('scroll', call_auto_more);
424
425 }
426 });
427 })();
428 </script>
429 <!--[if lt IE 9]><script src="//a.fsdn.com/sd/html5.js"></script><![endif]-->
430
431
432 <script type="text/javascript">
433 (function() {
434 if (typeof window.janrain !== 'object') window.janrain = {};
435 if (typeof window.janrain.settings !== 'object') window.janrain.settings = {};
436
437 /* _______________ can edit below this line _______________ */
438
439 janrain.settings.tokenUrl = 'https://slashdot.org/token_callback.pl';
440 janrain.settings.type = 'embed';
441 janrain.settings.appId = 'ggidemlconlmjciiohla';
442 janrain.settings.appUrl = 'https://login.slashdot.org';
443 janrain.settings.providers = [
444 'googleplus',
445 'facebook',
446 'twitter',
447 'linkedin'];
448 janrain.settings.providersPerPage = '5';
449 janrain.settings.format = 'one column';
450 janrain.settings.actionText = 'Sign in with';
451 janrain.settings.showAttribution = false;
452 janrain.settings.fontColor = '#666666';
453 janrain.settings.fontFamily = 'lucida grande, Helvetica, Verdana, sans-serif';
454 janrain.settings.backgroundColor = '#ffffff';
455 janrain.settings.width = '300';
456 janrain.settings.borderColor = '#cccccc';
457 janrain.settings.borderRadius = '5'; janrain.settings.buttonBorderColor = '#CCCCCC';
458 janrain.settings.buttonBorderRadius = '0';
459 janrain.settings.buttonBackgroundStyle = 'gray';
460 janrain.settings.language = '';
461 janrain.settings.linkClass = 'janrainEngage';
462
463 /* _______________ can edit above this line _______________ */
464
465 function isReady() { janrain.ready = true; };
466 if (document.addEventListener) {
467 document.addEventListener("DOMContentLoaded", isReady, false);
468 } else {
469 window.attachEvent('onload', isReady);
470 }
471
472 var e = document.createElement('script');
473 e.type = 'text/javascript';
474 e.id = 'janrainAuthWidget';
475
476 e.src = 'https://rpxnow.com/js/lib/login.slashdot.org/engage.js';
477
478 var s = document.getElementsByTagName('script')[0];
479 s.parentNode.insertBefore(e, s);
480 })();
481 </script>
482
483 <script src="//cdn-social.janrain.com/social/janrain-social.min.js"></script>
484 <script type="text/javascript">
485 (function($) {
486 $(function(){
487 janrain.settings.appUrl = "https://login.slashdot.org";
488 $twitter = $('body .janrain_twitterButton');
489 $twitter.append('<i class="icon-twitter"></i>');
490
491 janrain.settings.social = {
492 providers: [
493 "native-facebook",
494 "twitter",
495 "linkedin",
496 "native-googleplus",
497 "native-reddit"
498 ],
499 shareCountMin: "100",
500 shareCountMode: "combined"
501 };
502 });
503 })($j);
504 </script>
505 <!-- index2_variant ||-->
506
507 <!-- TABOOLA -->
508 <script type="text/javascript">
509 if (!window.is_euro_union) {
510 window._taboola = window._taboola || [];
511 _taboola.push({home:'auto'});
512 !function (e, f, u) {
513 e.async = 1;
514 e.src = u;
515 f.parentNode.insertBefore(e, f);
516 }(document.createElement('script'),
517 document.getElementsByTagName('script')[0],
518 '//cdn.taboola.com/libtrc/slashdot/loader.js');
519 }
520 </script>
521
522 <!-- html-header type=current end --><!-- header type=current begin -->
523
524
525
526 <link rel="top" title="News for nerds, stuff that matters" href="//slashdot.org/" >
527 <link rel="search" title="Search Slashdot" href="//hardware.slashdot.org/search.pl">
528 <link rel="alternate" title="Slashdot RSS" href="http://rss.slashdot.org/Slashdot/slashdotHardware" type="application/rss+xml">
529 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
530
531
532 <div id="top_parent"></div>
533 <a name="topothepage"></a>
534
535 <div class="container">
536 <div class="nav-wrap">
537 <nav class="nav-primary" role="navigation" aria-label="Global Navigation">
538 <h1 class="logo">
539 <a href="//slashdot.org"><span>Slashdot</span></a>
540 </h1>
541
542 <ul class="nav-site">
543 <li><a href="//slashdot.org"><i class="icon-book" title="Stories"></i><span>Stories</span></a></li>
544 <li>
545 <ul class="filter-firehose">
546 <li class="nav-label">Firehose <i class="icon-angle-right"></i></li>
547 <li><a href="//slashdot.org/recent">All</a></li>
548 <li><a href="//slashdot.org/popular">Popular</a></li>
549 </ul>
550 </li>
551 <li><a href="//slashdot.org/polls"><i class="icon-chart-bar" title="Polls"></i><span>Polls</span></a></li>
552
553 <!--
554 <li><a href="//ask.slashdot.org"><i class="icon-question-circle"></i><span>Ask</span></a></li>
555
556 <li><a href="//events.slashdot.org"><i class="icon-calendar"></i><span>Events</span></a></li>
557 -->
558 <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>
559 </ul>
560 <a href="//slashdot.org/submission" class="btn btn-success">Submit</a>
561 </nav>
562 <nav class="nav-user" role="navigation" aria-label="user access and account controls">
563 <form id="search" class="form-inline nav-search-form" method="get" action="//slashdot.org/index2.pl">
564 <!-- //hardware.slashdot.org/index2.pl" -->
565 <div class="form-group">
566 <label class="sr-only" for="sitesearch">Search Slashdot</label>
567 <div class="input-group">
568 <input type="text" id="" class="" name="fhfilter" value="" placeholder="Search">
569 </div>
570 </div>
571 <button type="submit" class="btn icon-search"></button>
572 </form>
573 <ul class="user-access">
574
575
576 <li >
577 <a href="//slashdot.org/my/login" onclick="show_login_box(); return false;"><i class="icon-login"></i><span> Login</span></a>
578
579 </li>
580
581
582
583 <li class="nav-label">or</li>
584
585
586
587 <li >
588 <a href="//slashdot.org/my/newuser" ><i class="icon-user-add"></i><span> Sign up</span></a>
589
590 </li>
591
592
593 </ul>
594 </nav>
595 </div>
596 <div class="nav-secondary-wrap">
597 <nav class="nav-secondary" role="secondary-navigation">
598 <ul>
599 <li class="nav-label">Topics: </li>
600 <li><a href="//devices.slashdot.org">Devices</a></li>
601 <li><a href="//build.slashdot.org">Build</a></li>
602 <li><a href="//entertainment.slashdot.org">Entertainment</a></li>
603 <li><a href="//technology.slashdot.org">Technology</a></li>
604 <li><a href="//slashdot.org/?fhfilter=opensource">Open Source</a></li>
605 <li><a href="//science.slashdot.org">Science</a></li>
606 <li><a href="//yro.slashdot.org">YRO</a></li>
607 <!-- <li><a href="//slashdot.org/topics.pl">more...</a></li> -->
608 </ul>
609 </nav>
610 <nav class="nav-social" role="social navigation">
611 <ul>
612 <li class="nav-label">Follow us:</li>
613 <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>
614 <li><a href="http://www.facebook.com/slashdot" target="_blank"><i class="icon-facebook-squared"></i><span class="sr-only">Facebook</span></a></li>
615 <li><a href="https://plus.google.com/112601993642376762846/" target="_blank"><i class="icon-gplus-squared"></i><span class="sr-only">Google+</span></a></li>
616 <li><a href="http://twitter.com/slashdot" target="_blank"><i class="icon-twitter-squared"></i><span class="sr-only">Twitter</span></a></li>
617 <li><a href="//slashdot.org/newsletter" target="_blank"><i class="icon-mail-squared"></i><span class="sr-only">Newsletter</span></a></li>
618 </ul>
619 </nav>
620 </div>
621 </div>
622
623 <section>
624
625 <div class="message-bar" id="firehose-message-tray">
626 <span class="icon-quote-left"></span>
627 <p>
628
629
630 Please <strong><a href="//hardware.slashdot.org/login.pl">create an account</a></strong> to participate in the Slashdot moderation system
631
632 </p>
633 </div>
634
635
636 <div id='embbeded_login_modal' class="hide">
637 <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">
638 <div style='height:25px;'>&nbsp;</div>
639 <input type="hidden" name="returnto" value="">
640 <input type="hidden" name="op" value="userlogin">
641 <p>
642 <label class="fleft" for="unickname">Nickname:</label>
643 <input type="text" name="unickname" value="">
644 </p>
645 <p>
646 <label class="fleft" for="upasswd">Password:</label>
647 <input type="password" name="upasswd" placeholder="6-1024 characters long">
648 </p>
649 <label class="checkbox"><input type="checkbox" name="login_temp" value="yes"> Public Terminal</label>
650 <br>
651 <hr>
652 <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>
653 </fieldset></form>
654
655 <div id="janrainEngageEmbed"></div>
656 <div class="actions">
657 <a class="ico close" onclick="hide_login_slider();" href=""><span>Close</span></a>
658 </div>
659 </div>
660
661
662 <div class="banner-wrapper">
663 <div class="adwrap adwrap-unviewed banner-contain">
664
665 <div id='div-gpt-ad-728x90_a'><script type='text/javascript'>
666 googletag.cmd.push(function(){
667 googletag.display('div-gpt-ad-728x90_a');});</script></div>
668 <div id='div-gpt-ad-hubicon_200x90_a'><script type='text/javascript'>
669 googletag.cmd.push(function(){
670 googletag.display('div-gpt-ad-hubicon_200x90_a');});</script></div>
671 </div>
672 </div>
673
674 <a name="main-articles"></a>
675
676 <!-- header type=current end --><!-- body begin -->
677
678
679
680
681
682
683
684
685
686 <style type="text/css">
687 menu, menu * {
688 text-decoration:none;
689 }
690
691 menu[type=context] {
692 display:none;
693 position:absolute;
694 z-index:10000;
695 }
696
697 menu[type=context]:not(.brief) {
698 background-color:#dfdfdf;
699 margin:0;
700 padding:2px 0.5em;
701 border-style:solid;
702 border-width:1px;
703 border-color:#eeeeee #aaaaaa #aaaaaa #eeeeee;
704 -moz-border-radius-topright:.7em;
705 -webkit-border-top-right-radius: 0.7em 0.7em;
706 }
707
708 menu.full[type=context] > a.slash-hover:first-child {
709 -moz-border-radius-topright:.6em;
710 -webkit-border-top-right-radius: 0.6em 0.6em;
711 }
712
713
714
715 menu.brief[type=context] > a {
716 -moz-border-radius:.6em;
717 -webkit-border-radius: 0.6em;
718 color:#ffffff;
719 background-color:#000000;
720 }
721
722 /*
723 span.briefmenu a.tag:not(.datatype) {
724 padding-left:.5em;
725 }
726 */
727
728
729
730
731 /* #tag-menu a, #feedback-menu a { */
732 menu.tag-menu-admin a {
733 display:list-item;
734 list-style:none;
735 text-align:left;
736 font-weight:bold;
737 color:black;
738 padding:0.1em 0.5em;
739 margin:-0.1em -0.5em;
740 cursor:pointer;
741 }
742
743
744 .tags .edit-bar { position:relative; }
745 article aside .share .addthis_toolbox { display:block; width:60px; float:left; }
746 article aside.view_mode .share { min-width:120px; padding-top:.5em; }
747 #firehose.list article header h2 {padding-left: 20px; !important}
748 .novote .vote { display:none; }
749
750 .vote > a, .votedup > a, .voteddown > a {
751 display:inline-block;
752 height:22px;
753 width:22px;
754 margin: 2px 10px 0 0;
755 color:rgb(255,255,255);
756 text-decoration:none;
757 line-height:22px;
758 text-align:center;
759 font-weight:bold;
760 font-size:14px;
761 border-width:1px;
762 border-style:solid;
763 border-color:rgba(0,0,0,0.5);
764 }
765
766 .vote > a, .votedup > a, .voteddown > a {color:rgb(0,0,0);}
767
768 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); }
769 .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; }*/}
770 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; */}
771 .voteddown .down, .votedup .up { margin-right: 10px; text-indent:2px; line-height:24px; }
772 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);}
773 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%);}
774
775
776
777
778 #tag-menu span.var-tag {
779 font-weight:normal;
780 color:#444444;
781 }
782
783 menu.reasons-menu a {
784 padding:0 .25em 0 .25em;
785 font-size:80%;
786 -moz-border-radius:.5em;
787 -webkit-border-radius:.5em;
788 cursor:pointer;
789 }
790
791 menu.reasons-menu a:hover {
792 background:rgb(153,153,153);
793 background:-moz-linear-gradient(100% 100% 90deg, rgb(102,102,102), rgb(153,153,153) 70%) repeat scroll 0 0 rgb(102,102,102);
794 background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(153,153,153)), to(rgb(102,102,102)));
795 color:#fff;
796 text-decoration:none;
797 font-weignt:normal;
798 }
799
800 article.fhitem-story menu.reasons-menu a:hover {
801 background:#002323 !important;
802 background:-moz-linear-gradient(100% 100% 90deg, #002323, #005353 70%) repeat scroll 0 0 #002323 !important;
803 background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#005353), to(#002323)) !important;
804 }
805
806
807 menu.reasons-menu {
808 display:none;
809 margin:0;
810 padding:0;
811 }
812
813 div.fhitem h3 menu.reasons-menu {
814 margin:0.25em 0 0;
815 }
816
817 div.fhitem h3 menu.reasons-menu a.tag {
818 font-size:.8em;
819 }
820
821 #tag-menu a.slash-hover,
822 #feedback-menu a.slash-hover,
823
824 .tag-display span.tag:hover,
825 .tag-display span.tag.trigger {
826 color:white;
827 background-color:rgb(0, 85, 85);
828 }
829
830 #tag-menu a.slash-hover span.var-tag {
831 color:#eee;
832 }
833
834 .tag-entry.default {
835 color:#ccc;
836 }
837
838 .brief .nix {
839 margin-top:-1.35em;
840 margin-left:0px;
841 margin-top:-1.15em;
842 text-decoration:none;
843 line-height:1.35em;
844 padding:0 2px;
845 -moz-border-radius:.6em 0 0 .6em;
846 -webkit-border-radius:.6em 0 0 .6em;
847 -o-border-radius:.6em 0 0 .6em;
848 border-radius:.6em 0 0 .6em;
849 color:#fff !important;
850 background:transparent !important;
851 }
852
853 .brief .nix:hover {
854 background:rgb(153,153,153) !important;
855 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;
856 background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgb(153,153,153)), to(rgb(102,102,102))) !important;
857 }
858
859 </style>
860
861 <menu id="nix-reasons" style="display:none">
862 <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>
863 </menu>
864 <menu id="nod-reasons" style="display:none">
865 <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>
866 </menu>
867 <menu id="comment-nix-reasons" style="display:none">
868 <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>
869 </menu>
870 <menu id="comment-nod-reasons" style="display:none">
871 <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>
872 </menu>
873
874 <menu id="tag-nod-reasons" style="display:none">
875 <a class="tag">descriptive</a>
876 </menu>
877 <menu id="feedback-menu" class="tag-menu-admin" type="context">
878 <a class="tag">typo</a><a class="tag">dupe</a><a class="tag">error</a>
879 </menu>
880 <menu id="tag-menu" class="tag-menu-admin none" type="context">
881
882 <!-- <a data-op="!" class="nix">!<span class="var-tag hide"></span></a>-->
883
884 </menu>
885
886 <script type="text/javascript">
887 $(function(){
888 var $CURRENT_MENU, $TAG_MENU=$('#tag-menu'), NOTNOT=/^!!/, IE7=/^7\.0/, TAG_PREFIX=/^\/tag\//;
889
890 function get_tag_name( $tag ){
891 return ($tag.attr('href') || '').replace(TAG_PREFIX, '') || $tag.text().toLowerCase();
892 }
893
894 function trigger_menu( e, selector, $menu, menu_content ){
895 var $target=$(original_target(e, selector)), in_use=$target.is('.trigger');
896 if ( $CURRENT_MENU ) {
897 $CURRENT_MENU.menu('cancel', e);
898 $CURRENT_MENU = null;
899 }
900
901 if ( !in_use ) {
902 menu_content && $menu.stop(true, true).hide().html(menu_content);
903 ($CURRENT_MENU=$menu).menu('context', e);
904 }
905 return !in_use;
906 }
907
908 function open_menu( trigger, $menu ){
909 var $trigger=$(trigger), $fhitem=$trigger.closest('.fhitem');
910 $fhitem.length && user_intent('interest', $fhitem[0]);
911
912 $menu.appendTo(document.body).css({ opacity:0 }).show();
913
914 var right = $fhitem.offset().left + $fhitem.width(),
915 global = $trigger.offset(),
916 local = $menu.offsetParent().offset();
917
918 // Ugly IE position hack required:
919 $.browser.msie && IE7.test($.browser.version) && (local.top = 0);
920
921 // pin the menu (horizontally) on-screen
922 global.left = Math.min(global.left, right-$menu.width());
923
924 $trigger.addClass('trigger');
925 $menu.css({
926 position: 'absolute',
927 top: global.top - local.top + $trigger.height(),
928 left: global.left - local.left,
929 opacity: 1
930 });
931 }
932
933 function close_menu( trigger, $menu ){
934 $menu.hide();
935 $(trigger).removeClass('trigger');
936 ($CURRENT_MENU===$menu) && ($CURRENT_MENU=false);
937 }
938
939 /* T2 tag context-menu */
940 var $TAG_MENU=$('#tag-menu'), NOTNOT=/^!!/;
941
942
943 var user_is_admin = 0;
944
945
946
947 $('a[rel=tag]').live('mousedown',function(ea){
948 window.open(this.href);
949 return false;
950 })
951
952 $('.tag-bar .disagree').live('mousedown',function(ee){
953 var fhitem = $(original_target(ee)).closest('.fhitem')[0],
954 command = ('!' + $(original_target(ee)).attr("data-tag")).replace(NOTNOT, '');
955 try { Tags.submit(fhitem, command); } catch ( err ) { }
956 return false;
957 })
958
959
960
961 $('a[rel=tag]').
962 live('mousedown', function( e ){
963
964 return true;
965
966
967 }).
968 live('click', function( e ){
969 if ( !logged_in ) {
970 var target = original_target(e),
971 tag = $(target).text();
972 addfhfilter(tag);
973 }
974 e.preventDefault();
975 return false;
976 });
977
978 $TAG_MENU.menu({
979 cssNamespace: 'slash',
980 liveTriggers: true,
981 clickDuration: 300,
982
983 start: function( e, ui ){
984 var $tag = $(ui.trigger),
985 tag = get_tag_name($tag),
986 context = firehose_settings && firehose_settings.viewtitle;
987
988 // Insert the tagname into the menu items where needed.
989 $TAG_MENU.find('span.var-tag').text(tag);
990 $TAG_MENU.find('a.nix').attr('title','not ' + tag);
991
992
993 // non-admins may only delete their own tags
994 $TAG_MENU.find('a:[data-op="-"]').toggle($tag.is('.my'));
995
996
997 // *tagname* in *viewtitle*
998 $TAG_MENU.find('a:[data-op="="]').toggle(!!context);
999 context && $TAG_MENU.find('span.var-view').text(context);
1000
1001 open_menu($tag, $TAG_MENU);
1002 },
1003
1004 select: function( e, ui ){
1005 var $tag = $(ui.trigger),
1006 tag = get_tag_name($tag),
1007 op = $(ui.select).attr('data-op'),
1008 fhitem,
1009 command;
1010
1011 // Global for positioning other things.
1012 $related_trigger = $tag;
1013
1014 switch ( op ) {
1015 case '=':
1016 addfhfilter(tag);
1017 break;
1018
1019 default:
1020 fhitem = $tag.closest('.fhitem')[0];
1021 command = (op + tag).replace(NOTNOT, '');
1022 try { Tags.submit(fhitem, command); } catch ( err ) { }
1023 break;
1024 }
1025 },
1026
1027 stop: function( e, ui ){ close_menu(ui.trigger, $TAG_MENU); }
1028 });
1029
1030
1031
1032
1033 /* T2 feedback context-menu */
1034
1035
1036
1037 /* T2 datatype context-menu (admin-only) */
1038
1039
1040
1041
1042
1043
1044 });
1045 </script>
1046
1047
1048
1049 <!-- SMACKS: BEGIN STORY CONTENT -->
1050 <div class="container">
1051 <!--SMACKS: BEGING CENTER COLUMN -->
1052 <div class="main-wrap has-rail-right">
1053 <div class="main-content">
1054 <div class="grid_24 a2 ">
1055 </div>
1056 <div id="firehose" class="nothumbs">
1057 <div id="firehoselist" class="fhroot fleft grid_24">
1058 <div id="announcement">
1059 <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>
1060 <a href="" class="btn-close" title="don't show me this again" onclick="closeAnnouncement(); return false;">&times;</a>
1061 </div>
1062
1063
1064 <script type="text/javascript">
1065
1066 if (!$.cookie('hide_sitenotice_36')) {
1067 $('#announcement').fadeIn(300);
1068 }
1069
1070 function closeAnnouncement() {
1071 $('#announcement').fadeOut(300);
1072 $.cookie('hide_sitenotice_36', 'true', { path: '/', domain: 'slashdot.org', expires: 1 });
1073 }
1074 </script>
1075 <article id="firehose-102640424" data-fhid="102640424" data-fhtype="story" class="fhitem fhitem-story article usermode thumbs grid_24">
1076 <span class="sd-info-block" style="display: none">
1077 <span class="sd-key-firehose-id">102640424</span>
1078 <span class="type">story</span>
1079
1080 </span>
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091 <header>
1092
1093 <span class="topic" id="topic-102640424">
1094 <a href="//hardware.slashdot.org/index2.pl?fhfilter=robot" onclick="return addfhfilter('robot');">
1095
1096 <img src="//a.fsdn.com/sd/topics/robot_64.png" width="64" height="64" alt="Robotics" title="Robotics">
1097
1098 </a>
1099
1100
1101
1102
1103
1104
1105
1106
1107 <a href="//hardware.slashdot.org/index2.pl?fhfilter=science" onclick="return addfhfilter('science');">
1108
1109 <img src="//a.fsdn.com/sd/topics/science_64.png" width="64" height="64" alt="Science" title="Science">
1110
1111 </a>
1112
1113
1114
1115
1116
1117
1118 <a href="//hardware.slashdot.org/index2.pl?fhfilter=technology" onclick="return addfhfilter('technology');">
1119
1120 <img src="//a.fsdn.com/sd/topics/technology_64.png" width="64" height="64" alt="Technology" title="Technology">
1121
1122 </a>
1123 </span>
1124
1125
1126 <h2 class="story">
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140 <span id="title-102640424" class="story-title"> <a href="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking">MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking</a> <span class=" no extlnk"><a class="story-sourcelnk" href="https://www.fastcompany.com/90232363/this-leak-seeking-robot-just-won-the-u-s-james-dyson-award" title="External link - https://www.fastcompany.com/90232363/this-leak-seeking-robot-just-won-the-u-s-james-dyson-award" target="_blank"> (fastcompany.com) </a></span></span>
1141
1142
1143
1144 <!--<span class="comments commentcnt-102640424" >18</span>-->
1145
1146
1147
1148 <!-- comment bubble -->
1149
1150 <span class="comment-bubble"><a href="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking#comments" title="">18</a></span>
1151
1152 </h2>
1153 <div class="details" id="details-102640424">
1154 <span class="story-details">
1155 <span class="story-views">
1156 <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>
1157 </span>
1158 </span>
1159 <span class="story-byline">
1160
1161
1162 Posted
1163 by
1164
1165
1166
1167 <a href="https://twitter.com/BeauHD" rel="nofollow">BeauHD</a>
1168
1169
1170
1171
1172
1173
1174 <time id="fhtime-102640424" datetime="on Thursday September 06, 2018 @07:20PM">on Thursday September 06, 2018 @07:20PM</time>
1175
1176
1177 from the <span class="dept-text">leak-detecting</span> dept.
1178
1179 </span>
1180 </div>
1181 </header>
1182
1183 <div class="body" id="fhbody-102640424">
1184
1185
1186
1187
1188
1189
1190 <div id="text-102640424" class="p">
1191
1192
1193 A 28-year-old MIT graduate named You Wu spent six years <a href="https://www.fastcompany.com/90232363/this-leak-seeking-robot-just-won-the-u-s-james-dyson-award">developing a low-cost robot designed to find leaks in pipes early</a>, both to save water and to avoid bigger damage later from bursting water mains. "Called Lighthouse, the robot looks like a badminton birdie," reports Fast Company. "A soft 'skirt' on the device is covered with sensors. As it travels through pipes, propelled by the flowing water, suction tugs at the device when there's a leak, and it records the location, making a map of critical leaks to fix." From the report: <i> MIT doctoral student You Wu spent six years developing the design, building on research that earlier students began under a project sponsored by a university in Saudi Arabia, where most drinking water comes from expensive desalination plants and around a third of it is lost to leaks. It took three years before he had a working prototype. Then Wu got inspiration from an unexpected source: At a party with his partner, he accidentally stepped on her dress. She noticed immediately, unsurprisingly, and Wu realized that he could use a similar skirt-like design on a robot so that the robot could detect subtle tugs from the suction at each leak. Wu graduated from MIT in June, and is now launching the technology through a startup called <a href="http://watchtowerrobotics.com/">WatchTower Robotics</a>. The company will soon begin pilots in Australia and in Cambridge, Massachusetts. One challenge now, he says, is creating a guide so water companies can use the device on their own. </i><br>
1194
1195 </div>
1196
1197
1198
1199
1200
1201
1202
1203
1204 </div>
1205 <aside class="grid_24 view_mode">
1206
1207 <div class="units-12 story-detail-tags">
1208 <span id="sharethis-102640424" class="">
1209
1210
1211
1212
1213
1214
1215 <div class="story-controls">
1216 <div
1217 class="janrainSocialPlaceholder"
1218 data-janrain-url="https://hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking"
1219 data-janrain-title="MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking"
1220 data-janrain-message="MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking @slashdot"
1221 ></div>
1222 </div>
1223
1224
1225 </span>
1226
1227 <div class="story-tags">
1228 <div class="tright tw">
1229
1230 <span class="tright tags">
1231
1232 <menu type="toolbar" class="edit-bar">
1233 <span id="tagbar-102640424" class="tag-bar none">
1234 <a class="topic tag" rel="statictag" href="//slashdot.org/tag/" target="_blank"></a>
1235 <a class="popular tag" rel="statictag" href="//slashdot.org/tag/mit" target="_blank">mit</a>
1236 <a class="popular tag" rel="statictag" href="//slashdot.org/tag/robot" target="_blank">robot</a>
1237 <a class="popular tag" rel="statictag" href="//slashdot.org/tag/science" target="_blank">science</a>
1238
1239 </span>
1240
1241 <a class="edit-toggle" href="/my/login/" onclick="show_login_box();return false;">
1242 <span class="icon-tag btn collapse"></span>
1243 </a>
1244
1245
1246 <div class="tag-menu">
1247 <input class="tag-entry default" type="text" value="apply tags">
1248 </div>
1249
1250
1251
1252
1253
1254 </menu>
1255
1256 </span>
1257
1258 </div>
1259 </div>
1260 </div>
1261
1262
1263
1264
1265
1266
1267 <section class="grid_24" id="newa2footerv2">
1268 <div class="grid_6 pr">
1269 <h3><a title="Previous story" href="//politics.slashdot.org/story/18/09/06/2137245/blockchains-are-not-safe-for-voting-concludes-nap-report?sdsrc=prev">&larr;</a></h3>
1270 </div>
1271 <div class="grid_12 rl">
1272 <h3>You may like to read:</h3>
1273 </div>
1274 <div class="grid_6 ns">
1275 <h3><a title="Next story" href="//news.slashdot.org/story/18/09/06/2043213/professor-who-coined-term-net-neutrality-thinks-its-time-to-break-up-facebook?sdsrc=next">&rarr;</a></h3>
1276 </div>
1277 <div class="grid_6">
1278 <span class="c">
1279 <a href="//politics.slashdot.org/story/18/09/06/2137245/blockchains-are-not-safe-for-voting-concludes-nap-report?sdsrc=prev">Blockchains Are Not Safe For Voting, Concludes NAP Report </a>
1280 </span>
1281 </div>
1282 <div class="grid_12">
1283 <span class="c">
1284
1285
1286
1287
1288
1289
1290 <h2><a href="//hardware.slashdot.org/story/18/01/10/002255/jack-in-the-box-ceo-says-it-just-makes-sense-to-replace-workers-with-robots?sdsrc=popbyskid">Jack In the Box CEO Says 'It Just Makes Sense' To Replace Workers With Robots</a><br></h2>
1291 <h2><a href="//hardware.slashdot.org/story/18/07/29/0021238/slashdot-asks-which-is-better-a-basic-income-or-a-guaranteed-job?sdsrc=popbyskid">Slashdot Asks: Which is Better, a Basic Income or a Guaranteed Job?</a><br></h2>
1292 <h2><a href="//hardware.slashdot.org/story/18/07/13/2349236/retiring-worn-out-wind-turbines-could-cost-billions-that-nobody-has?sdsrc=popbyskid">Retiring Worn-Out Wind Turbines Could Cost Billions That Nobody Has</a><br></h2>
1293 <h2><a href="//hardware.slashdot.org/story/17/09/12/1839207/apple-announces-iphone-x-with-edge-to-edge-display-wireless-charging-and-no-home-button?sdsrc=popbyskid">Apple Announces iPhone X With Edge-To-Edge Display, Wireless Charging and No Home Button</a><br></h2>
1294 <h2><a href="//hardware.slashdot.org/story/18/07/22/144232/slashdot-asks-do-you-need-to-properly-eject-a-usb-drive-before-yanking-it-out?sdsrc=popbyskid">Slashdot Asks: Do You Need To Properly Eject a USB Drive Before Yanking it Out?</a><br></h2>
1295
1296
1297
1298 </span>
1299 </div>
1300 <div class="grid_6">
1301 <span class="c">
1302
1303 <a href="//news.slashdot.org/story/18/09/06/2043213/professor-who-coined-term-net-neutrality-thinks-its-time-to-break-up-facebook?sdsrc=next">Professor Who Coined Term 'Net Neutrality' Thinks It's Time To Break Up Facebook</a>
1304
1305 </span>
1306 </div>
1307 </section>
1308
1309
1310
1311 </aside>
1312
1313
1314
1315
1316 </article>
1317 </div>
1318 </div>
1319 </div>
1320 </div>
1321 <!-- SMACKS: BEGIN RIGHT RAIL -->
1322 <aside id="slashboxes" class="rail-right">
1323
1324 <div id="slashboxesin" class="yui-b">
1325
1326
1327
1328 </div>
1329 <div class="railad adwrap-unviewed">
1330 <div id='div-gpt-ad-300x250_a'><script type='text/javascript'>
1331 googletag.cmd.push(function(){
1332 googletag.display('div-gpt-ad-300x250_a');});</script></div>
1333 </div>
1334 <div id="taboola-below-article-thumbnails"></div>
1335 <script type="text/javascript">
1336 if ( isAdBlockActive) {
1337 window._taboola = window._taboola || [];
1338 _taboola.push({
1339 mode: 'thumbnails-rr2',
1340 container: 'taboola-below-article-thumbnails',
1341 placement: 'Below Article Thumbnails',
1342 target_type: 'mix'
1343 });
1344 };
1345 </script>
1346
1347 </aside>
1348 <!-- SMACKS: END RIGHT RAIL -->
1349 </div>
1350 <!-- END STORY CONTENT -->
1351
1352 <!-- THIS IS THE LOCATION FOR THE NEW STORY_B CODE -->
1353 <div class="adwrap">
1354 <div id='div-gpt-ad-728x90_b'><script type='text/javascript'>
1355 googletag.cmd.push(function(){
1356 googletag.display('div-gpt-ad-728x90_b');});</script></div>
1357 </div>
1358 <div id="stackcommerce-adwrap" style="display:none;">
1359 <div style="margin:auto;max-width:970px;max-height:250px;">
1360 <div data-sc-widget data-publisher-id="66" data-categories="88,90" data-items-per-page="4" data-col-count="4" data-utm-source="slashdot.org" data-utm-content="story-deal-feed"></div>
1361 </div>
1362 </div>
1363 <script type="text/javascript">
1364 if (!window.is_euro_union) {
1365 if (isAdBlockActive) {
1366 $.ajax({
1367 url: '/ajax.pl?op=nel',
1368 success: function(html){
1369 if(html){
1370 $('#firehoselist article').eq(0).after(html);
1371 } else {
1372 (function () {
1373 var stackCommerceDiv = document.getElementById('stackcommerce-adwrap');
1374 stackCommerceDiv.style = '';
1375 var stackCommerce = document.createElement('script');
1376 stackCommerce.async = true;
1377 stackCommerce.type = 'text/javascript';
1378 stackCommerce.src = 'https://widgets.stackcommerce.com/js-deal-feed/0.1/widget.js';
1379 var node = document.getElementsByTagName('script')[0];
1380 node.parentNode.insertBefore(stackCommerce, node);
1381 })();
1382 }
1383 }
1384 });
1385 };
1386 }
1387 </script>
1388 <!--------------------------->
1389
1390
1391 <!-- SMACKS: BEGIN COMMENTS CONTAINER -->
1392 <div class="container">
1393 <!-- SMACKS: BEGIN COMMENTS SECTION -->
1394 <div class="main-wrap">
1395 <div class="main-content">
1396 <div id="comments" class="a2commentwrap">
1397 <div>
1398 <a name="comments"></a>
1399 <div id="comments" class="container">
1400 <div class="main-wrap">
1401 <div class="main-content">
1402 <section class="d2incommentspl">
1403 <div class="commentwrap" id="commentwrap">
1404
1405 <div class="commentBox">
1406 <div class="title hide">
1407 <h4>
1408
1409 <span class="escape-link"><a href="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking" title="Back to Article - MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking">MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking</a></span>
1410
1411 <span class="commentBoxLinks"><a href="#" onclick="D2.ajaxFetchComments(0,1); return false"><span id="more_comments_num_d"></span> More</a>
1412
1413
1414
1415 | <span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;op=reply&amp;threshold=1&amp;commentsort=0&amp;mode=thread&amp;pid=" onclick="D2.replyTo(0); return false;">Reply</a>
1416
1417
1418 <a class="login" href="//hardware.slashdot.org/login.pl" onclick="show_login_box(); return false">Login</a></span>
1419 </h4>
1420 </div>
1421 </div>
1422
1423
1424 <section class="grid_24" id="d2header"><div>
1425
1426 <h2 class="commentspl test"><a title="Back to Article - MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking" href="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking">MIT Graduate Creates Robot That Swims Through Pipes To Find Out If They're Leaking</a></h2>
1427
1428 <nav class="grid_24">
1429 <div class="grid_14 widthauto">
1430
1431 <span class="ind"></span><a class="btn first" href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;op=reply&amp;threshold=1&amp;commentsort=0&amp;mode=thread&amp;pid=" onclick="D2.replyTo(0); return false;">Post</a>
1432
1433 <!-- <a href="//hardware.slashdot.org/search.pl?op=comments&amp;sid=12580540" class="btn">Search <span class="totalcommentcnt">18</span> Comments</a> -->
1434
1435
1436 <a href="#" onclick="D2.ajaxFetchComments(0,1,'','',-1); return false" class="btn" id="d2loadall">Load All Comments</a>
1437
1438
1439
1440 </div>
1441 <div class="grid_10 d1or2">
1442
1443
1444
1445 <div id="d2out" class="horizontal rooted grid_15">
1446 <div id="d2act" class="hide">
1447 <div class="loki" id="gods">
1448 <script type="text/javascript">
1449 $(function(){
1450 D2.slider = new D2.Slider(
1451 D2.user_threshold(),
1452 D2.user_highlightthresh(),
1453 'x'
1454 );
1455 });
1456 </script>
1457 <div id="bones" class="grid_12">
1458 <div class="ccw-count-container grid_24">
1459 <span id="ccw-full-count-text" class="grid_8 ccw-count-text tcenter"><span></span><span id="ccw-full-phrase">&nbsp;Full</span></span>
1460 <span id="ccw-abbr-count-text" class="grid_8 ccw-count-text"><span></span><span id="ccw-abbr-phrase">&nbsp;Abbreviated</span></span>
1461 <span id="ccw-hide-count-text" class="grid_8 ccw-count-text tleft"><span></span><span id="ccw-hide-phrase">&nbsp;Hidden</span></span>
1462 </div>
1463 <div id="ccw">
1464 <div id="ccw-body" class="ccw-core">
1465 <div id="ccw-panel-container" class="ccw-core">
1466 <div id="ccw-full-panel" class="ccw-panel">
1467 /Sea<div class="ccw-panel-border"></div>
1468 <div id="ccw-full-count-pos" class="ccw-core-pos ccw-count-pos"></div>
1469 </div>
1470 <div id="ccw-abbr-panel" class="ccw-panel">
1471 <div class="ccw-panel-border"></div>
1472 <div id="ccw-abbr-count-pos" class="ccw-core-pos ccw-count-pos"></div>
1473 </div>
1474 <div id="ccw-hide-panel" class="ccw-panel">
1475 <div id="ccw-hide-count-pos" class="ccw-core-pos ccw-count-pos"></div>
1476 </div>
1477 </div>
1478 <div id="ccw-control" class="ccw-core">
1479 <div id="ccw-centering-rail" class="ccw-core">
1480 <div id="ccw-hide-bar-pos" class="ccw-core-pos">
1481 <div id="ccw-hide-bar" class="ccw-bar">
1482 <div id="ccw-hide-bar-tab" class="ccw-bar-tab"></div>
1483 <div class="ccwa"></div>
1484 <div class="ccwb"></div>
1485 <div id="ccw-hide-bar-upzone" class="ccw-upzone" onclick="D2.slider.stepTHT(HIDE_BAR, +1)"></div>
1486 <div id="ccw-hide-bar-downzone" class="ccw-downzone" onclick="D2.slider.stepTHT(HIDE_BAR, -1)"></div>
1487 </div>
1488 </div>
1489 <div id="ccw-abbr-bar-pos" class="ccw-core-pos">
1490 <div id="ccw-abbr-bar" class="ccw-bar">
1491 <div id="ccw-abbr-bar-tab" class="ccw-bar-tab"></div>
1492 <div class="ccwa"></div>
1493 <div class="ccwb"></div>
1494 <div id="ccw-abbr-bar-upzone" class="ccw-upzone" onclick="D2.slider.stepTHT(ABBR_BAR, +1)"></div>
1495 <div id="ccw-abbr-bar-downzone" class="ccw-downzone" onclick="D2.slider.stepTHT(ABBR_BAR, -1)"></div>
1496 </div>
1497 </div>
1498 </div>
1499 </div>
1500 </div>
1501 <div class="ccw-score-label grid_24">
1502 <div class="grid_3"><span class="sc">Score:</span></div>
1503 <div class="grid_3">5<span class="lg"></span></div>
1504 <div class="grid_3">4<span class="lg"></span></div>
1505 <div class="grid_3">3<span class="lg"></span></div>
1506 <div class="grid_3">2<span class="lg"></span></div>
1507 <div class="grid_3">1<span class="lg"></span></div>
1508 <div class="grid_3">0<span class="lg"></span></div>
1509 <div class="grid_3">-1<span class="lg"></span></div>
1510 </div>
1511 </div>
1512 </div>
1513 <div class="commentControlFooter">
1514 <a href="#" onclick="D2.ajaxFetchComments(0,1); return false"><span id="more_comments_num_c"></span> More</a>
1515
1516
1517
1518 | <span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;op=reply&amp;threshold=1&amp;commentsort=0&amp;mode=thread&amp;pid=" onclick="D2.replyTo(0); return false;">Reply</a>
1519
1520
1521 <a class="login" href="//hardware.slashdot.org/login.pl" onclick="show_login_box(); return false">Login</a><div id="login_cover" class="hide" onclick="hide_login_box()"></div>
1522 <div id="login_box" class="hide">
1523 <div id="login_box_content">
1524 <div id='embbeded_login_modal' class="hide">
1525 <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">
1526 <div style='height:25px;'>&nbsp;</div>
1527 <input type="hidden" name="returnto" value="//hardware.slashdot.org/comments.pl?sid=12580540">
1528 <input type="hidden" name="op" value="userlogin">
1529 <p>
1530 <label class="fleft" for="unickname">Nickname:</label>
1531 <input type="text" name="unickname" value="">
1532 </p>
1533 <p>
1534 <label class="fleft" for="upasswd">Password:</label>
1535 <input type="password" name="upasswd" placeholder="6-1024 characters long">
1536 </p>
1537 <label class="checkbox"><input type="checkbox" name="login_temp" value="yes"> Public Terminal</label>
1538 <br>
1539 <hr>
1540 <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>
1541 </fieldset></form>
1542
1543 <div id="janrainEngageEmbed"></div>
1544 <div class="actions">
1545 <a class="ico close" onclick="hide_login_slider();" href=""><span>Close</span></a>
1546 </div>
1547 </div>
1548 <div class="actions">
1549 <a class="ico close" href="#" onclick="hide_login_box(); return false"><span>Close</span></a>
1550 </div>
1551 </div>
1552 </div>
1553 <script type="text/javascript">logged_in = 0</script>
1554 </div>
1555 <div id="commentControlBoxStatus" class="hide"></div>
1556 </div>
1557 </div>
1558 </div>
1559
1560
1561 <a href="//hardware.slashdot.org/search.pl?op=comments&amp;sid=12580540" class="ui-icon search_comments">Search <span class="totalcommentcnt">18</span> Comments</a>
1562
1563 <a class="pref ui-icon-w" href="//hardware.slashdot.org/users.pl" onclick="show_login_box(); $('#modal_box').addClass('login'); return false;">Log In/Create an Account</a>
1564
1565 </div>
1566 </nav>
1567 <section id="besttabs" class="grid_24">
1568 <span class="legend">Comments Filter:</span>
1569 <ul class="besttabslist">
1570 <li class="active">
1571 <a href="#" data-filter-url="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking#comments">All</a>
1572 </li>
1573
1574 <li >
1575 <a href="" data-filter-url="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking/insightful-comments#comments">Insightful</a>
1576 </li>
1577
1578 <li >
1579 <a href="" data-filter-url="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking/informative-comments#comments">Informative</a>
1580 </li>
1581
1582 <li >
1583 <a href="" data-filter-url="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking/interesting-comments#comments">Interesting</a>
1584 </li>
1585
1586 <li >
1587 <a href="" data-filter-url="//hardware.slashdot.org/story/18/09/06/2058201/mit-graduate-creates-robot-that-swims-through-pipes-to-find-out-if-theyre-leaking/funny-comments#comments">Funny</a>
1588 </li>
1589
1590 </ul>
1591 <script>
1592 (function($){
1593 $('#besttabs').show();
1594 $('.besttabslist').on('click', 'li a', function(e){
1595 e.preventDefault();
1596 var url = $(this).data('filter-url');
1597 //console.log('URL= ', url);
1598 $(this)
1599 .closest('ul').find('li').removeClass('active')
1600 .end()
1601 .closest('li').addClass('active');
1602 window.location = url;
1603 });
1604 })($j);
1605 </script>
1606 </section>
1607 <aside class="grid_24">
1608 <p>
1609 <small><strong>The Fine Print:</strong> The following comments are owned by whoever posted them. We are not responsible for them in any way.</small>
1610 </p>
1611 </aside>
1612 </section>
1613
1614 </div>
1615 </div>
1616 </div><script src="//a.fsdn.com/sd/comments-minified.js?8f5016a67a2f2048" type="text/javascript"></script>
1617
1618
1619 <script type="text/javascript">
1620 <!--
1621 D2.d2_keybindings_disable()[191] = 1;
1622 D2.boxStatus(1);
1623 D2.comments({ 57266678: { uid: 666, pid: 0, read: 0, points: 1, kids: [ 57266720, 57266722, 57267664 ], opid: 0 }, 57266994: { uid: 13324, pid: 57266704, subject: "Re:Ha, 6 years to duplicate tech we already have", read: 0, points: 2, kids: [ ], opid: 57266704 }, 57266644: { uid: 666, pid: 57266598, read: 0, points: 0, kids: [ ], opid: 57266598 }, 57266724: { uid: 1122017, pid: 0, read: 0, points: 2, kids: [ ], opid: 0 }, 57266608: { uid: 2972, pid: 0, read: 0, points: 1, kids: [ 57266676, 57266858 ], opid: 0 }, 57266858: { uid: 666, pid: 57266608, read: 0, points: 0, kids: [ 57266932 ], opid: 57266608 }, 57267656: { uid: 175943, pid: 0, read: 0, points: 2, kids: [ ], opid: 0 }, 57266722: { uid: 666, pid: 57266678, subject: "Re:pig", read: 0, points: 0, kids: [ 57267172 ], opid: 57266678 }, 57266704: { uid: 666, pid: 0, read: 0, points: 0, kids: [ 57266710, 57266994, 57267658 ], opid: 0 }, 57267658: { uid: 666, pid: 57266704, read: 0, points: 0, kids: [ ], opid: 57266704 }, 57266932: { uid: 666, pid: 57266858, subject: "Re:Bigger Question", read: 0, points: 0, kids: [ ], opid: 57266858 }, 57267172: { uid: 666, pid: 57266722, subject: "Re:pig", read: 0, points: 0, kids: [ ], opid: 57266722 }, 57266598: { uid: 666, pid: 0, read: 0, points: -1, kids: [ 57266644 ], opid: 0 }, 57266852: { uid: 666, pid: 0, read: 0, points: -1, kids: [ ], opid: 0 }, 57266720: { uid: 666, pid: 57266678, subject: "Re:pig", read: 0, points: 0, kids: [ ], opid: 57266678 }, 57266710: { uid: 666, pid: 57266704, read: 0, points: 0, kids: [ ], opid: 57266704 }, 57267664: { uid: 666, pid: 57266678, subject: "Re:pig", read: 0, points: 0, kids: [ ], opid: 57266678 }, 57266676: { uid: 666, pid: 57266608, subject: "Re:What we are not told ...", read: 0, points: 0, kids: [ ], opid: 57266608 } });
1624
1625 D2.thresh_totals({6:{6:{1:18,3:0,2:0}},3:{6:{1:18,3:0,2:0},4:{1:18,3:0,2:0},3:{1:18,3:0,2:0},5:{1:18,3:0,2:0}},2:{6:{1:15,3:0,2:3},4:{1:15,3:0,2:3},3:{1:15,3:2,2:1},2:{1:15,3:3,2:0},5:{1:15,3:0,2:3}},1:{6:{1:13,3:0,2:5},4:{1:13,3:0,2:5},1:{1:13,3:5,2:0},3:{1:13,3:2,2:3},2:{1:13,3:5,2:0},5:{1:13,3:0,2:5}},4:{6:{1:18,3:0,2:0},4:{1:18,3:0,2:0},5:{1:18,3:0,2:0}},0:{6:{1:2,3:0,2:16},4:{1:2,3:0,2:16},1:{1:2,3:6,2:10},3:{1:2,3:2,2:14},0:{1:2,3:16,2:0},2:{1:2,3:5,2:11},5:{1:2,3:0,2:16}},"-1":{6:{1:0,3:0,2:18},3:{1:0,3:2,2:16},2:{1:0,3:5,2:13},1:{1:0,3:6,2:12},4:{1:0,3:0,2:18},0:{1:0,3:18,2:0},"-1":{1:0,3:18,2:0},5:{1:0,3:0,2:18}},5:{6:{1:18,3:0,2:0},5:{1:18,3:0,2:0}}});
1626
1627 D2.root_comment(0);
1628 D2.root_comments([57266598,57266608,57266678,57266704,57266724,57266852,57267656]);
1629 D2.root_comments_hash({57266724:1,57267656:1,57266704:1,57266678:1,57266608:1,57266852:1,57266598:1});
1630
1631 D2.d2_comment_order(0);
1632 D2.user_uid(666);
1633 D2.user_is_anon(1);
1634 D2.user_is_admin(0);
1635 D2.user_is_subscriber(0);
1636 D2.user_smallscreen(0);
1637 D2.user_threshold(1);
1638 D2.user_highlightthresh(4);
1639 D2.user_d2asp(0);
1640
1641 D2.discussion_id(12580540);
1642
1643 D2.d2_seen('57266598,10,36,32,2,26,6,10,2,2,128,6,74,62,178,484,2,6');
1644 D2.more_comments_num(0);
1645
1646
1647 //-->
1648 </script>
1649
1650
1651
1652
1653
1654
1655
1656
1657 <ul id="commentlisting" class="d2">
1658 <li id="tree_57266598" class="comment hidden"><span class="ind"></span>
1659 <div id="comment_status_57266598" class="commentstatus"></div>
1660 <div id="comment_57266598" class="cw">
1661 </div>
1662
1663 <div id="replyto_57266598"></div>
1664
1665 <ul id="group_57266598">
1666 <li id="hiddens_57266598" class="hide"></li>
1667 </ul>
1668
1669 <ul id="commtree_57266598"><li id="tree_57266644" class="comment hidden"><span class="ind"></span>
1670 <div id="comment_status_57266644" class="commentstatus"></div>
1671 <div id="comment_57266644" class="cw">
1672 </div>
1673
1674 <div id="replyto_57266644"></div>
1675
1676 <ul id="group_57266644">
1677 <li id="hiddens_57266644" class="hide"></li>
1678 </ul>
1679
1680 </li><li id="hidestring_57266598"><noscript><b class='more'><span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;threshold=-1&amp;commentsort=0&amp;mode=thread&amp;pid=57266598">1 reply</a> beneath your current threshold.</b></noscript></li></ul></li><li id="tree_57266608" class="comment oneline"><span class="ind"></span>
1681 <div id="comment_status_57266608" class="commentstatus"></div>
1682 <div id="comment_57266608" class="cw">
1683 <div id="comment_top_57266608" class="commentTop newcomment">
1684 <div class="title">
1685 <h4><a id="comment_link_57266608" name="comment_link_57266608" href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;cid=57266608" onclick="return D2.setFocusComment(57266608)" >What we are not told ...</a>
1686
1687
1688 <span id="comment_score_57266608" class="score"> (<a href="#" onclick="getModalPrefs('modcommentlog', 'Moderation Comment Log', 57266608); return false"><span class=opt>Score:</span>1</a>)</span></h4>
1689 </div>
1690 <div class="details">
1691 <span class="by"><span class="byby">by </span><a href="//slashdot.org/~Alain+Williams">Alain Williams</a> <span class="uid"><a href="//slashdot.org/~Alain+Williams">( 2972 )</a></span></a></span><span class="writes" style="display:none"> writes:</span>
1692 <span class="otherdetails" id="comment_otherdetails_57266608"></span>
1693 </div>
1694 </div>
1695 <div class="commentBody">
1696 <div id="comment_body_57266608"><p>is he still with his partner who's dress he trod on ?</p></div>
1697 </div>
1698
1699 <div class="commentSub" id="comment_sub_57266608">
1700
1701 </div>
1702 </div>
1703
1704 <div id="replyto_57266608"></div>
1705
1706 <ul id="group_57266608">
1707 <li id="hiddens_57266608" class="hide"></li>
1708 </ul>
1709
1710 <ul id="commtree_57266608"><li id="tree_57266676" class="comment hidden"><span class="ind"></span>
1711 <div id="comment_status_57266676" class="commentstatus"></div>
1712 <div id="comment_57266676" class="cw">
1713 </div>
1714
1715 <div id="replyto_57266676"></div>
1716
1717 <ul id="group_57266676">
1718 <li id="hiddens_57266676" class="hide"></li>
1719 </ul>
1720
1721 </li><li id="tree_57266858" class="comment hidden"><span class="ind"></span>
1722 <div id="comment_status_57266858" class="commentstatus"></div>
1723 <div id="comment_57266858" class="cw">
1724 </div>
1725
1726 <div id="replyto_57266858"></div>
1727
1728 <ul id="group_57266858">
1729 <li id="hiddens_57266858" class="hide"></li>
1730 </ul>
1731
1732 <ul id="commtree_57266858"><li id="tree_57266932" class="comment hidden"><span class="ind"></span>
1733 <div id="comment_status_57266932" class="commentstatus"></div>
1734 <div id="comment_57266932" class="cw">
1735 </div>
1736
1737 <div id="replyto_57266932"></div>
1738
1739 <ul id="group_57266932">
1740 <li id="hiddens_57266932" class="hide"></li>
1741 </ul>
1742
1743 </li><li id="hidestring_57266858"><noscript><b class='more'><span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;threshold=-1&amp;commentsort=0&amp;mode=thread&amp;pid=57266858">1 reply</a> beneath your current threshold.</b></noscript></li></ul></li><li id="hidestring_57266608"><noscript><b class='more'><span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;threshold=-1&amp;commentsort=0&amp;mode=thread&amp;pid=57266608">2 replies</a> beneath your current threshold.</b></noscript></li></ul></li><li id="tree_57266678" class="comment oneline"><span class="ind"></span>
1744 <div id="comment_status_57266678" class="commentstatus"></div>
1745 <div id="comment_57266678" class="cw">
1746 <div id="comment_top_57266678" class="commentTop newcomment">
1747 <div class="title">
1748 <h4><a id="comment_link_57266678" name="comment_link_57266678" href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;cid=57266678" onclick="return D2.setFocusComment(57266678)" >pig</a>
1749
1750
1751 <span id="comment_score_57266678" class="score"> (<a href="#" onclick="getModalPrefs('modcommentlog', 'Moderation Comment Log', 57266678); return false"><span class=opt>Score:</span>1</a>, Informative)</span></h4>
1752 </div>
1753 <div class="details">
1754 <span class="by"><span class="byby">by </span>Anonymous Coward</span><span class="writes" style="display:none"> writes:</span>
1755 <span class="otherdetails" id="comment_otherdetails_57266678"></span>
1756 </div>
1757 </div>
1758 <div class="commentBody">
1759 <div id="comment_body_57266678"><p>Congratulations, you reinvented the pig.</p><p><a href="https://en.wikipedia.org/wiki/Pigging" title="wikipedia.org" rel="nofollow">https://en.wikipedia.org/wiki/...</a> [wikipedia.org]</p></div>
1760 </div>
1761
1762 <div class="commentSub" id="comment_sub_57266678">
1763
1764 </div>
1765 </div>
1766
1767 <div id="replyto_57266678"></div>
1768
1769 <ul id="group_57266678">
1770 <li id="hiddens_57266678" class="hide"></li>
1771 </ul>
1772
1773 <ul id="commtree_57266678"><li id="tree_57266720" class="comment hidden"><span class="ind"></span>
1774 <div id="comment_status_57266720" class="commentstatus"></div>
1775 <div id="comment_57266720" class="cw">
1776 </div>
1777
1778 <div id="replyto_57266720"></div>
1779
1780 <ul id="group_57266720">
1781 <li id="hiddens_57266720" class="hide"></li>
1782 </ul>
1783
1784 </li><li id="tree_57266722" class="comment hidden"><span class="ind"></span>
1785 <div id="comment_status_57266722" class="commentstatus"></div>
1786 <div id="comment_57266722" class="cw">
1787 </div>
1788
1789 <div id="replyto_57266722"></div>
1790
1791 <ul id="group_57266722">
1792 <li id="hiddens_57266722" class="hide"></li>
1793 </ul>
1794
1795 <ul id="commtree_57266722"><li id="tree_57267172" class="comment hidden"><span class="ind"></span>
1796 <div id="comment_status_57267172" class="commentstatus"></div>
1797 <div id="comment_57267172" class="cw">
1798 </div>
1799
1800 <div id="replyto_57267172"></div>
1801
1802 <ul id="group_57267172">
1803 <li id="hiddens_57267172" class="hide"></li>
1804 </ul>
1805
1806 </li><li id="hidestring_57266722"><noscript><b class='more'><span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;threshold=-1&amp;commentsort=0&amp;mode=thread&amp;pid=57266722">1 reply</a> beneath your current threshold.</b></noscript></li></ul></li><li id="tree_57267664" class="comment hidden"><span class="ind"></span>
1807 <div id="comment_status_57267664" class="commentstatus"></div>
1808 <div id="comment_57267664" class="cw">
1809 </div>
1810
1811 <div id="replyto_57267664"></div>
1812
1813 <ul id="group_57267664">
1814 <li id="hiddens_57267664" class="hide"></li>
1815 </ul>
1816
1817 </li><li id="hidestring_57266678"><noscript><b class='more'><span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;threshold=-1&amp;commentsort=0&amp;mode=thread&amp;pid=57266678">3 replies</a> beneath your current threshold.</b></noscript></li></ul></li><li id="tree_57266704" class="comment hidden"><span class="ind"></span>
1818 <div id="comment_status_57266704" class="commentstatus"></div>
1819 <div id="comment_57266704" class="cw">
1820 </div>
1821
1822 <div id="replyto_57266704"></div>
1823
1824 <ul id="group_57266704">
1825 <li id="hiddens_57266704" class="hide"></li>
1826 </ul>
1827
1828 <ul id="commtree_57266704"><li id="tree_57266710" class="comment hidden"><span class="ind"></span>
1829 <div id="comment_status_57266710" class="commentstatus"></div>
1830 <div id="comment_57266710" class="cw">
1831 </div>
1832
1833 <div id="replyto_57266710"></div>
1834
1835 <ul id="group_57266710">
1836 <li id="hiddens_57266710" class="hide"></li>
1837 </ul>
1838
1839 </li><li id="tree_57266994" class="comment oneline"><span class="ind"></span>
1840 <div id="comment_status_57266994" class="commentstatus"></div>
1841 <div id="comment_57266994" class="cw">
1842 <div id="comment_top_57266994" class="commentTop newcomment">
1843 <div class="title">
1844 <h4><a id="comment_link_57266994" name="comment_link_57266994" href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;cid=57266994" onclick="return D2.setFocusComment(57266994)" >Re:</a>
1845
1846
1847 <span id="comment_score_57266994" class="score"> (<a href="#" onclick="getModalPrefs('modcommentlog', 'Moderation Comment Log', 57266994); return false"><span class=opt>Score:</span>2</a>)</span></h4>
1848 </div>
1849 <div class="details">
1850 <span class="by"><span class="byby">by </span><a href="//slashdot.org/~An+Ominous+Coward">An Ominous Coward</a> <span class="uid"><a href="//slashdot.org/~An+Ominous+Coward">( 13324 )</a></span></a></span><span class="writes" style="display:none"> writes:</span>
1851 <span class="otherdetails" id="comment_otherdetails_57266994"></span>
1852 </div>
1853 </div>
1854 <div class="commentBody">
1855 <div id="comment_body_57266994"><p>Ridiculous, how dare you plebeians libel our foremost technology elite. It's MIT, of course what they're doing is utterly novel and deserving of fawning media coverage.</p><p>(<a href="https://puretechltd.com/technology/purerobotics-pipeline-inspection-system/" title="puretechltd.com">https://puretechltd.com/technology/purerobotics-pipeline-inspection-system/</a> [puretechltd.com])</p></div>
1856 </div>
1857
1858 <div class="commentSub" id="comment_sub_57266994">
1859
1860 </div>
1861 </div>
1862
1863 <div id="replyto_57266994"></div>
1864
1865 <ul id="group_57266994">
1866 <li id="hiddens_57266994" class="hide"></li>
1867 </ul>
1868
1869 </li><li id="tree_57267658" class="comment hidden"><span class="ind"></span>
1870 <div id="comment_status_57267658" class="commentstatus"></div>
1871 <div id="comment_57267658" class="cw">
1872 </div>
1873
1874 <div id="replyto_57267658"></div>
1875
1876 <ul id="group_57267658">
1877 <li id="hiddens_57267658" class="hide"></li>
1878 </ul>
1879
1880 </li><li id="hidestring_57266704"><noscript><b class='more'><span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;threshold=-1&amp;commentsort=0&amp;mode=thread&amp;pid=57266704">2 replies</a> beneath your current threshold.</b></noscript></li></ul></li><li id="tree_57266724" class="comment oneline"><span class="ind"></span>
1881 <div id="comment_status_57266724" class="commentstatus"></div>
1882 <div id="comment_57266724" class="cw">
1883 <div id="comment_top_57266724" class="commentTop newcomment">
1884 <div class="title">
1885 <h4><a id="comment_link_57266724" name="comment_link_57266724" href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;cid=57266724" onclick="return D2.setFocusComment(57266724)" >They tried that robot in Montreal...</a>
1886
1887
1888 <span id="comment_score_57266724" class="score"> (<a href="#" onclick="getModalPrefs('modcommentlog', 'Moderation Comment Log', 57266724); return false"><span class=opt>Score:</span>2</a>)</span></h4>
1889 </div>
1890 <div class="details">
1891 <span class="by"><span class="byby">by </span><a href="//slashdot.org/~ls671">ls671</a> <span class="uid"><a href="//slashdot.org/~ls671">( 1122017 )</a></span></a></span><span class="writes" style="display:none"> writes:</span>
1892 <span class="otherdetails" id="comment_otherdetails_57266724"></span>
1893 </div>
1894 </div>
1895 <div class="commentBody">
1896 <div id="comment_body_57266724"><p>I hear they tried that robot in Montreal and it crashed due to memory exhaustion.</p><p>Montreal is one of the oldest city in North America and there are so many leaks in its water system that it loses 30% of its fresh water supply.</p><p>Makes you wonder what is the average water loss in other systems.</p><p><span class="substr"> </span> <a href="https://montrealgazette.com/news/local-news/by-the-numbers-30-percent-of-montreals-water-is-lost-due-to-leaky-city-pipes" title="montrealgazette.com">https://montrealgazette.com/ne...</a> [montrealgazette.com] </p><p> <a href="https://www.cbc.ca/news/canada/city-water-leaks-wasting-millions-of-tax-dollars-1.1048035" title="www.cbc.ca">https://www.cbc.ca/news/canada...</a> [www.cbc.ca]</p></div>
1897 </div>
1898
1899 <div class="commentSub" id="comment_sub_57266724">
1900
1901 </div>
1902 </div>
1903
1904 <div id="replyto_57266724"></div>
1905
1906 <ul id="group_57266724">
1907 <li id="hiddens_57266724" class="hide"></li>
1908 </ul>
1909
1910 </li><li id="tree_57266852" class="comment hidden"><span class="ind"></span>
1911 <div id="comment_status_57266852" class="commentstatus"></div>
1912 <div id="comment_57266852" class="cw">
1913 </div>
1914
1915 <div id="replyto_57266852"></div>
1916
1917 <ul id="group_57266852">
1918 <li id="hiddens_57266852" class="hide"></li>
1919 </ul>
1920
1921 </li><li id="tree_57267656" class="comment oneline"><span class="ind"></span>
1922 <div id="comment_status_57267656" class="commentstatus"></div>
1923 <div id="comment_57267656" class="cw">
1924 <div id="comment_top_57267656" class="commentTop newcomment">
1925 <div class="title">
1926 <h4><a id="comment_link_57267656" name="comment_link_57267656" href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;cid=57267656" onclick="return D2.setFocusComment(57267656)" >Badminton Birdie?</a>
1927
1928
1929 <span id="comment_score_57267656" class="score"> (<a href="#" onclick="getModalPrefs('modcommentlog', 'Moderation Comment Log', 57267656); return false"><span class=opt>Score:</span>2</a>)</span></h4>
1930 </div>
1931 <div class="details">
1932 <span class="by"><span class="byby">by </span><a href="//slashdot.org/~TechyImmigrant">TechyImmigrant</a> <span class="uid"><a href="//slashdot.org/~TechyImmigrant">( 175943 )</a></span></a></span><span class="writes" style="display:none"> writes:</span>
1933 <span class="otherdetails" id="comment_otherdetails_57267656"></span>
1934 </div>
1935 </div>
1936 <div class="commentBody">
1937 <div id="comment_body_57267656"><p>It's called a shuttlecock you blithering idiot.</p></div>
1938 </div>
1939
1940 <div class="commentSub" id="comment_sub_57267656">
1941
1942 </div>
1943 </div>
1944
1945 <div id="replyto_57267656"></div>
1946
1947 <ul id="group_57267656">
1948 <li id="hiddens_57267656" class="hide"></li>
1949 </ul>
1950
1951 </li><li id="hidestring_0"><noscript><b class='more'><span class="ind"></span><a href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;threshold=-1&amp;commentsort=0&amp;mode=thread&amp;pid=0">3 replies</a> beneath your current threshold.</b></noscript></li>
1952 <li id="roothiddens" class="hide"></li>
1953 </ul>
1954
1955
1956
1957
1958
1959 <noscript><p><b>There may be more comments in this discussion. Without JavaScript enabled, you might want to <a href="//hardware.slashdot.org/users.pl?op=editcomm">turn on Classic Discussion System</a> in your preferences instead.</b></p></noscript>
1960 <div id="discussion_buttons" class="clearfix">
1961
1962
1963
1964
1965
1966
1967 </div>
1968
1969
1970 <div class="newcmnt"><div id="replyto_0"></div></div>
1971
1972
1973 <script type="text/javascript">
1974 <!--
1975 D2.currents()['hidden'] = 13;
1976 D2.currents()['full'] = 0;
1977 D2.currents()['oneline'] = 5;
1978 // D2.currents_total(18);
1979
1980 D2.abbrev_comments({57266724:314});
1981 D2.noshow_comments([57266598,57266644,57266676,57266858,57266932,57266720,57266722,57267172,57267664,57266704,57266710,57267658,57266852]);
1982 D2.pieces_comments([57266608,57266678,57266994,57266724,57267656]);
1983 D2.init_hiddens([57266598,57266858,57266608,57266722,57266678,57266704,0]);
1984
1985 D2.finishLoading();
1986
1987
1988 if (D2.thresh_totals()[6][6][1] == 0) {
1989 D2.replyTo(0, 1);
1990 }
1991
1992
1993 //-->
1994 </script>
1995
1996
1997 </div>
1998
1999
2000
2001
2002
2003 <div id="clickgen" class="grid_24 b">
2004 <section class="grid_16 f">
2005 <div>
2006 <h4 class="nobg">
2007 <a href="" class="selected btmrel" onClick="getRelatedStoriesForStory(345548);return false">Related Links</a>
2008 <span class="tops fright">Top of the: <a href="" class="btmday" onClick="getTopStories(1);return false">day</a>, <a class="btmweek" href="" onClick="getTopStories(7); return false">week</a>, <a href="" onClick="getTopStories(30);return false" class="btmmonth">month</a>.</span>
2009 </h4>
2010 <ul class="nobullets bmrelatedlist">
2011
2012
2013
2014 <li>
2015 <span class="cmntcnt"><span class="slant"></span><span>1014<span class="hide"> comments</span></span></span><a href="//hardware.slashdot.org/story/18/01/10/002255/jack-in-the-box-ceo-says-it-just-makes-sense-to-replace-workers-with-robots?sdsrc=popbyskidbtmprev">Jack In the Box CEO Says 'It Just Makes Sense' To Replace Workers With Robots</a>
2016 </li>
2017
2018
2019 <li>
2020 <span class="cmntcnt"><span class="slant"></span><span>899<span class="hide"> comments</span></span></span><a href="//hardware.slashdot.org/story/18/07/29/0021238/slashdot-asks-which-is-better-a-basic-income-or-a-guaranteed-job?sdsrc=popbyskidbtmprev">Slashdot Asks: Which is Better, a Basic Income or a Guaranteed Job?</a>
2021 </li>
2022
2023
2024 <li>
2025 <span class="cmntcnt"><span class="slant"></span><span>574<span class="hide"> comments</span></span></span><a href="//hardware.slashdot.org/story/18/07/13/2349236/retiring-worn-out-wind-turbines-could-cost-billions-that-nobody-has?sdsrc=popbyskidbtmprev">Retiring Worn-Out Wind Turbines Could Cost Billions That Nobody Has</a>
2026 </li>
2027
2028
2029 <li>
2030 <span class="cmntcnt"><span class="slant"></span><span>570<span class="hide"> comments</span></span></span><a href="//hardware.slashdot.org/story/17/09/12/1839207/apple-announces-iphone-x-with-edge-to-edge-display-wireless-charging-and-no-home-button?sdsrc=popbyskidbtmprev">Apple Announces iPhone X With Edge-To-Edge Display, Wireless Charging and No Home Button</a>
2031 </li>
2032
2033
2034 <li>
2035 <span class="cmntcnt"><span class="slant"></span><span>521<span class="hide"> comments</span></span></span><a href="//hardware.slashdot.org/story/18/07/22/144232/slashdot-asks-do-you-need-to-properly-eject-a-usb-drive-before-yanking-it-out?sdsrc=popbyskidbtmprev">Slashdot Asks: Do You Need To Properly Eject a USB Drive Before Yanking it Out?</a>
2036 </li>
2037
2038
2039 </ul>
2040 </div>
2041 </section>
2042 <aside class="grid_8 st">
2043 <section class="grid_24 f">
2044 <div>
2045 <h5 class="tlnav"><a href="//news.slashdot.org/story/18/09/06/2043213/professor-who-coined-term-net-neutrality-thinks-its-time-to-break-up-facebook?sdsrc=nextbtmnext">next</a></h5>
2046 <div class="grid_24">
2047
2048
2049 <span class="grid_7 tcenter"><img src="//a.fsdn.com/sd/topics/facebook_64.png" width="64" height="64" alt="Facebook"></span>
2050
2051 <p class="grid_12"><a href="//news.slashdot.org/story/18/09/06/2043213/professor-who-coined-term-net-neutrality-thinks-its-time-to-break-up-facebook?sdsrc=nextbtmprev">Professor Who Coined Term 'Net Neutrality' Thinks It's Time To Break Up Facebook</a></p>
2052 <span class="grid_5 tcenter comments"><span class="cmntcnt_large fleft"><span class="slant"></span><span>61<span class="hide"> comments</span></span></span></span>
2053
2054 </div>
2055 </div>
2056 </section>
2057 <section class="grid_24">
2058 <div>
2059 <h5 class="tlnav"><a href="//politics.slashdot.org/story/18/09/06/2137245/blockchains-are-not-safe-for-voting-concludes-nap-report?sdsrc=prevbtmprev">previous</a></h5>
2060 <div class="grid_24">
2061
2062 <span class="grid_7 tcenter"><img src="//a.fsdn.com/sd/topics/government_64.png" width="64" height="64" alt="Government"></span>
2063
2064 <p class="grid_12"><a href="//politics.slashdot.org/story/18/09/06/2137245/blockchains-are-not-safe-for-voting-concludes-nap-report?sdsrc=prevbtmprev">Blockchains Are Not Safe For Voting, Concludes NAP Report</a></p>
2065
2066 <span class="grid_5 tcenter comments"><span class="cmntcnt_large fleft"><span class="slant"></span><span>52<span class="hide"> comments</span></span></span></span>
2067 </div>
2068 </div>
2069 </section>
2070 </aside>
2071 </div>
2072 <div id="taboola-below-article-text-links"></div>
2073 <script type="text/javascript">
2074 window._taboola = window._taboola || [];
2075 _taboola.push({
2076 mode: 'text-links-a',
2077 container: 'taboola-below-article-text-links',
2078 placement: 'Below Article Text Links',
2079 target_type: 'mix'
2080 });
2081 </script>
2082
2083
2084 </section>
2085 </div>
2086 </div>
2087 <div class="row top-space">
2088
2089
2090 <div class="grid_24">
2091 <!-- 728px ad -->
2092
2093 <div class="adwrap">
2094 <div id='div-gpt-ad-728x90_c'><script type='text/javascript'>
2095 googletag.cmd.push(function(){
2096 googletag.display('div-gpt-ad-728x90_c');});</script></div>
2097 </div>
2098 <!-- end 728px ad -->
2099 <!-- Slashdot Deals 6 Best Sellers -->
2100 <div class="row deals-footer">
2101 <div class="units-8 indent-2 deals-wrapper">
2102 <div class="deals-header"><h1>Slashdot Top Deals</h1></div>
2103 <div id="deals-output">
2104 <script id="deals-template" type="text/x-handlebars-template">
2105 {{#each deal}}
2106 <div class="deal">
2107 <a href="{{urlPath permalink}}?&utm_source=slashdot.org&utm_medium=dealfeed-footerfeed&utm_campaign={{slug}}" target="_blank">
2108 <img src="{{main_image}}" alt="" />
2109 </a>
2110 <p class="title"><a href="{{urlPath permalink}}?&utm_source=slashdot.org&utm_medium=dealfeed-footerfeed&utm_campaign={{slug}}" target="_blank">{{title}}</a></p>
2111 <p class="deal-price">{{centConversion price_in_cents}}</p>
2112 </div>
2113 {{/each}}
2114 </script>
2115 </div>
2116 </div>
2117 </div>
2118 <script>
2119 if ( isAdBlockActive ) {
2120 $.getScript( "//a.fsdn.com/sd/js/scripts/min/deals-min.js", function(){
2121 runDealsWidget();
2122 });
2123 }
2124 </script>
2125
2126 <!-- End Slashdot Deals 6 Best Sellers -->
2127 </div>
2128 </div>
2129 </div>
2130 </div>
2131 <!-- SMACKS: END COMMENTS SECTION -->
2132 </div>
2133 <!-- SMACKS: END COMMENTS CONTAINER -->
2134
2135
2136
2137
2138 <script type="text/javascript">
2139
2140 $(function(){
2141 $('#firehose-filter').
2142 focus(function(event){
2143 gFocusedText = this;
2144 }).
2145 blur(function(event){
2146 if ( gFocusedText === this ) {
2147 gFocusedText = null;
2148 }
2149 });
2150
2151
2152 apply_updates_when( 'at-end', true);
2153 });
2154 </script>
2155
2156
2157 <!-- body end --><!-- footer type=current begin -->
2158
2159 </section>
2160
2161
2162
2163
2164 <footer id="fhft" class="grid_24 nf aoc">
2165 <div id="logo_nf" class="fleft">
2166 <a href="//slashdot.org"><span>Slashdot</span></a>
2167 </div>
2168 <nav role="firehose footer">
2169
2170
2171
2172
2173
2174
2175
2176 <span class="ind"></span><a class="btn first" href="//hardware.slashdot.org/comments.pl?sid=12580540&amp;op=reply&amp;threshold=1&amp;commentsort=0&amp;mode=thread&amp;pid=" onclick="D2.replyTo(0); return false;">Post</a>
2177
2178 <a class="btn hide" id="footer_moderate_button">Moderate</a>
2179 <a class="btn hide" id="footer_moderatorhelp_button">Moderator Help</a>
2180 <a class="btn hide" id="footer_delete_button" title="Checked comments will be deleted.">Delete</a>
2181 <script>
2182 (function($){
2183 var old_moderate_btn = $("#discussion_moderate_button");
2184 if (old_moderate_btn.length) {
2185 var moderate_btn = $("#footer_moderate_button");
2186 moderate_btn.click(
2187 function(){old_moderate_btn.click()}
2188 );
2189 moderate_btn.removeClass('hide');
2190 }
2191
2192 var old_moderatorhelp_btn = $("#discussion_moderatorhelp_button");
2193 if (old_moderatorhelp_btn.length) {
2194 var moderatorhelp_btn = $("#footer_moderatorhelp_button");
2195 moderatorhelp_btn.click(
2196 function(){old_moderatorhelp_btn.click()}
2197 );
2198 moderatorhelp_btn.attr(
2199 'href', old_moderatorhelp_btn.attr('href')
2200 );
2201 moderatorhelp_btn.removeClass('hide');
2202 }
2203
2204 var old_delete_btn = $("#discussion_delete_button");
2205 if (old_delete_btn.length) {
2206 var delete_btn = $("#footer_delete_button");
2207 delete_btn.click(
2208 function(){old_delete_btn.click()}
2209 );
2210 delete_btn.removeClass('hide');
2211 }
2212
2213 $('#discussion_buttons').addClass('hide');
2214 })(Slash.jQuery); // (function($){
2215 </script>
2216 <ul class="fleft">
2217
2218 <li class="fleft selected">
2219 <span class="nbutton btn hide link reset" id="more_comments_button">
2220 <a href="#" onclick="D2.ajaxFetchComments(0,1); return false">
2221 <span id="more_comments_num_a" class="hide">Get more comments</span>
2222 </a>
2223 </span>
2224 </li>
2225
2226
2227 <li class="fleft">
2228 <span class="loadedcommentcnt">15</span> of <span class="totalcommentcnt">15</span> loaded
2229 </li>
2230
2231 </ul>
2232
2233 <script type="text/javascript">D2.finishLoading()</script>
2234
2235
2236
2237
2238 <ul class="fright submitstory">
2239 <li class="fright">
2240 <a href="/submit">Submit<span class="opt"> Story</span></a>
2241 </li>
2242 </ul>
2243 </nav>
2244
2245
2246
2247 </footer>
2248 <section class="bq">
2249 <blockquote class="msg grid_24" cite="https://slashdot.org">
2250 <p>The hardest part of climbing the ladder of success is getting through
2251 the crowd at the bottom.</p>
2252 <span class="slant"></span>
2253 </blockquote>
2254 </section>
2255 <footer id="ft" class="grid_24">
2256 <nav class="grid_10" role="footer">
2257 <ul>
2258 <li><a href="//slashdot.org/faq">FAQ</a></li>
2259 <li><a href="//slashdot.org/archive.pl">Story Archive</a></li>
2260 <li><a href="//slashdot.org/hof.shtml">Hall of Fame</a></li>
2261 <li><a href="http://slashdotmedia.com/advertising-and-marketing-services/">Advertising</a></li>
2262 <li><a href="http://slashdotmedia.com/terms-of-use/">Terms</a></li>
2263 <li><a href="http://slashdotmedia.com/privacy-statement/">Privacy Statement</a></li>
2264 <li id='eu_privacy' style='display:none'><a href="#" title="Privacy Choices" onclick="bizx.cmp.promptConsent();return false;">Privacy Choices</a></li>
2265 <li><a href="http://slashdotmedia.com/opt-out-choices/">Opt-out Choices</a></li>
2266 <li><a href="//slashdot.org/faq/slashmeta.shtml">About</a></li>
2267 <li><a href="mailto:feedback@slashdot.org">Feedback</a></li>
2268 <li><a href="#" onclick="set_mobile_pref('mobile',1);return false;">Mobile View</a></li>
2269 <li><a href="//slashdot.org/blog">Blog</a></li>
2270 </ul>
2271 </nav>
2272 <script>
2273 if (window.is_euro_union) {
2274 document.getElementById('eu_privacy').style.display = 'inline';
2275 }
2276 </script>
2277 <br>
2278
2279 <div class="grid_14 tright tm">Trademarks property of their respective owners. Comments owned by the poster. <span class="nobr">Copyright &copy; 2018 SlashdotMedia. All Rights Reserved.</span></div>
2280 </footer>
2281
2282
2283 <div class="overlay"></div>
2284 <div class="modal-box">
2285 <a href="#" id="close-modal">Close</a>
2286 <article class="modal-content">
2287 </article>
2288 <footer>
2289 </div>
2290
2291
2292
2293
2294 <div id="modal_cover" class="hide" onclick="hide_modal_box(); return false;"></div>
2295 <div id="modal_box" class="hide">
2296 <div id="modal_box_content"></div>
2297 <header class="n">
2298 <span class="fadeout"></span>
2299 <span class="fadeoutfade"></span>
2300 <span class="pf"><a class="ico close" onclick="hide_modal_box(); return false;" href="#"><span>Close</span></a></span>
2301 <h3 class="pf"><div id="logo"><a href="//slashdot.org">Slashdot</a></div><span id="preference_title"></span></h3>
2302 </header>
2303 </div>
2304
2305 <!-- CCM Tag -->
2306 <script type="text/javascript">
2307 if (!window.is_euro_union) {
2308 (function () {
2309 /*global _ml:true, window */
2310 _ml = window._ml || {};
2311 _ml.eid = '771';
2312
2313 var s = document.getElementsByTagName('script')[0], cd = new Date(), mltag = document.createElement('script');
2314 mltag.type = 'text/javascript'; mltag.async = true;
2315 mltag.src = '//ml314.com/tag.aspx?' + cd.getDate() + cd.getMonth() + cd.getFullYear();
2316 s.parentNode.insertBefore(mltag, s);
2317 })();
2318 }
2319 </script>
2320 <!-- End CCM Tag -->
2321
2322 <script type="text/javascript">
2323 window.google_analytics_uacct = "UA-32013-5";
2324
2325 var _gaq = _gaq || [];
2326
2327
2328
2329
2330
2331 _gaq.push(['_setAccount', 'UA-36136016-1']);
2332 _gaq.push(['b._setAccount', 'UA-32013-5']);
2333 _gaq.push(['_setDomainName', '.slashdot.org']);
2334 _gaq.push(['b._setDomainName', '.slashdot.org']);
2335
2336
2337 _gaq.push(['_addIgnoredRef', 'slashdot.org']);
2338 _gaq.push(['b._addIgnoredRef', 'slashdot.org']);
2339
2340
2341
2342 _gaq.push(['_setCustomVar', 1, 'User Type', 'Anon', 3]);
2343 _gaq.push(['b._setCustomVar', 1, 'User Type', 'Anon', 3]);
2344
2345 _gaq.push(['_setCustomVar', 2, 'Page','article2', 3]);
2346 _gaq.push(['b._setCustomVar', 2, 'Page','article2', 3]);
2347
2348
2349
2350
2351
2352 // track beta behavior for user
2353 var betamatches = document.cookie.match(/betagroup=(-?\d+)/);
2354
2355 if(betamatches && betamatches[1]) {
2356 if(betamatches[1] == -1) {
2357 _gaq.push(['_setCustomVar', 3, 'Beta-Usage','opt-out', 3]);
2358 } else {
2359 _gaq.push(['_setCustomVar', 3, 'Beta-Usage','unredirected', 3]);
2360 }
2361 }
2362
2363
2364
2365 _gaq.push(['_trackPageview']);
2366 _gaq.push(['b._trackPageview']);
2367 _gaq.push(['_trackPageLoadTime']);
2368 _gaq.push(['b._trackPageLoadTime']);
2369
2370
2371 if (!window.is_euro_union) {
2372 (function() {
2373 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
2374 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
2375 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
2376 })();
2377 }
2378 </script>
2379
2380 <!-- CCM GA Push -->
2381 <script>
2382 if (typeof _ml !== 'undefined' && _ml.us) {
2383 if (_ml.us.tp && _ml.us.tp.length > 0) {
2384 ga('set', 'dimension2', _ml.us.tp[0]);
2385 }
2386 if (_ml.us.pc && _ml.us.pc.length > 0) {
2387 ga('set', 'dimension7', _ml.us.pc[0]);
2388 }
2389 ga('set', 'dimension3', _ml.us.ind);
2390 ga('set', 'dimension4', _ml.us.cr);
2391 ga('set', 'dimension5', _ml.us.cs);
2392 ga('set', 'dimension6', _ml.us.dm);
2393 ga('set', 'dimension8', _ml.us.sn);
2394 }
2395 </script>
2396
2397 <!-- Sticky Ads -->
2398 <script type="text/javascript">
2399 var topBannerViewed = false;
2400 if($('#div-gpt-ad-728x90_a').length > 0 && window.outerWidth >= 1070 && !isAdBlockActive){
2401 $(window).scroll(function(){
2402 var y = $(document).scrollTop();
2403 var z = y + window.outerHeight;
2404 var navOffset = 0;
2405 var offset = [
2406 $('.nav-wrap').outerHeight(true),
2407 $('.nav-secondary-wrap').outerHeight(true)
2408 ];
2409 for(row in offset){
2410 if(offset[row]) navOffset = navOffset + parseInt(offset[row]);
2411 }
2412 $('.adwrap-unviewed').each(function(){
2413 var cls = 'adwrap-sticky';
2414 var toggleCls = 'adwrap';
2415 //$('.banner-wrapper').css('height', $('.banner-contain').outerHeight());
2416 if($(this).hasClass('railad')) {
2417 if(topBannerViewed){
2418 var topPixels = $(this).offset().top;
2419 navOffset += $('.adwrap').outerHeight();
2420 if(y >= topPixels && y >= navOffset){
2421 $('#slashboxes').css('top', 0).css('position','fixed').css('right',13);
2422 } else {
2423 $('#slashboxes').removeAttr('style');
2424 }
2425 }
2426 return;
2427 }
2428 var topPixels = $(this).offset().top;
2429 if(y >= topPixels && y >= navOffset){
2430 $(this).addClass(cls);
2431 $(this).removeClass('adwrap');
2432 if(cls == 'adwrap-sticky') { //top banner
2433 topBannerViewed = false;
2434 $('#slashboxes').css('top',$(this).outerHeight() || 0).css('position','fixed').css('right',13);
2435 }
2436 if(topBannerViewed) {
2437 console.log('hereeee');
2438 $('#slashboxes').css('top', 0).css('position','fixed').css('right',13);
2439 }
2440 }else{
2441 $(this).removeClass(cls);
2442 $(this).addClass(toggleCls);
2443 $('#slashboxes').removeAttr('style');
2444 }
2445 });
2446 if($('.adwrap-viewed-banner').length > 0){
2447 topBannerViewed = true;
2448 $('.adwrap-viewed-banner').removeClass('adwrap-unviewed').removeClass('adwrap-sticky').addClass('adwrap');
2449 }
2450 if($('.adwrap-viewed-railad').length > 0){
2451 $('.adwrap-viewed-railad').removeClass('adwrap-unviewed').removeClass('adwrap-railad-sticky');
2452 $('#slashboxes').removeAttr('style');
2453 }
2454 });
2455 }
2456 </script>
2457
2458 <!-- Piwik -->
2459 <script type="text/javascript">
2460 var _paq = _paq || [];
2461 _paq.push(["setCookieDomain", "*.slashdot.org"]);
2462 _paq.push(['trackPageView']);
2463 _paq.push(['enableLinkTracking']);
2464 function initPiwikAndNels() {
2465 (function() {
2466 var u="//analytics.slashdotmedia.com/";
2467 _paq.push(['setTrackerUrl', u+'sd.php']);
2468 _paq.push(['setSiteId', 40]);
2469 var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
2470 g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'sd.js'; s.parentNode.insertBefore(g,s);
2471 })();
2472
2473 if(window.location.pathname == '/'){
2474 var nelId = (location.search.split('nel_id=')[1] || '').split('&')[0];
2475 var url = '/ajax.pl?op=nel';
2476 if(nelId){
2477 url += '&nel_id='+nelId;
2478 }
2479 $.ajax({
2480 url: url,
2481 success: function(html){
2482 $('#firehoselist article').eq(1).after(html);
2483 }
2484 });
2485 }
2486 //announcement NEL
2487 if(document.getElementById('announcementText')){
2488 $('#announcementText').hide();
2489 var hlUrl = '/ajax.pl?op=hl_nel';
2490 if(nelId){
2491 hlUrl += '&nel_id='+nelId;
2492 }
2493 $.ajax({
2494 url: hlUrl,
2495 success: function(html){
2496 if(html.length < 10){
2497 $('#announcementText').show();
2498 return;
2499 }
2500 $('#announcementText').html(html).show();
2501 },
2502 error: function () {
2503 $('#announcementText').show();
2504 }
2505 });
2506 }
2507 }
2508 bizx.cmp.ifConsent('publisher', ['storage', 'measurement'], initPiwikAndNels);
2509 </script>
2510
2511
2512 <script type="text/javascript">
2513 _linkedin_data_partner_id = "113712";
2514 </script><script type="text/javascript">
2515 if (!window.is_euro_union) {
2516 (function(){var s = document.getElementsByTagName("script")[0];
2517 var b = document.createElement("script");
2518 b.type = "text/javascript";b.async = true;
2519 b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
2520 s.parentNode.insertBefore(b, s);})();
2521 }
2522 </script>
2523 <noscript>
2524 <img height="1" width="1" style="display:none;" alt="" src="https://dc.ads.linkedin.com/collect/?pid=113712&fmt=gif" />
2525 </noscript>
2526
2527 <!-- Datonics -->
2528 <script async type="text/javascript" src="//ads.pro-market.net/ads/scripts/site-143573.js"></script>
2529 <script id="after-content" type="text/javascript">
2530 (function( $, fn, console ){
2531 $ && fn && $(function(){ fn($, console); });
2532 })(window.jQuery, window.pageload_done, window.console);
2533 </script>
2534
2535 <script type='text/javascript'>
2536 if(!document.location.href.match(/source=autorefresh/)) {
2537 document.write('<img src="//slashdot.org/images/js.gif?799">');
2538 }
2539 </script>
2540 <noscript>
2541 <img src="//slashdot.org/images/njs.gif?677">
2542 </noscript>
2543 <div class="busy genericspinner hide"><span>Working...</span></div>
2544 <script>
2545 if(typeof(Storage)!=="undefined"){
2546 window.scrollTo(0,sessionStorage.scrollPos);
2547 $(window).scroll(function () {
2548 //You've scrolled this much:
2549 sessionStorage.scrollPos = $(window).scrollTop();
2550 });
2551 }
2552 $(function(){
2553 $('a').click(function(){
2554 delete sessionStorage.scrollPos;
2555 })
2556 });
2557 // window.onbeforeunload = function () {
2558 // console.log('bakc button clicked');
2559 // delete sessionStorage.scrollPos;
2560 // }
2561 window.onpopstate=function() {
2562 delete sessionStorage.scrollPos;
2563 }
2564 </script>
2565
2566
2567
2568 <!-- 1x1 story page -->
2569 <div id='div-gpt-ad-1x1'><script type='text/javascript'>
2570 googletag.cmd.push(function(){
2571 googletag.display('div-gpt-ad-1x1');});</script></div>
2572
2573
2574 <script type="text/javascript">
2575 if (!window.is_euro_union) {
2576 window._taboola = window._taboola || [];
2577 _taboola.push({flush: true});
2578 }
2579 </script>
2580
2581 </body>
2582 </html>
2583
2584
2585 <!-- footer type=current end -->