skysight-inc/HackerNews huggingface dataset:
I wrote a blog post a long time ago into a response of a big list someone made of exception handling anti-patterns which (in my opinion) are made possible by checked exceptions.

http://www.rockstarprogrammer.org/post/2007/jun/09/java-exce...
It's the metric that is used to judge academic success.

Really, all of this is besides the point that the author was trying to make. You're getting caught up in his example, but ignoring his point. Grades are a metric of a kind of success. I agree that education is more important than grades, but that's not what the example was about.
Thanks. I feel a little under-qualified for what they are developing, but this strikes home with me:

CodeSourcery has no central office. We work when we want in an environment in which we are comfortable. We can work wherever we want: from a coffeeshop, a library, or anywhere else on the planet with an internet connection. We see our friends and families throughout the day; not just early in the morning and late at night.

Good to see that there are companies which are interested more in what you can do and less in forcing their way of working on you. Are you working for them?
"A/A+ students are, by definition, more successful at school than B+/A- students. That's the only sense of the phrase I meant it in."

More successful in school. There is very little value in getting high grades until the later years of high school. Working hard in middle school is a waste of time. The smartest kids would do the minimum amount of work to pass their classes and ensure they have a solid understanding of the material. Especially when you look back and remember how much of the middle school curriculum involved drawing bubble letters and pasting printed photos on to Bristol board.
The author writes about himself, "Coming from two universities with world-renowned Computer Science departments (MIT and Stanford) and having worked at a top-tier software company (Google) as well as at several less high-profile companies ..."

Meaning, of course, that he is not elitist -- he just had to share these crucial facts about himself.
I made a couple of very bad mistakes in that article. Hopefully I got it right in the sequel. http://alicebobandmallory.com/articles/2009/09/27/a-case-for...
I think the guy has some smart points. But the fact that he has the MIT dome picture on his blog counters the point that if you're a high achiever from a top-tiered university, you don't need to show external signs of achievement...
Exceptions are now a 'way of life' for many different programming environments, the simplistic view is that they allow your program to 'catch' any unforeseen issues at a lower level in a graceful way.

The truth is that the 'handling' is often much less robust than it ought to be, which in turn will lead to the hiding of problems at lower layers.

A simple example would be an I/O error when reading a file, if you 'handle the exception' then you have done absolutely nothing to take care of the underlying problem.

Personally I'm a huge fan of spending the extra time required when writing lower level code to make sure that all cases are handled properly, instead of throwing an exception at the slightest sign of trouble.

A pet example of this is the UTF-8 and unicode conversion library, when presented with an 'undefined' character lots of libraries will cause a whole series of exceptions to be triggered because of a single character issue in some data to be imported.

If such a library were defined 'properly' then you'd tell it what to do with 'bad' input, toss it, replace it with ##undefined character## (or any other string you come up with) or, in case you want it, throw an exception. The defaults should be sensible and should maximize productivity.

That way the user of such a library knows the library will handle the job with a minimum of fuss.

I see exceptions mostly being used as a way to be absolved from further responsibility from an issue, and that's really not the way they should be used.

Run time errors are uniformly bad, exceptions really are a form of runtime error and should be avoided as much as possible. Especially in lower level code.
And for being duped into believing this little lie, Mr. Guo has singularly proven that Stanford folks are not as smart as their reputation makes them out to be.
That's being pragmatic about science, not about the public. The wisdom of crowds has proved useful in all kinds of areas - collectively, human intuition is surprisingly good. A bit of crowd-pleasing might not be a bad thing; after all, nobody thinks of Christopher Columbus as 'the man who failed to discover a westerly trade route to India'.
> Let's take the case of H.264. Why is copyright not sufficient enough to protect their innovations to whatever degree of protection they choose (using licenses like GPL, MIT, or whatever they choose)?

Someone "skilled in the art" can take the descriptions of H.264 and produce a coder and a decoder without copying anything. Since there's no copying, copyright protection doesn't come into play.

