Older blog entries for kwoo (starting at number 23)


Not a lot of work on Blister as of late. I did make the decision to shift from being CGI-based to FLTK-based, as I didn't want to hack together state saving for CGI (even if it isn't hard, it still isn't fun).

Learning about FLTK is great, though -- it's exactly what I want from a GUI library. It made more sense in the first hour than Motif did after a full day with the Motif Programming Manual (O'Reilly and Assoc.).

I've also been playing around with parrot again, now that my laptop is running OpenBSD/macppc. There are a few little issues, but so far it's still fun (as opposed to being annoyed by strange inconsistencies on Mac OS X).


Okay, so I'm an idiot. In my thrashing about trying to find a compromise between availability and usefulness in languages for Blister, I completely forgot about C++, which will save me a lot of time writing string and memory handling code.

In my own defense, here is the order of languages I considered:

  • Common Lisp (clisp, specifically)
  • Scheme (gauche or guile)
  • ML (O'Caml)
  • Objective C (using the Foundation framework)
  • Objective C (using frameworks of my own creation)
  • C

I should have considered C++ before C -- after all, I don't know of one non-embedded platform that lacks a C++ compiler. I do have a known fetish for complexity (it's often what keeps me interested in a project), but writing a lot of unnecessary code that has already been written by other (much smarter) people is just pointless.

Not to mention that the object-oriented nature of C++ fits the problem domain much better (keeping track of plants and collections of plants).


Got a little more done on Blister. Nothing much, just some string-handling and the unit tests for it. I still need to work out a proper unit-testing framework, but I might just settle for a function or three to print out test summaries or just use good old diff(1).


Is there a naming convention for C functions in the open source world for destructive functions (that modify their argument(s))? I've been using the n-prefix (as per Common Lisp) and there's nothing wrong with that, but I'm trying to make the code as readable for others as it is for me.

Server-less CGI

One person e-mailed me regarding my claim that lynx (the text-mode browser) supports CGI without a webserver present. Just in case there are more people wondering what kind of drugs I'm on, grep the lynx_help directory in the distribution for lynxcgi, and that should answer the basic questions.

I still can't remember the name of the Mozilla-derived browser that does CGI on its own, though.


Am I the only one that got the spam for Hong Kong fax lines? They claimed they "found out about my company on Advogato.org". Admittedly, it's my own fault for posting my e-mail address here, but if they found my e-mail address, they should figured out that spamming the denizens of Advogato might not be such a hot idea.


Backed off the strict Mac OS X requirement for Blister. Indeed, I will be doing the UI in the GUI that I know best -- HTML 3.2. The benefits to making it a CGI application are arguable, but if someone really wants to run it stand-alone, there are at least two browsers I can think of (lynx and one Mozilla-derived one I can't remember the name of) that allow running CGIs without a web server present.

With that decision comes the decision to avoid dependencies on too many external things. Unfortunately, this means I can't count on folks having an Objective C compiler available, so development will be in ANSI C, using only ANSI and POSIX functionality.

Really, this means I've got a case of NIH, so I started writing CGI-handling code first. I find it somewhat amusing that although I haven't coded in straight-up C for a long while, I seem to be better at it than I was before.


My new personal diary is at http://slashdot.org/~kwoo/journal/. Say what you will about Slashdot, but they do have a nice journal interface, and I don't want to clutter the recentlog here with entries about gardening.

Badge of honour

A '1' from mglazer is a badge of honour to me. Especially since my Jewish step-family all think he's a nitwit, too. I ran the thesis of a couple of his entries by them to see what the average Jewish-Canadian household thought of his views, and they were appalled. It could be that my step-mothers best friends and their families are all Muslim. Three generations of Jews, two generations of Muslims, two generations of Christians, myself and my partner (both non-religious), and a dog gathered for a winter holiday dinner on Christmas day. I'll bet seeing that would send the poor boy's head into a tizzy.

Webspace problem solved

Thanks to rillian, my webspace problem is solved. I still had an account on one of his machines, and he was kind enough to offer the use of it. Thanks, Ralph!


I've been doing some playing around with the UI for Blister. I'm currently working to make it a little less cluttered, but I may have to bite the bullet and learn about tabbed interfaces. They may be easy as heck -- I don't know, as I've never used them before.

chalst's list'o'folks

I noticed that I am on chalst's list of folks (his 17 January entry), but I have no idea what the commonality between us all is. I'm trying not to burn too many cycles figuring it out, but I am definitely curious.

Someone mentioned a lot of GNOME-y folks there, but I don't think that's it -- I'm more of an Aqua/WindowMaker/fvwm fan and don't use GNOME for much. I also saw the suggestion that we all got '1' scores on our diaries from mglazer. That could well be. :)

