Take care of yourselves and your friends, everyone.
Take care of yourselves and your friends, everyone.
For years I have saved the September 1996 issue of Air Canada's in-flight magazine, because apenwarr and I, for reasons that have long since become irrelevant, are pictured in it.
This issue featured several articles about the high-tech world at the time, and I now find it highly amusing. There are short articles about Michael Cowpland and James Gosling, back when Corel and Java respectively both held promise. Remember that?
"Many executives are still a little skeptical about the Internet. They believe their companies should be on-line, but they are not sure why." Remember that?
"The word 'travel' appears in more than one million World Wide Web sites, which is daunting enough to discourage even the most intrepid cybernaut from searching for information." Remember that? Google gives me 322 million such sites now, in a relatively non-daunting manner.
"Will e-mail make people more or less literate? More, I believe, but I don't know for sure." Jury's still out, I think.
"Even if Explorer is better than Netscape and the PR more obnoxious than Windows 95's, smart money has it that people will stick to what they know: Netscape." That was back when Netscape had 80% of the browser market share.
Good luck in all your post-monkey endeavours, louie!
I will be in Toronto next Friday and Saturday, and then in Waterloo until the following Tuesday. Anyone who wants to meet up is encouraged to give me a shout.
Tonight is the first meeting of the NDG Dining Gastronauts.
Context: I am wearing frictionless socks. NITI's office has Ikea wood-ish floors.
I am hyper. Hyper people sometimes run. Running people sometimes turn. Turning people with frictionless socks sometimes look briefly like cartoon animals (whappita-whappita) before losing it and smashing their faces on smooth Ikea flooring. People smashing their faces on the floor sometimes dislodge computers and furniture, but fortunately don't seem to break any bones.
Witnesses tell me that the entire sequence was hilarious. I am inclined to believe them.
I went to see a movie yesterday, and discovered something neat while watching the pre-movie slideshow. They have these trivia questions about actors where they give clues next to a pixelized mosaic picture of the actor's face, and with eachclue the mosaic gets a little less coarse and more recognizable as a human face. Hopefully you know what I'm talking about.
Anyway, it so happens that I am rather nearsighted, just like almost everyone else in this industry. I found that an unrecognizable jumble of coloured squares, when viewed without my glasses, looks just like a human face. My brain started filling in all sorts of features (hairstyles, noses, ears) that, I swear, could not possibly have been represented with squares as big as they were using. And subsequent finer pixelizations showed that my brain was almost never wrong.
I flipped back and forth, glasses and no glasses, about ten times per picture, and was amazed how much more detail I could "see" without them. Crazy.
So today I tried to reproduce this effect using GIMP. I took a picture of my face and pixelized it until it was completely unrecognizable. Without glasses, *poink* there I am. Excellent. Glasses on, I tried various ways of blurring the image. Results were disappointing. It looked more recognizable than without the blurring, certainly, but I wasn't getting the same amazing interpolation my brain is apparently capable of.
Why? I don't know. Magic, I guess.
Oh, and the movie was excellent.
Merry Christmas to all who celebrate such things, and good times with friends and family.
I am now the proud owner of a Chicken Chucker, which bears a strong resemblance to my Sanity Gun in terms of size and ergonomics, but catapults little plastic chickens instead of shooting little sanity darts.
Moral of the story: It's a good thing my brother and Mich aren't archenemies with super powers.
My Psyche Begs for Ridicule
I had a dream last night in which I had entered a programming contest, and arrived to meet my teammate and get the computer going. My teammate, wearing a white sparkly suit, matching hat, and big fancy glasses, introduced himself as "Hootie", presumably of Blowfish fame. Having never realized he could code, and being quite unsure my friends would believe me, I grabbed for my camera to take a picture and found that my lens, suddenly made of cardboard, had been thoroughly squished in my bag and was now quite useless.
Moral of the story: Life actually makes more sense when I don't sleep.
I Emerge Triumphant
The crash that had been plaguing me lately is gone. Some unnecessarily convoluted code was writing past the end of a string every time. Electric Fence and Valgrind on a little test program both caught the problem right away; the hard part, as always, was knowing what to make a test program out of.
Fixed by using WvString and removing pointless complexity.
Moral of the story: Let Hootie find the buffer overruns next time.
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.
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.
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.
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.
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.
I have in front of me a multilingual instruction booklet whose Spanish section begins with the title "Instrucciones en inglés".
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.
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.
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.
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!