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:
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 firstname.lastname@example.org, email@example.com, firstname.lastname@example.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.
Just posted a heavily revised version of my "abused trust" article, which I think addresses my thoughts below. Crossing my fingers for as good a reception to my points as I've had in recent diaries. Thanks, everyone, for your support.
I love working with the window open during a thundershower. It's great. Everyone should have an openable window next to their workstations. Of course I could also go outside and get wet... that's always fun.
Gave in to curiosity and installed Tomcat on gamera, even though I was going to make it a work-only project. I figure, though, since work gave me a reprieve from the otherwise tedious pushing of the inventory data into our Oracle apps system through a terminal session -- we were going to do that tonight -- that I can do some semi-work-related stuff at home. (Yes, ladies and gentlemen, Oracle did not see fit to make interfaces for physical inventory, so we spent many $$$ a few years ago to have an interface written so a Perl script could talk directly to the human interface.) But now one of our DCs isn't going to do their third (cleanup of discrepancies between first and second) count today, so we won't be entering anything till Monday at the earliest.
Anyway, back to Tomcat. I'm pretty impressed with what I've seen so far. Obviously, Java developers are already really into the whole servlet and JSP thing. I haven't done any serious Java since I wrote half of a DNS resolver library in JDK 1.0.2 years ago, but the whole thing just screams well-engineered to me, especially when contrasted to last month's exponentially mounting frustration with Zope. I think what I like most is that it tries to do as little as possible and allows you to build your own framework (or use others') on top of it. Right now all I've managed to do some basic header/footer stuff, and automatically-generated breadcrumbs... but more is coming.
I'm noticing several people using the word "diarist". It's one of those things where I wonder if people started using it because I did, because it was one of those words I thought might be a real word but had to look it up. (It is a real word, for those of you who are wondering.) Then again, the rest of the world might have just been using it and I only noticed subconsciously, kind of like when you get a new car and for the first time in your life, you notice the other people driving the same model.
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!