skysight-inc/HackerNews huggingface dataset:
When I was a kid my parents bought a really high quality Atari 2600. And I've got to admit: It works as well today as it did the day we bought it.

Other people's high-quality eight-track tape decks, quadraphonic amplifiers, and laserdisc systems are also working fine.

My Powerbook G3 "Wall Street" was still working great when I sold it. What a tank. Of course, it wouldn't run a modern browser because it still had Mac OS 9... I had tried Mac OS X on it but it was just so slow... and I was never quite able to devote enough time to get Linux working. (PB G3 Linux was always a bit of a delicate hack... and it turns out that if you wait seven or eight years after a machine's heyday the Linux hobbyists have all turned to something else and their pages on installing Linux on the G3 have all gone stale.)

The moral of this story is that, while it might pay to throw money at a high-quality vacuum cleaner -- because vacuum cleaners are a relatively mature technology that doesn't change much over time [1] -- in tech the problem is not so simple, because the money you spend on gold-plating may simply be wasted. The baseline is moving too fast.

[1] Of course, my father-in-law has an old Electrolux vacuum that still works fine... but I'm an allergy sufferer who prefers a HEPA vacuum, a technology that is now quite common -- it's fully supported by the best vacuums and claimed by every other vacuum -- but which AFAIK didn't exist back in the 1970s. So even vacuum cleaners are not immune to true obsolescence.
One more comment from someone who really values the content here on hn...

I'm still not quite sure why, but undoubtably my favorite business book. Looks like I could use a reread tonight. For some reason, that'll really stoke my flame.
programmer

(I remember a time when almost everyone here would have called themsevlves that. But now, we have 47 different words for "programmer".)
Crazy Advanced Mod_Rewrite Tutorial
I would be willing to bet that 80% of most deployed software should be rewritten instead of patched/upgraded.

Brooks was right with his "build one to throw away". The problem is that it never works out where people can/will throw the first one out.
I liked that they had the woman from Harvard Business school on at the end to offer an alternative point of view. In the end it was nothing but her word against his, but I was surprised he didn't have better answers to her counter examples. Warren Buffet, for example, has become very rich without (apparently) making the kind of sacrifices that Felix has done.
I spent 6 months working at a certain razor company. I got a small discount on blades, but the razors (with 1 blade) were just about free. (4 years later - I've finished off my stash!)

Don't forget the more modern varients: PC/Internet and Cell-Phone/Calls
Opera valiantly fighting for standards. Webdevs, try not to break Opera
Verbosity.

Also I tend to come across code like this a lot in Java:

Person p = new Person(new CarbonBasedLifeForm(new HomoSapien()));
Nice find. Thank you.
www.uswaretech.com, my full time job
The ticket off the treadmill
Developer for a small financial software startup in Boston.

BTW... We are hiring and are having a real hard time finding good developers. Shoot me your resume if interested.
This is an interesting book. The thesis is basically that the way most of our public institutions are set up the government supplies the razor and the citizen buys the blades. This is bad because A) everyone pays for the razor but only the rich get the benefits because only they can afford the blades B) it forces everyone into the same "school" of education, healthcare, etc. "Deschooling society" is sort of a pun that refers to both public schools but also schools of thought.

Anyway the last time I submitted something from this book it was deleted. Not marked dead, actually deleted. But check out the section on learning webs, it's a cool vision of computer-mediated social networking from 1971.
that's very cool. an investment banker hacking a webapp
Plus, no one ever talked that way. Shakespeare was always peculiar. He invented hundred of neologisms.
C++? : A Critique of C++
Local iPhone 3G sues developers for "Gross Abuse" of SDK
Yes, I wrote and submitted this. If that is "wrong" than feel free to bash.
I disagree with one of the article's points: That Yahoo! outperforms Google in Japan. Reading the (poorly labeled) graph, we have the following numbers:

Yahoo! in Japan: 40-45k eyeballs

Google in Japan: 20-25k eyeballs

