Apple's Jony Ive Pushing iOS Interface Team For 'Flat' Design - <AUTHOR> http://techcrunch.com/2013/03/21/apple-jony-ive-ios-design-interface/ <comment><USER2> The relevant paragraph from the original WSJ article:

"Some suggested that in Apple's next mobile operating system, Ive is pushing a more "flat design" that is starker and simpler, according to developers who have spoken to Apple employees but didn't have further details. Overall, they expect any changes to be pretty conservative."

I wouldn't exactly say that switching to a completely flat design as implied in the headline is a 'conservative' change.

It's quite obvious that they are unlikely to go down the overly skeuomorphic route as seen in the Podcast app, so this is a fairly 'safe' rumor to spread. But of course, it incites the usual skeuomorphic vs flat arguments with the added bonus of accusations of 'copying' the Metro style.

There are many misconceptions in regards to categorizing flat vs skeuomorphic design, here is a good article that explains the differences pretty well.

<http://sachagreif.com/flat-pixels/>

<comment><USER3> >they are unlikely to go down the overly skeuomorphic route as seen in the Podcast app.

The worm has already turned - the reel-to-reel tape deck is gone from the podcast app, replaced with a simpler cover art + buttons view.

<comment><USER4> swipe up

<comment><USER5> No, in the latest update it's really gone. I sort of miss it.

<comment><USER4> Yeah, I'm an idiot. I didn't get the update till after I wrote that comment. (and then noprocrast kicked in so i couldn't edit)

and I too sort of miss it, now the app looks lifeless

<comment><USER6> That's the real benefit of Apple's gloss; it makes apps feel welcoming and friendly. Apps with only function and utility in mind end up feeling cold.

</comment></comment></comment></comment></comment></comment><comment><USER7> Why do I have the impression that if they go flat, they'll be hailed as geniuses and Microsoft will be forgotten forever? (This comment guaranteed 100% conspirationist and crazy)

<comment><USER8> Why do you think Microsoft invented flat UI design?

I for one will miss the current iOS design. I'm 1 year into Android and I'm still way faster on iOS. There is a clear distinction between what is interaction vs. what is not and my eye instantly maps out the interactive elements on the screen.

<comment><USER9> Each to their own, I am the complete opposite. I came from an iPhone and switched to Android. I am much faster on Android, task switching is worlds apart, animations are faster and smoother, the apps I use follow Holo design language (this is by choice) meaning the UI is consistent and beautiful. I'm not saying it's perfect, there are some things I miss from iOS like unread badges (easy to get back with Nova Launcher however) and I did like Airplay, Android certainly has plenty of room to refine and improve, but it would take some massive and fundamental changes for me to consider switching back to iOS.

<comment><USER10> > _animations are faster and smoother_

This is incorrect, and cannot be so for technical reasons. Even the Android OS team agrees on that.

Perhaps you had the "new toy" effect?

<comment><USER11> Citation please? Cannot seems like an unreasonably strong claim.

Given the way older iOS devices are often sluggish on newer OS releases, it seems entirely possible that the animations on the switched-from device were slower and less smooth than the animations on the switched-to device.

<comment><USER10> Citation? Here, both sides actually:

[http://www.inspiredgeek.com/2011/12/07/why-android- graphics-...](http://www.inspiredgeek.com/2011/12/07/why-android-graphics-are- laggy-while-ios-is-smooth-facts-practical-reality/)

[https://plus.google.com/100838276097451809262/posts/VDkV9XaJ...](https://plus.google.com/100838276097451809262/posts/VDkV9XaJRGS)

[https://plus.google.com/105051985738280261832/posts/2FXDCz8x...](https://plus.google.com/105051985738280261832/posts/2FXDCz8x93s)

[http://appadvice.com/appnn/2011/12/android-lag-attributed- to...](http://appadvice.com/appnn/2011/12/android-lag-attributed-to-core- system-framework-here-to-stay)

<comment><USER12> The latest of those citations is December 2011. They may not reflect the current state of the Android OS.

Android 4.1 and 4.2, codenamed "Jelly Bean", have been released since that time, with a "Project Butter" specifically aiming at GUI smoothness.

I haven't had a chance to use anything newer than 4.0, myself, so I'm merely pointing this out. It could be the same for all I know.

<comment><USER13> Project butter did nothing for the Nexus S, which in my experience has been mady worse with Jelly Bean.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Sometimes skeuomorphism is useful, when used right. For example, Microsoft's Fresh Paint app for Windows 8. Extreme skeuomorphism which actually combines well within the flat W8 interface, screenshot: [http://upload.wikimedia.org/wikipedia/commons/f/fa/Freshpain...](http://upload.wikimedia.org/wikipedia/commons/f/fa/Freshpaint.png)

<comment><USER15> You have got to be kidding. That looks terrible and wastes half the space on the screen. It's not even very good skeuomorphism, the drop shadows aren't in a consistent direction, and the layering of the brushes and canvas doesn't make sense.

<comment><USER16> It is very wrong to judge Freshpaint by the static screenshot. [http://www.youtube.com/watch?feature=player_detailpage&v...](http://www.youtube.com/watch?feature=player_detailpage&v=iFAt78E7KF0#t=93s)

Note how the wet paint mixes up on canvas.

More on mixing colors: [http://www.youtube.com/watch?feature=player_detailpage&v...](http://www.youtube.com/watch?feature=player_detailpage&v=utbVYi8UurA#t=319s)

This app is really the best skeuomorphism out there.

<comment><USER17> I remember mixing 'wet paint' on the canvas with Painter 7 around oh... ten years ago. Not particularly innovative.

The rest of the UI is an abject travesty.

</comment></comment></comment></comment><comment><USER18> I've always thought that iOS elements looked like Playmobile gear, and clashed horribly with Ive's sleek hardware design. It will be interesting to see the changes Ive will make, and how much better they'll mesh with his hardware.

</comment><comment><USER19> I never pay attention to those rumors. And for sure they will never copy MS or Google. They will craft something their own.

<comment><USER20> You mean like Notification Centre?

<comment><USER19> That's not a copy, that maybe you can call it… inspiration. By no means is identical in shape, color and functionality. But we're here discussing something much more higher than a single feature, we're talking about the entire GUI foundation.

<comment><USER17> You're right. iOS notification center is uglier, less useful, and more annoying.

</comment></comment></comment></comment><comment><USER21> And please get rid of that ridiculous blue! Anyone using Messages, Mail and Contacts on iPhone has this eye soar sticking right in front. How in the world can someone pick such a strange color and then add that stranger blue bar(I know its automatic) at top.

I would be happy to see flat design, but in increments only. And maybe it is time for Apple to leave "best for beginners" ideology and care a bit about advanced users. Give us a little freedom, let me change my default apps, let Siri do more things and small things like that.

<comment><USER22> You got me thinking - completely off topic. I think you mean eyesore. Eye soar is probably what happens if something is big and good.

</comment></comment><comment><USER23> The focus on flat vs skeuomorphic is partly due to designs being mainly static drawings. Most UIs have additional dimensions. One dimension that goes underused in Android is the ability to share UI among apps through the use of intent filters. That hasn't advanced much since Android was announced. Both Google and 3rd party developers under-utilize this powerful capability. Google makes a vast suite of apps now, and how often do they "borrow" an activity from each other?

Then there s the amount of direct manipulation in apps. Viewpagers are nice, but there isn't a lot of drag-drop, especially on tablets where it provides feedback and trains muscle memory. Audio ques, haptic feedback, animation, etc. are all dimensions in which apps can expand interactivity where the visual interface, on handsets, is tiny.

Skeuomorphism that is just pictures of things is obviously dissatisfying, but so is a flat UI that doesn't go beyond simple touch.

</comment><comment><USER24> I'm not so sure I am all that excited about Ive getting into the UI design that much. Flat, reductionist design sensibilities are good, but not when they go unchecked. Is there anyone at Apple with the weight to say to Ive, "that looks sexy, but no-one gets it"?

</comment><comment><USER25> I'm gonna wager that "flat" will mean something akin to the google iOS maps app -- very subtle affordances, gradients, etc, without being overkill.

</comment><comment><USER26> The sad thing about this if it's true is that people will most likely claim Apple are some revolutionary company that invented flat design when Microsoft brought it to the commercial mainstream first before anyone else did. Flat design is in my opinion, Swedish design. The swedes have been designing with a flat perspective long before Microsoft or anyone else made it a trend.

<comment><USER13> Even sadder is that you feel the need to take ownership on behalf of someone else. Ultimately, it simply doesn't matter.

</comment></comment><comment><USER27> Best watch out. I bet LayerVault will be pissed.

<comment><USER28> They are already typing out their DMCA request to Apple as we speak.

</comment></comment><comment><USER29> Non-skeuomorphic design is not the same as flat design. The example the WSJ gives to support their idea is the redesign of the lockscreen music controls in IOS 6.1. Not only does the volume slider have a 3D look to it through the use of drop-shadows, but when you tilt the phone the reflection on the button changes.

</comment><comment><USER30> Show of hands: How many here recall Microsoft's "Palm-size PC"? It began with a "3D" interface. It flopped and MS redid it as "Pocket PC" with a _flat_ UI. (They also moved Start down to the lower left corner, like the PC Windows.) The more things change...

</comment><comment><USER31> I never considered flat and skeuomorphic to be opposite ends of the same design continuum. Those aren't the only options. I'd like to think the Apple design team is going to wow us with something new. Something better.

</comment><comment><USER32> Where's the "who cares" comment for me to upvote.

Really, it's apple, they've peaked already. Show me the new cool thing _.

_ Please don't read this as a suggestion apple is dead, it's anything but dead, in the same way Microsoft is.

<comment><USER10> > _Really, it's apple, they've peaked already. Show me the new cool thing._

That is just conventional wisdom. Who said they have "peaked already"?

Three objections:

1) People would have said the same thing pre iPhone ("oh, they have peaked with the iPod"), and pre-iPad. And they indeed said it.

2) This iPad thing isn't even 2 years old. Yes, you read that correctly. It was introduced LESS than 2 years ago (actually closing to 2 years any day now, it was on late march 2010). Since then they have also established hi-dpi displays for phones, tablets and laptops, and of course Air-style ultraportables.

3) All the "new cool things" I've seen from third party companies all these years have been ho-hum, me-too stuff (Surface, etc) or vaporware (Google Glasses). It's like, besides Apple, nobody introduces anything that is both successful AND interesting to the mass markets anymore.

Google, for example, had it's moments with Search and Gmail. Since then, what exactly have they put out that's interesting AND has caught on with people? Android: successful but not interesting. Glasses: interesting but not successful (or even "a product"). Etc.

<comment><USER33> > It was introduced LESS than 2 years ago (actually closing to 2 years any day > now, it was on late march 2010).

? ;)

<comment><USER10> Ooops, that should be "LESS than 3 years ago, closing to 3 any day now". It was introduced on April 2010.

</comment></comment></comment></comment><comment><USER34> So much for the "consistent UI" apple fans are always touting as a win over android. Now it seems we will have some apps glossy, some flat, some skeuo, etc...

This isn't new. OSX has many different apps that still reflect trends and practices of the era in which they were made.

<comment><USER35> Consistent UI on iOS isn't about all apps looking identical, they don't and never have.

It's about functionality being consistent, and for the most part it is. Certainly more so than Android. Whether that's something you care about or not is up to you.

</comment></comment><comment><USER36> Now thats skating to where the puck will be.

<comment><USER17> ....was a year ago when Jelly Bean was released.

</comment></comment><comment><USER37> Why not use tiles with monochrome icons?

<comment><USER38> Tiles look great if the content is great, but just like with file previews (on Win7 or OSX), sometimes that's info that I don't need.

For example, using a desktop analogy, I'd rather not see the layout of my first page of code. I would like to know the filetype (icon is great for this often), and some other metadata so I can compare it with similar files.</comment></comment>


How Cannabis Helped Me Learn to Code - <AUTHOR> http://creatorsneverdie.com/how-cannabis-helped-me-learn-to-code/ <comment><USER2> The fact that cannabis is basically a weed (the pun is not my fault) is partly why I think it is illegal. It's difficult to make money off something that anyone can grow, and the fact that it actually helps many of the same things that are treated with pain and mental problems means that the medical industry doesn't want the competition.

Let alone how caveller we all are toward it and there are people across the US sitting in jail for simple possession. It's a failure of our moral character that this is not completely decriminalized.

</comment><comment><USER3> Being stoned on pot makes me feel stupid as houseplant. I prefer to feel smart.

I'm not criticizing it for others - do what you want with your life, but I like feeling smart and that's what I need for programming.</comment>


Don't just use Stripe - <AUTHOR> https://fman.io/blog/dont-just-use-stripe/ <comment><USER2> ...Use PayPal and get burned by the chargeback fees!</comment>


My Startup: Become the King Conquer the Venues. It's mysterious? - <AUTHOR>

Hi,
this is the Launching soon page of our next startup http://challengein.com . I just want to ask you if it's mysterious. And what do think the product is? <comment><USER2> Clickable: <http://challengein.com>

Based solely on the tagline, it sounds like foursquare. The graphics remind me of board games though, leaving me questioning my previous conclusion and thus mystified.

<comment><AUTHOR> That's the right path ;)

Do you think that the line at the top of the page, is strong enough? Do you will sign up to obtain the Free theme pack? Do you had written something different?

tnx

<comment><USER2> The top line there doesn't make much sense to me. It sounds like it means "The first 1000 to join get the Premium Theme Pack for free!", but I'm not sure what the "more share" part is.

I'm not so into this kind of thing, so I don't want to join up and take someone's spot and wind up not using it.

<comment><AUTHOR> Don't you make that problem, simply join that's there is enough space for all ;)

Thanks for the tip, I'll correct the sentence. I'm not English, so I don't write it so well

</comment></comment></comment></comment><comment><USER3> The product is "The mobile Animator for groups of friends" ;)

<comment><AUTHOR> Yes :) but What do you think this means?

