Ex Bibliotheca

The life and times of Zack Weinberg.

Thursday, 28 February 2002

# 10:30 PM

I'm exhausted. I keep waking at 7 AM no matter how late I went to bed the night before, and I've not been to bed before 1 AM since, ugh, last week. Bad sun, stop coming up so early.

(I like the long afternoons we're getting now, but not the early mornings.)

Today was the checkpoint presentation for my CS260 project. You can read the outline and slides if you're interested. (Please offer suggestions on the open questions.)

-traditional is dead, and no one spoke so much as a word against its passing. I dance on its grave.

Tuesday, 26 February 2002

# 10:30 PM

I have a new video card, which can drive this monitor at 1600x1200x24. Now I can have two full columns of text side by side, and 78 rows deep. The only downside is that Powermanga is now unplayably slow. Oh well, time to find a new game. Maybe I'll go back to Nethack.

Sent in a patch to kill off support for pre-standard C in GCC. Let's see how many people scream.

Off to grab some munchies, then to San Francisco to see Jeana dance.

# 6:30 PM

Seth was kind enough to try his hand at designing a algorithm I need for my flip viewer. I shall describe the problem briefly. Suppose that each column of this table represents a version of a text file.

a a * * * % % @
b * c c a * * #
c c d d c a 0 *
d d   e d c d 0
        e d e d
          e   e

The challenge is to slide the columns up and down and insert gaps so that each (notional) individual line has its own row. It comes out looking something like this:

          % % @
a a           #
b * * * * * * *
        a a 0 0
c c c c c c    
d d d d d d d d
      e e e e e

Unfortunately, Seth's algorithm has cubic time complexity, which makes it useless for anything much bigger than the above example, and I don't see an easy way to get it down. Another nail in the coffin of the hoped-for working prototype by Thursday. It is definitely time to use the Wizard of Oz technique.

In the department of things that are obvious once you've thought of them, I realized today that the way to get a coating of wax off a spoon is to pour boiling water over it.

# 5 PM

Had fun at Amira's - great dancing, so-so food, but I wasn't really paying attention to the food. Jeana stole the show.

Come home and discover that the build I kicked off just before leaving had died 11 minutes in due to an unrelated buggy patch that someone else committed. Grrr.

Monday, 25 February 2002

# 4 AM

Spent all day attempting to hack together the "flip viewer" that I've had a picture of inside my head for about a month, using Python's GTK wrapper. (This is the same thing that generated 27MB of HTML when I tried to do it that way.)

I have to say, they sure make it difficult to do simple stuff. Maybe it's just that the PyGTK documentation is crap, but you would think it would be straightforward to, oh, make a text widget scale itself according to what the text inside needs... nope. No way. Appears to be totally impossible.

Oddly enough, I remember having exactly the same complaint about CSS not so long ago.

I'm gonna wash dishes and go to bed; and in the morning I'm gonna resort to drawing pictures of this thing with a sketch program, because there's no way I'm going to get a working prototype in time for the presentations on Thursday.

Saturday, 23 February 2002

# 3:30 PM

Borrowed a huge (21") monitor from work to replace the 17" one I've been using. This thing can theoretically handle 1800x1440 resolution at 76Hz refresh. My video card is not even remotely up to that; I get a choice between 1600x1200 with 8-bit color or 1280x1024 with 15-bit. Right now I'm trying the former, but thinking the latter might be better; color depth helps lots of stuff, and the fonts are kinda small right now. On the other hand, I can't get two side-by-side xterms in 1280x1024. Maybe it's time to get a beefier video card.

It's quite frustrating that XFree86 can't handle changing the color depth on the fly, the way it can the screen resolution.

Friday, 22 February 2002

# 5:45 PM

Upon further experimentation, Mozilla not only crashed, but took the X server with it, leaving me with a fried display; no choice but to reboot the machine blind. And then when it came back up it decided it was time to run filesystem consistency checks, which are sloooow.

I think it's time for me to go to bed.

# 5:30 PM

not entirely unexpected, but frustrating

I attempted to feed a 27MB (generated) HTML file to Mozilla, and it spun for ages chewing up 100% CPU and wanting more and more RAM. Finally shot it when it got to 300MB of allocated memory. And, keep in mind, that 27MB was without any of the actual content; it was purely the table structure I'm going to need. (The content, as ASCII, is another 32MB.) Same thing happens if I cut out the heavier bits of the table, getting it down to 8MB.

The notion of doing this project entirely as a web-application suddenly became a lot less plausible. Feh.

# 2:45 PM

By dint of removing most of the structure, I managed to get my 27MB generated HTML file down to 651K, which was small enough to load it into Mozilla and verify that the concept I'm working with is sound. However, it was still painfully slow, and it'll only get slower if I try to load more data into it (like, any actual text). Time to read up on GTK and friends, sigh.

Drivin N Cryin's version of Leaving on a Jet Plane is profoundly surreal. Just what I need right now, sleep-deprived and hopped up on caffeine and low blood sugar.

The sun comes up at 6 AM these days and wakes me up whether I want to or not. I've already got blackout curtains on the window but that's not good enough. I may have to tape black construction paper to the glass.

Thursday, 21 February 2002

# 8:45 PM

I investigated the electrical situation a bit more. Downstairs, we have the power feed from PG&E which comes in and gets split into two channels. Each channel goes through a fifty amp breaker, then fans out to six separate circuits, each with its own meter and thirty amp fuse. One fuse per apartment, plus four for the building's common areas, or something like that. What I'm sure of is, there's six thirty-amp circuits hung off of each fifty-amp channel. Do the math: thirty times six is 240 amps, way more than the channel capacity.

I suspect the wiring is not actually rated for thirty amps of load; originally it would have been fifteen- or twenty-amp fuses downstairs. Over time, as the smaller fuses blew out, people stuck in thirty-amp fuses so they wouldn't have to replace their fuses ever again. But even at fifteen amps per circuit, that's still more like ninety amps per channel at max load.

I considered replacing all the fuses with fifteen-amp circuit breakers (you can get breakers designed to fit plug-fuse sockets) to find out which circuit was causing the overload, but the breakers cost about $10 a pop. I'm not spending $120 of my own money on something that's really the landlord's problem.

Coming at it from the other end, if I were to run all the lights, the fridge, the stereo, the computer, and the printer at once, which is not unheard of, that would be about a twenty amp load. Then there are other appliances which I don't use as often: the electric heater, for instance, can draw twelve and a half amps all by itself. (The building is supposed to be heated with miniature gas wall furnaces, but there isn't one in the bedroom.) If anything, I have fewer electrical appliances than the average: I think I'm the only tenant who isn't sharing his apartment with someone.

Conclusion: there probably isn't a short anywhere, it's just a case of the electrical supply for the building being severely under-specified for the demand. Maybe I can beat the landlord over the head with these figures and get them to upgrade... and maybe pigs will fly, too.

# 5 PM

Just got back from a game of Scrabble with Shweta. When it's just the two of us, the scores get ridiculous. This time, the combined score was six hundred and sixty-three points. Notable words appearing included DIATRIBE, QUARTIC, HEROIN, VOXEL, and AGOG. One four-by-three region of the board had eleven of twelve spaces taken (and we would have liked to put an X in the twelfth, to make EXPOSED, but AXVICE isn't a word).

