Older blog entries for dcoombs (starting at number 66)


Several people have written to me with advice on tracking down my annoying memory-stomping crash; thank you all. The majority have recommended Valgrind. This is something I had already considered, but I've been delaying it since I know it'll be even slower, which actually does cause problems, and other people have told me they've had trouble valgrinding on our system before, presumably due to our rather minimalist distro and heavily patched kernel. I will try it myself soon.

apenwarr had an interesting idea: make every function virtual, where possible. If we're accidentally stomping on objects, adding a vtable at the beginning of every object (or making the vtable bigger) should increase the chances of crashing, and hopefully help localize it. As an extra bonus, this will run only fractionally slower than usual, instead of orders of magnitude slower. We'll see.

Hawksley Workman

Refreshingly original, and completely in comfortable control of his stage presence. He riffed an apocalyptic ode to his water bottle, invoking his new god Naya to rescue a little fish. He took shots from a little plastic bottle of Buckley's mixture (Canadian readers will appreciate this) to ease his ailing throat, randomly claimed the show was indeed sponsored by Buckley's, and introduced himself as Bucksley Workman. His affectations are hysterical, his voice strong and uniquely crunchy, his falsetto smooth. And I haven't even talked about the songs.

A hearty BOOOO to my brother for mistaking the time of an exam and having to miss this.


So Very Boring

Running a gigantic C++ program with Electric Fence is heart-wrenchingly, bone-crushingly, soul-suckingly, watch-glancingly, jaw-droppingly, mind-fsckingly slow. And it's not even really helping me find the crash I'm looking for. Said crash is seemingly unreproducible on any box other than the one that really matters, happens only a couple times a day if at all, and is very clearly a memory stompage that manifests itself in the exact same place more often than not. But where is the stompage? You'd think this would be easier.

Short-term Future

Tomorrow, by which I mean later today, I shall have my appearance altered, I shall do much assorted running around, and I shall see a Hawksley Workman concert.

The other tomorrow, by which I mean Friday, I shall board an airplane.

Long-term Future

I shall pursue a life of garish excess, featuring music, wine, books, adventure, companionship and riches, traveling the world in a modest but nimble watercraft made of handsome spruce and adorned whimsically with ostrich feathers, and ultimately be captured in a tragic misunderstanding and die at the hands of a merciless evil villain sporting the most ludicrous moustache you ever did see, all the while whistling a happy tune.

When Translators Fall Asleep

I have in front of me a multilingual instruction booklet whose Spanish section begins with the title "Instrucciones en inglés".

27 Nov 2004 (updated 27 Nov 2004 at 19:47 UTC) »
On Security

I don't know whether to laugh or cry.

Break My Stuff!

I've finally gotten around to open-sourcing a couple of fun PHP projects I've been working on lately in my spare time. Currently they're only available by anonymous CVS, but I plan to whip up some tarballs soon too.

PlaNit is a weblog aggregator designed to easily host a "Planet"-style site. It currently runs my company's pla.nit.ca site.

NITLog is a simple but fairly flexible weblogging system. It was originally my excuse for learning PHP, but I've been using and improving it for more than a year now, and I plan to keep doing so. I have a few specific ideas in mind for improving it, mainly feature requests from hub.

Both of these are things I started mainly for fun on my NonDirectionalFridays. I could easily have used some other weblog system and jdub's Planet, but I definitely learned more this way, and both projects have become flexible and general enough that someone else might find them useful. So here you go!


Talking to apenwarr yesterday, he lamented how user interfaces always come out wrong. We've been on a specifications kick at NITI for the last year or more, and we've had very good luck producing detailed specs for the functionality of new features and products, and then code is written according to the spec, and it's generally good. Except for user interfaces.

Everybody knows programmers shouldn't design UI's, beceause we don't think like users. But we let non-programmers write our UI specs, we code the corresponding UI, and we give it back to them, and they don't like it, and they're right not to like it. UIs are rather notoriously like that.

Avery's question: Is it possible to write a decent spec for a good UI on the first try? How?

My corollary: Should we even try?

