The Fruits of my Labor

|image0| Weeks after purchasing and installing the wood working equipment in my basement (which was generally dubbed “out of character” to say the least), I have something to show for. Now when people ask why I need a table saw, and I respond “So I can make a picture frame,” I’m serious. Here it is, holding my Tori concert placard. Now that that’s done I can let those tools sit in good conscience.

date:2004-02-25 08:14:01
category:my life, woodshop

ccValidator 1.3.1 Update Now Available

As promised yesterday, I’ve updated ccValidator with a minor update. The source, as always, is available in the release archive. This release exposes some validation errors which were previously masked as “unknown errors”. These updates provide more verbose error reporting in instances where the RDF is well-formed XML, but not properly structured RDF.

Comments, criticism and suggestions are welcome, as always.

date:2004-02-20 12:05:32

A Few Quick Notes

OK, I’m sort of busy with school right now, but I’ve had some questions and wanted to post a brief update.

  • ccValidator: New release, coming soon: better (more) error reporting, with more informative error messages (hopefully).
  • mozCC: oh-eight-oh development is well under way; stay tuned for a reworked details UI, preliminary support for foaf:tipjar and much more. Note to all you HIG fanatics out there: yes, I’ve been properly thrashed; yes, I’m fixing things. Move along.
  • quickFile: no, it’s not dead yet; in fact, a release that actually works should be rolling out within the week.
  • and finally, stayed tuned for the epic battle of installing Debian Sarge onto an Acer Travelmate Tablet. It’s bloody and gory, but you won’t want to miss it.
date:2004-02-19 16:05:27

mozCC on Slashdot

I guess my 15 minutes are here. mozCC was mentioned in a Slashdot story this weekend. The effect has been a little overwhelming: a jump in downloads and page views by an order of magnitude, and dozens of e-mails. Unfortunately, the e-mails all read something like this:

Hey, mozCC is cool, but it breaks (middle-click|ctrl-click) to open a new tab! I can’t deal with this!

So I guess the good news is that people are trying mozCC. The bad news is they all seem to have found a bug I didn’t. It’s not all bad: I’ve actually managed to track down the bug and fix it, fixing a handful of other minor annoyances at the same time. Unfortunately, MozDev’s CVS seems to be down right now so I can’t check my changes in. But fear not, at this rate I should have an update available within the week, and it looks like it will close out several issues I’ve been battling for a while.

On a final note, the Mozilla Foundation released Firefox 0.8 this weekend. For those of you not following the ever-changing name saga, Firefox is the new name for Firebird. While I haven’t done extensive testing yet, mozCC 0.7.5 seems to work with Firefox just fine.

Thanks for the encouragment, everyone; stay tuned for more updates.

date:2004-02-10 09:59:47

Half-Measures & Half-Truths

My birthday falls about 45 days before New Year’s Eve, and as such I tend to spend the last month-point-five thinking about resolutions. Birthdays for me have always been a time to consider where my life is at, where I want it to go, and how to get there. New Year’s Eve seems to have the same effect on people, so it’s only natural that I tend to lump them together. Mix in my love of lists (nothing better than marking through the last item), and you’ll understand why I put so much effort into resolutions. My track record isn’t perfect, but it’s good enough to keep me in practice each year. This year I’ve put a little more time and effort into thinking about things. In fact, I’m just now deciding on a plan for 2004, 37 days into it. Part of developing resolutions is considering where I’ve been in the last year, and 2003 had a lot to consider.

I went back to college in January for the first time in nearly 5 years. My partner Garrett and I bought a house in the spring. My grandmother died in July. I found out an old flame Chris was dead (and had been for a year) late in July. I found out what some members of my family really think of me in the fall. And I was reminded what brotherhood and friendship mean, and why they’re important. These events all formed the backdrop of a very personal search: who am i, what do i want, and what should i do with my life?

Early on in life I learned that love is conditional. If you act the right way, say the right things, people will love you. And who doesn’t want to be loved? I learned the hard way in school that if you were silent, didn’t make waves, and kept to youself, the “popular” kids would leave you alone. The corollary is that alone is better than victimized. I know that my experience was not unique, but it formed the basis for many of my actions. I learned early and often that the key to survival is becoming someone others will love. So in 2003 when I realized that I hated who I’d become, hated my life, and hated my surroundings, I also realized that the situation was one of my own making.

I was unhappy because I wasn’t able to be honest with people. Instead of saying, “don’t call gay people faggots; it makes me feel degraded,” I’d say “ha, ha, faggot!” Instead of saying, “look, you’re a nice person, let’s just be friends,” I’d say “I love you too.” How does the song go? “I always say I love you when I mean turn out the light.” So honesty, with myself and with others, became something I started thinking more and more about. And I thought I was making progress, doing better, figuring things out.

But then towards the end of the year, something happened. We were celebrating Christmas at my grandparents. I was actually enjoying myself. Garrett and I sat next to each other on the sofa, playing games, waiting for supper. I had my arm along the back of the sofa, behind him. I felt that warm feeling radiate from my chest that serves as a physical reminder of how happy you can really be. It’s supper time, and I go to wash my hands. On the way out of the bathroom, my dad pulls me aside.

“I’d really appreciate it if you didn’t put your arm around Garrett; it makes Grandma and Grandpa uncomfortable.”