Nathaniel wonders what the maximum possible Scrabble score is. I suspect it's intractable to calculate, since it depends on the dictionary and the exact sequence of moves.

Going to bed now.

# 4:30 PM

pleasantly surprised

I got a survey in the mail from the Democratic (Party) Congressional Campaign Committee. I was expecting this to be thinly disguised propaganda, with questions skewed so there was only one way to answer them even if you disagreed with what they were really asking. But it's not like that. My major objection is that they keep varying the choices you're given with. For instance, I would like to register only mild objections to the USA's withdrawal from the Kyoto Protocol, but my only choices are "Strongly Opposed" to and "In Favor" of the withdrawal. Also, I would like to be able to say "Neither of them" to "Which party do you trust to do X" (for several different Xes). And there's not a word about campaign finance reform, which is disappointing.

But overall it's something I can fill out and send back in with a clear conscience. I'm not going to give them any money, though.

Wednesday, 20 February 2002

# 10:30 PM

the marvels of modern science

I had to go to the dentist today to get a cavity filled. Most people, including me, expect this to be a lengthy and painful procedure which leaves you unable to talk properly for several hours. Not so: it was a 20-minute, nearly painless visit. Apparently the latest thing in dentistry is vaporizing decayed tooth with a laser instead of drilling it out. This is faster, more reliable, and less invasive. Oh, and far less painful, to the point where it isn't necessary to get shot up with local anaesthetic (hence no numb puffy jaw for the rest of the day.) After the dentist got done with the laser, he filled the hole with some sort of epoxy and set it with a small ultraviolet lamp; again, faster and less painful than the old mercury amalgam (and no risk of chronic mercury poisoning, either).

