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.

231

There’s a poignant and personal lesson in how the rest of the world feels out there for me today.

I was talking to havner, the release manager for the PLD GNU/Linux distro today. He’s describing life as he sees it, from the point of view of a computer geek in Warsaw. It started out as reminiscing (for me) over old types of computers not found around much, and for him, talking of trying to find parts that aren’t available to him easily so he can make these machines run.

His dream for some spare cash, like mine, is to get an Apple Powerbook. There’s one small difference. For him, it’s nine months wages. For me, it’s more or less one.

So today is a lesson in human contact online. It is possible to get to know people online, and through a language barrier too. Some things are universal. We both like making things work well, and things that really shouldn’t be able to work work anyway. We both like astronomy. His father likes Westerns. I run an ISP. He’s a college student. We’re close to the same age. I think we talked for four hours, keeping him up ‘til dawn.

This isn’t a ramble with a point, really. It’s just nice to really get to know people you work on things with.

Put the N back in GNOME.

GNOME should start adopting some of the Zeroconf, and make good use of it.

My task today was using x11vnc and x2vnc to link my two screens together. I’m logged in as the same user on both machines. They have some prior notion of each other. I should be able to just click a “link” button, then click the name of the other computer, and arrange as I like. They should authenticate each other — It’s not that hard. In a large network environment, it could be Kerberos to do that job. In a more Zeroconf setting, they can just use a magic cookie shared key, and a dialog box asking my permission on the other machine.

I can think of a thousand other uses, from file-sharing ala MacOS, to auto-synching my history and bookmarks.

Fight back against ads online.

Advertising on the internet is paid for per click. When you click an ad, the advertiser pays (often indirectly) the site the ad was on some amount of money. For a lot of Google ads, that’s 50¢ or more. I’ve seen some ads go for as much as $2.

So, if you’re reading something respectable, and see a worthless ad, click it. Cost the advertiser a half coin or so, and make a donation to a site you like to read in the process, all at no cost to you.

228

Talked to Jessica. I even used the real phone. That was nice.

I don’t think I’d do particularly well as a teacher in her place. I have a low tolerance for intellectual sloth. Sounds like she’s doing well, which makes me happy.

I’m trying to start work on a webmail system that doesn’t suck. I’ve had a lot of ideas for what it should and shouldn’t do, and it’s time to put my code where my mouth is.

As a nice confirmation of some of my ideas, I got to see some in practice, since FoolsRun managed to get me a GMail account.

Geekery

Some things that the GNOME session manager should make easy:

  • Manage starting x11vnc for me
  • Keep gossip running.
  • Respawn a crashed application if okayed by the user, and automatically (perhaps with delay) if the app should auto-respawn.
  • Allow me to gracefully log out, and return as I left my desktop as much as possible.
  • Allow me to log in with a clean state.

226

To top it off, Czeslaw Miłosz died