Tuesday, November 10, 2009

My Three Components

This year has seen the 40'th anniversary of three things:

- Sesame Street
- Unix
- Monty Python

It also contained my 40th birthday.

This is fitting, because I think I can say that those three things are my
component parts; nothing else was needed.

Thursday, October 15, 2009

Thursday, September 24, 2009

The great Guy Steele on C++

As for C++–well, it reminds me of the Soviet-era labor joke: "They pretend to pay us, and we pretend to work." C++ pretends to provide an object-oriented data model, C++ programmers pretend to respect it, and everyone pretends that the code will work. The actual data model of C++ is exactly that of C, a single two-dimensional array of bits, eight by four billion, and all the syntactic sugar of C++ fundamentally cannot mask the gaping holes in its object model left by the cast operator and unconstrained address arithmetic.
(From Objects have not failed, 2002.)

Monday, September 14, 2009

Quote from Susan


"Look at the Woolworth Building -- it looks like a Christmas Bruise."
-- Susan Beal 9/11/2009

Friday, September 11, 2009

Annie's first full sentence!

Young kitten annie typed her first full sentence on my laptop the other day. I'm so proud!!!

"$ ./
k bddddddddGd

They really do say the darndest things.

Thursday, September 03, 2009

Annie y Greg

Here's what I love about cats. They can be comfortable almost anywhere.

In this picture, Annie is on my shoulder. My shoulder and arm were vaguely horizontal at that moment, and she took the opportunity to sit down like it was the floor. It's quite gratifying to be treated as a floor by a small creature; it's hard to explain why, but if you've experienced it, you know what I mean.

She looks like she might be playing here, but at that moment she was taking a break. The break lasted somewhere between 500 and 1500 milliseconds, but that's a decent break for a kitten.

Wednesday, September 02, 2009

Annie update

If you saw the pictures of the very-young and very-thin Annie,, you might have been a bit worried about her. We were worried too.

But everything is just fine now.

A bit of legal knowledge from my wife.

From: Susan Beal
To: Greg Travis
Subject: there's actually a statute about this!

Authority to represent the state as owner of abutt

Who'd'a thunk it?

Friday, June 12, 2009

Google does it to me again.

Okay, so you may recall that Susan and I made a lego portrait of Nancy, which I placed amongst the other lego portraits here at Google NYC. Here's Nancy next to another famous programmer and Google employee, Brian Kernighan:

The other portraits are other famous people, or the Google founders, etc. But there's this one guy I didn't recognize, shown on the right here:

I see various images of him everywhere here -- on t-shirts, posters, computer screens, etc. The haircut has a late-70's / early-80's look, so I figure this must be another computer luminary whose name I probably know, and who might work at Google.

I decided to pose myself the challenge of figuring out who it is without asking anyone. I would look at the list of upper management, which includes a bunch of famous computer scientists; I would examine every place I found his face, try to find a pattern. Check out old pictures of people at Xerox Parc back in the day. Look closely at the people I saw around me. And so on.

At one point, someone set up a computer in the Hall of Old Computers running the operating system called Plan 9 from Bell Labs. It used an old-yet-advanced email system that included a little picture of the person sending the email. And there, on the screen, was a bunch of little pictures of people who had sent email to this computer, people I recognized, and they mystery man as well! The little pictures had the usernames under them! The mystery man's picture was partially obscured, so I couldn't see his username. I clicked on the window to bring it to the front -- and it disappeared.


A couple of weeks ago, I finally figured it out. Strangely, I cannot for the life of me remember how I figured it out, but I suspect that I saw the picture along with the guy's username, pjw. A quick image search for 'pjw' brings up the picture, and from that I got the name: Peter Weinberger.

It turns out, he was a researcher at Bell Labs a while back, and then he was the "Director of Computer Sciences" or something like that. He was involved in early work in digital photography, and he left a head shot lying around and someone scanned it and started putting it everywhere as a joke. It also became a test image for showing off digital image processing.

Apparently, this is a long-standing geek meme. I thought I kept up on most of those, but this is one I missed entirely.

Anyway, mystery solved! So, does he work at Google? I look him up, and, sure enough, he does. I look at the picture on his internal page, and he looks vaguely -- wait -- oh my god.

This guy has been sitting behind me, in the next cubicle-pen, the entire time I've worked here. I even had a conversation with him and some others a while back.

It's a small world here.

Tuesday, June 09, 2009

I am big fan of Richard Clarke. He's a capable counter-terrorism expert, honest to a fault, and the only person to apologize for the 9/11 attacks. Which is actually kind of inappropriate, since he tried over and over to get the Bush administration to heed his warnings, and was ignored every time.