What is it, chalst? Or if you only wish to give a hint, is the order of the list important?

Web space woes

Does anyone know where to get good web space without a credit card and without a huge setup fee? I'm unemployed, broke, and looking for web space I can access with scp or ftp-over-ssl. Access to CGI would be great, but not necessary. Please let me know if you have any suggestions.


Okay, I lost it and did some coding. Nothing to show off yet, but I will put a preliminary version up when I get some web space figured out. I did create an entry for it (called Blister) here, though.


If you take medication that suppresses endorphins, it becomes really hard to get to sleep if you have insomnia. Massages are a lot less pleasurable, too. If you have a choice, take the med just before you go to sleep. My advice to the world for the week.


I'm feeling the urge to switch back to Mac OS X again. It's just painful not to be able to use my larger monitor when I'm at home, and using OS X seems to add at least an extra half hour to my battery life when I'm not.


I haven't gone out of text mode for almost two weeks. I think I'm going to give it two more. We'll see.


I'm finally going to be getting a bit more sleep, and better quality, too. The best part is that I can see a way to move forward from where I'm at, and that's a tremendous relief.

A new year

Had a quiet New Year's Eve at home. Had a slightly less quiet New Year's Day at a party put on by my neighbours. Filipino food is nummy.


I have been incredibly lax on the code front lately. It just doesn't seem to be something I enjoy as much as I used to. I'm still (inactively) following Parrot and a couple of other projects, but code of my own just isn't getting done.

That being said, I deleted all of my half-done projects from last year. There were almost thirty of them. I can't say I'm sad to see them go -- they will no doubt be replaced by thirty or so half-done projects come a year from now.

Trust metric

Having read the most recent article and comments on the trust metric, I am reminded that the whole point of the certifications is lost on some people. I'm happy with the certifications I've received, as each and every one is right on target (depending on who you ask, I'm either an observer or apprentice -- certainly nothing higher at this point).

I have given some thought as to the matter of certification aging, and I think that certs should degrade with age. If I write a couple thousand lines of code that is used all over the open source world but proceed to do nothing for the next two years, am I a one-hit master, or am I an observer who did that cool hack? My thinking is that the latter is more correct.

In terms of keeping the general public informed about what one is/has been up to, that is the responsibility of the individual. If I don't want to claim credit for something, I don't have to -- but I certainly can't expect the community to acknowledge me for whatever I won't acknowledge myself.

I'm rapidly forgetting my point, so I'll just leave it for now...


Randomly hacking about in Squeak. I'm spending most of my time trying to see how things are implemented behind the scenes, and all in all, it's rather impressive. The more I look at it, the more I like it.

That being said, being in Squeak seems to drain the battery on my laptop an an absolutely astonishing rate. I'm going to see if developing in GNU Smalltalk and porting the result to Squeak (at least for non-interactive code) might be feasible, especially if I'm going to be on the Skytrain (Vancouver's LRT) a lot.


Discovered a few nifty solitaire games for the Cybiko. They will come in handy for when Squeak drains my laptop battery. :)

Solaris woes

Why is it that one has to install almost the entire GNU toolkit to get anything done with Solaris? Their 'tar' sucks, as do their default shells. 'make' is almost unusable, and I find it perverse to ship a Unix system without at least a C compiler. Thank the gods for ftp.sunfreeware.com.

14 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!