Uber Now Tracks Passengers' Locations Even After They're Dropped Off - <AUTHOR> http://www.npr.org/sections/alltechconsidered/2016/12/01/503985473/uber-now-tracks-passengers-locations-even-after-theyre-dropped-off <comment><USER3> I saw this earlier and had hopes that the update would just let me choose "While Using" in the app settings, like some other apps allow you even if they request access even while not using the app, but the settings only allow for "Always" or "Never" on iPhone. However, you can use Uber without allowing GPS, so it's not all or nothing.

I'm a little disturbed that they need any information after I use Uber though. They know where I was picked up and where I'm going, why do they need to know where I'm at after I get dropped off? That's a little intrusive to me. The proposed argument in the article, "Uber hopes to eliminate the most frustrating part of the experience: the game of phone tag that both the rider and driver play when trying to coordinate the pickup spot," is fine and I'd accept that even though I'm extremely wary of apps that have access to my GPS data while I'n not using the app because I can't see it in fine detail (as far as I know you only can see that _some_ app is accessing your GPS currently, not which one(s) exactly). However, Uber has no need for the data after I am finished. I'm not a fan of being tracked in general, by governments or otherwise, but for a private company to request data after I finish using their services is intrusive and maybe this is conspiracy but I wouldn't be surprised if this data is sent real time and it's possible to see where a user is at any given time after they leave the car (during that 5 minute window).

I'm also curious how this will bump up against EU privacy laws. I'm in the states and this may only be enabled for certain markets, but I wonder if this would cause issues in EU if it's enabled there.

<comment><USER4> Uber employee here. We were told the reason to track up to 5 mins after the trip is for fraud, ex if a driver doesn't end the trip when she is supposed to. and to figure out where the pick up spots for each address are. A large building may have multiple points where people get picked up or dropped off and knowing those points would be very useful for the drivers and riders.

And just as a side note, take it with a few grains of salt but I know it's not easy to just trust a company with such personal information, and certainly I wouldn't either, but Uber as a company is very ethical and takes the responsibility that we are entrusted with very seriously.

There are a lot of things we do for our customers that isn't reported by the news, but we always try to do the right thing. Ex. When we had a few outages earlier this year, we made sure that the drivers who were active at the time were "made whole" by paying them for the time we were down.

Yes, there were issues a few years ago with statements and actions that were done, but the Uber today and the employees that work here now take a lot of pride in what they do. I would never have worked here if I didn't feel Uber was an ethical company. And neither would my coworkers. There are thousands of engineers now working here and we would be the first ones who would stand up to management if we felt that something nefarious or even careless was being done with user's personal information. Many of the company values revolve around "toe stepping" and "principled confrontation" and this means even against our own management.

So I know it's not easy to believe, and it's easy for me to say since I work here, but nothing nefarious is going on. If there was, we the engineers would be against it completely.

<comment><USER5> _" Uber as a company is very ethical and takes the responsibility that we are entrusted with very seriously."_

