How easy it is to set up untraceable companies - <AUTHOR> http://www.economist.com/node/21563286 <comment><USER2> NPRs Planet Money has an excellent series on this now. [http://www.npr.org/blogs/money/2012/07/27/157499893/episode-...](http://www.npr.org/blogs/money/2012/07/27/157499893/episode-390-we- set-up-an-offshore-company-in-a-tax-haven) and [http://www.npr.org/blogs/money/2012/09/18/161358307/episode-...](http://www.npr.org/blogs/money/2012/09/18/161358307/episode-403-what- can-we-do-with-our-shell-companies)

</comment><comment><USER3> Forming corporation is just very first step. Corporation needed because you need to open bank account for it to do money transfers for whatever reasons you have. And here where you will get stuck. In USA you need physical presence and ID on you to open bank account for your corporation. For offshore banking it even worse - most banks will ask for a reference. And even if they will not ask for reference, they still do whole KYC thing on you.

<comment><AUTHOR> When I moved from college to New York I managed to lose all my identification save for a foreign passport over a decade expired with a 2-year old picture of me in it. It took a bit of sweet talking, but I was able to open bank accounts (and fly domestically) with that alone. Note, too, that thanks to silly drinking laws in the U.S. there is a thriving industry in creating fake identity cards.

<comment><USER4> > Note, too, that thanks to silly drinking laws in the U.S. there is a > thriving industry in creating fake identity cards

Does this not happen much outside the US? In the US, the drinking age is 21. In most of the rest of the world it is 18, with a few scattered others (Japan 20, Iceland 20, 18-25 or illegal in India depending on region). From this, I'd expect demand for fake IDs for buying booze to be higher than average in the US because of the 19-21 year old market, but I'd expect the under 18 market to support fake IDs everywhere.

Even in the US, the impression I've gotten is that the under 18 market is where the majority of the fake ID for booze market lies, as that covers high school. Once you are out of high school and in college or in the full time work force, you can readily get booze regardless of age. In college, there will be 21 year olds among the juniors and seniors who can bring in the drinks, and in the work force there will be co-workers 21 and over to do that favor for you.

On the other hand, much of the rest of the world has been more accepting of technology to make IDs harder to fake. Could the US have a bigger fake ID market simply because it is easier to fake an ID here?

<comment><USER5> >> Could the US have a bigger fake ID market simply because it is easier to fake an ID here?

It probably has more to do with the increasingly harsh cleavage that exists between the underage seeking novelty and the overage acting in ways they view as being protective. The stigma associated with it makes both more fun and more connected with risky behavior.

I don't really see the point of going through the trouble of procuring illegal falsified documentation just to drink in the central European countries I'm familiar with. "Sure, let the 15 year old have a beer, what's the harm?" is the reaction you may encounter in several places outside the US.

<comment><USER6> > "Sure, let the 15 year old have a beer, what's the harm?" is the reaction > you may encounter in several places outside the US.

And, in fact, in multiple places inside the US, at least in private gatherings.

(Not to beat on this too hard, but in many ways the whole of the US is more akin to the whole of Europe than any single European country. Lots of cultures, lots of demographics, lots of regional variation.)

</comment></comment></comment></comment></comment><comment><USER7> Going overboard in the other direction is pretty bad too. Setting up a company in Italy is a nightmare.

</comment><comment><USER8> Can't wait to read this study.

The simple and unpleasant truth, as past research has shown, is that so much business, irrespective of its legality, is conducted using shells, so much wealth moves through them and into tax havens, it is unthinkable to shut the system down; doing so would probably hurt our economies more than help them. No one dares to mess with this beast. At least not in my lifetime.

And guess who needs untraceable shell companies? Patent trolls.

<comment><USER9> > _And guess who needs untraceable shell companies? Patent trolls._

Why is that?

<comment><USER8> 1\. Limit liability. Each threatened action is made by a separate LLC created just for that purpose. The troll's company is not put at risk every time they want to threaten someone with litigation. The LLC does the dirty work.

2\. Make it difficult for the target to assert any sort of leverage. If they do not know who is behind the shell, they do not know what resources the troll may have. If the troll is a practicing entity, they won't know if they have any claims they could assert against the troll. All they see is a recently formed LLC that has certain patent rights, and nothing else.

<comment><USER10> > Limit liability.

IANAL but I don't think a company needs to be "untraceable" to limit liability of its owners.

<comment><USER8> 3\. Control bad PR. Warrantless threats of litigation are attributed to the shell not the troll. As far as the press can see the troll is not involved.

</comment></comment></comment></comment></comment><comment><USER11> There is nothing to say these individuals/organizations would have followed up on their promises to set up these shell companies.

They could have been stings, or even scams.

In the case of the American provider who acknowledged the purpose of the shell company might have been a front for funding terrorism, they could have just requested an upfront payment (e.g. 6 months at $5,000 per month), taken the money and ran.

<comment><USER12> Would you steal from a terrorist?

<comment><USER13> That worked wonders for Doc Brown....

</comment></comment></comment><comment><USER14> I've actually been thinking about how to set up a shell corporation for a completely different reason. If the U.S. (where I currently live) fails, how do I operate a legitimate business? If I'm still living here, I should pay taxes here but if I choose to relocate, why should my entire financial infrastructure have to change?

On the other hand, if the economy fails it could very well take me with it ... I guess if I have to start over it doesn't matter where those accounts _were_.

<comment><USER15> > If the U.S. (where I currently live) fails, how do I operate a legitimate > business?

I think if the US failed as a nation you'd have a lot more to worry about.</comment></comment>


Breakthrough discovery links two of the heaviest known particles - <AUTHOR> https://news.nd.edu/news/breakthrough-discovery-links-two-of-the-heaviest-known-particles/ <comment><USER2> Nice result, but I'd remove the "breakthrough" in the title.

If I could fully editorialize the title I'd suggest "Link between the Higgs boson and top quark finally measure as expected".

The Higgs boson is relate to the mass of the particles, so it should interact more with the heaviest particles. In particular it was expected that the easiest way to make a Higgs boson is using a top quark, and the easiest way that a Higgs boson decompose is into a top/anti-top pair. In the previous calculations this relation was used to estimate the production of the Higgs boson. Now it is finally measured experimentally.

This is totally expected, but it must be measure in case there is something weird going on there and because Physics is an experimental science after all. Anyway, unless I missed some detail, this is the result of a lot of hard work but there is nothing unexpected here to call it a "breakthrough".</comment>


LA Considers Ambitious Proposal to Provide Housing for Every Homeless Person - <AUTHOR> http://losangeles.cbslocal.com/2018/03/23/la-ambitious-proposal-housing-every-homeless-person/ <comment><USER2> This is tough, LA is trying to create homeless housing but congregating lots of homeless folks in one spot is a recipe for disaster. There's an area in downtown LA where a lot of agencies reside that specialize in helping the homeless. So, as a result, a lot of homeless people congregate there. Crime is common and it's also one of the scariest areas to visit during the day. At night, it's like zombies invaded the area. As a result, homeowners are constantly fighting any proposed homeless housing.

Yes, giving a home to each will help. But the problem is bigger than that. These people will need a permanent social worker assigned to them so they can help them transition to a point where they are stable enough to keep their home.</comment>


John Carmack is reading and contributing to OpenBSD source code - <AUTHOR> https://marc.info/?l=openbsd-tech&m=158965652915344&w=2 <comment><USER3> This is such a positive and wholesome example - both the mail itself (getting to know the preferences of the project), the proposed fixes (naming functions in a better way, adding explanatory comments), and on the higher level - <USER2> humility in which it was done, and the time being invested by him for a project he isn't part of.

<comment><USER4> The parent comment seems to suggest its author is not a frequent reader of NetBSD/OpenBSD mailing lists. This message is not at all atypical of what one would routinely see on these lists from regular contributors. Perhaps John Carmack spent some time reading the OpenBSD mailing lists before posting. It just shows that in more popular projects, or whatever the projects the comment's author is accustomed to, the expectations placed on contributors can be lower.

<comment><USER3> I am actually subscribed to -tech, and an OpenBSD user for around 15 years.

Usually when mailing list messages or PR comments are posted to HN, they are about something very negative, either the attitude of the author (random examples - mails by Linus, mails by Poettering, and sometimes also mails by Theo) or the content of the request it replies to. And in the openbsd community does has some negative reputation about harsh communications.

Just wanted emphasize it, since seeing good examples is much more educating IMHO than seeing only negative ones.

<comment><USER4> Very true. Apologies for the (incorrect) assumption.

</comment></comment></comment></comment><comment><USER5> My favorite developer contributing to my favorite operating system! This is like Christmas. I've been contributing $ to OpenBSD since 3.x release days, and reading John carmack's ".plan" file since Doom 2, when they ran digital Unix!

Did you know: you have John Carmack to thank for first porting X11 to OSX? Thank you John!!

<comment> yjftsjthsd-h > Did you know: you have John Carmack to thank for first porting X11 to OSX? > Thank you John!!

Is there anything written about the background to this? Wikipedia doesn't talk about him ever working for Apple (although maybe that's just not mentioned).