I really like this guy. If you're in Berkeley or Oakland and need a good dentist, check him out; he's got a somewhat silly-looking website with contact info.

too many records redux

Another month, another trip to Amoeba—the one on Telegraph Avenue, this time. Sadly, they did not have any Luther Wright and the Wrongs albums. I bought:

  1. The Razor's Edge (AC/DC)
  2. Change (The Alarm)
  3. Raw (The Alarm)
  4. Lucky Town (Bruce Springsteen)
  5. Drivin N Cryin (Drivin N Cryin)
  6. The Black Album (Metallica)
  7. Factory Showroom (They Might Be Giants)
  8. Let's Face It (The Mighty Mighty Bosstones)
  9. What Up, Dog? (Was (not Was))

You will note that I bought a real AC/DC album this time.

Factory Showroom contains the wonderfully disturbing tracks Spiralling Shape and The Bells Are Ringing. It's worth buying just for those two (the rest is also good, or the part I've listened to, anyway).

Aside: Why on earth is <U> a deprecated HTML tag when <I> and <B> aren't?!


prosewitch complains about being shy and feeling guilty about being shy, etc. etc. and I read the whole thing thinking "gee, is she secretly me?" because I have all the same problems (except for the talking to professors bit). For instance, here I am feeling like I'd like some company and to get away from work; and I know I could pick up the phone and call any of several people, and hang out; but I probably won't, because that would be, y'know, extroverted.

Bunny-puppy, yes, I know.

# 4:30 AM

Wrote some more Shadowrun spells: static and dynamic magnetic fields, more sleep magic, and more Oliver Sacks-inspired illusions.

Tuesday, 19 February 2002

# 8:30 PM

It's been raining off and on for the past week; today it seems to have settled down to rain in earnest. I like a good gentle rainy day. The soft gray light makes everything seem friendlier, somehow. The mist brings the horizon closer. Things nearer than the mist somehow seem sharper, probably by contrast. Noises are muffled.

I walked through Sproul Plaza on the way back from class and saw that someone had decided to dump bubble bath liquid in the fountain for a joke. It wasn't real impressive, though.

today's dose of philosophizing

It occurred to me earlier today that the forms and procedures of a criminal trial have interesting resemblances to magical ritual. Two things in particular come to mind: the goal being to determine an absolute Truth (who is guilty of a crime) by inquiring of witnesses, and the unusual powers given to the judge as representative of the state. (Under normal circumstances, ordering that someone be locked up for the rest of their life is itself a criminal act.)

This is not surprising when you consider that most modern criminal procedure is based on protocols developed in solidly religious—mostly solidly Christian—cultures and times. Most religions do include the concept of absolute truth, and the spectrum from religion to magic is well understood in anthropology.

With my speculative-fiction hat on, there are two ways one could run with this observation. One, let's call it the "Ken MacLeod direction", would be to explore the nature of a legal system that didn't have any basis in magic or religion. Instead, it might take an approach similar to scientific method, with experiments done to probe the scene of a crime for what happened. More emphasis would be placed on preventing crime than punishing it. Punishments would focus on compensating the victim, probably with money (weregild, anyone?)

The other possibility, the "Jo Walton direction", would be to explore a legal system overtly and explicitly based on magic principles. Here, you'd investigate a crime with rituals intended to extract truth from suspects and witnesses, and punishments might have a direct effect on the state of the criminal's soul.

# 3 AM

The power went out. When I turned the breaker back on, it buzzed at me and flipped off again. Wasted some time trying to figure out where the load was. It turns out that the two master breakers control the front and back halves of the building, not the top and bottom floors like I'd thought, so I bothered the wrong person. Then I gave up and turned the power back on a second time; this time it seems to be staying on (knock wood).