We did agree that UI work is thankfully not very deep. You'll try a newly coded UI, you'll hate it, you'll file 20 bugs, and then a day later they'll all be fixed. It's piddly tedious work, not fundamental design change work. If the first version of any UI is going to be despicable whether or not it had a spec, which itself has probably undergone umpteen revisions, why not skip a few steps and get stuff done faster?

I don't think either of us likes this discontinuity between working on UIs and working on the functionality underneath. We have certainly benefited from detailed specs for the latter, and we would like to be able to effectively specify the former. But we don't like wasting time either.


Everything Moves Real Slow When It's 40 Below

I saw Sam Roberts with Andrew, Peter and Jeff the other night. It was the last show of his multi-year tour, in his home town of Montréal. Goodness but this man knows how to (a) scream, and (b) work a crowd. Much energy, and much volume; I loved it. The singalong bits were well selected; there's something so very appealing about having a thousand fans at a rock concert extolling the benefits of socialism at the top of their lungs. Only in Canada.

I Haven't Eaten Since Later This Afternoon

Primer is an intentionally baffling film. I can't remember the last time I was so confused. Comparisons are being drawn to Pi, but I'm not convinced, other than that it's probably the same audience that will appreciate both. Primer's $7000 budget is naturally evident in the video and audio quality, but I can't complain about how they're used. The framing is precise, the dialog is sharp, and the geeks are definitely geeks. I failed to make any sense of the last 20 minutes, but I guess that was the point. I'll have to see it again and emerge hopefully less, but possibly more, bewildered.


The record must be set straight. There exist certain people, and they know who they are, who insist on spreading the horrible lie that I never sleep. Yesterday, after being awake for three and a half days, I was feeling mildly weary, so I lay down at 5:00 PM intending to have a quick nap. The next time I looked at my clock, it was 7:30 AM this morning and I was late returning my rental car.

It is clearly, clearly not true that I never sleep. I rarely sleep. Thank you.


My brother lives on the 17th floor in residence at the University of Ottawa. The view from his room is pretty good!


I have been chasing ridiculous bugs. It's never anything straightforward; all I get is "the rsync pipe sometimes freezes or does this other crazy thing, but only some versions, and only the second time you run it, but not even always then, and never, good heavens, if you strace it." Reasonably satisfying to actually figure it all out eventually, even if the culprits (accidentally non-non-blocking sockets, and overzealous killing of processes) turn out to be less interesting than the problems they cause.

And if somebody could please reduce the temperature in the office by about ten degrees, that'd be super. Thank you.

On Accidental Sequester

You know those Medeco keys that are all expensive and highly secure? They evidently fail to be as structurally sound as one might like. There is presently a good chunk of one wedged deep in the lock on the front door of my apartment building. The rest of said key remains uselessly on my key chain. This presents certain logistical difficulties, such as not being able to go outside and then come back in. As a thought experiment, try combining this concept with, say, not owning any food.

Visitors are, thus, welcome.


Spiffy-keen, one could say, were one so inclined. This recent key madness notwithstanding, the week in Waterloo with denizsarikaya and sfllaw was most welcome. We variously share a wide range of semi-overlapping eclectic interests, and an affinity for understated humour and bad puns, such that coming home on the train, a random passenger said it was great to hear such camaraderie from us. I guess this means he was either continually blinded by our wit, or he wished we would all just shut up already. In retrospect, I should have asked for clarification.

The Well Traveled Cheesecake

Attention Waterloovians! Sneak into the staff lounge on the 2nd floor of the CECS building, open the fridge, locate the foil-wrapped pumpkin cheesecake, and please enjoy responsibly. It has been forgotten enough times. Somebody needs to eat it.

The Well Traveled Tripod

After my accident in England, and my subsequent purchase of a new tripod, I received mail from TfL saying that they had found my old one, and would mail it back to me for a mere £24.87 sterling. I cobbled together a money order, mostly out of curiosity, sent it off, and have now received a letter saying no no, we can't accept that kind of money order. It is now unclear whether I should bother figuring out exactly what it is they want.

On Bureaucracy and/or Civic Duty

