Upcoming Event: Gnome Boston Summit

I’m going to be traveling to Boston for the first time in October for the Gnome Boston Summit 2005. Looks like a really interesting group of people are planning to attend, most (OK, all) of whom have way more Gnome-street-cred (if there is such a thing) than I. I’m working on cooking up some ideas to bat around with the geeks — I’ll post them here as they become demo-worthy.

So here’s what I want to talk to other developers about:

  • we’re pretty good at licensing — what about discovery?
  • and once you discover content, how do you remix it? what can we do to make Gnome a killer remix platform?
  • beyond remix, what about “original” creation that uses parts or influences from other works — what does a UI for that look like?
  • we’ve got this embedded metadata, what should we be doing to leverage it?
  • finally, what apps/file types should we be targetting for better metadata support?

So if you’re going to be there and want to talk about how we integrate content discovery and reuse into the desktop, look me up.

date:2005-09-22 07:49:08

What’s The Point?

Just watched the Six Feet Under series finale again. Sometimes you want to wallow in your pain, and that did the trick, in particular the closing sequence in which Claire has visions of everyone close to her dying.

When Grandma Geisel died just over two years ago it hurt like hell. I had seen her just days before she died, and she was just so peaceful, so content with life. Even that knowledge didn’t make it easy to let her go, though. For weeks after the funeral I dreamed about her — those were the good dreams. The bad ones were my childhood Sunday school lessons brought to life, lake of fire and all that. But she had over 80 years, and died having seen her children grow and grandchildren and everything you’re supposed to see.

I just can’t comprehend why Tina died, I just can’t understand what the point is. Everything in my day to day life seems so trivial now, so pointless. There just doesn’t seem to be any comfort in normalcy this time around.

date:2005-09-20 19:35:54
category:my life

Bad Mood Monday

I’m in a bitter, foul mood this morning after yesterday’s news. On the way to the coffee shop this morning I saw a minivan with one of those noxious Promise Keeper’s bumper stickers — “I (heart) My Wife”. I’d like to suggest a couple alternatives:

  • “My wife’s a nagging bitch, death can’t part us soon enough”
  • “All that stands between me and decent sex is this bumper sticker”
  • “I (heart) my wife — everyone else thinks she’s a cunt”

That’s all.

date:2005-09-19 08:57:31
category:my life

I Miss Tina

It’s hard to know how to begin an entry like this. I just received an email from Curtis informing me that Tina Marie Weitbrock passed away Thursday night.

It is my deepest regret to inform all of you that my dearest friend Tina passed away Thursday night. After spending much of Friday and saturday crying, I made time to e-mail all of you. Tina and I met at Purdue University while I was one of the co-presidents for the LesBiGay Network. She and I instantly knew each other and became the most amazing friends. We both took ill at the same time; and, oddly enough, we both had the same cardiac condition. She was and is my soul sister. Even as I write this my tears are still falling from my face. Criag Yoder and I are going to the viewing tonight and the funeral tomorrow, but we are both an emotional wreck. I would like to ask each of you to send your love and healing energies to Craig, Tina’s family, and myself.

Tina, Curtis and I met when we were at Purdue in West Lafayette. Curtis and I were officers in the LesBiGay Network, and Tina was a de facto addition to our triumvirate. I like to this of us as a trio — the three musketeers sort of thing — but truth be told Curtis and Tina were soulmates, bonded instantly; I’m just grateful to have been able to orbit that embodiment of humor, loyalty, love and friendship for the time I did.

It’s hard to get news like this and not ask yourself what you could have done differently, what you should have done while you had time. Tina and Curtis both live here in Indiana, and the state’s not that big, yet I haven’t seen either in nearly a year. Due to timing, I won’t be able to make visitation today; it’s still unclear regarding the funeral tomorrow. And so I fail to live up to obligations even in death. I suppose the lesson (because there has to be something out of a loss so senseless, doesn’t there?) is not to put off telling people things, not to assume you have another day. I miss Tina.