We had a rash of this last month, which I'd figured was due to everyone running electric heaters, but now it's warmer and people aren't doing that. Maybe something else is wrong.

# 2:30 AM

So I'm walking down the street and I see that it is street-sweeping day. Of course not everyone has moved their cars out of the way of the sweeping truck, so the guy driving has had to avoid them and miss long chunks of curb. All these people will come back to find they've been slapped with tickets. This is a lose any way you slice it. People have trouble remembering which day of the month the sweeping happens, they resent paying the tickets, and the streets aren't even clean.

How would your friendly local mad scientist solve this problem? Perhaps with a sweeping truck that could move cars that were in its way. Here are three designs:

  1. The most obvious, and perhaps the most satisfying, is to add a giant robot arm to the side of the sweeper. When a car is in the way, the driver uses the arm to pick it up and hold it in the air while sweeping where it was. Unfortunately, the truck will need to pick up the next car while it's still where the previous car was, so it needs more than just one arm, and needs to be able to hand cars from one arm to another without putting them down. This is probably impractical.
  2. We could use a conveyor belt instead of an arm. The sweeping truck would be shaped like one of those wedge robots from Robot Wars, and cars would be carried up and over its top while it sweeps underneath. The trouble with this design is it forces us to reshape the entire truck, and the new shape isn't very practical for the truck's primary purpose (sweeping streets). Also, the cars on the conveyor would block the driver's vision.
  3. But why does the whole truck have to fit into the parking lane? We could put the sprayers, brushes, and vacuum on a robot arm. This arm could be very simple; all it needs to do is extend to the side of the truck. Now we can fit a second arm to pick up cars in the way of the brushes; since the whole truck isn't going into the parking lane, it doesn't need the range of movement that the arm in the first design did, nor do we need to pick up multiple cars. Perfect!

Sunday, 17 February 2002

# 3:45 PM

zack's too-many-ingredients scrambled eggs recipe

  • 2 eggs
  • 1 large tomato
  • 1 large potato
  • ½ large onion or 3 green onions
  • About 10 mushrooms (optional)
  • About 4 olives (optional)
  • Garlic cloves to taste
  • A hunk of hard cheese

Chop up everything except the eggs. The potato, onion, olives, and garlic cloves should be cut fairly small. The mushrooms and tomato should be cut large, because they shrink when fried. Cut the cheese to whatever size suits your fancy. Break the eggs into a bowl and beat them smooth.

Heat a pan and grease it with olive oil. Fry the vegetables, adding them in this order: potato, onion, mushrooms, olives, green onions, garlic, tomato. When the tomato is cooked, throw in the cheese and stir until it begins to melt. Then pour the eggs over the entire mess, stir a bit so that it is evenly distributed, and put a lid on the pan.

Reduce the heat and allow everything to steam for a couple of minutes; then remove the lid and scramble everything up until the eggs are thoroughly cooked. Serves one. To scale up, keep the proportion of tomato, potato, and onion constant, and add about two-thirds the number of mushrooms, olives, eggs, etc. per additional person.

book review

Go right now and find a copy of the Riddlemaster of Hed omnibus, and read it. No, you don't have anything better to do today.

Friday, 15 February 2002

# 10:30 PM

For the large majority of people out there with browsers that don't understand bleeding edge XHTML, here's the MathML rant in plain HTML. I've also adjusted the MIME type of the original to improve the odds that your browser will understand it.

Nothing's quite as much fun as showing up at work to discover that no one else has come to work today, because the company is making everyone take a day off, to save money.

Well, maybe it's as much fun to show up at Jack London Square to discover that the knife shop you remember from two years ago is no longer there, and in fact the entire building has been torn down. According to the barkeep in the itty bitty waterfront bar I asked questions in, the knife shop moved to Brentwood. The only Brentwood I can think of is in Los Angeles. Is that the one he meant? I have no idea.

Oh well, I got an omnibus of the Riddlemaster of Hed trilogy, so the shopping trip was not a total waste of time. Now for some dinner.

# 6:20 PM

For your entertainment and edification, a rant about MathML.

# 12:20 AM

the best thing about standards is there are so many to choose from

