More on this book
Community
Kindle Notes & Highlights
The tragedy of the commons actually stems from two linked problems, one of overuse and another of underprovision.
Part of the answer lies in the fact that people don’t merely need solutions, they need solutions on time
in a properly-written accounting package, business knowledge should not be expressed in code at all but rather in a schema or specification language implemented by the accounting engine (for a closely parallel case, consider the way that database schemas separate business knowledge from the mechanics of the database engine).
Security is an aspect of reliability; only algorithms and implementations that have been thoroughly peer-reviewed can possibly be trusted as secure.
A key fact that the distinction between use and sale value allows us to notice is that only sale value is threatened by the shift from closed to open source; use value is not.
But the right to fork is like the right to strike, the right to sue, or the right to bear arms—you don’t want to have to exercise any of these rights, but it’s a signal of serious danger when anyone tries to take them away.)
An open-source project, pitched at the right time, can do better than just competing successfully against closed-source alternatives; it can actually prevent them from getting traction in the marketplace, resetting the competition and redirecting it from an area where the initiating company is weak to one where it is strong.
Often, it’s more important to prevent your competition from getting a chokehold on a particular technology than it is to control the technology yourself.
The brutal truth is this: when your key business processes are executed by opaque blocks of bits that you can’t even see inside (let alone modify) you have lost control of your business. You need your supplier more than your supplier needs you—and you will pay, and pay, and pay again for that power imbalance.
In a latter-day take on John Gilmore’s famous observation that the Internet interprets censorship as damage and routes around it, it has been aptly said that the hacker community responsible for Linux interprets attempts at control as damage and routes around them.
when did you last see a software development group that didn’t have way more than enough work waiting for it? In a swiftly changing world, in a rapidly complexifying and information-centered economy, there will always be plenty of work and a healthy demand for people who can make computers do things—no matter how much time and how many secrets they give away.
If you’re really ahead of the game, plagiarism is a trap you want your competitors to fall into!
there is always a jurisdiction in which reverse-engineering will be legal.
The lore of software engineering is dominated by Brooks’s Law, articulated in Fred Brook’s classic The Mythical Man-Month. Brooks predicts that as your number of programmers N rises, work performed scales as N but complexity and vulnerability to bugs rises as N2. N2 tracks the number of communications paths (and potential code interfaces) between developers’ code bases.
But lazy mental habits have huge inertia.
Part of this stemmed from the fact that the word “free” has two different meanings in the English language, one suggesting a price of zero and one related to the idea of liberty. Richard Stallman, whose Free Software Foundation has long championed the term, says “Think free speech, not free beer
One thing I understood from the beginning is that the press almost completely tunes out abstractions. They won’t write about ideas without larger-than-life personalities fronting them. Everything has to be story, drama, conflict, sound bites. Otherwise, most reporters will simply go to sleep—and even if they don’t, their editors will.
There would come a time when charisma became less effective than broad-based institutional respectability
As with all creative arts, the most effective way to become a master is to imitate the mind-set of masters—not just intellectually but emotionally as well.
Being a social outcast helps you stay concentrated on the really important things, like thinking and hacking.
Learn to write your native language well.
It is not possible to effectively secure Windows systems against crack attacks; the code and architecture simply have too many flaws, and securing Windows is like trying to bail out a boat with a sieve.
If having a program written is a net economic gain over not having it written, a programmer will get paid whether or not the program is going to be free after it’s done.
The point of Brooks’s observation, and Bentley’s, isn’t merely that you should expect first attempt to be wrong, it’s that starting over with the right idea is usually more effective than trying to salvage a mess.
When programmers are held both to an immutable feature list and a fixed drop-dead date, quality goes out the window and there is likely a colossal mess in the making.
One way to do this is to fix the deadline but leave the feature list flexible, allowing features to drop off if not completed by deadline. This is essentially the strategy of the “stable” kernel branch;
The other way to do this is to set a desired feature list and deliver only when it is done.
general: “Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.
“Process becomes product
One major strength of a relatively open democracy is that most potential revolutionaries find it easier to make progress toward their objectives by working via the system rather by attacking it. This strength is easily undermined if established parties act together to “raise the bar”, making it more difficult for small dissatisfied groups to see some progress made toward their goals.
An open process with low entry barriers encourages participation rather than secession, because one can get results without the high overheads of secession. The results may not be as impressive as what could be achieved by seceding, but they come at a lower price, and most people will consider that an acceptable tradeoff.