Given that, how are they going to "protect their innovations"? Are you suggesting that they keep the description as a trade secret and allow access only under license? (They can't publish and say "you can't use this description unless you pay us money" - copyright doesn't work that way.)
Working hard is one thing. Everybody's working hard by some metric. When I got curious last year and looked at how much I write on sites like this, the result was staggering. So theoretically I'm a hard worker.

I guess it depends what you mean by working hard. Pretty much all the artists I consider best in class put themselves in positions where they could work on whatever they wanted without distraction. I don't consider that working.
Ahem. The “I’m feeling lucky button” might be a minor detail today but it for sure wasn’t then. Certainly not the thing to mention first (it isn’t) but considering the very narrow and minimalist scope of Google (then) nothing minor.

This is, however, quite a boilerplate press release. A [verb] B. X says [boss]. Boring. If you know one you know them all.
He's on the fast path to a research job, buried in the bowels of some company, working on middle ware. Either that or he'll simply get a teaching job at one of the schools he decries in his post.
I don't think hiding you went to a prestigious school has to be disingenuous. I can be, but it doesn't have to be.

I have a purple belt in Brazilian Jiu-Jitsu. This is a mid-level rank, but it's also the point where a competitor is considered advanced. In tournaments that don't use belt level but Novice, Beginner, Intermediate, Advanced, I compete Advanced. If I talk to a stranger about BJJ, I never start out with "I have a purple belt." I am going out of my way to avoid sounding like a braggart. I am not worried about failing to live up to my rank, but I am worried about appearing like a jerk.
"I think checked exceptions are a bad idea for a couple of reasons. First is their most acclaimed benefit: they force you to deal with the exception immediately, even if you have no solution for it."

The use of the word "immediately" informs your misunderstanding of the purpose of a checked exception.

Checked exceptions are enforced at compile time (thus "checked" exception). There is no such thing as 'temporal immediacy' at compile time (unlike runtime exceptions). There is potential for spatial immediacy (if we consider the static call stack), but that is not what the compiler cares about. (In other words, you can catch exception Foo at the call site and delegate handling up the call stack by throwing a Bar (cause: Foo)).

A compiler enforced handling of an exception declaration insures that the program handles the exception at some level in the call stack, as apparent to the compiler.

This whole (endless) discussion regarding checked/unchecked very much mirrors the static-typing/dynamic-typing discussion. You can either consider the merits pragmatically, or, you can adopt a dogmatic (religious) point of view that embraces one paradigm and dismisses the other.
Feel free to post it to the main feed if you feel it's Hacker News worthy. I will not. Not again.
The VPN has always been available, but I have only used it extensively in recent years. It probably helps that teams are now spread further around the world, because it has forced people to restructure their work to deal with large gaps in communication. We'd already been sending messages and waiting hours for a reply, so people no longer expect to be in constant contact. So I didn't really have to convince anyone, I just reminded key people that I do work at home a lot, and to call me by cell when necessary.

Though, I've seen certain managers have a real problem with people working at home, and they even managed to fire people based apparently on that. Fortunately, those managers are no longer here, because that same intolerance made them ineffective managers.
Building to Last to in the Digital Era
Search eyeballs are the most valuable eyeballs on the internet. You know what people want, you can show ads for related things. Without search, Google would just be another ad network.
The Mathematics of Love: A Talk with John Gottman
This is a really good idea. You could have all the emails forward to one master account, and then when one started forwarding spam, you could cut it off.
Cleverbot vs Emacs Psychiatrist
Is this a reasonable middle ground? All software covered by a patent must have the source publicly available.
I think the tide has really turned against name-brand institutions, leaving people such as the author in a position where they feel they have to defend themselves and their "prestige." This manifests itself in some peculiar ways, as we can see from this piece...
You're right very few companies are structured that way, but you can start your own.
American Express recently added these "3 questions" to my account, and it made me very mad. For one thing, their "request" was persistent; it eventually wouldn't let me log in until I provided them, so they were really a requirement. "For security", of course, even though there's evidence [1] they make security worse.

To make it more insulting, though, I discovered that the implementation was very dumb:

1. The questions were fixed, and extremely stupid. Any of them could probably be guessed by someone with a few minutes to Google.

2. The question lists were too short, making it difficult to pick a really hard-to-guess answer.

3. The lists were unique to each question. So if I saw 2 questions I liked in the first slot, I could choose only one of them, and if the 2nd slot had completely inane options, I had to choose one of the inane options.

4. The last question didn't even offer options that applied to me. So suddenly, for "security", I had to remember which unrelated question I selected, and which made-up response I provided. Thanks a hell of a lot, AE.

[1] http://www.schneier.com/blog/archives/2009/05/secret_questio...
I totally agree with your sentiment here:

Why are we still stuck in the industrial age, where working during the day hours, being at a certain location, and hammering away for 8 hrs was equivalent to producing a certain amount of output?

If you haven't seen the Ted talk below, it's a must watch:

http://www.ted.com/talks/dan_pink_on_motivation.html
Probably -- you're the owner and only employee, and you're in California.
That page of the comic in the article, reminds me of this video of Feynman: http://www.youtube.com/watch?v=mvqwm6RbxcQ
I like the way this article treats Nelson as not that important. The constant hero worshiping is very annoying sometimes. We know [1] that there were people before and during Nelson's time that were just as creative on the "ideas" side. Berners-Lee got it working on the "rough consensus and working code" KISS principle side. I am sorry but the (albeit small) group of people who consider Nelson the "real" father of the web are wrong. To say nothing of the fact that journalism has by far overemphasized the web compared to the Internet. Even when a small number of journalists correct for that it's Kahn and Cerf with TCP/IP not Licklider, Baran and Davies.

[1] http://en.wikipedia.org/wiki/Hypertext#Early_precursors_to_h...
Build a wiki with versioning+authand deply on gae in 4 minutes
I think that's a fantastic idea. Apple could build an auto-timebomb into apps for that. That would probably seriously improve the quality of purchased apps - so many times people buy a bad app and use it once.
Thanks for mentioning Monoprice. Cool company.
I do. "Hard work" doesn't have to be unpleasant. Personally, I take great satisfaction in doing it.
agreed, university reputation matters a lot less nowadays than it did in the previous generation ... nowadays anyone with a good idea can start up a tech company and get rich. nobody cares about ur college name
"I don't see myself taking the YC plunge because I am married and have a kid, so taking a risk is kinda hard at this point."
...
"I'm leaning towards saving up and then taking 3-4 months off my job to work on my own product."

Couldn't you do both? Seems like you could save up and go for YC while working on your product. Either way you'll have a similar amount of risk. One could even argue that with YC's network you'll have less risk since you'll be around like minded people and more opportunities will open up for you if your original idea fails.

Whatever you decide, go for it!
I worked with a system administrator once. He didn't understand two factor security. So he told everyone to remember two passwords.

Maybe he now works at American Express.

I see exactly the same thing with most "security improvements". Hence treat each answer as just another password! a random string of characters, numbers and punctuations.
He says that the gyroscopic effect is small compared to the weight of the bike and rider.

The enhanced gyroscopic stability appears to be a near constant-rotating balanced mass; it's still rotating with the wheel but at an angular velocity such that the gyro effect is constant (ie reducing slightly as the wheel's own weight adds to the gyro effect?). Thus you get the gyro stability that you get when riding quickly with no hands but constantly, even when riding slowly.

