Older blog entries for motb (starting at number 8)

Nine to five

Decided that consulting involves too much chasing people for money and too little working on interesting problems. As a result, I'm looking for a good old nine to five sort of job. There are a few good possibilities locally -- with any luck, one of them will come through. If anyone knows any good companies to work for in the Vancouver, BC, CA area, please let me know.

Five to nine

Speaking of nine to fives, like many of us here, it'll be a challenge to be out of bed and to work on time. There is something too tempting about wiling away the night hours reading or coding. If anyone has any good tricks for how to get on a healthy cycle and keep it, please share.


I've been working with C++ again for the past few days. Let me tell you, I really miss some of the conveniences I find with Ruby, Perl, and some of the other scripting languages. I'll get used to it, though. It seems to be the language that gets one jobs these days, and it's not actually difficult.

What does the world need?

A few of the projects I'm working on are a medical office management system (in Ruby), a literate programming tool (also in Ruby), and an e-mail client (in C++). On one hand, they're all fun and educational. On the other hand, I feel like I'm just duplicating what's out there a million times over.

What does the world need? What isn't well-covered in the various open source offerings? I'm horrendous at GUIs and graphics, but pretty good at most everything else. If you have any ideas, please let me know.


Decided it's easier to just update my homepage. Check that out instead. There will even be some code there, as soon as I document it properly. There's a description of what's to come now, though.

I'll still be following Advogato, but rather than cluttering up the recentlog with my (mostly) useless chatter, I'll put it where only the truly masochistic have to see it. :)

Battleship bug

The bug seems to be in the PRNG routine (random_fire()). I'll get to it eventually, but a couple of my projects have taken some time recently.

New project

One is a reimplementation of most of the POSIX.2 utilities in O'Caml. I know it's about the last thing the world needs, but it's forcing me to learn a lot more of the language.

I've got a few of the utilities done already (the really easy ones), and another couple underway (chmod and csh). I expect to be done sometime late next year at this rate. If I go completely mad and decide to implement a basic *NIX-style kernel, it'll likely be sometime the year after next.

In terms of releasing the code, it'll start off in little chunks of related functionality (chmod, chown, chgrp is one such chunk), and eventually wind up in one tarball. We'll see which winds up getting released first, but at this point it's a dead heat between chmod/chown/chgrp (which are dead boring to work on) and sh/csh (which are a bit more fun, due to ocamllex and ocamlyacc).

Web woes

I'm definitely letting codegeek.org and codegeek.net go. I am sick and fscking tired of having to spell them over and over again to the same people. My English pronounciation sucks (even though it's my first language), and people never hear me right. At least with membersofthebored.com they never ask me how to spell it.

That being said, I'll now only have three or four websites to do nothing with, rather than half a dozen. For some odd reason, that makes life feel a little simpler.

Happy Chanukah

Yes, I know it's almost over. The yearly Chanukah dinner at my step-relatives' place was a little late this year. As usual, I overdosed on latke. As usual, I had dessert anyway. Nothing makes a Jewish stepmother proud like eating 'til you burst.

Windy city

Windstorm kept me awake until 06:30 or so. Due to the possiblity of power outage, I had three quarters of the house unplugged, and was working on my laptop. The good news is that I didn't lose power or have a surge. The bad news is that I now have a kink in my neck from the lack of laptop ergonomics. Ibuprofen is my saviour.

I can see clearly now...

The LCD monitor is working great. I can now stare at a screen for more than an hour or two without my eyes falling out. The refresh rate I've got it set to is just nauseating -- it almost seems like a kernel build (OpenBSD) takes a minute less. Or it could be that the novelty drives off a minute of boredom. We'll find out in the next few weeks.

Bugs in strange places

There's a bug in the battleship (bs) game shipped with OpenBSD. Seems like it's a creeping off-by-one, but it only seems to happen when I'm not paying attention. I'm going to squish this tonight or tomorrow.

Bugs in the usual places

