Microsoft reverses controversial game licensing policies - <AUTHOR> http://arstechnica.com/gaming/2013/06/rumor-microsoft-set-to-reverse-controversial-game-licensing-policies/ <comment><USER2> I always thought they should have applied all the new DRM features to digital downloads only. In that context, sharing and selling does look consumer friendly and if they make it convenient consumers will move away from physical media.

<comment> Cyril-Boh I wish they coined another term for this rather then digital downloads. How can a download not be digital?

<comment><USER3> Provided you had an analog communication channel and storage medium you could have analog downloads -- it would be similar to recording per-digital TV on a VCR. But, yeah, "digital download" is mostly pointless noise.

<comment><USER4> They used to broadcast software via FM radio in the 80s :) One could record the transmitted "noise" with their tape drive, and, apparently, more often than not the recorded program would actually work.

</comment></comment></comment></comment><comment><USER5> During this whole fiasco, I was trying to put myself into their shoes on what they were trying to achieve. On the outside, it looks like a great idea. The ability to share games with family. No longer you need to carry discs to your friends house. You can lend them games to strangers on the Internet without worry about losing it. You can have an organized catalog on the cloud, and never have to get up to pop the disc in. Sell the disc game to X over the internet and cut out the middle man (Gamestop). etc...

However the whole, connect 24 hours to verify the ownership of the game is a big turn off. I understand that, theoretically you could sell your game and then keep playing it on a switched off console. So if it were you, how would you go by achieving all the pros and none of the cons without enforcing DRM? Not supporting DRM but genuinely curious.

