Older blog entries for bribass (starting at number 9)

It's been (coming up on) three months since I last made a diary entry. What follows is an attempt to catch things up.

Real Life(TM)
As of the first of August, the company I work for has moved from the dreary double college town mecca of Moscow, Idaho to the wonderful city of Bend, smack in the middle of Oregon.</sarcasm> But, I'm finally settling down in my new place. It does feel good to be out of academentia, though.

Well, two more trips down to Denver, and quite a bit of work, but things are going well on that front. Also, I seem to have fallen into the role of telephone adminstrator (read: actually voluteered for it) at our new building. And it is a new building. We've got a beautiful view of the Deschutes River as it flows through downtown Bend from our second story windows. (There are times that this becomes problematic. My desk faces one of these windows.)

Obligatory Autoconf Rant
I've been having fun these past few days integrating a program into our build system that we hacked up to suit our needs with our Sun Microsystems contract. The only problem is that it uses a very home grown build system (complete with machine generated (non-automake) Makefiles. Add to this the fact that two of the executables in the suite are built 95% from the same source files (over multiple directories), but with different preprocessor symbols. So, each file has to be compiled twice, with all the objects of the right flavor being linked together into .a archives. We then combine the .as into the final executables. What's more is the fact that it actually works. (At least the upstream authors of this program had the good sense to have a bang-up configuration file format that keeps all path names (aside from /tmp) out of the executable. At least it's not a total loss.)

My coworkers seem to have developed a healthy respect for me and my abilities to bend Autoconf to my whim. As I said when I relayed the news that the above program was tamed:

  • "If I ever say something is impossible, don't believe me."

I haven't gotten too much further on "Resurrection". It's just that I want to do a fair amount of rearchitecting of the internals of NJS, not to mention bring it to within a semblance of ECMA-262 3rd Edition compliance. Oh, and a bit of new functionality while we're at it. Slow has been a great help, looking at things from a slightly different perspective. (That, and the OpenBSD libc has caught three bugs in my code that I never would have found otherwise. (/me remembers never to use realloc for growable strings.))

<words type="famous last">I hope to have 0.3.0 out Real Soon Now.</words>

/me notices how long it's been since I've made an entry. Here goes:

Had fun this past week on a buisness trip. I had the job of verifying the installation of one of our products at Sun Microsystems in Denver, Colorado. Not much actually went wrong during the actual time I spent at the site, but getting there was another matter. Allow me to enumerate:

  • No real problems at the airport, but the car rental agency in Denver gave me a Kia Sephia. This was a car that couldn't accelerate to save it's own life. Couple this with the fact that it appears that Denver area drivers are ignorant of what a speed limit is. (There were places where I was doing 10 mph above the limit, and yet people were still passing me left and right.)
  • I get to the hotel I'm staying at (in Louisville, CO, a suburb of Denver), and go to check in. There's no trace of a reservation, even though I have a reservation number from the national reservation hotline. Panicked calls back to the office revealed nothing. Found out the following day that it turns out they had booked me in Louisville, Kentucky. &grumble;
Other than that, it was a very productive trip in that I got a large chunk of the thing installed.

I managed to push out new revisions of wml, fortune, and entity packages. Knocked off about eight or so bugs. Not too shabby.

Geez. I'm practically no further on NJS than I was last time I wrote an entry here. I need to make the time to push "Resurrection" out the door RSN.

Well, it's official. I'm now "the Autoconf guy" (aka "the build bitch"). Had fun yesterday printing out the dvi's of the Autoconf toolchain. They serve double duty: first, they provide a reasonable source of knowledge about the tools; and second, the mass of the bound version makes an effective tool to bludgeon myself with if I ever get too sick of Autoconf.

I just glanced at my hours for this week, and it's turned out that I've spent the entire week doing nothing but Autoconf configuration for all of our products. (Where did I place those manuals? I feel the need for some bludgeoning.)

I have decided on a code name for the release of 0.3.0: "Resurrection". (Seems fitting for a project that hasn't had any public activity for about 18 months.) Haven't been able to get much else done, though. I'm looking at releasing 0.3.0 in about a week and a half (sans Murphy).

Finally got alphacentauri up and running. Solaris is slightly more amenable once gcc is installed. Slightly.

I decided to take the plunge and updated my main server to potato ("yes-its-really-frozen-this-time"). The only painful part was downloading 250 megs over a 56K modem. Took me three nights to download it all, but thanks to apt, the only problem I encountered was due to bind's config changing locations.

Autoconf, et al
I've come to the conclusion that Autoconf and friends were written by a sadist. That and libtool is braindead. (It's no wonder that the Debian libtool hackaround uses "-D__LIBTOOL_IS_A_FOOL__").

I've also decided that I hate imake equally virulently. Perhaps slightly more. After all, imake is really only useful when your tree is dependent on X11. Otherwise, it sucks large asteroids through micropipettes. Two quotes seem appropriate:

  • "All software sucks, only the degree to which it sucks varies."
  • "It's kinda like a jet engine: it sucks in one end, and blows out the other."

This morning, we recieved a Sparc from Sun so that we'd have a test platform before we send our product down to them. Set it up, and lo and behold, there's a problem with the root filesystem and we don't have (and can't guess) the root password. <sarcasm>Fun...</sarcasm>

