What do you do when someone you respect and have some affection for says something that is an honest statement of opinion, but among the most callous things they could say? There’s only a handful of time in my life when I’ve stayed mad at someone for more than a few minutes. The past 48 hours is one of them.
351
I find myself getting more and more protective of my time spent in queer space. I’m tired of being a beige. I definitely feel isolated. I can’t wait to pay off the business so I can travel even a little bit. I’m getting there.
350
Bill’s sick, deadline’s now Friday, my flu disappeared about 2am last night, I slept all afternoon yesterday, so I stayed up ‘til 4 watching Anime and halfheartedly working. Now I’m at work, and life is good.
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…