<comment><USER6> Very simple. Keep the 24 hour restrictions as-is, but allow transition to an offline mode after notifying the mothership. This disallows all the family sharing features. Games installed using a physical disk would require the disk to be present, downloaded games are unaffected (since you can't sell them without connecting to xbox live.) This takes care of the submarine scenario. When you're back online, check for the disk again before allowing disk-less play. Make sure the offline transition can be done through smartglass, and you handle the hurricane/somebody-cut-the-fiber scenario as well.

Any holes in this approach?

<comment><USER7> Games were meant to be installable on multiple consoles, so if they wanted reselling or giving away a game to completely disassociate the license from the seller's/giver's account, every console with that game would need to be kept online to verify this. So if there were an offline mode that disabled license-transfer features, it would have to apply as long as even one console were in this mode. This means that it would be possible for someone to put themselves into a state where they'd be permanently prevented from reselling or giving games because they don't have physical access to some console that's been put in offline mode.

There are of course further workarounds/mitigations for this problem, such as putting a (100 days?) time limit on offline mode, but they make the system even more complicated.

<comment><USER8> > This means that it would be possible for someone to put themselves into a > state where they'd be permanently prevented from reselling or giving games > because they don't have physical access to some console that's been put in > offline mode.

This isn't really too big of a problem. Just require users to phone in and request a license transfer if they lose a console. Limit the number of times that a customer can "lose" their console without an investigation.

</comment></comment></comment></comment><comment><USER9> I'm actually annoyed with these changes; they have reverted back to the Xbox 360 way of doings things;

* Disk must be in the drive to play

* Share games by lending the disk.

The previous scheme, while it would not be befinical to some due to the 24 hour requirement, did allow for some exciting new ideas (which we've got used to with Steam);

* Access my games anywhere without needing a disk

* Share the game with my family who live away from me

<comment><USER10> Don't buy discs! MS said that digital purchases will have same priority as retail discs. Why do you want a disc anyways, except for resale or slow connection? Everything I get for the 360 is via download, and I don't have to worry about discs. Still have to worry about license transfers, which is gonna be the same under any system where the publisher controls the terms.

<comment><USER11> My biggest issue with digital downloads is the cost.

My experience with Xbox live is that digital releases are launched at a price and stay there, apart from limited time promotions, for a long.

I can go on to Amazon or into HMV and get major releases from a couple of months ago for half the RRP, normally significantly cheaper than download. Plus i can give the disc to one of my friends when i'm done.

</comment></comment></comment><comment><USER12> It's not clear to me what the change will be, or how it will be an actual win for consumers. The region locking being dropped would definitely be a win for the minority of potential customers outside of the privileged regions, but the fact is that the DRM scheme that they proposed, while never explained very well, was probably better than leaving how one-time-use-codes should work to manufacturers (EA Online Passes spring to mind)

<comment><USER13> How is it not clear? You can play games without checking-in every 24 hours, and if you want to share or sell a game, you transfer the physical media you purchased. Downloaded games cannot be shared.

<comment><USER14> Yes but checking-in every 24 hours is not something you actually "do". It's something that happens transparently in the background. The vase majority of consumers wouldn't notice the automated check-in that was present in their previous design.

<comment><USER7> Right, and the new DRM scheme that's replacing the "checkins" \- having to change discs to play a new game - _is_ something you actually have to physically do, and it's something that's required entirely to satisfy DRM policies at this point.

It also locks you out of playing your game in a bunch of scenarios (lost, stolen, damaged, or just don't happen to have it with you) that I think for many people are more common than a 24-hour internet outage would be, and again, it's entirely the artificial DRM restrictions that are locking you out as there's no real technical reason not to let you install the game and never need the disc again.

</comment></comment></comment></comment><comment><USER15> I don't get the negative response to this. They made a mistake (admittedly being too greedy), and now they're correcting it. People didn't like the DRM, SO THEY TOOK IT OUT! Get over holding a grudge; the Xbox has a lot of very good exclusives and has always been a solid console. It just goes to show you that you can never make the internet happy.

<comment><USER16> I don't quite understand why you attribute the mistake to "being too greedy," especially since this decision is a response to public outrage and thus will likely make Microsoft _more_ money/profit. One could just as easily attribute Microsoft's desire to satisfy angry customers to "greed."

<comment><USER15> I was referring to the original DRM decision as being too greedy when they made it (before the backlash). Companies institute DRM to decrease piracy, which increases their bottom line.

The effectiveness of DRM is a totally different subject, but in this situation they chose their bottom line (DRM) over the desires of their customers, taking a gamble that the losses in sales from pissed off people would be less than the gains from decreased piracy.

<comment><USER17> You state this, and then wonder why people think its a big deal and don't just forgive them? So people got pissed enough and Microsoft got scared enough to change their mind but that doesn't change the fact that they actively wanted to screw over their customers because they wanted more money and they thought that you would just submit to it and be hyped by all their buzzwords. They haven't changed at all and things like this will happen in the future until they do.

</comment></comment></comment></comment><comment><USER18> If this is true, there isn't going to be the announced "Family Share plan" or the "Disc-less" operation. Also, the fact that a few consoles might not be connected to the Internet means, MS can't really do cloud processing as it claimed (since it would lead to variable experiences of the same game).

I see this as a step-backward than a step ahead. Sure there will always be a vocal minority, but rather than provide them an alternative, they've just gimped an online console.

<comment><USER19> I'm not super technical but I've always been skeptical of "cloud processing," especially after the Sim City debacle. Are there any scenarios where actually processing information on a server instead of on the user's home Xbox make sense, aside from things like WoW and Diablo III where you need to do the calculations on the server to make the multiplayer aspect fair?

<comment><USER20> It makes sense for multiplayer games to not be hosted on arbitrary client boxes, but on some kind of neutral, low-latency "cloud" device (I know you said other than this, but I thought this was the biggest selling point for it in the first place).

It also makes sense for "complex" calculations. It's how stuff like Google search and Google maps works - you send the query, big machines chomp on the query and spit out a result, and your netbook doesn't have to go into overdrive trying to figure anything out. Basically anything that can take 100ms or so to complete could be moved off of the appliance and onto Microsoft servers. Why? Well, why not? Make some more room for rendering, I guess.

</comment></comment></comment><comment><USER11> Another sad day where the indignant vocal minority have spoiled it all for the rest of us.

I don't think there was anything in the early schema that would have impacted the way I use the system (apart for multi day internet or server outages) but plenty of benefits

Game sharing was a huge positive step, even though I felt that most publishers would ignore or disable (like game sharing on the DS).

Not having to swap physical disks would have made life much easier and increased my playing time. I'm fairly lazy when I've settled down for an evening in front of the TV. A usual XBox session involves playing what ever game is in the drive till i get bored (anything from 15 minutes up) switching to something downloaded so i don;t need to get up (normally trials). Getting bored again and flipping to TV or a movie.

The ability to choose from my whole library with leaving my seat would have been a revelation.

Also, my two year old has lost my Forza disk, which really sold this idea.

</comment><comment><USER21> Now you can see why it is so tempting for companies to reach out to their competitors and say "so... we want to make this change, you want to make the same change and we both win?"

</comment><comment><USER22> I honestly don't see why they can't do it both ways. For people who buy game discs, let them share and play offline, but for those who choose to buy the DRM-enabled digital download version of the game, let them install it to the hard drive and play without a disc across consoles. It's all down to user preference anyway, why does it have to be one way or the other?

</comment><comment><USER23> Here's a statement from MS [http://news.xbox.com/2013/06/update](http://news.xbox.com/2013/06/update) (may need a refresh or two to load) looks like they are removing the feature of being able to play a game without the disc in the tray, which pretty much was the root of all these drm issues IMO

<comment><USER24> There's a tradeoff between discless play and used games; allowing both leads to massive piracy (in somebody's mind). It looks like MS has gone from one extreme to the other.

<comment><USER18> Used games IMHO are a menace. How many software companies give away transferable licenses? (apart from Open-source licenses)

It isn't fair to the publisher/developer. I'd rather have seen a price change to facilitate more ownership rather than used games sales. EA's implementation sounded a bit practical to solve the used games market.

<comment><USER25> In the same way that used books and public libraries are a menace?

There is no intrinsic social contract that stipulate media creators should/must be paid per-consumption.

<comment><USER20> There is if the content provider stipulates one as part of the terms of the consumption. That is, "If you consume this, you can't give out copies."

No one's making you agree to that.

<comment><USER25> Right, and this is the market rejecting these terms.

The _current_ standard terms of consumption for console games includes the ability to give your copy to someone else. There is neither a legal nor social contract that these games be paid for per-consumption.

What we saw is Microsoft trying to change that. The market has responded clearly and unambiguously.

So no one (short of the pirates) has violated any terms, legal or social.

<comment><USER20> It's the market _threatening_ to reject these terms. That's different from actual rejection.

What we have is a vocal minority responding clearly and unambiguously. The size of such a group, minority or otherwise, will not ever be known, since Microsoft has not sold anything to anyone yet.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> This isn't surprising at all, Microsoft is just giving gamers what they are asking for to head off the bad PR. In the meantime they will start pushing game sales for the xbox in the direction of digital downloads.

</comment><comment><USER27> This is a shame, I was really looking forwards to disc-less play and family sharing.

How cool would it have been if all my friends made a family group and with that we can all play each others games. But no people love gamestop.

<comment><USER28> Pretty sure they would be limiting that to one IP address. There would be restrictions.

<comment><USER29> There was no IP limitation, as I understand it. Everyone on your console could always play all of your games. And you could designate 10 people that had access to your library from anywhere.

<comment><USER27> Only limit to family group was 10 members, no other limits.

</comment></comment></comment></comment><comment><USER10> Microsoft was releasing a new console, with unimpressive hardware, focused on TV and family over games, at a higher price point.

Announcing a crazy DRM plan was a fantastic PR move. If people liked it, they can just go ahead with it. If they didn't, they end up burning lots of press time talking about something on their terms, instead of focusing on what Sony wants you to think about the actual hardware

No PS4 or XB1 units have been shipped. Except now, Sony has less time to make the real arguments against the XB, and already people can just accuse others of "complaining about everything on the Internet". MS wins points by "making a major change in response to consumers". More than if they had taken this position from the beginning.

A bit risky, but it'll pay off fantastically for MS.

<comment><USER30> Sony has a price advantage still, which is why the 360 "won" the last generation's console war.

</comment></comment><comment><USER31> For the people here that didn't really read the statement:

"you can also download games from Xbox Live on day of release"

If you have a decent Internet connection and don't want to use discs, you have that choice.

</comment><comment><USER32> I had a feeling this would happen. It was either that or just let the competition walk away with a huge percentage of their customers without a fight. Seems like the obvious decision.

<comment><USER33> I was actually not expecting a complete reversal, just a loosening of restrictions (something like 2 week check-ins, like Steam does).

Both of the new machines (Xbox One, PS4) still allow third party publisher DRM (such as EA's 'Project Five Dollar') though, and if the console market moves towards digital distribution the way the PC market has, the used games point might be moot.

</comment></comment><comment><USER34> Up next, Kinect...

<comment><USER5> Actually I am excited about the new Kinect for personal hacks. According to MS, you will be able to turn off the Kinect, if not, its nothing some tape can't fix.

<comment><USER35> I want an xbox1 cheaper therefore without a a toy i will never use. If you want to "hack" a kinect,then buy one separatly. Or at least MS should give the choice to buy a console without one ,at a lesser price.

<comment><USER36> Microsoft's betting on a new input device, and for it to work it has to be ubiquitous. This is the same reason why, when Apple shipped the first Macintoshes, they came with a mouse in the box.

I'm sure there were people posting on cix in 1984 right after the superbowl, "I want a mac cheaper therefore without a toy I will never use. If you want to 'hack' a mouse,then buy one separately. Or at least Apple should give the choice to buy a computer without one ,at a lesser price."

</comment></comment></comment></comment><comment><USER37> Amazing what a bunch of angry basement dwellers on the internet can achieve.

</comment><comment><USER38> They should rename the Xbox One to the Xbox 180, it would be very apt.

On a more serious note, I don't like this rollback. It only goes to show how the witchhunt and echo chamber on Reddit worked. Even before the reveal, Microsoft was falsely accused of trying to game Reddit and everyone flew off the handle over someone pretty much lying to be a troll. Say the word "DRM" and you get bucketloads of Reddit karma and posts pointing out the facts(forget about posts taking the opposing view or opinion) were downvoted into oblivion by the angry mob.

And then there was the bad timing on the NSA leaks, which didn't help at all. Everyone has smartphones, laptops and tablets with cameras and mics which could be watching and listening and Apple/Google were part of the leak, but it was Microsoft that was singled out for proposing a device that could turn on itself, and had numerous safeguards to configure privacy if you wanted to.

All this doesn't excuse the fact that Microsoft utterly and totally failed in communicating their message in a proper manner in E3 and handed Sony an easy victory on a silver platter.

I guess it was easy to roll this back because it was not Microsoft but publishers and game developers that were going to reap the benefits of diskless gaming because Gamestop etc. skim off the value of older games and leave publishers with not much value. Once the public failed to see the advantages and blamed Microsoft for a power grab that was not going to really benefit them all that much, it was game over.

<comment><USER39> A friend posited the theory that all of this was a calculated move on Microsoft's part.

First, they throw up the idea of some draconian DRM, which they then later retract. The first move gets them tons of publicity and tongue-wagging, the second move starts to make that positive publicity. They're banking on gamers being so addicted, they won't really care that they've been played for idiot chumps.

If the market for the new XBox was 12-year old children, they wouldn't even have bothered. But, since they're really marketing to adults 20-35 or so, they have to look like good guys to the people they're talking out of their money.

This was calculated. Reddit and everyone else got played. Hard and dry.

<comment><USER40> That would be a valid theory if they didn't have a very similar competing product released at about the same time. A competitor that captured the lion's share of positive publicity by merely maintaining the status quo.

As it stands, I will be surprised if XBox One captures 25% of the latest gen console market when it is all said and done.

</comment></comment></comment><comment><USER41> >On the downside, there will be no digital "family" sharing as was previously announced, and disc-based games will require the disc to be in the tray to be played.

Nooooooooooooooooo. Please still allow me to opt in for digital downloads so I can finally stick the console somewhere where I don't have to see it, hear it or suffer it's heat wrath.

<comment><USER29> I believe they are planning to have day-1 digital downloads. This backtrack does mean that, at least for day 1, the family sharing and used-digital-game features won't be available but you can still get all the games without discs.</comment></comment>


Ask HN: How do you organize links? - <AUTHOR> I have hundreds of bookmarks saved an I am looking for an efficient way to handle them so that I can retrieve them quickly.
What do you use for this purpose? <comment><USER2> Not sure about the efficiency, but just to give you some ideas - I use mindmup and have categorized the links or sometimes use OneNote to store them in topic notebooks along with notes.</comment>


Twelve-factor app development on Google Cloud - <AUTHOR> https://cloud.google.com/solutions/twelve-factor-app-development-on-gcp <comment><USER3> I'm the author of 12factor (although really it is an aggregation of the work and insights from many people at Heroku). It continues to surprise and please me that this piece continues to be relevant eight years later—a virtual eternity in software/internet time.

Fun fact: I debated whether to call it "the Heroku way" or somesuch. Glad I went with a standalone name, feel like that allowed it to take on a life beyond that product. For example I doubt Google would have wanted a page about "Heroku Way app development on GCP" in their documentation. :-)

<comment><USER4> Just wanted to thank you for this. When I was a lost and confused junior, I had no one more experienced around to ask for advice. I stumbled across this and it answered so many questions that I had, and it still very much applies many years later.

</comment></comment><comment><USER5> 12 factor seems to have stood the test of time really well—I was introduced via Heroku (who I think invented it?) quite a long time ago in tech years, and yet it still seems to be probably the most popular 'framework' for devops.

In fact, my startup EnvKey[1] was heavily inspired by the 12 factor approach. While it has always worked well for me, one bit that always felt thorny was using the environment for configuration and secrets. It's obviously great to get this stuff out of code, but then you face new issues on how to keep it all in sync across many environments and pass potentially highly sensitive data around securely.

EnvKey fills in this gap using end-to-end encryption and a seamless integration that builds on top of environment variables—it's a drop-in replacement if you already use the environment for config. Check it out if you're looking for something to smooth out this aspect of 12 factor! We have lots of folks using it with GCP/GKE.

1 - [https://www.envkey.com](https://www.envkey.com)

<comment><USER6> > I think invented it

I don't think so... the 12 factor app was existing before that... but came to more common usage during the rise of Rails (and Heroku)

<comment><USER7> Both [https://12factor.net/](https://12factor.net/) and the Wikipedia page [https://en.wikipedia.org/wiki/Twelve- Factor_App_methodology](https://en.wikipedia.org/wiki/Twelve- Factor_App_methodology) credit Heroku developers for formalizing the 12 factor methodology.

<comment><USER8> If you go to the bottom of the page, you'll notice that [https://12factor.net/](https://12factor.net/) is written by Adam Wiggins, a Heroku cofounder.

</comment></comment></comment></comment><comment><USER9> > In non-cloud environments, web apps are often written to run in app > containers such as GlassFish, Apache Tomcat, and Apache HTTP Server. In > contrast, twelve-factor apps don't rely on external app containers.

This comment stood out to me. Why does this have anything to do with cloud vs non-cloud?

Furthermore I think there are merits to both of the approaches. But the article phrased it as if one is clearly more superior than the other.

I think we should also not forget that for the longest time, even before there was Google Cloud, there was App Engine that adopted the former approach: you simply write your handlers in Python, and the server provided by Google runs your handlers. Nowadays in the new Python App Engine runtime they added gunicorn by default so it's less clear.

<comment><USER10> Primarily because instances are disposable. Getting more traffic to your Foo service than you expected? Spin up another Foo, and let the load balancer figure it out. Then, an hour later, when traffic goes back to normal, kill the new instance.

This is easier to do when your service is self-contained. It's certainly possible with an app server, but 12-factor apps tend to view the service as an atomic unit that can be started and stopped wholesale.

<comment><USER9> These are orthogonal. Have you used Google App Engine prior to Python 3? When you get more traffic, the App Engine spins up more instances, each running both the handlers you wrote and the server code you didn't write.

</comment></comment></comment><comment><USER11> Backing Services section is over promising. Changing databases isn't a simple configuration change. Every database doesn't speak the same SQL. It doesn't have the same optimizations nor configuration. Also, your organization probably won't be making that change-- ever. Even if you could swap, you very likely won't.

This is similar to the claim that by using an ORM, you can easily change databases except that the ORM actually can achieve it because it abstracts away the differences. Yet, very rarely does this valuable feature get used.

<comment><USER12> The backing services factor doesn't mean that you should expect to be able to hot-swap database types.

Rather, it means you should be able to "dependency inject" a compatible database into your app. Say your app is designed to speak Postgres - <USER2> Postgres db should be able to run locally, or on a managed cloud service, and the app shouldn't know or care which. You should be able to switch between such services without any code changes.

In practice, this sometimes does mean that multiple database implementations satisfy the interface expected by your app, and you can in fact hot-swap underlying stores. But the spirit of the factor is that the app should have its dependencies ("backing services") provided, rather than hard-coded.

<comment><USER11> Ah, that makes sense. Thanks for clarifying

</comment></comment></comment><comment><USER13> Also worth reading is "Beyond the Twelve-Factor App" (O'Reilly). It goes into the 12 factors and expands them to 15 for cloud-native apps. I believe I got a free e-book via Pivotal's content library.

<comment><USER14> Beyond the 12 factor app:

(1) One codebase, one application

(2) API first

(3) Dependency management

(4) Design, build, release, and run

(5) Configuration, credentials, and code

(6) Logs

(7) Disposability

(8) Backing services

(9) Environment parity

(10) Administrative processes

(11) Port binding

(12) Stateless processes

(13) Concurrency

(14) Telemetry

(15) Authentication and authorization

More info: [https://content.pivotal.io/blog/beyond-the-twelve-factor- app](https://content.pivotal.io/blog/beyond-the-twelve-factor-app)

</comment></comment><comment><USER15> > A better approach is to store configuration in environment variables.

It's about damn time, Google! I've been working on a number of GCP projects this year and have consistently bumped up against the awkwardness that was Google's (former?) preference for configuration files over environment variables.

<comment><USER16> This is the weakest or least well-defined aspect of 12factor.

How can you 'store' anything in something as ephemeral as environment variables? Where do these environment variables come from? When are they set?

You should of course store everything in version control; the point of this guideline is that the scope should not be the same as the app or an instance.

There is particular tension between this guideline and X. environments should be a similar as possible and I. there should be a single codebase for all deployments.

<comment><USER17> Another option is rather than storing configuration in config files, is to store it in code. After experimenting with different approaches, storing configuration in code and switching on a single environment variable ENV (or STAGE or whatever you like to call it) this is probably my favourite.

This doesn't work for everyones infrastructure setups, but it's worked well for mine.

<comment><USER18> A file that stores configuration is a configuration file, even if the encoding format happens to be the same as the main programming language and not toml or yaml :)

That works fine if there's a limited number of environments, but it becomes a pain if you're running the same app in too many, or if someone else needs to deploy it independently of the developers.

<comment><USER19> _it becomes a pain if you 're running the same app in too many,_

No it doesn't. It's trivial to generate the full set of configs using a script, if you have too many to manage manually.

 _or if someone else needs to deploy it independently of the developers_

And how exactly do envvars help with that? The set of envvars still needs to get pushed with each deployment. envvars are just a special config file.

</comment></comment></comment></comment></comment><comment><USER20> Hmm, non of the 12 factors is really be specific to the cloud. I mean ok, the implementation of some of the thinks might slightly differ. E.g. you should still abstract over storage, but it's not necessary a external service as this additional external dependency is just not no always necessary.

It's kinda funny how cloud forces people to finally use patterns recommended since years.

</comment><comment><USER21> I wonder if anyone else does this. I have a private, env-var only repo per project that I very simply import (git clone) while building. I'm sure there are some risks like possible leakage if a team member's github account is compromised but it seems like a very nice, clean way of managing secrets. I even get the benefit of a version control.

<comment><USER22> We definitely avoid this approach. Fine grained access control per secret per environment is impossible. We use explicit secret management software.

<comment><USER23> "We use explicit secret management software"

This is interesting. Can you go into more detail?

<comment><USER24> [https://www.vaultproject.io/](https://www.vaultproject.io/)

Fairly easy to integrate with Kubernetes too.

</comment></comment></comment></comment><comment><USER25> Its interesting to see this 12-factor popping up today. We used this 12-factor app development methodology at one of my client and they had good documentation about it. This was in 2015-2016 and I believe this is still relevant.</comment>


Read The Dinossaurs - <AUTHOR> http://philcalcado.com/2011/12/29/read_the_dinossaurs.html <comment><USER2> To contrast, here's my review of the same book: <http://www.hn- books.com/Books/The-Mythical-Man-Month.htm>

I remember reading somewhere that Thomas Jefferson was disappointed with the way public opinion had changed between when the Declaration of Independence was written and when the Constitution was formed. He said something to the effect of "12 years ago everybody thought we had awesome ideas, but now they all want something new because after all, those ideas are 12 years old and certainly something newer and better has come along by now."

When I started hn-books, I wanted to go on a tour of the classics -- all the dinosaurs. It was a great ride I had doing this last year! I miss it and want to do some more. I would advise everybody who is a serious reader to make a resolution to read a dozen or so of the classics in programming and technology creation in the coming year. You won't regret it.

The downside is that I found I lost tolerance for a lot of new work. I'd read some kind of self-help programming book and think "Oh, the author got that idea from over here." and "Yeah, he picked that up from X, but he really doesn't understand how to apply it"

There's some real self-congratulatory crap out there. Two hundred pages of book with 3 ideas in it, all copied from some greater writer. If that's the way you need to absorb it -- all nice and fluffy and with the code all in the cool language of the day -- then more power to you. But I've found it's just as easy to read the dinosaurs, get a firm understanding of where the ideas come from, and then have a little better foundation and perhaps more interesting observations to make.

Programming is programming. The tech is changing tremendously fast, but the job is the same as it was 30 years ago. The part about what bit 7 needs to be on a new technology stack, how Google got super-scaling to work, and whether the standards body will approve Y next year is important, but it is _really_ overrated. You'll learn far more from the dinosaurs in a month than from consuming that stuff everyday online. </rant></comment>


Date bug crashing PlayStation 3 systems around the world - <AUTHOR> http://www.neogaf.com/forum/showthread.php?t=388872

<comment><AUTHOR> The story is still developing, but people are speculating it could be a leap year bug. Console dates are resetting to 12/31/1999. Here's a few news sources:

[http://kotaku.com/5482328/ps3s-suffering-from-global- network...](http://kotaku.com/5482328/ps3s-suffering-from-global-network- lockdown)

[http://www.joystiq.com/2010/02/28/psn-is-down-some-titles- ex...](http://www.joystiq.com/2010/02/28/psn-is-down-some-titles-experiencing- game-crashing-errors/)

[http://www.neoseeker.com/news/13244-pre-slim-ps3-units- exper...](http://www.neoseeker.com/news/13244-pre-slim-ps3-units- experiencing-8001050f-error/)</comment>


Does News.YCombinator.com load faster in IE for you? - <AUTHOR>

When I navigate to http://news.ycombinator.com/ in Firefox 22.214.171.124, it shows me just the main header (the orange bar) and then it takes an average of about 8 seconds for the list of stories to appear.
Doing the same in Internet Explorer 7, everything loads just about instantly.
Does anyone else have the same experience? <comment><USER2> That happens to me sometimes. I always assumed that it was server lag because its very inconsistent.

</comment><comment><USER3> Blazingly fast in Chrome.</comment>


Eye Drops Could Clear Up Cataracts Using Newly Identified Chemical - <AUTHOR> https://www.ucsf.edu/news/2015/11/176886/eye-drops-could-clear-cataracts-using-newly-identified-chemical <comment><USER2> When article described the protein in the lens as "amyloid", it occurred to me how similar it is to the abnormal proteins associated with Alzheimer's dementia.

Sure enough, the last paragraph suggests the very same thing, if we know how to "unfold" the lens protein maybe it's possible to do the same in the brain with therapeutic effect on Alzheimer's.

Of course it's a long shot, but exploring that lead sounds important. Nature, and science often work in strange, unexpected ways. Though benefit for cataracts is itself non-trivial. Several people I know have not had good outcome of surgery. Ability to just "melt" away the lens cloudiness would be very useful.

<comment><USER3> It's hard to get things past the blood-brain barrier, so assuming they identify something useful, I wonder how they'd do that? I wonder if an injection would work, hypothetically?

</comment></comment><comment><USER4> This sounds promising. I was born with a cataract in my right eye. I'm in my early forties now and technically, for all intends and purposes, you could say I'm blind in my right eye (kinda depends on the light intensity). Unfortunately my cataract is difficult to operate on since it's not free floating so they can't easily "scoop" it out. So, an eye-drop that dissolves this thing sounds great.

If they now could also find some eye drop that can dissolve the crap I have floating in my left eye, that would be fantastic!

<comment><USER5> Do you have floaters in your left eye? Retina detachment? Your case sounds similar to mine.

Recently diagnosed with cataract in right eye. Few years ago, retina detachment in left eye, followed by cataract in left eye, and then losing pupil controlling nerves in left eye during cataract surgery.

<comment><USER4> Ten years ago some eye specialist wanted to operate on my cataract. Apparently there could be complications but according to him "it would be worth the risk". Sounded like a fun project for him. I passed. I'm pretty much used to my crappy vision and I figured I'd wait ten years to see what happens with technology in this field and then suddenly, BOOM, eye drops! Even right now I wouldn't do an operation unless there was a 100% guaranteed no side effects (with the surgeon signing the guarantee with his own blood). Let's wait another five years and see where these eye-drops end up.

It's definitely just normal "floaters" in my left eye.

</comment></comment></comment><comment><USER6> Sounds like we're at least a decade away since it's not to the point of human clinical trials.

<comment><USER7> Yeah. Work is interesting, but things don't always work the same in humans. Remember the anti-angiogenesis cancer cure? Worked great in mice, completely ineffective in humans.

And even if it works, it's likely to cost the same as cataract surgery until the patents expire, so all of those blind people in poor nations will stay that way for even longer.

<comment><USER8> And even more fun: "Initially, it was thought that angiogenesis inhibitors would have mild side effects, but more recent studies have revealed the potential for complications that reflect the importance of angiogenesis in many normal body processes, such as wound healing, heart and kidney function, fetal development, and reproduction. Side effects of treatment with angiogenesis inhibitors can include problems with bleeding, clots in the arteries (with resultant stroke or heart attack), hypertension, and protein in the urine . Gastrointestinal perforation and fistulas also appear to be rare side effects of some angiogenesis inhibitors." [http://www.cancer.gov/about- cancer/treatment/types/immunothe...](http://www.cancer.gov/about- cancer/treatment/types/immunotherapy/angiogenesis-inhibitors-fact-sheet#q4)

</comment></comment></comment><comment><USER9> Interesting that it's a sterol, considering that corticosteroids CAUSE cataracts. Not to mention destroying retinas by inducing central serous retinopathy. We're talking allergy nasal sprays like Nasonex, eye drops like Tobradex, and shots like Prednisone.

Don't use corticosteroids unless it's a dire situation (pretty much never).</comment>


Minister explains Rudd's 'necessary hashtags' after week of confusion - <AUTHOR> https://www.theguardian.com/technology/2017/apr/04/amber-rudd-necessary-hashtags-confusion-online-images-videos-home-office <comment><USER2> So, they are technically illiterate... and doubling down on stupid, but BOO! Kiddie porn!! Bravo.</comment>


Innovation comes cheap, says Google engineer Kevin Marks - <AUTHOR> http://www.news.com/8301-13577_3-9883792-36.html?part=rss&subj=news&tag=2547-1_3-0-5

<comment><USER2> I find this bit very interesting:

"you can install applications both on your profile page and on your user page"

This represents a key insight into something that I've found lacking at Facebook. There's stuff that you want the world (or at least your friends) to know about, and there's stuff that matters or is appropriate only to you.

LiveJournal understood this deeply. At times it doesn't feel like Facebook does.</comment>


iFixit MacBook Pro 15" Touch Bar 2019 Teardown - <AUTHOR> https://www.ifixit.com/Teardown/MacBook+Pro+15-Inch+Touch+Bar+2019+Teardown/123653 <comment><USER2> Boy, there's some fairly scathing pieces of commentary in this teardown (particularly coming from what could be expected to be a pro-Mac site).

<comment><USER3> I have no idea whether it is or isn't, but why would you expect a computer repair shop to be pro-Mac? I would expect Mac's to be much more likely to be unrepairable (and thus unprofitable) than other hardware

</comment></comment><comment><USER4> The killer summary surprised me:

"Meanwhile, the fundamental problem with this laptop remains—if the slightest thing ever goes wrong, you'll be replacing half the machine. Even if the keyboard is perfect this time, you're taking a gamble on everything else. Our advice? Save your money."

Ouch!

</comment><comment><USER5> How is the screen cable? Will it break as easly as with the last model?</comment>


Coding with Onyx Boox - <AUTHOR> https://youtube.com/watch?v=h3ylbGzNyb0 <comment><USER2> Isn't that an e-Ink display? It looks to refresh quite fast!

<comment><AUTHOR> yeah! indeed an eink onyx boox max 13 inch</comment></comment>


The Dirty Secrets of 'Clean' Electric Vehicles - <AUTHOR> https://www.forbes.com/sites/tilakdoshi/2020/08/02/the-dirty-secrets-of-clean-electric-vehicles/ <comment><USER2> The article is way too "optimistic" and uses that to fuel pessimism. If the UK suddenly replaced all cars with EVs then the electric gird would be lagging behind which drags down EVs more than necessary. If you give the grid time to reduce its carbon intensity then EVs will reduce emissions by significantly more than 25%.

The article also makes a dishonest comparison using coal power. The UK barely has any coal power. You can't pretend to only look at the UK and then use some fictional worst case that doesn't exist inside it.

There are also some unknown aspects that cannot be predicted. If all cars in the UK were EVs then it would be possible to do demand side management of power where EVs primarily charge when renewables are available. There could be significantly less curtailment of renewables.

The resource intensity of EVs is definitively an area that needs improvement. Cobalt free batteries need to become the standard. Alternatives to copper based motors need to be found such as aluminum based induction motors (less efficient but more plentiful). I'm not really seeing the problem with Lithium though. It's kinda like worrying in 1900 how we are going to produce 35 billion barrels of oil per year. The reason why production of lithium is constrained is that there is basically no demand for it right now.

</comment><comment><USER3> Summary: 'it doesn't compute!'

Quote from the article:

"if we replace all of the UK vehicle fleet with EVs, assuming they use the most resource-frugal next-generation batteries, we would need the following materials: about twice the annual global production of cobalt; three quarters of the world's production lithium carbonate; nearly the entire world production of neodymium; and more than half the world's production of copper in 2018. "

<comment><USER4> So, we supposedly need twice the annual global production of cobalt to replace all of the UK fleet, but nobody seriously expects this to happen within a year. Average age of cars in Europe is somewhere between 7 and 9 years and it takes 10-15 years at least to replace the whole vehicle fleet unless you want the government to give away cars for free.

Phony, sensationalisy calculations like you'd expect from a tabloid.

<comment><USER5> >Phony, sensationalisy calculations like you'd expect from a tabloid.

I don't think it's so bad - it definitely gives some sense of scale. The UK is just one country - even if you spread replacement over 15 years, there's still the rest of the world to consider. It also infers a second point, that is, there will be nothing left (unless mineral extraction is massively increased) to construct the various renewable energy systems needed to make this "sustainable", or in fact, make anything else at all but EVs.

(I put "sustainable" in quotes, because in my opinion, there is absolutely nothing sustainable about dedicating the entire world's mineral production for many years to personal transport).

<comment><USER4> > _it definitely gives some sense of scale._

It clearly attempts to give a bad sense of it.

> _It also infers a second point, that is, there will be nothing left (unless > mineral extraction is massively increased) to construct the various > renewable energy systems needed to make this "sustainable"_

Mineral extraction increases all the time and so does recycling. Cobalt extraction in particular doubled in the last 10 years and Cobalt use in EV is decreasing steadily.

The article just tries to make something easily feasible look futile.

<comment><USER5> >The article just tries to make something easily feasible look futile.

Assuming we still need minerals for all the existing stuff we use, then we have to approximately double that just to manufacture enough EVs to replace cars in Europe, and probably quadruple it to cover Europe and the US. I have no idea how much would be needed to manufacture the wind turbines, hydroelectric generators, solar panels, etc, but I would assume it's about the same order of magnitude. So, we are looking at needing nearly 10x the annual production of the minerals mentioned, just to supply Europe and the US with EVs over the next 15 years. I don't see how you can call that feasible.

I also don't understand why boosting mineral extraction is so casually mentioned - I suppose externalizing pollution is one of the main benefits of EVs. Cobalt mining in particular is no joke.

</comment></comment></comment></comment></comment><comment><USER6> While many of the points in the article have some truth to them many are misleading or outright avoid direct comparison.

The most telling point however is at the end:

'I have worked in the oil and gas sector as an economist in both private industry and in think tanks, in Asia, the Middle East and the US over the past 25 years.'

</comment><comment><USER7> Seems increasingly clear that we need far more mass transit solutions rather than everyone owning a car

<comment><USER5> Absolutely. The "unsustainable" part of car ownership is not where the energy comes from.</comment></comment>


i would like your feedback on Followletter - <AUTHOR> http://www.followletter.com <comment><USER2> So inBox zero could be a reality not fiction any more. will Follow Letter have a platform for publishers to manage their newsletters?

<comment><AUTHOR> Yes, Followletter will make it easy for publishers to send targeted newsletters and receive in depth insights and analytics.</comment></comment>


Goldman Sachs Tells Interns to End the Late, Late Show - <AUTHOR> http://www.wsj.com/articles/goldman-sachs-tells-interns-to-end-the-late-late-show-1434562103?mod=e2fb <comment><USER2> What do investment banking interns (and bankers) do which benefits from such long hours? Lots of manual data processing? Reading? I absolutely benefit from uninterrupted stretches of 12-24h working on problems sometimes, but only infrequently -- usually hit diminishing returns between 4-12h. The only times where I've been useful >24h was when the task was more "set up this thing which has lots of waiting on other people or long-running processes", or in some cases where external factors (transportation costs, outage window) meant a single 48-72h sprint was worth more than maximum productivity during that period -- and even then, some level of rest during some stage made a huge difference.

An entire summer of 17h days is difficult to imagine as a productive way to work.

"It's just hazing" is a reasonable answer, but surely that would create a market opportunity for some alternative entity, or at least would mean the hazing has to be limited in duration.

<comment><USER3> Former GS IBD associate here.

You basically have two workdays: the client-facing workday, and the preparation-for-the-next-day workday. Client-facing workday goes roughly 9am-6pm. Preparation workday goes from 6pm to anything from midnight (on a good day) to 5am (on a bad day).

During the client-facing workday you're spending about 1-2 total hours having meetings with clients, usually on conference calls, occasionally in person; the more senior you are, the more personal interaction you have with clients. The remainder of the time is spent reviewing the materials you generated the previous night, talking about what needs to be done, etc -- basically a constant planning / execution workflow around multiple concurrent streams of deliverables.

In the evening, managing directors go home around 6pm and vice presidents go home around 8pm. That's when you become really "free" to hunker down and start jamming out work. It's a lot harder to be productive when your time is hacked into 30-minute chunks the way it is during the client-facing day.

It is quite common to have nothing to do for hours at a time, both during the day and evening, while you wait for people to get back to you with further instructions on what to prepare and/or instructions for changing what you've already made. So, a 16-hour workday isn't usually a full 16 hours straight. You usually have time to go to the very nice on-site gym, for example.

The deliverables you're making are usually PowerPoint presentations with a lot of model-driven Excel outputs in them. Occasionally the underlying models are intellectually interesting, but they usually are pretty monotonous to put together....you're building something to a clear spec, and the challenge is being 100.000% certain you did it without errors, not figuring out how to do it.

To answer the question about whether you're productive working such long hours: the time commitment and the stress certainly don't foster creativity, happiness, or high productivity, but they really don't need you to be doing inspired work. At a junior level they're looking for people who can follow defined processes at a high level of throughput with a low error rate, while contributing occasional flashes of original thought -- for example, when you have to build a new model based on a unique client situation. Those situations are actually really exciting (especially when you're working on a big problem for a big client) but the flipside of the excitement is the stress around the consequences of fucking it up -- e.g., if the client just got a "bear hug" letter from a competitor expressing interest in a merger and you have to model out whether it makes financial sense.

The downside is that it's a miserable and unhealthy way to spend a couple of years. The upside is that you ride an incredibly steep learning curve and gain a ton of knowledge on valuation models, the inner workings of various industries, corporate governance, and how to run merger / fundraising / hostile-defense processes.

Hope this was helpful.

<comment><USER2> Wow, great description.

Parts of that actually seem really fun, but mainly the learning about industries and the model-building. I suspect I'd be a bad IBD intern.

(I've been talking with some people about a technology-focused turnaround firm; capital is cheap, but being able to do PE/etc. turnarounds by buying existing failing companies and replacing tech, rather than building a startup to disrupt the industry, might be interesting in certain sectors where distribution, IP, etc. really matter.)

</comment></comment></comment><comment><USER4> A thought experiment: you have a job that pays exorbitantly well, and you want to offer it to someone. It isn't particularly difficult, and any reasonably well-informed, self-motivated college graduate can handle it. How do you hire for that job? The demand is likely insanely high.

Spoiler alert: you create an insanely complicated funnel to weed through huge quantities of candidates. And if talent isn't the primary determiner of success (remember that the job isn't that hard), how do you distinguish people? Simple, you work them nearly to death and see who comes out alive.

I'm not saying that is exactly the situation here, but I think as a mental model it's not that far off.

<comment><USER5> If the demand is so high, why not simply lower the pay to winnow the candidate pool? Why bother with the insanely complicated funnel instead?

<comment><USER6> Well it's already $0 in some situations, so... charging people to be interns? You just might have a future in finance.

<comment><USER7> Not in finance they're not. Finance wants the best interns who can actually perform at least some work, and doesn't want to get busted for breaking employment law in regards to unpaid interns.

</comment></comment></comment></comment><comment><USER8> Just a note that a policy to head home at midnight doesn't end the late, late show. It institutionizes it. Midnight is not a reasonable time to leave work.

</comment><comment><USER9> So interns are expected to stay out of the office from 12am to 7am on weekdays. That's great... Now they're only expected to be there 17 hours a day! But, during those off hours, does that mean that they can remote in and still work?

<comment><USER10> _on weekdays_.

Very sneaky, Goldman. I guess weekends are wide open to work as much as needed, right? Gotta prep that big PowerPoint for Monday morning's meeting.

This all reeks of polishing the optics and nothing to do with treating their interns with any respect.

<comment><USER3> As of about a year ago GS IBD analysts and associates are required to be out of the office from 9pm Friday to 9am Sunday unless they are granted specific permission to work extra hours by the head of the group.

It is stupid that the new rule makes people go home from midnight-7am. It would be a lot more aligned with the working hours of investment bankers if that were changed to a 2am-9am embargo. However, the optics would probably look bad; "midnight" sounds a lot more wholesome than "2am". So instead, summer analysts are going to have to be waking up at 5:30 or 6 to make it in by 7am sharp, which is going to absolutely suck for them.

</comment></comment></comment><comment><USER11> So what exactly do they do there for so many hours a day? I'm having a hard time imagining anyone doing anything productive for that long.

<comment><USER12> Investment banking is all about dealing with other people's money and the customers usually are pretty demanding when it's well, about their money. From what I hear from my investment banker friends a lot of the day is spent socializing and going on client meetings, lunches, dinners to satisfy the relationship and then usually back to the office to do the 'actual work'. It's a lot of hard work but that's why these guys get paid $200-300k soon after joining.

<comment><USER13> Investment banking is about helping companies raise equity, debt and engage in M&A, not dealing with other people's money (maybe your friends were in wealth or asset management, which sometimes sit within the investment bank?)

Having been a junior banker myself (and with friends at most banks across wall street) I can tell you that virtually no one is being taken to events or spending days socializing as an intern, let alone as an analyst or associate. You spend your days preparing pitchbooks (to pitch companies on why you should be the bank representing them), building financial models and putting together management presentations (in addition to any one-off requests your senior people or the client have). Can go into more detail but it's covered pretty well in comments above.

(Also there's no such thing as shadowing a manager in investment banking - just doesn't exist. There are mentorship programs that the banks run, but the vast majority of the time they consist of getting coffee at most once a month)

<comment><USER14> I think your response is way too literal. junior people routinely sit (quitely) in higher-level meetings so mid level people don't need to regurgitate stuff. They also spend alot of time developing lower-level social networks so they can function and get stuff done (doesn't need to be socializing with ceo). and all investment banks are (essentially) dealing with other peoples money unless they are prop trading, which is of course not how actual ipos are financed. etc.

</comment></comment></comment></comment><comment><USER15> Investment banking is a religion or something. Long hours of repetitive supplication and devotion wins the day.

But then again I do find that what clothes I'm wearing _does_ affect my code. When I wear a bowtie, for instance, I find I use more curly-braces! (facepalm).

</comment><comment><USER16> It's behind a pay wall. Not fair to make submissions many people can't read. All content I get on HackerNews should be free to read without an implication of paying to join the discussion.

The Irish Times allows current articles to be read publicly but anything that gets archived (a few days old) must be payed for to be read. I prefer and pay for this model - would be nice if WSJ adopted it.

<comment><USER17> Here you go.

[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c...](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB8QqQIwAA&url=http%3A%2F%2Fwww.wsj.com%2Farticles%2Fgoldman- sachs-tells-interns-to-end-the-late-late- show-1434562103&ei=PfGCVe7lLY_xoATFooDIDQ&usg=AFQjCNF2yVfsKx8W03C_eSlJ5ePwTr_6Bg&bvm=bv.96042044,d.cGU&cad=rja)

<comment><USER16> Thanks!

</comment></comment></comment><comment><USER18> This is a good thing. There may be some work piling up as a result of this but it's not like analysts are lacking for hours in a day to get work done. Since these changes are well-publicized, senior people will have to abide by them and clients will hopefully be more understanding on increased turnaround time.

</comment><comment><USER19> Note that the curfew (seemingly) does not apply to full-time employees, so a fresh grad could be working the night shift.

</comment><comment><USER20> Herd mentality.</comment>


Python SimpleDB Library - <AUTHOR> http://github.com/sixapart/python-simpledb/tree/master

<comment><USER2> I haven't had a chance to use this library but I have used boto: <http://code.google.com/p/boto/wiki/SimpleDbIntro> I had some unicode issues the last time I used it and since replaced SimpleDB with something else.</comment>


You can't do that - <AUTHOR> http://jacquesmattheij.com/you+can+not+do+that <comment><USER2> Surprisingly enough, this can even happen in academic environments that should know better.

Though far from the level of difficulty presented by jacquesm, the same thing happened to me with an end-of-term project a few years back.

We had to make a small piece of software in Java. Most of my mates were going for boring stuff, such as sudoku solvers or small neural networks to play the likes of Connect four.

I wanted to make a Gameboy emulator.

"You can't do this", said my professor. "At least not in two weeks' time."

Well I don't remember much besides coding during those two weeks, but guess what - after 14 days, my program could boot Tetris. No sound, granted, but it was playable.

My professor was quite the sore loser though - he considered the program incomplete since it only booted a few roms, didn't have sound and could crash randomly. I ended up turning in a gameboy rom dissassembler instead, complete with GUI and breakpoints setting.

Still, never believe that "you can't do that".

<comment><USER3> That's almost the exact experience I had in my first term of university. Everyone was making connect 4 and sudoku and they told me I couldn't write a Doom-style raycasting engine. That was the reason I had to do it!

It didn't even count towards course credit, but by the time I submitted I'd built everything, with an in-game level editor and reflective surfaces (all software-rendered). It was way beyond what I had ever achieved, and completing that project totally changed my view of what was possible.

<comment><USER4> That is quite impressive. How long do you believe it took you to accomplish that? You said a term, when did you start, and when was it due?

<comment><USER3> Hmm, a term was about 10 weeks so I guess this must have taken about 4 or 5 weeks. But I was working on it a ridiculous amount.

My friends called it "Ray" and would leave funny drawings on my desk depicting them partying while I played with Ray. Or if I had been partying with them, they'd all groan when we arrived home and I set to work. But it was definitely worth it.

</comment></comment></comment></comment><comment><USER5> _And in my experience when enough people are saying that 'you can't do that' there is an opportunity waiting for you that is proportional in pay-off to the number of people asserting that it can't be done._

Great thought.

Most of my most memorable successes were when others said that something couldn't be done. First you think, "Why not?" Then you think, "What would it take?" Then you figure that you'll never find out for sure unless you try. The reward is compounded by the initial skeptism.

Just a few silly examples (any of these sound familiar?):

      Manager: Shop Floor Control is impossible.
      Me:      Why?
      Manager: Because the base data is so inaccurate.
      Me:      So?
      Manager: It would take years to fix all the data.
      Me:      What if we turned in on anyway?
      Manager: The output would be worthless.
      Me:      Wouldn't it show where the base data was inaccurate?
      Manager: Yes.
      Me:      Then you could fix the biggest culprits?
      Manager: I suppose.
      Me:      So turning it on would expedite data fixing?
      Manager: Yes.
      Me:      So it's not really impossible?
      Manager: Well...

      Manager: Bug free software is impossible.
      Me:      What would it take to make is possible?
      Manager: Nothing.  Can't be done.
      Me:      What if we added systems testing to unit testing?
      Me:      And then built rigorous test plans covering almost everything?
      Me:      And then enforced User Acceptance Testing?
      Me:      And allowed nothing into production without passing?
      Me:      Would it be better?
      Manager: Yes, but we can't afford to do all of that.
      Me:      So, bug-free software isn't impossible, just expensive?
      Manager: No, it's impossible.  Get back to work.
      Me:      Sigh.

      Manager: A web app is impossible.
      Me:      Why?
      Manager: Because it depends upon data entered by regular people.
      Me:      So?
      Manager: People are idiots.  They enter wrong data all the time.
      Me:      What if we trained them?
      Manager: Impossible.  They don't work for us.
      Me:      What if we made the software smarter?
      Manager: What do you mean?
      Me:      Data validation.
      Me:      Data reasonableness based upon rules or history.
      Me:      Crowdsourcing data validation.
      Manager: The data would still be bad.
      Me:      What would it take to make the data good?
      Manager: Nothing. Impossible.
      Me:      Sigh.

<comment><USER6> I don't want to be harsh, but I really hope you aren't _really_ like that. This is really arrogant and you would hardly gain anything by acting like that. It seems like you are trying to demolish him by proving you are right instead of helping the team growing to a better solution.

      Manager: A web app is impossible.
      You: Yeah, I agree that it would be really hard to build,
      but it would give us great advantages.
      Manager: Maybe, but we can't trust data entered by regular people.
      You: Yes, this is a pain to deal with. Fortunately, from
     my past experience, I learned good ways to cope with that.
     At the end, everyone agreed that it was well worth the
     trouble. Anyway, I don't want to annoy you more with that,
     I know you are really busy. Let me find the project I
     worked on and let's talk about it later on.

So basically, here's your way:

      Manager: "I'm the manager and I know what to do"
      You: "Fuck you, I'm the coder and I know WAY MORE THAN
     YOU"
      Manager: (Don't like being contradicted by an employee..
     even less being told fuck you): "I am right, here's why"
      You: "Fuck you, I'm the coder and I know WAY MORE THAN
     YOU"
      Manager: (Don't like being contradicted by an employee..
     even less being told fuck you): "I am right, here's why"
      [..]
      You: "Fuck you, I'm the coder and I know WAY MORE THAN YOU"
      Manager: "No, you fuck you. I'm the manager and you won't
     win"

Here's my way:

      Manager: "I'm the manager and I know what to do"
      Me: I know you are the manager and you choose what to do,
     but as a programmer (and from my experience), I could help
     you take the best decision.
      Manager: But I'm still the manager and I WILL CHOOSE WHAT
     TO DO, not you.
      Me: Yes, totally. I'll get some facts about xyz and get
     back to you, so you can choose the best thing for the team.

<comment><USER7> I don't think it is fair to frame it so dramatically. I think you're arguing for strong diplomacy in negotiation, which I completely agree with. You could presume the original dialogue was not indicative of absolutely perfect diplomatic practices, but to say he is extremely arrogant... I would say he is justifiably confident if he has encountered relevant situations many times before and an adequate technical skill set. Either way, to pass any judgement, we're making way too many assumptions.

And ultimately, isn't this irrelevant? They are just a few general, entertaining anecdotes. I hope you don't take Dilbert or The Office seriously as well.

<comment><USER8> There's only negligible value in yet more anecdotes framed to reinforce the "coders awesome, managers stupid" stereotype.

</comment></comment></comment></comment><comment><USER9> _"In the end the project led nowhere, apparently there was a patent that it violated (of all things, one that had to do with the codes on laundry for hotels and hospitals held by Philips) but that by itself had nothing to do with the technology or whether it was possible to build this."_

Hurray for the patent system supporting innovation.

<comment><USER10> Well, one could argue that the patent system supported innovation, namely the original innovator Philips. :)

This guy just was too late, someone else beat him to it.

<comment><USER11> The patent was in an unrelated field.

<comment><USER12> > The patent was in an unrelated field.

For some meanings if "unrelated field", using the same idea is not infringement but a new invention. It's called "novel application" or somesuch.

Check with a competent patent attorney.

</comment></comment></comment></comment><comment><USER13> "Let your limits be determined by physics and other real world constraints, not by the lack of imagination or (wrong) knowledge of others."

Awesome takeaway! Without people taking that attitude, we probably would still be living in caves.

<comment><USER7> A caveat: In creating something, requisite domain knowledge is required. Know where your strengths and experiences are, how to leverage them, and be resourceful enough to obtain new skills. Don't be afraid to seek help.

</comment></comment><comment><USER14> I hate to say it, but the question "It's impossible?" is my kryptonite--but in the opposite perspective.

I accidentally established myself as a capable and competent worker at my job and have unfortunately given management the confidence that I can do anything. I'm using a negative context here because I've lost the ability to say no to them. I suppose since my job as a programmer is to give them what they want I should never want to say no, but I'm a sucker for elegance and I really try to avoid solutions that are overly complex and convoluted. Unfortunately, there are occasions in which a feature requirement requires such a solution. Or rather, not the actual feature requirement, just one of the "tweaks" they like to nitpick on to make it perfect. I.e "This is great, but you know what would make it perfect?" syndrome. Usually, I'm fine with these but when the tweak requires a complete overhaul or reimplementation--potentially days worth of coding to implement I'll try to dissuade them from it. Inevitably, if it's something they are really stubborn on when I say "well, I can't really do that --the system doesn't support event callbacks which is what would be required to implement...." I'll get back "It's impossible?".

And thats it, cat's got my tongue. I want to say yes. So bad. But I know the answer is no. I know they are confident in my ability, so they think they know the answer is no. But, seriously I'm gonna have to write a third party application in a different language and write a service protocol to communicate between the main ERP suite and the third party app to accomplish this and it's just so they can get an extra description feedback to an auto- complete feature. I know there are more important, more critical, more exciting issues that I could and I think I should work on. Whats worse, is that if I were a little less proficient, if I knew one less programming language it would impossible for me. Then again, it still wouldn't because I know I could just learn that one language and it would be possible. Arrrggghh there's no way out of this question.

"Well, no it's not impossible. I can probably do it. But it's going to take an extra couple of days.."

"Okay, let me know when its done."

[grit teeth].

<comment><USER15> Management ahold be making those decisions based on ROI. That implies they are responsible for understanding the value the change will bring and you are responsible for educating on the costs. I would respond to the "It's impossible?" question with "Is it worth seven man days of work, a potential for tricky-to-find bugs because we adding a square peg to a round whole which will increase maintenance costs, and the opportunities lost by me not working on something else for those seven man days?"

I've worked at few places that have done the real analysis to know the answer to that, but very few even consider it.

</comment></comment><comment><USER16> One of the best problem-solving strategies I was ever taught was to respond to things like this with "well, what if it wasn't?" Don't try and fight their reasoning about why it's impossible, because you won't win - instead, step around it by getting them to ignore the part they're/you're getting stuck up on.

It takes a bit of persistence and convincing the other party to engage in what they consider a flight of mental fancy, but once you get over the "impossible" part and start figuring out how to solve the rest of the problem, I find that a solution that avoids the initially-impossible part tends to present itself. That, or you'll figure out why what you thought was impossible isn't. The beauty of this is that it works equally well when you're trying to convince someone else of something you know to be right and when you're trying to figure out a solution yourself.

The other easy strategy I use all the time (and this is more for concrete problems, as opposed to intellectual/theoretical ones) is start by deciding if the problem is one that can easily be solved by throwing money at it. If it can be, then it's a much easier question - you just have to determine if the problem is worth the money it would cost to fix it, which is simpler. If the problem can't be solved with money, then you know where to start to find a solution (enumerating all the non-monetary resources you have and seeing what might work).

</comment><comment><USER17> This shows one of the reasons I love math: mathematicians only say "you can't do that" when they can prove you can't, otherwise they'll say "I don't see how to do it and it would be hard because ..."

<comment><USER18> In the case of some brutally hard problems there is virtually no difference. When yet another person claims that she proved that P=NP they usually don't read tha paper at all unless they feel that the author is a serious mathematician. Otherwise they should read amateur's papers all day long. To be honest they make fun of these people and basically they say: you cannot do that. And the truth is they are right with a 99.999999999999% probability.

Edit.: In these extreme cases it may even do good to discourage people to deal with these demonically hard problems. If you are addicted to thinking these problems are dangerous. Such hard problems ruined mathematicians life. You can become addicted to solve the problem, but you cannot solve it so you try harder. There is no sign of success, so you try even harder... When I was thinking about P vs. NP for 1 month I could not sleep well and could not concentrate on my job well. It was terrible. After the dark period it was so good to think about business, software development again where there are problems (or at least subproblems) which you can actually solve or partly solve.

</comment></comment><comment><USER19> Great article. Whenever someone's usually said that to me, my first thought is usually, "Why not?".

From the other end, in my experiences, hearing "you can't do that" in a corporate setting has often (not always) meant that the manager/company didn't feel it worth the risk to the company. The manager won't be around 2 years from now when your project is completed, so he would rather you work on things with immediate impact so it benefits his review. Because of this big companies often get very risk averse, focusing on big, cash-cow projects and consequently slow their innovation.

Contrast that to startups where you've got a bit more freedom, I'd think you're less likely to hear it (if so, it might mean more of "we don't have the resources/money"). I think it's often less of the person being an ass, and more about what they're incentivized to promote.

</comment><comment><USER20> If someone says: "That's impossible;" You should understand it as: "According to my very limited experience and narrow understanding of reality, that's very unlikely."

\- Paul Buchheit

</comment><comment><USER21> I find that the "You can't do that" is often said by people who just don't want to bother.

I was recently working in a company where the task tracking system wasn't linked in any way to source control. I thought linking the two would be a great gain: being able to see the modified files from the task management system, and resolving the task directly in the commit message would allow managers and developers to easily increase productivity, if only by a little bit.

I had to have 3 different meetings with the sysadmin to get him to do that, each one escalating further up in the company hierarchy. Eventually, we had to tell him exactly how to do it, and my boss said it had to be done. The main reason the sysadmin said he did not want to do it was that he felt there would be no gain.

I learned a lot about office politics then...

</comment><comment><USER22> Some circumstances warrant "there is a theorem stating that what you want is not possible."

<comment><USER23> With a caveat added: "... in general". As mentioned by sokoloff, the halting problem is solved routinely by people in software engineering research groups. This does not invalidate the Halting Theorem simply because the Halting Theorem talks about the impossibility of a single Turing Machine FOR ALL programs.

<comment><USER24> You don't need the "in general".

If there is a proven theorem that something is impossible, either the theorem is wrong or it's impossible.

> the halting problem is solved routinely by people in software engineering > research groups

I'm not sure how I'm meant to read this.

If it is that people do the solving of the halting problem (that is, people read the source of the program and say "this will halt" or "this will not halt"), then they have not solved the halting problem: the halting problem states there is no way to do this _by algorithm_.

If it is that people write software which solves the halting problem, then you are wrong, and you explain to yourself why you are wrong. They are solving a _different_ problem, namely, whether some very small class of computable functions halts.

Your two sentences "the halting problem is solved routinely" (assuming you mean the latter case, as above) and "this does not invalidate the Halting Theorem" do not logically work.

<comment><USER23> > If there is a proven theorem that something is impossible, either the > theorem is wrong or it's impossible.

It can get a lot more subtle than that. I do not want to elaborate, but there are classes of problems for which we can only guarantee SOME hard problems (or undecidable ones) but MOST of which are easy. There are other classes of problems where MOST problems are hard.

> Your two sentences "the halting problem is solved routinely" (assuming you > mean the latter case, as above) and "this does not invalidate the Halting > Theorem" do not logically work.

I agree it sounds illogical, but my phrasing was poor. I meant, if problem instances that arise in real life are easy to solve, yet there is a theorem that states that NOT ALL problems are easy, these two are not mutually exclusive. I agree "routinely solving the halting problem" is an exaggeration on my part.

</comment></comment></comment></comment><comment><USER18> This is a motivational article, which is fine. Some people (depending on their personality and their current state in life) need motivation: 'you can do that'!

Some other people, the born dreamers who are overly motivated and naive by default need experience, need to fail a lot to learn that some things are harder than it seems. (I am more in this category.)

But in reality there is a market for the belief of whether 'they can do that': (angel) investing. If someone bets that people's capabilities are undervalued she should buy into the market (invest in early stage enterpreneurs). If someone bets that people's capabilities are overvalued she should sell (not invest).

Saying 'you can do that' is cheap. If you really trust he/she can do that you invest. I think the market is balanced in Silicon Valley (some say overvalued) and undervalued in some countires where there is virtually no angel investing in technology startups at all. (Like where I live in Eastern Europe.)

</comment><comment><USER25> In a similar vein....I am presently working in more of a business analyst / advanced end user for a product under development. I don't know how many times I've been told by developers on the project that something "can't be done". Some good fun was had for the first few weeks before they found out I was a developer, after a few times of sending them the code to accomplish "the impossible". But now it's just getting annoying...they _still_ regularly fall back on the "can't be done" crutch, even when I tell them otherwise. Absolutely zero curiousity in learning something new....yet their considerable egos seem to remain fully intact.

</comment><comment><USER26> Good advice. Generally when I give feedback on an idea or proposal that is not possible to implement I try to give it as "I see the following challenges, ... " and try to outline my reasoning for problems for which I am not aware of a solution to. If you come back with credible ways to attack those issues I'm all for it.

Its a big demotivator if you feel like you are being dismissed out of hand. So if you're managing a team or have folks coming to you with new ideas, 'you can't do that' is probably the worst thing you can say to them.

</comment><comment><USER27> A coworker of mine shared an experience she had in college a while back.

Many years ago, for a course project, she proposed software that would allow you to tag songs and get information about it. Perfect for identifying that obscure song at a bar. The professor told her, flat out, it was impossible. He explained his reasoning and then suggested she work on another project.

All of this came to light when I showed her Shazam. Her first words were "I KNEW IT WAS POSSIBLE!"

<comment><USER28> Creating Shazam _as an undergraduate term project_ is essentially impossible. Just assembling a sufficiently large database would take longer.

<comment><USER29> In it's full robust form? Maybe (though I doubt it); however, as a proof of concept with every song in your personal collection? Much more reasonable.

<comment><USER28> That's not going to be useful for identifying that obscure song at the bar, is it?

The original post is pretty unspecific. Did the professor claim that creating a general system with a large database is impossible? That it's impossible as a term project? That creating a proof of concept system with 3 GB of music from your personal collection is impossible? That simply identifying a song given a part of it and the source file is impossible?

</comment></comment></comment></comment><comment><USER6> Personally, someone saying to me "You can't do that" is a great motivator. "You cannot get A+ in that class, it's impossible." == me studying way harder (and finally achieving that A). In fact, ironically, I always tend to do better when people think something is really hard.. maybe because I'd take it more seriously.

</comment><comment><USER30> You know what, that card IDing idea is awesome. What sort if douchebag says 'you can't do that?' My reaction would be positive/excitement and a desire to contribute, but it seems there's just this large subset of people out there who react to every new suggestion with total stick-in-the-mud negativity. Like it's their natural, gut-instinct. Maybe they just never see ideas (like the card reader) as these wonderful elegant things, or they can't imagine enough about the rest of the problem domain to see it's potential value, who knows.

At my first job my whole team had to enter details on a shared spreadsheet. I suggested we set up data-validation or drop down menus for input, someone straight off said 'can't be done - someone tried it last year, didn't work.' then took me like two weeks of campaigning just to overcome this initial knock back. What a waste of time.

<comment><USER31> > someone straight off said 'can't be done - someone tried it last year, > didn't work.'

Translation: we gave it to an intern and he couldn't do it in a week.

</comment></comment><comment><USER32> For many years I would bounce my ideas off of people, and they would look at me like I was delusional. This made me think I was delusional. After working on my MVP for the past 3 years, I have finally figured out that the best ideas are the ones that people say can't be done. With enough time and dedication anything is possible. Disregard the naysayers and keep on truckin'.

<comment><USER33> >With enough time and dedication anything is possible.

Good, where's my flying car?

<comment><USER34> In this case the dedication factor is "Improve skills of average driver to the level of skill required by an airline pilot" (not an airline pilot driving his car, an airline pilot doing his "day job") and the time factor is "wait until that happens".

Subverting the dedication part using a highly reliable software solution is acceptable (self navigating carplanes).

Once you've got that down you've solved 90% of the flying car problem. IMHO of course.

EDIT: Of course - the real "end run" around the problem would be to answer the question "why do you want a flying car?" and address THAT instead of building a flying car. Would someone want a flying car if teleportation was available? I'm guessing "no".

</comment></comment></comment><comment><USER35> I feel it is always wise to take the word "impossible" as a personal challenge to prove otherwise.

</comment><comment><USER36> I keep telling my kid, the worse bad words out of all of them are "can't" and "never".

<comment><USER28> Also "dictionary".

</comment></comment><comment><USER37> In sum the difference between 'Unlikely' and 'Impossible' is crucial...

</comment><comment><USER38> Woz didn't know it was impossible: <http://www.youtube.com/watch?v=pyKlNjwR03M#t=7m45s>

</comment><comment><USER39> Another favorite of mine: "It's not that simple".

More in a social context than a technical one, it usually implies "This is my excuse for not doing it"

<comment><USER40> No, it's my excuse for not getting stitched up by people making unrealistic promises on my behalf (e.g. a month's work in a day).

</comment></comment><comment><USER41> I suspect this guy heard 'You can't do that' quite a few times before doing this:

<http://www.bbc.co.uk/news/world-europe-12773427>

</comment><comment><USER42> Free electricity may be a pipe dream, which is understandably dismissed, even IMO (how could you get free energy from nowhere?). But a gizmo which pulls electrical or magnetic energy from the sun or surrounding space by some heretofore unimplemented and unaccepted method is not as much of a pipe dream. However it's just as quickly dismissed by academic physicists as a pipedream even though they don't know what specifically they are dismissing.

So I agree! Keep your confidence if you think you've got an idea that may work, especially when there's a bunch of people who have a vested interest in your device not succeeding, telling you that it won't work.

</comment><comment><USER43> When someone tells me "you can't do that", I usually assume they are against it and want to imply that doing that would be the stupidest thing ever.

</comment><comment><USER44> The bit about the patent is a little depressing. I wonder how many novel bits of technology were shuttered because some big company had some similar patent that they'll never use outside of lawsuits and as an asset for mergers and acquisitions. "We have the 'read security card with optics' patent. Its worth a lot!" Government mandated monopolies on ideas is just a bad idea.

Everytime I think about starting a company or investing in tech, stuff like thinks makes me reconsider.

</comment><comment><USER45> I think they mean you can't do that because of the patents? Or you can't do that because it was already tried and it went nowhere, as the author found out.

</comment><comment><USER46> But that's a basic internet manipulation trick.

1) Have problem 2) Find related discussion forum 3) Post problem, state or imply it's probably impossible. 4) Get much more interest and better answers than a plain question would have.

</comment><comment><USER47> "You can't do that" - translation:

1\. I don't want you to do that because of x,y,z.

2\. I saw some other people try that, and they failed.

3\. Someone else doesn't want you to do that.

4\. I tried it, and I failed at it and my ego is tiny.

5\. Rule or Law X states you shouldn't do that.

Can't is such an abused word, better to not use it at all to make yourself clear.

When you understand the laws of physics, anything is possible.

<comment><USER48> Don't attribute to malice what can be explained away by stupidity. In my experience, people genuinely believe certain things can't be done ([http://blog.fairsoftware.net/2010/12/16/young-and- clueless-a...](http://blog.fairsoftware.net/2010/12/16/young-and-clueless-an- unexpected-recipe-for-innovation/)).

Those people just inherited preconceptions from their environment (co-workers, bosses, common knowledge...). Their brain never even tried to wonder if a new approach was possible.

<comment><USER49> I was originally met with opposition when I told my family about wanting to do freelance programming out of college. They wanted me to get a "real job".

I think this article describes the situation well. At first I was annoyed with them, but then I came to realize that the reason they were saying this was because they didn't understand what I was getting into, and from their perspective it really was impossible.

I have come to appreciate that they are not out to rain on my parade for the sake of being mean, but because they actually do care about me. I suppose that as with all criticism, discernment is needed.

</comment></comment></comment><comment><USER50> This article is amazing, One of the best parts of being young is you don't have enough experience to know what you're not capable of. As a junior programmer I went down more misguided pathways than I care to remember, but every once in a while one of those misguided pathways had gold at the end, and I got there.

</comment><comment><USER51> Great article. I read that while imagining it in the voice of Morpheus. ;)</comment>


As Math Grows More Complex, Will Computers Reign? - <AUTHOR> http://www.wired.com/wiredscience/2013/03/computers-and-math/

<comment><USER2> Interesting. I had assumed at this point in time that computers were ubiquitous in math research. It's mind-boggling to me that there is still any significant level of pushback against using them. (I suppose that getting a CS-specific math degree gives one a skewed perspective on such details.)

Also, the point of not having standard programming classes leads to a lack of standards in research coding is an important one.

<comment><USER3> To me, this is akin to asking "as building materials grow heavier, will cranes reign?"

Computers have always been envisioned as levers for the mind. The fact that mathematicians of all people aren't taking full advantage of that principle utterly boggles my mind too.

<comment><USER4> It probably doesn't help that we go around parroting the ludicrous notion that you don't need math to program. It can hardly be true that you need to program to do math when we've been doing math for millenia.

How long can you mock your older brother in front of your hip young friends before he decides to ignore you and go play with his own friends somewhere else?

<comment><USER5> >>It probably doesn't help that we go around parroting the ludicrous notion that you don't need math to program.

I thought the consensus was that it really depends on the type of problems one is trying to solve, and that most programmers can in fact get away with knowing little math.

</comment></comment></comment></comment><comment><USER6> How does a computer help when you have conjectures involving infinite mathematical structures or extremely large numbers? You can't ask the computer to enumerate the solutions for you. You have to reason in a roundabout way, possibly building some abstraction.

Even if there are some branches of mathematics that will be affected by computers, at the end of the day, there will still have to be someone who does the conjecturing, someone with enough knowledge to pose the question to the computer.

<comment><USER7> > How does a computer help when you have conjectures involving infinite > mathematical structures or extremely large numbers?

Basically, you hop up a level (go meta). Instead of working with the extremely large numbers or sets, you symbolically manipulate statements about them.

<comment><USER6> Give me an example of how this is done or can be done.

<comment><USER8> Check out Adam Chlipala's Coq tutorial, specifically the section on infinite proofs: <http://adam.chlipala.net/cpdt/html/Coinductive.html>

I'll repeat what szany and xyzzy123 mentioned: you work at a level of abstraction where infinite data structures are represented symbolically with enough definitional scaffolding to allow proofs to go through.

In a sense, a properly typed program provides a proof of some theorem over infinite data structures. For instance, an instance of a tree (in generic Java) is usually a finite data structure, but the set of all trees representable in Java is infinite. (Handwaving begins) The types prove that certain operations can't happen, like a tree of Strings changing to a tree of Arrays by a node search algorithm, which is a proof about an infinite set.

</comment></comment></comment></comment><comment><USER9> If you find this sort of thing interesting, you may enjoy _A=B_ by Marko Petkovsek, Herbert Wilf, and Doron Zeilberger. (Wilf was mentioned in the article.)

It's available for download at <http://www.math.upenn.edu/~wilf/AeqB.html>

<comment><USER10> Link seems to be down, but I'd be interested.

<comment><USER9> If you're still having trouble accessing it, here are direct links to the mirrors:

<http://www.math.upenn.edu/~wilf/AeqB.pdf>

<http://www.math.rutgers.edu/~zeilberg/AeqB.pdf>

<http://www.fmf.uni-lj.si/aeqb/AeqB.pdf>

The license agreement is (copied and pasted from the download page):

      Copyright 1996 by A K Peters, Ltd.

      Reproduction of the downloaded version is permitted for any valid
      educational purpose of an institution of learning, in which case only
      the reasonable costs of reproduction may be charged. Reproduction for
      profit or for any commercial purposes is strictly prohibited.

</comment></comment></comment><comment><USER11> One of the reciprocal outcomes of this could be method(s) to mathematically prove the 'correctness' of a computer program...

Although, perhaps this is verging on philosophy: is such a process even possible? Do current (or future) computer programs involve leaps of intuition, and abstractions that cannot be mathematically codified?

</comment><comment><USER12> No

<http://en.wikipedia.org/wiki/Betteridges_law_of_headlines></comment>


High Court slams HMRC for concealing information around export of spyware - <AUTHOR> https://www.privacyinternational.org/press-releases/high-court-slams-hmrc-for-unlawful-concealing-of-information-surrounding-export-of

<comment><USER2> What fascinates me about FinFisher is that I still don't think we have an explanation about why Apple took so long to patch the vulnerability FinFisher was using from 2008-2011.

I wouldn't be surprised if pressure on Apple was involved, but it's also possible that it was treated as low priority.

[http://www.telegraph.co.uk/technology/apple/8912714/Apple- iT...](http://www.telegraph.co.uk/technology/apple/8912714/Apple-iTunes-flaw- allowed-government-spying-for-3-years.html)</comment>


Polyglot - automatic keyboard layout switcher for Macs - <AUTHOR> http://polyglotapp.com

<comment><AUTHOR> 30% launch discount for HNers. Use HNLaunch coupon at checkout ;)</comment>