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!

234

I like where things are headed on the X front.

NoMachine has GPLed their X proxy, meaning we now have something that can kick Citrix and RDP’s ass.

x11vnc is a vnc server that works within an existing session. It’s so easy to use that it’s almost impossible to screw up.

Havner is working on PLD script to convert XFree86 installations to X.org. It went flawlessly for me, once I got my antiquated RA font packages out.

XFree86 had some spiffy autodetect code that just worked for me to make a config file. It didn’t handle the mouse perfectly, but I have hope.

GNOME 2.6 is sweet. GNOME 2.8 looks even nicer.

Epiphany is a damn nice browser.

Rhythmbox sucks way less than it used to. A few quirks, but it’s getting down to iTunes level.

PLD is aiming to release version 2.0 soon. Wish them luck. I think it’ll be really nice, and 2.1 even better.

233

Job for Bill Allred, making an aircraft parts database of epic proportions go. $500 advance, plus $150 already for related work.

Job for Leni, removing virus.

Job for Matt, removing virus, and upgrading windows.

Job for Elaine, seeing if her computer is worth anything at all.

Normal work. I need to get my invoice maker done before billing this month if possible. Five days left.

Helping customers by remote control this morning. No charge there in return for undying grattitude.

Helping Tessa by remote trying to make Windows 2000 not suck. Didn’t happen, but at least I tried. I still want to know why.

More work than I can shake a stick at. Now if only I could figure out how to delegate it.

232

… that was odd.

I’m packing to go home, and Daniel (my adopted brother) knocks on the office door.

His court case got tossed, so he’s free, coming back to town to live (he hopes. I told him not to get his hopes up. Houses are expensive as hell and not available at the moment.) He’s staying with some friend, and says he’s hoping to get carpentry work.

We ate burritos and talked for a bit, then he split and I’m ready for more work.

Strange evening. Sounds like he’s doing okay at the moment, though. That’s good.