It's neat for sure and bound to do well as it's hiding the stabiliser away and pretending the kid is more advanced, hence parents will love it as their kids will look "better" than the neighbours kid!
Twitter could very well be the next Google

Even in 1998, Google provided a lot more value to users than Twitter ever will.
"Given a choice between dancing pigs and security, users will pick dancing pigs every time." - Edward Felten and Gary McGraw
I imagine that when you go to a place like MIT where life is like "getting kicked in the balls repeatedly", your alma mater becomes an important part of your identity.
The thing is that seventeen rules of Xanadu, in themselves, aren't that much more complex than the WWW - The http protocol is not an uber simple thing.

Further the WWW haphazardly succeeds at being everything that Xanadu wanted to be and more, except for those characteristics which had to do with intellectual property (what is now "DRM"). Many people have described the impossibility and undesirability of DRM. One easy way to see the impossibility is to realize that a "transclusion" DRM system would require every protected piece of information to exert control over the entire system, a problem which gets harder as the system gets bigger.

It does relate to duct-tape programmers in the sense that since the WWW doesn't have the fragile global requirements of Xanadu, it can be "duct-taped" to work. But it also should impel us to go a bit beyond Spolsky in the sense that
it points to designs which avoid particular inherently difficult problems rather than using simplistic formula of 'avoid any complexity'.
Can you recommend a good book on modern signalling theory?
You do, of course, know the problem with assuming?

(And Ming can be merciless about such things)
Probably not. Since python is a dynamic language, there are issues with using the llvm for optimization[1], but overall the llvm's code generator is significantly more mature than pypy's which means that it'll probably be easier to make unladen-swallow reliable.

[1] see http://lua-users.org/lists/lua-l/2009-06/msg00071.html and http://lua-users.org/lists/lua-l/2009-06/msg00069.html
Programming Classes (on reddit)
I make the following observation: Everybody I've seen arguing in favor of checked exceptions in the past couple of years have argued about their theoretical benefits. Everybody who is arguing against them have argued about how they have not worked out in real life.

