Mon 17 Dec 2001

  • passages: I threw out two old friends this weekend. I’ve had both of them since my freshman year in college, and both of them have survived the move between dorm rooms, apartments, and our house. The first was my old computer hutch. The second was my old smiley-face beanbag, that the dog had adopted. While both had lasted long beyond what was reasonable for their lifetime, I kept on to them.

  • control center: Wrote a mouse-properties capplet this past week or two. Keyboard properties is next on my list. I’ll probably tackle it over Christmas.

Sat 08 Dec 2001

  • GTK+ (gtkrbtree.c): Below, I should have had: (node->right == tree->nil || !GTK_RBNODE_FLAG_SET…) This cute little bug, plus one other, kept me busy drawing pictures of Red-Black trees for almost three days.

  • guests (blizzard): Chris is in town for a week or so, again. We’re spending the afternoon hacking in the dining room, listening to Ziggy Stardust. Need to get the Bauhaus version some day…

  • Cooking: Zana’s been experimenting with the Dutch Oven for dinner for the last few weeks. It’s been a lot of fun seeing her transform very tough cuts of meat into tasty, juicy dinners. The only drawback is that there doesn’t seem to be a concept of a light dutch oven dinner.

Thu 06 Dec 2001

  • GTK+ (gtkrbtree.c): Spot the bug below: if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_DESCENDANTS_INVALID)) { if ((! GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_INVALID)) && (node->right != tree->nil && ! GTK_RBNODE_FLAG_SET (node->right, GTK_RBNODE_DESCENDANTS_INVALID)) && (node->left != tree->nil && ! GTK_RBNODE_FLAG_SET (node->left, GTK_RBNODE_DESCENDANTS_INVALID)) && (node->children && GTK_RBNODE_FLAG_SET (node->children->root, GTK_RBNODE_DESCENDANTS_INVALID))) GTK_RBNODE_UNSET_FLAG (node, GTK_RBNODE_DESCENDANTS_INVALID); }

Fri 30 Nov 2001

  • gcc: You learn something new every day. Consider a function like:

    static void foo (void) { foo (); }

    This static function calls itself, and nothing else in the .c file calls it. As a result, the -Wunused-function argument won’t actually warn you that foo() is unused at compilation time. I found a 500 line recursive function in gtktreeview.c yesterday that was unused. Removing that function got that file under 10KLOC again. It’s still pretty unmanageable, but it’s a step in the right direction.

Thu 29 Nov 2001

  • GNOME Foundation: Wow! I was voted in. I only hope we can do as good job as the last board did. This looks like it’s going to be a great board — though I do wish we could have squeezed Jeff and Glynn in there somehow.

  • GTK+ (GtkTreeView): Got incremental reflow sorta working yesterday. Tomorrow, I try to get column sizing right.

Mon 19 Nov 2001

  • Website: Decided to play webmaster tonight and worked on my site a bit. Not quite ready yet to make it live. But I will put it up soon.

  • Music: Got “In The Beginning…” by Genesis recently. It’s all their early stuff. I hadn’t listened to it much since my roommate in college had it. It’s kind of fun.

  • GTK+ (GtkTreeView): Committed the last (knock on wood) API change for GTK+ 2.0 for GtkTreeView. I’m pretty happy with most of it. There are a few warts left (column sizing), but I think it’s definitely an improvement. For GTK+ 2.2, it’ll definitely be very cool.

Sun 04 Nov 2001

  • Meta: Missed all of October. I went to another wedding in Chicago during that time. Zana and I got cell phones. I worked a lot on the GtkTreeView; it’s getting close to finished now. So much happened, so little was detailed. I suppose I should write it down so I can remember, if nothing else.

  • Design: The OXO Good Grips people continue to impress me. After a string of Mediocre products recently (I did not like their can opener) I was floored by their new Tea Kettle. Wow! I bet all Tea Kettles in the future work like that.

  • Location: I seem to be writing entries primarily in airports, nowadays. (-: