Google, Industry Try to Water Down First U.S. Data-Privacy Law - <AUTHOR> https://www.bloomberg.com/news/articles/2019-09-04/google-industry-try-to-water-down-first-u-s-data-privacy-law <comment><USER2> CCPA is already a mediocre privacy law compared to GDPR. It's basically DNT, an opt-out system. But at least it's an improvement from the status quo.

Anyone that competes with the ad-tech giants should be putting their lobbying efforts against their attempt to weaken it.

<comment><USER3> Or as a nation, maybe focus on weakening the effect of lobbying and regulatory capture. The threat posed by this endemic corruption us real.

<comment><USER4> Would this include weakening the effect of lobbying for privacy protection or just things you happen to disagree with?

<comment><USER3> Shouldn't be lobbying. Should be _electing_ representatives based on a _platform_ like a _democracy._

The Gerrymander is lethal forcing the lobbying which money then wins. That's a terrible way to govern.</comment></comment></comment></comment>


Terrifying time loop: The man trapped in constant deja vu - <AUTHOR> http://www.bbc.com/news/uk-30927102 <comment><USER2> "Brain scans appeared normal, suggesting the cause was psychological rather than neurological."

The proper functioning of the brain is contingent on far more than its macroscopic structure.

Calling this disorder "psychological" will just lead to its sufferers dismissed as crazy. Anxiety causes deja-vu? Obviously if that was the case it would be much more prevalent. Anxiety is normal, deja-vu isn't.

<comment><USER3> Society still has a long way to go when it comes to blaming people for psychology but not physiology. In truth there is no difference; everything the brain does is physical at its roots. Even if you suppose a particular psychological phenomenon is purely emergent from self-reinforcing electrical patterns (a "feedback loop") in an otherwise unmodified brain, those patterns still exist in a physical form. Whether a psychological problem is caused by bad signals or bad substrate should be irrelevant to the notions of blame or stigma.

</comment></comment><comment><USER4> I was surprised that only two thirds of people ever experience deva vu. I experience it a couple of times a week and usually say something when I do if someone is around. Nobody ever mentioned that they didn't know what it felt like. Perhaps it's time for a poll.

<comment><USER5> I once received a minor concussion in an automobile accident. I was hospitalized overnight for observation and then released. A couple days or so later, I opened my mailbox and there was a pamphlet from the hospital telling me what to expect as a victim of a minor brain injury. One of the things it said was that I might experience feelings of déjà vu.

For some reason, the hospital actually mailed me two copies of that pamphlet, a day apart, and so when I opened the mailbox the next day, I did indeed get a feeling of déjà vu!

</comment></comment><comment><USER6> Or has he been traveling in different time lines?</comment>


Infographic: E-invoicing, a Beginner's Guide - <AUTHOR> https://www.zervant.com/en/news/infographic-beginners-guide-e-invoicing/ <comment><USER2> Mexican companies use e-invoicing. It involves XML and a Government PKI.</comment>


A Deluge of Data Shapes a New Era in Computing  - <AUTHOR> http://www.nytimes.com/2009/12/15/science/15books.html

<comment><USER2> I realize that this "Fourth Era" is mainly about sharing information, but I can't help enjoying the fact that I've started identifying trends before the media.

 _NY Times, 12/14/09_

"Dr. Gray called the shift a "fourth paradigm."...He explained this paradigm as an evolving era in which an "exaflood" of observational data was threatening to overwhelm scientists. The only way to cope with it, he argued, was a new generation of scientific computing tools to manage, visualize and analyze the data flood...'The advent of inexpensive high-bandwidth sensors is transforming every field from data-poor to data-rich,' -Edward Lazowska"

 _Me, 2/19/09_

"The most significant shift brought about by modern technology: the transition from improving data interpolation to managing data complexity."

<http://twitter.com/harpastum/status/1228981672>

<comment><USER3> The article also states that Dr. Jim Gray disappeared in January 2007. Well before either of you pointed to this thought trend.

