Older blog entries for tripp (starting at number 12)

Home Destruction:

I was premature in my "near feature complete" diagnosis of the bathroom. The framing, sheeting, and Durock installation are complex enough (given the oddball built-ins I'm visualizing) that I've had to put things off while I focus on worky-work.

So now, in the interests of domestic tranquility, I've finished the plumbing (learned how to sweat pipe... cool!) and installed 4mil polyethylene as a temporary surround. The shower curtain's back up, all of the tools are stowed, and we now have a working (if butt-ugly) shower. So we don't have to trek the two miles to Kim's every morning (er, afternoon, in my case) to shower. Like we have been for the past, oh, six weeks. Saint Irene, indeed. The Martyr of the Bathroom :)

Compromise:

Following up on my "Compromise" and "I bought Microsoft" threads, I've invested myself even moreso in the enemy.

I bought a new Windows box (XP, no less) and a new scanner with an ADF. There are more similar purchases in the near future for us. The idea (however misguided it might be) is to take advantage of imperfect COTS tools to get me 75% or so of the way toward managing the volume of crap I have to manage, so I can more effectively focus my energies on being productive.

I realized that I don't want to follow in Ted Nelson's footsteps (as perceived by an outsider):

Nelson's life is so full of unfinished projects that it might fairly be said to be built from them, much as lace is built from holes or Philip Johnson's glass house from windows. He has written an unfinished autobiography and produced an unfinished film. His houseboat in the San Francisco Bay is full of incomplete notes and unsigned letters. He founded a video-editing business, but has not yet seen it through to profitability. He has been at work on an overarching philosophy of everything called General Schematics, but the text remains in thousands of pieces, scattered on sheets of paper, file cards, and sticky notes.

All the children of Nelson's imagination do not have equal stature. Each is derived from the one, great, unfinished project for which he has finally achieved the fame he has pursued since his boyhood. During one of our many conversations, Nelson explained that he never succeeded as a filmmaker or businessman because "the first step to anything I ever wanted to do was Xanadu."

I know Nelson hates that article, and it is a bit pessimistic. But I look around me, at the piles of "stuff to be processed", the stacks of notebooks full of ideas, and the fourteen pages of to-do lists, and I realize that, to the outside observer, I might just look like I'm never going to get this stuff done.

I'm not. I know that. But I want to get enough of it done, and I want the bits I get done to be effective.

Like Nelson, the "first step to anything I ever wanted to do" is a set of tools to help me with the process of the doing. A long time ago (c. 1992), I called that toolset everything (but that name is taken now).

The core vision is still there: a uniformly flexible, distributed, resilient fabric for storing information, code, etc. A substrate on which to build intuitive, responsive, powerful tools to manage information.

But now I'm coming close to fifteen years of being in computers, and over a decade of being posessed with my vision of "everything". And I'm realizing that, for me, stacks of notecards aren't going to cut it until I produce my fabled Pleasuredome. If I am to give birth to anything significant, it won't be by continuing the way I've been doing things.

So I bought a Windows machine. And a scanner. And some crappy document management software. And soon an A/V machine to rip my old videos. Yes, I know I can accomplish all of these things through Free tools. And believe me, I dearly want to. But for now, I need to concentrate on accepting the "out of the box" experience so I can focus hard on building the next generation of tools. The ones that rock your socks off. Classically, of course :)

Resurrecting Good Ideas:

If anyone has an appropriate contact at IBM for what I'm about to describe, please send me some email (tripp at perspex dot com) with "advogato" in the subject.

I have an old Technical Report from c. 1972 for a project called The Dawntreader Project. It was a dynamic, distributed semantic network implementation that a team built within IBM to serve as the data repository for some VLSI design tools.

Anyway, I've not been able to find the report anywhere (aside from the copy I was loaned by a friend who was on the team later in its life). I want to either find a source for more copies, or get permission / rights / what have you to reprint the report (electronically or physically or both).

I wish there was an "abandonment" clause in copyright law. I don't mean voluntary abandonment. More like being able to petition the courts to declare an artifact abandoned and have it enter the public domain. Eh, whatever.

Single Sign-On (clarification):

I should clarify my point about blog.example.com and signon.example.net encrypting a shared datum. Rereading my post, I realize it wasn't clear that I meant each should have the other's public key. blog.example.com encrypts the datum with its private key so signon knows the request came from blog, and signon encrypts the response with its private key so blog knows the reply / ack came from signon.

