multitasking, big ideas

I got an empty box delivered to my doorstep this morning, put in my laptop, filled out a form (trying to squeeze into the bottom margin a reminder to get the LCD resolution right this time), called DHL to schedule a pickup at work, then stuck it under my arm and went to catch the bus there.

Work was busy. I talked over those tangled data structures with my coworker Andy for a few minutes when I got in, then called into a two-hour (argh!) conference call about NFSv4 ACLs. Which could have been done in email, in my opinion--in fact, a lot of it already *had* been done in email--I'm not sure why things somehow have to be said in meetings before they count.

Then Andy and I continued our conversation. I think we agree on what to do next. The result will be a smaller change to the current design than was previously attempted, which is probably good.

I had a sandwich (delivered from Jimmy John's) for lunch, and read a little more of David Mitchell's intriguing novel "Cloud Atlas" while I ate.

Then Olga, David and I argued about the design of something else that Olga's working on--something I should probably be taking care of instead of her, but I just haven't been able to get to it.

With the day almost over, I finally got a short start to what I'd wanted to get done first, which was to respond to review I'd gotten to some patches I posted a few days ago.

Still left: I promised to discuss some code (that I haven't read yet!) at a meeting at noon tomorrow. I'll have to try to work that in between Wednesday morning donuts and the meeting itself....

I usually assume that to make any progress on a technical problem I'll need a big expanse of time to immerse myself in the details. But in practice I'm often surprised at what can happen if I force myself.

After work Sara and I met for our monthly book group, discussing Calvino's "If on a Winter's Night a Traveler". I often have the feeling that the other people in this group look for different things in a book than I do. They want to find the big ideas, the significant stuff, what a book says about life in general. I like the details, and like to stay more closely focused on the text.

So they seemed worried about whether "If on a Winter's Night a Traveler" is merely clever. *Merely* clever? Good grief, this one of the cleverest books in existence--we could spend our whole two hours identifying clever bits and not make a dent. It could be fun.

Next month is "China Mountain Zhang". It sounds pretty good, but I'm not sure whether I'm going to get to it. So much to read, so little time.

ascenseur pour l'échafaud, data structures

Sunday night we watched "ascenseur pour l'échafaud", Louis Malle's first full-length fiction movie. "Before that I'd only directed fish" he says, or words to that affect--his previous gig was with Jacques Cousteau! It has a Miles Davis score that everyone was very excited about, though it didn't make a big impression on me. Maybe it's a case of something innovative that's since become a cliché. I found the movie very funny, actually, though I'm not sure that's how it was meant to be taken. The humor stems from something about the characters' steady accumulation of terrible luck and predictably boneheaded decisions.

I spent much of today trying to understand an oddly tangled set of data structures which a coworker modified to improve some our authentication code. In the end I may be convinced that he did the right thing, but I keep thing there must be another way to do this that would confuse me less....

I got some groceries and a loaf of bread on the walk home, Sara made some nice soup, and we watched another episode of Firefly ("The Message", about an old war buddy that meets a tragic end). I cleaned up then stared at the problematic data structures a little while longer.

Snow, furniture, hardware, cinnamon, Miyazaki

After some more hot days, it's back to winter again this week--lots of cold and snow. I'm ready for summer.

My new computer came Thursday, and I had a fun morning putting all the bits together--tinkertoys for grownups! (Or not-so-grownups.) The new machine is small, reasonably quiet (by office standards--it might sound loud at home), and compiles my (minimally configured) kernel in about three and a half minutes.

My old desktop died on Friday morning--when I power it up, LED's come on, fans spin up, but that's it. I was looking forward to keeping it around as a test machine. But Trond gave me his old desktop (of a similar vintage), so I can use that instead. Maybe I'll swap some parts around to see if I can find out what broke.

As long as I was moving all these machines around I decided to move my desk too. I'd been meaning to for ages. I wanted it back at the position it had when I first moved in, against a side wall. I'd move it out to face the door, but discovered that uses up a lot of useful space in the middle of the room and creates a barrier that makes it hard for people to come in and work with me at the whiteboard.

I got my laptop back Friday, having put in my complaint Saturday, received the empty box for the RMA Tuesday, and shipped it back Wednesday. I can't complain about the turnaround time. They wiped my linux installation and reinstalled XP, which I knew was a risk, so I had backups--no big deal--but I don't understand why they needed to do that to fix an obvious hardware problem.

But, worse, they "fixed" the problem by replacing the LCD by a lower-resolution LCD. Initially assuming a software problem, I wasted a couple hours Friday night trying to figure out why I couldn't adjust the resolution, until I finally realized what had happened. Saturday morning I borrowed a magnifying glass from Sara and made some test images with Gimp to confirm the obvious.

It was actually fascinating looking at the pixels closely. You can see the three separate red, green, and blue pixels, and how they're offset from each other, quite clearly.

The support people appear to be totally confused about the variety of panels that were available as options for this machine. They promised another RMA box for me Tuesday. Hopefully they'll get it right this time.

Sara planned to make some pumpkin bread Saturday morning, but realized halfway through she was missing baking soda and cinnamon. The baking soda I found at the convenience store next door, which also had a few spices, cinnamon not among them. What the heck? So she put a cinnamon stick in the coffee grinder instead. The bread was fine--great smell, very tasty, no surprise bits of cinnamon sticks as far as we could tell. Does it dissolve in the batter? Melt in the oven?

We took some of the bread with us to juggling in the afternoon, then had dinner with the jugglers at a Chinese place that replaced a Middle-Eastern place (Kabob Palace) that we'd liked quite a bit. The new place turns out to be pretty good too, so we'll live.

We made plans to meet at Paul's later to watch Miyazaki's "Laputa", then went with Ajit to Borders. I picked up the second edition of a kernel book I already have in the first--but it's pretty good, and my copy's out on indefinite loan, so what the heck--and an English translation of a "Exercises de Style", which I already have in the original--but it's the kind of book whose translation must require quite a bit of creativity, and I've heard the translator's very good--and a book on SELinux, which I've been thinking I should learn more about.

At Paul's we ended up watching Ivy instead of the movie, but that was fine. Ajit gave us a ride home a little after midnight.

shopping, crime

One of the Michigan Daily blogs recently pointed out a list of classic Crime Notes from years past, which includes my favorite--I didn't know anyone else had ever noticed it--"Boyfriend reports missing girlfriend, later found." My only proof it ever existed was a clipping I kept, now taped to my office door. Now I know that it was published March 14, 2000.

After some more time googling around, trying to figure out whether the hardware I'd picked out for my new work desktop made any sense together or not, I finally threw up my hands and hit the "order" button. I think it'll work:

  • Intel Core 2 Duo E6600 Conroe (2.4Ghz, 4MB shared cache, 1066MHz FSB)
  • ASUS T3-P5G965 Intel G965 Barebone (built-in Intel graphics, Gig-E, 300W power supply, etc.)
  • Kingston 2GB (2 x 1GB) 240-Pin DDR2 SDRAM DDR2 667 (PC2 5300) Dual Channel Kit Desktop Memory Model KVR667D2K2/2GR. That was the most confusing part. I *think* I got it right.
  • Western Digital Raptor WD740ADFD 74GB 10,000 RPM Serial ATA150 Hard Drive: is 10,000 rpm overkill? Or too noisy? We'll see.
  • The cheapest DVD burner NewEgg sells, just in case I need it some day.

The main goal is to compile kernels as quickly as possible for under $1000. And I wanted Intel graphics, since Intel's the only company producing free/open-source video drivers these days. Not that I care much about graphics, beyond the occasional wobbly window.

I stopped by Trader Joe's and picked up some groceries on my way home. I got complimented on my nifty new panniers again.

Our monitor at home has been acting a little odd recently, so maybe I should look into a replacement before it just falls over and has to be replaced in a hurry.

weekend at home, hardware woes

Except for getting stuffed full of good (mostly indian) food Saturday night at a party at Sara's coworker May's house, I basically spent the weekend at home, reading and dealing with a computer computer problems.

One is the laptop. Its screen has a particularly high dpi (1400 by 1050 on a screen that's just 12"), which is why I wanted it, but also why there was a nearly two-month delay delivering the thing--no doubt some factory promised yields of these panels that they couldn't deliver. And now it's causing problems--the bottom part of the screen is distorted and shaky to the point of being unreadable. For a while it was intermittent, and could be temporarily fixed by wiggling the combination hinge/swivel connecting the panel to the machine, but Friday night it became constant, so I backed up a few odds and ends and then called Lenovo to have them pick it up and repair it.

I would have preferred to just open the thing up and take a look myself--maybe the fix will be as simple as reseating some connector, and that'd save having to wait for the repair--but as long as it's under warranty I guess I should be more careful.

My other problem is that the various laptop delays have made me painfully aware of how out of date my desktops at work are. So I spent some time reading up on the latest hardware. Even for a computer geek it's always a bit of a pain figuring out all this stuff. The web helps, but it's tough digging up reliable information amidst all the babble and the marketing.

yellow, overload

My new panniers, which I ordered from REI last week, came yesterday. Given past embarassing pannier failures, it's silly that it took me this long to get around to finding replacements.

I ran across some Ortlieb panniers at an REI in DC and fell in love them for their sheer beautiful yellowness. And they had an obviously better attachment mechanism and looked much more durable--just what would appeal to me after my previous panniers fell my the bike occasionally and developed holes in the bottom after a few years.

But that's one of the classic sources of second system syndrome, right? You choose the replacement with all the problems of the previous system in mind, forgetting all the stuff that worked, which you never had to think about.

And the old panniers did have more convenient access: the new ones are these tall bags that you have to fold down and then fasten a buckle over, where the old ones were basically just open baskets. The old ones were also a heck of a lot cheaper.

So that's what I was thinking about as I opened the package Wednesday morning and tried to figure out how to mount them. Did I just spend entirely too much on something that wasn't really going to work for my purposes (mainly just grocery shopping)?

A couple days and a major grocery haul later, I'm no longer worried. Opening and closing them doesn't take any longer, they've got tons of capacity, they're really easy to take on and off, they're firmly attached to the rack, and keep the load closer to the bike, so the load's much more stable and easy to handle when they're filled. And they look way cool. The checkout lady at Busch's even complemented me on them as she helped me shovel my groceries into them tonight.

Next to figure out what to do about my no-longer-waterproof rainjackets....

I've got way too many projects going at once at work, and my strategy for choosing which to work on is terrible. What to do?

Stupid Stupid Cyclist!

Monday night coming home from the grocery store I made Stupid Cyclist Mistake #37: making a left turn across two lanes, I took a gap left for me by a big van in the near lane. Oops--I *know* that's always an awkward position to put yourself in.

I thought I'd checked the far lane, but of course there was a car I hadn't seen. We were both going very slowly and we both braked with space to spare. It was no big deal. But it was embarrassing: I should know to stop and check before crossing a lane that I can't actually see (and from which nobody could see me). Duh.

I also managed to skid my back wheel a bit today when it started raining on my ride to North Campus for a seminar. I didn't hear or feel the skidding itself, just felt the bike fishtail very slightly as I braked. Actually, it was kind of fun, and not as dumb (or dangerous) as the lane-crossing thing. Still, the fact that I was braking that hard suggests I wasn't planning ahead as far as I should have given the freshly wet road.

I didn't make it to the seminar, either, thanks to the combination of the sudden change in weather, some confusion about where the building was, and my having left the trip to the last minute.


assassins, saved, hardware troubles

Saturday night we saw a student production of Sondheim's "Assassins", which was a pretty interesting musical, and well done--it didn't seem like the kind of music that would be easy to learn. Sara should have gone--she's the big murder-ballad fan, and the only person I know (besides her dad) who can sing "Charles Giteau" by heart--but she doesn't often like musicals, and was feeling a little tired at the end of the day.

Sunday I did some puttering around on the computer. The bad connection on my laptop's screen is getting a little worse. Lenovo has a fairly nice hardware manual that, for each part, has diagrams showing how to replace that particular part. So when the problem gets to the point where I can reliably reproduce it, maybe I'll just take a look at the swivel/hinge there and see if there's something like an obvious cable that just needs to be reseated. I'd rather not send it out for warranty service till it's the only hope.

Tonight we watched "Saved!" over dinner, a recommendation from my sister. It's a teen comedy (complete with requisite climax at the prom) set in a "Christian" high school. I didn't love it, but it was cute. It had its moments. Sara thought it was like spinal tap. I don't know what to think of that comparison.

El Topo, vfs locking

I spent a long time Friday afternoon with my coworker David trying to work out how to solve a complicated problem with NFSv4 delegations.

A server can give a delegation on a file to a client, which is basically a promise to a client that

  1. Nobody else is changing a the file
  2. Before somebody else is allowed to change the file, the client will be consulted first and given a reasonable amount of time to acknowledge that it has lost the delegation.

This improves performance by allowing the client to rely on its own cached information about the file instead of having to constantly poll the server to ask if something's changed.

The challenge with the kernel NFS server is that it isn't in control of the data it serves to clients--it just exports preexisting filesystems, which other applications on the server may also be using. So any time we implement something like delegations, we have to make sure it works in cooperation with the filesystems we export.

In this case that means that when a local application opens a delegated file to modify it, for example, we have to block that open until we've recalled any delegations.

We've actually got that part working, more or less. The complicated piece is that the delegation is supposed to cover the metadata of a file as well as its data--so the client also needs to be consulted before we allow the file to be renamed or unlinked. We've been ignoring that problem.

It sounds like a small thing, but it's tricky to avoid race conditions (what if we're giving a client a new delegation at the exact moment that someone is renaming the file? How do we make sure the right thing happens?), and performance regressions.

In the end I think we came up with two solutions--one very complicated, whose correctness I'm less sure of, and one correct, but that requires adding a new field to the inode. The inode is the in-memory structure that stores basic data about a file, and it's advantageous to be able to cache as many inodes as possible in memory, so making it even a little bit larger is something we don't want to do unless we're sure it's the only option.

I worked pretty late, then met Paul and Sara at nine for a sushi dinner in preparation for the midnight showing of "El Topo" at the State theater. We killed the two hours between dinner and the movie by spending some time in Sara's office trying (mostly unsuccesfully) to troubleshoot some of her computer problems. Sara went home, and Paul and I joined a young, rowdy crowd outside the State waiting to get in to the movie.

I was curious about El Topo mainly because the director, writer, star, and composer, Alejandro Jodorowsky, has written a few french comic books that I'd read, and it's a consistent source of fascination to me that someone so odd would somehow manage to make his living turning out such odd work. There's a possibly apocryphal story about his being briefly put in charge of a big budget production of Frank Herbert's "Dune", to star Salvador Dali among others. The idea that so much money could be invested in such an obviously nutty project--even if it was really only considered for a little while--gives a person the encouraging feeling that maybe the world is quite a bit more absurd than people would sometimes have us think.

So in a way it was a little disappointing that the movie turned out to be pretty coherent. Good, even. Who knew? Not that I've actually made up my mind to say that I actually *liked* it yet....

Paul gave me a ride home and I fell asleep around 3 or 4. I woke up in the morning to find Sara had made a lovely sushi-based breakfast complete with a japanese sweet omelet thing. Yowza.

food, heat, clothing

The weird black mushrooms worked just fine with our pseudo-sechuan green beans, so dinner last night was good. I read the last 20 pages or so of Beloved before I went to sleep.

This morning I did my laundry, got into work noonish, and managed to make some small progress. I stopped by Eastern accents on my way home, thinking of getting a hot chocolate, but it was 60ish and sunny, so instead I got some mango juice and a red bean bun. Yum.

For dinner we had acorn squash, brocolli, and rice, in front of another Firefly episode.

The bottom of my new laptop's screen is smeared or wobbly on startup sometimes. Rotating the screen back and forth fixes the problem, so I suspect the swivel/hinge connecting the screen to the rest of it has a bad connection somehow. Ugh. I think the warranty's good for another year, so I guess I can afford to wait a few weeks and see if it gets better or worse.

On the other hand, the bottom shelf of our refrigerator (the one that holds in the drawers) finally got fixed. It cracked under the weight of too much produce several years ago, and we only got around to complaining about it yesterday.


Subscribe to RSS