Older blog entries for tripp (starting at number 5)

Obligatory Douglas Adams Note:

As revealed to Arthur through the Scrabble tiles in Life, the Universe, and Everything, the Ultimate Question is "What do you get if you multiply six by nine?" Those of us steeped in basic arithmetic since an early age, of course, dismiss this out of hand without thinking too hard about it.

However, I'd like to point out that it works if you do the math in base 13, which is somehow quite appropriate.

Farewell, Mr. Adams. I already miss the works you'd yet to make.

Personal Life Dept.:

15 days and counting. Two weeks from tomorrow, I will be married. The last time I went through this process (being engaged), it was two years away and I woke up every morning feeling like I needed to puke my guts out.

That was because it was the wrong relationship.

This time is totally different. Each day that passes, I get more excited about the impending ceremony! I'm pretty sure that's a good sign :)

Geek Issues Dept.:

In the "License Wars" department, I read this article talking about Ransome (Caldera) Love's agreement with Microsoft's "claim that the GPL doesn't make much business sense."

In much the same way that anti-rape laws don't make sense to someone looking for sex at any cost.

I don't mean to trivialize rape by that statement; rather, I mean to exploit the obviousness of that concept to explain what can be esoteric and abstract licensing issues.

Microsoft is absolutely right: the GPL doesn't make business sense-- for Microsoft. They can't steal your code if you release it under the GPL. They have to play as an equal partner. They have to share.

The GPL does make business sense if you're considering how to open up your own "intellectual assets" for public consumption. If you release your sources under a wolf-in-sheep's license like the early Apple license, you'll hear a great hue and cry from "the community". If you release your sources under a Libertarian[1] license like the BSD license, you expose yourself to competitive disadvantage when someone else wraps their extensions around your code and closes up the whole mess.

Under the GPL, when you decide to release your work, you're not doing it "for free". You're doing it for compensation in kind. You're saying "you can stand on my shoulders, as long as I can turn around and stand on your shoulders" (I'm trying to picture that, and it's painfully recursive, but I think you know what I mean).

You are saying, in effect, "I'm giving you a competitive advantage by offering you my work, but I expect that advantage returned by equal access to your improvements on my work."

As with all things, this is a choice. You choose to release your source under the GPL. When I choose to use your GPL'ed sources, I have chosen to share equally with you everything I link to your code; all of my improvements.

Returning to my earlier analogy, that sharing is consensual sex.

On the other hand, when you decide to release your source under terms that don't bind me to share, you open yourself to intellectual gang rape. As an individual, I can take your software, make my own improvements, and close it up. I'm not much of a threat to you that way, because we probably have similar resources at our disposal, and my closed model will likely fall to your open model at the end of the day, because your customers will have the security of knowing they can always pay someone else to continue your work.

On the other hand, if I'm a large corporation, and I'm threatened by you, I can use your more permissive license as leverage against you. I have might. I have numbers. I have a marketing engine that can convince the public that you "were asking for it". And I can take your code, make incompatible modifications, release it in closed form throughout my entire installed base, and give you little chance of fighting back.

Again with the analogy, taking is rape.

In the end, I choose the GPL not because I'm afraid of what individuals might do, but because I've seen what corporations will do.

I choose the GPL because no means NO.

Footnote: "Libertarian" Licenses

I call the BSD license family "Libertarian" here because it depends on the individual responsibility and ethics of each member of the community. In politics, I lean toward Libertarianism. However, I see the same problems with it here in the licensing world that I do in the "real" world; namely, that unscrupulous people can and do wield influence far out of proportion to their number when the head large, cash- and power-rich corporations. Ultimately, I'd really like to see a union of the Green and the Libertarian Parties into one killer third-party that could mop up the Republicrats.

Reading Dave Winer's Scripting News seems to bring out the writer in me. I'm not sure precisely what nerve his work touches, but it encourages me to speak in my voice, and tell my story. I'm not saying my story is particularly exciting, newsworthy, or worthy of your rapt attention. I'm just saying that it needs telling, even if it's just to stroke my own need to tell it.

Then again, opening up our thoughts and feelings through our words might be just as important as opening up our ideas through our code. Ultimately, we're all part of a great conversation. I've suddenly reminded myself of Jonathan Carroll's incredible Outside the Dog Museum. I don't want to give it away, but it deals with the Tower of Babel myth. Carroll indirectly suggests that architects' duty is to draw humanity back together through our work, and to ultimately celebrate our shared divinity in a common language.