Also, he looks like a baby eagle.

Tuesday, June 02, 2009

Spam of the day

From: "Tamara Acevedo"
Subject: Pay less for luxury and qualitative watches.
Hmm! Quantitative watches give me a lot of stress, what with all those numbers telling me I'm late. A qualitative watch sounds a lot more laid back.

Thursday, May 28, 2009

I've been developing a new software development system, called TESSA (Tertiary Enterprise System Solution with Aspects). Here it is in action:


Syntax Error:

Compilation Successful:

Thursday, May 21, 2009

An especially vivid dream I had last night

I'm back at Dynamic Logic (my last job), on some kind of official business from my current job (Google). [This is relevant since my departure from DL was acrimonious: I was treated like dirt as soon as I announced I was leaving, and was told that I was making a Big Mistake. And this rather got to me.]

Anyway, I'm back there, and, like all dreams where I am visiting an old company, it's on the 100th floor of a skyscraper and is a ring-shaped office around some unseen core. I'm running around looking for something, and I'm a little self-conscious because I've gained weight (true). Finally I reach the front desk, where I am given some documents or something. People are being really friendly, and by the time I'm ready to go, people are laughing and cheering me, it's all very gratifying.

I go out to take the elevator down. An elevator arrives, and some people get in it, but I get in another one. Like most elevators in my dreams, it's way too big and has furniture in it. This one looks like it's undergoing serious renovations, with construction materials, sheetrock, wiring stuff.

The walls and floors are lined with lit candles which throw off a nice light. Apparently the electricity is not connected to this elevator, so the light has to be from candles. Somehow, though, when I press the button, the elevator starts to go down.

It goes down very slowly. At this point, I decide that this elevator may well be dangerous, that it perhaps isn't meant to be used, so I start pawing at the buttons. I'm trying to hit the '90' button before we've passed the 90th floor, then the '89' button, etc., but I can't get the thing to stop.

A moment later, I look up, and the elevator has changed. Instead of a shambling room lit by candles, it's a pristine, futuristic space with slanty walls and glowing panels. I turn around towards the back of the elevator, and there are three chairs. They are occupied, of course, by the ladies of Dynasty (the prime time soap opera from the 80's)! Linda Evans, Joan Collins, and someone else. (Not a show I watched.)

I think this dream is of good portent.

Tuesday, May 19, 2009

Monday, May 18, 2009

No disrespect to Bugs Bunny...

This headshot of Sarah Palin always looked really familiar to me. In a flash, I remembered today what it was:

Now that I look at them side-by-side, it's not really the same expression, but somehow the smile-level is identical.

Monday, May 04, 2009

Pretty Pretty Ca Na Da

View Larger Map

Don't forget to zoom out!

Beautiful spam

Perhaps I'm just trying to share something that everyone has enough of, but, look, I get some spam that really make me happy, and I just have to share.

From: Champany
Subject: Computerized babies cry, burp at Mexicaan teens

[Followed by viagra ad.]

Monday, April 20, 2009

Careful what you ask me!

Some poor guy wrote to me to ask me what I meant by the following line from the little 'bio' paragraph I used to put at the end of programming articles:

[Greg is] a devout believer in the religious idea that, when a computer program works, it's a complete coincidence.

I sometimes get questions about articles I wrote (many years ago), but no one had asked me about this line, so I was pleased to respond. But the poor guy didn't know what he was getting into, because I just went on and on and on:

> I haven't thought of it before. and I know it may sound silly, but I'm
> curious to know why you think so..

Not silly at all! I've gotten many emails about my articles over the
years, but no one asked about this most-important of topics.

In programming, we use so many methods to try to control the
complexity, but in the end, I, at least, feel like I don't have a
handle on the whole system, and when something works, it *feels* like
I just got lucky.

When I first wrote that bio, I was just a year out from writing
DOS/Windows games. It drove me nuts -- one bug and you have to reboot
your computer. It really frustrated and traumatized me, so that I
would be crossing my fingers every time I ran the program. I guess I
needed more reliability than that, which is why I was quite pleased to
switch to Java.

If I think about the enormous complexity of the whole system, it
boggles my mind. I write this code running inside emacs, an ancient,
huge program that, itself, contains a lisp interpreter; my code is
compiled by a huge program that itself was compiled by a huge program
that, itself, was in turn compiled by a huge program, going all the
way back over the years to someone who wrote a tiny assembler and
punched it into the front panel of some primitive computer.
Meanwhile, the compiler is reading from disk spinning at who knows how
many RPM, with a magnetic head floating just above the fragile
surface. The disk sectors are being read, possibly out of order, into
memory buffers, probably inside an interrupt where some special pin on
the chip halted the processor in the middle of decoding some zany
machine language that looks like