Well, in this case, the best thing about standards is they often have completely brain dead mandated semantics. Take the humble #line directive. Its purpose is to let a programmer adjust the apparent file and line of the code being compiled. It takes a filename parameter. You would think that it would use the same syntax as the other directive that does that, #include. But no, the C standard mandates they have different syntax. Well, maybe. As is common with the C standard, the text can be interpreted multiple different ways; and if you ask the committee informally, two different members respond with contradictory answers, both with solid arguments.

Meantime, there's code out there that assumes that #line works like #include, and no one has shown me code that assumes that they don't. So I'm making GCC treat them the same way. It turns out that this requires major surgery; not because it's intrinsically hard to do, but because you'll never notice the difference unless you use filenames or #line directives containing nasty characters (like newline), and other bugs pop up if you do that. So I can't validate my fix without fixing all the other bugs as well.

(That is, on Unix you'll never notice the difference. On Windows, you definitely will, because Windows uses backslash (\) for its directory separator, and most C programs treat backslash as meaning "the next character in this string is special.")

Thursday, 14 February 2002

# 5 AM

Emergency laundry is done. Now to take a shower and run off to the NTL meeting. I hope we're having edible food this week.

# 1:15 AM

existential infinitely recursive guilt

What do you do when you want clean sheets but you don't have time to go to the laundromat and wash your sheets? (The washing machine downstairs cannot handle sheets.)

Well, one obvious thing is to go buy a new set of sheets, so that you have two sets and can just swap the dirty set out. However, when I went to do just that, I discovered that Ross carries no sheets which (a) contain no synthetic fibers, (b) are properly sized for my bed, and (c) are not made in Pakistan.

I'm not sure how much I should care about that last. My knee jerk reaction is, I don't want to be supporting Pakistani industry when a fair chunk of the horrible things that have happened in that part of the world in the last fifty years are directly the fault of their government. My slightly more considered reaction is, it probably wouldn't be a country run by dangerous reactionary extremists if it had a twentieth-century economy (never mind twenty-first), and therefore buying legitimate goods (i.e. not drugs) from them is probably a Good Thing, since it will inject hard currency. My reaction on zooming out a bit is, of the $15.99 that the sheets cost, probably only about $5 is going to wind up in Pakistan, and most of that is going to make some plutocrat type richer, which doesn't help any. And my reaction to that thought is, it's basically impossible to buy anything made of cloth without supporting some plutocrat or other.

One could go on in this vein forever, and that's not the way to live. However, take a look at this rant from Transmetropolitan: I Hate It Here:

We live in a monoculture.

What does that mean? Well, go out to your street corner. You'll probably see a Long Pig stand, SPKF on a screen somewhere, an Angry Boy Dylan's Gun Store...

Go out onto a street corner in London and you'll see the same thing. Same in Prague. Same in São Paulo...

This is the future. This is what we built. This is what we wanted. It must have been. Because we all had the fucking choice, didn't we? It is only our money that allows commercial culture to flower. If we didn't want to live like this, we could have changed it any time, by not fucking paying for it.

Is what Spider's saying true? Here we are, living in his past...do we have a choice? And if we don't, what does it say about the world we live in?

I bought the Pakistani sheets.

today's cooking lesson

I have fettucine, I have green onions. I think, hmm, fettucine alfredo would be nice. But I don't have butter or milk; and alfredo sauce is basically heavy cream. What to do? I do have a whole lot of cheese. Hmm, maybe I can just melt the cheese over the pasta? Well, if you've ever done anything much with cheese you know you can't "just melt" it, it turns into a sticky mess, then it becomes glued to the bottom of the pan and burns.

The solution, at least in broad outline, is obvious once you think of it: Dump a cupful of water into the pan first. Then the cheese does not melt so much as dissolve, giving a thin broth that doesn't stick to the pan. Unfortunately, if you render it down to the point where it is suitable for use as pasta sauce, it starts sticking again.

I'm not sure what the right thing to do at that point is. I did manage to get most of the sauce out by pouring all the cooked pasta into the pan with the sauce and letting it soak it up. Unfortunately the cheese would rather stick to the pan than the pasta. Further experimentation is needed. (Or I could just read a cookbook... nah.)

Wednesday, 13 February 2002

# 3:30 PM

I needed to do emergency laundry, went down to the basement, and discovered that the washing machine's cold-water hose was leaking all over the floor. Called the washing-machine company, and was initially told that they didn't have any machines at that address, what was I talking about? Perhaps the owner of the building had bought the machines outright? For a horrible moment I thought they might be correct. I've previously been told by the owners that they were not in any way responsible for the washing machine, but I wouldn't put it past them to lie outright.

It was rapidly cleared up once I produced the machine's bar code number; I think the customer service woman misheard the address. I've also been assured by the owners that someone will show up and clean the laundry room (which is filthy) Real Soon Now, but they have said that before. I am willing to give the washing machine company, which is a national concern with a good reputation to maintain, the benefit of the doubt here; not so the landlord.

# 1:30 PM

Two very strange dreams. In the first, I was getting a haircut, except that instead of hair I had big fat green plant stems growing out of my head. I remember being rather disturbed by this and having the hairdresser assure me that it would go back to normal when it dried out. Then she set up some mirrors so I could see the top of my head, and there was a centipede crawling along between the plant stems. At this point I woke up in a cold sweat.

In the second dream, I was preparing to go on a dogsled race, or maybe it was just a long trip. I was packing far too many books, and having to take them out again. One of the books had come unglued and split in half and I wasted a great deal of time trying to repair it. In the end I went off on the dogsled without any books and was convinced that I would be lonely and bored all the way. But then someone who called herself an "ice dryad" came out of the woods and kept me company so that was okay.

Tuesday, 12 February 2002

# 11:30 PM

Shifted January to the archives, only two weeks later than I should have.

# 11 PM

Today in class, we were invited to critique user-interface toolkits we have used—as in, have written software using. Most of the code I've written has been batch-mode command line applications, so I don't have a huge amount of experience here. (Which isn't to say that user interface design for a batch-mode command line program is either unnecessary or trivial, of course.)

However, I do have a criticism to level, which is: A GUI toolkit should make it easy to say what you mean. For instance, consider the overall page layout of this blog. The specification, expressed in English, would read something like this:

...Below the title and subtitle, there shall be two columns. The left column is to have a yellow background, and small sans-serif text. It shall be only as wide as the text inside requires, plus some padding on all sides. The right column shall take up the remainder of the horizontal width of the page, stretching to fit. It is to have no special background or font selection.

I have still not figured out how to express that in HTML and CSS. The sticking point is the "only as wide" bit. You can say "N pixels no more no less" or "X percent the width of the page", but as far as I can tell you can't say "size this according to what's inside with no stretch."

After class I went to the engineering library and printed out five papers which seem to be relevant to my project. I could have kept going; those five came from the first two keyword searches I ran. I think five is enough for one batch, though.

The library has cute software for tracking how much printing you do and charging it to your copier card. It's named after the world's first known lighthouse, Pharos. I'm not sure why.

Monday, 11 February 2002

# 4:30 PM

Remember the lightsaber spell? I've now got a revised version, along with nine more, on a grimoire page. Share and Enjoy.

# 4:50 AM

I think I'm going to do more of my reading assignments in cafes from now on. I'm done with all the reading for next week already. The past few weeks I've been stuck doing it the night before the class, or even the morning of. Now I just have to write up my presentation for Thursday, which should be easy.

I was hoping to have some more progress on the User Interfaces project, but although I've had a bunch of ideas none of them have made it out of my brain and onto a hard disk yet. Maybe tomorrow.

When I make pasta, a disturbing amount of the cheese winds up stuck to various plates, bowls, pots, etc. rather than being eaten. A pity.

Oops, I left out the href on one of the hyperlinks in the last entry.

Sunday, 10 February 2002

# 2:15 PM


Friday was unmemorable. Work, mostly. I found a bug in half an hour after someone else had been stuck on it for three days. I hope this maintains my reputation as a miracle worker in the face of the bug that I've been stuck on for three weeks now.

Saturday, went to the Alternative Press Expo at Fort Mason in San Francisco, with Shweta and Nathaniel and Patrick Farley. That was fun. One barn full of genuine artists, as opposed to the ComicCon experience of a couple football fields worth of The Man with a few genuine artists scattered around the edges. Here's some nifty things found in the barn: Peko Peko, Last Kiss, Shades of Green, K.O. Comix, XXXlivenudegirls. (This last is not what you might think! It's self-described as "a scrapbook of bad choices." Extremely sharp broken glass edges, proceed with caution.)

Patrick was on a panel called "Online Comics: Telling stories on the web" with Tristan Farnon, Scott McCloud, Justine Shaw, and Derek Kirk. The panel itself was nothing to write home about, but go check out all the above hyperlinks.

APE goes on today, but I have too much work to go again.


Yeah, I dreamed that I saw Dali
With a supermarket trolley
He was trying to throw his arms around a girl
He took an open top beetle
Through the eye of a needle
He was tryin' to throw his arms around the world
-- U2 "Tryin' to Throw your Arms around the World" Achtung Baby

Well, I dreamed that I was sitting in a bar, listening to Bono explain in great detail how neither he nor any of the other members of the band could stand any of the tunes on Achtung Baby anymore, and this was why they never played them in concert. Waking up, I wonder if that's true. Unfortunately I cannot remember if they really didn't play anything off AB when I saw them back in October, and the official band webpage, which should have set lists, is a shining example of category 3 bad web design so I can't find them. (Why are rock bands' web sites so often like that?)

