Money is just a way to keep score. The best people in any field are motivated by passion. That becomes more true the higher the skill level gets.Collection: Money
People are happiest when they're the most productive. People enjoy tasks, especially creative tasks, when the tasks are in the optimal-challenge zone: not too hard and not too easy. To some extent, that has always been true. But it becomes even more true as work becomes more about brains and creativity.
People who study primate societies make a distinction between two kinds of cultural interactions, agonic and hedonic. In agonic societies, you gain status by asserting dominance over others. In hedonic societies, you gain status by drawing attention to yourself. Open source is a hedonic culture.
The beginnings of the hacker culture as we know it today can be conveniently dated to 1961, the year MIT acquired the first PDP-1.
Thompson and Ritchie were among the first to realize that hardware and compiler technology had become good enough that an entire operating system could be written in C, and by 1978 the whole environment had been successfully ported to several machines of different types.
If Unix could present the same face, the same capabilities, on machines of many different types, it could serve as a common software environment for all of them.
A critical factor in its success was that the X developers were willing to give the sources away for free in accordance with the hacker ethic, and able to distribute them over the Internet.
For the first time, individual hackers could afford to have home machines comparable in power and storage capacity to the minicomputers of ten years earlier - Unix engines capable of supporting a full development environment and talking to the Internet.
In early 1993, a hostile observer might have had grounds for thinking that the Unix story was almost played out, and with it the fortunes of the hacker tribe.
Linux evolved in a completely different way. From nearly the beginning, it was rather casually hacked on by huge numbers of volunteers coordinating only through the Internet.
As a Facebook user, do I have control of the data Facebook keeps about me? Concretely: can I examine and modify that data using tools of my choosing which are built for my needs?
Does Facebook act as though I own my online life, or as though it does? Concretely: Can I control what data it shares with other users, with advertisers, and with business partners?
Does Facebook behave like a tool in my hand, or a firehose designed to spew at me in accordance with other peoples' agendas? Concretely: can I write my own client to present a filtered view of the Facebook stream, or have other people do that for me?
When are programmers happy? They're happy when they're not underutilized - when they're not bored - and also when they're not overburdened with inappropriate specifications or meaningless bureaucracies. In other words, programmers are happiest when they're working efficiently. This is a general preference in creative work.
Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.Collection: Technology
Smart data structures and dumb code works a lot better than the other way around.Collection: Smart
You cannot motivate the best people with money. Money is just a way to keep score. The best people in any field are motivated by passion.Collection: Passion
If you have the right attitude, interesting problems will find you.Collection: Attitude
Good programmers know what to write. Great ones know what to rewrite (and reuse)Collection: Writing
Given enough eyeballs, all bugs are shallow (e.g., given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone).Collection: Learning
Prototype, then polish. Get it working before you optimize itCollection: Polish
Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.Collection: Problem
To solve an interesting problem, start by finding a problem that is interesting to you.Collection: Interesting
Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.Collection: Tools
Grovelling is not a substitute for doing your homework.Collection: Homework
In the U.S., blacks are 12% of the population but commit 50% of violent crimes; can anyone honestly think this is unconnected to the fact that they average 15 points of IQ lower than the general population? That stupid people are more violent is a fact independent of skin color.Collection: Stupid
Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.Collection: Profound
Lisp was far more powerful and flexible than any other language of its day; in fact, it is still a better design than most languages of today, twenty-five years later. Lisp freed ITS's hackers to think in unusual and creative ways. It was a major factor in their successes, and remains one of hackerdom's favorite languages.Collection: Powerful
The easiest programs to use are those which demand the least new learning from the userCollection: Use
The only way to write complex software that won't fall on its face is to hold its global complexity down - to build it out of simple pieces connected by well-defined interfaces, so that most problems are local and you can have some hope of fixing or optimizing a part without breaking the wholeCollection: Fall
With enough eyes, all bugs are shallow.Collection: Eye
Why the hell hasn't wxPython become the standard GUI for Python yet?Collection: Python
Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.Collection: Debugging
When I hear the words "social responsibility," I want to reach for my gun.Collection: Responsibility
Every good work of software starts by scratching a developers personal itch.Collection: Good Work
We hackers are a playful bunch; we'll hack anything, including language, if it looks like fun (thus our tropism for puns). Deep down, we like confusing people who are stuffier and less mentally agile than we are, especially when they're bosses. There's a little bit of the mad scientist in all hackers, ready to discombobulate the world and flip authority the finger - especially if we can do it with snazzy special effects.Collection: Fun
And for any agents or proxy of the regime interested in asking me questions face to face, I've got some bullets slathered in pork fat to make you feel extra special welcome.Collection: Special
Of course, C proved indispensible to the developers of all its alternatives. Dig down through enough implementation layers under any of the other languages surveyed here and you will find a core implemented in pure, portable CCollection: Alternatives
Provided the development coordinator has a communications medium at least as good as the Internet and knows how to lead without coercion, many heads are inevitably better than one.Collection: Communication
That stupid people are more violent is a fact independent of skin color.Collection: Stupid
A security system is only as secure as its secret. Beware of pseudo-secrets.Collection: Security Systems
It is widely grokked that cats have the hacker natureCollection: Cat
The central problem of C and C++ is that they require programmers to do their own memory managementCollection: Memories
Rushing to optimize before the bottlenecks are known may be the only error to have ruined more designs than feature creep. From tortured code to incomprehensible data layouts, the results of obsessing about speed or memory or disk usage at the expense of transparency and simplicity are everywhere. They spawn innumerable bugs and cost millions of man-hours - often, just to get marginal gains in the use of some resource much less expensive than debugging timeCollection: Memories
The Wesnoth devs are good but not exceptionally so, and we're weighed down by a crappy implementation language (C++). Nevertheless our productivity, in terms of goals achieved per hour of work, is quite high.Collection: Language