This is obvious, but the way I wrote it might not convey that I know it's obvious :)

Also, depending on my workload this and next week, I may try to whack together a prototype of this mechanism.

Single Sign-On:

Bram and raph: I assume that the point of the challenge / response pairs is to collapse the backchannel into an occasional "stocking up" transaction between blog.example.com and signon.example.net?

However, why not just have blog.example.com register a public key at signon.example.net, then generate the challenge by encrypting a shared datum with its private key as the challenge? When signon.example.net redirects the user back to blog.example.com, it can similarly encrypt the response so blog.example.com will know the response is authentic. That way, the sites don't need to "stock up" on challenge / response pairs.

Having said that, I now want to make the case that the backchannel is important for the non-trivial logout case. The user needs to be able to log out concisely from all SSO sites. The best way to do that, without forcing a double-check between blog.example.com and signon.example.net every time the user hits a page is for signon.example.net to tell any "active" sites that the user has logged out.

Unfortunately, this means signon.example.net is going to have to retain some state. However, I think that's an unavoidable necessity, as you also want the user to control what sites are allowed to use the signon profile. I can't imagine not wanting a site to be part of my profile, but, well, maybe I can :)

The backchannel can also be useful, when the client supports images, for implementing a "silent", webbug-based login. blog.example.com includes an image that's hosted on signon.example.net. Upon receipt of that request, signon.example.net sends a backchannel message to blog.example.com confirming the user's signin status. Subsequent pages at blog.example.com can then take advantage of that status without the user ever following the login button.

Assuming blog.example.com gives signon.example.com the graphics (through the backchannel, through prior agreement, or by reference in the webbug's src URL), then the user gets immediate feedback about their login status by which graphic signon.example.net returns.

example.com:

Bram's description of the single sign-on proposal also made me realize I should evangelize the use of example.{com,net,org} here. BCP 32 / RFC 2606 reserves four TLDs (.test, .example, .invalid, and .localhost) for use in testing, documentation, etc. It also reserves the SLDs example.com, example.net, and example.org. It recommends using the .example TLD for documentation, though I personally believe the "average reader" will more readily recognize an example.{com,net,org} SLD as a "domain name".

Anyway, the reason I implore you to use the RFC 2606 domains comes from (admittedly embarassing) direct, personal experience. A long time ago (okay, two years), my primary mailserver was still running some egregious sendmail hacks (written by my local guru, not me) that provided virtual domains (before they were standard). Unfortunately, my meager understanding of those hacks, and the amount of cruft we had built around them, conspired to keep me from correcting the fact that the machine was an open relay.

While working at jGuru, I "helped out" a few of our gurus who needed a decent relay, didn't have SMTP AUTH support in their clients, and didn't have fixed IPs (and had ISPs that were refusing to relay mail coming from within their networks not bearing a From: address of @isp.example.com. Sigh.)

I promise, this is going somewhere. Anyway, one of the gurus was writing a piece on sending mail from within Java. In that piece, he provided code that used my mail server as its MTA. So, until I managed to (a) close the relay (which, yes, I know, I needed to close and I was being an irresponsible Internet citizen and so forth) and (b) get the article rewritten to use mail.example.com instead, I put up with a bounce message every day or three from someone that didn't understand they needed to put in the address of their own SMTP relay.

Now it's my sworn duty to evangelize RFC 2606. And to get websites to properly accept the plus sign (+) in the lefthand side of an email address. And to get them to accept the plus sign in a phone number. And to get AT&T to keep my bill available online for more than three months. I go paperless to save them money and they can't keep 7k of compressed data around for more than three months. Anyway, that's Mr. Quixote to you!

So, how about blog.example.com and signon.example.net? :)

Work:

A fantastically productive week. 70+ hours on the clock from Monday to Monday (inclusive). The project isn't delivered yet, but I cleaned up a lot of cruft, and put in place a new architecture that I can phase in piecemeal and still start enjoying from day one. Also tried out some simple XP refactoring tricks that are obvious and yet somehow overlooked :) (rename the old thing and all clients of it, create the new thing, migrate clients one by one, then remove the old thing).

Also, I finally wrote a wrapper for Perforce's branching that does all of the steps involved in maintaining the most common kind of branch I make. Now branching is a one sweetly simple step. Note that the agony here is introduced by my very anal separation of clients per branch, not by any inherent limitation of Perforce (not that Perforce doesn't have inherent limitations, mind you).

I bought Microsoft:

I bought really cool-looking game this weekend - Age of Empires II, The Age of Kings (as a reward for later, when I've gotten some more bits delivered). Opened it up and read through the instructions. Only later did I notice the Microsoft logo on the box. Sigh. I would have rather supported a smaller, hungrier shop if I'm going to indulge in a little bit of proprietary software compromise.

Compromise:

On the subject of compromise, I had a good discussion with Allen Briggs over lunch the other day. As I creep up on thirty (1973-04-06), I'm doing the understandable reflection, introspection, and general "what have I done, and what do I have left to do?"

The short answers are "not much" and "a lot", but those grossly oversimplify things, because the truth is that I've done a fantastic amount, but have little tangible evidence of it.

Anyway, in the process of all of this, I realized that, whenever we get around to having kids, I want to raise them to see a pragmatic balance between their idealism and the mundane, material needs and desires of the world. There is a grounding in compromise I never got, which I think might have helped me to further my ideals.

What it boils down to is, ironically, something Stallman wrote in Copyleft: Pragmatic Idealism:

If you want to accomplish something in the world, idealism is not enough--you need to choose a method that works to achieve the goal.

I say "ironically" because the kind of pragmatism I'm talking about is precisely the kind Stallman rejects in other writings. I guess you could call it "embracing the enemy". Or just "selling out".

When I raise my kids, I'm going to try teach them to think clearly and rationally about what they want to accomplish, and to weigh the ethics of acting quickly to achieve more, versus acting slowly to achieve less, but achieve it more purely.

In practical terms, I'm going to advise them to go out, make assloads of money while they're young, energetic, and full of bright ideas, then turn around and spend that money while they're older, wiser, and can make it do the most good to bring about all of the changes they wanted to see when they were younger.

Because I've learned one thing, finally, and I learned it from Fried Green Tomatoes. Older and richer beats younger and faster.

Of course, the inherent challenge is to remain internally faithful to your ideals while you're externally working in apparent opposition to them.

With that said, I'm also going to do my damndest to teach them that they can work outside of where their ideals would otherwise take them to rake in the cheddar. For instance, I'm going back to school in the fall and getting an accounting degree. Who knew? Anyway, that way, when Irene gets out of law school, we can open a firm that does accounting and law in one place (useful when estates and the like are your bread and butter work). Both accounting and law can be fantastically lucrative, and even so when done ethically (if you pick the right areas of both, of course :) ).

And all of that can pay me, ultimately, to write more Free software. And raise kids who can follow their own dreams without looking back and wondering where the time went.

Fortunately, longevity runs in my family, so I've still got at least two more of my lifetime so far to noodle out the rest of the details and make my big contribution :) I mean, look at Dave Winer. He's my dad's age, and he's still got the juice. I mean, I respectfully disagree with some of his positions (more, later), but he keeps stretching himself and his ideas, and keeps generating vision. No ossification there. Keep it up, Dave!

Work Stuff Dept.:

Feature Complete is a fantastic cure for depression. Not that I've reached that milestone yet, but delivering functionality always makes me feel good.

(as an aside, speaking of depression, the Buffy "Once More with Feeling" soundtrack has been in almost constant rotation in my CD player. Why I'm still using a CD player is a long story, though. Sigh.)

I was reflecting on how cool it is to be able to string together these incredible components and build useful, helpful tools for people. Over the past few nights, I've taught the Monkey (our content management system) to render PDFs on its own, without the aid of any silly print-from-Web or HTML translation tools. I'm rendering the content into an XML template, then using XSLT to transform that XML to XSL-FO, then running it all through FOP to generate the PDF.

The whole system has a lot of tweaking, robustness enhancements, and so forth to go, but the fact is that it renders PDFs now. And that is an incredibly sweet feeling.

Anyway, back to my reflection. I realized how much more rewarding programming is for me in the Free Software continuum. It's tremendously liberating for me to be able to build so easily on the work of others without always degenerating into cursing their names, skills, existences, etc. :)

Seriously, in my (now long past) days as a Windows programmer, I spent an awful lot of time with my blood boiling. I spent long, livid moments debugging incredibly opaque systems. Granted, Microsoft has made available a prodigious amount of documentation on the various shortcomings of their systems. But no amount of documentation will, in a pinch, substitute for the source. That is, as they say, the ultimate doc.

Home Destruction^H^H Improvement Dept.:

My bathroom remodeling project is also approaching Feature Complete. It's been a doozy. I'm learning all sorts of fantastic things about construction techniques in the U.S. in the sixties. I'm also learning about how leaks cause wood rot, and how many layers of tile, flooring, etc., you can pile up before it's really time to tear things out and start over.

In many ways, it's an awful lot like software development :)

The saddest part of it all is that I'm a renter. Oh, well. At least I'm a renter who's lucky enough to be married to a woman endowed with (more or less) saintly patience and endurance.

Oh, yeah, this would be a good time to point out that the marriage is still quite fantastic, even after almost eighteen months. I say "even after" because I often hear tales of the honeymoon ending after the first year. Well, I guess we chose wisely, because I still like to sit and try to figure out what I did to deserve this gift.

Philosophy Wars Dept.:

I really want to respond eloquently to the various concerns I've heard voiced by and linked from by a few notable bloggers. Add to that the recent letter (now withdrawn) suggesting "banning" the GPL from government-funded projects in favour of differently-restrictive licenses.

But I lack the energy and focus right now to do so in a manner consistent with my abilities, so I won't. I promise, as soon as I get my own damned blog up (which is a major project, because I'm not really happy with any of the tools available, which, of course, means writing code), I'll weigh in. As if anyone cares. "Does anybody even notice? Does anybody even care?"

