Mar 14, 2008
Reasoning operationally about programs is a tremendous waste of mental effort. Deal with all elements of a set by ignoring them and working with the set’s definition.

permalink

* *
Mar 14, 2008
The number of stars in the spiral arms of our galaxy isn’t really very different than the number between the arms. The arms are like cosmic traffic jams—they have stars entering and leaving, but the arms themselves persist.

permalink

* *
Mar 13, 2008
All aspects of government work best when the relative power between the governors and the governed remains as small as possible — when liberty is high and control is low. Forced openness in government reduces the relative power differential between the two, and is generally good. Forced openness in laypeople increases the relative power, and is generally bad.

permalink

* *
Mar 13, 2008
Situations commonly lead us to behave in ways that are inconsistent with our principles and self-image. The human tendency to see hypocrisy often reflects this tendency to overestimate the influence of a person’s disposition on his actions, and to underestimate the influence of his situation.

permalink

* *
Mar 13, 2008
Please, if you send me an email, don’t try to emulate my writing style.

permalink

* *
Mar 13, 2008
The right way to look at single inheritance is as a specialization of composition. Like all specializations, it does less. It is more specific. Whenever you declare that Child IS-A Person, the compiler writes “Child HAS-A Person” and “Child BEHAVES-LIKE-A Person” and “Child DELEGATES-TO Person” for you. When this is exactly what you mean to accomplish, it is useful: it expresses your intent clearly to other programmers.

When single inheritance is not exactly what you mean to express, use the more general purpose, flexible tool: composition.

permalink

* *
Mar 12, 2008
If you can’t think of a time when you held off on refactoring something because thinking up names was too hard, you’re a better man than me.
me

permalink

* *
Mar 12, 2008
When you add a developer to a team you incur at least two fixed costs. The first is in raw currency, the salary you have to pay out. The second is in lines spent—the rate of codebase growth is certain to go up.

Both fixed costs increase your burn rate; only one increase is predictable.

— me

permalink

* *
Mar 12, 2008
If we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent”: the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger.

comments

  • Evan R. Murphy, 2011-02-25: Excellent quote!

permalink

* *
Mar 12, 2008
The more lightweight the process, the more disciplined you have to be in following it. Discipline can and should coexist with iterating on the process.

permalink

* *
archive
projects
writings
videos
subscribe
Mastodon
RSS (?)
twtxt (?)
Station (?)