If all eyeballs are equivalent (ad money for a Google eyeball = ad money for a Yahoo eyeball), then Yahoo would be making around twice as much. However, they have this problem:

"Currently, Yahoo Japan is owned 40% by local telecommunications powerhouse SoftBank and 33% by Yahoo in the US, demonstrating a textbook perfect Japanese-foreign joint venture structure."

Ok, so Yahoo! effectively gets 1/3 of twice the market value that Google gets. So, how is Yahoo!'s localization and extra push from SoftBank helping Yahoo!?
I found the website they were pitching. I have to agree with Guy on this one.
But I'm work in academia so my experience differ.

That explains a lot. Let me take a wild guess: Have you built a real project using J2EE? (Don't feel bad if you haven't: I haven't, either.)

The fundamental problem with Java is one of culture. After the idea of the Java applet died the true death and Java on the desktop retreated into its small niche, the Java universe became dominated by architects of spectacularly complex, overengineered middleware. When you hear a Ruby or PHP or Python programmer cursing "Java", that's often what they're cursing: The school of software architecture that implicitly equates enterprise quality with having a large number of complicated moving parts.

The higher-order problem is that the Java language and tools have evolved to fit the needs of this culture, such that you can't really use the language anymore without an IDE -- a piece of code that is, itself, more complex than the space shuttle -- to generate and track the boilerplate for you and help you navigate your own code. And the type system is out of control. It has become so baroque that it makes constitutional law and the Generally Accepted Accounting Principles seem trivial. I've taught myself Java three different times -- at the 1.0, 1.2, and 1.4 versions -- but I understand that Java 5 has introduced generics. I went to see what was up with that, and I found this blog post:

http://weblogs.java.net/blog/arnold/archive/2005/06/generics...

Then I found Bruce Eckel, whose books helped me to learn Java the previous three times:

http://www.artima.com/weblogs/viewpost.jsp?thread=214112

Java continues to ossify, pursuing its endless quest to produce the perfect program through static type checking, by adding more and more. The good thing is that people are finally beginning to see that static type checking is useful in small amounts and intrusive in large amounts (although I suspect this realization won't reach the main group of Java designers for years to come).

The bad thing is that, in the meantime, we get abominations like Java "generics"; via daily use people are finally beginning to see what I tried to explain years ago -- Java "generics" are far more painful than helpful, just like checked exceptions.

Yikes. Then I found the Generics "FAQ":

http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.ht...

which is 513 pages long, if you include the index. The FAQ needs a fucking index.

So: I've decided to remain deliberately ignorant of Java 5, and I'm happy. Perhaps someday you will want to forget about Java, too. If not, congratulations -- you'll be happily employed, fixing other people's Java code, forever.
Britain's CCTV Cameras Prove to be Wasteful
An Essay on Endian Order
http://openbookproject.net//thinkCSpy/ch11.xhtml

"Both factorial and fibonacci are examples of
tail recursion.

Tail recursion is considered a bad practice in languages like Python,
however, since it uses more system resources than the equivalent iterative
solution."

Uh no, those implementations were plain recursion. Tailrecursion is basically the same as iteration but Python doesn't optimize tail-calls so the stack will blow anyway.
He defines tail-recursion something along the lines as "if the last statement ina function is a recursive call".
NO!
From wikipedia:
"In computer science, tail recursion (or tail-end recursion) is a special case of recursion in which the last operation of the function is a recursive call"

And while the solution he presents in the next chapter:
previous = {0: 0, 1: 1}
def fibonacci(n):
if previous.has_key(n):
return previous[n]
else:
new_value = fibonacci(n-1) + fibonacci(n-2)
previous[n] = new_value
return new_value

works the simple idiomatic way is simply:
def fib(n):
a, b = 1, 0
while n:
a, b, n = b, a+b, n-1
return b
Java has engineered itself to be many things to many people, and so applications built in Java can't really contain streamlined code because you still have to do a few simple things up-front.

Take a J2EE app, for instance; the servlet interface allows you to do a lot that can trip you up. Not having multithreading in servlets unless you specifically design for it is one of those things. Leaving SingleThreadedModel in the code, which is a really bad way to ask for multithreading in servlets, is something that a lot of haters can point to and say 'Java is Stupid'.

You can certainly get around servlets by working in a J2EE framework such as Struts or Spring, but that attracts more haters who point to all the jars you have in your library and say that 'Java is Overengineered'. If you don't believe me, check this brilliant 'Mac vs PC' spoof: http://railsenvy.com/2007/5/14/ruby-on-rails-commercial

So, while some languages are trodding a careful path between Stupid and Overengineered, Java is riding the pendulum, crashing wildly into both sides with wild abandon. And that pisses all the programmers off in a mighty big way.
I have no problems, and I'm using Firefox 3.
PG doesn't say that, not in my reading at least. If you're interested in the current state of philosophy, I think that's a great essay. But in it, I think the claim is that you need to read the classics to learn from their mistakes. That is, if you want to "do philosophy".

And while PG may be unsure of his influences, the more I read his essays the more I see serious traning in philosophy. He's meticulous in defining concepts and using them consistently. That's exactly the problem and goal of post-Wittgenstein philosophy. Sure, the ultimate utility of the field of philosophy is in question. But, to me, the endeavor has a firm role to play in the education of the mind. Math is more precise, but most of us communicate everyday by using concepts. In conversation, though, how do we make sure we're using the same (or similar) concepts with each other? How do we know we're consistent with ourselves in our own concepts?
Does anyone know if this research is funded by the Meat Marketing Board?

I don't know if it is and I am not trying to undermine the article but it's really difficult to know who to trust when it comes to science relating to diet. It's such a lucrative area.
How Fast Can Humans Go?
In the Central Valley, the Ruins of the Housing Bust
That Student Loan, So Hard to Shake
Intellectual, provocative material. Certainly not flame bait.

I didn't have time to go through all of it. I'm assuming that the author doesn't claim to be Moses or start talking about armed revolution or anything radicalized. It looked like well-reasoned, but controversial opinions. Just the kind of stuff to sink your teeth in and practice your critical thinking skills.

So I voted it up.

Wonder why it was deleted last time? Did I miss something in my scan of the text?
Reads like prose.

Is it commentary, a news article, prose, analysis?

I couldn't tell.

So I'm unable to comment or vote it up or down.

If it were commentary, I'd vote it up for style. Nicely done.
"Not too difficult" my ass. Nobody had ever done it before. Nobody thought that even 9 (much less 12) was possible.

And, she did it several years before the Mythbusters guys, for what it's worth.

Give the girl her due.
The Worst Colleges in America
Ten-year-olds doing serious mathematical work? I don't think it's happened since maybe Gauss.
The Onion article about the 6-year-old (currently sharing the front page) says it a little more succinctly. :)

I agree that we are an overschooled society. Unfortunately, the word "education" has magical properties in right-thinking conversation. You can't say you're against "education", you might as well say you want to grind up the poor and use them for food.

We're making progress at the edges, though. More homeschooling, more ways to educate yourself over the internet. Still plenty of room for new ideas from clever hackers, too. :)
A good comprehensive test suite helps here too. Cut the fat out, run the tests, if it passes you know that functionality wasn't needed and you can check it in. If it fails, take a look at the failing test and either cut the test out or revert your changes.
At least as serious as programmers at that age.
Yes, that's a problem, too. E.g. dictonaries would need to be replaced by something persistent like balanced trees.
Yes, and a version control system is implied.
50 Best Websites 2008
It's the Week In Review section. It's commentary/analysis on the news. And no - not trolling for a vote ;)
Chain.js: databinding using DOM, not innerHTML
Management Consultant. Specifically an Agile Coach. I teach organizations and their teams who have gotten lost in paperwork and procedures how to get in touch with that little start-up inside all of us -- without taking down production by being a cowboy.