Tina was part of my first chosen family. Telling my parents, family and friends that I’m gay didn’t go well. The friends I kept were visibly uncomfortable hearing about my life — they wanted the old Nathan back, nevermind the fact that “old Nathan” was a complete and total fabrication. Tina, among others, took me into her heart and was one of the first people I can remember feeling truly loved me for who I am, not who they expected me to be or wanted me to become. She counseled me when I was trying to woo Ben, and comforted me when it ended.

After I told my pastor and then family in September, I was excommunicated from my church. I dropped out of school and moved home with to my parents’ house. By November I realized this wasn’t something I was able to change, or even wanted to. Curtis and Tina invited me to celebrate Thanksgiving in 1997 with them in West Lafayette. Neither of them wanted to be with their biological families, and they were kind enough to include me. My family, of course, couldn’t understand, but the memories I have of that holiday make it one of the brightest spots in my history.

We all spent the day cooking, drinking wine. When the sink clogged and garbage disposal wouldn’t budge it, we used a toilet plunger on it. It seemed very funny at the time, probably because Curtis’s roommate was obsessive compulsive about cleanliness, and had he known it happened would have called the landlord, insisting they replace the sink. Dinner was very, very late — turkey takes longer than you think — but when we ate, it was cool and dark outside, the area around campus desertted for the holiday break, and it seemed like we were in this coccoon of hopefulness and light.

Tina and Curtis started a tradition amongst our friends of hosting a “Leather and Lace” party. I don’t recall if they were every semester, or an annual tradition. What I do remember is Tina dressing as the Church Lady, that mistress of God with a riding crop, doing the good Lord’s work. She was incredibly funny, one of those people who could mock something sacrosanct without becoming bitter or closed minded.

I miss Tina.

date:2005-09-18 16:30:27
category:my life

PyCon 2006 CFP Out

This year PyCon is moving from our home at George Washington University’s Cafritz Center to sunny (I assume) Dallas. The call for proposals is out, so start thinking about what you want to see and (hopefully) what you want to present.

date:2005-09-12 07:42:11

ccPublisher, Python and XML

So two days ago I launched the first Developer Preview of ccPublisher 2 for Linux, promising Windows and Mac OS X builds “within the day.” It’s been two days, they’re not uploaded, what’s going on? Funny you should ask. It actually has a lot to do with something else that’s been generating a lot of discussion lately on Python blogs: XML.

Philip J. Eby, the mastermind behind things like PEAK and Python Eggs, wrote a blog post last month titled Chandler Begins Recovery from XML This follows his self-described rant from late last year, Python is not Java where he took developers to task for, among other things, turning to XML as the solution to all your data and configuration woes. The gist was, it might work for Java, but when mixed with Python it’s nothing but a boat anchor. So how is Chandler “recovering” from XML? By dumping it. Their system for extending Chandler, parcels, previously used an XML file to define extension points and connections (roughly — I won’t claim really deep knowledge here). The new system, championed by PJE, uses Python syntax and code — descriptors, registrations, etc — to accomplish the same thing. PJE’s argument, as I read it, hinges not on the idea that XML is inherently evil, but rather that using XML is often a sign of over-engineering. As a believer in YAGNI (Ya Ain’t Gonna Need It) in software development, I can agree with that.

So what does this have to do with ccPublisher 2, and more importantly the delayed Developer Preview packages? Let me address the two parts of that question in sequence.

First, what does it have to do with ccPublisher 2? A major design goal of ccPublisher 2 is enabling third-party contributions, in the form of extensions and derivative applications. We’re doing this in a number of ways, including basic things like improved documentation. A major tactic, though, is the use of loosely coupled pieces of code that are intentionally ignorant about one another. For example, an MP3 file contains metadata in the form of ID3 tags. The object that wraps the generic file doesn’t know this, but it knows it can say “Hey, all you components — anyone know anything about this here file-thingy?” and an adapter object will respond with everything it knows. So in theory (and in practice, actually — this mostly works already) you can swap out or add objects that respond without major surgery. A huge improvement over the ccPublisher 1 codebase. All these bits of code are tied together by XML files that describe subscriptions, adapters and interfaces. I chose the ZCML format, developed as part of the Zope3 project, because I was familiar with it, and because I was reasonably confident I could use code from Zope3 to make my life easier. And it turns out I was right — ZCML was reasonably easy to separate from Zope3. It’s also made life somewhat easier, and it will let non-coders who need customized metadata fields to add them relatively easily (note that I haven’t actually decided if non-coders will actually need to do this, it’s just the easiest rationalization right now).