Friday, 8 February 2002

# 4:45 AM

So I needed to write a script to walk back in time through the GCC source repository until it started miscompiling this test case I've got, but I didn't want to start now, I wanted to start back in 2000 sometime. How do you do that? The CVS client won't take anything convenient like a simple count of days since 1970...

... but it turns out that you can write -D "4 days ago 2000-06-24" and the "4 days ago" bit will modify the "2000-06-24" bit. That's good enough. The script is now grinding merrily away. It takes longer to update the working copy than it does to compile the result, but it's going to run overnight anyway, so I can live with that.

Off to bed.

Thursday, 7 February 2002

# 10 PM


Today I got up, looked out the window, saw the threatening clouds, and thought "There have been threatening clouds all week, and every day they've burned off by two PM; I don't need waterproof clothing today."

So, of course, today it rained. I did have a relatively waterproof jacket, but my shoes are soaked through.

Interestingly, this morning there was a thread in rec.arts.sf.fandom about fiction that does and does not have "creationist" assumptions embedded in it, with the works of Ken Macleod suggested as a prime example of the second category. (They are also uniformly excellent books. -ed)

What's this got to do with the weather? Well, my first two paragraphs up there have got a creationist assumption embedded in them, by the terms of the thread—the idea that it rained today because I didn't wear my rain boots finds causality where there is none, and (by implication) ascribes consciously malevolent humor to the weather, which is not alive. From there, it's not much of a leap to an actively participating trickster god, and from there to a creative one. Consider Ifni from David Brin's Uplift series, who is a consciously worshipped deity of the perversity of the cosmos, and in some contexts described as the chief servitor of God Almighty. (She's said to determine the course of luck by rolling dice, which I bet is a deliberate nod to role-playing games.)

Now personally I don't mind leaving a few gods in my universe, but it's always good to examine assumptions, eh? And different assumptions make for new, different stories, and there can never be too many new stories.

bureaucracy update

I am now $620 poorer and officially enrolled in CS 260. The Dean of the College of Engineering looked at my form and asked me when I'd graduated from Columbia; turns out he went there too, just barely before I was born.

There were some kids ahead of me in line at the UC Extension office who were trying to get the cashier to let them pay the exorbitant fees next week after their "refund checks" (tax refunds this early?) came in. The cashier was not sympathetic. They bailed out of the line and stood around griping at each other. I suggested post-dated checks to one of them, but didn't stick around to see what the cashier thought of that idea.

Wednesday, 6 February 2002

# 8:30 PM

Stayed up until 4 AM talking about our Shadowrun campaign with Shweta. It was loads of fun; unfortunately, now I'm gonna be tired all day.

I've edited the lightsaber spell a bit, it was too wimpy and too draining.

Sumana comments on a previous entry:

I realized upon the third reading that he did not mean to speak directly to a person named "Furrfu."

Well, of course I didn't! That was what the link on the word was for, to explain the meaning of the word...

Tuesday, 5 February 2002

# 11:30 PM


I go to hand in my Concurrent Enrollment form and am told by the clerk that it must be signed by the head of department—fine, I'd forgotten—and the dean of the School of Engineering. They didn't make me do that last semester. Grumble.


For no good reason, I present the lightsaber as a Shadowrun spell.

Category: Elemental Manipulation (Light)
Duration: Sustained
Target: 4
Drain: +1(S)

This spell creates a light beam of finite length from the caster's hand, which may be wielded as a blade weapon so long as the spell is maintained. It does Force+3(S) cutting damage, ignoring all armor except armor specifically designed to be reflective, which works normally. Critters (including metahumans) resist damage at normal Body; objects, at half their normal damage resistance. The blade can be blocked only by another such blade (always) or an astral barrier (if it wins a standard barrier-defeating contest, using the spell's Force).