<comment><USER6> OSX roots are in BSD [https://www.wired.com/2013/08/jordan- hubbard/](https://www.wired.com/2013/08/jordan-hubbard/)

<comment><USER7> Also id ran software on NeXTSTEP, itself a precursor of OSX [https://en.wikipedia.org/wiki/NeXTSTEP#Legacy](https://en.wikipedia.org/wiki/NeXTSTEP#Legacy)

<comment><USER8> yep, was going to say that this is probably the real source behind the mystery. Early OS X is basically NeXT when Jobs came back to Apple. Doom was developed on NeXT, so id Software and Carmack already had a history of using BSD. They also released Quake for Linux around 1996, which may have used X11 (I cannot recall, maybe it just depended on 3dfx/nvidia without X11 at the time... it's been so long)

<comment><USER9> There are writings floating around from Carmack that he was playing around with the OS X prototypes back when it was called Rhapsody in the late 90s.

I also thought I read somewhere that Carmack persuaded Apple to bet big on OpenGL for OS X. (Ironic now that it's deprecated.)

<comment><USER10> Doesn't seem like a _bad_ bet considering it lasted 20 years and like 14 versions, though...

<comment><USER9> If it were up to me they wouldn't deprecate it, so I wouldn't call it a bad bet either.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Is there any more context to OP's post? I guess someone just noticed in the mailing list, but it's not clear whether maybe John Carmark does this with _all_ code everywhere in the universe. And then probably still has some interesting coffee break conversations...

On a different note. I am something of a Ubuntu fan and try to be more involved there. But then again the xBSDs where x = {Free, Open, Net, ...} are one of those things that always prods the back of your mind. It's a bit like topics in mathematics that always catch my attention, only to be forsaken for more mundane tasks. Then again, mathematics is a bit like the art of making everything mundane.

<comment><USER12> For me *BSD is like Plan9 or ZX Spectrum emulator … guilty pleasure with absolutely no practical use whatsoever.

<comment><USER13> Seems a little dismissive of BSD systems given how widely deployed the are in comparison to plan9 or zx spectrums. As far as I understand Netflix uses freebsd fairly extensively, and there are powerful tools like pfSense built on BSDs too, which are also used fairly extensively as far as i know.

I would describe that as having practical use.

<comment><USER14> I think there's a difference between using _BSD to build an appliance and running_ BSD as a day-to-day system.

pfSense is a wonderful firewall appliance. FreeNAS is a wonderful storage appliance. If you need pf or native ZFS, a BSD is probably your best way to get it.

If you want to run a random headless server to mess around with, you are probably going to have a harder time with any of the BSDs than you would with even bleeding-edge Linux distros. If you want to run a graphical desktop with 3D acceleration and HD video you will almost certainly have a harder time than any Linux user.

\---

There are, of course, people who are happily using BSD-based desktops right now and I am certainly not denying them anything, but even they'd have to admit they would have been able to get most of the same experience with a lot less effort on a modern Linux.

<comment><USER15> > If you want to run a graphical desktop with 3D acceleration and HD video you > will almost certainly have a harder time than any Linux user.

With the exception of MacOS? Darwin is BSD.

<comment><USER16> Just because OSX has a very outdated BSD-derived userland does not make it a BSD. The OSX kernel a mach microkernel and shares no code from the BSD projects. This is a farcry from the *BSDs which can directly trace all of their code and history all the way back to 4.4BSD

</comment></comment></comment></comment></comment></comment><comment><USER17> So I didn't understand what that syntax meant for the code John was talking about, so I figured I would share my findings for other C newbies like myself. (If I am incorrect, please tell me!)

This:

        int (*alloc_attr)(void *c, int fg, int bg, int flags, long *attrp);

means it's defining a _function pointer_ that can point to a function that returns the type int and has a matching parameter list.

[https://stackoverflow.com/questions/840501/how-do- function-p...](https://stackoverflow.com/questions/840501/how-do-function- pointers-in-c-work)

</comment><comment><USER18> I have read many posts and articles by John Carmack, as well as viewed or attended many of his talks. In short, I have nothing but respect for him as a developer, thinker and human being in general. Consequently, if he's contributing to OpenBSD, that can only be a good thing in my opinion.

</comment><comment><USER19> OpenBSD 6.7 is going to be released tomorrow [https://www.openbsd.org/67.html](https://www.openbsd.org/67.html)

Their release engineering is awesome!

<comment><USER20> Looks like there haven't been any new openbsd release songs since 6.2 :\

[https://www.openbsd.org/lyrics.html](https://www.openbsd.org/lyrics.html)

Some of these are pretty great.

<comment><USER21> Fuck, that's cool.

</comment></comment></comment><comment><USER22> Also he's had a look at the Imperial COVID19 model that has attracted so much bile in the last week: [https://twitter.com/id_aa_carmack/status/1254872368763277313...](https://twitter.com/id_aa_carmack/status/1254872368763277313?lang=en)

I share his opinion on the code (though not his expertise!)

<comment><USER23> > _I can't vouch for the actual algorithms, but the software engineering seems > fine._

I also looked at the code a bit, and it seemed like typical bad natural sciences / electrical engineering grad student code that could have as easily been done the same way in matlab or python (or, as Carmak suggested, fortran).

I guess I'm in good company in thinking it was ok-ish, so now I'll ask.

Why are people so upset with this code base / the choice of C++?

<comment><USER24> _> why are people so upset_

Politics. "Anything that supports a position I don't like, should be attacked with full force. Anything less than perfect must disqualify the entire position."

</comment></comment></comment><comment><USER25> John Carmack streaming his programming sessions would make me happier than almost anything else programming related.

<comment><USER26> Who knows, maybe he is @ [https://www.twitch.tv/programming](https://www.twitch.tv/programming)

<comment><USER25> That can't be him. Carmack doesn't have a ponytail (anymore).

I do enjoy Jonathan Blow's live streams [http://twitch.tv/naysayer88](http://twitch.tv/naysayer88)

It would be amazing if lots of great programmers started streaming at least some of their work.

</comment></comment></comment><comment><USER27> If you're like me and can't remember names very well but thought "I know I've heard of him"...

[https://en.wikipedia.org/wiki/John_Carmack](https://en.wikipedia.org/wiki/John_Carmack)

"He co-founded the video game company id Software and was the lead programmer of its games Commander Keen, Wolfenstein 3D, Doom and Quake and their sequels."

<comment><USER28> Omg never knew he did Commander Keen too. CK2 probably was the first video game I played (as far as I can remember). Go go pogo sticks!

<comment><USER29> Commander Keen is also Doom Guy's father, at least according to Tom Hall (co- founder of id software)

[https://twitter.com/ThatTomHall/status/958352500431572992](https://twitter.com/ThatTomHall/status/958352500431572992)

<comment><USER30> Being now 1/4th of the way through Doom Eternal I wonder how Canon that is. It seems Doomguy is the direct descendent of human-but-not warrior race? So BJ Blascowitz being human (maybe?) doesn't quite fit. They're doing such an awesome job expanding the Doom mythology that it'd be tight to watch them go back and explore Keen more, silly a game though it may have been.

<comment><USER31> See: [https://www.youtube.com/watch?v=Lii3m4ct_gI](https://www.youtube.com/watch?v=Lii3m4ct_gI) And: [https://www.youtube.com/watch?v=CU0L4-- Yh28](https://www.youtube.com/watch?v=CU0L4--Yh28)

</comment></comment></comment></comment></comment><comment><USER32> If OpenBSD knows what's good for them they will encourage him to read and contribute as much as possible!

What I'd give for John Carmack to clean up my code...

<comment><USER33> OpenBSD doesn't need their code cleaned-up. Theo is the Liam Gallagher of development mangers.

<comment><USER34> "He's the angriest man you'll ever meet. He's like a man with a fork in a world of soup." (Noel Gallagher, about his brother)

I found the quote relevant ("a man with a fork")

<comment><USER33> This is accurate. You may end up getting stabbed with that fork however...

</comment></comment></comment></comment><comment><USER35> Oooh. Very interesting.

I really hope he does write an article on the source. I'd read the hell out of it.

<comment><USER32> Does John Carmack have a blog somewhere? I did a quick search and couldn't find anything.

<comment><USER36> [https://mobile.twitter.com/ID_AA_Carmack?ref_src=twsrc%5Egoo...](https://mobile.twitter.com/ID_AA_Carmack?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor)

His Twitter is a pseudo-blog

</comment></comment></comment><comment><USER37> As someone who is not following closely, did he ever mention why he is looking into alternative OS? And why OpenBSD instead of say NetBSD or FreeBSD? I assume he has many experience with linux already.

<comment><USER38> Is OpenBSD considered to be an alternative OS?

<comment><USER39> Yes. Even in the smaller BSD world it's an "alternative OS" compared to FreeBSD or NetBSD.

<comment><USER24> My understanding is that OpenBSD is much more popular than NetBSD, at least currently.

</comment></comment></comment></comment><comment><USER40> What happened to his AGI work?

<comment><USER41> Yes, any results?

</comment></comment><comment><USER42> Cool and exciting. Carmack has a level of brilliance that I find astounding.

Some of his youtube video's of him talking about graphic rendering and compression are really cool.

<comment><USER42> For anyone interested: [https://www.youtube.com/watch?v=VUxcVzpeFqc&list=PL- wlZ9j-w5...](https://www.youtube.com/watch?v=VUxcVzpeFqc&list=PL- wlZ9j-w5b8dLzm5-8cA2AXqzeCr3wav)

<comment><USER43> Why does that link contain such a screwed up playlist?

Clean link to a different playlist with just the lectures: [https://www.youtube.com/playlist?list=PLLfhkR8m8wYsgLEqr__PI...](https://www.youtube.com/playlist?list=PLLfhkR8m8wYsgLEqr__PIWcrddcUvfEod)

</comment></comment></comment><comment><USER44> John Carmack is the person I'd most like to read a programming book authored by.

</comment><comment><USER45> Here is your daily reminder to read "Masters of Doom", a book about the early days at ID Software. It's an amazing look into a really cool time in gaming and software as a whole.

It's a great book, mostly about John Carmack and the guys at ID!

[https://en.wikipedia.org/wiki/Masters_of_Doom](https://en.wikipedia.org/wiki/Masters_of_Doom)

<comment><USER46> This thread reminded me that Carmack has been a free software advocate in the past, and my citation is, quite amusingly, that book:

> It was February 8, 1998, and Carmack was about to put his brain to the test: > counting cards in blackjack. This had become something of a new fascination > of his. "Having a reasonable grounding in statistics and probability and no > belief in luck, fate, karma, or god(s), the only casino game that interests > me is blackjack," he wrote in a .plan file. "Playing blackjack properly is a > test of personal discipline. It takes a small amount of skill to know the > right plays and count the cards, but the hard part is making yourself > consistantly [sic] behave like a robot, rather than succumbing to your 'gut > instincts.' " To refine his skills before the trip, Carmack applied his > usual learning approach: consuming a few books on the subject and composing > a computer program, in this case one that simulated the statistics of > blackjack dealt cards.

> His research proved successful, netting him twenty thousand dollars, which > he donated to the Free Software Foundation, an organization of like-minded > believers in the Hacker Ethic.

<comment><USER47> Didn't he also end up getting banned for life from that casino for counting cards?

<comment><USER48> So? Counting cards is not illegal if that is what you are trying to insinuate.

<comment><USER49> No, but casinos are private businesses with the right to refuse service to anyone, and they tend to exercise that right against people they believe to be counting cards. Card counters are not a protected class.

<comment><USER50> > the right to refuse service to anyone

If I remember correctly, then that is true in Nevada, but not in Atlantic City. There they have to let you play even if they suspect you of counting cards.

Of course that just means they will employ other means to prevent you from counting cards (larger shoes, continuous shuffling, etc).

</comment></comment></comment></comment></comment></comment><comment><USER51> That's neat to see. This may not be a big story but as a fan of OpenBSD who doesn't currently have time to read the CVS log I appreciate it.

OpenBSD source is one of the cleanest I've had the pleasure to work with. You (generally) won't be scoffed at for submitting a semantic change like this, fixing typos, or the like. It certainly isn't perfect but the bar feels higher than elsewhere. Clean code and as importantly the documentation kept in sync.

</comment><comment><USER52> If there is anyone that could successfully submit a patch containing only comment breadcrumbs, it'd be Mr. Carmack.

I'd love to read it, personally.

</comment><comment><USER53> I thought he was working on AGI? Gave up already?

<comment><USER54> Most people who actually work in AI know that AGI being possible is still an IF and IF it is possible, it is centuries or even further away (basically some indeterminate time frame because we don't even know if we're on the right path). The techniques we're using today are likely not going to be applicable to AGI. John Carmack is very smart, but I wouldn't place him on the same pedestal as any of our great historical polymaths and IMO if a single person is going to make any progress in AGI it's going to be someone like Leibniz or Euler.

<comment><USER55> > [know that AGI] is centuries or even further away (basically some > indeterminate time frame because we don't even know if we're on the right > path).

How can you, in the same sentence, say the time frame is indeterminate and that it is 100+ years away?

We just don't know, period.

<comment><USER54> Well what we do know is that current AI methods are very task specific and there is nothing that generalizes well to many tasks. If it was happening in the next century we would at least have some idea how to start generalizing to many tasks with a single model or something comparable to that. We had the analytical engine in 1830s and we didn't see a turing machine or lambda calculus until the 1930s

<comment><USER55> It is extremely hard (read impossible) to predict what is going to evolve exponentially or asymptomatically in the future. Look at computing and aerospace for example. Take the state of those 2 domains and ask someone in 1900 where they think we would be in 2000, I am pretty sure they would have been quite far off.

Working at an AI lab myself, while I agree with your statement about the state of AI today, I don't know any of my colleague that would be confident to say it's 100+ years away.

</comment></comment></comment></comment></comment><comment><USER56> This is really a great coincidence. I was talking to a friend of mine two days ago about code that we have read for pleasure. I said that the Doom source code was so surprising because the logic was so clean and elegant. One felt that the code did the most obvious thing to do, rather than using unnecessary cleverness.

Even in this mail, John Carmack favors elegance.

</comment><comment><USER57> It wasn't immediately obvious to me what this change actually was about (perhaps I scimmed the comments parts too quickly), but I found this reply somewhat illuminating:

[https://marc.info/?l=openbsd- tech&m=158978831318077&w=2](https://marc.info/?l=openbsd- tech&m=158978831318077&w=2)

</comment><comment><USER58> [http://archive.is/hNXNE](http://archive.is/hNXNE)

</comment><comment><USER59> But what is he using OpenBSD for? That's what is really interesting.

</comment><comment><USER60> Next time I got flak for gratuitous refactors, I'll point to this.

From John to John, thanks.

<comment><USER61> Take care to observe how John Carmack went about it, though. He described the issue from his perspective, gave a clear example, didn't blame anyone, and asked before making any changes at all. Someone replied suggesting that the refactoring be performed separately from other changes. It's hard to give flak to someone taking a measured approach like this.

<comment><USER60> Indeed, it's not license to go for forgiveness rather than permission.

</comment></comment></comment><comment><USER62> Is it possible Occulus has a big need for such an OS and this is the cause of the contributions? Or is this Carmack being a hobbyist and simply making contributions for its own sake?

<comment><USER63> I assumed his use of an armadilloaerospace address was a signal that it isn't work-related.

<comment><USER64> He's basically retired at this point and working on things he finds interesting (which was AGI as of a few months ago; there was a blog post where he went into more detail).

</comment></comment></comment><comment><USER65> I thought it was funny that the first reply comes from someone whose email address was @id.au. (Pretty sure this is unrelated to Id Software but quite a coincidence!)

<comment><USER34> Address for an individual, in Australia (e.g. email@example.com)

</comment></comment><comment><USER66> I've never seen the use of idols, but I have to admit, John Carmack is mine. I'd give a leg to know the guy, and both to work with him.

</comment><comment><USER67> So will Bethesda sue?

</comment><comment><USER68> Is it him or is it a general AI that he created?

</comment><comment><USER69> Be cool and you will be cool.

</comment><comment><USER70> Wow, the idea of Carmack as BDFL for BSD [0] is pretty cool.

Or would that be BSDBDFL ? (BSD Benevolent Dictator For Life )

:)

<comment><USER70> That comment got downvoted???

I guess that either the BSD folks really like things the way they are or people really don't like Carmack.

Weird to see it downvoted. Would love to know why.</comment></comment>


Ask HN: Does anybody uses OpenStack? - <AUTHOR>

<comment><USER2> Aliens ?</comment>


Are You Guilty If Pirates Use Your Internet? Lawyer Says No - <AUTHOR> http://torrentfreak.com/are-you-guilty-if-pirates-use-your-internet-lawyer-says-no-110806/

<comment><USER2> This is supposed to be paired with the alternative viewpoint:

Are You Guilty If Pirates Use Your Internet? Lawyer Says YES

[http://torrentfreak.com/are-you-guilty-if-pirates-use- your-i...](http://torrentfreak.com/are-you-guilty-if-pirates-use-your- internet-lawyer-says-yes-110806/)

<comment><USER3> "I have heard other lawyers compare leaving your wifi open to leaving a loaded gun lying around."

<comment><USER4> I like how he tosses that out there as something _other lawyers_ have said, and then says that he would only compare it to leaving your keys in your car. As though that negates his sensationalism.

I also wonder what his opinion is on wireless networks that are "secured" by not broadcasting an SSID, or by using WEP, which even the slowest computer can crack in less time than it takes to torrent a movie. Is that still negligent?

Furthermore, if he's in the business of actually making contributory negligence claims, why can't he cite a successful example, instead of relying on analogous case law from the 1930s, involving physical property instead of intellectual property? (The opposing viewpoint cites the Supreme court on the issues of contributory and vicarious infringement, and the 9th Circuit on a more recent case.)

<comment><USER5> But this is how arguing about the law so often works. It's not clear what the law should say in a new case, so we make analogies to cases where there's precedent.

The question falls into the general class of problems "If you provide the tools for someone else to break the law, do you have any responsibility when they do?" And that's a huge class of problems, with precedent both ways for various subcases. You _are_ partially responsible if you leave a loaded gun lying on a park bench and somebody shoots someone else with it. You _aren't_ partially responsible if someone breaks your window, picks up a piece of broken glass and goes on a stabbing spree.

It's further complicated, here, by the fact that it's possible to claim "it wasn't me, it was someone else stealing my wifi" when it was, in fact, you.

<comment><USER4> I know that's how a common law system works, and I'm not saying it's a bad thing. I'm just saying that, for someone who's been involved in hundreds of these suits, it shouldn't be hard to provide a more relevant or more recent analogy, preferably one involving intellectual property or computer crimes, or both. He should also be able to cite the statutes or rulings that provide the legal groundwork for his theory of negligent contributory infringement. (If the SCOTUS has already says that contributory infringement must be willful, what provides the cause of action against an unknowing enabler of infringement?)

His example of negligence in a case where there was a contractual business relationship that was not satisfactorily fulfilled doesn't seem very convincing up against a Supreme Court ruling that contributory infringement must be willful. It sounds more like a way to be on the losing side of a summary judgement.

The fact that the defendant can perjure himself is really never a good reason to invent a new offense.

</comment></comment></comment></comment></comment><comment><USER6> Some countries make sure that you're to blame in any case...

[http://tech.blorge.com/Structure:%20/2010/05/12/german- court...](http://tech.blorge.com/Structure:%20/2010/05/12/german-court- effectively-outlaws-open-wi-fi/)

Edit: Note that I'm not really against educating people about encryption. But - how am I supposed to run a private hotspot now? And how the hell would it help if someone now turns on WEP?

<comment><USER7> New Zealand recently passed a law (which the US government asked for, according to a Wikileaks cable, and the government here rolled over for them) which creates civil penalties for being an 'account holder' with an 'Internet Protocol Address Provider' if the IP address is found to have downloaded copyrighted material.

So when the law comes into force in New Zealand, there will be no need to prove who 'used the Internet' - only who the account holder was for a given IP address, and that the IP address was involved in transferring material owned by the plaintiff (and even then, not really prove - having sent a notice to the defendant via their ISP creates an assumption of liability that has to be disproved by the defendant).

</comment></comment><comment><USER8> Given the two lawyers, why does the lawyer working for the copyright holders look like somebody you would expect to represent guys named Guido?

It disgusts me that anybody could think someone providing open wifi is negligent. It is not my sworn duty to protect copyright holders' material, after all.

<comment><USER9> I agree. Can you imagine a bank robber stealing an unlocked car, then using it to go rob a bank and kill people? Then, can you imagine the car owner getting sued by everyone?

I can't.

</comment></comment><comment><USER10> This article is great if you have free legal representation, otherwise good luck spending less in legal fees than the offered settlement amount even if you are totally innocent.

<comment><USER11> That's why in most jurisdictions the winner of civil litigation proceedings is (generally) entitled to have their costs paid by the other party.

</comment></comment><comment><USER12> It doesn't really matter what the LAWYER says. It matters what the COURT decides.

<comment><USER13> Actually, neither matters. The entire point of this tactic is that paying up costs less than mounting a legal defense.

This is just a symptom of the socioeconomic bias in our legal system. Fix that, and such tactics won't be possible. Don't fix it, and you'll be here trying to patch it all day only to have someone come up with another tactic.</comment></comment>


Comparison of C/Posix standard library implementations for Linux - <AUTHOR> http://www.etalabs.net/compare_libcs.html <comment><USER2> The section on architecture support of dietlibc is too optimistic, IMHO. I stumbled upon quite a few function, esp. floating-point-related functions, that simply aren't implemented on x86_64 while they're available while they're available on x86.

But then one needs to understand the background of how and why dietlibc came to be: its original author used to work for a German company developing digital TV set-top boxes and receivers, based on Linux and technologies like DirectFB, so obviously supporting their requirements and optimizing for size aggressively, even if some functionality is non-conformant, has always been a priority.

Full disclosure: I contributed a few patches to dietlibc.

<comment><USER3> Also the ARMv8 (aarch32 and aarch64) seem to be missing.

<comment><USER2> Well, it supports S390 and IA64. That shows you in which decade much of its development happened.

</comment></comment></comment><comment><USER4> Musl is a really nice libc, small and correct. The team are nice to work with. In particular if you want to static link something to get a completely standalone executable it is a great choice, you can ship a file with no dependencies. The source code is really easy to read if you want to see how things are implemented.

<comment><USER3> This is also (IMO) what bionic is great for. It's also licensed compatibly, whereas the rest aren't.

<comment><USER4> Bionic is very incomplete though. it is not really worth using outside Android you may as well use Musl.

<comment><USER3> Musl (looks like) doesn't support aarch64 and aarch32, so if you're targeting those it's not even an option.

<comment><USER5> Could you clarify what you mean by "doesn't support aarch32"? I can't find any clear definition of what aarch32 means, but my impression is that it's just a new name for what we call "arm", but possibly implying new instructions available on v8, and the ABI is the regular 32-bit ARM EABI. If so musl supports it just fine.

</comment></comment></comment></comment></comment><comment><USER6> To make it clearer: the article compares several implementations of libc for systems.

On a desktop, the most common one is eglibc. uClibc is the implementation you will find on µClinux, a common version of Linux for embedded systems.

Note: historically, eglibc is a variant of glibc for embedded systems (Embedded GNU libc) but finally replaced it

<comment><USER4> Glibc and eglibc are merging, it seems there will be no more eglibc releases

[http://www.eglibc.org/archives/patches/msg01321.html](http://www.eglibc.org/archives/patches/msg01321.html)

The development process in glibc was fixed, rather like the egcs split all over again.

</comment></comment><comment><USER7> One of the musl devs is also one of the absolute best StackOverflow posters (as "R.."). Unsurprisingly, he mainly answers low-level C questions; his responses are always thoughtful and well worth reading (if you're interested in such details).

<comment><USER8> Link to R..'s C answers/questions:

[http://stackoverflow.com/search?tab=votes&q=user%3a379897%20...](http://stackoverflow.com/search?tab=votes&q=user%3a379897%20\[c\])

</comment></comment><comment><USER9> Out of curiosity, are there similar projects that will run on BSD? Or will any of these?

<comment><USER4> No, none of these will run on BSD. But the BSDs each ship with a perfectly good, small, BSD licensed libc that supports static linking. Bionic libc for Android was more or less ported form one of the BSD libcs. Basically these projects, especially Musl, are trying to provide the equivalent of a BSD libc for Linux...

</comment></comment><comment><USER10> Wow, just going by quantity of green, Musl looks excellent.

Why have I not heard of it until now?

<comment><USER11> Note that this table is written by one of the musl authors; not that there's anything shady about it, but it's a list of what the musl authors think are important, so it's to be expected that musl is trying to check off all the boxes, wheras other libc implementations may have different goals.

<comment><USER5> Yes. If anyone has suggestions for other comparison points I should add that would be more balanced, I can try to add them (but some things require non- trivial work to measure so it might take me a while to get around to it). Note that the comparison table as it stands it pretty old, but very little has changed since I did it except musl getting slightly bigger and glibc getting a lot bigger (and eglibc merging back into glibc, so it's rather pointless to talk about it as "eglibc" anymore). :-)

</comment></comment></comment><comment><USER12> Odd that there's no mention of Annex K support under the "Security/hardening comparison" heading. While it's optional to implement, it certainly applies.

<comment><USER5> I don't think there's much value in adding an Annex K comparison anywhere since none of the compared libcs have Annex K functions; comparison items are only meaningful where they differ. Even if some libcs did have it, though, I'd be hesitant to put it under hardening. My concept of "hardening" is providing additional properties beyond the scope of the specification (usually this means in places where undefined behavior occurs, but it could also be implementation-defined things, such as using an alternate pointer representation that allows as much bounds-checking as C makes possible).

</comment></comment><comment><USER13> Why not compare to glibc? Am I missing something?

<comment><USER14> glibc and eglibc are more or less merged[0], probably oversight from when eglibc was simply a better glibc

[0] [http://www.eglibc.org/archives/patches/msg01327.html](http://www.eglibc.org/archives/patches/msg01327.html)

</comment></comment><comment><USER15> I'm interested in learning more about how the various libc's are implemented. Can someone suggest one (or other C code) that I can download and look through? I am trying to find high quality open source C to learn from. Thanks

<comment><USER4> Musl is very easy to read, recommend looking at that. It is very easy to find your way around.

</comment></comment><comment><USER16> If I was a Linux distributor, I would seriously consider replacing 1.5 MB glibc with an alternative (musl based on this chart).

Why aren't more distros looking at the possibility?

<comment><USER17> Because there's no real problem with having a 1.5MB glibc on a server or desktop OS, and glibc is quite a lot more featureful than the alternatives. Many lack locale support, nsswitch, backwards binary compatibility and various minor bits and pieces that breaks existing applications.

</comment></comment><comment><USER18> I'm sorry, did it ever say exactly what the implementations were? Specific versions sometimes matter. Devil's in the details and all that.

<comment><USER5> The musl figures may be somewhat outdated since musl is developing rather quickly. With regards to the others, the main thing that's outdated is the size of glibc. It's considerably larger now. :-)

</comment></comment><comment><USER19> the real question is... anyones using this as their libc on servers/desktops with no issues compared to glibc?

</comment><comment><USER20> And no GNU libc. Idiocy.

<comment><USER21> eglibc is basically the same thing, except better. Ubuntu, Debian, and Arch all use eglibc.

<comment> B-Con I don't see anything to suggest that Arch uses eglibc. The glibc package in the repos is clearly the original glibc (look at the name, package URL, and build config) and there is no other package named "eglibc". Also, a very recent forum post[1] implies eglibc is not the standard.

Wikipedia says[2] that Arch uses eglibc, but their source is the eglibc website home page and I find no such claim on the entire site. I can't find anything about eglibc on the Arch mailing list, either.

Have I missed something?

[0]: [https://www.archlinux.org/packages/core/x86_64/glibc/](https://www.archlinux.org/packages/core/x86_64/glibc/)

[1]: [https://bbs.archlinux.org/viewtopic.php?177180](https://bbs.archlinux.org/viewtopic.php?177180)

[2]: [http://en.wikipedia.org/wiki/GNU_C_Library](http://en.wikipedia.org/wiki/GNU_C_Library)

<comment><USER21> Yeah, you're right, I can't find anything saying Arch is using eglibc either. I did get my information on it from that Wikipedia article, I guess I should have checked the citations.</comment></comment></comment></comment>


Brendan is back to save the Web - <AUTHOR> http://andreasgal.com/2016/01/20/brendan-is-back-to-save-the-web/ <comment><USER2> Well, good job everyone--you made life miserable for him, and now the web is going to get _even worse_. Since, you know, this is going to validate what are effectively subscriptions to websites not to be pestered to death.

I take issue with the assertion that ad-blocking will break the backbone of the web: it's just been such an easy thing to do that people have built so much garbage around it and bloated up so much while offering actual users little in exchange that to finally kill it off is seen as impossible.

It's like this bizarro world where Stockholm syndrome has kicked in and everybody thinks that ads are somehow needed to keep the economy turning (which they aren't, because we can find things via search and whatnot) and that they actually delight people (which they don't, because they ruin the design integrity of most sites).

Like, we've got a gigantic industry built on adtech and user tracking--and once, the Southern US had a large farming industry based on slave labor. Neither is the "natural" order of things, and neither is anything but the exploitation of people.

</comment><comment><USER3> Generally the sites who have more ads than contents usually have poor content (buzzy-clickbaity websites). In my opinion and AFAIK we can't change the business model of the web but each user can decide which site to go in order to seek high-quality content (I usually see less intrusive ads in those sites). Things are not as bad as we would think.</comment>


Is Jetbrains going to remain relevant in the next 10 years? - <AUTHOR> https://medium.com/@andrerpena/is-jetbrains-going-to-remain-relevant-in-the-next-10-years-dc5717a221d5 <comment><AUTHOR> I spent probably a few months together trying geany, vim, eclipse, vscode...over my development career, as a matter of fact I spent yet another full working day with vim trying to get call graph and autocomplete working more smoothly, to no avail, I then tried Jetbrains at night(I have been using pycharm but barely used clion and webstorm), I quickly found all those features I need are already in JetBrains, and my one-day cost can buy a few years' license. Time is money.

I have ditched vscode two months ago(the setting-sycn lost all my settings and that's the last straw), now for me, vim will be restricted to server side editing or casual hacking, I will spend more time coding instead of building my IDE, I will just stick with Jetbrains, hope it will stay relevant for the next 10 years.

</comment><comment><USER2> Recently I have been more invested in the Jetbrains ecosystem then ever before. Intellij has become a tool that is so full fledged it can replace almost all my other development tools. It can run and compile all things JVM. It is able to compile, refactor, and typecheck TypeScript. It can run my test suites. I can use it to browse any database tables, and the list goes on. At the same time I also see the popularity of Kotlin picking up, which will help Jetbrains push their IDE products in the future.

</comment><comment><USER3> Regardless of the topic (IMO you could argue "will .NET remain relevant" just as easily, and comparing an 'editor in a chrome window' with an IDEA based IDE is just ridiculous), the basic grammatical errors made this painful to read even a paragraph.

> He didn't say no, but his delay made me by it myself.

That "buy" appears in the sentence preceding this one is even more crazy.

> I kind of feel like they like me to :).

I assume this was meant to be "like me too".

</comment><comment><USER4> This is one example but IntelliJ is still the bees knees for Java development. I tried vscode and after a day trying to install various plugins, I was still lacking in functionality that you take for granted in IntelliJ.

Maybe in a few more versions they will be comparable?

</comment><comment><USER5> _Besides, with every new release of Visual Studio, there's a bit less need for Resharper._

Every time there is a new Visual Studio release I start without Resharper. Eventually there is something I need and I give in but it does seem to be getting much closer.</comment>


Google Goes Native: Offers Sneak Peak at C++ Support in Chromium - <AUTHOR> http://www.readwriteweb.com/cloud/2010/05/google-native-client.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+readwriteweb+%28ReadWriteWeb%29&utm_content=Google+Reader <comment><USER2> Google's Native Client is the most exciting thing to happen to the web in a long time. IMVU has always talked about porting our client to the web, but the existing technologies just aren't good enough: Unity3D doesn't support software rendering, Flash is too slow, JavaScript is too slow... Native Client would let us continue to use our SSE-optimized rendering code, securely, without requiring a download.

A colleague was playing around with the NaCl SDK and he said the example app is Quake. Within a day or so, he had an in-browser demo running 9 instances of Quake, with sound, all at the same time.

All this noise about HTML 5 and video codecs? With Native Client, the web app could include whatever codec it wanted.

Ever notice that a simple 2D game such as Farmville runs at 15 frames per second, even on a machine that can play Crysis or Supreme Commander? With Native Client, we'll start to see these types of truly rich experiences on the web.

I'm sorry, Flash, but the web is changing without you...

Edit: I see there is a lot of concern about security. NaCl uses x86 segment restrictions to build a sandbox for untrusted x86 code. Google ran a contest to try to poke holes in it: <http://code.google.com/contests/nativeclient- security/>

<comment><USER3> It's looking more and more like we are entering a new age of web/browser innovation. Google, Mozilla, Apple and sometimes Opera are in a browser arms race, each pumping up the speed and capabilities of html/css/javascript to heights not many people imagined they could go 5 or 10 years ago. And with stuff like native client and soon LLVM support I think we're going to see an explosion of innovation as people discover what's possible with the new web.

Long ago some crazy folks managed to cram most of the guts of a processor onto a single integrated circuit, allowing the creation of a crude yet functional general purpose computer with a single printed circuit board and a few commodity support components. This enabled the creation of "personal" computers that were cheap enough and small enough for nearly anyone to own. At first they were far, far less capable than the mainframes and mini-computers of the day, and written off by many professionals as merely toys. But the nature and simplicity of their construction as well as the expanded potential user and developer base enabled for a faster rate of evolution than old style computer systems. At first micro-computers could only run native code, then people started writing simple interpreters and compilers, then developers created command line operating systems, just as had happened for mainframe computers decades ago, the micro-computer was simply playing catch up. But micro-computer development caught up extraordinarily quickly, and then began to surpass mini-computers and mainframes (as the rate of evolution didn't change after having caught up). Mini-computers quickly died out as specialized micro-computers began to take over their old roles.

Will things be the same for the web? In 5 or 10 years will we see web based applications and games more advanced than photoshop, visual studio, and Halo today?

</comment></comment><comment><USER4> This is a great idea, to have a full powered language running in a VM in the browser. All we need now is to have a more developer-friendly language with a richer VM and framework, like Java.

Err....

<comment><USER5> Native Client (as the name suggests) is not a VM, it executes x86 machine code (with some limitations to ensure security) directly on the CPU.

</comment></comment><comment><USER6> My friend is the author of JNext library (<http://jnext.org/>) which is the same concept implemented for all major browsers.

When he got an email from Mountain View which offered him a Job and working on a similar project it was clear Google is pushing hard into this direction.

</comment><comment><USER7> The number of network-effect reasons why an end user should care what OS he runs continues to diminish. This is bad for Microsoft, but good for Apple and everybody else. Microsoft attempted to sandbag the browser because it foresaw this endgame, and it knew that its business model is based on a precarious positive feedback loop consisting of Windows, Office, and a very large install base. This feedback loop is broken when one no longer needs Windows to run most available software, collaborate with others, or find supported hardware.

At first, Google's offerings look, as another poster said, like spaghetti flung at a wall in hope that some will stick. I think there's a more cohesive strategy behind it, and it's all about building a platform on top of Windows (and other operating systems) to cut off Microsoft's air supply. Google's cloud printing initiative is a perfect example of this -- if a site's back-end can generate printer-ready content and allow a user to print it locally from a netbook/tablet/phone/whatever, that takes away a major reason to keep a Windows desktop sitting around at home connected to a printer. A user can just buy a Wifi-enabled printer if he cares about dead-tree artifacts.

I'm working now on a GWT application. Why, other than for its own internal purposes, would Google invest so much in this tool? It allows a new generation of in-house corporate apps requiring fast user interaction (think call center) to be built for the browser instead of the obvious Windows-centric alternatives like Visual Basic. One less reason for a Fortune 500 company to deploy 10K Windows desktops. Perhaps a call center could be run on a bunch of ChromeOS appliances?

Look at the initiative to introduce Gb-to-the-home. Google certainly wins if Youtube becomes like a TV network, but the lack of bandwidth also requires users to use home servers to house their content locally. Although appliances for this are certainly becoming more common, many consumers likely use a Windows machine to serve up their content to their TVs.

If I had more time, I'd write about other stuff Google's doing and how I think it ties in to the "layer on top of the desktop" strategy. While a rising cloud/network tide will float all non-Microsoft boats, how does Google justify paying for all the water required? Is the ROI there to support such a subsidy?

<comment><USER8> _t first, Google's offerings look, as another poster said, like spaghetti flung at a wall in hope that some will stick._

It's beginning to look more and more like a Jackson Pollock painting... or maybe a Jackson Pollock exhibition.

</comment></comment><comment><USER9> So the browser is becoming a VM that can transparently download things off the web... Companies will totally control the software this way.

SaaS is the biggest lock-in, but no one seems to be complaining.

<comment><USER10> The problem isn't lock-in, it's lock-out. Closed source desktop software and file formats can lock you in as tight as any web app, but at least they don't spontaneously change or disappear entirely.

In either cases, the issue comes down to data portability. If you can get at your data, in a reasonably convenient format, you're not locked in. This can and should be provided in any application model and I am relieved, as of late, to see awareness of this spreading fast.

</comment></comment><comment><USER11> It's a plugin - meaning that we limit the users to using a subset of browsers (those with supported plugins) and forcing them to upgrade it when we want to use the latest features. This is NO worse than flash, it's just you write the apps in C/C++/Go rather than ActionScript.

I don't see the benefit; all I see is another Flash/Silverlight wannabe that puts more reliance on the user understanding their system/installed programs. This is not the future.

<comment><USER12> Except that you have much greater choice of language. Honestly, I dislike client-side web programming because it forces me to use Javascript, even when Javascript may not be the most appropriate language. This would let me choose one of a large range of languages. Definitely a step up.

Secondly, isn't the point of this that it sandboxes native code? That means you can, potentially, have code running much much faster than Flash can.

More choice and better performance = win IMHO.

<comment><USER11> Better for us as developers but as for the user of the product (the person paying for/using it) it is not good. We are meant to have the problems and not just pass them to the users.

<comment><USER13> What problems are you referring to? Surely the problems can't be much worse than what you'd have with Flash anyway.

</comment></comment></comment></comment><comment><USER14> Merge this with Android, to enable highly optimized games and data-intensive applications that run on all Android platforms. Heck, have the OS implemented with this.

<comment><USER15> From the original sources,( [http://blog.chromium.org/2010/05/sneak-peek-at- native-client...](http://blog.chromium.org/2010/05/sneak-peek-at-native- client-sdk.html) ), it seems that this is only x86/x86-64 compatible, wheras most android deployments run on ARM. I don't know how they hope to get around that, as mobile devices seem to be tied closely to the future to the web.

<comment><USER16> It's fairly easy to port Android to x86 platforms, in fact we have some working in our lab. The target here would not be mobile devices but set-top- boxes. It's known that Google is working on an Android STB; however, it seems Chrome OS would be another good choice.

<comment><USER17> The issue isn't "Can Android run on x86" but "Can the shiny new features Google is developing run on Android phones that already exist?"

</comment></comment></comment></comment><comment><USER18> LLVM in the browser == client-side Haskell... Thanks Google!!

<comment><USER19> "From what we see, Google is planning on enabling additional compilers and plans to support LLVM in time."

They haven't done it yet.

<comment><USER5> Google provides a modified version of binutils that can create Native Client binaries. This should be enough to compile from any programming language to Native Client binaries.

As for LLVM: I believe the main challenge here is modifying the LLVM JIT compiler to produce Native Client-friendly machine code.

</comment></comment></comment><comment><USER20> Is there any information about how the native plugins installation process will look like for the end user?

<comment><USER21> I believe there isn't an install process. But you could always fire up a nightly to test ;)

My guess is this won't see mainstream distribution until they've removed the x86 instruction dependency. I think the shipping version will use LLVM bytecode rather than x86 machine code. (this has been hinted at, too.)

<comment><USER22> You're probably right about their desire to get rid of the x86 dependency. Distributing LLVM bytecode really is a better way; it'll allow NaCl pages to be viewable on ARM-using devices as well as x86-using PCs without needing to provide separate binaries. As the makers of Android and Chrome OS, Google probably would like to avoid locking ARM out.

</comment></comment></comment><comment><USER20> They also hint that the Native Clients could eventually work in IE/Firefox. But they will rely on open-source contributions to port NPAPI/Pepper to those browsers..

[https://groups.google.com/group/native-client- discuss/browse...](https://groups.google.com/group/native-client- discuss/browse_thread/thread/a24776cd7da86fd2)

"A subset of our current functionality works in Firefox, for example (though it's currently missing some important parts, like 3D)"

</comment><comment><USER23> I wish they would have started with LLVM or some other bytecode rather than x86 but this is a huge step towards having other languages in the browser.

<comment><USER14> Go?

<comment><USER24> Go already works in NaCl

</comment></comment></comment><comment><USER25> Is this their way of conceding that nobody is _really_ serious about making rich graphical apps in JavaScript?

Also, Google sure throws a lot of spaghetti on the wall to see if something will stick, don't they? From this to Chrome OS to their JavaScript stuff to Android to Go and on and on.

<comment><USER26> > Also, Google sure throws a lot of spaghetti on the wall to see if something > will stick, don't they? From this to Chrome OS to their JavaScript stuff to > Android to Go and on and on.

You make it sound like they aren't related :)

<comment><USER27> Spaghetti and Android ARE completely unrelated :-)

</comment></comment></comment><comment><USER28> This makes a lot of sense in combination with Chrome OS. Once we have an OS that's just a browser, we can still run high-performance apps. If I would switch to Chrome OS today, there's quite some things that I'd be missing, and NC can help making the transition a lot easier.

</comment><comment><USER29> Guess I need to start brushing up on C/C++ now

</comment><comment><USER30> This seems like a neat idea, however what are the chances of other browsers supporting this? Since IE is still the dominant browser, I don't see many companies wanting to go for this since it would isolate all non-chrome users.

How does Google plan to spread adoption of this technology?

</comment><comment><USER31> Didn't we all think that ActiveX was a bad idea? Why is Google reinventing it?

<comment><USER32> It isn't ActiveX. ActiveX is basically OLE/COM components in the web browser and allows execution of arbitrary code. Code has full access to the Win32 API and full access to the system. Native Client on the other hand is sandboxed at the CPU instruction level.

</comment></comment><comment><USER33> What about security? Do they have a layer enforcing the sorts of constraints that javascript is currently restricted by?

<comment><USER34> Much better security architecture. If you're technically inclined, you should read their paper about the NaCl architecture. [http://nativeclient.googlecode.com/svn/trunk/src/native_clie...](http://nativeclient.googlecode.com/svn/trunk/src/native_client/documentation/nacl_paper.pdf)

<comment><USER22> Indeed, the point of NaCl is that it's not going to be another ActiveX-style security nightmare, so people might actually use it. That will be great.

</comment></comment></comment><comment><USER35> Anyone has a link to a NPAPI/Pepper interface in another language than C++?

</comment><comment><USER36> Hah, I'm going to port WebKit to NaCl SDK. :)

</comment><comment><USER37> Let's hope this can be an open standard, otherwise Steve don't like it.

<http://www.apple.com/hotnews/thoughts-on-flash/>

..HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is completely open and controlled by a standards committee, of which Apple is a member....</comment>


Programming as a side-job? - <AUTHOR> Summary: is it possible, as a student, to make money by programming during university? If so, what directions are open to me?
Perhaps I should briefly introduce myself - I am 19, finished with high school last year, did a gap year and will start with university in Germany this October, studying biology. (In Würzburg, with the aim of going into bioinformatics.) I am a hobby programmer, started with Java close on four years ago, and have since added Python, Common Lisp and a bit of C++. I can't really judge how good I am as a programmer, but I am starting to contribute to open source (currently, the Bazaar VCS).
Like just about all students, I will want to earn a bit of money by the side to see me through university. (There are no tuition fees in Germany, but living expenses need to be paid for.) I would love to be able to do this with programming - getting paid for my hobby seems pretty cool. But I don't know how realistic this is with my level of skill, and who would hire me just for the semester holidays - or can I go freelance? (For the latter option, I also don't know what legal things I'd have to watch out for in Germany.) <comment><USER2> I'm in a similar situation. In the passed months I found some freelance web design work, and that was some nice side money. However, I've been looking at local job listings (Portland, Oregon) and part time positions are very limited. One thing to look out for is paid internships. I went to an interview for a junior developer position and didn't get the gig because of my school schedule. Now I'm shifting my search to target paid internships.

From my experience your best bet is, paid internships, and freelance work. This is a good question. Working in food service while studying computer science is hard on the spirit. Do you have a portfolio/github/codepen where people can see your work? If not, that will help get your foot in the door.

<comment><AUTHOR> > Working in food service while studying computer science is hard on the > spirit.

Been there, done that ;-)

Thanks for the paid internship hint, I'll have a look around for those. I have some of my slightly older projects up on Launchpad, and am looking to joining Github soon.

What freelance work would you recommend? App development, or custom software for businesses?

</comment></comment><comment><USER3> Hi,

I am studying Computer Science in Würzburg ;)

It depends on your skillset, but actually its plenty easy in Würzburg and Germany in general to make SOME money. It off course depends on your expertise and requierments.

Although, i am the University for Applied Sciencs, and our Faculty has a real strong support network for getting students into various jobs. Cant speak for the University, and certainly not for the Faculty of Biology.

If you want I can give you some advice though :)

<comment><AUTHOR> Oh, a fellow German :-)

By University for Applied Sciences, do you mean the Fachhochschule?

Would you know any companies in Würzburg and the surrounding area that I could apply to for a summer job?

<comment><USER3> Yes i did :)

Actually its really easy to go freelance, for germany just go and inform urself an "Gewerbe anmelden". It is actually incredibly friendly :)

This way you can easily work whenver you have time, at hours and a location of ur choosing. Other than that, u can maybe ask the student body ("Fachschaft") of your Computer Science Department if the Univiersity has a similiar job market. These are some methods to get a steady supply.

To specifically answer you, on the top of my head, i recently was approached by: FlyerAlarm - One of the biggest OnlinePrintShops Garmin - One of the biggest Navigation Companies world wide. And one more i dont want to disclose since my girlfriend is applying for the job....sorry ^^

But i know there are lots more :)</comment></comment></comment>


Reid Hoffman at Startup School [video] - <AUTHOR> http://themacro.com/articles/2016/10/reid-hoffman-at-startup-school/ <comment><USER2> Am I the only one who can't listen to Reid Hoffman? I was one of the first LinkedIn users and a few years later I felt that LinkedIn was a scam. I even paid a lot of money for LinkedIn Premium and ads to only realize that LinkedIn was only for recruiters. Their B2B proposition was a black hole. Nothing came from there. Their mobile phone app is until now just a embedded browser that you cannot use offline. No serious business has such execution, it seems like nobody really cared.

I know that Reid is appreciated in the startup world but LinkedIn only shows how smart and patient they were to exit the business.

</comment><comment><USER3> _Anyone that's inventing the kinds of products that we typically do should be able to articulate a relatively robust theory around "What is human nature? What is humanity like now? Where is it going? And how does your product or service fit into that?"_

I have talked with basically every Venture Fund in the valley (Including Greylock by the way) and a Partner has never asked me anything remotely close to this kind of a question. When in the hour intro pitch, or the two hour partner pitch would my personal philosophy come up? Well, the answer in my experience is: it won't come up.

This further reinforces that the people funding at the idea or early deployment stage of their companies are getting it through relationships built over long periods of time with these people. This isn't new to anyone who has been there before, but if it's not clear to you that fundraising is 99% network then you should realize that this is the case.

<comment><USER4> Are you saying this is the kind of question that an investor would only have the luxory of asking several weeks into an actual relationship?

To be fair, Reid said he spends a long time with people before pulling the trigger (40 hrs+ for founders) and you basically must come in through a refferal.

<comment><USER3> _Are you saying this is the kind of question that an investor would only have the luxory of asking several weeks into an actual relationship?_

Forget several weeks, probably over a much longer time period where they are socializing in a friendly way spanning multiple events/dinners etc...

I think there is this notion that there are no "politics" in the startup world which is poison to anyone entering it with the naive idea that "Idea, Talent, Traction, Timing" are everything.

</comment></comment></comment><comment><USER5> It's interesting hearing Reid Hoffmann talking about the importance of your network, the way he references people and gets referrals etc.

He doesn't mention using Linkedin as a tool to do this. All email and phone. I wouldn't use Linkedin as a tool to do those things either but given that Linkedin position themselves as a network for exactly that and he's the founder I'm surprised at the lack of mention.

</comment><comment><USER6> Here's a link to the deck Reid talked about [http://reidhoffman.org/linkedin- pitch-to-greylock/](http://reidhoffman.org/linkedin-pitch-to-greylock/)

</comment><comment><USER7> Altman keeps the dialogue focused and Hoffman actually gave candid answers. The two of them together run through the pillars of starting a company (having a hypothesis, testing it, MVP, distribution and strategizing about funding)

My favorite part is Hoffman suggesting to know when to quit or look a reason to stop/quit and pivot or move on. Altman however, presents himself as he is well known for, and as PG has corroborated: tenacious/persistent. Hoffman responds to this with with what he calls "flexible persistence" \- when founders have conviction with their own theory/vision but still the ability and willingness to listen to guidance. More specifically he suggests re- evaluating the original hypotheses and proposing slight alterations.</comment>


Show HN: the most intuitive iPad browser (built during SWPhilly in 2 days) - <AUTHOR> http://www.youtube.com/watch?v=YPoWRG2wIFg

<comment><USER2> There were a couple of times in the video where the demonstrator tapped the screen an extra time. For example when he would pinch, he would then tap the screen one more time. I wonder why that is.

<comment><USER3> For what it's worth, I got to play with the app a lot this weekend. It exists and is going to be pretty awesome.

</comment></comment><comment><USER4> Pretty cool. Some fresh UX elements sort of in a spirit of Clear app(?)

</comment><comment><USER5> Looks great!</comment>


1Password will put the MacBook Pro's fingerprint scanner to good use - <AUTHOR> http://www.theverge.com/2016/10/28/13462144/1password-touch-bar-touch-id-design-mockups-agilebits-macbook-pro <comment><USER2> Having a fingerprint scanner all that's needed to open & unlock a password manager seems like a really terrible idea.

<comment><USER3> > It plans to _allow_ users to log into 1Password ... (emphasis added)

Assuming this is on a laptop that already a.) uses FileVault and b.) requires a password to log in, I don't think it's much more of a risk.</comment></comment>


AOL Officially Worthless? - <AUTHOR> http://news.wired.com/dynamic/stories/G/GOOGLE_AOL?SITE=WIRE&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2008-08-08-09-26-26

<comment><USER2> Wow, what an overstated headline. What the article actually suggests is that Google may need to write down _some portion_ of the value of their investment in AOL...

</comment><comment><USER3> Google is just publicly acknowledging what they and everyone else has known for a while.</comment>


Math Intuition Cheatsheet - <AUTHOR> http://betterexplained.com/cheatsheet/ <comment><USER2> I am often saddened by how much easier it has been for me to acquire computer science versus mathematical literacy. Embarrassingly, years after a poorly- timed calculus course left me thinking I had to be able to prove the central limit theorem in order to use calculus, the biggest barriers have turned out to be things programming as a discipline has learned to avoid; encouraging varied and/or terse notations, opaque variable naming schemes, and arbitrary use of jargon where simpler terms would suffice.

A friend of mine who is a physicist once complained to me that every time he had to install some scientific software package on his computer, he had to deal with a litany of arbitrary things which seemed to have nothing to do with his task. I countered with my experience learning math and joked that at least programmers are willing to occasionally refresh our idioms and notations to better reflect our mutual understanding.

<comment><USER3> (Kalid from BetterExplained here)

Thanks for the comment. There's this weird notion in Calculus education that we need to start from first principles. Limits were invented a century after Newton died, yet they're taught first. "Oh, students won't understand calculus unless they can build it from first principles. I don't care if Newton worked out gravitation with his understanding, it's not good enough."

My little candle in the darkness ([http://betterexplained.com/calculus/lesson-1](http://betterexplained.com/calculus/lesson-1)) is to start with intuitive notions (X-Raying a pattern into parts, Time- Lapsing parts into a whole) and then gradually introducing the terms. Eventually, if people are interested, we can get into the theory (which is like getting into the Peano axioms of arithmetic, if you care to go that deep.)

I think in math there's a tendency to express things in the lowest-level "machine code" we can. We need more comments and pseudocode outlines :).

<comment><USER4> Same thing with logarithms, which were invented to simplify multiplying two huge numbers. Combined with log tables (think paper LUT for humans) that became a simple matter of looking up two log conversions, adding them, then looking up the inverse of the answer.

Is that what we learn in high school? Nope. So everyone is left wondering what the hell they are good for (or were, before we had calculators) the first time around.

(btw, as far as I can tell you don't have that bit of history on your site yet either - might be an interesting addition?)

<comment><USER5> Well, I learned that at school. It still didn't answer what the hell logarithms are good for. Everyone was left wondering why we were learning something that can be replaced by calculators.

Seeing some modern application of lagarithms would be great. Even just making a log-log graph at some point would answer every question. But those are not at the official curriculum.

<comment><USER3> It drives me batty because we learn the properties of logarithms before (if ever) internalizing what they mean. Here's my intuition if it helps someone:

[http://betterexplained.com/articles/think-with- exponents/](http://betterexplained.com/articles/think-with-exponents/)

Exponents let you plug in time, and get the amount of growth. e^3 ~ 20, which means "3 periods of 100% continuous growth [100% is implied by e, 3 = 3* 1] will grow us from 1 to 20".

Logarithms let us plug in the growth, and get the time it took to get there.

ln(20) ~ 3 means "It takes 3 units of time [growing at 100%, continuously] to grow from 1 to 20".

Exponents take inputs and find the future state, logs take the future state and work backwards to find the inputs that got us there.

</comment></comment></comment></comment></comment><comment><USER6> I started my 1st year in college doing both math and computer science majors. I really love math but I just hate how (especially calculus and linear algebra courses) they just don't work on growing any intuition at all. in contrast, in my CS major we had a linear algebra class (ugh overlapping classes, huh) as well and we used computer graphics as a case study to learn about the basic concepts which was really fun and enlightening.

Eventually I just ragequit math because I didn't have the patience and time to search for the intuition myself, which is a pitty. I'm really happy I followed the classes about mathematical proofs, groups etc because I really enjoyed those but others were just painful.

Anyhow recently I discovered this blog too up my math concerning computer science is this: [http://jeremykun.com/](http://jeremykun.com/). It's a tad more advanced than this but I'd really recommend it. His blog is freaking amazing and always a joy to read. Math as a sidehobby it is! :)

<comment><USER7> A lot of mathematics people feel this way about programming, too. Both sides expect one to devote the time to build intuition to grok their subject. I think it's easier to learn programming coming from the mathematics side, because you're going from nobody holding your hand to a compiler giving you error messages. You can't interactively test whether your intuition in mathematics is sound (you can, but you have to play both the role of the compiler and the tester).

</comment></comment><comment><USER8> I'd read Yudkowsky's popular "An Intuitive Explanation of Bayes' Theorem" as well as a few others, but the article on this site made me feel like I actually understood it for the first time. The examples were clever, short, and simple, while still demonstrating how powerful Bayes' Theorem can be.

The concise explanations here seem more helpful than semester-long university courses I've taken. I definitely look forward to exploring his other articles on math and programming.

<comment><USER3> Glad it was helpful!

There's a strange tendency in technical explanations to expand, expand, expand. A heuristic I have: Imagine you're writing a letter to yourself, before you started the course. There's no reason to waste your own time, just cover the key difficulties and how to overcome them, in simple language you would have understood.

(Oh, this letter also costs $5 a word, so let's make them count!)

</comment></comment><comment><USER9> This is terrific. I'm mathy enough to know _e_ to several places, and use it in programs occasionally, but if you'd asked me how it might be intuitively derived I'd have been at a loss. And that's just for something inside my comfort zone - the article on linear algebra is just as illuminating.

This looks like it will be my commute reading for the week. But more than that it just makes me happy that it exists.

<comment><USER3> Thanks, glad to hear you're enjoying it. I realized that until I could explain a concept intuitively, I didn't really understand it -- and it became a mission to find some analogy that really clicked for me. Hope it gives you some entertaining reading.

</comment></comment><comment><USER10> What an excellent collection of articles (well, I only ready a few, but I would like to think my experience extrapolates to the rest)! But I don't think "cheatsheet" is really the right word. Really this is a collection of short expository writings on particular mathematical concepts. And very well done, I think, to the point that calling it a "cheatsheet" (which I associate with a haphazardly conjoined sequence of facts and tricks out of context) is to do it a disservice. Or maybe the name choice has some marketing value?

<comment><USER3> Glad you enjoyed them so far :).

"Cheatsheet" might not be the best term for the summary page, perhaps "quick reference". I picked cheatsheet because it's a little more approachable than "reference", which implies something formal (and perhaps offputting).

</comment></comment><comment><USER11> I really like this cheatsheet, it is very inspiring actually. You should consider doing a version written for elementary school aged kids. You need to get buy in while they are still young!

<comment><USER3> Thanks! I'd love to do more elementary school topics. I still encounter revelations about things like basic counting (fencepost problem) and arithmetic.

My meta goal is to raise people's standards for what it means to understand something. ("If it didn't click, I should keep looking for a better explanation." vs. "It didn't click, I'm no good at this.")

</comment></comment><comment><AUTHOR> For me the best one from Kalid is the explanation of the fourier transform: [http://betterexplained.com/articles/an-interactive-guide- to-...](http://betterexplained.com/articles/an-interactive-guide-to-the- fourier-transform/)

This article is simply amazing, moreover Kalid is an humble person and references his inspirations from several people over the web. Thank you very much Kalid for the time you dedicated to share all this wonderful resources.

<comment><USER3> Thanks so much, and for originally submitting the cheatsheet to HN. (I hope it helps people untangle concepts that confused me for literally a decade.)

I really appreciate the encouragement and hope to keep cranking as long as I can.

</comment></comment><comment><USER12> Sure could have used this site a couple years ago when I was in school!

</comment><comment><USER13> I like the idea but I personally really enjoy and prefer 'math english'. At first it may seems odd but after a while you get used to it and it's actually easier, you just scan through epsilons, deltas knowing exactly what they mean. Intuition has edge-case scenarios, double-meanings and almost-truths. I don't know why, but I think intuition (pseudocode math as someone had named it) gives a little bit of a 'illusion' of knowledge. You think you got it but are you really?

<comment><USER3> Great point. I use the word "intuition" but feel it might be overloaded, things with intuitive knowledge, psychics, going with your gut despite the facts, etc.

The sense I mean is closer to "grokking" or "clicking", when symbols and definitions actually mean something. You start thinking with the symbols, not despite them. You actually look forward to checking your understanding with real problems, because when it clicks the problems become easy :).

</comment></comment><comment><USER14> Those explanations remind me of Feynman's explanation of elliptical orbits.

</comment><comment><USER15> This September, I'm starting tutoring A level maths to underprivileged kids for a charity after helping them with GCSEs last year. This looks like it will be really helpful. Thanks!

<comment><USER3> That's awesome! I hope you can make use of the site. One goal for the site is to provide "ammo" to teachers who are looking for other ways to present difficult concepts.

</comment></comment><comment><USER16> This is gold. Please do point to more resources like this.

</comment><comment><USER17> Thanks for posting this! I just read a small portion of Integration and trust me, it all make sense now!

</comment><comment><USER18> I love the content, just wishing for some of their views on explaining electronic circuit design.

</comment><comment><USER19> Seems like there are a lot of things i need to learn in maths

</comment><comment><USER20> Are there other resources like this on Math?

</comment><comment><USER21> Great work. Please keep adding examples!

</comment><comment><USER22> Super, but no induction!</comment>


Don't Use Try/Catch (2010) - <AUTHOR> http://codebetter.com/karlseguin/2010/01/25/don-t-use-try-catch/ <comment><USER2> I think the main point here is to avoid general catches and instead catch specific exceptions.

The author raises the interesting point that if it's truly an exception, you're better off letting the system crash all together (especially in a webapp, where you're basically dropping a single request for a single user) -- and if it's an "expected exception", then you should be handling it directly.

I don't see how that reduces to "never use try/catch" though, since catching a specific exception (or types of exceptions) is a way of "handling it directly."

<comment><USER3> Unfortunately, "Don't do X" is better click bait than "You should think carefully when you want to do X".

There will be cases where you want to do "catch {}" — you don't always have control over the exceptions thrown by a lower-level library. It might be good to create a standard where you log them conditionally, or something that could aid in troubleshooting.

<comment> V-2 True, but as a developer, I expect a comment inside your empty catch block telling me why it is justified. I can't remember ever seeing one...

<comment><USER4> Oddly, I have seldom seen an empty catch {} without a comment, though often it was simply to point out that, yes, this is intentional. Even that is better than leaving me wondering if the code is just unfinished.

</comment></comment></comment></comment><comment> vezzy-fnord What the author really means under the provocative title is don't do error hiding, which is already well established as an anti-pattern.

</comment><comment><USER5> Joel Spolsky's thoughts on exceptions (ie. "They're no better than gotos") shares a similar perspective: [http://www.joelonsoftware.com/items/2003/10/13.html](http://www.joelonsoftware.com/items/2003/10/13.html)

</comment><comment><USER6> The title is misleading. The gist of the article is in the last sentence: "A system that swallows and masks exceptions isn't a healthy system."

</comment><comment><USER7> I cannot believe this got on the front page. Structured exception handling is crucial for atomicity and building robust systems.

Nothing about catch requires the program to continue executing as though no exception ever happened, many catches can be fatal but handle emergency cleanup.

<comment><USER8> How do you feel about Erlang?

</comment></comment><comment><USER9> On Windows you may even want to let the application crash.

If an application crashes on Windows due to an exception, it can be picked up by Microsoft's Watson error logging (now called Windows Error Reporting, I believe). If the user has marked the checkbox "help Microsoft improve Windows by sending crash information" then the dump of the application will be sent to a central location, where it can be triaged and accessed by the application's developer.

Now instead of just a generic entry in a log file, you have a full memory dump of the exception.

<comment><USER10> [http://en.wikipedia.org/wiki/Windows_Error_Reporting#Third-p...](http://en.wikipedia.org/wiki/Windows_Error_Reporting#Third- party_software)

</comment></comment><comment><USER11> I used to use try/catch with an empty catch block in Java all the time. The exception could never in fact occur, but the compiler required me to either add a catch block or declare that my function raises an exception, when it fact it doesn't.

Yes, I did include a "this never happens" comment. That is my favorite comment, but only if it is true.

<comment><USER12> Ah, it was people like you who did this even when, as you said it should never happen, that caused me many a late night... 'cause it did and that empty catch block hid it.

Don't leave empty catch blocks. At least put in some form of logging of the exception, just in case.

</comment></comment><comment><USER13> The problem is sometimes you need to be able to report an exception elsewhere than the global log file , for example fold the exception into a user response. For a web application, for instance, using ANORM/Scala/Play, you might have a unique key constraint that throws an exception when it's violated. I need to be able to use that to emit a JSON response to the user telling them there is already a file with that name, extension combination etc. So I have to catch the exception in my controller in order to properly report that to the user.

The author is right that your code needs to properly react to exceptions and not swallo them. . A global exception handler lets you report to all exceptions, but in order to give proper feedback to the user you definitely have to catch exceptions elsewhere in the code.

</comment><comment><USER14> Or use exceptions to write cleaner code: [http://www.jeffknupp.com/blog/2013/02/06/write-cleaner- pytho...](http://www.jeffknupp.com/blog/2013/02/06/write-cleaner-python-use- exceptions/). That post is specific to Python, which actually implements a lot of internal features using try-except, but it suffices as an argument against the idea that catching exceptions is itself a bad practice.

</comment><comment><USER15> From the frontend perspective, isn't it sometimes ideal to use try/catch? Unfortunately with the fragmented browser implementations of HTML5 and JavaScript, sometimes what is an exception in one browser is correct usage in another. It's a complex beast of a problem at times.

Of course, you should be judicious in your usage of try/catch, since it's obviously something that can be abused very poorly.

<comment><USER16> Unfortunately yeah - sometimes the brokenness of tr/catch you inherit from the platform level.

Reminds me of when I was trying to write a Win8/Metro app for fun. Turns out in the particular network class I was using 404's throw exceptions. What a horrific design - 404 isn't an unexpected state at all, particularly when calling restful apis. But there we were, a pointless try/catch or nothing.

A lot of the brokenness with exceptions is software that models expected operational state as exceptions.

<comment><USER17> Yes that was an issue with the old WebRequest classes, but now with System.Net.Http the situation is much better (though they did what most people end up doing and wrapping WebRequest in a sensible manner)

</comment></comment></comment><comment> V-2 I'd go one step further - throw your own exceptions whenever you can. Just put assertions in your code. Even verbose assertions. Which error report would you rather receive - "foo was set to null while file was still open!", or a generic "NullReferenceException" caught two stack frames away. If it crashes, it crashes anyway. After that it is only about how fast you can fix the bug.

<comment><USER18> Please use some restraint! Sometimes an exception is not the answer!

I've had... I think it was Windows::UI::Input::PointerPoint::GetCurrentPoint throw exceptions if the finger passed in was no longer touching the screen. Sounds fine at first, right? Except...

1) This occurred before "finger released" events, so you'd run into a crash because they thought throwing an exception was better than returning the last known finger position, which would've rightly left me with no error report.

2) This occurred in a nasty rare corner case, making figuring out the reproduction a PITA. I don't think I'm alone in not expecting such a simple function to throw when given a known-to-me-valid fingerId. Worse, the exception was completely undocumented on MSDN -- either explicitly or as a hint from function signature (at least Win32 had the common decency to return BOOL or HRESULT.)

3) I found no method for validating a finger ID, so one had to simply catch the exception and accept the massive framerate dip of exception handling overhead if the user pawed at the screen. Before you mistake that for hyperbolic performance concerns: I could make a smooth 30fps tank to bellow 10fps consistently. I measured!

Touch input isn't the only unexpected thing throwing exceptions for WinRT. The end result of this "throw exceptions whenever you can" mentality is I've been forced to build a habit of wrapping every WinRT API call in extremely wide try/catch blocks to log whatever random undocumented exceptions come crawling out of it. By becoming the rule, it took the "exception" out of "exceptions". I'm sure you'll agree: This is horrifically ugly, slow, and in generally poor taste.

But it's necessary. The other alternative is you hopefully find as many as 90% of the weird junk that crashes your program with exceptions, most of which you don't actually care about in the slightest -- and the other 10% avoid discovery and instead explode your stuff in production, most of which will be for no good reason.

<comment> V-2 Of course sometimes exceptions are not the answer... I don't mean one should "throw them whenever they can" in literal sense, like the more the merrier :)

Exceptions, as the name itself indicates, should only be reactions to EXCEPTIONAL situations. Showstoppers.

The adage is: don't use exceptions for flow control. In the case you described, it seems to me that they did just that, and I don't condone that. It's clearly a case of bad, or at least unfortunate API design...

By "whenever you can" I meant "whenever you can once the ground criteria are met", I kind of thought it goes without saying but I should've been more precise

</comment></comment></comment><comment><USER19> I absolutely agree. Magento does this & its one of the reasons why it sucks. They catch an exception, and throw a new one. Basically eating the message & stack trace. Then that one in turn gets caught and a 3rd new exception is thrown, eating it up again. By the time it bubbles up, your stack trace is totally useless.

<comment><USER20> Python 3.3 fixes this, by implementing PEP 415¹, which keeps the original exception available by using this syntax:

      except SomeException as exception:
        raise NewException("stuff happened") from exception

1) [http://www.python.org/dev/peps/pep-0415/](http://www.python.org/dev/peps/pep-0415/)

<comment><USER21> PHP added exception chaining in 5.3.0 (a few years ago). See $previous:

[http://www.php.net/manual/en/exception.construct.php](http://www.php.net/manual/en/exception.construct.php)

</comment></comment></comment><comment><USER22> Dont give crappy titles!

</comment><comment><USER23> I flagged this because of the link-bait title.</comment>