Aug 17, 2007
Laziness allows you to think of data structures like control structures. Lists, along with the usual higher order functions, turn into essentially reified loops which can be transformed all at once.

There is a place for strictness, but it’s actually rather small compared to the cases when laziness wins out. You want strictness when reducing large data structures into small ones in a way which uses all of the large structure (i.e. not a search). In all other cases, laziness is actually preferable or equivalent to strictness in terms of performance.

permalink

* *
Aug 17, 2007
One needs to exit doubt to produce science — but few people heed the importance of not exiting from it prematurely.

One usually exits doubt without realizing it. We are dogma-prone from our mother’s wombs.

— Simon Foucher, “Dissertations on the Search for Truth”, 1673. via

permalink

* *
Aug 17, 2007
In most cases, ugly code becomes uglier as it’s maintained or enhanced.

It does not sound like much to take time to write a little test, perform a simple refactoring, or rename one variable. But it represents a huge change in attitude and a rare and courageous stance toward legacy code. It means that you don’t accept the inevitable slide from ugly code to uglier code.

permalink

* *
Aug 17, 2007
A desk is a dangerous place from which to view the world.

permalink

* *
Aug 17, 2007
ActiveRecord’s family of class methods isn’t a DSL, it’s a database pidgin.

permalink

* *
Aug 17, 2007
It intrigues me that the media is regularly running stories about how quickly executive pay is rising and ask if they are being paid too much. But it appears the media aids and abets the increases.

permalink

* *
Aug 16, 2007
..if we’re always going to revisit the (X)HTML at redesign time, use of visual class names doesn’t negatively impact our work.

permalink

* *
Aug 15, 2007

The inverted pyramid for getting to 1.0

Pitch, people, process, product.

“A sure sign of a healthy pyramid is that one layer invades another. Think of each change to people, process, and pitch as a shove in one direction. This movement requires compensation in the other layers otherwise the whole thing falls over. If, in your organization, your pyramid is not constantly adjusting to keep itself upright, Something’s wrong. If the new folks aren’t testing the pitch, they either don’t buy it or they don’t get it. If your engineers aren’t arguing about the way they develop software ALL THE TIME, they’re becoming stagnant and that trickles down to your pitch and trickles up to your product.”
Michael Lopp

permalink

* *
Aug 15, 2007
When your third engineer starts tracking bugs on that huge whiteboard in the meeting room, that’s process. It doesn’t have to be good, it doesn’t even have to be universally agreed upon on, it just has to be stuck in a place where every can see it.

permalink

* *
Aug 15, 2007
Of course “requirements” doesn’t mean requirements, we should all know that by now. “Requirements” are more like wishes, or more correctly, some placeholder for what I need, or still more correctly, “some placeholder for what I think solves what I think is the phrasing for a problem or desire I think I have.” So a person or group of people write down a bunch of these wish / placeholder things. And of course you’re a fool if you believe them all.

permalink

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