<comment><USER3> Well obviously it is related to a location style service like Foursquare, Gowalla etc.

Although it seems like you have evolved the idea slightly and focused more on the gaming aspect of location based services whereas, Foursquare etc are starting to focus on deals etc.

Thus I'm assuming its something along the lines of a "game" between friends to be the "king" (or queen) of a venue such as, a party/event they are at etc.

<comment><AUTHOR> Great! You've understood the key concepts. Did it appeal to you?

Is enough to give it a try? For your person</comment></comment></comment></comment>


The Perils of Positive Thinking  - <AUTHOR> http://www.unlimitedmagazine.com/2010/06/the-perils-of-positive-thinking/

<comment><USER2> You see this tendency creeping into larger Christian churches more and more. If you can stop swearing, donate more money, avoid sex outside marriage, and generally focus on your own purity, you'll be happy and enjoy rewards in heaven. It's perfect for mega-churches and those that aspire to be mega- churches because they don't have to figure out how to create a meaningful community out of 5000 attendees. Each attendee is his/her own congregation.

</comment><comment><USER3> There's a great book about this called Bright Sided.

</comment><comment><USER4> I realized I was reading a post by a moron when I read this.. "Vancouver's suicide-inducing winter climate" - Oh you mean the mildest winter climate in Canada. WTF? Buy an Umbrella!

<comment><USER5> It's not the temperature so much as the chronic lack of sunlight for most of the winter...</comment></comment>


Dropbox hack: get download stats for public files - <AUTHOR> http://300milligrams.posterous.com/dropbox-hacks-public-file-stats

<comment><USER2> This isn't really a hack: it's just a streamlined way to have shortlinks to you Dropbox-files with built-in statistics. What's next, an article by the bit.ly people saying they got a hack to get stats on links you post on Twitter?

<comment><USER3> Even then it's not streamlined. I can just use bit.ly to shorten a link to a file. No syncing, no need to share dropbox credentials.

</comment></comment><comment><USER4> before i would even think of touching this i'd need to know what sort of permissions im giving this app. And secondly, you care about stats on links that you intend to leave up for a long time as well as give to a lot of people. Im not sure I would trust an on the side project to keep up links that I distribute widely.

All that said, there was talk on the dropbox blog a while back about releasing analytics tools but we haven't heard anything since then.

<comment><AUTHOR> No worries, even if app will disappear your link will be served by bit.ly.

</comment></comment><comment><USER5> How does this work?

<comment><USER6> with short-links redirecting to the file, it could be done with url shortener with stats, it's just more convenient generating them with this service I guess

<comment><AUTHOR> correct. it was very inconvenient every time you need download stats to open bit.ly for that.

<comment><USER7> The Dropbox auth. page states: "This app will have access to your entire Dropbox. Please make sure you trust this app before proceeding."

Does this really need access to the entire Dropbox? Why should I trust the person who wrote this?

To get stats for bit.ly you can just add a '+' symbol on the end of the short link: <http://bit.ly/owigAj+></comment></comment></comment></comment>


U.S. Treasury Department Labels China a Currency Manipulator - <AUTHOR> https://www.bloomberg.com/news/articles/2019-08-05/u-s-treasury-department-labels-china-a-currency-manipulator <comment><USER2> Could someone explain why this part makes sense?

> after the country's central bank allowed the yuan to fall

They got taxed extra, limiting the economy / exports. This means less interest in investment in their market and currency. That seems like a legitimate reason for the currency to lose its value in relation to the country taxing it.

Why is there an implication that this is "allowed" or a strategic response? Not claiming it isn't, and I see how it benefits China in some ways - I'd just like to understand how it's different from a non-manipulated price drop.

<comment><USER3> China's government policy and central bank tightly control the exchange rate and only allow it to fluctuate within certain predetermined bands.

"An official re-adjustment of the mid-point rate for the trading band is announced by the country's Foreign Exchange Trading Center at 9:15 a.m. each day, Shanghai time."

[https://www.fxcm.com/uk/insights/how-does-china-control- exch...](https://www.fxcm.com/uk/insights/how-does-china-control-exchange- rates/)

So each day the government says what the currency should be and gives traders very little wiggle room.

As for the first question should they or shouldn't they do it, I don't know.

<comment><USER4> That is only true to a point: they have to back it up with forex buy/sell orders , or their trading rate becomes meaningless and the black market comes back to set a more realistic rate (as was the case in the late 90s during my first trip to china).

</comment></comment></comment><comment><USER5> In case anyone else was curious, it seems the penalties for being so labelled are enforced through the imposition of tariffs [0].

If the IMF / WTO agree with the Fed's characterization (which is doesn't currently look like will be the case, from what I read in the parent article), then it could have broader impacts, i.e. by the imposition of tariffs by companies which are not currently in a trade war with China.

However, since the US is already levying (heavier) tariffs against China, this is currently being viewed as more of a public / foreign relations move, as it seems unlikely that it will trigger even stronger tariffs.