</comment></comment><comment><USER4> this is a free download by the looks of things - [http://research.microsoft.com/en- us/collaboration/fourthpara...](http://research.microsoft.com/en- us/collaboration/fourthparadigm/4th_paradigm_book_complete_lr.pdf)

(can't see the link in the article, found it on bing)</comment>


Nobody Wants to Let Google Win the War for Maps All Over Again - <AUTHOR> https://www.bloomberg.com/news/features/2018-02-21/nobody-wants-to-let-google-win-the-war-for-maps-all-over-again <comment><USER3> _On any given day, there could be a half dozen autonomous cars mapping the same street corner in Silicon Valley._

It seems kind of tautological that they're using autonomous vehicles to create maps because they need maps for autonomous vehicles.

Yeah, I know, specialty equipment... but still.

Actually, what seems really odd is that new maps are that big of a deal. The cars need maps for normal navigation, sure, but you wouldn't expect that they would rely on anything too precise for safety reasons alone. The cars need to be able to adapt to possibly changing conditions and can't misbehave (at all) just because a street closed, cones are on the street, etc.

 _Unlike conventional digital maps, self-driving maps require almost-constant updates. The slightest variation on the road—a construction zone that pops up overnight, or a bit of debris—could stop a driverless car in its tracks. "It's the freak thing that happens that's going to make autonomous not work," said McNally, the analyst._

I would call an autonomous vehicle that couldn't handle some debris "fundamentally broken".

Seriously, this mapping thing smells like a boondoggle.

<comment><USER4> As someone who's old enough to remember road trips armed with nothing more than a Rand McNally road atlas for navigation (really not that long ago - <USER2> I do continue to take one along nowadays as a backup), I'll never trust an autonomous vehicle that needs to be fed a constant stream of up-to-the-minute mapping data in order to make decisions.

<comment><USER5> I am with you here. Autonomous vehicle may need GPS for navigation, but it should be able to drive down the roads without it.

<comment><USER4> GPS is a nice-to-have, but wouldn't be necessary for a _true_ AI, given an autonomous car can have more and better on-board sensors than your basic-issue human (we don't have eyes in the backs of our heads, or LIDAR).

<comment><USER6> I don't see how GPS is a "nice to have". How does an entity know to get from A to B without some sort of navigation assistance?

Unless your "true-AI" stops to ask locals for directions, its going to need some sort of GPS. Can't say I'm looking forward to arguing with my car about how it should have taken a left on Main St, instead of a right.

<comment> white-flame > _I don 't see how GPS is a "nice to have". How does an entity know to get > from A to B without some sort of navigation assistance?_

GPS ≠ navigation assistance. You can infer where you are on a conceptual map from reading your surroundings, especially signage. Getting a latitude/longitude estimate from the GPS network and trying to match it with an overly precise and possibly out of date map isn't the only way to infer your current position. It's only useful when you don't already know where you are, and computers are good at precisely remembering the path they took from the last known observed reference.

Plus, self-driving cars need to be aware of their surroundings, and not solely rely on blindly following a hyper-precise map as a prescription of the road details ahead. Having the local observations become the canonical precision knowledge, and keeping the map as conceptual knowledge of how roads connect places, implicitly gains a lot of this sort of benefit.

</comment></comment></comment></comment></comment></comment><comment><USER7> Governments should open all their mapping data, as some have already done. Probably in quite many countries, there are also entities collecting more detailed data that is used for the maintenance of the roads. All this should be opened up as well. I believe just giving out the data freely will benefit these countries more than trying to extract some small profits by selling it.

<comment><USER8> The US does have open mapping data:

[https://www.census.gov/geo/maps- data/data/tiger.html](https://www.census.gov/geo/maps-data/data/tiger.html)

While useful for taking the US Census, the TIGER data isn't really suitable for most navigation tasks. At best it can be used as a base layer to build a geospatial dataset.

OpenStreetMap did this about a decade ago:

[https://wiki.openstreetmap.org/wiki/TIGER](https://wiki.openstreetmap.org/wiki/TIGER)

That being said, the current administration is looking to cut TIGER funding, not increase it.

For the foreseeable future getting mapping data suitable for navigation in the US is going to be the job of private for-profit companies.

<comment><USER9> I've read that a lot of the limitations/errors associated with mapping data once you get away from fully maintained paved roads stems from limitations in TIGER data. You get into very secondary roads and there's not much that's really authoritative to distinguish all the gradations between unpaved but well-graded and maintained and in appropriate weather you can drive it with high-clearance 4WD if you know what you're doing.

<comment><USER10> For a navigation system those roads are mostly a "last mile" problem. They generally aren't as direct or connected as main highways, so graph based navigation naturally ignores them. Main highways are also reasonably well marked in the tiger data, so the lack of differentiation for the lower priority road type doesn't impact a system that prioritizes larger highways (a pretty reasonable heuristic).

The lack of differentiation is a big problem if you want to pick which way to go when driving around though.

<comment><USER9> I mostly agree with all that. Although in some areas like the rural US West, very secondary roads are pretty common. This becomes a bigger problem as more and more people depend on computers to tell them where to go without thinking much about it.

Of course, this isn't really a new problem. People have died following roads on paper maps that weren't suitable for, say, winter travel.

</comment></comment></comment></comment></comment><comment><USER11> I found it mildly amusing to see an article about concerns over data monopoly on a Bloomberg website.

<comment><USER12> A good example of new vs old generations of data monopolies.

But, I think we need to stop thinking of the tech monopoly problem in principled, abstract terms. That's hard because it's how law works, and how our moral instincts genrally work.

Bloomberg's data monopoly does/did pay well, give them a nice moat and such. But, it couldn't be leveraged in the same way modern data monopolies can. It didn't permeate into new areas every day. It didn't have all these consequences (eg killing privacy) of scale. They din't lock up a dominant position in categories (eg smartphones, cars) that wouldn't exist for a decade or three.

Bloomberg's market position is more conventional. Being a monopoly gives them pricing power, and nicer margins. That is tame by today's standards.

Today's monopolies can't even be reasoned about in the language of antitrust. they don't act as trusts, generally. Market share is obscure. How do you determine the effects of reduced price competition for maps? It's free. The whole logic of econometrically calculating the harm to a consumer is irelevant.

Yet, the idea that Google owns your phone, browser, search engine, drives your car and controls the ads you see 100 times a day.... That's still a worrying thoguht. Economically, it's easy to see (eg search->maps->phones->cars) how one monopoly leads to another and they strengthen eachother.

</comment></comment><comment><USER12> It's worth stepping back and considering the landscape of self driving.

First, the fact that it's within reach is amazing. It's one of those wierd cases where regular people instinctively put it in the "mars colony" category of futurism while sober insiders had to bring us back to a more optimistic view.

Now, there is a lot to worry about in the current landscape of giant tech companies, and this article is another example. But, there are things to awe at too.

Having self driving within reach... it's a result of massive effort. Amazing technology, and complexes of technology it is built on. This includes the manufacturing technology producing the cheap components.

All of this cam from (1) fairly blue sky intiatives (2) with extremely long and uncertain payback periods and (3) tremendous strategic money-where-your- mouths are foresight. When I realized what G where doing with street-view, I thought it was crazy. More a sign of overexuberance and too much money. Turns out, it was en route to maps dominance which was en route to transportation dominance (and phone dominance).

IDK if this is unprecedented, but it's fairly unrivaled in today's world. We don't see IBM or Intel, Toyota or McKesson thinking this big or this far. Definitely not banks or money businesses. Not cities or countries, generally.

I mean an equivalent in health/medicine would be taking the ideas from TED talks. A personalized health revolution. Nanobots or curing death like Aubrey de Grey keeps talking about.

I'm already hearing the "regulations" explanation. Medicine is restrained by surgeon generals, parliaments and national health setups. I don't think that argument holds at this scale. Self driving cars require re-rwriting our transport rules, and probably massive the physical infrastruucture. The technology will have sucked up billions decades before it makes a penny. The guiding idea is that "if we have a true self driving car, the other stuff will sort." Same applies to medicine. If it's better enough, it'll take.

It's hard to peer back and determine of something was inevitable or not, but I suspect self driving wasn't. It could have happened (could will happen? tenses are hard) decades later, if not for the fairly outrageous decisions of a small number of people.

<comment><USER13> I can't help but think that self-driving cars is the penultimate American thing. They aren't effective or needed in properly built cities (think London) and they won't make THAT much good to the society eliminating taxi drivers. If we dig into the vision of what people want to achieve with them, it's mostly manifestations of American problems (poverty, systemic racism, homelessness, segregation, insular indifference to others' problems, crazy urban sprawl) which people don't want to confront directly, instead opting for "let's spend HUMONGOUS amount of money to keep everything more or less the same".

There is a solution for most problems people try to solve with self-driving cars: more cycling, better public transport, denser cities. Look at London: car use is _heavily_ discouraged (20mph speed limit, congestion charge, expensive parking) and still the whole thing works like a charm.

<comment><USER14> You're missing many advantages of self-driving.

1\. Better safety - I find it very likely that self-driving cars will reduce the amount of traffic incidents. Algorithm will likely act more stable than human driver.

2\. Better fuel consumption - again, more optimised driving patterns.

3\. Better convenience - you can drink and drive(well, car will drive), you can sleep and drive, you can work and drive.

4\. Better transport - self-driving trucks don't need breaks, are not likely to be overworked and will likely not block motoways taking over another truck going 2 km/h slower (yey European highways!).

5\. Better vehicle utilization - we will be able to reduce total number of vehicles and all the congestion, environment pollution and money that comes with it.

While solution you mentioned really improve quality of life in cities, they do not ultimately solve issues inherent to car transport, where car transport is actually preferred/best solution.

<comment><USER15> Good public transport systems provide even better benefits for points 1 (accidents involving subways are probably still going to be rarer than for self-driving cars), 2 (you don't even need fossil fuels for subways / trams), and 5. Arguably you don't lose much on point 3 either, except that you may have to walk a few minutes to/from the nearest stop (which is probably good from a public health standpoint anyway).

I agree that this only applies in cities though, and public transport may not help much in rural areas.

</comment></comment></comment></comment><comment><USER16> We can have a hundred millions of self-driving cars dumping the sub-centimeter LIDAR data of surrounding to OpenStreetMap at any given time.

Come to think of it, I see zero reasons why you won't own measurements of your self-driving car, and choose to upload them. Yes corporations may try to pass it as _their_ intellectual property, we should fend them so hard they roll back into XIX century.

<comment><USER17> Cars are going to lock down their LIDAR systems, so the best one can hope for is that the companies that control that data are also friends of OpenStreetMap and will pass the data on. I'm not optimistic that the individual owners of cars will be able to read from the LIDAR bus without – at best – voiding their car's warranty.

<comment><USER16> > I'm not optimistic that the individual owners of cars will be able to read > from the LIDAR bus without – at best – voiding their car's warranty

That's one consumer protection law away.

And no, I don't believe in "being friends with OSM". I believe in owning your data.

<comment><USER18> > _That 's one consumer protection law away_

"If you buy the car you own the data stream, and must be able to keep it private; read, modify and re-distribute it; and sell it" is a good idea.

> _I believe in owning your data_

Gentle political note. This sounds more radical than it is or than your argument needs it to be. The first suggestion stands well enough on its own.

</comment></comment></comment></comment><comment><USER19> The thought provoking contrast presented in the article is camera derived sparse maps with lane lines, road edges, signs etc. vs lidar derived dense detailed models of the whole environment. Any thoughts around why the former is not enough? If it is enough it would certainly be preferable, since smaller in size and likely easier to maintain.

<comment><USER20> My guess is that the more detailed, dense map allows the car to precisely localize itself by using its view of the world to match against the map, yielding a location more precise than GPS (and for when gps doesn't work); eg ICP point cloud matching/alignment/registration. More sparse maps would give you a less confident match, and you'd have to convert what the car is seeing to the sparse form.

</comment></comment><comment><USER21> Bumped into this comparison of Google Maps and Apple Maps and it is excellent.

[https://www.justinobeirne.com/google-maps- moat/](https://www.justinobeirne.com/google-maps-moat/)

<comment><USER22> Motivated by a road that was on one map but not the other, I built this: [http://comparemaps.drona.ro/](http://comparemaps.drona.ro/)

</comment></comment><comment><USER23> I've been wondering when Google (or someone else) is going to do the same thing for pedestrian routes and locations. There are plenty of highly- trafficked places where GPS is unavailable or not precise enough, and mapping WiFi stations evidently isn't enough to fill the gap. Of course the problem could, and should, be attacked by ground-based radio systems * , but 100% coverage by such systems certainly won't arrive anytime soon, and it wouldn't be like the tech companies to wait for it. You _would_ have to take your phone out to get a location fix ... but that likely won't be the case whenever AR glasses really start to appear in public, and the techcos will also be happy to stick cameras on your clothes and luggage if they and you can get away with it.

* Come on Transport for London, it's high time to show some leadership here.

<comment><AUTHOR> Do you primarily mean high density walking areas, or essentially everywhere that you can freely walk as a pedestrian?

<comment><USER24> In Europe in particular (and I'm sure elsewhere) a lot of pedestrian areas are very narrow. The lack of precision is a big problem. I have not had same number of issues in the US presumably because so many pedestrian areas were built with cars in mind (at least at first).

</comment></comment></comment><comment><USER25> No pois, no maps.

Google is unfortunately still the winner here.

</comment><comment><USER26> well all my POIs are in gmaps and I have the app installed everywhere. No idea why I wouldn't want them to stay at the top. Push them please, so they improve their software, but winning they should.

</comment><comment><USER27> Nobody wants to let Google win again.

I do. Google greatly enhanced my life, esp. Driving and directions.

I was an adult BI and speak from experience

</comment><comment><USER28> Just last week Google maps directed we take a turn going down the wrong way of a one way street that was already clearly marked as one-way on the map- yeah, I'm not too worried about even Google's dominance in this area.

Also, Apple maps in my area has been quietly, but steadily improving. Still not as many POIs as Google, but nicer interface and turn-by-turn (IMO).

<comment><USER29> Where did the one way street thing happen exactly? I find it very interesting that it can do that, it implies a disconnect between the rendered data and the data used for routing.

<comment><USER30> It could also be a simple routing bug. You cannot know.

<comment><USER31> It's also very frequently people being in 'walking' mode without realizing it

<comment><USER32> I'm surprised the accelerometer doesn't question its input when I appear to be doing 75mph on foot.

</comment></comment></comment></comment></comment><comment><USER33> Well, when this happened than really everyone no need to worried about to lose their home in the world.

</comment><comment><USER34> It's not about mapping. It's about collecting data and training their machine learning algorithms.</comment>


Virgin Mobile leaves six million subscriber accounts wide open - <AUTHOR> http://kev.inburke.com/kevin/open-season-on-virgin-mobile-customer-data/? <comment><USER2> I simply don't understand how brute-forcing can remain a problem today. It seems like such a trivial implementation detail to freeze account access after a certain number of incorrect attempts – and yet most password security guidelines still warn against what they consider brute-forceable passwords.

Could a security professional explain in non-domain-expert terms why this practice isn't simply adopted everywhere?

<comment><USER3> I think that one of the reasons it is not implemented is because it is a problem that isn't purely technical in nature. So you want to lock people's accounts to prevent brute forcing? There are still a bunch of decisions (both business and technical) before you can move forward.

      1. User support.  How willing are you to deal with increased need for customer support when they start locking themselves out of their accounts after a dozen failed attempts?
      2. How do you keep track of the number of failed attempts?  Another column in your database?  I don't run any big websites, but it seems to me that if an attacker can cause a write to your DB for every POST he can throw at you, your website performance will suffer.
      3. If it takes a dozen (or a hundred (or a thousand)) failed logins to lock an account, it would be trivial for an attacker to lock users out of their accounts, DOSing your site in a different way.
      4. Ok, so we block IP addresses instead of accounts?  Now we have to deal with issues of shared or easily changed IP addresses (or botnets that can afford to have hundreds of thousands of IPs blacklisted from a site and still keep brute forcing).

A lot of these issues are surmountable, but not until you do some basic threat modeling to decide what you want to protect against.

Maybe you decide to focus on preventing from attackers coming from one IP from slamming your site, so you keep an in-memory table of number of recent failed logins and perform temporary bans. It wont protect against botnets, but hopefully you are paying attention to what is happening on your site, and can make changes if that becomes an issue.

> yet most password security guidelines still warn against what they consider > brute-forceable passwords.

Your password should be hard to brute force, regardless of whether or not the site protects itself from brute forced logins. The other big danger is that someone hacks the site and gets a dump of password hashes. Then, it doesn't matter what anti-brute force techniques the website is using if the attacker can perform an offline brute force attack against your hashes.

<comment><USER4> Instead of freezing the account until it's unlocked by customer service, why not just lock it for increasingly longer periods of time? 2 seconds after the third failed attempt, 3 after the fourth, 5 after the sixth, 10 after the seventh, etc.

Not too inconvenient for legitimate users trying to remember their passwords, but it surely makes bruteforcing impossible (if by the 1,000th attempt they're having to wait an hour between attempts).

<comment><USER5> That would still enable someone to DOS your website. A better way IMHO is to limit the maximum timeout - say 1 or 10 seconds. This, compared with even simple passwords that have slighlty more than 1 000 000 combinations, would mean hackers need days or weeks to crack passwords, in this time you should be able to notice the attack.

<comment><USER6> You would only be able to DOS a individual accounts, rather than the whole website. Do it by IP address, sure at some point someone with a huge enough botnet will be able to crack an account. But is it likely that someone will use their entire botnet to crack a single user's password on some consumer service?

<comment><USER7> Depends on what you can do on that site. Around my part of the world:

* Phone/number that is redirecting a call pays for the redirected leg of the call

This leads to a lot of creative hacking on trying to program a phone to redirect calls to expensive service numbers or foreign numbers. And many operators lets you administer call redirection on their website

</comment></comment></comment></comment></comment></comment><comment><USER8> My wife has Virgin Mobile and is happy with it, and I am (or was?) planning to switch in a couple of months, once my AT&T contract runs out, so I really hope they fix this pronto.

I think it's especially important that Virgin Mobile resolves this, since the market share is basically theirs for the taking.

Their basic $35/mo. plan, which includes text and data, is great for my needs, so I called AT&T and told them I was thinking of switching, but because I'd been an AT&T customer for years, I was giving them a chance to match that kind of offer. Not only did the rep basically say, "Nope, we can't come close to matching that," but -- more surprisingly -- he had no script to say, "Here's why you shouldn't switch to Virgin." Which says to me that AT&T isn't taking Virgin seriously yet.

If Virgin Mobile can get its account security act together, I think it can make pretty good in-roads against the bigger carriers.

<comment><USER9> the only problem i ever had with VM (recently switched to StraightTalk) was the phone selection. phones are getting better but you can't buy a different phone and just use it on VM. at least sticking with sim card phones you have other options.

<comment><USER10> This is not really a problem. Just pay a few bucks to someone off of Craigs List (or spend a little time learning to do it yourself) to clone one of their cheaper phones to one you buy (get one with a bad ESN cause they are cheaper) off of eBay or CL. It is really pretty easy.

</comment></comment></comment><comment><USER11> "Wide open" is factually incorrect if they still require you to guess the pin.

Why didn't the author also mention that since there's no e-mail address associated with new prepaid accounts you can specify any e-mail you want the first time you try to sign into the website? Seems like an easier exploit to me.

Their network ACLs and support web apps are also swiss cheese. I wouldn't really rely on a VM account for security.

<comment><USER12> That doesn't make me feel great about two-factor authentication through my VM phone.

<comment><USER11> Good! This is just a better example of why SMS and non-encrypted-and- authenticated connections for two factor are silly. If you use an HTTPS web app for two-factor (or a pin-generating app, no network required) you should be reasonably secure - unless some Android malware is in your phone.

</comment></comment></comment><comment><USER13> In case you're curious, the limitations around runs and sequences reduces the keyspace to 993240 possibilities - that's assuming sequences both upwards and downwards.

Be grateful they haven't reduced it further. If runs and sequences of length 3 were also banned, only 904728 would remain.

<comment><USER14> "I have altered our deal. Pray I do not alter it further."

</comment></comment><comment><USER15> It's true. I just wrote some NodeJS code iterating pins 000000 through 999999 and it got into my account. (If anyone wants the code...)

<comment><USER16> I'd like to compare it (speed) to my version using python+mechanize..

<comment><USER17> I'm intrigued as to why you think there would be a speed difference. If your language of choice can't iterate around a loop faster than your network card can push out a couple of network packets then I think you have some issues.

<comment><USER18> Factor in RTT/latency and concurrency. There's no reason multiple requests can't be in-flight at once, up to the point where you're overloading your uplink or the server.

</comment></comment></comment></comment><comment><USER19> I just sent this link to my partner who is a Virgin Mobile customer.

She couldn't open the page on her mobile browser. She said it said something like "Restricted by Virgin."

Seems a bit strange. I will ask her to try again later.

EDIT: Kevin is actually talking about Virgin Mobile in the US. His domain, however, is inaccessible to my partner who uses Virgin Mobile UK ("adult restriction").

<comment><USER20> Wait. My website is blocked/censored in the UK? Can you email me with details?

<comment><USER21> It works for me on a non-Virgin IP. It may be Virgin Media (home broadband), or Virgin Mobile (mobile internet) that blocks it.

<comment><USER20> On what grounds? Can you provide more detail? Would rather not have the site be blocked if I can help it..

<comment><USER21> Sorry, I meant to point out that there are two possible ISPs that the user might have trouble accessing it on. To my knowledge, no UK ISP blocks content by an automatic or specific filter, aside from the Pirate Bay of course.

</comment></comment></comment></comment></comment><comment><USER11> If you all think this is a horrible breach of security, keep in mind that voicemail systems usually let you keep guessing forever. (And usually let you in with a spoofed caller-id number, but that's slightly less trivial)

If you want to try to break into your voicemail (or speed up guessing of PINs for the website), use one of the 20 most commonly-used PINs on either of these pages. One list even has 6-digit pins. Happy hacking!

<http://www.datagenetics.com/blog/september32012/index.html> [http://wiki.docdroppers.org/index.php?title=Breaking_into_ce...](http://wiki.docdroppers.org/index.php?title=Breaking_into_cellphone_VMBs) <http://amitay.us/blog/files/most_common_iphone_passcodes.php> [https://docs.google.com/viewer?a=v&q=cache:w8orMsrdbScJ:...](https://docs.google.com/viewer?a=v&q=cache:w8orMsrdbScJ:www.cl.cam.ac.uk/~jcb82/doc/BPA12-FC- banking_pin_security.pdf+&hl=en&gl=us&pid=bl&srcid=ADGEESjyqDEAMqEBpa0gkXXjOrs9frLLx1yWb_dIEXTcPkBdNqlIl10WSbGARExJDMP5ot9AMoJx7IAn-T8xHldp4AEBu3mBIhyJ4xPSfnsOvm0k3Ueb6bHSVQuLgI7r3z0w15MXMj0l&sig=AHIEtbTcQN9Ha8f3WaDtq4SOuLG9Qi9M5g&pli=1)

</comment><comment><USER22> The login page on Virgin Mobile's USA site is totally non-functional right now. I wonder if all the curious people trying to recreate this brute force hack DDoSed the site.

While I'm a strong supporter of full disclosure, I'm iffy about this "hack" because hitting any web site in an automated fashion approximately a million times in one day is firmly in the very dark shade of gray areas.

</comment><comment><USER23> I'm a Virgin Media customer in the UK. My home internet connection stopped working recently and (long story short) in dealing with trying to fix it, it turns out my main login password for their service can be accessed by support staff. This means the password is being stored in plaintext.

I was contacted to ask about how customer services dealt with me and I stated how unbelievably insecure their (my!) data must be. This was the straw that finally broke my password insecurity camel's back - I now use KeePass to generate all my passwords.

I wonder if _any_ big telcos actually treat customer data appropriately?

<comment><USER6> I use Virgin Media, but I'm not sure what you mean by 'password for the service'.

AFAIK you don't need a password to access the internet , just plug the cable modem in.

There is a password that you create which is used to call customer support, but AFAIK it's only used by the callcenter.

It's also worth noting that Virgin Media is nothing to do with virgin mobile, Virgin Media is still operated by the old telewest/NTL but they bought the Virgin branding.

<comment><USER23> I know the branding can act as a mask over different companies e.g. Sony VAIOs [http://www.pcpro.co.uk/news/357289/sony-announces- division-t...](http://www.pcpro.co.uk/news/357289/sony-announces-division-two- vaio-laptops). As you point out we're going from US mobile to UK broadband. But the point of the brand is to give consumers confidence in a consistent level of service and I thought it vaguely relevant to mention my experience.

Yes, by password for their service I mean the password chosen for my @virginmedia.com login where I can access/pay bills, look at phone calls made etc. I imagine if I had a TV package with them there would be other things I could do via their website.

I was pretty shocked that anyone - staff or otherwise - had access to my password.

</comment></comment></comment><comment><USER24> The title and article are hyperbole. I tried it myself, as did a few other people who commented on the article.

After a few attempts you can no longer use a PIN and must call in or use your security question.

<comment><USER20> Not sure what you tried, but they haven't fixed the problem. I just tried 100 different random 6-digit passwords using a python script over a one minute interval, then logged in to my account just fine using the web interface.

I'd post my code, but that would let any idiot figure out how to replicate this attack. Try including a user agent, and not using the same cookies every time.

<comment><USER25> It appears they are still clueless about how the internet works. [https://twitter.com/VirginMobileAus/status/24795811996620800...](https://twitter.com/VirginMobileAus/status/247958119966208000)

<comment><USER26> This is perhaps the best false promise corp-speak I've heard in relation to an exploit:

> any word on supporting longer passwords eventually?

> Nothing as of right now but it's something we may definitely look into in > the future. Thanks, Shane.

"May definitely"?

</comment></comment></comment></comment><comment><USER27> So unaccountable nation-states have access to anything you say or do on a network, and random strangers have access to your account and billing details. Is there anything left standing here?

<comment><USER28> In those terms, it is the same as it ever was, just with different tech.

</comment></comment><comment><USER29> Wow the comments on the site there make this even more concerning.. rules on that limited set of numbers and even recommending to users that they should use their birthday as their PIN...

<comment><USER30> I've been with someone when they signed up for a virgin mobile account (instore), and the rep specifically asked for a new password - and did not prompt with using the birthdate for example. That was in august last year. That said, I distinctly remember the process being somehow a bit wrong - e.g. having to handwrite the 6 digit PIN on some signup form. Once you've got the initial PIN, you can however change it on the website.

</comment></comment><comment><USER31> I noticed this when I signed up with them, but don't consider it the end of the world -- when I switched my number from AT&T, is was obvious anybody who had a little of my personal information and phone number could have done the same thing.

However, I'm not sure it's the apocalypse on wheels. Plausible deniability is nice. Sometimes.

I find it more irritating how nearly everything on my phone is tied to a Google account.

</comment><comment><USER32> Relevant here is that Virgin Mobile USA is a completely different business to Virgin UK. Virgin USA is an MVNO on the Sprint network. As a joint venture between Virgin and Sprint, I wonder what actual involvement Virgin has in this area. Ensuring standards and oversight certainly isn't part if that involvement.

<comment><USER33> Sprint bought Virgin out a few years ago. They license the branding.

</comment></comment><comment><USER19> Many of the Virgin Group's web properties have weak password requirements.

Virgin Atlantic requires your password to be between 5-8 characters (including symbols) and Virgin Trains allows a maximum of 10 alphanumeric characters (no symbols).

Both sites allow you to store sensitive data like passport numbers, phone numbers, addresses, etc.

</comment><comment><USER34> I wonder if the form is susceptible to timing attacks. That could make identifying a user's PIN even faster.

</comment><comment><USER35> >> I verified this by writing a script to "brute force" the PIN number of my own account.

They need to turn on ip rate limiting to stop brute force attacks or make them impractical. At least that's my understanding of the purpose of rate limiting.

</comment><comment><USER36> Are the Virgin Mobile gateways for other countries affected, or is this US- only? AFAICT online access to my Canadian account is still using a run-of-the- mill user-defined password.

</comment><comment><USER37> Virgin Mobile outsources everything to IBM. It'll be months before the paperwork and red tape get done to allow them a fix.

<comment><USER30> If/when the media coverage ramps up, this will be done quickly, believe me. Not to would be corporate suicide.

</comment></comment><comment><USER38> Amazing that a company of this stature and size doesn't have proper security in place. They deserved to get fired.

</comment><comment><USER39> I think some people are about to lose their virginity.

<comment><USER6> What?

I know I shouldn't reply to a troll, but I'm curious about this one.

<comment><USER40> I think he intended it to mean, "some people are about to be fucked," as in "fucked over."

<comment><USER41> Or refers to Richard Branson's Book "Losing my virginity": [http://www.amazon.com/Losing-My-Virginity-Survived- Business/...](http://www.amazon.com/Losing-My-Virginity-Survived- Business/dp/0307720748)

</comment></comment></comment></comment><comment><USER42> You can brute-force everything, and since usernames are public and passwords often guessable, I bet you can hack some accounts on most websites. Also I'd be surprised if they didn't ratelimit you in a way that make such bruteforce attacks infeasible.

If we'd start to report all such vulnerabilities, we can fill up three pages of news with it every day...</comment>


The Morals of Vision: Susan Sontag's 'On Photography' Revisited (Part 1) - <AUTHOR> https://darrencampion.com/2017/06/13/the-morals-of-vision-susan-sontags-on-photography-revisited-part-1/ <comment><USER2> If you are interested in alternative attempts to explain photography to a general audience consider reading or even chipping in to the development of the Wikibook _Modern Photography_ at [https://en.wikibooks.org/wiki/Modern_Photography](https://en.wikibooks.org/wiki/Modern_Photography)

I really enjoyed developing [https://en.wikibooks.org/wiki/Modern_Photography/The_camera](https://en.wikibooks.org/wiki/Modern_Photography/The_camera)

<comment><USER3> > if you stood at the end of the valley when the shadows had grown long, then > you had better run back to the cave or face the evening hunt of the local > tigers

Is there such a thing as an evening hunt for the tigers? I'm not saying there isn't, I just haven't heard it mentioned in any tv program about tigers.

<comment><USER2> Tigers like most cats are generally nocturnal hunters.

</comment></comment></comment><comment><USER4> > And yet, the idea that the whole culture of producing and consuming > photography – the culture of photography itself – can be scrutinised > critically is one that we should not be so eager to discount; our age of > 'fake news' and reality television politics probably needs it more than > ever.

I'm certainly not eager to discount the idea of a broad institutional critique. But I am eager to discount a broad institutional critique where the methodology requires little to no hard data or even secondary sources of research which themselves may be scrutinized to weigh the conclusions the author puts forward.

Also, this:

> "Naïve or commercial or merely utilitarian photography," she says, "is no > different in kind from photography as practiced by the most gifted > professionals: there are pictures taken by anonymous amateurs which are just > as interesting, as complex formally, as representative of photography's > characteristic powers as a Stieglitz or an Evans" (OP, pg. 132.)

What does "no different in kind" mean here? I can't think of a definition that either makes the entire statement facile or else is so obscurantist as to be invisible.

Anyhow, it's not enough that an unknown naïve amateur can take a photograph that is as powerful visually as an expert. That could mean the "masters" have no clothes on, but it could equally mean that photography as a medium and technology has a democratizing effect. Or even a little of both. But I hope the modern human would have already known that before reading the passage.

<comment><USER5> Regarding your second quote, my assumption is that she is applying the 'Death of the Author' principle to photography. It doesn't matter who the person behind the camera is, it only matters that what is captured and shared is interesting. Presumably masters find their clothing in consistency and dedication, not Bach-tier composition. That's my guess, at any rate.</comment></comment>


Less than 5% of Indian engineering students are fit for techie jobs, study finds - <AUTHOR> https://www.techinasia.com/5-indian-engineering-students-fit-techie-jobs-study-finds <comment><USER2> Bigger discussion => [https://news.ycombinator.com/item?id=14156547](https://news.ycombinator.com/item?id=14156547)

</comment><comment><USER3> > It says over 36,000 engineering students from IT-related departments of more > than 500 colleges took an automated test using machine learning.

"using machine learning" \--- what does that even mean? The test was designed with ML? What?

> Two-thirds of the tested students could not even write code that compiles

Did they get to choose what framework to use when responding to this question? Did they get to test their code? My intro to CS course in college had us handwrite code for tests, so guess what, I bet 95% of student's code wouldn't compile due to an occasional missed character or incorrect capital letter. Is this a similar situation?

This whole article needs a lot more detail around how this test was administered and what a borderline 'fail' looks like.

<comment><USER4> And as rectang points out, what is the baseline? I.e. how does this pass rate compare to engineering students generally?

</comment></comment><comment><USER5> The big question which goes unanswered in this article: How would students from other countries (especially the USA) have fared when taking this test?

</comment><comment><USER6> There are about 1.5 million engineering graduates in India per year.

Assuming this research can be trusted, 5% of them means 75 000 new "good engineers" per year.

That is still a big number.

</comment><comment><USER7> As if it was a big secret.

</comment><comment><USER8> Disgustingly irresponsible reporting. All this will do is encourage racial discrimination in hiring.

<comment><USER9> Or maybe it will encourage higher caliber education.</comment></comment>


Articulate Coding - <AUTHOR> http://casestatement.tumblr.com/post/11213857807/lunch-and-learn-articulate-coding

<comment><USER2> OP is unintentionally superficial, but he's grasping at a greater understanding and he knows. I think this is what he is looking for:

Why is this idea true?

Do I really believe it?

Could I convince someone else that it is true?

Why didn't the author use a different argument?

Do I have a better argument or method of explaining the idea?

Why didn't the author explain it the way that I understand it?

Is my way wrong?

Do I really get the idea?

Am I missing some subtlety?

Did this author miss a subtlety?

If I can't understand the point, perhaps I can understand a similar but simpler idea?

Which simpler idea?

Is it really necessary to understand this idea?

Can I accept this point without understanding the details of why it is true?

Will my understanding of the whole story suffer from not understanding why the point is true?

\-- How To Read Mathematics, authors Shai Simonson and Fernando Gouvea [1]

[1]<http://web.stonehill.edu/compsci/History_Math/math-read.htm#>

</comment><comment><USER3> These 12 points seem to be the most insignificant things you can think about your code. Indentation? Camel case? Come on... mastering WRITING code will not make you a good coder. It will make your code consistent, I'll concede, but there's nothing stopping your from writing consistently bad code that looks good. Wouldn't it be more fruitful to think things like: 1) Why did I write this code as one function? 2) Should I not write this query in a loop? 3) How much memory will this array take to store? 4) Will I understand this code 3 months from now? 5) Is this code readable without comments 6) Would commenting this block help the reader understand my intentions? 7) Should this be a class, and if so, how complex will it be? 8) Can I make this code reusable?

<comment><USER4> The two go hand-in-hand. Writing articulate easy-to-read code does not mean it precludes thinking about the things you mention. You could be the best (according to your criteria) coder in the world, but if your code is unreadable, it will quite literally waste others' time. This might not seem like a big deal with a smaller project, but scale to something the size of the Linux kernel or larger and it begins to become an issue.

<http://www.kernel.org/doc/Documentation/CodingStyle>

<comment><USER3> I've rarely seen such poor code visually that it made it hard to follow - except in the rare case where someone commits line breaks incorrectly. Camel- case, underscores, indentation etc.. do not vary so widely as to prevent me from understanding code. What does prevent me from understanding code is 5-10 nested if blocks and insane logic checks without commenting.

Have you actually experienced a coder that writes good code but writes it in a manner that prevents you from understanding it? I'd love to see some actual code samples.

<comment><USER5> > What does prevent me from understanding code is 5-10 nested if blocks and > insane logic checks without commenting.

What's worse is multiple nested levels of #ifdef. Not only is it hard to tell how the code flows, but you can't even be sure it's all being compiled!

I work with code like this so frequently that I actually got around to learning elisp so that I could write a function in Emacs to highlight the nested levels of #ifdef. I have a black background, so each nested level increases the brightness.

(I should really get around to pulling that code off of my computer at work and putting it up for everyone to use...)

<comment><USER6> That code sounds pretty interesting, especially if it's adaptable to arbitrary open/close sequences

        if (.*?) {

vs

        #ifdef .* ... #else ... #endif

I'd be interested in seeing it, even if it's a pastebin/gist dump that needs some cleanup.

<comment><USER5> Unfortunately, it's only for #if .* ... #el.* ... #endif. I didn't want to write that much of a parser, so I just push the line number onto a stack if I see a line like /^\s*#if/.

I guess Emacs is using some kind of parser to do syntax highlighting, right? I wonder if it's possible to tap into that...

<comment><USER6> Yeah, I'm pretty sure it does, although I've never poked deeply enough / understood elisp well enough to know exactly how it does it.

Swapping out those regexen you have wouldn't be too much of a challenge, I don't think, at least for a first shot at it.

I'm more interested in the general structure of managing the counter, applying the various faces to lines, etc.

My email is in profile if you want someone to attempt to clean it up a bit (insofar as I'm capable of doing so) :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I understand the point of the exercise and I can see that an individual coder might gain some benefit from this.

However, in a professional environment you would expect that the lead developer(s) had already given this stuff a lot of serious thought and enshrined it in a coding standards document for every member of the team to follow.

<comment><USER4> A good idea is to check for certain style issues which you want to enforce and are easy to catch at checkin time. You can enforce things like no real tabs, line width, no trailing spaces, etc and make the person checking in the code get rid of it. Usually once it winds up in VCS[1], it is harder to go back and clean it up. People make mistakes all the time, and tools are scriptable.

[1] Or do it at merge time if your setup involves pushing to a "work" repo which is merged to the real codebase later.

<comment><USER8> I'd argue that if it's so easy to check you can do so with a commit hook, you should also automate fixing it. If you're using C, C++, C#, or Java, you can do this with astyle pretty easily, for instance.

</comment></comment></comment><comment><USER9> As a novice programmer, I found this article to be a good bump towards thinking for myself. Too often I find myself doing something because its what the tutorial or book I was reading said was best practice, without really thinking the situation through. Being able to explain _why_ you are making the decisions that you make seems like an important step between just haphazardly piecing together snippets of code you memorized and actually logically solving problems.

<comment><USER10> Hooray! That's a big step toward becoming a better programer. (I've worked with programmers with years of experience that still just slap code together.) Your comment also painted the article in a new light for me. Perhaps doing this level of documentation would make a good exercise for newer coders. Maybe on a smaller scale - document every token in this method, or similar. I'm going to figure our a way try this now, thanks. :)

</comment></comment><comment><USER11> I think that individual code design culture comes from trying many languages and different use cases, picking up the best practices on the way. I remember using Pascal and then acknowledging that "begin" and "end" are better expressed with curly braces in C. When using Delphi I learnt a lot of OOP principles so I could later easily pickup Java and took some good habits from there also, later came PHP where I started noticing vertical readability is important, so when I saw Python I was stunned. Functional programming hit me, but not so hard, because I used AutoCAD LISP years ago and it felt natural. Trough the years I started to notice new things I would need in my daily coding and I found nirvana when I saw Ruby.

After years of coding one develops their coding personality that they're happy with and I think their code has just a right mix of carelessness and precision which could be never learned from a script kiddie book.

</comment><comment><USER12> Interesting. But from the heading I thought this was going to be about something else. Articulate coding could mean 'using bigger words' in the sense that you'd refactor your code and use built-in functions wherever possible.

Point being that most people probably don't get the most out of, say, Python's standard library.

</comment><comment><USER13> For me, the answer to most of those questions is "it's in the company's style guide". No thinking required, no thinking allowed!

</comment><comment><USER14> Sometimes I find myself doing this in a small way right after I deploy a new product version or feature. My mind is open enough to take in some of the decisions that were made to get to that point.

</comment><comment><USER15> Also known as analysis paralysis.

<comment><USER16> _I do not think that term means what you think it means.[1][2]_

This isn't what I understand to be Analysis Paralysis. AP is when you're trying to analyse the problem and design you're trying to code, and you're overwhelmed by the decisions to make and as a result, unable to proceed.

This, in contrast, is about deliberate reflection on what you're doing so you can better make explicit all the otherwise implicit and internal decisions of which you may otherwise be unaware.

As the article says, coders make hundreds of decisions for every routine they write, most on auto-pilot. Some of those might be less than optimal, and this kind of examination and reflection can help to understand, and possibly improve, those decisions.

[1] Minor edit in the light of subsequent comments.

[2] Hat tip to _The Princess Bride_

<comment><USER17> Agreed, but some of these questions-- the ones about indent style in particular-- don't seem to me to be the kind of things a developer needs to be thinking about while they're working on getting code written. The endless bickering and bikeshedding that arguments over coding conventions always result in are one thing, but having these arguments with yourself, every time you write a line of code, is crazy!

<comment><USER16> But the point was exactly not to be making these decisions consciously every time you write code. The point - in agreement with you - was that these decisions are not necessarily important.

The argument is that these decisions are made, whether you are aware of them or not, and in this case Beck was undertaking to understand them in nit- picking detail so they can be made visible and better understood, rather than remaining implicit, ill-understood, and possibly sub-optimal.

The author wasn't advocating that this sort of thing be done of every line of code - that would be ludicrous in the extreme. Don't attack the extreme strawman, try to understand and appreciate the underlying purpose.

In my 35 years of software work, far, far too often I see people concentrating on the pointless - bike-shedding if you will - and sadly, this is another case. Concentrate on the point that matters - understanding the processes and decisions of coding, and not the details of the specific instance.

<comment><USER18> _In my 35 years of software work, far, far too often I see people concentrating on the pointless_

The pointless has one great advantage: it is easier to work with. Hard problems are The Unknown, we fear the unknown, and when this fear arises one way to resolve it is by replacing the hard problem with something easier. This is absurd, like the drunk looking for his car keys under the street lamp on the wrong side of the street "because the light's better here", but that doesn't stop us, it just means we do it unconsciously. Now we have a simpler problem that we can concentrate on and (best of all) argue about.

You see this in obvious places like curly brace wars, but there are more interesting examples, such as why editors and version control systems get so much attention. They're important, but not _that_ important. But they're easy to understand and have an opinion about. Better still, they're common across many projects so arguing about them is a way for programmers to socialize.

Perhaps the same pattern is behind our industry's tendency to embrace savior paradigms (Structured Programming, OO, Agile, FP).</comment></comment></comment></comment></comment>


Ask HN: Physical skills/activities for programmers - <AUTHOR>

I love programming; it's JavaScript, PHP and Python at work - Lisp and Erlang at home. It's addictive, the more I learn and create the more I want to learn and create.
However, I think it would be beneficial to exercise my mind (and body) with none computer (or even electricity) related pastimes. Ideally these new skills could draw on and complement those I have gained developing software.
I already run and play football (soccer), so I'm pretty well satisfied for sports.
It'd be great to get some advice/inspiration from other HNers who've found solutions. <comment><USER2> Juggle. It's about pattern, space and structure, so it tends to suit technically minded people. At the same time, you really can't think of anything else when you're learning a new pattern or trick. You need to get to a zen(ish) state, not thinking, not feeling, not sensing, but _being_ the structure.

Well, at some level.

It's also surprisingly good for the muscles and breathing, and it's been proven to make your brain grow in both grey matter (the cells) and white matter (the connections).

It's also said to improve co-ordination, peripheral vision, reactions, and balance.

<comment><USER3> Poi is similar. I think there's a continuum that connects several circus arts — as you go from juggling to poi/flag swinging to meteors to short staff to long staff, you lose freedom of motion in exchange for more regular patterns. It's hard to learn one of the circus arts without learning about all of them.

</comment></comment><comment><USER4> Rock climbing. Requires constant awareness of your surroundings and problem solving(path selection etc.)

</comment><comment><USER5> Hey great question which is coming up with some interesting answers.

I too do a bit of beekeeping but mountain biking is my main passion.

@RiderOfGiraffes nails it when he says you need to get into that zenish state. It happens when what you are doing requires total commitment and concentration. Riding a log 1m off the ground or going into a big jump does that for me. And afterwards I always feel refreshed and ready to get back into it (usually with a raft of solutions that wouldn't have come to me otherwise).

It doesn't need adrenalin though. I can't get into running because it gives me too much time to think, but try orienteering, which gives you something to think about.

And if you're trying to get into the zone of not thinking doing whatever it is your doing and you're on your own I always find an ipod on reasonably loud volume helps silence the other noises in your mind.

</comment><comment><USER6> Have you considered Beekeeping?

Checkout Backwards Beekeepers: <http://beehuman.blogspot.com/> . They are a group of natural (no chemicals) urban beekeepers. You'll be helping the environment and you might even get some honey out of it.

<comment><AUTHOR> This is exactly the unusual type of suggestion I was hoping for, beekeeping has never crossed my mind but I'll definitely look into it, thanks.

</comment></comment><comment><USER7> Acquire a really high level of fitness, the domain space is really large, interesting and rewarding. For example, obviously you need to learn plenty about nutrition, then in order to make it meaningful you need to learn about cooking, then you want to work on your endurance, flexibility, muscle tone and strength, which means learning the muscle groups, then learning how each of the different gym machines will enhance your various objectives, then learning the various stretches for different muscle groups... its intellectual and rewarding. Anecdote: my personal trainer was talking about how an orthopedic doctor is his client, just because he's a doctor doesn't (apparently) mean he's mastered all of these domains.

</comment><comment><USER3> My nerdy hobbies are origami and poi. I like them because I like thinking about systems, and they provide a structure for improvisation (you could call it hacking if you wanted to).

<http://flickr.com/groups/origamitessellations/>

<http://flickr.com/groups/corrugation/>

[http://en.wikipedia.org/wiki/Poi_(performance_art)#Modern_po...](http://en.wikipedia.org/wiki/Poi_\(performance_art\)#Modern_poi)

</comment><comment><USER8> I like memory sports like memorizing decks of playing cards, Pi, mental calendar calculation, etc. It's done mostly offline but I use some online gadgets I made to enhance it. It's not physical but if you memorize while running (and collecting mnemonic 'journeys') or working out it's a nice combo. I count my exercise repetitions with the digits of Pi. Ron White trained while in scuba gear. <http://www.mindtools.com/memory.html>

</comment><comment><USER9> Despite their gender bias, knitting and needlework are very "hackery" activities. Won't burn calories though :-)

<comment><USER10> I've found that they don't agree with RSI though... :(

</comment></comment><comment><USER11> I'm a fan of playing DDR (Dance Dance Revolution). It's kind of an emo-ish game BUT it's fantastic cardio, and in a game structure it's easy to keep the motivation up (I'm a very competitive person, I think that comes with the territory for intelligent people).

</comment><comment><USER12> I recommend doing something manual, e.g. carpentry or paving. I find it's a great contrast to working in front of a computer. Actually building something tangible is a good feeling. For example, I plan on rebuilding a bicycle wheel this weekend - very relaxing.

</comment><comment><USER13> Martial arts, preferably medium or full contact. It will make all other physical activities seem boring and it will give you calm and focus that transfers to other aspects of your life.

If that seems like too much, maybe yoga or tai chi.

</comment><comment><USER14> My current offline activities are guitar and martial arts.

I also studied card magic when I was a teenager. That does wonders for exercising a "hacker" mindset.

<comment><USER15> Any instrument really is a great switch for the brain after thinking about logic and fitting requirements all day. Reading and improvising music, as well as increasing your own skills on any instrument allows you to use both sides of your brain- feels nice.

</comment></comment><comment><USER16> I play a lot of golf. It is a really good break for me because it just feels really old school. I don't even bring my cell phone and it is technology free.

</comment><comment><USER17> i'm kind of enjoying being a saltwater reef aquarium enthusiast, right now. it employs knowledge about a lot of things, from design to chemistry.

</comment><comment><USER18> Learn to play go! It's the greatest computer-free brain exercise I've ever experienced, by far.

</comment><comment><USER19> Drawing or sculpture. Dance. Calligraphy. Magic tricks.</comment>


Show HN: Organize – The file management automation tool - <AUTHOR> https://github.com/tfeldmann/organize <comment><USER2> That's a nice clean tool - works well on Windows too.

My only suggestion is when copying files from subfolders, to show which subfolder a file is being copied from.

My example moves all files starting with test to a BACKUP folder

      Folder U:\My Documents\_working\python\test_ORIG:
        File test.py:
          - [Move] Move to "\\...\My Documents\_working\python\test_file\BACKUPS\test.py"
        File test22.py:
          - [Move] Move to "\\...\My Documents\_working\python\test_file\BACKUPS\test22.py"
        File test1.py_ORIG:
          - [Move] Move to "\\...\My Documents\_working\python\test_file\BACKUPS\test1.py_ORIG"
        File test_bell.csv:
          - [Move] Move to "\\...\My Documents\_working\python\test_file\BACKUPS\test_bell.csv"

2 of the above files came from a subfolder in test_ORIG, but there is no indication which (fine for contrived example but would be an issue with large moves)

<comment><AUTHOR> This is now integrated and available for update. Thank you for the feedback!</comment></comment>


C performance mystery: delete unused string constant - <AUTHOR> https://github.com/google/wuffs/commit/49023afd48aab68febc55a3561b2e8a0e2635533 <comment><USER2> Lots of performance mysteries, particularly in micro-benchmarks, are explained by how either code or data aligns to memory cache lines. A seemingly unrelated change will cause memory locations to move. No idea if that is the case here or not but it looks like a possibility.

<comment><USER3> This is one of the reasons why I think microbenchmarks are either not very useful or completely misleading --- they'll favour things like insanely unrolled loops or aligned data with lots of padding, when in fact on a macro- scale those things will certainly affect performance negatively due to cache misses.

My preferred approach when optimising is to go for size first; then if more speed is desired, carefully apply size-increasing optimisations to areas which may benefit, testing with a _macro_ benchmark to judge any improvement.

<comment><USER4> If the macro scale is dominated by the code you're optimizing, which is often the case, let's say some inner loops of a codec, signal processing, etc. then the cache misses that may follow aren't really a concern. Obviously(?) taking some random code that doesn't run frequently and trying to optimize it won't make a difference. Microbenchmarks are pretty useful in this context since they let you iterate faster. More generally the question is what is the bottleneck, if the bottleneck is fetching stuff into caches then that's what you optimize for, if the bottleneck is some computation that is running from caches then that's what you optimize...

<comment><USER5> The big cautionary tale of microbenchmarking is memcpy. If you look at the Gnu memcpy, it's ridiculously long and obviously been guided by extensive benchmarking. And memcpy often shows up in profiles, so it is a big target. But in real systems a small simple loop will perform better due to icache pressure.

<comment><USER6> > in real systems a small simple loop will perform better due to icache > pressure

Do you have a source for this? Seems surprising GCC would leave such low- hanging fruit. G++ makes the effort to reduce _std::copy_ to a _memmove_ call when it can, or at least some of the time when it can (or at least, it did so in 2011). [0]

Related to this: does GCC treat memcpy differently when it can determine at compile-time that it's just a small copy?

[0] [https://stackoverflow.com/a/4707028/](https://stackoverflow.com/a/4707028/)

<comment><USER7> Problem is superscalar processors the correspondence between number of instructions and speed breaks down. Partly because the processor does it's own optimization on the fly and can do multiple things in parallel.

A programmer should be careful about second guessing the compiler. And a compiler should be careful about second guessing the processor.

<comment><USER6> I'm not sure if you're implying this is premature optimisation. It isn't.

It's a performance-sensitive standard-library function, the kind of thing that deserves optimisation in assembly. It's also the kind of problem that can be accelerated with SIMD, but that necessarily means more complex code. That's why the standard library implementations aren't always dead simple.

Here's a pretty in-depth discussion [0]. They discuss CPU throttling, caches, and being memory-bound.

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

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I am the commit author.

I wrote that commit on my laptop. I was unable to reproduce this on my desktop.

Re "why does this happen?", it certainly looks like an alignment thing. A more interesting question for me is "what should I do about it?" If future non- trivial changes affect the micro-benchmark numbers, how do I ensure that it's signal and not noise? Do I sprinkle some alignment directives throughout my code and hope for the best? Once the immediate symptoms are gone, how do I know that I've added enough?

Somebody suggested (off-list): "use compiler flags like the combo `-ffunction- sections -falign-functions=N` for values like 16, 32, 64 to help diagnose these issues quickly. You can also look at perf counters to find the problems, but each problem has a different counter so that can be hard. Once you know you have a problem, you can usually write code defensively against the issue. But it requires knowing a lot about the micro-architecture. Things like minimizing branch density, data dependency graph height, etc."

That's all very well (and better suggestions than nothing), but I'm hesitant to hill-climb using different compiler flags from what my users generally do. I also want to avoid over-fitting to my primary (day-to-day) machine or to a particular version of a particular C compiler.

I've also been pointed to [https://github.com/ccurtsinger/stabilizer](https://github.com/ccurtsinger/stabilizer) but it sounds tied to LLVM 3.1 and hasn't had any substantial updates since 2013.

<comment><USER9> > I wrote that commit on my laptop. I was unable to reproduce this on my > desktop.

Then please modify the comment in the source to state that.

The described behavior (the speed results unpredictably slightly changing in both directions) of the measurements is actually "normal" on the notebooks with most of the possible thermal configurations and is not something that should be even tried to be "fixed" until the observed effects are actually consistent and big enough to be repeatable without the tight thermal controls.

Edit: of course the pushed _commit_ can't be changed. But the _comment_ (if it is visible in the source -- haven't checked that) can. There should be some kind of a visible "resolution" of the question in the repo.

<comment><USER8> I haven't written a comment in the source yet, as I haven't further investigated and implemented a work-around yet to hang the comment on. It's low on the priority list.

</comment></comment></comment><comment><USER10> When weird performance things like this happens, it can be helpful to test in other environments. If the performance change does not happen in other operating systems or hardware then it suggests that the weird performance you are observing could be due to an unusual coincidence in your particular system.

That said, if you do want to figure out why deleting that global variable made a difference then using Linux's perf tool might give you more informationto work with. One time I had a weird program where inserting a NOP instruction in a certain location made it run twice as fast. After investigation we found out that the difference was with branch prediction. The presence or absence of that NOP instruction affected the addresses of the jump targets the inner loop's switch statement. For some reason, the version without the NOP instruction those addresses resulted in lots of branch mispredictions. Perhaps because of a collision in the branch predictor's hash tables.

<comment><USER11> Are you sure it wasn't just instruction alignment? Inserting nops before loop jump targets to align the first loop body instruction to 8 or 16 bytes is a very common x86 thing most compilers do. See e.g. [https://reverseengineering.stackexchange.com/a/2930](https://reverseengineering.stackexchange.com/a/2930).

<comment><USER10> Would that explain the large difference we observed in the "branch-misses" statistic when we ran it under "perf stat"?

</comment></comment></comment><comment><USER12> Removing `const char* wuffs_base__note__i_o_redirect = "@base: I/O redirect";` removes not only the literal string, but also a global non-constant pointer. This perhaps affects various optimizations.

They should have used `const char* wuffs_base__note__i_o_redirect const =` or (preferably) `const char wuffs_base__note__i_o_redirect[] =`.

<comment><USER13> I can't think of a plausible way in which an unused global would affect compiler optimizations. Could you elaborate?

<comment><USER14> The pointer probably precedes interesting variables in the same data segment, which therefore shift to a different address that is cached differently.

<comment><USER13> Sure, but that's not a compiler optimization issue. The compiler will emit the same instructions, they will just execute at a different speed if the data is elsewhere.

</comment></comment></comment></comment><comment><USER15> I remember changing a _constant_ int into a _volatile global variable_ , and my code became 4 times faster. It was on Ubuntu 16.04. I might actually find code and post here later.

<comment><USER16> I worked on some code once for an app that would crash if you added a comment in a specific place. We removed the comment and then added a comment asking developers not to re-add the comment.

<comment><USER17> Was it a language where the comment would be compiled out ahead of time? Or still present at runtime like JS

<comment><USER18> I was thinking the same thing. It would be very odd if it had an effect on C or C++ (even more than the effect in the original article) because comments are removed even before preprocessing. They do affect the __LINE__ macro though, so it is vaguely conceivable for it to have an effect on program behaviour.

</comment></comment></comment></comment><comment><USER9> As far as I see, the source code of the library is not plain C but .go, which is then transpiled to .c

Anyway, even if what we see in the resulting .c is "just some missing string" it's not necessarily obvious how the strings are supposed to be handled in the whole .c domain. Specifically, it can be that some other constants (even not necessarily sting constants, but the constants in the same segment where the string constants are!) are being used very frequently by the code which is measured (let's call them "hotter" constants), and the removal of that one string constant simply affected the placement of the "hotter" constants).

In short, I suspect that the deletion of the constant is not the only way to get different results, but that the different results would also happen even when changing the order of the definition of constants, without removing any of them.

So the way I would attack that problem, if it would be desired to fix the performance issues, is: I'd measure the access of all the constants in the same segment, and identify which are used during the whole run of these benchmarks -- those are "hot." The solution is then to modify the code to be less dependent on such constants inside of the "hot" loops. Often the number of these that have to be fixed is low, but it's also possible it's otherwise.

So I believe it's not that much a mystery as it appears to be. (I have even more specific experiences and also suggestions. And I'm also looking for a new dream _remote_ job. Anybody needs this kind of expertise, for some reasonable longer term, or shorter term but seriously paid?)

<comment><USER19> Watching used constants and trimming them to fit the cache seems like a good idea. I'm a total noob PC-architecture wise so apologies beforehand, but doesn't the CPU handle the caching of most used memory locations itself? If there are an equal number of hot constants, how does changing the order of them help performance? CPU is going to cache the most used locations anyway. In this example, the constant was never used, so there is no reason for the CPU to cache it.

BTW, adding some contact info to your HN profile could help in the job search. Best of luck!

<comment><USER9> > doesn't the CPU handle the caching of most used memory locations itself?

Yes but caches aren't "never failing magic". You can imagine them as the mechanisms that allow saving some work in some scenarios. If the work thrown at them is different from their limitations, worse results aren't surprising.

> If there are an equal number of hot constants, how does changing the order > of them help performance? CPU is going to cache the most used locations > anyway.

The caches have some limitations by design. It's easy to construct the code which stresses the caches more, and sometimes just the position of elements accessed can influence the "congestion" points due to the changed mapping between the addresses and the elements accessed.

> adding some contact info to your HN profile

Thanks. I still hope that if there's a real interest the contact happens in spite of not being exceptionally easy -- also a kind of filter.

</comment></comment></comment><comment><USER20> This reminds me of when I made a program faster by adding a print statement to it. I am not able to find the program but I was able to create a new one as similar to it as I remember and it seems that this weird trick works in this program too.

When I uncomment the puts("hi") line in the code below, the time it takes to run the program consistently changes from 5.6 to 5.4 seconds on my machine if I compile without optimizations.

#include <stdio.h>

int main() { long tri_side = 1; long tri_area = 1; long sq_side = 1; long sq_area = 1; while (sq_side < 1000000000) { if (sq_area == tri_area) { printf("tri:%ld sq:%ld area:%ld\n", tri_side, sq_side, sq_area); //puts("hi"); } if (sq_area < tri_area) { sq_area += sq_side * 2 + 1; sq_side += 1; } else { tri_area += tri_side + 1; tri_side += 1; } } }

<comment><USER21> I wasn't able to reproduce this but I'm wondering if it could have to do with buffer flushing. puts may implicitly do whatever fflush(stdio) does. [1]

[1]. [https://linux.die.net/man/3/fflush](https://linux.die.net/man/3/fflush)

</comment></comment><comment><USER22> Looks like other people are onto the same thing - alignment.

Especially if this is threaded code, what's probably happened is something (likely with some sort of locking primitive) that fit on one cache-line, now straddles two. The reverse is also possible where two items were landing on different cache lines and are now creating a false sharing problem.

It's likely a global and likely in the .bss (which comes immediately after .data, which is why it has alignment troubles when static strings change). It's usually pretty easy to binary search your way to the problematic module and variable.

<comment><USER8> It's single-threaded.

</comment></comment><comment><USER23> I'm not sure I understand why they revert the change. You get random small +/\- changes in performance with the change, but you get slightly cleaner code. What's the reason not to want that?

<comment><USER24> They might be hesitant to check in a change that causes a behavior they don't understand. This is a good mindset imo.

<comment><USER23> I feel like there's a (sometimes blurry) line between being hesitant about dangerous changes (good thing) and hoping that if you ignore something you don't understand, it will keep working as you expect (not a good thing).

Purely leaving an unused variable in place due to weird impact on performance is in the second category for me. But maybe there are other aspects - that's why I'm curious and asking about it

</comment></comment></comment><comment><USER25> He should experiment with shortening his ENV vars one byte by one, to see similar benchmarking effects. It process affects alignment, and if you unlucky bad alignment can cost a few percent.

</comment><comment><USER26> I've never heard of this "wuffs" project before, apparently it's a programming language. It looks like a wild project, does anyone have any details what this is?

<comment><USER8> Start at [https://github.com/google/wuffs/tree/master/doc](https://github.com/google/wuffs/tree/master/doc)

</comment></comment><comment><USER27> Isn't this usually where someone sufficiently versed in Assembly would look at the generated assembler code and figure out what changed?

<comment><USER28> You need to look at the disassembly of the generated binary to make sense of this sort of performance variation (paying attention to line cache boundaries for code and data), and even so, it is highly non-trivial. The performance counters found in modern processors sometimes help ([https://en.wikipedia.org/wiki/Hardware_performance_counter](https://en.wikipedia.org/wiki/Hardware_performance_counter) ).

[https://www.agner.org/optimize/microarchitecture.pdf](https://www.agner.org/optimize/microarchitecture.pdf) contains the sort of information you need to have absorbed before you even start investigating. In most cases, it's not worth acquiring the expertise for 5% one way or the other in micro-benchmarks. If you care about these 5%, you shouldn't be programming in C in the first place.

And then there is this anecdote:

My job is to make tools to detect subtle undefined behaviors in C programs. I once had the opportunity to report a signed arithmetic overflow in a library that its authors considered, rightly or wrongly, to be performance-critical. My suggestion was:

… this is not one of the subtle undefined behaviors that we are the only ones to detect, UBSan would also have told you that the library was doing something wrong with "x + y" where x and y are ints. The good news is that you can write "(int)((unsigned)x + y)", this _is_ defined and it behaves exactly like you expected "x + y" to behave (but had no right to).

And the answer was "Ah, no, sorry, we can't apply this change, I ran the benchmarks and the library was 2% slower with it. It's a no, I'm afraid".

The thing is, I am pretty sure that any modern optimizing C compiler (the interlocutor was using Clang) has been generating the exact same binary code for the two constructs for years (unless it applies an optimization that relies on the addition not overflowing in the "x + y" case, but then the authors would have noticed). I would bet a house that the binary that was 2% slower in benchmarks was byte-identical to the reference one.

<comment><USER29> If I may ask, what was the use case for this code that they cared so much about a 2% difference in benchmarks? Aerospace? Game engine? Packet routing?

<comment><USER30> I wouldn't expect aerospace, since I have been told embedded programmers in that field routinely disable compiler optimization, in the chance that a compiler bug or overzealous UB exploitation might introduce a bug into previously working code. Hard realtime requirements demand _fast_ code, but not necessarily _efficient_ code.

</comment></comment></comment></comment><comment><USER31> VTune will help

</comment><comment><USER32> I have to admit... I get a "geek on" whenever I read C programmer commit messages. I don't know what it is but those people know how to write detailed, interesting and often entertaining commit messages. This one was a perfect example of all 3.

</comment><comment><USER33> > deleting this one line of code can have a dramatic effect on seemingly > unrelated performance micro-benchmarks. Some numbers get better (e.g. +5%), > some numbers get worse (e.g. -10%). The same micro-benchmark can get faster > on one C compiler but slower on another

There's a fundamental disconnect that makes it difficult for humans to reason about performance in computer programs. Because the speed of light is so slow, computer architecture as we know it will always rely on cache and OoO to be fast. The human brain does seem to work out of order, but it's only used to thinking about a world that runs in order. When we use theory of mind, we don't model other people's minds, we use our own as a model for theirs; see mirror neurons[1].

Because of this, standard code benchmarks are not very useful, unless they can demonstrate order-of-magnitude speedups. Even something like a causal profiler[2][3][4], which attempts to control for the volatile aspects of performance, is of limited use; it cannot control for all variables and its results will likely be invalidated by the same architectural variation it tries to control for. Instead (with respect to performance) we should focus on three factors:

\- Code maintainability

\- Algorithmic complexity

\- Cache coherency

Everything else is a distraction.

1\. [https://en.wikipedia.org/wiki/Mirror_neuron](https://en.wikipedia.org/wiki/Mirror_neuron)

2\. [https://www.youtube.com/watch?v=r-TLSBdHe1A](https://www.youtube.com/watch?v=r-TLSBdHe1A)

3\. [https://arxiv.org/pdf/1608.03676v1.pdf](https://arxiv.org/pdf/1608.03676v1.pdf)

4\. [https://github.com/plasma-umass/coz](https://github.com/plasma-umass/coz)

<comment><USER34> There's a major caveat: if you know the hardware won't change and you control the software stack throughout.

Game consoles, unikernels and the like apply here.</comment></comment>


Convert Image to ASCII Text with Color Support - <AUTHOR> https://github.com/hit9/img2txt <comment><USER2> How does it compare to libcaca?</comment>


Google trying to patent ANS compression - <AUTHOR> https://encode.ru/threads/2648-Published-rANS-patent-by-Storeleap?p=52965&viewfull=1#post52965 <comment><USER2> A company acquiring patents is not evil in and of itself; in some cases they're practically forced to do it, unless they want to risk someone else doing it first. Tesla acquired plenty of patents, but they chose to release them with an anyone-can-use clause, meaning their effort actually amounted to patent-freeing some stuff, rather than patenting it.

<comment><USER3> Tesla is actually offering a patent truce, not anyone-can-use. This is roughly the same as the cross-licensing agreements you see between big industry players, except that Tesla is offering it to everyone. It's likely Tesla is still applying for more patents; it would be foolish for them to not do so, given the current patent law.</comment></comment>


Show HN: A Pomodoro Timer built on the Yo API - <AUTHOR> http://pomodoryo.herokuapp.com/

<comment><AUTHOR> Sorry for the double post - I messed this up earlier.

It is very primitive, but the code can be found here: [https://github.com/thebrettd/pomodoryo](https://github.com/thebrettd/pomodoryo)

It is running on Heroku and waiting for your Yos :)

<comment><USER2> An actual useful Yo app!

I'm going to highlight this on Product Hunt tmrw.

What's a good email for you.

<comment><AUTHOR> email@example.com

</comment></comment></comment><comment><USER3> One serious question do people really use Yo now?

edit: I personally couldnot find any better use of it.

<comment><AUTHOR> I seriously do use it, but not for serious purposes ;)

</comment></comment><comment><USER4> I definitely just installed the "Yo" app, just so I could use this. Excellent work!</comment>


Beta registration open for a new alternative social network - <AUTHOR> http://www.ninoff.com

<comment><AUTHOR> haha, have we? will get that rectified immediately, thanks for observation

</comment><comment><USER2> they spelt "Statement" wrong in their Mission Statement.</comment>


Why The Idea of a Google Driverless Car is Nonsense - <AUTHOR> http://www.forbes.com/sites/haydnshaughnessy/2013/01/23/why-the-idea-of-a-google-driverless-car-is-nonesense/

<comment><USER2> Title is a bit overblown and unnecessarily negative. Why can't we just be happy about the future. 'Cos it doesn't attract readers? 'Cos even seasoned contributers to Forbes have to express their petty, pissy attitudes?

The title should be, _Don't forget Volvo, Nissan, BMW and others are working on driverless cars too. The future will be awesome._

Why is anyone getting worked up over this.

<comment><USER3> The title was a clear response to another Forbes article that claimed Google was about to inherit a multi-trillion $ market.

</comment></comment><comment><USER4> This might be the worst written article I have ever read. What the heck is this guys point?

I'll tell you why it's being done by Google. A computer driving a car is an artificial intelligence problem. Google is fundamentally an artificial intelligence company.

Car companies are _not_ artificial intelligence companies. They're not even software companies - just look at antiquated the average stereo/navigation system is in even the latest, most expensive cars.

I'd definitely rather have Google do it and license it back to the car companies than have the car companies do it on their own.

The software is going to be solved in the next 5-10 years. The hard part after that is dropping the sensor price enough to make this work (a lot of the SICK lasers are $35k+ still). But 10-15 years from now, we are going to have self driving cars for sale, no question in my mind.

<comment><USER5> _"Car companies are [...] not even software companies"_

\- Fuel injection: software

\- ABS: software

\- Airbags: software

\- Traction control: software

\- Brake assist: software

\- That clicker that opens your car door: software

Etc.

<comment><USER6> I don't think the op was arguing that car companies don't produce software. He was arguing that they don't produce it well, because it's not a core competency for the company. Car company profits are tied to industrial design, manufacturing, and logistics, not software.

His point about GPS is an apt one. My brother has the best SUV Infinity makes and the GPS is so terrible, he uses his phone (android) instead.

<comment><USER3> Suppliers to the car makers, like those that produce anti-lock brakes, do good software. Car makers typically have Silicon Valley offices. And they typically buy components from companies rather than rely on themselves. None of that means Google will make and driverless car that sells in the way the original article claimed.

</comment></comment></comment></comment><comment><USER7> Unfortunately, this article exposes its author's near total ignorance of the background and history of the topic, and nothing else.

 _Driverless car projects have been around for 30 years. Anyone following European R &D in this area can easily cast their minds back to the DRIVE project_

That's awesome. Where were they in DARPA's 2 Grand Challenges and the Urban Challenge [1]? We can also cast our minds to ALV [2] and NAVLAB [3], which were state-of-the-art in 80s and 90s respectively, so what? They demonstrated that a computer can control the car in a strict sense -- keeping it on the road and _maybe_ stopping for obstacles, but driving is a bit more complicated than that. The real challenge is in navigating from point A to point B which observing rules of the road and interacting with other traffic participants safely -- something that was not demonstrated until 2007. Google's autonomous car program grew directly out of CMU's and Stanford's Urban Challenge projects.

 _Volvo pulled off the more impressive feat of platooning the three cars behind a lorry for 200 kilometres on a busy Spanish motorway._

It's not a _more impressive feat_ by anyone's standard. Following the leader is a much simpler problem than navigating traffic independently.

[1]: [http://en.wikipedia.org/wiki/DARPA_Grand_Challenge_(2007)#Ov...](http://en.wikipedia.org/wiki/DARPA_Grand_Challenge_\(2007\)#Overview)

[2]: [http://www.aaai.org/ojs/index.php/aimagazine/article/view/21...](http://www.aaai.org/ojs/index.php/aimagazine/article/view/2108)

[3]: <http://en.wikipedia.org/wiki/Navlab#History>

</comment><comment><USER8> "You might then ask why in the USA is this being left to a search company?"

Because of the liability involved in the American legal environment.

I've long suspected that Europe, Japan, or Korea will beat the US to commercially viable driverless cars.

</comment><comment><USER9> Forbes.com = sensationalist headlines designed to grab clicks. Even their financial coverage is far more sensationalist than WSJ or techcrunch (and that's saying something ...)

</comment><comment><USER10> This seems like an odd straw-man of an argument.

Premise: "Car companies have been toying with driverless cars for years, so the idea that Google will produce driverless cars end-to-end is without merit"

What I can't understand is who thinks Google is going to be building these cars. Has anyone claimed that, even the referenced Forbes article? I don't think so. As others suspect, Google wants to offer the brains to these car companies, and tie them into the world of other Google services (Android phones, browser integration, ad injection, media streaming, etc).

Look at it another way: Microsoft supplies much of the tech to Ford, Hyundai, and others for their in-car "infotainment" systems, that doesn't mean when they started the CAR.NET initiative in the '90s they were trying to take on Ford and GM.

<comment><USER10> A second, follow-up point: If car makers have worked so long on driverless technology and made so little progress, what is Google doing better? I've seen the driverless cars in action, they work very well (though I elected not to leap in front of one).

</comment></comment><comment><USER11> Google Maps. The idea that a car maker is better positioned than Google to pull this out is silly; it's mostly about understanding geographical/geospatial data best, not so much how to make cars; that's already pretty well researched and understood and Google can partner with cars makers in an Android like model if necessary.

<comment><USER12> _it's mostly about understanding geographical/geospatial data best_

If Google's driverless tech is more dependent on geographical/geospatial data than monitoring actual conditions, it's going to fail horribly. Roads can change a lot day-to-day from storms, accidents, construction, etc.

<comment><USER6> I recommend reading up on how they create the "geographical/geospatial data" before casting doubt. It's similar tech that's used for identifying road signs, land widths, exits, on-ramps, etc...

Read this and I think it will make more sense: [http://www.theatlantic.com/technology/archive/2012/09/how- go...](http://www.theatlantic.com/technology/archive/2012/09/how-google- builds-its-maps-and-what-it-means-for-the-future-of-everything/261913/)

I think that covers the hardest bits. Maintaining safe distances, self parking, and obstacle avoidance were nearly solved problems before Google started the driver-less cars program.

<comment><USER12> _Read this and I think it will make more sense:[http://www.theatlantic.com/technology/archive/2012/09/how- go...](http://www.theatlantic.com/technology/archive/2012/09/how-go...*)

That article doesn't address my concerns at all - namely roadway changes caused by factors like construction, storm washouts, etc - that haven't been integrated into the geographical/geospatial data.

</comment></comment></comment></comment><comment><USER13> Standard rant from someone who hears "driverless cars" and responds without investigating.

<comment><USER3> In fact the article was not anti-driverless cars and says Volvo will introduce some driverless features in 2014. It simply disputes the idea that this market is Google's for the taking

</comment></comment><comment><USER14> I'm excited about the prospect of driverless cars but at this point, even a regular car design by Google would get my money in a heart beat. I imagine a nice Nexus 10 as the main console and extreme environment friendliness.

</comment><comment><USER15> > You might then ask why in the USA is this being left to a search company? > Google is a technology company. I'd prefer a tech company was working on > this problem.

<comment><USER16> Automakers are tech companies too, just other kind of tech. And I may be biased, but driverless cars are a software problem.

<comment><USER17> That shows how narrow your thinking is.

Driverless cars involve so much more than just an algorithm. It is the hardware integration, safety and reliability, regulatory and compliance and the worldwide scalability of the approach.

Google may understand the algorithm but they have nothing to contribute elsewhere.

<comment><USER18> i have no idea why you're being downvoted. auto and avionics companies go through hell to test this stuff at a level that involves the hardware and how it integrates with the software. this just doesn't happen in most software companies.

this is much more than a software problem. i've heard of people verifying opcode behavior on avionics processors to determine the correct implementation of the hardware - when your software relies on it it's fair game.

i don't doubt that google could do this if they made it a priority. but it's a huge issue that encompasses more than a "software algorithm." if the collisions sensors degrade over time doesn't matter if the software works.

</comment></comment></comment></comment><comment><USER19> I don't get the point of this article. I like the idea of tech companies expanding to other businesses. They can bring a fresh look to onboard systems, and make them less complicated and more elegant.

Yet the only thing they shouldn't forget is that cars are not computers. I'm not sure that Google's modified Prius will be as enjoyable (when driving) as a BMW 1 Series for instance.

<comment><USER20> > I'm not sure that Google's modified Prius will be as enjoyable (when > driving) as a BMW 1 Series for instance.

We're talking about self-driving cars.

</comment></comment><comment><USER21> Congratulations, Forbes/Haydn. You got my click. I will be tremendously wary of clicking again.

<comment><USER3> then follow the threat back to Chunka Mui's article.</comment></comment>


Show HN: New Site Design for Ripe Apps (Lot's of jQuery goodies) - <AUTHOR> http://www.ripeapps.com/v3.php

<comment><USER2> I'm getting the following error message for your link: (I'm using Chrome 16 on Windoze)

Parse error: syntax error, unexpected '<' in /nfs/c08/h01/mnt/125333/domains/ripeapps.com/html/v3.php on line 2

</comment><comment><USER3> (I work at Ripe)

It's busy, with crazy-lots of sliding images... but we've optimized the images and product-focused pages are supposed to packed with activity (I'm told).

<comment><AUTHOR> And that's when the Front End co-founder disagree ;)</comment></comment>