But it's Sunday and I'm busy coding on my startup. Doesn't that count as a day job?
I like "Code Monkey"
I think Eich is advocating against explicit thread support in JavaScript like e.g. Thread.run() in Java. Separate threads per tab is an unrealated issue as long as the tabs cannot communicate. Tabs might however be able to communicate if one tabs opens another through script. In that case it might introduce racing conditions if the tabs runs in different threads.

Btw in HTML5 there is a proposal for cross-window communication http://www.w3.org/html/wg/html5/#crossDocumentMessages which is asynchronous. This would allow communication between different threads using message passing.
Ajaxian likes Chain.js: databinding using DOM,
Lisp, probably.

You write a fairly straightforward* Lisp interpreter in some existing language (often C, though ML seems like a good fit as well), use that to execute a Lisp compiler written in Lisp on itself, and presto, you have Lisp all the way down to the machine code. The non-Lisp scaffolding is only a temporary support for the initial construction. It may be built with C, but then the C vanishes. It isn't on top of it in any sense.

See also: http://en.wikipedia.org/wiki/Self-hosting -- Compilers for Haskell, Smalltalk, Factor, C, etc. have been done this way, too. There's nothing specific to Lisp about the process. Consider: What are C compilers written in?

* I.E., don't bother optimizing it much if it's only run to build the compiler. Making it simple for easy porting is more important than speed.
Is it not more efficent to allow an institution to babysit children rather than working parents? It's a matter of cost/benefits like anything else.