[0]: [https://www.nytimes.com/2019/05/23/us/politics/trump- currenc...](https://www.nytimes.com/2019/05/23/us/politics/trump-currency- manipulators.html)</comment>


Apparent assassination attempt targets Venezuelan president with drones - <AUTHOR> https://www.sfchronicle.com/world/article/Apparent-assassination-attempt-targets-Venezuelan-13132681.php <comment><AUTHOR> NB, another submission has garnered more discussion:

[https://news.ycombinator.com/item?id=17689416](https://news.ycombinator.com/item?id=17689416)

</comment><comment><USER2> Wouldn't be surprised if he didn't orchestrate the attack on himself so he could blame someone else for his problems.</comment>


Segway robot - <AUTHOR> http://robot.segway.com/ <comment><USER2> Wow, I use Double Robot: [http://www.doublerobotics.com/](http://www.doublerobotics.com/)

and was wondering how to script this thing. E.g. appear at meeting and record it for ppl in different timezone. However, it seems to be hard with Double.

With Segway it may the killer use case.

<comment><USER3> It remembers me a south park halloween special episode, where Stan facetimes with it's iPad [0].

It's my personal opinion, but even though idea looks rather good (give a physical presence, by working remotely), wouldn't it be just a very strange and awkward (and maybe smug) to use? Like the original segway, which was very cool invention, but did not gain much traction, due to how awkward it is, how people look smug using it, etc (even though 'hoverboard' gained a lot of popularity, but is IMHO an inferior gadget).

All in all, cool, though IMHO people will need to take a lot of time to be accustomed by such device.

[0] [http://wac.450f.edgecastcdn.net/80450F/screencrush.com/442/f...](http://wac.450f.edgecastcdn.net/80450F/screencrush.com/442/files/2012/10/sp_1612_promo01.jpg)

P.S. cannot compare to segway robot, as their servers seem to struggle to load the content at the moment of writing this comment.

<comment><USER4> The Segway is quite large and needs parking or storage. Also, it can't go up stairs. Hoverboards can be picked up and carried easily around an office or home, and can be tossed under a desk or in a backpack for storage.

A Segway is like a bike in that you always have to be thinking about where to put it when you arrive. Hoverboard is much more like walking, in that you can toss it in your backpack or just carry it when you arrive.

Though I'd rather just walk.

<comment><USER5> The immediate use case I thought of when reading about it was that you don't have to worry about where to put it. You ride it to work then the robot pops up its cute little face and it drives itself back home. Then it's waiting to pick you up when you're done. Obviously, that would depend on software that's probably a lot more advanced than the current prototype. But I suppose that's why they're soliciting developers.

</comment></comment></comment></comment><comment><USER6> OT: they forgot to setup their meta tags properly. The description is set to "Responsive Minimal Bootstrap Theme"

<comment><USER7> A funny find, but why were you looking at their source?

<comment><USER8> Why not? For some of us it's a decades-old habit, from back when the Web was more friendly.

<comment><USER9> I just looked at the source code and, well, wow. Comments sometimes in English and sometimes in Chinese, scripts are being loaded all over the place, one tag is just commented out, one inline script does nothing but assign a global variable to a value that's presumably just an output from PHP and many more things that feel really... odd for something that's supposed to advertise a new and complex technology.

<comment><USER10> I wouldn't be so surprised. They're a robotics company, not a web design company. They probably contracted it out.

<comment><USER11> Surely it's far worse if they contracted it out as then this is the results of people who they bought in on the basis of their web design. If it was in house then there's an excuse of sorts.

<comment><USER10> Nah. If you're not a web design company, than you're not going to know what to look for when trying to contract a web design company. I'd expect shit-show engineering to be the norm rather than the exception.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I really don't understand why for this use case people do not use a third wheel and save the energy consumed to stand still with self balancing. Not just this segway, also the double robot (the latter, at least, can claim aesthetic motivations given the barrel shape).

<comment><USER13> Tri-wheel robots wobble really badly. For telepresence, the screen is at the top of a mast so wobbles are amplified. The balancing robots have very smooth motion.

<comment><USER14> Wouldn't it be easier to stabilize the screen than the whole robot?

<comment><USER15> Put it this way: The head on the end of the mast is a significant mass at the end of a long lever. To dynamically stabilize that, you're going to need big, hefty, expensive motors. Well, you already have big, hefty expensive motors to move the thing around in the first place, so it actually costs less money to dynamically stabilize the whole robot.

<comment><USER16> Check out the inverted pendulum on a cart problem, or go balance a couple bats on your hand. When near vertical the inertia of the pendulum mass helps you out, it's the inertia of the cart the motors need to overcome. The better the control loop the fewer and smaller the corrections will be, tending towards zero.

</comment></comment></comment></comment></comment><comment><USER17> This is really a cool idea.

Segway was acquired by Xiaomi. And the background in the video [https://www.youtube.com/watch?v=nr-9p8o60gY](https://www.youtube.com/watch?v=nr-9p8o60gY) is Beijing. I believe this project is developed in Beijing, China.

<comment><USER18> Good info, I missed that bit of news.

[http://www.bloomberg.com/news/articles/2015-04-15/xiaomi- bac...](http://www.bloomberg.com/news/articles/2015-04-15/xiaomi-backed- startup-says-it-plans-to-buy-u-s-rival-segway)

</comment></comment><comment><USER19> So you sit on its head if you use it as a 'hoverboard', that's curious.

But what could be the use cases for a robot like this? Its head is too low for telepresence like Double Robotics. The arms-extension looks nice, but it can't grasp anything with it because it seems to stiff, Lego-like hands. Plus the hands can't reach up a table or kitchen to grab anything. Holding anything with weight would also shift the center of gravity and mess with the balancing.

On the other hand, mixing this robot with a thing that is useful otherwise can get the technology out the door and get sales going to add functional arms later on.

</comment><comment><USER20> Making robots with Segways was actually a thing at least around 2004-2006. Robocup is a robotics soccer league with several divisions that each have a different kind of challenge.

Briefly, there was a Segway league. Each team had a single robotic Segway and a single human driven Segway which had to cooperate to score goals on the other team. Here's the page of one of the teams with pictures and videos of the Segway robots in action: [http://www.nsi.edu/~nomad/segway/](http://www.nsi.edu/~nomad/segway/)

</comment><comment><USER21> I had hoped that this would be a self-driving Segway, but it seems that when you ride it, all the sensors are covered by your legs.

This could be the first step to robots getting into the main stream though, since it has some useful functionality next to being a robot.

</comment><comment><USER22> This might actually work:

"AN EXTENDABLE ROBOT

FOR THERE ARE MANY POSSIBILITIES OUT THERE. WHAT WOULD YOU LIKE YOUR GEARS TO BE?"

Let the public find the exact usage cases, provide the basic tooling such as mobility, GPS, depth camera etc.

<comment><USER23> Meh, I was trying to find an actual usage of this robot. I guess even Segway has no idea what to do with it.

</comment></comment><comment><USER24> Would be nice if combined with a 360 degree lens, and an Oculus Rift.

The problem is you can only use it indoors, because outside anybody could just steal it.

<comment><USER25> >and an Oculus Rift.

Well, its a telepresence robot, which means it will be at arbitrary locations doing its job. How many places have the type of reliable low-latency, high- bandwidth, low packet loss, etc wifi network to give a reliable Rift experience? I mean, we can barely do this with the powerhouse of high-end video cards via hdmi. How can we transmit a high quality 1440p per eye at 60fps over the common internet? Maybe 25mbps per eye with a lot of compression, so a good 55mbps with overhead? Note, this is live video so no buffering past a few dozen milliseconds. We can't without some really dedicated connections and a wifi client>AP relationship with little to no interference. You're not getting this in your average office or other common telepresence locales. You sure as hell aren't getting it over 3G/4G.

I don't think people appreciate how exotic HMD's like the rift are. We can't just plug them in anywhere. For the 3D effect to "work" you need high resolutions and high framerates. If you can't get that, then a normal screen should be used because its a waste of resources and a waste of time strapping that thing to your face.

<comment><USER26> High framerate video isn't necessary. The reason for the 60fps capable video card where the rift is connected is that when you move your head, you need the video to update quickly. If you had a 360 degree camera like the parent suggested, you don't need the source to be 60fps, just that when you move your head, you need the view on the rift to change at 60fps.

Think of a panoramic photo. It's not even 1fps, it's 1 frame ever and it still gives you a great 3D effect. I think you'd be fine with a much lower framerate source. And that would make a wifi and a not-that-impressive internet connection fine.

Edit to add: of course, with a 360 video you have much larger frames, not 1440. You could probably do with less than 360 though, since you can assume a person isn't going to be looking behind them or at the floor.

</comment></comment></comment><comment><USER25> I have thousands of dollars to spend on something like this if it had an arm and could do things like get items from the fridge by verbal order (with no step by step programming, just visual recognition of the fridge and how to open it), play catch with the dog, sweep up, act as a security guard when I'm gone, etc.

Robotics is one of those things where the hardware, price, and networking are there but the software isn't. We don't have an AI-lite engine we can toss in for simple things a dog could understand like "get my slippers." Until someone cracks that code, this stuff is just going to be rich-boy novelties and unneeded contenders in the already over-saturated telepresence market.

<comment><USER27>
      Robotics is one of those things where the hardware,
      price, and networking are there but the software isn't.

I'm not sure where you got the impression that the hardware is ready for prime time, because it ain't. I work in mobile robotics, and I wrote a blog post about this a while ago: [http://c1qfxugcgy0.tumblr.com/post/31187427192/the- enduring-...](http://c1qfxugcgy0.tumblr.com/post/31187427192/the-enduring- tragedy-of-the-robotics-industry)

Batteries aren't good enough, linear actuators have awful power/weight ratios, and computers just aren't fast enough to solve CV problems and calculate grasps and paths in seconds, rather than minutes.

Saying you "have thousands of dollars to spend" is great, but not sufficient. The PR2 I talk about in the blog post costs _four hundred thousand US dollars,_ and it sucks! It's like saying you're willing to spend five thousand bucks to buy a Lamborghini Aventador. It's going to be many decades before a useful household robot only costs ten grand. A household robot just requires too many breakthroughs in too many different fields.

<comment><USER25> Oh I don't know, it seems to me that the PR2 is designed for industry so its pricing is going to reflect that. I suspect there is a home robot space that some startup can fill sooner than later. Whether it does all the things I listed is the big question and I suspect it won't, but it may be able to do a few things that make it a worthwhile purchase.

I've played a bit with opencv, pcl, ros, etc. There's some very impressive image recognition stuff available right now that works well on commodity x86 platforms(1). I don't think the market is expecting a HAL-like or Jetsons like robot, but I could see something akin to an early 80s home computer where the product is clearly a long list of compromises but it does a few things very well and is compelling. Home robotics may be the same way for a while until it has its 1984 Macintosh moment, which as you say might be a decade or two or four away.

I did appreciate your posting, but I think its a little dismissive of the some of the homebrew and smaller scale stuff out there. The PR2 is a VC backed monster designed to bring industrial robots to retail, hospitals, etc. These guys want to build the 747 of the robot world. That's great. But there are people out there building the Cessnas of the robotics world. I expect an affordable consumber product that isn't a joke xmas 2018-2020. There's just way too much potential here.

1\. Home robot hackers falling in love with the super low power NUC which gives a CPUMark score around 5,000+

[http://www.showusyoursensors.com/2014/09/intel-nuc-for- ros.h...](http://www.showusyoursensors.com/2014/09/intel-nuc-for- ros.html#comment-form)

<comment><USER27>
      designed for industry

The PR2 has an arm payload of 1.8kg, total payload of 20kg, and a top speed of 1m/s. That doesn't sound "industrial" to me, that sounds like "the absolute bare minimum to be a mobile anthropomorphic robot". And to achieve those numbers, it weighs 480 kilos! That's a payload fraction of 4.1%! How is this anything like a 747?

If it _only_ weighed a 60 kilos, the average weight of a human, then we would expect a total payload of 2.4kg, and an arm payload of... 7.3 grams. Doesn't sound too useful to me. And the damn thing would still cost $50,000!

The PR2 _was_ a VC backed monster, but remember, Willow Garage _went out of business_ last year, because their products just weren't very useful! The technology just isn't there, and won't be for a long time.

      Home robot hackers falling in love with
      the super low power NUC

I'm sure that's fine for pathing, and Kinect-SLAM, but "getting a beer from the fridge" is picking arbitrary items in arbitrary poses in an unconstrained environment, basically the Amazon Picking Challenge, which nobody can solve with reasonable speed yet, even with hundreds of thousands of dollars of equipment.

If you honestly think you can build a _cheap_ robot that can do all that by 2020, then by all means, launch a startup and earn billions of dollars. But I don't think it's going to be done before 2040.

</comment></comment></comment></comment><comment><USER28> The Segway really is the architecture for "bipedal" robots and the reason you haven't seen this before is all those patents...

</comment><comment><USER29> The most interesting thing about this for me is that the third partner is Xiaomi. They are a company that I expect any day now to eat a large portion of the consumer electronics market. Items like the Mi Band and Pistons compete well with things 4X their price. I'm very curious about their involvement here.

<comment><USER30> They own Segway.

</comment></comment><comment><USER31> Heh... this is pretty close to the Wheelie Boy from William Gibson's recent novel _The Peripheral_.

</comment><comment><USER32> It kind of reminds me of Johnny five!

</comment><comment><USER33> Intel inside huh? I guess the camera array used is based on Intel Realsense then.

<comment><USER22> Yes, that is correct.

"Intel RealSense RGB-D camera enables depth sensing. Great for development on object recognition, tracking and other cool projects."

<comment><USER34> The problem that I see with the real-sense is that just like the Kinect it's based on structured light. This means that it will only work indoors (just like the Kinect). So their cool demo with putting that on a drone is kind of pointless, because who flies a drone indoors?

There are now some devices available which can provide depth data through passive stereo vision. I have recently seen this one in action: [http://nerian.com/products/sp1-stereo- vision/](http://nerian.com/products/sp1-stereo-vision/)

The problem with that, however, is that it is targeted at industrial market and probably way to expensive for any ordinary consumers. I guess we will still have to wait for some major revolution in depth sensing.

<comment><USER35> Heh - RealSense is not exactly one depth camera. This particular formfactor uses active stereo IR (R200 camera), so it also works outside but loses the projective texturing (where it's usually not needed anyway).

<comment><USER34> Actually, I don't think so. Its kind of hard to get any technical information on the real sense and I know that Intel is making different versions of it, so please correct me if I'm wrong and if they have one which really does stereo. On [http://www.intel.com/content/www/us/en/architecture-and- tech...](http://www.intel.com/content/www/us/en/architecture-and- technology/realsense-shortrange.html) they say the following:

"The Intel® RealSense™ Camera F200 is actually three cameras in one—a 1080p HD camera, an infrared camera, and an infrared laser projector"

So this is just looks like the first Kinect. The infrared camera will observe the projected pattern and the RGB camera is there to capture the color information. You can't really match an infrared image (which is also covered with a laser pattern) with a visible light image, as they will look very different. So you would require a yet another camera (infrared or visible light) in order to do stereo.

<comment><USER35> The robot is using the R200, an active stereo camera, not the F200. Even the F200 uses a fundamentally different technique (coded light, projected grey code) rather than structured light as the Kinect uses.

Source: I work as a computer vision engineer on these products for Intel RealSense.

</comment></comment></comment></comment></comment></comment><comment><USER36> Maybe it's just me but the lead image makes it look like the dog is chasing the robot and it's scared. Which is an odd choice for a lead image.

</comment><comment><USER37> I want this to welcome me at the airport.

</comment><comment><USER38> A side comment. Anybody else noticed a request was made to hm.baidu.com for a javascript from this site?

</comment><comment><USER39> Let's hope these fare better than hitchbot:

[http://www.usatoday.com/story/news/nation- now/2015/08/03/hit...](http://www.usatoday.com/story/news/nation- now/2015/08/03/hitchhiking-robot-destroyed-philadelphia-ending-cross-country- trek/31051589/)

</comment><comment><USER40> This is going to be so much more awesome as drones improve.

</comment><comment><USER41> No way it's as good as Kevin. [http://savedbythebell.wikia.com/wiki/Kevin](http://savedbythebell.wikia.com/wiki/Kevin)

</comment><comment><USER42> _" We target to start shipping Segway Robot Developer Edition in early Q3 2016"_

so 7-8 months from now or later

<comment><USER26> Yes, that is how you time.</comment></comment>


Text Summarization with TensorFlow - <AUTHOR> https://research.googleblog.com/2016/08/text-summarization-with-tensorflow.html <comment><USER2> Allegedly (according to HP labs anyway) my 15 year old software[0] was state- of-the-art at this on the CNN dataset[1].

By my thing was very heuristic based, and couldn't generate new sentences like this can. I'm pretty impressed - I'd say some of the machine generated summaries are better than the human ones.

[0] [http://classifier4j.sourceforge.net/](http://classifier4j.sourceforge.net/) (yes, Sourceforge! Shows how old it is!!)

[1] [http://dl.acm.org/citation.cfm?id=2797081](http://dl.acm.org/citation.cfm?id=2797081)

</comment><comment><USER3> This is way too difficult to get right, even for humans.

I dream of a not-so-smart news summarization engine that will not try to rewrite the news, but only pickup all the numbers and quotations, then present them in a table of who-said-what and how-many-what, along with the title.

This would put an end to filler-based journalism.

<comment><USER4> I wish you wouldn't be so dismissive of journalism and journalists. What they provide is not filler. Controversial though this opinion may be around here, there is serious value in having an actual carbon-based life form -- one who has spent years or decades covering whatever beat -- provide context and insight for the quotes and data. That they have become a dying breed spells real trouble for our civic life.

<comment><USER5> The journalists you describe are so few and far between that there needs to be a different term for them. The vast majority of the 'news' out there isn't anything close to what you described.

<comment><USER6> Agreed in an age where twitter storms are worthy of front page news.

</comment></comment></comment></comment><comment><USER7> $6,000 for the Gigaword dataset they used to train...

[https://catalog.ldc.upenn.edu/LDC2012T21](https://catalog.ldc.upenn.edu/LDC2012T21)

<comment><USER8> There's not even a way to buy it as an individual who's not part of an organization! They don't even state this as a possibility.

</comment></comment><comment><USER9> There's SUMMRY ([http://smmry.com](http://smmry.com)). I don't recall it being very smart -- that is, it doesn't rewrite sentences. It extracts the most important/relevant ones to basically shorten an article. It's definitely useful.

<comment><USER10> Wow, I like this.

As an example, here is the Google article resumed by SUMMRY.

===

Research Blog: Text summarization with TensorFlow Being able to develop Machine Learning models that can automatically deliver accurate summaries of longer text can be useful for digesting such large amounts of information in a compressed form, and is a long-term goal of the Google Brain team.

One approach to summarization is to extract parts of the document that are deemed interesting by some metric and join them to form a summary.

Above we extract the words bolded in the original text and concatenate them to form a summary.

It turns out for shorter texts, summarization can be learned end-to-end with a deep learning technique called sequence-to-sequence learning, similar to what makes Smart Reply for Inbox possible.

In this case, the model reads the article text and writes a suitable headline.

In those tasks training from scratch with this model architecture does not do as well as some other techniques we're researching, but it serves as a baseline.

We hope this release can also serve as a baseline for others in their summarization research.

<comment><USER11> FYI, their about section also spells out their algorithm: [http://smmry.com/about](http://smmry.com/about)

</comment></comment></comment><comment><USER12> Here's my approach when I built my text-summary app with TensorFlow's SyntaxNet. SyntaxNet (Parsey) gives part-of-speech for each word and a parse tree showing which less-important words/phrases describe higher-level words. "She sells sea shells, down by the sea shore" => (down by the sea shore) is tagged by SyntaxNet as lower describing "sells" so it can be removed from the sentence. Removing adjectives and prepositional phrases gives us simpler sentences easily. Next, we find key words (central to sentences) for news article based on n-grams, and then score key sentences in which they appear. Use MIT ConceptNet for common-sense linking of nouns and most likely relations between them and similar words based on vectors. Generate article summary from the grammatically simple sentences.

My question is how well the trained models interpret human meaning in joined sentences. I discovered that by simplifying sentences you lose the original meaning when that grammatically-low-importance word is central to the meaning. "Clinton may be the historically first nominee, who is a woman, from the Dem or GOP party to win presidency" is way different meaning than that if you remove the "who is a woman". I am also interested in how it makes sence to join-up nouns/entities across sentences. This will cause the wrong meaning unless you are building the human meaning structures like in ConceptNet by learning from the article itself, as opposed to pretrained models based on grammar or word vector in Gigaword.

My work for the future, is using tf–idf style approach for deciding the key words in a sentence, which I would recommend over relative grammar/vectors. In the example in your blog post ("australian wine exports hit record high in september") you left out that it's 52.1 million liters; but if the article went on to mention or relate importance to that number, by comparing it to past records or giving it the price and so on, you can see this "52.1 million liters" phrase in this one sentence has a higher score relative to the collection of all sentences. As opposed to probabilistic word cherry picking based on prior data, this approach will enable you to extract named entities and phrases and build sentences from phrases in any sentence that grammatically refer to it.

<comment><USER2> _a parse tree showing which less-important words /phrases describe higher- level words_

Things lower on a parse tree aren't less important than things higher. It just represents a dependency relationship.

<comment><USER12> You're pointing out what's already obvious. You still need some way to find what's "less important", which is what the topic is all about, like by using grammar dependency or keywords infrequency.

<comment><USER2> I'm not trying to be hostile, I just don't understand what you mean.

 _You still need some way to find what 's "less important", which is what the topic is all about, like by using grammar dependency or keywords infrequency._

I have some experience in this area[1]. I found keyword frequency worked quite well.

[1] [https://news.ycombinator.com/item?id=12356133](https://news.ycombinator.com/item?id=12356133)

</comment></comment></comment></comment><comment><USER13> Does this include the state of the network in its already-trained state? It looks like we need to train it with the $6000 dataset if we want to get good results like those mentioned. Is it possible for its state to be saved to disk and restored (so we don't all need a copy of the dataset)?

</comment><comment><USER14> The Hainan example in the article is especially impressive, the generated summary uses completely different expressions compared to the source text, yet it is spot-on. Of course those are probably cherry-picked results, but still. As a side note, it would be interesting to see how the algorithm performs with longer sources.

</comment><comment><USER15> _We 've observed that due to the nature of news headlines, the model can generate good headlines from reading just a few sentences from the beginning of the article._

This illustrates the importance of taking the trouble to understand a domain before trying to model it. I was taught in journalism class that the first paragraph of a newspaper article should summarize the story, the next 3-5 paragraphs summarize again, then the rest of the article fill in the details. Not only do the authors spend time discovering what should have been known from the outset, they reverse cause and effect. The model can generate good headlines due to the nature of newpaper writing, not due to the nature of headlines.

</comment><comment><USER16> That reminds me. Whatever happened to [http://summly.com](http://summly.com)?

<comment><USER17> Acquired by Yahoo a few years ago.

[https://www.crunchbase.com/organization/summly#/entity](https://www.crunchbase.com/organization/summly#/entity)

<comment><USER18> also: wasn't it just a frontend to a external summarize service (that's what i recall)

<comment><USER17> I don't believe so, no. They did most of the original NLP through a contracted team, according to Wikipedia: [https://en.wikipedia.org/wiki/Nick_D%27Aloisio#Summly](https://en.wikipedia.org/wiki/Nick_D%27Aloisio#Summly).

<comment><USER18> got it! remembered it wrong - thx!

</comment></comment></comment></comment></comment><comment><USER19> > we started looking at more difficult datasets where reading the entire > document is necessary to produce good summaries

Was hoping to get rather some more insights on this.

Because when looking at the examples given, I wonder if we really need machine learning to summarize single sentences? Just by cutting all adjectives, replacing words by abbreviations and multiple words by potential category terms, we should face similar results. Maybe it's just a start or did I miss anything?

</comment><comment><USER20> Next one could turn this into a comment generator, generating comments in the style and personality of any HN commenters with an adequate corpus.

<comment><USER21> That would only be accurate if you assume most people read the article.

</comment></comment><comment><USER4> The table is nice, but I'd like to see examples where it performs poorly as well.

<comment><USER22> Author of post here. I'd say most of the examples generated from the best model were good. However we chose examples that were not too gruesome, as news can be :)

We encourage you to try the code and see for yourself.

<comment><USER23> How does the model deal with dangling anaphora[1]? I wrote a summarizer for Spanish following a recent paper as a side project, and it looks as if I'll need a month of work to solve the issue.

[1] That is, the problem of selecting a sentence such as "He approved the motion" and then realising that "he" is now undefined.

<comment><USER24> Wouldn't it suffice to do a coreference pass before extracting sentences? Obviously you'll compound coref errors with the errors in your main logic, but that seems somewhat unavoidable.

<comment><USER25> I am working on this in my kbsportal.com NLP demo. With accurate coreference substitutions (eg., substituting a previous NP like 'San Francisco' for 'there' in a later sentence, substituting full previously mentioned names for pronouns, etc.) extractive summarization should provide better results, and my intuition is that this preprocessing should help abstractive summarization also.

</comment></comment></comment></comment></comment><comment><USER26> May be the wrong context here, but if I am starting out learning Machine Learning using the Stanford course or some other one, is Tensorflow a good candidate to look into? Or does it only contain the advanced algorithms?

<comment><USER2> TF is great once you start doing neural networks. It does have support for other things too, but there are better documented frameworks.

Start with Scikit-Learn or R.

Once you start doing neural network stuff, start with Keras on top of TF.

</comment></comment><comment><USER27> I remember there was a hackernews comment I read once where the user created an emacs plugin to do just this. It would generate a single sentence summery about whatever text was input into it.

Edit: Hey, found it! [https://github.com/mck-/oneliner](https://github.com/mck-/oneliner)

Probably not as sophisticated but does the business. Nice bit of work done on this.

</comment><comment><USER28> The following appears in the README.md

        # Run the eval. Try to avoid running on the same matchine as training.

Why should one avoid that?

[https://github.com/tensorflow/models/tree/master/textsum](https://github.com/tensorflow/models/tree/master/textsum)

</comment><comment><USER29> I would love to use this kind of tool and look for gotchas or key hidden elements in legal documents. It's not exactly summarisation, but very useful. Something like bubbling up the important elements of the fine print.

</comment><comment><USER30> I seem to recall someone used Microsoft's AutoSummarize feature to reduce and reduce classical works of literature to a few lines. The results were pretty hilarious, but I can't find it now.

<comment><USER31> I think you mean this one: [http://jason- huff.com/projects/autosummarize/](http://jason- huff.com/projects/autosummarize/)

<comment><USER30> Yep. That's the one. Thanks.

</comment></comment></comment><comment><USER32> I wonder what it'd be like on a novel, say something like 'pride and prejudice', would it be able to essentially summarise the plot or would it end up like 'movie plots explained badly'

Either way, this is great research with a ton of real world applications!

<comment><USER33> It'll be more remarkable if a machine can read a play script and summarize the plot.

<comment><USER34> I doubt most humans can even do this well.</comment></comment></comment>


Facebook employees calling former colleagues to ask the best way to leave - <AUTHOR> https://www.cnbc.com/2018/12/02/facebook-employees-calling-former-colleagues-to-look-for-jobs-outside.html <comment><USER2> > Many of the employees calling former colleagues also ask for advice on the > best way to leave Facebook, according to multiple former employees. This is > because the company categorizes departing employees under one of two tags: > "regrettable" or "non-regrettable" attrition. Being labeled as "non- > regrettable" is the equivalent of getting blacklisted by Facebook and > prevented from ever working there again. For anyone in Silicon Valley who > wishes to work at a top company, getting a banned by Facebook cuts down job > opportunities drastically.

Not working at Facebook again is fine, but why should another company know whether the employee left in a "regrettable" manner, unless the person did something really bad or illegal? This seems like an egregious failure of privacy and an unfair branding of people.

<comment><USER3> There's a lot of informal sharing of info about employees between the tech giants in the area. I don't think they are sharing the lists but people call eachother.

The speed with which we are building this "you're either with us or against us" dystopian factional mega-corporation ruled hellhole is really remarkable.

</comment></comment><comment><USER4> The door is usually a good way to leave.

If your goal is to be memorable though, obviously you pick a different option. You could crash through a window, then scream about aliens eating your pancreas until you get Tasered and strapped to a stretcher. You could chain saw through the wall, then hop out on a pogo stick while wearing only a sock. You could take a powered parachute up to the roof to make your escape.

If you might want to reconsider leaving facebook, go with the door.

</comment><comment><USER5> more openings for me. Is anyone actually leaving?

<comment><USER6> Why can't you use your skills for something that actually makes the world a better place and delivers real value?

<comment><USER7> its a tradeoff from doing that or making 250k+ at the age of 27

You can also work on instagram, oculous, or just take the time to become a better engineer.

<comment><USER6> Is 250k a big deal in the US, and how does it compare to how much a contractor makes? For reference, in the UK it's common for mid-level Python developers to make around 600£/day which is way above any full-time senior position, so if money was an issue couldn't you just become a contractor instead?

> You can also work on instagram, oculous

Instagram is no better. In fact they're working hard to turn Insta into yet another Facebook.

Oculus will also be just another channel for them to deliver cancer aka ads (look at what's happening with Insta and WhatsApp), so I don't see much point in working on it.

> just take the time to become a better engineer

Maybe, but I'm sure there are other companies that deliver _actual_ value that people want where you can also become a better engineer.

Sorry, I don't agree with making the world worse just for the sake of money.

<comment><USER8> how do you earn 600$/day being a mid level python developer?!!?!

I make 1000€ a month being low level python developer while juggling java, sql, access, javascript, html inbetween

<comment><USER3> Move

</comment></comment></comment></comment></comment></comment><comment><USER9> Yep.

<comment><USER10> What?</comment></comment>


Why AT&T says it can deny Google Fiber access to its poles in Austin - <AUTHOR> http://arstechnica.com/tech-policy/2013/12/why-att-says-it-can-deny-google-fiber-access-to-its-poles-in-austin/ <comment><USER2> The take-home from me on this article is that google is succeeding.

In their own words 'We don't want to become an ISP', 'we're simply doing it to shame current ISP's into acting'[0]

As AT&T are building their own networks, even if google do not get access to the poles, it means that they won.

Eventually, there would be a way around the pole problem (like in the UK where most ISP/Phone lines are buried), but for now, they're winning.

[0] - [http://www.wired.com/wiredenterprise/2013/01/google-fiber- sh...](http://www.wired.com/wiredenterprise/2013/01/google-fiber-shaming- exercise/all/)

<comment><USER3> It's a good way to direct people's anger at their current ISPs anyhow, leading into purchasing their Fiber product.

</comment></comment><comment><USER4> Because "No" means no?</comment>


Static Analysis in GCC 10 - <AUTHOR> https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/ <comment><USER2> Double-free's can be tracked by doing data flow analysis on the function. This is how D does it in its nascent implementation of an Ownership/Borrowing system. It can be done without DFA if getting it only 90% right and having numerous false positives is acceptable.

I've used many static checkers in the past, and the rate of false positives was high enough to dissuade me from using them. This is why D uses DFA to catch 100% of the positives with 0% negatives. I knew this could be done because the compilers were using DFA in the optimization pass.

In order to get the tracking to work, one cannot just track things for a function named "free". After all, a common thing to do is write one's own custom storage allocators, and the compiler won't know what they are. Hence, there has to be some mechanism to tell the compiler when a pointer parameter to a function is getting "consumed" by the caller, and when it is just "loaned" to the caller (hence the nomenclature of an Ownership/Borrowing system).

One of the difficulties to overcome with D in doing this is there are several complex semantic constructs that needed to be deconstructed into their component pointer operations. I noticed that Rust simplified this problem by simplifying the language :-)

But once done, it works, and works satisfyingly well.

Note that none of this is a criticism of what GCC 10 does, because the article gives insufficient detail to draw any informed conclusions. But I do see this as part of a general trend that people are sick and tired of memory safety bugs in programming languages, and it's good to see progress on all fronts here.

<comment><USER3> > This is why, for D, I was determined to use DFA to catch 100% of the > positives with 0% negatives. I knew this could be done because my compilers > were using DFA in the optimization pass.

Is this really true? I thought this was impossible due to Rice's theorem

<comment><USER2> Fortunately, I am unaware that it was impossible and did it anyway :-)

But it is possible I made a mistake.

It is also true that for it to work, one has to change the way one writes code, like Rust does. This is why D requires and @live attribute be added to functions to enable the checking for just those functions, so it doesn't break every program out there. It will enable incremental use of the checking at the user's option.

<comment><USER4> You're probably using a different definition of 100% than any impossibility proof would use.

Consider some code:

\---

a=malloc(1);

needfree=true;

if (hashfn(first_factor(huge_static_rsanum1))&1){needfree=false;free(a);}

if (hashfn(first_factor(huge_static_rsanum2))&1){needfree=false;free(a);}

if(needfree)free(a);

\---

The decision if this has a double free or not depends on the factorizations of two huge difficult to factor constants. It either double-frees or not depending on those constants.

Surely your software cannot decide that...

What you probably mean is something like "100% on real programs rather than contrived cases". Of course, in that case, your definition of 'real programs' is the catch. :P

Sometimes things that seem like they should always work except on contrived junk like the above example actually run into limitations in practice because macros and machine code generation produce ... well ... contrived junk from time to time.

<comment><USER2> > Surely your software cannot decide that...

The D implementation would reject such code. The DFA assumes all control paths are executed. For example,

        if (c) free(p);
        *p = 3;

is rejected as use-after-free.

        if (c) free(p);
        if (!c) *p = 3;

is also rejected as use-after-free. If the DFA is done properly, you will not be able to trick it.

<comment><USER5> Then that doesn't mean "0% of the negatives".

<comment><USER6> No, it means you have false positives. But no false negatives.

<comment><USER5> And that's a "negative" in a practical sense.

An abstract interpretation that outputs Top for all programs is sound but useless. In practice, most sound static analyses for complex problems aren't too far from that.

<comment><USER6> It's not a "negative", it's a disadvantage. "Negative" has a specific meaning that should not be used in this context.

Safe Rust is also in the same boat: it has a lot of false positives that are rejected by the borrow checker even though they would be okay, and yet it's being used just fine. Think of doubly linked lists which are pretty much impossible to implement in safe Rust unless you replace pointers with integer IDs which basically disables borrow checking. Non-lexical lifetimes are an example of downright changing the definition of the language in order to remove some of these false positives.

<comment><USER5> I didn't it that way. I read it as "downside" rather than "false negative", especially because a sound static analysis is trivial and not something to be proud of in the abstract.

"Output Top" is sound for all non-inverted lattices and takes constant time. Woohoo! But it is also useless.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I, at one time, worked on a tool, commercial and external to the compiler, that did this (among other things). Probably the most intellectually challenging job I have ever had. I am happy static analysis makes inroads into mainstream!

Few takeaways from that time: inter procedural matters: if your function reallocated a pointer passed as an argument, you want to treat it as 'free' regarding this argument, and conversely, if your function returns a newly allocated memory, you want to mark it as such, and so on. There is also a trade off between the breadth of the analysis and the human ability to comprehend it, author mentions 110 node path in the article.

The subject of my unfinished PhD thesis and something I hope also picks up is the combination of static and dynamic analysis, used iteratively. If your static analysis flags a suspicious path but does not have the means to figure out if it is true or not, instrument it and leave it to the dynamic analysis to run through it (the idea here that total instrumentation a la valgrind is detrimental to performance so you will get some gain from selective instrumentation). Conversely, dynamic analysis may provide some hints as to where static analysis should be applied at a greater depth and provide automatic annotation of functions with regard to their behaviour and - possibly - invariants, that help with the state explosion.

<comment><USER8> ca 2000 - 2004 I had the luck to work on a massive C/C++code base building base station / telecoms infrastructure. We had several hundred engineers contributing code with all kind of different philosophies (many grey beards who did C/C++ for decades).

Running Flexelint was part of our CI chain and also part of the internal coding standard (e.g. definition of done). There was no other time in my life where I learned so much about secure coding as I did back then. Biggest challenge was agreeing about false positives and we had 1 guy in the team who maintained the official wiki document on when a lint warning needed to go on a whitelist with an agreed description of why. The initial overhead to become _lint-clean_ got a lot of push-back but thanks to management support we got there and you could really see how things stayed at that level even after years.

It felt at times bureaucratic or like yak shaving, but in retrospect linting was what kept the code base at a quality I haven't seen ever again since. It also ensured everyone was on the same page. Taking linting seriously required a small learning curve though and lead to some discussions here or there. These discussions were really valuable since we got to really learn from another too.

When I left and went to another project it felt like a step back where we were chasing the same old bugs due to bad coding practices and it was a major step back in my career as a dev. I miss those days.

Really love that this becomes part of gcc.

<comment><USER9> Kudos for lint-clean, and for high-quality C/C++ programming. One of my own stories of that (coincidentally, from when I worked on dev tools for aerospace/datacomm): [https://news.ycombinator.com/item?id=21158546](https://news.ycombinator.com/item?id=21158546)

</comment></comment></comment><comment><USER10> Oh, that's really nice. Though, as a user one should remember: The approach described here gives up at some point. So it doesn't prove the absence of a bug class (e.g. double free), but it finds some instances. Which is already a very good thing, and hugely non-trivial.

The problem with "not giving up at some point" is the computational complexity: Analyzing big code bases takes half an eternity (days), while using huge amounts of memory (>128GB). And once you enter the "least-defined state", you either throw lots of false positives (which gives the users a hard time) or you need to "give up" (and hence potentially miss bugs).

Disclaimer: I work for a company that builds static analysis tools. I don't see this as competition, though. Our tools are used in industries where "safety-critical" is _really_ important - so the "giving up"-part of the analysis is no option for us, and solely relying only on GCC isn't an option for our customers either ;-)

<comment><USER11> Per Rice's theorem, it's _not_ giving up that's not a option; it's just a question of whether you have false positives or false negatives. (To be fair, for safety-critical code, insisting on only false positives (ie treating anything you give up on as a positive) is a pretty resonable choice.)

<comment><USER4> A tool like this could be sound but incomplete. E.g. return true, false, or idunno.

<comment><USER11> Yes, exactly; "idunno" is the giving-up answer.

</comment></comment></comment></comment><comment><USER12> I have to wonder if Rust is putting pressure on C/++ to have more static analysis (while at the same time blazing trails in what's possible in that space, and what's possible in terms of error message helpfulness). I think it's a great idea to start baking these things into the compiler, even if it will never be 100% free of false-negatives because of the limitations of what the language can express and guarantee. Still seems like a great way to eliminate a lot of common problems, as a default across the ecosystem instead of as an extra step.

<comment><USER13> It's clang, not rust.

And clang's analyzer has different UI concept via web, which is far superior. And for the screen valgrind has a far superior solution. I don't see the advantage of gcc's analyzer yet. Far too verbose. and the most important errors, like wrong optimizer decisions based on their interpretation of UB code are still silenced.

<comment><USER14> I'd love to see a compiler warn me that it's doing something potentially unexpected due to UB considerations.

<comment><USER15> clang has UBSan, which adds runtime checks for detecting various kinds of undefined behaviour: [https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html)

<comment><USER13> That's not helping. I'm talking about wrong decisions, made during compile- time optimizations, like assuming dead code or a value being NULL, and then ripping apart the written code. Without warning.

Or the famous optimized away memset call. Which is a security issue. At least a warning would be in order. Or at least an analyzer warning.

</comment></comment></comment></comment></comment><comment><USER16> Nice, this looks pretty cool! It seems a bit like Clang's static analyzer: [https://clang-analyzer.llvm.org/](https://clang-analyzer.llvm.org/)

</comment><comment><USER17> > As of GCC 10, that option text is now a clickable hyperlink (again, assuming > a sufficiently capable terminal)

Seems like mostly only GNOME Terminal and iTerm2. Here's some that apparently won't work:

\- Konsole

\- Kitty

\- LXDE Terminal

\- MATE Terminal

\- hyper

\- Windows Terminal

\- ConEmu

\- PuTTY

... so it's kind of weird to suggest this is an accepted standard. Especially since some of the discussions in feature requests suggest they will likely not implement it due to security concerns or otherwise.

<comment><USER18> how does on produce such a link in output? (not that i really want this bloat and increased attack surface)

<comment><USER6> Escape sequences. It's similar to the "tell the emulator about the current directory" feature that is used to open new windows on the current directory.

<comment><USER19> Does the CWD feature actually use terminal escape sequences?

I always assumed the emulator accessed the working directory of the child process (as in /proc/$PID/cwd). On my terminal the CWD feature only seems to work for the topmost shell, and symlinks get resolved.

EDIT: Linked bug report mentions OCS7 (presumably an escape sequence), as one of the ways to track CWD.

</comment></comment></comment></comment><comment><USER20> It looks great and useful. I suspect that this only works within a single translation unit and can't work between separate translation units. But maybe it could work together with lto, that would be pretty awesome.

Some of the worst lifetime issues are 3rd party library calls with unclear ownership semantics and static analyzers are just as clueless as you are. The function signature doesn't help you out in this regard (in C). My recent "favorite" is libzip's zip_open_from_source that conditionally takes ownership of its zip_source_t* argument.

[https://libzip.org/documentation/zip_open_from_source.html](https://libzip.org/documentation/zip_open_from_source.html)

[https://libzip.org/documentation/zip_source_free.html](https://libzip.org/documentation/zip_source_free.html)

</comment><comment><USER21> Just a side note that the equivalent solution in LLVM/Clang is Clang Static Analyzer: [https://clang-analyzer.llvm.org](https://clang-analyzer.llvm.org) . But it's an external tool rather than integrating into clang

</comment><comment><USER22> These types of tools go a really long way in improving the reliability and safety of C code.

Hats off to the redhat team for putting in the effort on this. Their blog posts have been really interesting. It's definitely changing my perception of what redhat really does.

<comment><USER23> I've always had a positive impression of redhat, but I was recently blown away with their dedication to upstreaming contributions across different open source projects. I was investigating a new Linux kernel feature that redhat contributed and saw that the same developer opened pull requests that added support for the new kernel feature in three major open source projects. And one of the projects took over a year to accept the changes, but he was persistent in reaching out, making requested changes, etc. It really shows the passion at the company to share their contributions.

<comment><USER24> It doesn't have to be passion - having something upstreamed has a lot of other benefits as well.

</comment></comment></comment><comment><USER25> "using the compiler the code is written in as part of the compile-edit-debug cycle, rather than having static analysis as an extra tool "on the side" (perhaps proprietary)"

Mmmm... and why not have an external tool, part of the GCC family but with a proper API, to allow to use ANY TOOL instead of bloating GCC with one more tool that won't be usable on other compilers and will need specific maintainers, althought this field is already really complex and need a lot of different knowledges ?

For example, it could be based on intermediate code so better than just source-code or machine-code analysis...

<comment><USER25> Just to be more specific: why not use the "UNIX philosophy" with a compiler to compile (translate to Intermediate Representation), an optimizer to optimize, an assembler to produce machine code from IR (with allocation registry) and so on...?

<comment><USER5> Because GCC is explicitly designed to be a tangled mess (as opposed to Clang/LLVM), in part because it makes it harder for groups with different beliefs about FLOSS code to repurpose it.

Its a choice that has caused them to cede a lot of territory to Clang/LLVM.

<comment><USER26> I think the major mistake was FSF refusing the objective c front end from Apple.

<comment><USER27> They also refused Apple's offer to relicense LLVM to the GPL, contribute it to GCC, and assign copyright to FSF.

<comment><USER16> When did Apple offer this?

<comment><USER27> In 2005.

[https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2015-02/msg00594.html)

</comment></comment></comment></comment></comment></comment></comment><comment><USER28> I believe _type sytems /type theory_ is likely going to be the most popular method for _formal verification of programs_ (aka _static analysis_ ). And of course, there's a limit to what you can _prove_ about programs (ref: Rice's theorem).

<comment><USER29> Static analysis is not formal verification.

<comment><USER28> Sure, things like enforcing style guides, etc. can be seen as _lightweight_ formal verification.

<comment><USER30> Yes, but you wrote "formal verification of programs (aka static analysis)". Formal verification is not also known as static analysis.

</comment></comment></comment></comment><comment><USER31> Previously submitted as [https://news.ycombinator.com/item?id=22708586](https://news.ycombinator.com/item?id=22708586)

</comment><comment><USER32> I wonder... Has anyone here tried using gcc with the -fanalizer option? Did it find any bugs that you did not know about?

</comment><comment><USER33> You don't want that option every time since its slower. But I wonder if there would be a smart way to run it occasionally, like an option to -fanalyzer every 10th time or when the size of a source file changes a lot, etc.

<comment><USER16> Perhaps as part of your CI?

</comment></comment><comment><USER34> I'm super happy to see more static tools to prevent or at least find buggy code.

</comment><comment><USER35> How far behind LLVM/Clang is this?

<comment><USER36> Last time I checked - I'm not sure how long ago that is - llvm didn't detect double frees etc statically. There's an annotation framework for locking though, which I hope to play with more.</comment></comment>


Colour printing reaches its ultimate resolution - <AUTHOR> http://www.nature.com/news/colour-printing-reaches-its-ultimate-resolution-1.11159

<comment><USER2> Salient point: _the diffraction limit, sets in when the distance between two objects is equal to half the wavelength of the light used for imaging. The wavelength in the middle of the colour spectrum is about 500 nanometres. That means the pixels in a printed image can't be spaced any closer together than about 250 nanometres without looking smudged. Yang's images pack the pixels at just this distance._

Hence, "ultimate resolution".

</comment><comment><USER3> It's funny they still use the Lenna image for testing. It's from a Playboy centerfold in 1972[1].

[1]<https://secure.wikimedia.org/wikipedia/en/wiki/Lenna>

<comment><USER4> Yeah I was thinking the same thing. Used that image myself for my undergrad thesis project on image compression. Didn't actually know who it was till a while later, it was just an image given to me to use.

This was my favorite part of the story <http://www.cs.cmu.edu/~chuck/lennapg/>

</comment></comment><comment><USER5> Beat that Retina :).... Just kidding... Retina is just fine for our poor human eyes.

But this is incredible nonetheless. Just Enhance!

<comment><USER6> The resolution might not be beneficial for electronic displays, but the this technology can achieve a wider range of colors than any RGB display could possibly achieve. It's probably far less precise with current technology, but directly controlling the wavelength of the reflected light gives you access to more colors than just mixing 3 fixed wavelengths.

</comment></comment><comment><USER7> Could we theoretically control the resonance of these nano-posts electronically, and use this technology as the basis for a next-generation reflective display?

<comment><USER4> Your poor video card... :-(

<comment><USER7> It's only, what, 450 times the density of a Retina MacBook... So you only need, what, a 200,000 times faster card? No sweat.

</comment></comment></comment><comment><USER8> It's 100,000 dpi, not 10k.

<comment><AUTHOR> Thanks. Dumb error on my part.

</comment></comment><comment><USER9> The way the article (I know it's Nature, but still) talks about "highest possible" makes it sound dubious. Surely there is a printing scale below this at a molecular or atomic level (or even at the sub-atomic level). Saying this is the "highest possible" is terrible scientific reporting because we know of smaller scales we just don't necessarily know how to 'print' them yet.

It's an impressive achievement but I don't think it is the "ultimate".

<comment><USER10> From the article:

"Even under the best microscope, optical images have an ultimate resolution limit, and this method hits it. When two objects are too close together, light reflecting off them will diffract, and the two objects blur together. This effect, called the diffraction limit, sets in when the distance between two objects is equal to half the wavelength of the light used for imaging. The wavelength in the middle of the colour spectrum is about 500 nanometres. That means the pixels in a printed image can't be spaced any closer together than about 250 nanometres without looking smudged. Yang's images pack the pixels at just this distance."

</comment></comment><comment><USER11> It's amazing to me that we can manipulate individual particles. Even if I knew how it was done, it'd still be magical.</comment>


Google loses deal to MSFT in its backyard - <AUTHOR> http://www.sfgate.com/cgi-bin/blogs/techchron/detail?entry_id=89202

<comment><USER2> I'll repost here what I commented on the article:

\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--

Down here in Tucson, at the University of Arizona, we've been nothing but plagued with problems using this service. I hope the city of San Francisco has a better experience and receives more support than we have.

I don't remember when the migration to the cloud platform started (the university was/is running their own Exchange install), but the deadline to switch over for all staff was early March. The migration process was afflicted with many problems: it was slow (you hoped it finished overnight), buggy (multiple attempts were necessary), there was often data loss and there were mis-deliveries or message loss for a few days after. That March deadline was postponed more than once and currently, the whole process has been halted leaving us with part of the staff on the cloud system and the other on our IT- managed install.

A month or so ago (probably more), there was a town-hall meeting here with representatives and developers from Microsoft to apologize and to try and resolve some issues in person. The university gave them a two dozen item list of requirements before we proceeded any further with the service. Within the last three to four weeks there have been numerous outages, leaving those already angered here surely even more furious.

If the Microsoft team can't meet our requirements and do it relatively soon, it's very possible that we'll drop this service. (A good chunk of the requirements are for legal compliance).

Meanwhile in my department, we've started the move from a self-hosted Zimbra install to Google Apps for our domain a couple days ago as we can't use the Microsoft solution. Only problems so far are two administrators who use some features in Outlook that we can't replicate with Gmail without shoving a cylinder into a square hole. We might keep the open source version of Zimbra around just for them. What I do love about Google Apps is the ability to script it. I've already written code so that when a given Google Form is submitted, it creates other documents that would've had to have been done by hand, emails people and other things. Over time, this ability to script between Google Apps is going to invaluable for my department.

Anyway, g'luck to the city!

</comment><comment><USER3> No one ever got fired for buying Microsoft software.

<comment><USER4> What about the ex-CEO of the London Stock Exchange with their whole TradElect debacle: [http://blogs.computerworld.com/london_stock_exchange_to_aban...](http://blogs.computerworld.com/london_stock_exchange_to_abandon_failed_windows_platform)

<comment><USER5> It happened on 2008 but the failed platform is Windows Server 2003, Microsoft SQL Server 2000. There is one big problem in the that event called "Update"!

<comment><USER4> I'm not sure I understand you fully - are you suggesting that the main problems with that project would have been solved by simply updating to Windows / SQL Server 2008? I can't believe that would possibly be the case.

<comment><USER5> What I mean is, there is obvious a negligence in the system solution that used in this case, especially for LSE. No system would be working for ever without proper systematical update and tuning. Every system has flaws from time to time. Based on the Server they use, they are at least 5 years behind the time. Why they keep sticking with it? That is the question I have in first place. I am not defending MS. But I don't think LSE off load MS systems, is purely just because it's Microsoft. y

</comment></comment></comment></comment></comment><comment><USER6> It's not really surprising that Google didn't get it given their lack of a significant track record providing enterprise level services compared to IBM and Microsoft. I'll add that the backyard angle probably wouldn't have been mentioned if IBM had been selected over Google even though Armonk is a whole continent away.

<comment><USER7> What's Microsoft's track record here? "We're retiring XP even though everyone is still using it."? "We will only give you security updates on the first Tuesday of the month, even if it's currently the first Wednesday. Enjoy being hacked."?

I find that Microsoft doesn't care much about its users.

(I bought a netbook a year or so ago. It had Windows 7, which I decided to try instead of immediately installing Linux. The first thing I wanted to do was to change the desktop background. The control panel informed me that I needed to upgrade to Windows 7 Somewhat Awesome Edition in order to do that. The cost was $80.

Friendly or not, the box now runs Debian.)

<comment><USER8> You know they launched XP in 2001, right?

and that it'll be supported until 2014?

I think that's actually a remarkably good track record of supporting an operating system (for comparison, Debian EOL'd 2.2 in 2003)

I also think Microsoft cares entirely too much about it's users (to the detriment of advancing the platform for fear of incompatibility).

Putting Debian on that Netbook was a smart move though, Windows 7 Starter Edition is an embarassment (it's very close to being cripple-ware), and while all I hear from people who use Netbooks is that "they perform just fine for surfing the web and emailing", I didn't find that to be the case with Windows 7 installed (but it really does run fine with Linux).

<comment><USER9> At some time microsoft might have to realise that creating gimped editions of windows makes people assume windows is gimped.

</comment></comment></comment></comment><comment><USER10> it seems the value here isn't a meager 1M/year, it is the bragging rights. Google boys sound like children : "We're disappointed we didn't have an opportunity to compete for San Francisco's business". Welcome to the big boys world. That was the opportunity to compete.

<comment><USER11> Exactly. It seems pathetic to me that Google would sue over something like this.

</comment></comment><comment><USER12> What? "The city will pay the Redmond, Wash. software company a little more than $1 million per year for the new product."

But surely they could use Hotmail or something right? That wouldn't cost $1 million a year?

I'm missing something.

<comment><USER13> I would assume that the City(/County) of San Francisco IT Department also gets access to and control of the backend, in a similar manner as if they were hosting it themselves. This would include things like privacy policies, security and account recovery, spam filter, attachment policies/malware scrubbing, recovery/removal of email when an employee is terminated, usage logs, and some way of obtaining an employee's email in the event of a lawsuit or disciplinary action. Optional possibilities include stronger guarantees about the provider's (in)ability to access the emails, and filtering tools to alert about suspicious (corruption, child porn) or non-work-related (hate speech, regular porn) email content.</comment></comment>


2018 IEEE Medal of Honor Goes to GPS Pioneer, Bradford W. Parkinson - <AUTHOR> http://theinstitute.ieee.org/resources/ieee-news/ieee-medal-of-honor-goes-to-gps-pioneer <comment><USER2> Note that a homemade GPS receiver is not beyond the skilled hobbyist (although you aren't going to reach the miniaturisation of commercial products): [https://news.ycombinator.com/item?id=13246682](https://news.ycombinator.com/item?id=13246682)

<comment><USER3> Woah, thanks for the resource. With technology I feel as if it's super easy or convenient to get stuck in the more simplified aspect of the maker / hobbiest community and feel as if your cheating yourself by using premade breakouts and boards and so on. I'm not saying it's bad by no means at all, they are great tools. I just feel in my personal experience, it took me a while to realize how to dig deeper into subjects like this. Instead of just buying GPS recivers form some company like adafruit, It would be nice to have more resources like this that go deep into the concepts and push you into new unfamiliar "territory" to learn new things. That's how I felt when I finally understand microcontrollers we're more than just the Arduino board and IED; that most microcontrollers are essentially the same platform just different implementations each with their own tools and established workflows. I would love to see more resources that kinda break down this barrier / mindset for beginners and allow them to understand and approach any new technology and explore it as advanced as they like.

</comment></comment><comment><USER4> GPS was one of the very first widespread applications of digital signal processing. The more you learn about its inner workings, the more impressed you'll probably be that they came up with it in the 1970s. Parkinson is definitely a worthy recipient of the medal.

As a technical feat, it's somewhat reminiscent of the compatible NTSC color TV standard that emerged in the early 1950s. These people did stuff they simply should not have been able to do with the technology of the day.

</comment><comment><AUTHOR> The Proceedings of the IEEE published a special issue on GPS in 1999 [1]. It's mostly paywalled but the "Scanning the Issue" article [2] is not and gives a pretty good overall history of GPS.

[1] [http://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=15872](http://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=15872)

[2] (PDF) [ [http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=736338](http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=736338) ]</comment>