0a 62 6f 67 67 6c 65 73 20 6d 79 20 6d 69 6e 64
2e 20 20 49 20 77 72 69 74 65 20 74 68 69 73 20
63 6f 64 65 20 72 75 6e 6e 69 6e 67 20 69 6e 73
69 64 65 20 65 6d 61 63 73 2c 20 61 6e 20 61 6e
63 69 65 6e 74 2c 0a 68 75 67 65 20 70 72 6f 67
72 61 6d 20 74 68 61 74 2c 20 69 74 73 65 6c 66
2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6c 69 73
70 20 69 6e 74 65 72 70 72 65 74 65 72 3b 20 6d
79 20 63 6f 64 65 20 69 73 0a 63 6f 6d 70 69 6c
65 64 20 62 79 20 61 20 68 75 67 65 20 70 72 6f
67 72 61 6d 20 74 68 61 74 20 69 74 73 65 6c 66

but also, since it's DOS (or Windows 3.1, same thing), the memory is
being paged around by some crazy 'dos extender' which has all its
interrupts going; all of this data is being parsed by a crazy state
machine with hundreds of states, and turned into a code tree and
analyzed and rendered into more '79 20 63 6f 64' and written to an
executable file with interlocking code sections; and then that file is
read into memory which does the run-time linking, relocating pointers
or whatever the hell it does, and don't forget that we might be
triggering page faults and reading from and writing from disk, and all
of this is written in a language that is almost certainly not Java,
all of this is running inside a little chip of silicon, tiny currents
running through tiny wires, right next to humming power supplies and
spinning fans, and any single component might go bad and a 0 changes
to 1 and you'll never never ever ever know...

I'm telling you, I get freaked out thinking about it, and when my
program *doesn't* print "Segmentation Fault: core dumped", it seems
like I just got *really lucky*.

So that's why.

In the morning, my code feels to me like it's a nicely-designed
bicycle, with a few well-understood moving parts, and I have to adjust
this or that and get riding; by the end of the day, it seems more like
an off-shore oil rig slowly toppling into the sea...

Put another way, in the morning it feels like science, and in the
evening it feels like religion.

Wednesday, April 15, 2009

In Soviet Russia, Fir Tree Uproots You!

Some guy in Russia went to the doctor and they found a little fir tree growing in his lung. Would this be the first creature born to a male animal?

Susan came and told me this, and we were both filled with a feeling of reverence. I would honored if a tree would grow in me. However, it sounds like it was rather painful; I would probably pick some other place to grow it.

For added fun: this news story actually has a list of 5 related articles. Um, this news story is not related to any other news story that has ever been.

Monday, April 13, 2009

View larger.

I love how "view larger" really means "resize my browser and show me the same image".

When will people realize that pop-up windows are for programmers to impress clients with, not to help the user?

Friday, April 10, 2009

Tiny tiny kittens

I just have to post this picture of Becky and Tessa as tots. I look at it several times a day. I imagine there's a "well, are you going to take us home" kind of look in their eyes, so it kind of tugs at my heart. But then I remember that I did bring them home, and now they are jolly, healthy cats, are are by no means the same size anymore.

Bad ad targeting.

Really bad ad to show on the Baby Chick Cam...

Primitive art not so primitive after all?

I found an "office cave painting" the other day: a coffee splotch on a counter that looked like a hippo. Note the sophisticated use of foreshortening that makes this young hippo seem to be walking away from us.


test via ping from phone
Test from ping.fm.

Tuesday, February 17, 2009

Do what now?

I keep my to-do 'list' in the form of many small scraps of paper in my back pocket. Every morning I rifle through them to see what I need to do. I throw away (recycle) the ones that I have done or that no longer need to be done. I look sheepishly at the ones at the bottom of the stack that have been in there for 5 months, the paper turning into a silky mess. I take a few out that I plan to do that day, and often wind up just putting them back. Sometimes I can't read what I wrote on them.

The other day, I was writing some task down on a slip of paper, but I was distracted by something else. The next day, I was looking at my slips of paper, and there was one that just said, "Karma".

What's my action item here?

Saturday, February 14, 2009

The truth about 'classical music'

Someone replaced the the music of the Yo-Yo Ma performace at the inaugural address.


I think this proves that the way people look when they are listening to high-art music is the same as they way they look when they are either (1) listening to something terrible, or (2) listening to nothing.