Maybe. But if what we want is an institution for babysitting, we ought to call it "babysitting", and have conversations about the institution of babysitting.

Instead we call what we do "education" and have conversations where we treat it like a magic spell that will transform children and society.

I would love it if I could hear a politician or columnist say "more investment in babysitting is always a good thing", or "babysitting is the key to solving our social problems".
Software Developer in a once small startup company which has been growing by buying other startups. Now we are a becoming mid-sized enterprise with all the disadvantages of a small company combined with all the disadvantages of a large one.
before: game developer (pirates of the burning sea)
now: meetcast.com
What the author says happened to the words "Design Patterns" happened to the words "Object Oriented" in the late 90's. Words were appropriated to mean something other than the original intention. Alan Kay has explicitly stated that by "Object Oriented" he didn't mean something like Java. (Alan Kay once stood up in front of Smalltalk Solutions conference as keynote speaker and castigated the whole Smalltalk community saying: "I didn't mean Smalltalk to be a Programming Language!" * )

What the author's saying: Alexander did not mean something like the GoF Design Patterns, so maybe we should look at Alexander's book again?

( * - He originally meant it to be something like the OLPC operating system.)
Software Craftsmen :)
I think you're fiercely agreeing: Having a very sharp scalpel is great when you need it, just know that it's almost never the best tool to start with.
What I mean is that it's much easier to physically fold a stripe of toilet paper (one person and a lot of walking) than a huge sheet of paper which needed a team of 20 people to be fold.

And again, it's much more difficult to fold a paper alternating folds length and width-wise than only lenght-wise.
This reminds me of Alfie Kohn's essay What Does It Mean To Be Well Educated?
I have seen production systems where the programmer will copy an existing method, rename it and modify it to "extend" the system. I have also seen programmers use their code browser as a revision control system that way. I have literally seen "lava flow code" where many, many programmers have been afraid to modify code, and it has been patched and program flow rerouted in a convoluted way that resembles hardening erupting lava.

The current system I am working on has a history of developers throwing away and rewriting subsystems. Not surprisingly, it has very understandable code.
Another to do list...
Good article, but the final % he uses for bot traffic is only an educated guess.
The key word there is "their". If you want to be an apprentice, then a non-tenured professor could be fine. You're working on their, narrowly conceived, research. Of course, there are exceptions but an applicant to grad schools isn't usually well-prepared to distinguish. So, given your last point - which I agree with 100% - I think it's better for students to just go with more established folks (assuming good reviews from their current and former students). Let the non-tenured faculty hire assistants - they're cheaper and their independence is less critical to their long-term development.
Likely identity theft of every guest in any Best Western Hotel in past year
His point is that I'm most likely running Lisp on top of some operating system that's written in C rather than using a Lisp-based OS that runs directly on the hardware. Movitz is a project to enable running Lisp on x86 PCs so that a Lisp-based OS can be developed, but I'm not using it.