So after reading Philip’s rant(s) and background on deprecating XML configuration files in Chandler, I started thinking about the suitability of ZCML for the task at hand. ZCML makes a lot of sense for Zope3 — a big advantage (in my mind) of Zope3 over previous versions is that (in theory) you can take existing classes that model data or behavior and use them in Zope without making them Zope-specific. In that case moving the configuration and registration into external files helps with that goal. ccPublisher doesn’t have that goal or that baggage — anything used in ccPublisher will probably be ccPublisher-ized in some way. I’m not convinced that ZCML is the wrong choice for ccPublisher, but the talk has had the effect of making me think about it more now than I did earlier.

Now, on to the second question — why the delay. Well, it turns out that ZCML makes life a bit more difficult when packaging your code. Linux wasn’t a problem — you just use distutils and specify a recursive-include in the MANIFEST.in. Windows is a different story — we’re using py2exe, which means there are two problems: first, py2exe ignores the MANIFEST.in when finding modules to include. This makes a certain perverse sense, but it still bites you in the ass. After hacking up a script to include the ZCML along side the Python byte-code, though, you [I] realize something — the byte code is in a ZIP file, and your code doesn’t traverse into ZIP files (ala PEP 302) to retrieve the ZCML resources properly. Additionally, even though you can set up a dummy tree along side library.zip containing the ZCML, the Python pathing makes things, well, ugly. Really ugly. Sigh.

So ccPublisher 2 Developer Preview is slightly delayed on Windows while we make some retrofits to the code. The solution I’ve decided on is Python Eggs. Eggs let you package your Python code, make explicit declarations about dependencies and (most importantly for this situation) access non-code resources stored in the package.

So interestly, PJE appears to have the ability to spark concern as well as solve weird edge-case problems.

date:2005-09-08 16:56:35
category:development, python

It’s a start…

This might not be the solution, but it’s better than anything I’ve seen the Bush administration propose for dealing with the aftermath of Katrina.

Oh, and while we’re talking about helping others, I feel like I need to remind people that sometimes we can’t help as much as we’d like, because the government’s braindead regulations prevent it. Case in point: Sure, I’d love to donate blood since the local Red Cross is asking, but I can’t. I’m gay.

date:2005-09-08 14:58:51

mozCC 1.1.2 Out

mozCC 1.1.2 is out; no feature improvements, just compatibility with Firefox 1.5 (and current nightly builds, alphas, etc.). I am working on some improvements to mozCC which should improve the overall user experience. In particular, I want to handle the following situations:

  • support for embedded, licensed content: Currently mozCC looks for a page license, and displays it’s information in the status bar. It’s perfectly valid, however, to license the text of a page with one license and the photographs with another. So we want to have an easy way for users to see that distinction.
  • support for discovery: mozCC lets you see that content you’ve found is licensed, but how do you find new licensed content? I want mozCC to help with that.
  • support for remix and re-use: I have two pages, can I mix them? Under what license? mozCC knows about the licenses in use, so I hope to help users re-use content.

To people who have inquired about localizing mozCC, I’m holding off until I get some of these fixes landed. They’re going to change lots of the internals, so it doesn’t make much sense to translate strings that may very well change or go away. If you’re interested in helping to localize mozCC, contact me, or subscribe to my blog’s feed — I’ll announce a call for translations there.

As always, let me know if you have any problems with the new release. Users who’ve installed an update to Firefox and found mozCC marked as “disabled” should be able to click “Find Updates” from the extension manager and download it auto-magically.

date:2005-09-08 09:52:45