You need an appropriate swordfighting skill to use the blade effectively. Good idea to spell-lock this one...or bind it to an anchoring focus, if you know how.

The beam can be any color you like. Double-ended blades or other custom shapes (yes, you can have a light-scimitar) require modifying the spell formula.

# 6:15 AM

Once again, why am I still awake?

Quote from my summary of another HCI paper:

It does not matter to a discussion of modelling techniques whether the model communicates with the system by sockets, Lisp funcalls, or carrier pigeons.

Furrfu, you would think people who write published papers should be able to tell what is relevant to the subject and what isn't.

# 5:45 AM

Feeling a bit better now, well enough to go to work. Thank-you to Sumana for the get well note. (Hmm, I should add anchor points to the markup here.)

I've finished my brainstorm list for ways to improve cvs annotate. Please read and comment.

Monday, 4 February 2002

# 4:30 AM

Okay, I'm definitely sick. I've got no appetite, a sore throat, and even less will to do actual work than usual. But I did manage to write up half of a brainstorm list for ways to improve cvs annotate. That'll do for this evening. I think I'll make myself hot milk with cinnamon, and go to bed.

Sunday, 3 February 2002

# 3:30 PM


Last night's dream was the classic fear-of-falling nightmare, except for the trappings. I was in the elevator for the building I lived in my freshman year at college. I pushed the button for the eleventh floor, which is where my room was, but I missed and pushed the button for the thirty-first floor instead. The building, mind, only had fourteen stories plus an attic. But the elevator didn't care, it kept going up through the roof - stopping exactly sixteen stories above, hanging in mid-air from a giant construction crane and swinging wildly. Oh, and did I mention it turned into one of those old- fashioned one-person cage elevators at this point?