DSL has been down for over two weeks now. Harumph.

Ilan: +1 on the "move a dumb TTY interface to a dumb GUI interface and it's still a dumb interface" sentiment. As for telling everyone to fuck off while going off on your own, it's tough. I say that having some experience doing so :)

The toughest part about it isn't building the house, it's finding a place to live while you're growing the trees. (uh, metaphorically speaking :) ). What I mean by that is this: while we're off in the hills, writing the code which will be the basis of truly great systems, life goes on. Meaning bills demand payment, code begs writing, and so on. All of that ultimately means that things need doing, and people like us are extremely likely to want to do those things on the machine. In fact, to do them otherwise would be silly, and probably piss us off.

The catch, of course, is that the whole reason we're off in the hills, growing trees for our new house, is that we don't like the accomodations we have. Not only that, but we can't find a supplier of quality timber products that meet our aesthetic, structural, and environmental impact standards. Meaning that we generally don't like the software that's out there, and don't even like the tools we'd have to use to build "better" software :)

So we can choose amongst these options (in no particular order):

  • Do things manually (like, paper and pencil manual) (Incidentally, this is what Ted Nelson does (did?) for a long while.)
  • Do things manually (like, electronic manual) in hopes of eventually harvesting the data.
  • Do things with the software we don't like, both to "get it done faster" (though not as fast as it would be with our tools), and in hopes of eventually harvesting the data).
  • Take the time to write "just enough" of the software we need to do it "close enough" to the way we would do it once the trees had grown to maturity.
  • Convince someone else to do things for us in whichever way suits them (ie: delegate).
  • Convince someone else to do things for us in whichever way suits our ultimate needs (ie: delegate but with guidelines).

Case in point: I've been working on selfish off and on since about 1997. Before the insights that lead me to the particular fusion of ideas in that, from about 1993 on, I was working on something called ev, which was basically just a semantic network (though I didn't know it at the outset). All of the pies into which I dip my fingers are ultimately connected to a unified vision of information being both everywhere and in one place (conceptually speaking). That is, I'm tired of entering data many times :) I want everything I touch to be a part of a seamless, holistic system.

My stubborn insistence on this vision has lead me to a place where I'm about two and a half years behind on basic financial paperwork (both for the tax man and for "proper" management of my business). Needless to say, that's a very bad place to be. So, with enough pressure from people around me, I finally sat down and forced myself to take a hard look at the problem space, and figure out the shortest path to my immediate goal (note: not to fulfillment of my vision, but to the intermediary goal of avoiding imprisonment).

Armed with a ruthless disregard for the purity of my vision, I decided to use GnuCash. It has a "good enough" balance of strengths and weaknesses (note: according to my vision and the standards that vision defines). Since it's GPL'ed, I know that I'll be able to harvest my data one way or another, if I even care about that when the time comes.

And so, here I am, entering reams of data from poorly managed paper files, trying to make sense of it all, and wondering exactly where I'm going to come out. Ultimately, though, I know that, no matter how painful it is, this process is getting me closer to the goal. Persevere is my mantra. Every step I take toward getting things in order is ten steps I'll have free tomorrow to put towards my real work.

I just keep reminding myself that the really great thing about the house I'm building is that it can house as many people as want to live there.

