Wednesday 24 July 2002 (¤)
Pixar has put their
short films up on their site.
These are great little films, made while Pixar was gaining experience with their tools.
They are terrific just as shorts to watch, because John Lasseter's storytelling comes
through clearly in each one. But they are also interesting as a progression of
Jim's Big Ego
Monday 22 July 2002 (¤)
Yesterday's post about Stephen Wolfram's ego
reminded me of the band Jim's Big Ego.
Jim Infantino is the main guy, and he writes funny catchy hip songs. I particularly
like "Stress", with its flash video.
My wife used to work with him back when he sold cassettes of his songs. He's a nice guy.
Stephen Wolfram's Unfortunate Ego
Sunday 21 July 2002 (¤)
I've started reading Stephen Wolfram's landmark book,
A New Kind Of Science
Much has already been said about Wolfram's high opinion of himself, and his presentation style.
Even knowing these things beforehand, my breath was taken away by the sheer size of Wolfram's ego.
For those who don't know, Wolfram's book is about a new approach to science that is the biggest
new direction since Newton, and, according to Wolfram, will be wildly more successful than previous
techniques. Whether this is true or not, I cannot say. Presumably reading the whole book will
give me some idea, but I don't pretend to ever be able to make that sort of judgement.
I'll leave that to others. Perhaps only a century's time will ever tell.
My thoughts keep running to two other geniuses: Isaac Newton (Wolfram's predecessor in revolutionizing
science) and Donald Knuth
(another contemporary computer scientist).
Like Wolfram, both personally produced enormous works that changed the course of their fields.
Like Wolfram, both were renowned for their intelligence and wide-ranging work.
But both were also gracious and modest, something that Wolfram is not.
Newton's most famous quote is
"If I have seen farther than others, it is because I stood on the shoulders of giants".
Knuth's writing is as comprehensive and authoritative as Wolfram's, yet has a friendliness and openness
that Wolfram seems incapable of.
Wolfram has been criticized for not crediting others for their contributions to the work.
Again, I cannot judge whether this is true. What is clear is that a reader of his book would come away
with a picture of Wolfram working in isolation for twenty years, and emerging from his cave with
an earth-shattering theory fully-formed. On page 12 of his book is a section
which presents thumbnail sketches of such fields as Artificial Intelligence, Chaos Theory, Evolution Theory,
and Fractal Geometry. The section is called "Past Initiatives", and essentially presents these
efforts has having failed. Rather than discuss them as foundations and precursors, he paints them
as erroneous dead-ends.
Another blemish is the encouragement to use
as a tool.
Stephen Wolfram wrote Mathematica (again, this is presented as simple fact: I'm sure there were others
involved!), and I have no doubt that it is a wonderful tool, even a ground-breaking one.
I also have no doubt that it is the best way to experiment with these ideas.
But there is something unseemly about stating matter-of-factly that the experiments in the book can be
duplicated on a standard computer, while glossing over the fact that the recommended techniques
(Mathematica programs) require spending hundreds of dollars to buy the software from his own
company. Perhaps there are other ways to experiment? Of course, but Wolfram isn't helping us to discover them.
Should it matter whether Wolfram is gracious and charming? Perhaps in some pure abstract world
populated by pure abstract scientists, it should not.
But we do not live in such a world.
As an ordinary reader of the book, I find it
grating and distracting. If I had been one of those whose efforts have been glossed over, I would
find it enraging.
Writing a book is fundamentally about trying to transmit ideas from the author's mind to the
readers'. As I read A New Kind Of Science, it seems there are three main ideas I'm supposed to accept:
- Computational processes can provide the underpinnings for science.
- Stephen Wolfram is a genius.
- I should buy Mathematica.
In a perfect world, idea #1 would be the only idea explicitly encouraged by the book, and ideas
#2 and #3 would be natural by-products.
Modesty in an author would require text actually countering ideas #2 and #3.
Wolfram's style unfortunately makes me question
which idea is most important to him. I begin to suspect it is #2, which may hurt the acceptance of #1.
Saturday 20 July 2002 (¤)
A few weeks ago, Charles Miller wrote about
some theories of behavior and how they apply to coding.
Basically, he says that it's important to make sure little badnesses don't creep in,
because they add up, and discourage fellow coders from fighting future badnesses,
and eventually, there's badness everywhere.
I totally agree. As a developer, I find my main enemies to be noise and inertia.
Noise is anything that detracts from the good qualities of the code (clear intent,
good performance, flexible structure, and so on). Noise adds friction
to the development process by making it difficult to move forward.
Inertia is anything that makes change difficult, which includes all the noise.
For example, anyone who has worked with me knows that I am an absolute fanatic about
coding conventions. I believe they are important because they reduce noise: when I look
at a chunk of code I didn't write, I need as little noise as possible. Different brace
styles are nothing but noise. Some people will argue that it's silly to legislate
code style because it isn't important to the functioning of the code: the compiler doesn't
care where the braces go, so why should we?
The answer is, it's important to decide on a single style precisely because it doesn't
matter to the functioning of the code. Everything possible must be done to focus
developers on the things that matter, and having to accomodate everyone's style makes
all the other developers (except you) spend focus on reading your particular coding style.
And of course, divergent style is the least of the badnesses that can infest your code.
Worse are bad architecture, mushy semantics, poor performance, incorrect functionality, and
so on. These are the kinds of things that get into the code and can be very difficult to
remove, especially when the whole team is under constant time pressure to deliver new
Only by being merciless about fighting small badnesses all the time can you ensure that
at the end of two years and eight people's work you have a large pile of goodness.
Flaky Coffee Grinder
Thursday 18 July 2002 (¤)
My coffee grinder is flaky again (no, it doesn't grind coffee beans into flakes: it behaves erratically).
Last time this happened, I remembered a story my brother-in-law told me. My brother-in-law is a physicist,
and not one to let mechanical failures be. When his coffee grinder stopped working, he took it apart,
found the problem, and wrote to the manufacturer to explain what he found (I don't remember what the
problem was, but he couldn't fix it, so writing to complain was the best he couild do).
When my coffee grinder first failed, inspired by John's can-do attitude, I took my coffee grinder apart
too. It had been slowly getting less and less eager to begin grinding when I pressed the button, so I
assumed the switch was broken in some way. I figured I couldn't fix it, but I should at least see the
When I opened the bottom of the grinder, the problem was clear: the entire inside of the grinder was
filled with finely-ground coffee! The upper cup was sealed to the body of the grinder with
a strip of what looked like ordinary electrical tape. The tape had come loose, and over the course of
its lifetime, little bits of fine coffee dust had been making their way into the grinder. Once the
electrical contacts of the switch became completely clogged, it stopped working.
I was able to empty out the dust, clean everything, re-wrap the upper seal with ordinary electrical
tape, and put it back together. The grinder worked perfectly (and was about a pound lighter).
As an engineer, I was very proud.
So that was the last time my coffee grinder didn't work (there are three separate grinder failures
in this story, remember: John's, my first, and my current). So I opened it up again this morning
expecting to find a cascade of coffee dust, but alas, my electrical tape had held, and the inside was
only dusty from the last cleaning. I blew around inside, and put it back together, and it seems
to work OK, who knows?
Is there a lesson in this? Maybe not...
Mark Fiore Animation
Sunday 14 July 2002 (¤)
Mark Fiore does political cartoon animations in Flash.
Thursday 11 July 2002 (¤)
letterscapes is a nifty interactive doodad
(I'm reluctant to call it "art" because that doesn't imply fun to me).
It is composed of 26 dynamic "scenes", each starring a different letter of the alphabet.
I especially liked 'K'.
Mike sent it to me, and said it was "bizomb".
As a developer, I was interested to see that the whole thing was done in Java, rather than
the typical tool for this sort of thing, Flash. It's almost more impressive to me that
it was all done via typing code, rather than dragging curves.
Peter Cho is the creator of letterscapes, and has a bunch
of other nifty interactive doodads on his site.