349

Database interfaces in Ruby are a little off, if you ask me; they’re as usable as PHP’s, for sure (which are really just raw API for whatever database you use, unless you use ADODB), but I expect more out of Ruby’s.

First off, I expect libraries to use basic data structures whenever possible. People are used to them. If there’s no reason to have your own class of stuff, don’t.

From DBI, I would expect queries to return a hash, with fields either being a string as a key, and value as the natural basic Ruby type for whatever type the field is: text, varchar and char fields should be Strings. int I would expect to be a Fixnum.

I expect all the fields in the query to be in the hash, even if the fields are null — given fields foo and bar, with bar being null in this row, I would expect the hash to contain { :foo => "foodata", :bar => nil }.

Using hashes, it’s possible to create tuples for update with a little addition to the Hash class, like so:

class Hash def import(other) each_key do |k| self[k] = other[k] if other[k] end end end

That would update the hash with just new values; if HTTP POST parameters are also handled as a hash, that makes merging data from the web into the database as painless as db.store data.import request.query.

348

So, I have the flu. It couldn’t come at a worse time. I have a project I need done now, and I just can’t think long enough to do it. I’ll lose my place ater just a few moments. I’m glad I’m not throwing up, but the joint pain is killing me.

We’ll see if some Tylenol helps any.

347

What I want out of an HTTP server is pretty simple, but hasn’t been completely done, or if it has, is kludgy and hard to maintain.

I want content-type handlers that pay attention to the Accept: header. If I define that files ending in .tl get passed through a pipe to /usr/bin/textile-format to turn into text/html, and through /usr/bin/html2fo to turn text/html into application/xsl+fo, and then through /usr/bin/fopdf to make application/pdf, then it should instantiate those three in a pipe, and do it! It’s not that hard! GStreamer does it for media files, why can’t the web server for text files?

Instead of

Action application/x-httpd-php /cgi-bin/php.cgi AddType application/x-httpd-php .php

and hope it spits out the right thing and to magically turn .php files into html (or whatever the script decides), it should be

Transform application/x-httpd-php */* /cgi-bin/php.cgi Transform text/html text/plain "/bin/lynx -dump" Transform text/html application/xsl+fo /usr/bin/html2fo Transform application/xsl+fo application/pdf /usr/bin/fopdf

All this ignores the (relative) inefficiency of instantiating programs in a pipeline all the time. Honestly, I think that if things are small and modular like this, it’s not a problem; cgi instantiation time is only a big deal when you have large interpreters and a big gob of code to compile. However, if it became a problem, I can certainly imagine inventing something like FastCGI for transform handlers. Imagine this:

Transform application/x-httpd-php */* fastcgi2:///var/run/php/php.sock Transform text/html text/plain fastcgi2://unixserver:3503/lynx Transform text/html application/xsl+fo fastcgi2+spawn:///usr/bin/html2fo Transform application/xsl+fo application/pdf fastcgi2+spawn:///usr/bin/fopdf

346

Ari likes: Rainy weather, socks with sandals, and cute people on the street.

Ari dislikes: license codes, expensive software that doesn’t work right, and websites that use their own password box system.

345

Carrie got to say it first, but, yeah, we’ve decided to be friends & room-mates & maybe on kissing terms, we’ll see, but not lovers. We’ve broken up, moved on and we’ll see where we end up.

It’s not the end, it’s not heartbreak, but it’s happened.

It might seem odd, but it wasn’t a bad day. It was a decent way to start the new year. Things are different.

344

I just spent an hour on the phone with Jessica Witchbaby. I don’t think she knows yet how much more sane she made me feel. It was exactly the kind of connection I needed at that instant. Thanks, hon.

343

Ari likes the feeling of the bubbles running up inside a vacuum flask as it pours, standing on top of hardened snow, and the crunch of toasted bagels.

Ari dislikes damp hands, stale bread, and paper that has been bent. spindled or mutilated.

342

A tiny review: Zack’s so far favored DVD burner is a champ. Damn near silent when ripping, the door opens when you press the button and not two seconds later. It’s fast, it’s cheap, and it seems reliable.

341

Carrie’s home! Server’s up! Life is good!

340

Having taken the load off my server, it seems to be doing okay. I’m seriously suspecting either SMP deadlock issues, or heat stress. It’s damn near impossible to tell since there’s no log nor trace on the console.

I’ve got my backup server acting happy, and I should go get some new disks for it, so it has enough room for a full mirror.

I’m exhausted, coherent, happier, and just want to go work on better things for a while.

339

<quip src=‘lazlo@netrack.net’>Maybe your server needs Viagra</quip>

I said Nah, port 25 gets enough of that as it is.

338

Netrack really does have good service. They just changed which magic option to select to get high-priority support. Now, if Lazlo wasn’t just in a cell-hole…

337

And I am so tired that I just hosed my backup server, too.

I am in such a jolly mood.

336

Rargh!

So the server goes down. Nobody is reachable. CISP, with its 24/7 tech support, only has level 1 techs on until 0800EST. Netrack, with its 24/7 support, has managed to make the priority voice mailboxes dissapear completely, so good luck getting them until … god, Monday? I’ll be calling people’s private home numbers long before that, if I can find them.

All this happens while I am copying files to another machine so I have a hot backup in case this happens. I hadn’t been keeping it up because it’s resource-intense to keep everything in synch. And now it goes down while I am setting it up again.

Going to bed. I hope that tech calls me promptly at 6, because I want to have this taken care of in time to go pick up Carrie at 9.

335

Damnit. My main server went down again. Hardware, I think.

For all y’all trying to get on IRC, try /server 206.168.119.2