249

I went to Sandy’s for breakfast, and had an egg and biscuit with coffee. I love simple things, you know? The best part, however, was running into the crew from SYC that I played frisbee with, and I sat with them.

Picture a blonde-haired, dread-headed but clean-cut Jake Matilsky. That would be Andrew, right down to looking at the food left by another patron when they left, and commenting on how he aught to just take it and eat that instead.

Now it’s rainy, about fifty degrees, and at least ten degrees wind-chill. It feels positively Olympic here, and that’s welcome by me. The garden (what survived the frost, which was most of it) is doing well and could use the moisture.

Hopefully, I can make today a productive coding day. I think the temperature and ambiance can’t do anything but help.

248

Envies: Sarah for flying. Tessa for being off at a spiffy college, and anyone who doesn’t have a permanent job for being free to travel.

Likes: coffee, late night walks, and things that are designed Right.

Dislikes: not knowing if there’s a skunk about, cars that don’t signal turns, and network connections that don’t.

247

I’m tired, and sore from frisbee. I didn’t come home until late, so I didn’t eat right. Silly me.

246

I played the most intense game of ultimate frisbee that I’ve ever seen. It was seven on seven, not three on three as usual. The Southwest Youth Corps crew that’s working on the river trail showed up, so we had a lot of young, able-bodied players.

I had an absolute blast. And now I’m going to bed, because I’m exhausted.

245

My first bottle of spiro arrived today. Feel the thrill of fear.

244

Today was day one of installing phones at the Chipeta. We’re replacing their maxed-out and very proprietary Panasonic phone system with an open-source SIP-and-Asterisk PBX. It looks like we’re going to have a relatively easy time of it, since someone ran 50-pair cable instead of the needed 24-pair, so there’s extra lines into the old room, and the phone lines run to both the current PBX system and the closet where the new one will live, meaning it’s just a simple re-punch, no dragging cables all over an ill-conceived but very artistic building, and no need to make anything new pretty.

We got the fax working, the bookkeeping phone working, and with a little more work, we can get the business office up and going. Then we start on the meat of the project, and put the DSL modems in all the rooms, and switch them over.

Work like this is fun!

243

I am sorely tempted to take my cello to work and play it during breaks.

242

Blah to feeling 100% un-beautiful today.

241

I saw Carrie off at nine this morning. It looks like a great program. (The director, upon her arrival said “Want a $1000 Americorps scholarship? Just fill this out…” That was the last I saw of her.

We had breakfast at a Swiss Bakery in downtown Durango. The food was mediocre and the coffee weak, but they did get the concept right on a mocha: no sugar!

Then a short hike near Andrews Lake, then drove home again. I made it short, sicne I’m sick with a cold. It was beautiful, though.

We had a heavy frost two nights ago, and a light one this morning. The tomatoes didn’t make it, though they are always a long shot anyway. The rest of the garden’s okay, but I’m sure it won’t last long. Oh, well.

240

I just patched lighttpd 12.6 to look for a Content-Type attribute. If you want to try the patch, it’s on my site.

239

There’s an increasing trend toward dynamic web pages lately. That’s a good thing. For dynamic data.

When the page cannot know in advance when it should update, a truly dynamic page makes sense. A page listing a current stock price, for example, makes sense to be updated as it loads — the number of updates is probably even larger than the number of views. If you update on view, you end up saving work overall.

Now, the contrary example is, for example, a list of personal files. Looking the list up in a database is complete overkill. For each hit, you’d have the overhead of parsing some SQL, switching context to the database server, running the query, switching context back, piping the data in, and formatting it. All this to look up what’s very likely the same thing that was looked up last time.

It’s time to go full circle back to the era before databases. Back to when writing a CGI script was difficult, and so only done if neccesary. We have better tools now. The tools are the same as one would use for a dynamic site. php is just fine for the task.

Take an ultra-simple PHP script like so:<pre> <?php system(‘ls’) ?> </pre> and there’s your basic dynamic index page. Now this case is ultra simple, but imagine it does some non-trivial amount of processing instead of just pulling a quick ls.

make to the rescue:`%.html: %.php php -q $< > $@

index.html: index.php . php -q $< > $@ Put that in a file calledMakefileand all you have to do is make a lightning fast static directory index is typemakein that directory. If you think you’ll forget, you can put it in yourcrontab` or in your logout script.

Then, in your .htaccess file, put in DirectoryIndex index.html, to make sure PHP is not called for each hit. Better, do it in the webserver config file. To test changes to the script, go to the index.php directly. Users won’t see changes until you run make, though, so don’t forget. What they will get will be lightning fast and cacheable, too. Watch your webserver load drop as static data is stored statically, and let dynamic scripts do dynamic things.

238

My mood is swinging all over the place tonight. I should probably go eat, but I want to revel in actually being somewhere other than 80% tonight. I’m sad, just in general at the moment. I miss Carrie, and I miss Robyn and I miss Tessa tonight.

Last night, Tessa and I talked — really talked for the first time since we broke up. It felt like a huge piece of myself that I’d held in reserve came out. It was good to see. Sometimes I forget who I am. It’s good to be reminded.

I hate the words “Broke up”. They have never felt right to me to describe things. It’s too simple. The world is not that simple. My world is not that simple. I never let go, quite — I let myself take my favorite parts of my favorite people and carry them with me like a locket. From Tessa, I take the caring so intensely about others, and living with intensity even so, not becoming a servant to others wishes. You can’t break up, to sever the connection as if it were never there. There’s something deeper, a lasting connection. If you wait it out and don’t build the walls around it too high, sometimes you realize that it changes and there’s something else there. Things change. People change.

I’m deeply sad at the moment. I look back and can’t think I really know who I am. I spend a lot of time just fighting being what I’m not. I want to just go and run and grow and change, fast.

I’m scared to reach out and change. It’s so easy to retreat into being safe, doing what I know (and what I’m good and and like, even). I want to cut loose and be free. I want that to be possible.

I think maybe that when I look in the mirror, I see my evil twin. And I envy her.

237

Convergence.

This is what I spend most of my programming time trying to cause. I work on projects like rubyrdf, blog bots, designs for how to properly log IRC to the web, how to represent email in a durable fashion on the web, how to catalogue amazing amounts of data, how to make a nice photo album that will last forever. All of these things have something in common: Simple is good, expressive is a must, and the computer should figure out how the pieces fit together so humans don’t have to. Humans should just be able to tell the computer what they want done (In whatever way the computers of the time are capable of), and have it happen.

236

Does my utter dislike for being naked come from being transsexual, or does being transsexual come from some inner hatred of my body?

235

I had my family over for dinner today. It was a good kick in the pants to get the downstairs cleaned up, too.

It was good, too. Burritos and salad, and mom made peach crisp for dessert. It was quite the smörgåsbord, with the cabbage and carrots and mango salsa and mole to add to it.

The garden is huge. The salad’s all bolting, so I’m trying to eat as much of it as I can. The nasturtiums are happy: the leaves are four inches across! I think the squash will even come out, and there’s a baby tomato on one of the plants. It’s not nearly such a good garden as last year, mostly due to lack of effort on both our parts and a lack of water from me while Carrie was gone to Quo Vadis.

After the family took off, I spent a good deal of time trying to make ruby go on the SPARC and Alpha architectures, neither of which I own working machines of to test with currently. Such fun!