Older blog entries for matt (starting at number 21)

Phew, haven't been here awhile, gotta remember where everything is.

Well, I guess I've grown up a bit since I last posted here, in attitude as well as ability. I'm still working on a few ports but I'm trying to hand off the worst of them. To that end, I've been working on porting Java to OpenBSD based on Greg Lewis' FreeBSD port. I'm making some steady progress in that we aren't looking at core dumps any more, but the JVM has yet to initialize. Unfortunately there also seems to be some shakeups in the *BSD Java port effort, so we currently are without CVS and I don't have an easy way to spread the changes around. If this takes much longer I'm going to try to start up my own local CVS repo, I guess. :-/

Found a really neat program for my Visor the other day. Read all about it at PalmWiki (the program is also called PalmWiki.)

Yeah, it's been awhile. I dunno, for awhile there I didn't really feel like coming back here. I was holding my idealism a little too high, as evidenced by my bit on the certs. I've been doing a lot of thinking on a lot of things lately, and really, the certs don't matter that much. I know who is a master and who isn't. Hell, I even have totally different ideas than other people who certify people honestly here, just because I have different views than they do. I know who to come to. Let the old boys' network live on; I just won't be a part of it. That doesn't make the site less useful to me (unless everyone goes and revokes my certs today) :-)

What have I been working on lately? Not much of anything. I've actually been busy playing with Oracle's new stuff at work, and haven't really felt like coding much. libtool really confuses the hell out of me on OpenBSD (and it's currently causing some warnings in my nessus port). It seems there is a rather large divide between BSD developers and those working on libtool; neither seems to understand each other real well, and lots of words are flying.

Well, that's it for now. Contribute to my new article. :-)

I really hate fixed-width web pages. "Web designers" who make them should be shot.

Incredible. A day where there aren't any new accounts certified as journeyers already. A sea of gray. My faith in humanity is, for today, restored.

I decided a few days ago that I would attack the following problems that I see with the OpenBSD ports tree, in this order:

  1. Get all non-BROKEN ports to FAKE; replace IS_INTERACTIVEs with FLAVORs.

  2. Work on infrastructure first to permit the movement of LOCALBASE to something other than /usr/local (on a "local" basis, of course... har har), then go through each port that I can possibly build, fixing it and supplying source patches to make it respect PREFIX and LOCALBASE appropriately.

To that end, I'm already working on #1. databases/db is my current project; I've already got an outside contribution. And wouldn't you know it, I'm already stuck. :-) I need to try to find a way to get it to depend on the JDK so that the java FLAVOR works appropriately. It's not as easy as it sounds, because I also need to determine exactly which version of the JDK was installed. I can hard-code the 1.1.8 now, but if FreeBSD's JDK (and therefore our port of it) ever gets updated, this port will break. Hmm.

My dream of a universal, non-GPL'd porting and packaging system (with full path relocation, of course) taunted me again. I think, based on my forays deeper into the ports system infrastructure, that I have a ways to go before I start such a beast.

Hey, new tags! Cool! Let's try them out...



Did it work? I guess I'll find out when I hit the Post button. Such is one of the major fallacies of web-based interaction. Submit, Reload, Submit, Reload...

Anyway, the reason I was going to actually post my diary entry today was about an interesting incident we had yesterday at work. Well, maybe it's not really terribly interesting, but it brought up some interesting thoughts. We are cursed with a Microsoft Exchange server for our e-mail here at work. Someone apparently created a global mailing list alias called "TechSupport" that contained what appeared to be all the addresses in our corporate addressbook. (I'm still fuzzy on the details, but that's fine, because thankfully it's not my job to keep up on Exchange.) Someone got impatient with a technical services request and forwarded it to this alias, which resulted in everyone getting said TSR. An honest mistake, probably.

The result was that a large number of yahoos worldwide were blindly hitting "Reply To All" and indicating to the entire corporation (and sub-corporations) that they did not comprehend why they got this e-mail in the first place. (There were also some non-yahoos who got it who were desperately trying to turn the tide.) Back in the UNIX wing of our IS department, where I hang out, I joked that this proves that e-mail virii are not a technical problem, but a social problem -- there was no code involved, yet for all intents and purposes this had a very similar effect to ILOVEYOU or one of the other infamous virii. (Actually, my statement was much shorter, but true to form, I waxed philosophical shortly after making the origial statement.) This got me thinking that if computing is ever to be pervasive, that perhaps it's taking the wrong approach entirely. Don't get me wrong -- I don't know what the "right" approach is. But if otherwise intelligent people can cause so much of a problem just by one simple mistake, perhaps we are not giving the masses what they need.

I spotted what I think is a bug in OpenBSD's cpp (which, btw, is actually GCC 2.95.3 prerelease; but this little bit shows up in at least OpenBSD 2.7 as well, which used GCC 2.95.2.) cpp has support for a concatenation operator in macro definitions, like so:

#define CONCAT(A,B) A ## B

The concatenation operator is meant to allow you to create macros that put two things right up next to each other without whitespace (so that CONCAT(foo,bar) yields foobar.) However, in our cpp, this only works if the file you're running through cpp is a C++ file (i.e. .C, .cpp, etc.), or if you're using gcc -E. Other cpp's (also based on GCC 2.95.x) don't exhibit this problem. I spent two nights trying to figure out why but GCC is too big of a beast for me to track it down. :-/ Anyway, I posted more of a query than anything to our tech mailing list, and hopefully someone a little better than me can figure it out... (for the curious: I want to use it in our ports.cf, which is an override for several key defines that are used by imake, to move imake-based software out of /usr/X11R6 into /usr/local -- except I want to be able to move it to a user-defined location rather than just /usr/local.)