If that's part of what we're doing, sign me up. I never wanted my life to be about small things, anyway.

It's official! I'm engaged to the best girlfriend I could possibly imagine. This is my second time being engaged, but I took my time, this time, and I believe we're taking this step for the right reasons.

The engagement announcement brings with it a funny story. Well, I say "funny" in the euphemistic sense one uses when one can do little more than laugh at a situation so far out of hand. I won't bore you with the details, but let's just say that, since an incident in the eighth grade when a teacher put her job on the line to cover my lie, honesty and integrity have been exceptionally important to me. My commitment to integrity means that I work very hard to make my thoughts, words, and actions consistent. I often describe this by saying "if I'm lying to you, it's because I'm lying to myself."

I have never been one to blindly follow tradition. That's not to say I don't follow traditions, mind you. I just choose which ones I follow carefully, and with an eye toward whether or not I believe in their innate value. Speaking in the terms defined above, that means I can't follow a tradition just to follow it, I have to believe it.

To make a long story short, after much discussion, we decided that a reasonable compromise between what I wanted, what Irene wanted, and what we knew her father wanted, would be for me to ask for his blessing on our engagement. I regarded that as perfectly reasonable. The more people that are rooting for you, the better you're likely to do. It's an energy transfer thing. What I absolutely would not do was ask for permission to marry. It's not that I don't respect the man or his traditions, it's just that my asking his permission would not have been an act of integrity, because I don't believe that I (or we) need his permission. There's no point in asking someone's permission when you know you're going to bloody well do it no matter what they say. You might apprise them of your intentions, but if you're going to do it anyway, I believe that falsely asking for permission is, in fact, quite disrespectful.

So I asked for his blessing, and got it (along with an earful about how our current living situation isn't right). The next day, after watching a lamb roast on a spit all day (which, incidentally, is very fascinating), we extended the olive branch a foot farther by asking him to do the honor of announcing the engagement to those gathered for Easter. He said (emphasis mine):

Tripp and Irene have very honorably asked for my permission to marry, and I have given it...

Oh, well. We tried. It really doesn't matter, ultimately, but it does illustrate what we're up against.

I'd talk about technical things, but all I've done is fight fires and fix mistakes all week, which hasn't been very rewarding. Well, I did get some serious hacking done late last week and over the weekend on p4.py, a library for writing scripts against a Perforce depot in Python. Like all of my code, it rocks mightily, but is not ready for release :)

I should point out that I'm an Aries. Not just any Aries, either, but an Aries born right at the apex of the Aries cycle (April 6th). It's nice work, if you can get it. Well, I enjoy it, anyway. But, if you follow these things, you know that we're entering Taurus now, which is good, because Taurus finishes things, and I have a lot of crap that needs finishing! In fact, I need about a whole year of Taurus energy to catch up :)

I renewed my hatred for all things Windows this evening when I actually tried to do something with it. You see, in my dark, sordid past, I was a Windows developer. No, that's not quite accurate. I was a Windows zealot. Seriously. I used to rag on the Unix-heads at Interop, saying that NT was going to eat their lunch.

Here I am, a decade later, having matured. I now realize that all software sucks in its own, special way, and that we must choose which particular combination of suckage we want to embrace.

I tried to install StarOffice this evening on the snazzy dual-processor, half-gig of RAM, forty-bazillion gigabyte of disk monster machine that work sent me. You know, the one Irene reads her email on because I do everything on my laptop :)

Anyway, this monster runs Windows 2000, which, I must confess has been more stable and certainly prettier than any Windows incarnation I've had the displeasure to bend to my will. It runs Windows 2000 because my ultimate task for my present employer is to write a pretty wicked set of tests and benchmarks for some Java stuff, and I have to deploy my test suite on many platforms. Dur.