Usually at this point in a fear-of-falling nightmare you do fall, and then you wake up. This time, the phone in the elevator rang; I managed to answer it, and it was the construction crew whose crane it was, telling me that they were going to lower the elevator back down onto the roof. Which they did. They were all standing on the roof eating lunch. They gave me a sandwich and apologized for having left the thirty-first floor button in the elevator. I decided I'd take the stairs back down. Then I woke up.

Can't remember the last time I had a nightmare. I don't get them much. When I do, it usually means I'm sick.

urban density and the environment

The East Bay Express has a feature article this week on Richard Register, who is a controversial environmentalist architect. He's controversial because he advocates very high density cities. The idea is, if you take the same city and squeeze it into a smaller volume you can restore to nature all the area formerly covered by sprawl. Furthermore, high density enables profitable mass transit, which means the people living there don't need cars, which puts another dent in the environmental impact. He is a student of Paolo Soleri, who invented the arcology (bet you thought that was pure science fiction).

As an expat New Yorker I very much like this idea. It rubs a lot of people the wrong way though. I think this is because they haven't had the experience of living in an actual high-density city. They assume that all the unpleasant features of living in a car-centric city would be made worse by higher density (i.e. lack of parking, traffic jams, obnoxious neighbors, obscene rent) but don't realize that a phase transition occurs when floor-to-area ratios get high enough for mass transit to work.

# 5 AM

Yesterday, I shifted the last few items from Sumana's place, including the mattress, which had to be tied to the roof of my car. In the process I at last came to understand the difference between a reef knot and a granny knot. I bet you'll stare at the knots on that page for quite awhile before you see the difference.

Shweta compared my CS project to the Prime Radiant from Isaac Asimov's Foundation series. It's a good analogy; the Radiant was a device for exploring a complex database (the Seldon Plan), getting all sorts of different overviews in varying levels of detail, stepping back or forward in time, etc. The only difficulty was, it was controlled by a direct brain ↔ computer interface. We don't have those yet (although people are working on it.)

(↔ is supposed to be a double-headed horizontal arrow. Maybe this one will work better: ↔)