Oh, and everyone should really read about the monkeys at nutters dot org. I'm serious. I found it self-validating, yet it still made me stop and think in many different ways.

Looks like I'm settling into the same frequency of diary entries as a lot of others. Oh well, you all really didn't want to hear my rants every day, did you?

Lots of interesting discussion on making software path-relocatable; clearly some things I hadn't thought about (which was really the point of posting in the first place). I tried to check out Figure but the project page seems to have disappeared off the face of the earth along with the rest of fig.org. I did manage to snag a copy last night but I was far too sleepy to make sense of it, so I started downloading some MP3s by Higgins instead. I discovered him last week and plan to buy his CDs sometime. He's very good despite being categorized as "easy listening" on mp3.com. :-)

I wanted to contribute some thoughts about the GPL's "teeth" but decided it would probably contributed to the license flamewar that was advised against, so I decided against it. Actually, I fear that someday GPLv3 will rise up with prohibitions against dynamic linking, CORBA-style remote invocation, and such. I fear that many hordes of new programmers will start to use it blindly and create a whole new class of software that is unusable by anything *but* GPL'd code.

The way I see it, free software is so powerful right now that we don't have to entirely rely on copyright protection anymore, because even if someone did proprietarize a piece of software, the majority of the force would still be behind the free version. The question I would ask: "If free software is so powerful, why do we have to guard it night and day with a nuclear arsenal?" I will probably only license my own code under the GPL if I absolutely need to -- i.e. to satisfy the requirement in question.

On the ideas front: wondering about the feasability of a Java object database like Zope's ZODB. Would use serialization and such. I think I have conceptually how to do such a thing, although how and whether or not to implement versioning is pretty gray right now.

nymia: perhaps we should get you your own box apart from the rest of the recent diary entries? :-) kidding, of course...

Jury duty over with. Didn't get impaneled. This time I got to sit around for 4+ hours with a dead TV. I'm still trying to decide if a blank TV or E! is better. I'm leaning towards the former.

My ADD seems to be catching up to me again, long after I thought I had it fairly solidly under control. In school, I'd been stamped "gifted" on my way out of preschool, and sat under that label for quite awhile. It looked to everyone like I was some really smart kid or something, but in reality, it was just that everything they were teaching was covered in books that I'd read. I used to read lots of books, and today I read lots of web pages.

Given that the American public school system values book knowledge above critical thinking (and the liberal indoctrination is really easy to fake), I did remarkably well until a few years before college. Anyway, to make a long story short, I insisted that I get checked out, and lo and behold, Ritalin made me brilliant for awhile. It didn't sit terribly well with me, though, so I quit it and worked really hard on pushing myself without the drugs. Up until these past few weeks it's worked relatively well. I'm not sure what's changed, but I'll keep watching for awhile.

Well, other than that, nothing new on the free software front, except that I have to figure out a term to use that is not "free software". Open source smacks of marketese. Suggestions welcome.

Jury duty again. Might actually get impaneled this time. Sigh.

Oops, there goes the toaster. Tune in next time.

Interesting reading the responses. I don't have anything else that I feel is worthwhile to add, so that's why I am not responding to the followups. In any event, there are a few points to ponder.

My c-client sync script is halfway done, but I quickly realized as I started to code that it has the potential to destroy my inbox if I match one list to another incorrectly, so I'm leaving what I've done for now to mull over it a little more. I wish Palm's developer zone had information on how the MailDB file is structured, but they don't seem to for some odd reason, just some generic stuff on databases. I find that extremely strange, especially since pdbdump from the Coldsync Palm libs shows there is a field called "id" in each message that I think I can use safely.

As nymia pointed out, we've apparently been down or something... but it's all better now.

On the software front, I've been trying to piece together a coherent conduit for mail to my Visor, so I can stop spending over an hour daily going through misc@openbsd.org, ports@openbsd.org, tech@openbsd.org, etc. and do some of it on my lunch break at work. (If only we had a decent 'net connection there, sigh.) For as much flack as it catches, IMAP-UW's c-client library is really quite good (with the Perl Mail::Client lib), and I can add it to Coldsync's Palm Perl libs to complete the picture.

I would really like to use Coldsync, but /usr/local is taken up by OpenBSD ports right now, and I don't want to throw extra stuff in there. One of these days I'm going to have to seriously sit down and figure out enough about the infrastructure to permit my old trick under FreeBSD (/usr/contrib) to work. /usr/contrib is a better place to put this sort of software anyway, it's written by someone else, maintained by us specifically for our OS, but not supported by us. That, historically, is the role of /usr/contrib. /usr/local, OTOH, should be for truly local stuff that can be blown away with no ill effects on the rest of the system. At least that's how I've always felt about it. Unfortunately, /usr/local is ingrained into a lot of places in our tree right now, so massive changes would need to take place, and I don't think a lot of others see the value in it. Maybe I'll go on a crusade sometime. There's no real reason why the system can't discover what your preference is for everything. I've got a few ideas on that front...

deekayen: that's no way to live. I wish you had smarter parents. Alcohol abuse really sucks. Get them help if you can.

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