30 Jul 2001 (updated 30 Jul 2001 at 06:08 UTC) »
Things I've learned recently:

screen rocks. It's wonderful having four pine windows open, each on a different mailbox, and not having to worry about shutting them all down and opening them all back up whenever I change locations. It's also great just being able to remotely detach my laptop's session when I happen to log in from somewhere else, and catch my pine session right where I left it.

Now if we can only get this for GUIs. I mean, aside from using VNC. Though I suppose there's no real shame in that. Hmm...

Keep your books up to date. I am now in the middle of the pain of entering two and a half years of back accounting information, so I can catch up on my taxes and turn in some expense reports for a former employer. This would have been so much less pain if amortized over those years.

By the same token, what kept me from doing it as I went was a lack of tools that I considered "up to the task", and a lack of time to invest in seriously writing them. The various proprietary packages had too much baggage (beyond their proprietariness), and I didn't want to wrap myself up in that only to not be able to get my data back out when I was ready to move on or write something.

So, in a way, it's actually good that I'm doing it all at once. Even though it's a lot of work, because I'm doing it over the same few days, it's all going in relatively consistently. If I did it over two and a half years, I can see my ways of dealing with various entry challenges drifting over time.

This would be a good time to give kudos to the GnuCash folks. Even though I have nits to pick on every scale from the trivial to the Colossal with the package and the code (because I'm that kind of asshole :) ), I respect mightily the work they're doing and the size of the task they've undertaken. And, the bottome line is that, for all of my "I would do it this way" and "it doesn't work the way I want it to" blustering, the shit works, which happens to be the single most important goddamned thing to me right now.

I hope that previous paragraph comes out as the compliment I intend it to be :) If not, and you're a GnuCash developer, send me your PayPal info and I'll buy you a beer as a more succinct statement of my appreciation. Hell, even if you did read that as a compliment (and you're a GnuCash developer), send it anyway. Because, hey, free beer. Cold beer. :)

MDF is friggin' heavy. I'll post pics later, but the short version is that I got tired of trying to cobble together shop cabinets out of the random (too small) pieces of OSB I had lying around, so I went out and bought 5 sheets of 3/4" MDF, 1 sheet of 1/2" MDF, some 1/4" Luaun, and some 1/4" Masonite. All of it, piled onto a little Toyota pick-up, made the lee-springs bend entirely opposite of the way they're supposed to at rest. Of course, these springs were already in pretty bad shape. Or were they? And don't get me started about getting it all into the shop. Ugh. And this is supposed to be a relaxing hobby. Whatever.

MDF is doubley-friggin' dusty. I suppose, for the benefit of the non shop-inclined out there, I should recap what MDF is. It stands for Medium Density Fiberboard, and is a manufactured sheet lumber product that has excellent dimensional stability (ie: doesn't warp, swell, etc., with changes in humidity), machines very well (ie: routers and table saws love to chew it up with nice, clean, precise edges), and takes paint very well.

The problem is the very reason it machines so well: it's made up of highly compressed, very small wood particles. This is not that particle board crap that all of the crummy furniture you buy at Wal-mart is made from. This is like cardboard dust (yea, dust) that's been packed together with adhesive. So when you machine it, you get back cardboard dust. And it gets everywhere. I had to go get a special bag and HEPA filter for my Shop-Vac(tm) just to suck it all up without stopping every five minutes to clean the filter.

Plans are helpful. For the aforementioned shop-cabinets, I went all-out exhaustively anal in planning them. I fired up Visio (yeah, I know, I'm a bad person) and laid them out in excruciating detail. I made a sheetgoods cutlist, along with little machining diagrams to tape to each piece as it went through the shop. When it finally came time to run everything through the sharp, fast-spinning things, it went down without a hitch. I was incredibly surprised, because my entire woodworking history to date has been a serious of fuckups :|

No, really. Plans are helpful. Of course, there were a few things that I decided to "free-hand", because I hadn't completely finished the plans in one or two minor places. Want to guess what happened? Yeah. I fucked it up. Sigh. Fortunately, as I mentioned, they were relatively minor details, and I managed to hide them well enough :) But still, it's annoying.

I should start woodvogato.org, for the two people other than me that actually give a shit about free software and woodworking :)

Ah, well. Back to the bookkeeping grind. Soon, I'll be in good with the tax man again, and will be able to focus my energies on software instead of vague, unidentified worrying.

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.

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