We finally get the root password, and I proceed to move in. Download all the GNU/GNUish tools we need (autoconf et al, bash, ssh, and gzip (to unpack them all)). I go to compile gzip, and I am reminded of (another reason) why I dislike Sun: No cc. Can't even compile the darned tools. &grumble;

At least I got to christen the box: alphacentauri. Seemed fitting, somehow.

Got JIG-generated sourcecode to build finally. (It helps if generated code not cause compilation errors because of the generated part.) Things are looking good for a 0.3.0 release middle of this month.

Slow got interviewed by Linux.com yesterday, and the interview is up. I'm mentioned in passing (about halfway down, "one fellow" is me...), which is pretty darned cool. I hope this interview gives Entity a real boost.

Of course, this also means (in Slow's words) that I have to do it, "or be marked a liar for all eternity."

Haven't posted an entry for a while, here's what's been happening:

<sarcasm>I just love Solaris.</sarcasm> Things not in the right place. A braindead Bourne shell for /bin/sh. Oh, and the Java VM for Solaris is the only Sun VM that doesn't support JVMPI.

Being the most proficient person here at work w.r.t. Autoconf, et al (read: the only one to have gotten over the learning cliff), I am now (de facto) responsible for the build systems on our products here (except those still using imake (blech)). Which brings me back to Sloaris' /bin/sh. (Or maybe it's the fact that on Linux /bin/sh is bash. Whoever came up with that idea ought to be hung by the most sensitive part of their anatomy. Come on, /bin/sh is supposed to be brain dead.)

On a slightly different tangent, I got called in on a discussion about licensing one of our products. After all, we Debian developers are quite well known for being License Nazis. Thinking about the GPL, patents, and the multitude of interactions is enough to give one a headache.

I always knew why I liked reading Debian lists with a threaded GUI mailreader: Select Thread, Delete. Voila, instantly raises the S/N ratio of many lists, including d-private as of lately. :)

Just looked on freshmeat, and saw that I'd gotten over 100 hits and 30 downloads in a week. Never thought it'd be useful for anyone else, but then again this is Free Software. (Scratch that itch, baby!)

Got most of the new bytecode stuff implemented, but parts remain untested, due to changes required elsewhere. I just love multitudes of interlocking pieces.

Next, it's time to bring jig up to snuff with all the changes I've been making, and run it through a torture test by jig-ifing all the internal builtins. Hopefully it'll make things easier to maintain in the future, and to bring things into E262 copilancy as E262 evolves. (I've got two possibilties for a release codename for 0.3.0: "Resurrection" or "Getting JIGgy" <groan>)

On a good note, it's come to my attention that the PHIZZ-HQM MUD is using NJS! Certainly gives me incentive to get a release out there soon. I'm shooting for mid-May on 0.3.0. (It even looks do-able.)

Actually managed to get some real things done today. I finished a version of GCardScheme (version 0.99.0), a panel applet for changing PCMCIA card schemes. Also managed to push out an update to my website. Had a much better day than Wednesday/Thursday.


I have just had the worst 24 hours in recent memory. Allow me to enumerate:

  • Yesterday, I am at the Bookie (the student bookstore here at WSU) to take care of my cap and gown order for commencement (I'm finally getting out of this pee-pee soaked heck hole!). When I get there, I find that Monday (the 17th) was the last day they are accepting orders. Nowhere on any of the material they (or the University) sent out, nor on any of the displays actually at the Bookie, indicated anything at all about a final date. The only notification is a clipping from Monday's campus paper saying that "today's the last day for cap and gown orders". grrr
  • This morning I had a test in my 10:35 am class. I wake up and roll over and the alarm clock reads 10:27! I literally bolt out of bed and make it to campus in 8 minutes (and make it in time for the test. This wasn't so bad, as I think I did reasonably well on the test.
  • Having just paid a renewal on my auto insurance, I am acutely aware that my proof of insurance card is about to expire. Only I cannot find the replacements they sent with the bill. No problem, my agent (in Seattle) told me that if I ever had a problem with my policy, I should see the local agent here in Pullman. Considering this a problem, I go and see him this morning. To make a long story short, he told me that since he wasn't my agent, he couldn't help me. grrr
  • I come to work and try and log into the box I'd been using (I don't have a box "of my own" yet). No dice. Actually looking at the issue, I find that our local systems pseudo-person had reinstalled the box. With Mandrake! I could live with RedHat, but Mandrake? <advocacy>Debian on my laptop saved the day.</advocacy> Then again, a box I can log into is preferrable to one at which I can't. grrr

I do believe I have run afoul of Murphy's Simultenaity Principle: "If more than one thing can go wrong, they will all go wrong at the same time."


Oh Dark Thirty
Finally decided to poke my head out from under the proverbial rock, and try Napster. Ye gods, this thingie is unbearably cool! I never realized that my masquerade firewall would be so useful (at least when one is trying to keep the network traffic going in one direction...;)

Also figured out a solution the power plug on my laptop being unable to work. Popped over to ebay and got myself a port replicator for cheap. All in all, a $20 solution to a $200 repair.

Maybe a little more hacking on NJS, then sleep.


Oh Dark Thirty-Five
I really ought to change that order: sleep, then hacking.


Woo hoo! I finally got around to replacing my main server yesterday. Used to be a dying 486-66 with 32 MB, now a K6-450 with 128 MB. It is so exhilarating to do things like compile a kernel in under twenty minutes (used to take over three hours) or run a bunch of things without touching swap at all.

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!