mechanical_fish is correct that I'm running CL on Linux, which is written in C. If I have a problem that requires me to gain some deeper understanding of Linux than I can get from the documentation, I will have to read C.

All of that said, I think this isn't an especially compelling argument for learning C. The understanding it brings of how computers work is more valuable for most programmers, I think.
Very nice article.

All the schools (at least what I have seen) today create literates and many are not even good at that.

Education is meant to give a pupil the strength, confidence and a value system to lead life. "A potter's son learnt pottery. That was true education."

Today, we want equal opportunity and choices, let us create an open education system where pupils can/be guided to choose anything they want to learn which would enable them to live better.

PS: Especially the Indian Education as Ramanujan rightly points out in his Biography "The indian education system was devised to create slaves". All over the world Indians, at least at high school level, are known to be smart at Math, it is a myth. They are better clerks. That is what it was meant to create then when the British Raj ruled here in India.
You've never been in a self congratulatory C shop where "macro wizardry" is considered a good thing. (Wasn't there some early widget toolkit for X windows that tried to implement Objects using C macros?)

On the other end of the spectrum, I have also worked on a large client-server app at a company whose workforce was taken from the local community college with courses in programming taught in C. Every time these programmers wanted a new collection, they rewrote Linked List. No exaggeration. There were many hundreds of independent implementation of Linked List. I was looking over a shoulder of a programmer, who was showing me that this was what I should do, and watched her showing me how to reimplement linked list. One client even got fed up and tried to introduce a library called "Super Link." Programmers in this shop ignored it and went on reimplementing Linked List. Management at the company determined that "Super Link" would just be particular to that client. (No one understood passing function pointers.)

These programmers thought the C compiler was some kind of "magic." Every time I tried to talk about the call stack, they would give me blank stares.
I'm actually a Rockstar™ Developer.
Does a quarter or half a mile to class at college count? If not, doubtful
Seth's Blog: Monkeys with megaphones
When you hear a Ruby or PHP or Python programmer cursing "Java", that's often what they're cursing: The school of software architecture that implicitly equates enterprise quality with having a large number of complicated moving parts.

The higher-order problem is that the Java language and tools have evolved to fit the needs of this culture, such that you can't really use the language anymore without an IDE -- a piece of code that is, itself, more complex than the space shuttle

Contrast this with the Smalltalk environment. It's also not very comfortable to do Smalltalk without the IDE, but someone who actually looks at the code of the "IDE" soon discovers that there's relatively little mechanism there. (I know of one "workspace" in a commercial Smalltalk that was implemented by a bored developer in the intro class.) All of the metaprogramming entities are ordinary first-class Objects, so almost the whole "IDE" is a relatively straightforward ordinary app.

Commercial Smalltalk environments also tend to fall prey to the Enterprise = Complex mentality, though.

Someone needs to create a programming language where "There's a Simpler Way to Do It!" is the mantra.
"What philosophy books would you recommend?

I can't think of any I'd recommend. What I learned from trying to study philosophy is that the place to look is in other fields."

http://www.paulgraham.com/raq.html
Well, I guess if the business model were to not make a significant amount of money then no scarcity would be perfect! But really, scarcity (real or "fake") needs to exist or else I would be wasting time creating a PRODUCT (in other words: something that is sold).
Am I the only one who couldn't stand Catcher In The Rye? Who found himself completely unable to empathize with the character of Holden Caulfield -- a whiny teenage loser who thinks (despite all evidence to the contrary) that he's special?

I only read it once (I was probably 15 or so) but I couldn't relate to him then, and I don't think there's been any other stage in the intervening 13 years at which I could have related to him, either.