Probably every company has said that, yet we know how that usually turns out sooner rather than later (I'm looking at you, WhatsApp).

 _" So I know it's not easy to believe, and it's easy for me to say since I work here, but nothing nefarious is going on. If there was, we the engineers would be against it completely."_

 _For now_. What if a new higher manager comes and decides to use this information for other purposes (ad, sale etc.)? Some engineers might quit, but costumers can't take their data back.

My takeaway is: do not trust companies with more data than necessary to provide you a service and this is exactly such case.

<comment><USER6> Whatsapp was ethical, the problem is with the company that bought them. And they didn't necessarily know that when they sold (even if, an offer of that size is hard to decline).

<comment><USER7> [Harsh words ahead]

Hindsight is 20/20, and based on that I personally would say WhatsApp was not ethical even when it was a standalone company. If it had been so, it wouldn't have allowed Facebook to acquire it in the first place! I realize this sounds harsh and probably implies bad motives on the owners, but whatever WhatsApp wrote in its blogs pre-acquisition were all principles that could be sold at the right price. That's exactly what it has come to now that we know how it's being used.

I would also consider it insulting to human intelligence if the WhatsApp founders had truly believed that they would be able to continue with their stated privacy stance after being bought by Facebook, of all companies (what they wrote on the blog at that time can be seen as public posturing).

<comment><USER8> You don't need hindsight. You just need to look at the many many times it has happened before.

Cash pressure + lots of valuable assets liquidised legally that just require a change to ToS = said assets for sale + temporary bad PR.

</comment></comment></comment></comment></comment></comment><comment><USER9> A ha! This thread has reminded me to check whether Background App Refresh might block this. Apple's iOS Developer Docs seem to strongly imply that's the case [1]:

> Important: A user can explicitly disable background capabilities for any > app. If a user disables Background App Refresh in the Settings app—either > globally for all apps or for your app in particular—your app is prevented > from using any location services in the background. You can determine > whether your app can process location updates in the background by checking > the value of the backgroundRefreshStatus property of the UIApplication > class.

Time to go disable Background App Refresh for the Uber app and leave location as "Always".

Edit: Yep! Disabled Background App Refresh and verified after a bit that the little "Some app is using your location" icon went away. Spread the word (and please Uber Engineering, don't try to stop us...)

[1] [https://developer.apple.com/library/content/documentation/Us...](https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html)

<comment><USER7> Thanks for this workaround, the description and the link. As disturbing as it is that Uber is subjecting paying customers to such despicable treatment, I'm glad to know that there is an easier workaround (for iOS users) than turning on and off the location services permission before and after each ride to control this!

I don't have Background Refresh on at all (for any apps) since I find it draining the battery a lot for very little practical benefit for my usage.

</comment></comment><comment><USER10> I really wish that both Android and iOS had an option to outright prevent an app from doing _anything_ in the background. No sensors, no location, no push notifications, no network access, no CPU time, URL protocols, no nothing. If I don't click the little app icon, the app shouldn't run, full stop.

<comment><USER11> I wish iOS forced all apps to offer "Always/While Using/Never" for location info. It's bullshit that Uber can refuse to offer the middle choice.

<comment><USER12> A thousand times this.

</comment></comment></comment><comment><USER13> There is something very powerful you can do:

1\. Stop using uber. Delete it. There is Lyft and Juno (in select markets).

2\. Tell your friends about the dangers of using Uber.

You can make a profound change by voting with your pocket book. Lastly, believe it or not, a lot of your friends look to you for tech advice. Be vocal.

<comment><USER14> This is likely to work about as well as when a large number of tech people went around telling all their friends that Microsoft was evil in the 90s and early 2000s -- which is to say, not at all.

Empirically, very few people care much about their own privacy, and they seem to be entirely uninterested in hearing sermons on the topic. It'd be great if that worked, but it doesn't, so that won't solve this problem.

<comment><USER15> Windows, an OS, was not a commodity. Uber's service is.

</comment></comment></comment><comment><USER16> I despise apps that do "Always" or "Never" for Location Tracking. It's really reflective of the larger issue of control of data, but this is particularly galling when the app hasn't given you an option nor a good reason for "Always" tracking. I'm always surprised when each iOS update continues _allowing the app to define available choices_ instead of giving the consumer the "While Using" option for any app requesting location.

<comment><USER17> Part of this is due to limitations in how iOS communicates this to users. "Always" can refer to either (1) always-on GPS, or (2) Bluetooth, which will ping app-owned beacons. The Bluetooth option is significantly narrower in scope, but uses the same dialog as the GPS.

I worked for a company that relied on Bluebooth beacons to provide a critical app experience (notifications before app itself is opened), so the app blocked the login screen until the Bluetooth-driven "Always" location authorization was granted. It was a headache explaining to users.

</comment></comment><comment><USER18> "Uber collects your location data from the time of trip request through five minutes after the trip ends, including when the app is in the background."

From source listed in the article: [https://help.uber.com/h/ba9dd342-158d-421f-a9ea-0e6c7aaad726](https://help.uber.com/h/ba9dd342-158d-421f-a9ea-0e6c7aaad726)

<comment><USER19> Counting down to the FBI NSL'ing [1] Uber for persistent, warrantless surveillance...

[1] [https://www.eff.org/issues/national-security- letters](https://www.eff.org/issues/national-security-letters)

<comment><USER20> They don't need to, since they have the much better source of cell phone carriers with 24/7 location. And google android OS and apple to a certain extent.

<comment><USER21> Yes, people are like "oh NSL". Are they not paying attention to carrier access, stingray, general SIGINT? Like really this is HN at its most ridiculous.

</comment></comment></comment></comment><comment><USER22> While their explanation is reasonable, I have little reason to trust a company that settled an investigation specifically about _location tracking abuse_.

I've pretty much dropped their app and switched to their mobile site, which is bound to my browser's location settings. Additionally I'll only use them if they're significantly cheaper than lyft from now on.

<comment><USER23> > _While their explanation is reasonable_

Their explanation is illogical:

> _Previously, Uber only collected data from the user if the rider had the > application open. Now, if a rider calls for an Uber and closes the app, Uber > says it will continue to collect location data up until five minutes after > the ride ends. That means Uber can see where you end up after you leave the > car._

That's the change; the reasoning for this change?

> _Uber hopes to eliminate the most frustrating part of the experience: the > game of phone tag that both the rider and driver play when trying to > coordinate the pickup spot._

That, of course, doesn't occur in the five minutes after I get out of the car. They of course mention more generically,

> _" We do this to improve pickups, drop-offs, customer service, and to > enhance safety," Uber says on its website._

But that's not really enlightening … and not a convincing reason for having it persist beyond the app being open.

<comment><USER24> > That, of course, doesn't occur in the five minutes after I get out of the > car.

The logic is that it is likely that you will likely use Uber to go back as well. And they can't track your actual pickup spot unless they keep the tracking always on until you are picked up, which will be way more than 5 minutes.

</comment></comment></comment><comment><USER25> > Uber hopes to eliminate the most frustrating part of the experience: the > game of phone tag that both the rider and driver play when trying to > coordinate the pickup spot.

This makes no sense to me. I tell them the pickup point so they don't need to know where I am since I already told them where I want to be picked up.

Conversely I found it very frustrating they didn't (used to?) take destination into account. Example: I want to go south. They should arguably prefer drivers that are north of me. Instead I'm just guessing they just ping all drivers within some range. Some of those drivers are south of me. In a city like SF that can end up adding 5-10 minutes to the wait because they may have to go 3-6 long blocks around to get north of me so they can go south AND so they can pick me up on the south bound side of the road.

It requires no GPS data from me to know that. It only requires that I enter where I want to be picked up and where I want to go.

I suppose it's possible I'm waiting on the north bound side even if I want to go south. Maybe they could ask "we'll pick you up on the south bound side. Ok?" or something to that effect.

<comment><USER26> I think there's a lot of variance between people, and it's largely a matter of preference. Some people are happy to walk a block or two in order to make the most efficient trip depending on where the driver is approaching from and where they're going, and some people just want to plop it down and not think about it and have the company/driver figure out how to come exactly to them and figure out which way to go.

<comment><USER27> I always feel like an oddball for calling my driver to make it more convenient for him (and faster for me) to pick me up. I usually Lyft line it though, so it's just a time boost (price is the same either way).

</comment></comment></comment><comment><USER28> For Uber and UberEats I now manually manage these in Android (which I do for a few other apps I have lower trust for).

Which means I shut off all permissions between uses, and I block all notifications.

I grant Location, only as needed to get a driver or place an order.

Once I'm in the car, I turn airplane mode on, deny all permissions and notifications, and I reboot the phone.

Isn't it crazy that this is where we are now. Invasive tracking has become so normal that I have to manage the access an app has in such a tightly constrained way.

I'm starting to think a 2nd device that I leave turned off 99% of the time would be an easier way to sandbox apps I don't trust.

<comment><USER29> No taxis in your area? Maybe a central phone number you can call to hail one? Why Uber and all this trouble?

<comment><USER8> My guess is because Uber is subsidising the ride and providing convenient bill paying options.

</comment></comment></comment><comment><USER30> Yeah, after being a "dozen rides a week" Uber user for the last year, I switched to Lyft. There is just no reason for this.

<comment><USER31> How do you know Lyft doesn't do that? Any blogpost, article would be helpful. Thanks.

<comment><USER32> You don't know until someone investigates, obviously. But if you have to choose between an app that definitely does that and an app that might do it, it makes sense to use the one that might in the meantime.

There's an opportunity for Lyft to be "Uber, but for not scummy business practises" here, but I suppose most users don't really care. Austin would have been a good test of that, but Lyft withdrew along with Uber.

<comment> joatmon-snoo Lyft, sadly, doesn't seem to have the talent it needs to pull this off. Although they're still worth something, it just doesn't seem like Lyft will be able to eke it out unless something really game-changing happens to Uber.

I've been a longtime Lyft user because of the stories that surfaced a few years ago about Uber considering blackmailing reporters and politicians with their ride data, but the last time I had to use the app, Lyft for some reason just wasn't working - their auth service seemed to be broken. I ended up downloading Uber and signing up because I had to get somewhere in a hurry and didn't have the time to look up another rideshare service. Their text notifications about driver arrivals are also always off, on the order of up to a minute or two (I don't know if Uber is better, but I would assume it is.)

FWIW, I'd also sunk something like $300 into Lyft rides just two weeks before that for business travel, and I didn't experience a problem once.

<comment><USER33> Lyft engineer here, so bear in mind any bias, but we take account and data privacy very seriously, and have a data privacy team which focuses on these kind of issues.

From where I stand, we have great engineering and product talent. Perception is tricky - I see that we're very agile with (sometimes far) fewer resources, from the view I have.

I'd be glad to dig into the auth issues you ran into if you're able to ping privately with a few more details.

</comment></comment></comment></comment></comment><comment><USER34> > Uber collects your location data from the time of trip request through five > minutes after ends trip ends, including when the app is in the background. > We do this to improve pickups, drop-offs, customer service, and to enhance > safety.

Meh, sounds reasonable as long as they don't collect data outside this window (although they should not make it all-or-nothing, a third option of "While in use" would be better).

<comment><USER35> This is how the Overton Window shifts.

Trouble is, now I have to walk 5 minutes in the opposite direction before turning around and meeting my dealer / going to the brothel / whatever you don't want posted on paste bin.

Another issue arises when a "bug" records your location for 5 _hours_ instead of 5 minutes.

<comment><USER36> Yup, which is a strong possibility for Uber. I had an Uber charge me for a ride that continued for 12 hours after I had been dropped off. Uber had no problem billing me >$300 for this. If they don't have safeguards in place for questionable fare collection, they surely don't have safeguards in place for questionable data collection.

<comment><USER25> I'm not saying that didn't happen but it makes zero sense. The user chooses a destination and the app tracks where the driver is so it's reasonable to assume if the driver got within 100 meters of the destination the ride ended within 1-2 minutes of that time. They should just pad by 1-2 minutes and then assume the ride ended.

In fact they could make it the exception not to end it by sending a "How was the ride" message to both driver and customer and they both have to pick "Not finished" for it to continue.

</comment></comment></comment></comment><comment><USER37> I ranted about this last weekend. No app, positively no app, gets "always" access to my location info. I don't care what their "privacy policy" says.

I'm annoyed Apple even allows this. It shouldn't even be an option.

Clearly iOS needs more fine tuned permissions. I can share my location with a friend for an hour. I'd Uber wants 5 minutes worth then they should be granted 5 minutes worth. Not infinite and unlimited.

Uber used to work just fine with "while running" permission. They're removal of that is extremely user hostile. I deleted the app and will use Lyft instead. I suggest everyone do the same.

Waze also made a similar change. Waze also got deleted. We must not accept this behavior.

<comment><USER38> One thing iOS shouldn't allow is for apps to pick this all or nothing user setting. Apps should be forced to deal with user changing the location setting from always to only while using. If its an option in the OS , app developers, especially big ones like Uber will build for that experience.

<comment><USER39> Agreed! You should be able to give access to GPS only when running the app, I really do not like the All or Nothing policy. After all, there is no reasonable reason to justify the use of any phone resources when not using the app. In my phone Waze keeps using the GPS even if I kill the app and even after a fresh restart! I obviously deleted Waze now, but not without regret. :-(

</comment></comment></comment><comment><USER40> This is the perfect example of development for the sake of development. The new user experience is terrible and provides the user with zero extra benefits.

I seriously can't see how a product manager signs off on these updates.

<comment><USER41> I live in NYC with a lot of one-way streets, including my home. I actually use two different addresses for my home depending on whether I'm being picked-up or dropped-off. Otherwise, when being dropped off, Uber has sent me on some really odd detours just to get me exactly in front of my house. Instead, I'd rather get dropped off at a corner and walk 200 feet.

In theory, by collecting the location data 5 minutes after, they can get a sense of this where and to whom this happens, and automatically correct for it. I don't know if it'll work, but if it does, it'll definitely be a benefit to me.

<comment><USER42> This is exactly the kind of application that the data is going to be used for.

<comment><USER43> Says Uber.

Unfortunately - based on their history - you're working for an utterly untrustworthy company, no matter the smiley face of nice they're trying to paint themselves nowadays.

This is not directed against you. I appreciate that you're hanging in here and participate in the discussion.

</comment></comment></comment></comment><comment><USER19> In iOS, most apps request your location "Always", "While Using the App" or "Never". I had Uber set to the second; that option is now gone. It's always or never. Set it to never; this makes their app less usable, but that just nudges me to use Lyft, Juno, _et cetera_.

<comment><USER44> This makes the app flat out not work for me. I just get blank panes top and bottom.

[https://s11.postimg.org/by249fhsz/IMG_1459.png](https://s11.postimg.org/by249fhsz/IMG_1459.png)

<comment><USER45> Yep, I've got exactly the same yesterday until Uber asked me to grant "Always" location tracking. Not only I dislike the forceful location grant but they had a bug that didn't prompt me for it until I rebooted the app twice :)

</comment></comment></comment><comment><USER46> Putting aside all the other arguments regarding privacy, ethics, etc, I have a more acute issue: battery life. I allow almost no app "Always Using" privileges on location because of battery drain. I saw this update on Uber yesterday and now i've had to literally turn on and off Location services altogether when using/not-using Uber to prevent potential battery drain.

Over the weekend, now I need to run a test to see how Uber performs on the "24 hr Battery Usage" stats with Location always on. That is a lot of work for a retail device, but I'm also so dependent on Uber now (gave up having a car!)...

</comment><comment><USER47> I can't say I'm heartbroken that Uber disabled my account after my card on file was replaced (thanks Home Depot!) and I didn't update it. This wasn't even tied to requesting a ride, I think I'd opened the app to see what coverage in a suburban area looked like.

IIRC the "get my account back" process was going to involve sending a copy of my drivers license and the dead card which had been cut up several months earlier, and it just wasn't worth the hassle of even following up.

And this was even before all the "all your ride of shame are belong to us" brouhaha - so now they want to track your walks of shame as well?

</comment><comment><USER48> Why do we accept this intrusion into our lives?

<comment><USER49> I accept it because I don't really care if Uber knows where I am for a couple of minutes after they drop me off. Not everyone's cup of tea, but if you don't like it there's nothing stopping you from uninstalling the app.

<comment><USER50> Any you trust them (as a company) that they'll "only track you for 5 minutes after using the app", and you trust each of their staff members will have controlled/secured/audited access to only the 5 minutes location data after a trip, and you trust them to never deploy a production bug in their tracking code, and you trust every law enforcement or business partner request for that data including gag-order-backed-NSLs.

And that's OK - if you're good with that. Now go and ask some women you know whether they have all that trust? Or minorities. Or activists. If you were a Muslim or Mexican in the US right now - do you suppose you'd be happy leaving an Uber app with "Always" location tracking permission on your phone past Jan 20th? If you had a close friend legally and peacefully protesting the pipeline in North Dakota right now and you knew they used Uber - would you be checking that they know this?

I reject the position that because _you_ don't really care, that it's OK to "accept" this. Even though _you_ don't care, tell Uber you do not accept this because of what it means for your sister or friends or coworkers or neighbours or your allegedly "freedom loving" society...

<comment><USER42> It's worth noting that if Uber accidentally started collecting location data from every rider's phone in perpetuity while they're not on-trip, it would be a very big problem for Uber. That's an absolutely ridiculous amount of data and would easily overwhelm the service. You wouldn't have to worry about NSLs because the data centers would be a fiery mess of steel and silicon. Even if they weren't, the data is overwhelmingly not useful for anyone at Uber (how many hours of "sleeping at home" worth of data points could ever be used?), and it would be destroyed because it's a giant waste of resources.

Uber is big, but not that big. You're already volunteering your location for the service (by being in a car tracked by Uber), this simply adds a small margin of data at the end of the trip.

<comment><USER51> Efficiently storing and analyzing vast amounts of data isn't very difficult these days - esp if the data is something that they can monetize.

</comment></comment></comment></comment></comment><comment><USER52> This from the company who recently settled a fine with the A.G in New York for uasge of its "god view" tool:

"Uber and New York Attorney General Eric Schneiderman have reached a settlement over the company's "God View" tool, which allowed employees to access and track the location of Uber riders and customers without obtaining permission."

[http://www.theverge.com/2016/1/6/10726004/uber-god-mode- sett...](http://www.theverge.com/2016/1/6/10726004/uber-god-mode-settlement- fine)

</comment><comment><USER44> Yeah REALLY obnoxious. I was just disabling this after another Uber ride. They do not provide the option to enable location services only when the app is running on screen. I think it might be nice if iOS presented this option regardless of what Uber wants.

<comment><USER53> > I think it might be nice if iOS presented this option regardless of what > Uber wants.

I delete any application that requires all-or-nothing location privileges; if Uber acts this way now I'm done using Uber.

Being able to make it such that location services are an all-or-nothing proposition when there is clearly support for "only when using" in iOS annoys me to no end. The fact Apple _doesn 't_ do this is what is actually alarming, given their stance on "privacy".

<comment><USER54> >>I delete any application that requires all-or-nothing location privileges; if Uber acts this way now I'm done using Uber.

This is the calculated risk Uber is taking. Presumably they believe that they will only lose a tiny sliver of their user base over the all-or-nothing approach. Now that they're well past the "early adoption" phase in many markets this is a "smart" corporate play.

<comment><USER53> I am aware of the strategy behind Uber's move. My comment above is "count me out".

I doubt they'll lose even 1% of their installed userbase over this change.

</comment></comment></comment></comment><comment><USER55> I wrote to Uber a week back or so regarding this and this how they responded:

      My name is Pratik from Uber support, I hope you doing well !
      Sorry to hear about about your experience.. I completely
      understand that this wasn't the experience you expect with
      Uber.

      We are constantly working to improve the Uber experience and
      your input is crucial to doing so.

      I'll pass this along to the appropriate team.

      Thanks again!

\----

There wasn't a response upon posting a comment to their blog regarding the same.

<comment><USER56> That's the bullshit response they give you to anything that isn't solvable with a ride credit.

</comment></comment><comment><USER57> Uber is somehow ridiculously bad with giving directions. Despite manually entering the address for a number of places, Uber insists on directing drivers into unmarked alleys instead of onto the street outside. You know, the actual street that's _named in the freaking address_. Instead of invading their customers' privacy they could start by just using the information they've been given.

</comment><comment><USER58> How to delete your Uber account: [https://help.uber.com/h/24010fe7-7a67-4ee5-9938-c734000b144a](https://help.uber.com/h/24010fe7-7a67-4ee5-9938-c734000b144a)

</comment><comment><USER59> I actually noticed this - iOS has this nice feature of giving warnings like " _Uber has been tracking your location_ ", which was a WTF moment for me because I haven't used Uber that day at all. So in response I've cut its location access completely.

I've also had a similar experience with Waze. WTF are these apps doing with my location while I'm not using them?

Btw, for all the badmouthing I've given Apple and iOS over the years, this is one feature of iOS that I like. But I would have preferred the option to force location tracking only while using the app.

<comment><USER60> I was going to say that you can choose to only allow access to your location while using the app, but then I checked in iOS. Some apps only have the choice between always and never. Is it up to the developer to remove/put in the option "While Using the App"?

</comment></comment><comment><USER61> Isn't it reasonable to want a taxi service that doesn't track its customers beyond 1 single ride? For example, a regular taxi paid with cash?

<comment><USER62> I'm fortunate enough to have a small taxi service that operates near me. I probably spend more but I like their API: call the phone number and get a ride.

</comment></comment><comment><USER63> What about using m.uber.com with a browser that sandboxes location data requests effectively?

</comment><comment><USER64> "Uber collects your location data from the time of trip request through five minutes after the trip ends, including when the app is in the background" \-- Uber.

Is this legally gray, or am I paranoid?

Not-scary Interpretation 1: Uber collects location data from t_0 to t_1 _regardless_ of whether or not the app is in the background.

Scary Interpretation 2: Uber collects location data from t_0 to t_1 _and_ when the app is in the background.

I'm surprised they didn't start doing this 4 years ago.

Location data is _really fucking good_ data to have on people, which is why I would rather not be giving it away willynilly. Additionally, Uber's service is one of the few services where getting this data can be justified and seems less creepy.

</comment><comment><USER65> The situation is getting serious in general. There are many many apps that people use daily. How can one find out what data is being collected per application? It would be really nice to a have a web site where the community (technical people who can inspect the apps) could maintain this information per application and a user could see a simple green/red bullets and decide whether the app is worth it or not. Really, really high level, designed for end-user (non-technical).

<comment><USER66> F-Droid shows a list of antifeatures[0] along with the description of each application. Here is one example with the "tracking antifeature": [https://f-droid.org/repository/browse/?fdid=at.tomtasche.rea...](https://f-droid.org/repository/browse/?fdid=at.tomtasche.reader)

[0] [https://f-droid.org/wiki/page/Antifeatures](https://f-droid.org/wiki/page/Antifeatures)

</comment></comment><comment><USER67> I had to restore my iPhone from a week old backup in order to get the previous Uber version back. It's a shame there's no easier way to downgrade an app on iOS.

<comment><USER68> There is, but only if you update apps in iTunes on your computer instead of directly on your iPhone.

Basically, update the app in iTunes (which will send the old IPA package (which is still signed to your Apple ID) into the Trash / Recycle Bin, then connect your iPhone to your computer and sync to replace the old app with the new one. You'll still have the old IPA package in your computer's Trash / Recycle Bin, so if you ever need to downgrade to the older version of the app, just move it out of the Trash / Recycle Bin, delete the newer version of the app in iTunes, and then double-click on the old IPA package to have it open in iTunes. Then, you can just connect your iPhone to your computer and sync.

</comment></comment><comment><USER69> There is no chance whatsoever that I'm going to give Uber access to my location while not using the app, so this just makes it harder to me to be a customer.

</comment><comment><USER70> Ethics. I'm not sure when ethics will matter again. We almost need a movement from startups that promise certain ethics. It would be a refreshing change.

</comment><comment><USER71> There was an episode of the american version of the "modern Sherlock Holmes" TV series, "Elementary", where the plot revolved around a company akin to Uber (called Zooss in the show). It was particularly illustrative of how tempting it can be for internal employees to abuse that type of data. Among other things Sherlock was able to requisition a large fraction of the company GPS tracking data for his murder investigation. As a side effect he was able to figure out who was having an affair, who was going for an interview at a competitor's company, etc.

5 minutes after drop-off is quite enough to uncover where you meant to _really_ go if you gave a close-by address, in these scenarios.

That's pretty much what the OP meant with "So your secret rendezvous may not be so secret" but it's particularly poignant in a TV show.

</comment><comment><USER72> I noticed this in the past two weeks - as a result, if I use Uber, I toggle it on, and afterwards I turn it off. This is pretty crappy, I don't need an app punishing my battery by default just so they can collect more data.

It really makes me think twice about sticking with Uber.

</comment><comment><USER73> Uber also charges significantly different prices between users.

My friends and I did a test and each time, I keep getting charged at least $6 more.

[https://www.youtube.com/watch?v=EMm4ehc7oCw](https://www.youtube.com/watch?v=EMm4ehc7oCw)

<comment><USER74> That's clever of them. Perhaps your elasticity of demand is lower.

<comment><USER73> I was a huge fan until now. I'm really disappointed that they pick and choose who they think should pay more for the same ride.

<comment><USER74> I'm not. It's called "price discrimination" and if you don't do that at your business, you should. Whenever you hear a fun story about enterprise pricing, that's what it's talking about. Mobile phones make it more specific.

</comment></comment></comment></comment><comment><USER75> Uber is really a scummy company. And given their track record with absuing user data, I don't trust them at all with this new expansive data collection effort. Let's review the company shall we?

The CEO, Travis Kalanick, has used God View to monitor people for entertainment.[0] The head of their NYC office also go into hot water over using God View inappropriately[1]. At other companies, these would be fireable offenses. No second chances. Deactivate the counts. Escort them to the door. Mail them their stuff. At Uber, it's totally cool brah.

There's the whole "you're not our employee, but we pay you, and tell you where to go, and how to act."

They explicitly target low income people to be their totally-not-employees, through direct mail, and their "urban" "Get your side hustle on!" commercials.

Their auto financing product is predatory.[2] It explicitly targets people bad credit to lease a car they can't pay for unless they're constantly totally- not-employed-with Uber. The interest rates are usury levels of 22.75% APR.

Then of course there's the whole, "Fuck the law!" aspect of the company.

[0] [http://www.forbes.com/sites/kashmirhill/2014/10/03/god- view-...](http://www.forbes.com/sites/kashmirhill/2014/10/03/god-view-uber- allegedly-stalked-users-for-party-goers-viewing-pleasure/#5091567d3f84)

[1] [https://www.buzzfeed.com/johanabhuiyan/uber-is- investigating...](https://www.buzzfeed.com/johanabhuiyan/uber-is- investigating-its-top-new-york-executive-for- privacy?utm_term=.twjvZpzBx#.nnPWOkaRz)

[2] [http://www.marketplace.org/2015/05/13/tech/uber-drivers- stru...](http://www.marketplace.org/2015/05/13/tech/uber-drivers-struggle-pay- subprime-auto-loans)

<comment><USER76> I take issue with your summary. You forgot arrogant and douchy antics, documented in interviews, personal accounts, and other places.

<comment><USER75> When I visited them, I found the company was full of very young, very naïve, kool-aid drinkers.

</comment></comment></comment><comment><USER77> In android you can prevent apps from sending mobile data to the cloud in the background. Go to Settings > Connections tab > Data Usage, and scroll down to the app. There's a 'restrict background data' checkbox.

<comment><USER35> So they'll just record the data in the background and send it when the app is in use.

<comment><USER77> I agree, quite possibly, although not all developers are as competent as you'd hope / fear

</comment></comment></comment><comment><USER78> I'm not sharing my location with Uber anymore on my iPhone App. Pretty simple.

</comment><comment><USER79> Devil's advocate:

I had an Uber driver drop me off in a sketchy alley three blocks from the location I specified, but because he barely spoke a lick of English I had trouble communicating that it wasn't my stop.

<comment><USER80> They already had the data showing where he dropped you off, what do you think they're going to do with the extra data?

<comment><USER79> See where guests are dropped off, and where they go right afterwards such as if they're cutting trips short or being dropped off too far.

</comment></comment></comment><comment><USER81> I think they are doing this also to stop riders/drivers who game Uber. Riders walking patterns post-ride can be also used for predicting return pickup locations for concerts etc.

</comment><comment><USER82> Please forgive my ignorance, but do most hackers leave their phone's GPS antenna turned on most of the time?

And do most hackers update all their apps automatically? I generally do a "broad" update once or twice a year. And I update specific apps as needed (or desired). I would have assumed most hackers would do these kinds of things. It's like putting a tape "lid" over your webcam and only taking it off when you want to use it. Isn't it?

</comment><comment><USER83> re: Uber's reasoning one thing to keep in mind: this is the last opt-in user privacy hurdle for Uber.

From here, any change Uber or an acquirer make doesn't alert or ask users. always-on location tracking is ring0 of personal privacy. They can remove that 5 minute monitoring window any time with an app update.

Question isn't 'do I trust what Uber say to justify this change', but 'will I trust Uber to protect my privacy and security _forever_ '

</comment><comment><USER84> I am asking myself, if this could mean, we can "kill" Uber in Germany for good. Our data protection laws state, that you are only allowed to track the necessary data to provide the service.

Tracking users after the use a service is imho not really encompassing the spirit of the law.

Surely Uber lawyers could state that this is necessary information for making the service better for the user - like always.

Non the less - one more reason not to ever use a service provided by this company.

<comment><USER85> Not just Germany, I'm pretty sure this is an EU wide directive. For sure it's the it works in Ireland (where thankfully Uber has not had any success).

So Uber must have some view on why this does not contravene that directive, I doubt they have not considered it.

</comment></comment><comment><USER26> Am I the only one who thinks this is actually a very small amount of additional data to give up, and don't mind doing it? I'm willing to accept there's a small chance it might make the service a little better for me.

They already know exactly where I came from and where I'm going, what could I possibly do in the 5 minutes after getting dropped off that would reveal significantly more information?

</comment><comment><USER86> Great reason to use their Web app instead of the native one - <USER2> functionality, and no such worries.

</comment><comment><USER87> PrivacyGuard and Orwall prevent applications from using the internet/GPS without your express authorization. Anyway if you want absolute privacy toss your smartphone in the trash can, cancel your contract with your ISP, commit social suicide and go live off the grid.

<comment><USER88> Imagine if the Founding Fathers decided to forgo western civilization and go live in the woods as nomadic hunter gatherers instead of standing up to British oppression... Or if all the blacks just listened to Marcus Garvey and went back to Africa instead of participating in the American Civil Rights Movement. This is basically what you're suggesting.

We have the technological means to ensure reasonable levels of privacy. There's no excuse for lemon technology that exposes every intimate detail of our lives.

<comment><USER87> ... except Uber, Google, carriers, etc, are not oppressive.

<comment><USER89> The fact that nobody's used a nuclear weapon offensively since WWII doesn't mean nuclear proliferation is fine.

Similarly, the proliferation of extremely powerful information is obviously dangerous, regardless of whether it is causing active harm currently.

</comment></comment></comment></comment><comment><USER90> I am very irritated with this update, it is so unnecessary and iOS is complaining about the location access as well.

I dont see any possible use of tracking the location after the ride except tracking the users location and create a surge pricing out of it.

</comment><comment><USER91> Just wondering, are there virtualization/sandboxing apps/solutions that would let me create full emulated mobile environments into my phone and control all the sensor data that the environment is seeing?

<comment><USER55> Another possibility is to keep a dedicated phone for Uber. Turn it on _only_ when needed. Not sure how practical it would be, though.

</comment></comment><comment><USER92> Set to Never. Hum, I think I will give Lyft a try now. Never bothered to before.

</comment><comment><USER93> Quick check on my iPhone shows that it allows for (and is set to) "While Using the App" for location access settings. Running latest iOS release.

</comment><comment><USER94> Just uninstall the app after you get your ride, and reinstall it next time you need it.

</comment><comment><USER95> And I'm switching to Lyft

</comment><comment><USER96> Won't this drain the battery, with Uber's app running in background?

</comment><comment><USER97> Just lost me as a customer.

<comment><USER98> Me as well. A step to far for my liking.

</comment></comment><comment><USER99> Privacy-by-design now is more important than ever, this is why we build on this with [https://snips.ai](https://snips.ai)

</comment><comment><USER100> "Uber now discloses it does this"

</comment><comment><USER101> I voted with my wallet and deleted Uber from my phone. My little contribution to the world.

And wrote a message to my friends that I did so, and why they should consider it.

</comment><comment><USER102> According to the permissions request dialogue, "...We [want to collect your data even after you're dropped off] to improve pickups, drop-offs, customer service and to enhance safety..."

I don't buy any of it. Here's why:

IMPROVE DROP-OFFS: The most improved drop-off that Uber can deliver is the one I, the passenger, gives them, either verbally to the driver, via GPS by them noting the point where I was dropped off, or via GPS by me entering my destination location. Normally, I ask to be dropped off where it's most convenient for me, and the most convenient for me is the best drop-off experience possible. Even if after being dropped off, I go to a final destination for which Uber reckons a better drop-off point than the one I chose exists, it's not for Uber to say, based on where I am going, what my best drop off point is. That's for me, the customer, to say. Since when does a cab tell you where to drop you off? Unless I don't know where I am going, in which case Uber already knows what the best drop off point is, and has no need to further improve it.

IMPROVE PICKUPS. Presumably, the pickup will be improved based on historical location data, which tells them, this guy actually goes/lives/drinks/et here, something we know coz we tracked him last time he used Uber. Again, when I board a cab, I go to the point of most convenience for me. I'd probably have a cab come right to my bedroom door inside my house if it were possible, but since it's not, I choose the next best possible point, which is normally the same place they dropped me off at if they're the ones who brought me here. Same argument applies: unless I'm a stranger, my choice of pickup point is the best pickup point experience possible, and needs no further improvement. If based on where I'm coming from, Uber reckon there's a better pickup point, it's not for them to say. They're a cab. A cab comes get you where you want it to come get you, the location of your bedroom door and other laws and issues permitting.

CUSTOMER SERVICE: This sounds tenuous. Nothing that I can think of that can be termed as good customer service from a cab company would be improved by tracking my movement after the cab has dropped me off. Some good customer service issues have nothing to do with my location, and the two that do are the ones I've discussed above.

ENHANCE SAFETY. Again, tenuous without more explanation. How does knowing where I go after you drop me off enhance safety either for myself or the driver?

I've seen a comment from some who says they work at Uber saying that this helps to figure out where the pick up spots for each address are, that a large building may have multiple points where people get picked up or dropped off. Which sounds reasonable, until you realize that the point that I got dropped off is the best one for me, which is why I chose it, and you, Uber, already know that because you've just dropped me off. Tracking me AFTER dropping me off doesn't make your knowledge of my best drop off more accurate, it makes it less accurate since I'm moving further and further away from the best drop off point as you continue to track me.

<comment><USER100> > Normally, I ask to be dropped off where it's most convenient for me, and the > most convenient for me is the best drop-off experience possible.

Big brother knows best, surrender now, you'll be assimilated.</comment></comment>


The making of the Raspberry Pi Model B+ - <AUTHOR> http://www.raspi.today/the-making-of-the-raspberry-pi-model-b-plus/

<comment><USER2> Got my B+ yesterday, and it is much nicer than I expected. The fact that all ports (especially USB, HDMI and USB power) are on 2 sides is so pleasant in practice. Previously the cables were all over the place.

BTW I've seen the B (without the +) on sale as low as 19 EUR - just in case anyone was on the fence about getting their Raspberry Pi...

<comment><USER3> How is the I/O speed? With my current pi B I can get max 2 mb/s when I rsync to my macbook from a usb-disk. Has this increased?

<comment><USER4> If you care about I/O, you should look into the Banana Pi, it's like a really souped-up Pi with a lot of power, like fast Ethernet and a dual core processor. Of course, it also draws more power than the Raspi, but it's still a pretty good tradeoff.

<comment><USER5> "Banana Pi" is absolutely different from Pi. Some comparances: [http://hardware-libre.fr/tag/banana-pi/](http://hardware-libre.fr/tag/banana- pi/)

<comment><USER4> Yeah, I should have made that clearer. It's not a Raspberry Pi. Obviously, if any of the differences is a showstopper for you, don't use it. Personally, I'm happy with my Raspis and I have no experience with the Bananas.

But "absolutely different"? And then putting the name of the Banana in scare quotes? That's a purist's perspective.

Judging from the comment I was replying to, it seemed that the poster was less interested in an absolute clone of the Pi, but was in fact looking for something Pi-like with more I/O power.

That assumption may have been wrong or not, who knows. I just felt like putting it out there as an option, which judging by the moderation wasn't warranted. Sorry about that.

</comment></comment></comment></comment></comment><comment><USER6> The best part about the Model B+ is the better power management. One of the huge issues with the older model is that it was super inefficient with power. Based on our initial tests (and covered in this article) they made some huge improvements in the power. This makes it much easier to power by alternate means (IE stick in a robot or power with batteries or solar). Pretty awesome step forward!

</comment><comment><USER7> I've really been enjoying the new podcast they're putting out. Some great interviews with big (and not so big) names.

www.raspi.today/category/podcast/

</comment><comment><USER8> Just as a side note, its great to see someone trying to make good use of the new top level domains.</comment>


Illuminated.js – 2D lights and shadows rendering engine for HTML5 applications - <AUTHOR> http://blog.greweb.fr/2012/05/illuminated-js-2d-lights-and-shadows-rendering-engine-for-html5-applications/

<comment><USER3> This is very cool -- I love that we're seeing more and more open source work on making web game engines that are not Flash. Stuff like Angry Birds and Cut the Rope were very cool, and it's good to see more frameworks and libraries for taking some of the effort out of it and making it more mass-market.

One thing that excites me especially is that a simple game creation engine in the browser might be a great chance to excite kids about programming with a very low barrier to entry.

</comment><comment><USER4> It's neat but it runs at about 5fps on my fairly new laptop. No-one is putting that in a game and I can't imagine how it'd work in an app.

Still cool as a tech demo though.

<comment><AUTHOR> Performance has been my focus on this work, I use a lot a cache canvas to not redraws gradient and path things but just copy caches. But i'm stuck on Canvas and requestAnimationFrame performances. Let's hope it will continue to improve, otherwise I could try to use WebGL but it will not be supported by every browsers for today.

Do you use a lot of sampling in the lights? I reach good fps on my macbook pro, especially on Chrome (but also on my home computer under Linux).

I hope we can use it with less sampling and less compute() calls for our games :)

<comment><USER5> I feel you. I'm doing 2d game in html5 (I have 2 rendering engines - <USER2> canvas, and webgl). Webgl works great, but works on small percentage of browsers, canvas version runs with ~ 45 FPS in 1280x960 on my 2 core celeron 2Ghz. And the main problem is just fill rate - I have background, and scrolling terrain, so I need to clear whole window every frame, and less than 50 (64x64 pixel) sprites at one time on screen. That's already too much for canvas to redraw at 60 FPS.

<comment><USER6> Are you currently prerendering to a separate canvas? Drawing it to a different (hidden) canvas, grabbing the image data, and just pushing that to the actual canvas might be a bit performance boost.

<comment><USER5> I've just tested. The fastest I get (37% time in drawing according to chrome profile, and ~45 fps) is when I draw everything moving to one, visible canvas, that I clear at the start of each frame, and everything static (background) is on another canvas, that isn't changed when it's not needed.

When I draw everything moving to off screen canvas, and then drawImage this off screen canvas into visible canvas, I get 48% of time in draw function, and ~35 fps.

It is indeed faster to draw everything to off screen canvas, than to on screen one (when I commented out copying off screen canvas to on screen canvas, and left only drawing sprites and tiles to off screen canvas - I got steady 60 fps, but obviously nothing is visible then :)). And copying whole canvas to the visible one is still slower, than drawing the sprites and tiles on the visible canvas in the first place.

But thanks for ideas.

<comment><USER6> Are you redrawing every time to the invisible canvas, or are you saving the data, and just pushing that to the screen? I'm not entirely sure if this is plausible for you situation, but take the event of a game like mario. The ground on the bottom can be drawn one time grabbing each tile from a tile sheet, and then you can save that bitmap data, so you cut out having to 'pick out' each tile, and just push that data to the screen. Any chance you have an example of what you're doing for your sprite\tile layer? I believe it can be a bit fast this way, but we may just not be on the same page.

<comment><USER5> I have 4096x4096 tiles 64x64 pixels each. I can't draw that to off screen canvas at once. I only draw tiles that are visible, and terain is mostly empty (some platform in the air), than I don't draw anything obviously.

My fastest code:

        for (var y=y1; y>=y0; --y) {
            var resultY = (0.5+
                (level.topLeft.y - camera.position.y + camera.screen.height / 2 +
                level.cellHeight + y * level.cellHeight-level.cellHeight)
            )|0; // fast clip to int
            for (var x=x1; x>=x0; --x) {
                var tileImageNo = level.layers[z].cells.valueAt([x, y])-1;
                if (tileImageNo==null || tileImageNo<=0) {
                    //nothing to do
                } else {
                    ctxOnScreenCanvas.drawImage(
                        tiles[tileImageNo],
                        (0.5+
                            (level.topLeft.x - camera.position.x + camera.screen.width / 2 +
                            level.cellWidth + x * level.cellWidth- level.cellWidth)
                        )|0, // fast clip to int
                        resultY
                    );
                }
            }
        }

I've also tried drawing to OffScreenCanvas in the loop, and then drawing that canvas to screen, but it was slower.

I could try drawing to off screen canvas only when player moves out off current off screen canvas, but that will trade small delay each turn into big delay every N turns, and that's even worse. But I'll try that.

EDIT: cuting out not important code.

<comment><USER6> Gotcha, my suggestion, might require too much change to be worthwhile, but won't hurt to say it. Here is the assumptions I am working off of:

\- You have a background layer, lets just say it's a blue background \- A middle layer, lets say clouds that move as you move to the right \- And a tile layer, which draws the sprites, and the tiles of the maps

For the tile layer, we can break it down into two separate groups, animated sprites, and static sprites.

The static sprites, can be drawn to the offscreen canvas, and you get the imageData from that one time, and then push that data to the screen there after. Then the animated sprites will just be drawn to the on screen canvas every time. <http://imgur.com/n6RFF> The stuff that should be drawn to the offscreen canvas, then grab the image data has gray around it, and the animated sprites are in the green.

So for drawing the tiles of the map we only have to loop through the tile data, one time, and after that if the imgData remains valid (a separate flag) we can just push that imgData to the screen.

This would also allow drawing section of the screens on the offscreen canvas in chunks, and storing that draw to just be pushed to the screen at appropriate times.

I don't know if I explained it very well, I could probably through together a crappy little demo if you'd like.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Nice. Looks like the lights are represented as single points, so even making it bigger still produces the "on/off" effect when moving objects in front of the light.

<comment><AUTHOR> you are right, I ignore the light if its center is inside an object, it was before I implement these samples. I should still fix it, maybe it's just by removing this check but I remember having some strange effects.

<comment><USER8> Your comments in this thread are informative and polite, I have no idea why someone downvoted all your comments...

</comment></comment></comment><comment><USER9> I found a bug. At a certain distance the shadow disappears for an object.

[http://demo.greweb.fr/illuminated.js/#{%22lights%22:[{%22ins...](http://demo.greweb.fr/illuminated.js/#{%22lights%22:\[{%22instance%22:%22Lamp%22,%22position%22:{%22x%22:377.5,%22y%22:215.316650390625},%22distance%22:170,%22diffuse%22:0.8,%22color%22:%22rgba%28254,191,136,0.8718296881574732%29%22,%22radius%22:3,%22samples%22:9,%22angle%22:0,%22roughness%22:0})],%22objects%22:[{%22instance%22:%22DiscObject%22,%22center%22:{%22x%22:313.5,%22y%22:190.316650390625},%22radius%22:34},{%22instance%22:%22DiscObject%22,%22center%22:{%22x%22:175.5,%22y%22:146.316650390625},%22radius%22:38},{%22instance%22:%22PolygonObject%22,%22points%22:[{%22x%22:426.5,%22y%22:82.316650390625},{%22x%22:449.5,%22y%22:189.316650390625},{%22x%22:481.5,%22y%22:143.316650390625},{%22x%22:487.5,%22y%22:94.316650390625},{%22x%22:487.5,%22y%22:87.316650390625},{%22x%22:433.5,%22y%22:32.316650390625},{%22x%22:381.5,%22y%22:42.316650390625},{%22x%22:346.5,%22y%22:136.316650390625},{%22x%22:346.5,%22y%22:138.316650390625}]}],%22globals%22:{%22maskcolor%22:%22rgba%280,0,0,0.9%29%22}}

</comment><comment><USER10> After playing around a bit, my browser history has thousands of entries from this site.

<comment><AUTHOR> Sorry for that, I though having this

        history.replaceState({}, title, "#"+hash);

would have fixed it.

( [https://github.com/gre/illuminated.js/blob/master/demo.js#L1...](https://github.com/gre/illuminated.js/blob/master/demo.js#L162) )

Any idea?

<comment><USER11> I'm curious behind the reasoning in putting that information in the URL in the first place.

<comment><AUTHOR> you can refresh / bookmark / share the page URL at any time and you will retrieve your work.

And also I don't have to store anything on my server, bit.ly like services are the new way of storing the information :)

</comment></comment></comment></comment><comment><USER12> Have you considered MIT (or at least LGPL) instead of GPL licensing? Only other open source games or apps will be able to make use of this as-is. Of course that's certainly your right to do, just wanted to ask.

<comment><AUTHOR> AFAIK, with GPL you are allow to use the library in a proprietary project but if you modify it, you must publish the library modification, not the whole project.

Am I wrong?

<comment><USER12> That's not correct (at least not according to my understanding). GPL license "attaches" itself to any project that uses it. So by including any GPL licensed library, you must also release the source code of the thing you are including it in. The LGPL allows you to use the library in a project and only commit back changes to the library but not open source the project you use it in. So if that's your intent (to just make sure that library-level changes are contributed back, but not to only restrict usage of the library to fully open- source projects), I would suggest going with LPGL (or, again, MIT, if you want people to be the most comfortable including your library in their projects). More info here:

[http://stackoverflow.com/questions/94346/can-i-legally- incor...](http://stackoverflow.com/questions/94346/can-i-legally-incorporate- gpl-lgpl-open-sourced-software-in-a-proprietary-cl)

<comment><AUTHOR> Thanks for that, it was always unclear in my mind, now it's clear!

ok so I'll move it to LGPL soon then ;)

Yep, This is what I want for Illuminated.js. I prefer to have benefits of the library modifications. It's a bit more restrictive coming from MIT (I used to use it for some projects) but it's not as restrictive as a "non-commercial only" license, so IMO it's quite ok, it's a minimum of thanks to the library.

Regards

<comment><USER13> The problem with the LGPL is that it's designed for code that is compiled and binary linked, which makes it harder to reason about for JS code.

Additionally, afaict, it's problematic to use on embedded, closed platforms, such as iOS.

</comment></comment></comment></comment></comment><comment><USER13> So, if I have one light, and an object casting a shadow, and then another object inside the first's shadow, the area that is obscured by both objects is darker than one obscured by just a single, this is an inaccurate lighting model, and looks sorta ugly.

</comment><comment><USER14> Now the site seems down. Does anyone have an alternative link?

</comment><comment><USER15> cool, but I think it should've done in webGL

<comment><AUTHOR> you are right! For sure it would be more efficient, and shaders are incredibly powerful. I have considered that, but it wouldn't work everywhere today. So for now I have this implementation I will use for my web games ;)

</comment></comment><comment><USER16> I was really hoping this would put gold-leaf illustrations in the margins of my webpage for me.

</comment><comment><USER17> Very cool. One issue I saw was that the shadows actually show on top of other objects.

<comment><AUTHOR> Thanks.

Yeah, I need to fix that, this is link to my wrong sampling implementation.

If you use only 1 sampling you will see it is fixed.

<comment><USER11> Related to that is that objects overlapping create overlapping shadows. Which makes sense considering how your render engine seems to work.

Might I suggest instead of a solution in real time, how about a static deal that essentially generates a lightmap to overlay on top of the scene? I can think of several uses for that.

</comment></comment></comment><comment><USER18> This was pretty cool, but I couldn't help being struck by how utterly poorly it performs, especially as soon as you add just a handful of objects and two light sources. Sure, it's written in JS, but JS has come a long way in terms of performance, and so have our computers.

This demonstration instantly makes me think of Blizzard's Diablo II from 2000, which features an identical effect during gameplay, with a seemingly infinite number of shadow-generating obstacles and as many light sources casting shadows as there are players on the screen, and it runs perfectly smooth even on a 500mhz P3.

<comment><USER11> I think you're comparing an apple tree with a matter replicator that makes apples.</comment></comment>


Show HN: A Game Boy emulator in C++ - <AUTHOR> https://github.com/Dooskington/GameLad <comment><USER2> Does anyone know how to install this on ubuntu? I've tried using make but i get '#include "SDL/SDL.h"'as an error

<comment><USER3> I'm guessing to build from source, you would need to install SDL for development:

        sudo apt-get install libsdl2-dev</comment></comment>


One Year Google Free - <AUTHOR> https://medium.com/p/one-year-google-free-59e0afb68328 <comment><USER2> >One Year Google Free

Publishes on Medium, which asked me to sign in with my google account...</comment>


The State of Owner-Controlled Computing as Talos Winds Down - <AUTHOR> https://www.crowdsupply.com/raptor-computing-systems/talos-secure-workstation/updates/the-state-of-owner-controlled-computing-as-talos-winds-down <comment><AUTHOR> This was previously on HN but only got a few comments, and in light of today's confirmation that AMD has no near future plans to open up its PSP it seemed worth a repost. With AMD's announcement post-2006(Intel)/2013(AMD) x86 will remain with a fully manufacturer-controlled access module for the foreseeable future, ARM is a mess, so OpenPOWER remains worth at least keeping in mind as a hedge. Raptor is apparently trying again with a "Talos II" system [0] based on the upcoming general release of POWER9, though details remain unclear as it won't even be open to pre-order until next month, if they hit their target.

It's doubtful, even with the technical community controversy around the ME earlier this year, that there will be much general willingness to pay a significant premium for owner control unless something extremely malicious, widespread, and _directly end user noticeable_ (as something other then some slowdown) takes advantage of a hole or capability related to it. But I don't think it's unreasonable to keep it in the back of our minds, or for big enough open source projects to at least attempt to keep some flexibility with regards to not letting themselves fall too deeply into x86-only design. Also, though it's not free multi-architecture work can healthy for project self-discipline and useful in finding bugs regardless of whether it's ultimately deployed beyond the primary target.

\----

0: [http://raptorcs.com/TALOSII/prerelease.php?target=2](http://raptorcs.com/TALOSII/prerelease.php?target=2)

</comment><comment><USER2> I find this kinda confusing, seeing how there's a link [0] to the "Talos II" Power 9 workstation 'pre-announcement' page (or whatever polite folks are calling vapourware these days) here today as well.

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

<comment><AUTHOR> Talos II is a followup to to their attempted crowd funding attempt of a POWER8 based "Talos Secure Workstation" last year, which did not meet its funding goal and failed. This article is a sort of post-mortem by them on why they thought it mattered and was still worth pursuing, and after the last 6 month's developments in x86 it seems worth a revisit (and perhaps some of the works exploring a tightening grip on general purpose computing by Cory Doctorow and such). They made some basic blunders in the launch of their crowd funding campaign, such as only offering a maxed out super expensive workstation at the start and adding still expensive, but much more sane options later. It's hard to say whether that would have actually made any significant difference given how far they were from their minimum target, but that sort of thing does sap momentum. Perhaps they've found a better angle with lessons learned (or the economics have improved since last year).

They claim Talos II will be open for pre-orders next month, so whether it ends up being vaporware may become at least somewhat clearer at that point (an actual preorder certainly isn't shipping, but it's more serious then a mere announcement or "coming someday" product page too). It's not as if POWER9 is generally available yet anyway.</comment></comment>


Python 2.8 debate escalates, BDFL: "Bring in the Lawyers" - <AUTHOR> https://github.com/naftaliharris/python2.8/issues/47#issuecomment-266470996 <comment><USER2> This is exactly why we still need the copyright system in the US.

<comment><AUTHOR> I'd be surprised if anyone was in favor of abolishing copyrights altogether. IMO, IP reform should include shorter terms for copyright, better legislation on "novelty" and "business process/methods" for patents, "shopping" for US District Court for E. Texas, and better staffing for USPTO.

But I'm confused how this is relevant. The license associated with PSF's copyrights explicitly grant them permission to fork CPython and make no restriction on naming.

It's Python's trademark that offers Guido et al the opportunity to dispute this project's name.

I'm a little on the fence. I don't feel betrayed, I think moving on to py3 is not earth-shattering and simple enough. But I can see that there's no technical reason why we can't backport features to 2.x, it's just a carrot to get folks to move to py3. Ultimately I think PSF will win hands down and calling this new project "<prefix>-Python" or "Python-<suffix>" will be a simple compromise.</comment></comment>


"Houston, We've Had a Problem" (1975) - <AUTHOR> http://www.hq.nasa.gov/office/pao/History/SP-350/ch-13-1.html <comment><USER2> Although 13 was quite a near-disaster, I'm surprised that there isn't just as much attention to how much 11 very nearly was a disaster too.

During 11's descent to the moon the LEM's computer was overloaded and started throwing alarms. In addition Neil Armstrong and Buzz Aldrin realized the craft overshot its intended landing spot and was heading for a field of rocks and boulders where landing would be impossible. What saved them is Neil taking manual control of the LEM, finding a smooth landing spot, and touching down the LEM with only seconds of fuel to spare.

Neil's landing is in my mind just as amazing as the recovery of 13. There was no way Neil could have really prepared for a manual landing in the low gravity of the moon. In fact when they tried to test it on Earth, it very nearly killed him (see [https://www.youtube.com/watch?v=QDI8SQ2fmLA](https://www.youtube.com/watch?v=QDI8SQ2fmLA)). It was purely Armstrong's intelligence and attitude under pressure that got 11 on the moon safely.

And if you learn more about Armstrong you'll see it was no fluke how he performed on 11's landing. When testing the X-15 rocket plane he lost control and skipped off the top of the atmosphere but was still able to save the flight. Or during Gemini 8 when a thruster got stuck he aborted the docking attempt and fired the re-entry thruster to regain control (all of this while the craft was spinning more than once a second! [http://news.discovery.com/space/history-of-space/neil- armstr...](http://news.discovery.com/space/history-of-space/neil-armstrong-at- the-helm-120730.htm)). There's a great write-up here with more details on his amazing performances under pressure: [http://www.wired.com/2012/08/neil- armstrong_test-pliot/](http://www.wired.com/2012/08/neil-armstrong_test- pliot/)

Without Neil Armstrong Apollo 11 very likely would have ended with Richard Nixon reading this somber message to a devastated nation: [http://watergate.info/1969/07/20/an-undelivered-nixon- speech...](http://watergate.info/1969/07/20/an-undelivered-nixon-speech.html)

<comment><USER3> > Neil's landing is in my mind just as amazing as the recovery of 13.

You're giving short shrift to Aldrin (and the training they all received) by calling it "Neil's landing". The whole team (Armstrong/Aldrin/Collins) were extraordinary.

What made this clear to me was reading the transcripts of the LEM flight recorder (can't find them right now, just the audio, but they are on the NASA web site). I read Aldrin reading out meter values to Armstrong, who was looking out the window.. then realized that Aldrin couldn't see out the window and wasn't giving out readings in a fixed order! Instead he was scanning all the readings and relaying what he thought he'd want to know if he'd been the one looking out the window (without knowing what Armstrong could see). And Armstrong never asked for a reading; he assumed Aldrin was telling him just what he needed to know and nothing else.

That reflects an extraordinary degree of training trust and teamwork.

<comment><USER4> All the Apollo astronauts were legendary test pilots (except Dr Harry Schmitt) [0]. Buzz and Neil are the ones everyone remembers, and they earned their place on that mission, however it took a huge team to get them there.

When Apollo 13 had the explosion, other astronauts including Ken Mattingly, and John Young, had a significant role in helping get them back home.

Astronauts were not just great pilots, but they knew how to work with a team. No astronaut would get selected if they were a great test pilot, but couldn't work as a crew. One particular test pilot (Chuck ..) who never became an astronaut is a classic example of that.

[0] [http://en.wikipedia.org/wiki/Harrison_Schmitt](http://en.wikipedia.org/wiki/Harrison_Schmitt)

</comment></comment></comment><comment><USER5> I was honored to have dinner with Ken Mattingly a couple of years ago, and am looking forward to meeting Jim Lovell later this year. I've now met and talked with five Apollo era astronauts, and they are genuinely amazing. True gentlemen with wonderful stories, and self-deprecating. All amazingly skillful with hundreds of thousands of hours of technical training. And all different in their own way - all individuals.

And all slightly embarrassed because they were just doing their jobs, and little or no credit is given to the hundreds of thousands of people on the ground who did their jobs and made it possible.

<comment><USER6> "And Houston, as I step off at the surface at Taurus- Littrow, I'd like to dedicate the first step of Apollo 17 to all those who made it possible." \- Gene Cernan

</comment></comment><comment><USER7> If you enjoyed this story, I recommend "The Martian" by Andy Weir. It reads like it was written by an engineer (it was) and is a thoroughly researched, fun read.

</comment><comment><USER8> > With the wisdom of hindsight, I should have said, "Hold it. Wait a second. > I'm riding on this spacecraft. Just go out and replace that tank."

That's crazy. I didn't realize the tank was acting funny before they even took off. To me, the risk-adverse non-astronaut, that seems like something that would've triggered big ominous "DANGER" signs going off in my head.

I guess that's the benefit of hindsight, though.

<comment><USER9> Anything that complex _always_ will have things acting funny.

<comment><USER8> Heh, that's fair.

</comment></comment></comment><comment><USER10> I didn't particularly notice the background pattern but cycling through that story was really a great read. To put yourself in those shoes really had me going. Absolutely amazing what these young men did.

</comment><comment><USER11> > Since Apollo 13 many people have asked me, "Did you have suicide pills on > board?"

I would have to imagine that if the circumstances made it obvious that returning to Earth was impossible, the astronauts probably would have chosen to end their days on the surface of the moon. Assuming the LM could land with three on board.

<comment><USER12> Buzz Aldrin was asked how he would spend his last hours alive on the moon if the ascent engine had failed to light and left them stranded.

His reply was that he would spend that time trying to fix the engine.

I don't think they ever would have given up like that. You keep trying things to save it until you're dead, even if it's obvious that you're not going to make it.

<comment><USER13> To me, it's more important to realize that you're never not going to make it. You're either trying to make it or you've already failed.

</comment></comment></comment><comment><USER14> The Apollo 13 explosion turned out to be a magnificent example of "false redundancy". By packing the three (supposedly redundant) fuel cells tightly together, NASA actually tripled the chance of losing all power. They now had three fuses that might be the wrong wattage. (As I remember what I've read, someone got but never read a memo that the fuse wattage had been changed in the fuel cell design - the memo was found speared with many others in an unread pile after the accident.) Reading the details of Musk's designs his team really does seem to understand what redundancy is and is not. It's all too easy to get wrong.

</comment><comment><USER15> There's a very nicely presented transcript of this mission (and others) on spacelog.

[http://apollo13.spacelog.org/](http://apollo13.spacelog.org/)

</comment><comment><USER16> Do people put these background patterns behind text expressly to hamper legibility?

<comment><USER17> According to a comment in the source, the page seems to be from 2001, when people didn't know better. Also look at that tell-tale footer!

<comment><USER18> > "when people didn't know better"

My god, what do you think 2001 was, the stone age?

<comment><USER19> When i hear "the startup bubble of 2001", I always take a moment to imagine what was a startup in 2001. I imagine an HTML 2 page with no Javascript and an ad banner at the top, inlined styles and <blink> tags... Like Altavista or Yahoo.

So in truth, what were webpages before 2006?

<comment><USER5> My site is still pretty much as I originally had it in the mid to late 1990s: [http://www.solipsys.co.uk](http://www.solipsys.co.uk)

Didn't know better then, don't know better now. Still prefer content over style.

<comment><USER20> [http://www.solipsys.co.uk/new/DistanceToTheMoon.html](http://www.solipsys.co.uk/new/DistanceToTheMoon.html)

OK, I'm intrigued and will be thinking about that one when I'm getting my students into their exam on Monday...

[http://sohcahtoa.org.uk/](http://sohcahtoa.org.uk/)

1992 style. See html comments for the reasons...

<comment><USER21> I still see a lot of web pages like that among computer science academics, especially those who are of "pre-internet" generations. E.g [http://www-cs- faculty.stanford.edu/~uno/](http://www-cs-faculty.stanford.edu/~uno/)</comment></comment></comment></comment></comment></comment></comment>


Japanese Multiplication - <AUTHOR> http://www.youtube.com/watch?v=e-P5RGdjICo

<comment><USER2> There was significant discussion of this when it was submitted 8 months ago:

<http://news.ycombinator.com/item?id=1308444></comment>


Lessons from the PC video game industry - <AUTHOR> https://medium.com/@cdixon/lessons-from-the-pc-video-game-industry-3350bb7713de <comment><USER2> > Legally, it would probably be easy for the games industry to crack down on > broadcasting, but instead they have encouraged it, seeing it as a new way to > engage users and generate revenue.

Nintendo is a notable outlier in this instance. They are notoriously strict about broadcasting games, to the point where even many reviewers simply won't touch their games. Even though a review is absolutely protected by copyright law, it's just not worth the effort when all of the industry's video hosting services are stacked in favor of games publishers and developers. [0]

SEGA also has a sordid history in this regard, having sent out huge swaths of takedown requests on YouTube, effectively shutting down many content creators and endangering the livelihoods of even more. [1]

[0] [http://www.forbes.com/sites/insertcoin/2015/02/06/nintendo-u...](http://www.forbes.com/sites/insertcoin/2015/02/06/nintendo- updates-their-bad-youtube-policies-by-making-them-worse/)

[1] [https://www.techdirt.com/articles/20121206/17321021296/sega-...](https://www.techdirt.com/articles/20121206/17321021296/sega- goes-nuclear-youtube-videos-old-shining-force-game.shtml)

<comment><USER3> Nintendo is an outlier in another sense too. They straight-up do not understand the internet and customers. This is evidenced by how very long the 3DS account system had games you bought online tied to the physical machine, instead of the account you used. They're not strict. They're just helplessly ignorant.

<comment><USER2> I think it's a bit of a culture clash. Nintendo of America seems to do what they can, given the short leash Nintendo of Japan has them on.

There seems to be something about Japanese culture that is fundamentally incompatible with the "share everything" West.

<comment><USER4> They just don't buy into the subscrption model at all and it is not limited to just games. A lot of major Japanese music labels pulled their titles from Apple Music lately because they worry that it competes with the sales of physical albums, without realsing that the market has been in decline for at least a decade.

</comment></comment></comment></comment><comment><USER5> The author paints a rosy picture of PC gaming, but in my experience (I work for a AAA game studio) PC sales are by in far the least profitable (10%~) and the most likely to cause piracy (crackers even use the PC version to figure out how to reverse engineer the console versions)

This would tell me that we simply don't know how to make games for the PC platform; but the author also ascribes the freemium model to PC gaming- which I personally see as a blight on gaming and firmly in the realm of the smartphone market..

or at least they do it more tenaciously.

<comment><USER3> On the other hand games on PC have a much longer tail with much less effort and can often bring in money decades after release (see GOG). There's also a difference in store design that makes it really easy to find things on steam you didn't know before and are relevant to you, even if they're really old; while the stores on consoles are utterly useless if you are not buying the newest games or know which game you're looking for.

As for the freemium comment, you didn't understand him correctly. There's different ways to do freemium. One way is to sell cheats, and design the game so it becomes progressively more unfun to play without cheats. (mobile games) The other is to make the game free to play and offer either cosmetics (tf2) or pieces of the gameplay (warthunder) for cash. The latter is really nice, and seems to happen exclusively on PC.

<comment><USER2> I'm utterly baffled at how terrible the Playstation 4 store experience is. I can't help but think it's somehow intentional, but for the life of me I can't figure out why.

<comment><USER3> It's not intentional. Just like Nintendo, Sony is just very helplessly ignorant about many things. Even their webstore has childlishly naive failings. They recently added a wishlist, which has a maximum of 100 entries, and doesn't automatically remove games bought. As well, when they update the webstore, on tuesday, it becomes a literal minefield because they update every single item slowly, over the course of 3-4 hours, in production, and often the storefront will display different prices for items than you see in the cart.

</comment></comment></comment></comment><comment><USER2> > A close cousin to crowdfunding is the trend of pre-releasing games before > they are finished.

This has contributed to a disturbing trend of actually releasing games before they are finished. AAA titles have been released in the past couple of years that should have been delayed several months to be fixed and polished first. Batman: Arkham Knight was so terrible on PC that all stores offered no- questions refunds, and even stopped selling the game altogether until it was patched. Fallout 4 committed the cardinal sin of tying physics to framerate, so people with high-end gaming machines are actually experiencing more bugs and issues than most, unless they cap their framerates.

<comment><USER6> You're right on Batman and the general theme, so I upvoted you, but you're totally wrong about FO4.

Physics are _always_ tied to framerate. There is not a game physics library in wide use that is independent of update rate. In practice what usually happens is that the physics library has an internal tick rate (say every 1ms or every 2ms) and every frame N physics ticks occur to catch up. Without this, the physics sim would be dangerously unstable (and in practice, it still is).

There are many other places where game code is typically framerate dependent, not just physics. Even games that are 'framerate independent' are often framerate dependent in very subtle ways, such that players with high or low framerates gain an advantage or experience unique bugs. Most parts of a game are not continuous equations that you can perfectly evaluate at any point in time; there are always 'frames'.

So ultimately, this is not some unique cardinal sin FO4 committed. It's just another in a long series of Bethesda titles that ship incredibly buggy and broken and don't get fixed, largely as a result of the way they build software. The incredible scope of their games is a factor, though, as building games that large is EXTREMELY HARD.

Ultimately you should consider people talking about FO4 framerates that way to be in the same bucket as the types who get vigorously upset about a game being locked to 30fps: Uninformed.

<comment><USER7> > Physics are always tied to framerate

Why does it have to be like this? I would think the more robust approach would be to decouple the simulation from the rendering and display interpolated frames if the renderer framerate is higher than the simulation framerate.

<comment><USER8> Whilst it's nice to think in separate concepts such as 'physics' and 'rendering', in reality all these things are tightly coupled together in code. For example collisions inform physics which informs collisions which informs animations etc. Also with memory being so scarce in AAA games you have to evaluate the cost of using separate threads for different actions, which leads to problems of resource sharing, deadlocks, syncing of update/render loops etc.

Bungie did a talk on their multi threaded renderer for Destiny. Google it if you want to see how complex the design can get, and how it affects the whole game process.

<comment><USER7> Thanks. Apparently fallout4 has a bunch of bugs on higher-end PCs because and I was wondering why they would couple things like that. I guess the harsh restrictions of gamedev explain it a bit then...

btw, I think this is the video the parent mentioned, in case anyone is interested: [https://www.youtube.com/watch?v=0nTDFLMLX9k](https://www.youtube.com/watch?v=0nTDFLMLX9k)

</comment></comment></comment></comment></comment><comment><USER9> I feel I should point out that the "Games" section of Kickstarter also includes board games, which takes a big chunk of cash.

<comment><USER2> A good point, and many games are being developed for consoles, or include consoles as "stretch goals".</comment></comment>


Smartwatches know you're getting a cold days before you feel ill - <AUTHOR> https://www.newscientist.com/article/2117854-smartwatches-know-youre-getting-a-cold-days-before-you-feel-ill/ <comment><USER2> I've been using mine like this for years, I actually thought it was common knowledge that monitoring your heart rate informs you about things like this. Why else would you wear one? My resting heart rate is around 42 BPM and I know some of the following things:

* Stress causes an increase. Periods such as university exams cause it to rise and stay high for over a week. I've noticed a direct link between how long it stays high and how likely I am to get burnt out.

* Overtraining. Sometimes I'll train up to 4 hours in a day for a few days in a row. If my heart rate doesn't return to under 50 it's a good sign I need some rest. If it stays above 60 I'll definitely rest.

* Alcohol. If you have a few too many drinks you'll see your heart rate stay high until you're recovered from the drinking.

<comment><USER3> WOW! 42 BPM, what's your exercise regimen look like?

<comment><USER4> Not OP, but my resting HR is similar (low 40s, occasionally high 30s) and I've been monitoring it daily for many years now. My routine is full-body strength conditioning (kettlebells and bodyweight) for an hour 3 times a week. Around 25-50+ miles per week running (with about 80-100 ft. of elevation gain per mile on average), depending on whatever race I may be training for. I walk anywhere from 5 to 10 miles a day every day. I take a multi-hour hike every weekend in the mountains. I mountain bike once or twice a month. I swim once or twice a month. My wife and I do yoga at home for about an hour on the weekend. I'll do a multi-day backpacking trip a couple of times a year. I don't stress out over not training when I'm vacationing or on a backpacking trip. So, in a normal week, I train 5-7 days. It took me many, many years to work up to this.

My focus is the running. Everything else that I do is, in my eyes, cross training and functional training to support the running. I've been a competitive runner since the 6th grade, having only taken a few years off in total over the last 25 or so years.

I manage my own minor injuries and will continue working out depending on the specific injury at hand. Major injuries, I'll see my doctor and do PT. Between running, cycling, and biking, I've been able to keep active in the face of almost every injury that I've faced. As I age, though, the minor injuries are a near constant danger. It's been crucial that I learn to check my ego multiple times during every single workout.

In all of this, I'm driven by the heart disease in my family. I've been concerned about my heart health since my father had a massive heart attack and triple by-pass when I was 17 years old. I'm less than 10 years away from being the same age that he was when he had that heart attack. My hope is that, by being this conscious and acting deliberately, I can avoid those same risks and problems.

</comment></comment></comment><comment><USER5> I noticed this: my heartrate spiked several days before a bad fever. I'd been traveling and not sleeping well for a few days, and my Fitbit HR monitor went up 10-15 points. But it also could have been reporting that I was sleeping badly. Since bad sleep gives increased risk of catching a virus, it's important to know, but I'm not sure if it was detecting the virus or the sleep deprivation.

</comment><comment><USER6> while you may not be able to do anything about our own sickness at that point, you could take steps to prevent spreading an infection to others

<comment><USER7> You definitely can. They even mention one in the article. Taking it easy and going to bed early vs going out. There are also medicines.

<comment><USER8> What medicine can I take a couple days before I'm feeling symptoms that will reduce my risk of a full blown infection?

<comment><USER9> If its something that would need a course of antibiotics, then those. Although getting to the doctor and getting a diagnosis is still always necessary.

If it's just the common flu, lots of zinc and vitamin c.

</comment></comment></comment></comment><comment><USER10> I just checked because I just got pneumonia and I wear a Fitbit. Sure enough, my resting heart rate increased a couple days before I got sick

</comment><comment><USER11> serious question: what can we do with advanced knowledge of a viral infection like the common cold?

<comment><USER12> Zinc intake. Studies made clear that a supplement of Zinc can help prevent the outbreak of a cold.

<comment><USER13> How much?

<comment><USER12> This is still to be discussed but most studies mention the intake of 50-100 mg/day. [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3136969/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3136969/) mentions 75mg, [https://en.wikipedia.org/wiki/Zinc_gluconate#Zinc_gluconate_...](https://en.wikipedia.org/wiki/Zinc_gluconate#Zinc_gluconate_and_the_common_cold) is a good starting point for further research.

But as always, consider every supplement carefully. I took 50mg a day before and noticed some inconvenient side effects like bad odour of my sweat and very dry skin. ATM, I just take 50mg/week, and I didn't experience a cold in the last two years (for whatever reason).

</comment></comment></comment></comment><comment><USER14> Since you're most infectious at the beginning of a flu, this could be great for preventing outbreaks because it could tell the user to take measures to limit the spread, like wearing a facemask and avoiding people as much as possible.

</comment><comment><USER15> Smartwarches have body temperature sensors now? Which ones are okay to buy?

</comment><comment><USER16> and then they had a feature where they warned you with a changed color, then they were made bright enough to alert the other people around you, then there was a social stigma for not displaying one, then they were mandatory.

<comment><USER17> What an asinine slippery slope. We don't even have mandatory vaccinations.

<comment><USER18> I heard using smartwatches with the color coded sickness alert causes you to pay too much attention to the smart watch, decreases social interaction, and is a leading cause of autism.</comment></comment></comment>


Ask HN: Do you use algorithms / data structures? - <AUTHOR> A lot of technical interviews have algorithms and data structures questions to presumably test "algorithmic thinking" or whatever. But in practice, it doesn't seem like algorithms are used for day to day web development. Besides avoiding writing n+1 queries, what other practical applications are there for algorithms and data structures for web developers? <comment><USER2> I would ask yourself what an algorithm really is. It's not just sorting or searching. It's really just a recipe of things to do in the order you have defined them to get an end result.

Pretty much every web dev related thing you make is an algorithm at the end of the day.

Think of something as simple as a contact form. What's the algorithm to make this work?

1\. Get input from user.

2\. Validate input from user.

3\. Setup mail headers.

4\. Setup mail message.

5\. Call a send message function.

Those steps can be expanded on to handle invalid input or errors in any of the steps, etc..

Your programming language will likely have #5 done for you too, but whether or not you're the one implementing the functionality has no bearing on the situation.

It's easier to teach the material when you're dealing with basic data structures like building a stack or queue in C using an array rather than some higher level web dev task.

Btw, I'm just someone who spent a few years not taking any CS courses and then took a few online courses to learn the things you're talking about + more. It was probably the best move I've ever made.

</comment><comment><USER3> I find that design patterns prove more useful (more of the time) in web development in comparison to implementing algorithms and data structures from scratch. High level web development languages (ex. C#/Ruby/Python/Scala/Groovy/PHP etc.) and some somewhat lower level languages (Dart, Go, C++) do provide tested algorithmic implementations and data structures through BCL's.

Implementing a Fibonacci sequence or a prime number sieve is much different than implementing e-mail scheduling component with dynamic constraints. I think the reason why Algorithms/Data Structures are important for interviews is because they show not only your level of experience with the tool-set you use, but also deeper understanding of the inner workings of said tools.

</comment><comment><USER4> When I think of algorithm, I see it as the "how", not the "what". A list of steps to get a task accomplished is the high-level "what". Somewhere in those steps you must derive the "how". Reduce those steps to a derivative formula, if you will. That piece of code is pounded, broken, rebuilt, transformed and eventually "fashioned" like coal becomes a diamond. Once "hardended" it will be code that works perfectly with any input, under every scenario. And when it's right, you'll know it, grasshopper - you will know it ;)

\- The Algorithmist

</comment><comment><USER5> Everything that you code can be tied to an algorithm since an algorithm by definition is a step by step instructions to do something.

data structures for web developers ? Plenty. Heck for any developers. Think about lists, maps, dictionaries, hash tables etc. They are data structures aren't they ?

</comment><comment><USER6> "But in practice, it doesn't seem like algorithms are used for day to day web development."

Wait, _what?_

<comment><AUTHOR> So there are algorithms for sort, search, recursion, divide and conquer, etc, but a lot of the algorithms are baked into the functionality of high level languages and when you follow best practices, so you don't really need to know the algorithms to use them.

...Or am I missing something?

<comment><USER7> IMHO this is what separates a good engineer from a self thought programmer. To be a good engineer you need to know what goes under the hood which affects your decisions in critical situations. So big companies are searching for developers who have great engineering insights.

P.S: A good software engineer may also be self thought I do not want to be understood wrong.

</comment></comment></comment><comment><USER8> I totally agree with your point. It is jus that algo and ds are the best way to judge the analytical skill of a person and his ability to think in the right direction.

</comment><comment><USER9> there is no secret ingredients for algorithm and data structure . previously me also think like u . but now am telling its work in only u r hard-work... wishing best for u</comment>