This pattern seems to recur a lot in programming debates, where people don't seem to realize that it doesn't matter how wonderful your theory is if when you try it out, it's wrong. That's where checked exceptions are.

The time for theorizing about their effects on programs is long, long past. Who cares whether they theoretically force programmers to write better code? We now know that in reality, it actually results in worse programs the majority of the time. When theory and reality disagree, theory is wrong. Why anybody still talks about their theoretical design goals is beyond me.

As near as I can tell, the debate is over if you ignore the people who haven't let their theories catch up to reality. If someone's got a success story posted about how checked exceptions saved their program's bum, I'm interested in the link, but I haven't seen one.

(I say it that way because when you have something enough people will read you can always find someone to pop up and claim that "X is good", but I'm specifically asking for arguments that already existed prior to this post, to avoid selection bias effects.)
I strongly disagree that exceptions are about catching unforeseen issues at a lower level. Exceptions should almost never be caught. A well-written program will have only a handful of exception handlers that don't repropagate the exception; ideally only one, at the highest level of the event loop or request handler.

As to your string decoder example, the sensible default should be to throw an exception, with an easily available out to replacements etc. as you suggest. String conversion across multiple code pages is an interesting example precisely because data loss is so easy, and if the problems aren't raised early in the data flow, it can be hard to figure out where it went wrong. The "default" manifests itself in Windows programs as '?' - rather annoying to debug when the first time you see it is on the UI, while other concrete are plentiful on the web. A very common example is balanced "smart" quotes, which frequently end up encoded in either the web page or the RSS feed in a different encoding than that described in the HTTP header, or in the meta tag, or according to the relevant standards, etc.

Yes, runtime errors should be avoided, but not by the lower-level code; rather, the lower-level code should throw exceptions when error conditions occur, but have ways and means for programs that care about the exceptional conditions to not throw exceptions. This isn't always possible, though. Consider TFA's example of file not found:

> The caller can't recover from a file not found error

The caller can test to see if a file exists before trying to read it, but non-transactional interactions like this with the file system are subject to races; the file might exist one microsecond and be gone the next. But it is also obviously true that the caller can recover from a file not found error. Concrete example: consider a thumbnail generating service, which checks to see if a cached thumbnail file exists before doing the expensive work of creating it if necessary. Here, a file not found exception (perhaps caused by concurrent cleanup of cache, for random operational reasons) is indeed not fatal.
That would solve a lot of problems. Now developers typically make a free version of their app, but Apple restricts how those can be used. They can't have grayed out buttons representing features available in the pay app, and can't be time limited. It can be hard to feature limit it and still have the free app be neat.

Our app has an offline data store of maps on the phone, so it's additionally painful that when people 'upgrade' to the pay app, they have to redownload all their data.
My favourite technique isn't to make the sentence itself the password, but the first letter of each word (with some punctuation thrown in for good measure). E.g. pick a line or two from a song, like "All the fear has left me now / I'm not frightened anymore" and that becomes "atfhlmn-infa" (if it's something that insists on digits too then you can easily do a substitution like "atfhlmn-1nfa"). Memorable without being insecure.
try{
somecode();
}catch(Exception ex){
// eh this will NEVER happen
}
Indeed, pg addresses this in his essay on why nerds are unpopular in school.

Here's my question: does bullying ever give an edge into the pantheon?
I recommend reading this comparison of protocols before investing time in rssCloud: http://code.google.com/p/pubsubhubbub/wiki/ComparingProtocol...
First up: I'm not a fan of checked exceptions.

But on the other hand, I must point out: checked exceptions certainly force you to address the issue of the exception being thrown, and as a result, the failure mode that they prevent can't occur, so the evidence you're seeking is more or less impossible.

On the other hand, checked exceptions have their own failure modes, down to human behaviour: rather than having to rewrite every method declaration on the call graph to throw the appropriate list of exceptions, some bad apples just catch exceptions and do nothing with them. This shuts up the compiler, but harms product quality.

IMO, the theory behind checked exceptions is actually fundamentally mistaken. Exceptions aren't much good if you're constantly trying to catch them. Exceptions work best if you write your code in a transactional style, more or less assuming that an exception can occur at any moment, on any operation. This can be tricky: it can force you to make or keep copies of structures when doing large structural modifications; but this difficulty is not strictly due to exceptions, as failures modes need to be dealt with in any case.
I'd just like to see the period of time drastically reduced for "inventions" in domains that move faster.

Any software patent should last no longer than a year, period.

And as long as I'm writing the law, anything patented by Intellectual Ventures becomes public domain in six days.