So, until I get to a state where I need to use it for testing, that box is essentially relegated to:

  • Surfing raverporn
  • Reading email
  • Downloading images from the digital camera
  • Watching DVDs (for novelty value and screenshots; I have a real DVD player for chillin').

Back to my story... Irene says she needs to work on her resume, and I don't have any "real" office suite loaded on that machine. So, being a reformed Windows luser, and an affirmed Free Software Zealot for quite some years, now, I go grab StarOffice. She's used it before, under Linux, and it's now open source, so at least I have the peace of mind that comes from knowing that, if I have the time, I can fix it :)

Have you played with "junctions" under Win2k at all? They are Microsoft's answer to symlinks. I'm not sure why they couldn't call them symlinks, but that's another story. Anyway, I never liked that whole C:, D: crap, so when I formatted another partition of the mammoth drive for Win2k's use, I went ahead and mounted it under c:\big_disk, instead of giving it its own drive letter. I figured that would work well for me. Sort of a "Unix" feel to things.

Tonight I go to install StarOffice, and the damned thing keeps complaining that there isn't enough space on drive C. Of course not! That's why I was putting it into c:\big_disk. But apparently, the StarOffice installer hasn't yet caught up with the notion of "junctions", so it didn't realize that c:\ had 99MB free, but c:\big_disk had 3.75GB free.

I can forgive StarOffice for that. After all, I have the source, so if it really chaps me, I can fix it. That's the kind of freedom I appreciate. What torques me is what happened next, when I tried to clean up.

I figured "well, gee, there's all this crap in Program Files, so maybe I can just move that over to c:\big_disk and make a symlink back so everything can find itself". So I started copying. Well, as you might expect, it didn't want to finish copying because some of the things in Program Files were locked by apps that were using them. No matter that the only apps I had running were Command Prompt and Explorer. Oh, wait, did I say Explorer? Right... Frigging plugins. You know, OLE/COM/ActiveX/?? objects that extend the Explorer interface to handle different filetypes, different actions, and different presentations? I mean, it's cool technology, but all I want to do is copy my files!

So I figure, "hmm, maybe Win2k has a decent safe mode in which all these extensions are shut off, so I can copy the files around without tripping over dependancies". So I reboot. What? Reboot Windows? Never...

I obligingly hit "F8" during the austere pre-startup screen. I'm asked which particular kind of non-standard startup I want. I pick "Safe Mode with Command Prompt", figuring that's as close to single-user as I'm going to get. Windows boots, and I get a 640x480 GUI with a single window that can only be described as "frickin' huge". Or, as Irene said, sarcastically, "can you make it any bigger?"

"Cool," thinks I, "I have a single-user prompt, basically." So I start out with the obvious command: move "Program Files" big_disk and am rewarded with Access denied. I won't bore you with the entire saga, but suffice it to say that I went through a few variations on the theme before I said "fuck it" and rebooted.

Ultimately, I managed to clear up enough space on drive C itself that I could install StarOffice onto big_disk without further ado. But what I want to know is:

  • What's so hard about single-user mode?
  • Wouldn't it be easier to use the built in character generator in the video card, you know, text mode?
  • Why the fuck does Microsoft still exist?

Seriously. I mean, in fifteen minutes of trying to do something ultimately quite reasonable, and even being willing to knock back down to single-user mode to do it, I was unable to. I'm not exactly dumb as a turnip, here. My blood pressure rose alarmingly quickly, and I've spent the rest of the night trying to bring it back down. Two years ago, I kicked the Windows habit and never looked back. Now I remember why. At least with the source I can only blame myself, ultimately.

Last week rocked! I tried a new (old) approach in which I tell everyone to fuck off except for the one project that has my entire focus. It worked, and I cranked out a bunch of work on my Python libraries for manipulating Framer-D knowledgebases. It's a very satisfying feeling to end the week by posting a flurry of patches to a once-dormant sourceforge project (fdpp, in this case).

This week started off bumpier, with Monday being a "do-nothing" day, and Tuesday being devoted to firefighting unrelated projects and building a cabinet in the shop to unwind. Yes, it's an ugly cabinet. I vowed to clean up the shop using only materials on-hand, at least until I exhausted those. Thus OSB. Thus ugly. But it holds stuff, which is what a cabinet is for. Once the crap is off the floor, I'll build pretty cabinets for the kitchen.

I forwarded the Objective-C article to Chuck, because he was an Objective-C weenie for a great many years (weenie, in this context, being a compliment). He was a little peeved at not being able to post any of his insight, so please join with me in certifying him as something useful. He is, after all, the lead developer on Webware for Python, a web application development suite that's going to eat Zope's lunch :)

I hope to make a preview release of the Python libraries before I leave town for Easter. Part of me whispers "ain't gonna happen", but the rest of me holds out hope. If not before I leave, then definitely when I get back. I've learned some wicked tricks, and I don't think the Python people are going to like me very much :) I'm not sure Guido ever intended anyone to change ob_type on the fly, but I am.

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!