The Ministry of the Attorney General of Ontario has randomly selected my name from a municipal voters list, as a candidate for next year's Jury Roll. They sent me mail, in Québec, to tell me this.

They say I am legally required to fill out the accompanying questionnaire and return it to them, so they can determine whether to add me to their list.

I don't know to what degree this legal requirement applies to people who don't live in Ontario anymore, nor, if I fill it out, whether they could actually summon me back across the border.

It all seems vaguely broken.

7 Oct 2004 (updated 8 Oct 2004 at 04:38 UTC) »

I spent some time yesterday and today making loads of improvements to NITLog, the thing I wrote that drives my home page and my web log. Several other NITiots had been using it on their own and commented to me how sucky it was that the layout was hard-coded into the PHP. Well, they're right. I've split that stuff out so that you can feed it an HTML file and it will replace macros with content. I also took the opportunity to make myself a new layout.

There are still a few more things I want to fix, and then I will give the same treatment to PlaNit, and then I plan to open-source them both.


I am 3.85% older. But my friends got me a muffin. But the muffin played the birthday song. But then I ate it. That shut it up.

Going Home

Flying to Thunder Bay for the long weekend tomorrow. I'm very much looking forward to resting a bit, seeing family and friends, etc.

2 Oct 2004 (updated 2 Oct 2004 at 23:32 UTC) »
On Superhuman Powers

So I'm moving to a new apartment. After much gruntwork, all my stuff had left my old place and arranged itself haphazardly in random piles scattered around my new place. I was dealing with these piles, while listening to music (one cannot unpack without music, unless one is initially unpacking one's stereo), and I decided to run down and grab something from the car. I hit the pause button on my stereo, and, I swear, at that exact instant, the power in my apartment cut out. I thought I must have blown a fuse in an extremely peculiar fashion. Nope.

I looked in the hallway, and the emergency lights were on. I thought I must have blown a floor-wide fuse or something. Nope.

I go downstairs to investigate some random beeping and honking, which turned out to be the fire-alarm panel complaining that it had no power and couldn't save anybody's life in the event of a fire. I start to become impressed with this newfound force I wield. I determine the entire building and the one next door, at least, are out.

I get in the car to drive to NITI to check my email, and notice several traffic lights in the area are also out, and a stretch of stores and restaurants on Sherbrooke are dark. I have apparently knocked out a good chunk of the Vendôme area in Montréal by pausing a CD.

The Moral Of The Story

During periods of light wind and drizzle, I control the world through my stereo. Fear me.

20 Sep 2004 (updated 20 Sep 2004 at 16:57 UTC) »

I've been hacking. I've merged in most of jdeboer's changes, and have been fixing bugs like crazy. His redesign of my protocol is excellent, and most welcome. A lot of the other stuff he did to get synchronization of a full directory tree working is less well executed, and has needed a lot of massaging. (Admittedly, he was in a hurry.) I've come a long way reworking it, but there's still quite a bit to do before I can start adding new stuff to it.

Next on my list is fixing the absolute/relative pathname mess (it's not only suboptimal, it's downright broken). I'm looking forward to adding more pipeliney goodness to the transmission of librsync deltas, integrating the new index file format, making deletes work, fixing conflict resolution, making renames efficient, and so on. Lots to do.


Nobody I asked had any opinions, so Ashkenazy wins, and yesterday I bought his recording of all Beethoven's piano sonatas. I've disassembled a few of my longtime favourites and I love it so far. He's all kinds of dynamic, which is essential with Beethoven, his technical proficiency is legendary, the sound quality is very good (if a little quiet), but most impressive to me are his articulation and phrasing. It's easy to play Beethoven as a jumbled mess (trust me, I do it), but his phrasing is clear, original, pronounced, and always seems to fit. It makes me slap my forehead and say "of course!" which I was not expecting. Lovely. It seems clear that he has the intelligence to suggest what Beethoven might have intended, and the skill to pull it off.

I may also need to get his complete Chopin, which is apparently also excellent. It is mighty tempting.

All I need now is a piano. I miss that.


Note to self: go live it.

57 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!