Older blog entries for matt (starting at number 24)

This weekend I gained a little more Zope enlightenment and created my first Python product. (Until now, I'd done some work with existing Python products, but any new stuff I needed was generally built using ZClasses through the web.

Actually, I'm only dipping my toes in the water, only using the Python product to provide functionality that I can't through ZClasses (namely, I can't have manage_afterAdd methods for two base classes both be invoked -- the first one in the list wins) and building the rest of the product with ZClasses. ZClasses are oft-maligned on Zope IRC, but I think they have a definite place and are quite useful for building simple classes.

"solpkg", the packaging system for Solaris I mentioned earlier, will hopefully be ready for public digestion by the end of the week and posted in its Savannah project area. I want to get in a hardcore reading of the OpenBSD ports system code and figure out how it solved some of the problems I've run into to see if they're solvable in a similar way on Solaris first. Right now there's some voodoo in solpkg, and I want to make sure I understand at least my own code before I make it public.

I've found a good depressant is to go over my old diary entries and see what I thought I could do, and discovered I couldn't, or more likely -- let the thing drop because I have no sense of commitment. ;-)

Ah well. I recently helped bring exUserFolder into Sourceforge CVS with a nice little set of shell scripts I wrote that take a set of old release tarballs and transform them into a repo with each version tagged. It takes a long time to run over my 33.6. Watching it run pointed out a lot of inefficiencies in the way I do things.

What else has been going on? Oh, at work I created something I call the Solaris Packaging System. Essentially, it's similar to OpenBSD ports for Solaris, except it works with tools that are already part of Solaris, GCC: GNU Compiler Collection excepted. I wrote this because I had a collection of shell scripts that did the same thing, except they were totally unmaintainable. :-) I'd like to put this out but am waiting for my boss to talk to company lawyers about whether it's acceptable to do the free software thing or not.

Any advice anyone could give on advocacy here would be nice (and please e-mail; I don't read diaries for replies, generally)... we're not in the software business, we're in the home interior manufacturing business, so a lot of the existing "talking to suits" stuff doesn't apply, really.

Oh well, that's about it. I should do the diary thing again in another half-eon or so.

8 Aug 2001 (updated 8 Aug 2001 at 17:05 UTC) »

Hacked together a version of ZOracleDA based on some old code and a little insight. Result: Oracle works with our Zope install here, and Zope can potentially gain a foothold over Oracle's really, really crappy web app server (which I am convinced is not a result of it being based on Apache Jserv, but is more likely just incompetence at Oracle.)

Along those lines, Java on OpenBSD made some pretty good progress but I seem to be up against a brick wall now. ELF vs. a.out issues are pretty easy to patch. A ream of assembly code that results in "invalid opcode" is not.

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.

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