Been a while since I've said anything about pcm (pretty crappy MUA), and there's been good reason for that. The development language has switched three times (from Perl to Scheme to CommonLisp to O'Caml), and the bulk of it is frustratingly boring to work on, especially as I have another working mail client that meets my needs, and only sends ISO-2022-JP messages to the right people.

I think it comes down to being something I'll never finish -- just a way of comparing solutions to common problems in different languages. Kind of like my CGI-parsing routines (now in thirteen different languages, with PostScript being the next one I have planned, should I ever find my PostScript manual).

Bugs in amusing places

Saw the movie Swordfish a night or two ago. Pretty lukewarm movie -- they could have used a reality consultant or two. My favourite part was when they spelled algorithm as "algorhythm". A multi-million dollar movie makes a totally preventable typo. I'm trying to think of some smart-ass remark, but I'm having trouble beating that.


members ofthebored.com is down for now. I don't know what I'm going to put there. I just got sick and tired of what was there. Should I actually ever finish a project, I'll probably put a link to it there. Other than that, it can rot, for all I care.

I also got notice that codegeek.org and codegeek.net are up for renewal in a month and a bit. Since I gave up codegeek.com (thanks in part to NetworkProblems, err, VerySenile), I don't feel much of an attachment to those two anymore. Methinks it's time to find something else that amuses me.

On "getting it"...

I finally realized what makes types so important in ML, as opposed to being the simple convenience that they are in C. That only took me an aeon. I think Perl ate away my brain. Someone give me a little green box...

New toy

My nineteen inch monitor died on me a month or two ago. I just replaced it with a fifteen inch LCD screen. I love it. I am definitely sold on the LCD for desktops thing -- the sharpness is far better than any CRT I've seen.

Bugginess at Apple

I finally figured out why my Minds@Work Digital Wallet won't mount on the Mac (MacOS 9.2.1) at work. It seems that the Launcher and Login programs interfere with the mounting of USB mass storage devices, for some unknown reason. If you've got the same problem, here's how to get it to mount -- quit the Launcher and force quit the Finder. All of a sudden it will mount for you.


Annoyingly, the person who replaced me at Pibase seems to be refusing to do work on any machines that I installed (which is currently all of them, to the best of my knowledge). While this is good for me (more consulting hours), the overall attitude behind it still bugs me. Getting phone calls to ask if I ran the web log analyzers by hand is annoying, too. It's not like crontab -l is hard. Or cd /var/spool/crontabs ; grep -i webalizer * | less.


Almost feeling at home in the new place. At least that is making progress.

A quick update...

No, I'm not dead. I'm not doing much on the open source front, either. Reading the endless licensing flamewars has left me feeling pretty unmotivated. Got an idea for a new project, but don't see the benefit in starting a new project that will soon be left half-way done. The "take my toys and go home" urge has hit a few times, but the reality is closer to "abandon my toys and go home". Rewriting Unix in O'Caml is sounding like a good way to spend my spare time.

That being said, has anyone been able to get efuns working under O'Caml 3.01 or 3.02? I think it will work if I fall back to an earlier version of O'Caml, but that's not quite the elegant solution I was hoping for. I don't know enough about O'Caml's module and interface system to fix the build.

Not working for Pibase anymore -- seems the CFO doesn't like to let people know when their pay is going to be late, and is afraid to talk to someone who isn't a doormat. I've been picking up hourly consulting, and it meets my needs. I can make rent in a day's work, and that will leave me with more time to study.

Speaking of studying, I've been mulling over doing it for credit again. I've been assured by my brother and a few friends that I'll be bored silly at a community college, so I'm looking at UBC as a potential place to go. If anyone in the Vancouver area knows a university college (college with decent transfer credit to university) that doesn't pander to the lowest common denominator, please let me know.

Musically, just checked out Bad Dreams, the second album from Swollen Members (via BattleAxe Records). Reading through the shout-outs in the liner notes, it seems that Mad Child grew up in my old neighbourhood (North Vancouver), or at least had most of his friends there. If you like rap that is (usually) well thought out and literate, give it a listen.

2 Sep 2001 (updated 2 Sep 2001 at 21:58 UTC) »
So I'm not alone!

dan, you just made my day. I thought I was the only one who still owned a copy of CLtL.

Certs -- can't just buy 'em at your local 7-11

mobius, the update in my entry should have been placed after the rest of the material on the subject of certs, as it was supposed to update that to "it's all good". Points well taken, though.


I have begun to rewrite pcm in... *drum roll* Perl. After a short internal battle about using the right tool for the job versus toying with it endlessly as a way to improve my Scheme or O'Caml, I decided that I actually want to use the darn thing sometime soon.

Among the improvements already going in are a sane plugin system (everything is a plugin, so I don't have to keep a separate dtable for them), the ability to add new commands without having to deal with the rest of the sources (comes free with a plugin system), and using Term::ReadKey to accept commands, and having plugins get the data from the user themselves.

In short, where pcm was once a clone of mailx, it is now a copy of something resembling a really limited mutt.

2 Sep 2001 (updated 2 Sep 2001 at 10:07 UTC) »
Certification strangeness...

Update: Thank you for your support, mobius -- I'm happy to find that I'm not the only person who finds interest in diverse computing environments (which was the main part of my earlier entry, so I'm guessing that's your interest). If that's worth a Journeyer cert, then so be it , and thank you for letting me know where the cert came from. I would imagine that the trust metric works the other way, too -- that future certs will be given to put me in the category in which I belong. Hopefully raph tuned that side of things, too. [end update]

It seems that mobius has been having a go at playing with raph's adjustment to the trust metric.

No offense, mobius -- but if you certed me to Journeyer from Observer as part of an experiment, please drop that cert, and certify me to whatever level you wish to based on my contributions to the community.

I've never been one to ring my own bell, but while I have made contributions to the community, I don't think a bunch of bug reports and patches and a couple of crappy projects make one a Journeyer. Or do they? Part of the reason why I finally created an account here (after seeming aeons of lurking) was to discover to what extent a random codegeek is known in the community.

I look forward to that discovery, and more. But please, undeserved certs do more harm than good. For all anyone knows, I could be the most obnoxious troll and cunning liar on the planet.

Unofficial bug report

A proper one will follow, raph. It seems that if a tag (I noticed the behaviour with an href, but the rest are likely candidates, too) gets wrapped in the diary submission form, it gets interpreted as not being a tag. I just about wound up with the HTML of a link being posted, rather than the link. I'll have a look through mod_virgule (if that's even the right place to look -- I'll find that out soon, I guess) and see if I can understand the code, and send a patch if I can.

Update: I think I have found the right file (nice_htext.c), but it's time to go meet up with friends for a farewell for a friend who is leaving town. I'll look at it tomorrow. The patch will be against virgule 1.1, the latest available on SourceForge. [end update]

Further update: Agreed, raph. Also, thank you for clearing up (for me) which version of the code actually runs Advogato. Next time I will know which project to patch. [end update]

2 Sep 2001 (updated 2 Sep 2001 at 01:56 UTC) »

Messing around with pcm (pretty crappy MUA), a crock of a Perl script that I wrote when the MailTool in OS X started encoding my outgoing English messages in ISO-2022JP. Given the choice between trying to figure out Objectionable C and writing one from scratch, the latter option seemed easier to wrap my brain around.

Having second thoughts on the development language, though. I'd like to redo what's been done in O'Caml, but I miss Perl's nifty regular expression enhancements. Another thought is to write it in Scheme (because I can't find a CommonLisp environment that works under all of OS X, OpenBSD, Linux 2.2 and 2.4, WinCE 1.1 (or is that 1.01? Japanese Casio Cassiopeia with a Hitachi SH-3, greyscale screen, copyrights up to 1997) and 3.0 (Compaq iPAQ with a StrongARM 1110), and small enough for the core to fit in 8 or 16 Kwords (12-bit), so I can port it more easily to some hardware I'm working on.

A close friend is leaving town soon, so I must go meet her -- more later.

Searching my archives for a copy of the sources to KSI Scheme. I seem to remember it as a really tight implementation (or at least very lightweight), one that could possibly work well in an embedded environment. I'm also interested in having a look at the X18 (search Slashdot, was posted a few days ago), even though I know next to no Forth. With such a tight bond between language and hardware, it sounds like a good potential platform for my little projects.

Whatever language I decide on will become my new passion, to replace Perl in my language quiver. After seeing the plans for Perl 6 (Visual PerlBasic, as far as I'm concerned), I know that I don't want to put a lot of effort into learning the new territory there.

Methinks I'm going to go do a bit of study on Forth. Don't I wish I had enough money to develop my LispOnAChip idea... *sigh*

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!