I was taken completely off guard. My dad has been my biggest ally lately, and I thought my family really accepted me and Garrett (even if they didn’t approve; I’m smart enough to know there’s a difference). All I could say was, “sure, OK.” Sure, OK? Hardly. I’ve been kicking myself for that response ever since. Why didn’t I say, “I’d really love to talk to Grandma and Grandpa about this since I don’t want to offend them, but do want to feel comfortable in their home.” Why didn’t I say, “I didn’t really have my arm around him; they should come to me directly.” Or why didn’t I at least say, “hell no, fuck off.” Because sometimes I just want them to like me. I have my doubts about whether it was really my grandparents who had a problem with things, but that’s another story. What’s important here is that my instinct, the first thing I thought of, was appeasment: don’t make them upset, agree to what they say, sell yourself out for a little more of that warm feeling.

I think I can be forgiven for wanting more of that warm feeling, but I don’t want to ask myself for forgiveness as often this year. So what is my Resolution for 2004, my 28th year? No more half measures, no more half truths. I want to say it again, like a mantra: No more half measures, No more half truths.

In 2004, I don’t want to tell others or myself half-truths in order to make people like me. I don’t want to “go along to get along” only to find myself doing things in half-meaures because my heart’s not in it. I don’t want to walk away from a conversation wondering why I embellished, or out right lied, just because I thought it was what they wanted to hear. I don’t want to sell out my own wishes and dreams just to make others happy, or because it’s “easy.” I do want to be more honest: with myself and with others. I do want to be honest even when I know it will hurt. Finally, I refuse to sell out even a little just to be loved. Because that’s not love. It’s not love when it’s conditional, and it’s not love for myself if I have to sell-out for it.

No more half-measures; no more half-truths.

date:2004-02-06 13:56:39
category:my life

Publishing with PyBlosxom

I’ve now managed to convert the majority of over to PyBlosxom. Maybe not the majority… but the non-blog, non-pixelated content. I’m still impressed with it’s flexibility, and even more impressed with the plugin API.

I knew going into the conversion that I didn’t want my entire website to look like a blog. That’s why my blog doesn’t render in the root of my domain. But I also recognized the power of formatting things as “posts.” My solution works like this. I abuse the PyBlosxom “each directory is a category” idea to create the heirarchical structure that I want. Each “entry” in the directories becomes a different page, then, in that category area. Finally, when serving the directory index, I serve the contents of the README file (if it exists) instead of the typical blog-like entry list. This allows for some really simple content management with near-instantaneous publishing.

To get the README file served, each entry as a page, and the directory tree, I wrote a handful of plugins. They’re not really documented yet, but you can find them in cvs.

I order to get the mix of dynamic and static content served the right way, I had to do some serious mod_rewrite hacking. If you find a link that doesn’t work, please, let me know .

date:2004-02-04 13:34:00

PyCon 2004

PyCon 2004 is coming March 24 – 26, 2004. Like last year the conference will be held at the Cafritz Center on the campus of George Washington University in Washington, DC. And like last year, I’ll be presenting.

This year Vern and I will be talking about our experiences building an online classroom system, Stoa, for Canterbury School. I’ll post more information here as we get things put together.

date:2004-02-03 13:11:37

PyBlosxom > Blosxom > MovableType

I’ve been working on find/developing/adapting a content management solution for my employer, and along the way decided to try out Blosxom. Blosxom is unique among blogging systems (well, maybe not…) for it’s use of the filesystem as the database. That is, every file with a given extension is an entry. This makes posting ridiculously easy, and also lends itself well to all sorts of manipulations. After playing with it for an hour, I was hooked.

Part of what makes Blosxom so addictive is it’s plugin system. Need to change the way text is processed or outputed? Just add a plugin! Unfortunately, Blosxom is written in that other scripting language, and not Python. And given my well-known allergy to the-language-that-shall-remain-nameless, I wasn’t about to dive into plugin land. And that’s where PyBlosxom comes in.

You could view PyBlosxom as the needless product of a religious crusade, an unecessary contribution born out of the Python v. Perl (oops, I said it) battle. I disagree. PyBlosxom maintains much of the “zen” of the original: true, there’s more code involved, but the simplistic approach to publishing remains the same. PyBlosxom falls short of the original, though, in the number of plugins available. However, if you know Python, creating plugins is ridiculously easy. I assume the same can be said about the original Blosxom and Perl, but as I said before: I’m allergic.

The discovery of PyBlosxom has led to a couple of decisions. First, I’m going to be publishing using PyBlosxom. Over the next few days I’ll be fine-tuning my template and converting my content to plain text files. I’ve been meaning to flesh out non-blog content for a while; PyBlosxom makes it easy enough to actually tackle. After that’s working, I’m planning to convert The Law of Averages to PyBlosxcom as well. Don’t get me wrong: I love the web interface of MovableType. I just like the ability to hack the code even more.

So will PyBlosxom be used for my corporate project? Not as it stands. One of the requirements is that it needs to support multiple contributors. Multiple non-geek contributors. This is an area where MovableType shines: easy to use, through the web publishing. So maybe I’ll graft a web interface onto PyBlosxom. Maybe I’ll find something different to use. The bottom line, however, is that publishing just got a little more interesting.

date:2004-02-02 09:04:36

Happy Groundhog Day

…and happy birthday, Ben Purkis; wherever you are.

date:2004-02-02 08:07:56
category:my life