I don't recall what caused this thought to occur to me - that I should write about the handful of jobs that I've considered interesting over the years - but it seemed like an interesting topic nonetheless. It's not that each of these jobs is something I would necessarily love to do today, but that I've considered them so at one point or another.

One of my favorite fantasy jobs is that of the bicycle messenger. I've always found a lot of glamour in the idea of running parcels from place to place in the city by bike.

Consider, you'd have to be in great shape to be a courier. Being in constant motion all day, delivering packages, running up stairs and down corridors, it's likely to keep you very fit. That's an attractive quality in a job, I think.

Getting to meet new people every day would be fun, too. It's kind of like the relationship you have with the UPS guy. You don't know him very well, but you see him often enough to make casual conversation.

"Travel for work" has an entirely different meaning for a bike messenger. You'd travel across town. In a bigger city, you would get to see a lot of the landscape, I'd bet. You would never have to take lunch at the same place twice if you were a courier in a big city, and there would always be something fresh going on.

I'll admit that I also have a strange addiction to messenger bags. I've been on the search for the perfect bag for a long time, and I've still not found it. But I love the idea of the messenger bag. Did you know that some of the best messenger bags used by actual couriers are made out of the vinyl they use for billboards? It makes real messenger bags durable, colorful, and one-of-a-kind.

Kevin Bacon portrayed a bike messenger. So did Jessica Alba.

I think that there is still a place in the world for bicycle messengers, even with the modern pace of door-to-door FedEx. There's something nostalgic and precious about entrusting a specific person to get your items delivered promptly.

Of course, my dreams of being a bike messenger are dashed very easily. I don't live in a city, so there are no clients, and starting that much bike travel all at once would probably kill me. Still, imagining gliding through traffic on my bike with someone's important delivery makes me smile.

This isn't any serious attempt to build a case in any particular direction, just some undeveloped thoughts I was having in the shower this morning after yesterday's 12.5-hour work day.

Design often follows no rigid form, and is fluid in that you need not follow convention to achieve it. With a pen or brush or stylus, you can craft a design that looks however you like with any level of appeal or function to those who experience it. Design, in regard to computer production, is often static and shows little regard for interactivity.

Code, as an art, is more than design. Code requires a regid process that is unlike design. There are rules to producing code that make it not work properly when not done correctly. Still, within that framework is the flexibility for art. Code incorporates aspects of layout that are commonly associated to design, but once again, with rules that define what can be done and what can't. While design should account for user experience, code must account for user experience or the perception of it is negative.

Where design have have a positive or negative impact on the viewer based on their viewpoint, code can be determined to work properly or not, be functional or not, be useable or not.

After yesterday's unusual work session in an actual office, I came home pretty beat. Not from the work, exactly, but from the traffic. I don't know how people do that commute every day.

But on my way home, I stopped at the Super Fresh grocery store to pick up a couple of items. Being out of soda at home is not a state that I like to have persist.

Armed with a case of diet soda and a box of Nutty Bars, I headed for the checkout. I wasn't really in the mood to interact with people - the traffic had put me in a bitter mood - so instead of choosing one of the two open lanes, I elected for the self-checkout.

"Welcome to Super*Fresh!" the machine screamed as I pushed the start button. The two free cashiers, who I had avoided using a circuitous route, looked over in my direction.

"Please scan your first item, then place it in the bag!" I concentrated on my task. Scan two items, and escape the store without interacting with anyone. Though, the machine was nearly qualifying as another annoying cashier in its own right. I wonder if the other cashiers secretly enable all of the ridiculous prompts in an attempt to scare people away from the self-checkouts. Hmm.

I swiped my debit card through the card reader at this point, since I hate hearing the prompts, as you might have guessed. If you run your card through first, then the only prompt you hear is to verify the total at the end, instead of the whole ordeal about choosing an option and swiping your card and following the stupid prompts on the other system. (Why can't they integrate these?)

I scanned the Nutty Bars and put them on the scale. I never put my items "in the bag" because I'm usually only checking out with a few things, and don't want the plastic bag.

I scanned the soda, and put it on the scale. Then the machine complained that I had put an extra item in the bag. I had not. I took the soda off the scale, and although the total cost on the screen included the soda, it wasn't registering as having any weight for the purposes of filling my cart.

Yes, I've spent too much time figuring out how these things work.

So, I looked at the machine perplexed for a moment, then continued by putting the soda on the floor. I figure that as long as I am paying for everything, who cares whether it's in the bag. At this point, I'm totally ignoring any voices that might be speaking near me saying such things as, "You're ok." Why would someone be saying that to me? Anyway, I continued.

"Do you have any coupons?!" screamed the machine. I quickly punch through all of the options I can.

"Do you have a Super*Card?!" I push "No". I do not have a Super*Card. I do not have an intention of getting one, and I just want to leave. I want to pay an extra $.30 so that I can not suffer any more humiliation at the hands of this machine. Yes, the cashiers are all standing there, watching, with their arms folded.

A voice behind me. "You don't have a Super*card?" he asks. He's maybe 14. Why is he talking to me? I just want to leave with my Coke.

"No," I say content to pay my extra $.30 so that I can avoid having more junk mail sent to my house from the executives at Super*Fresh who pay people to sort their junk mail.

I finally get to the last button on the page. "Pay." I try to push it, and the system doesn't respond. The whole thing freaks out. What the...?

"You're ok," says the voice behind me. Suddenly my screen registers a discount and a Super*Card number.

I have to re-swipe my card, because the machine now wants to ask me about my payment method again. No, I don't have coupons. Yes, I agree to push the button on the other box that is asking me "Is $4.25 ok?" Again.

It turns out that kid was playing with my order the whole time. This is why my soda didn't weigh properly. He explains all of this to me as I wait for the machine to process his extra instructions with my purchase. I wouldn't be surprised if there were extra charges on my card that were funding his college at this point. Would it have killed this kid to just leave me alone? That's why I didn't get in the regular lines in the first place. Yes, $.30 is worth my time.

"Don't forget your receipt!" screams the machine on my way out.

The last five days have seemed both like an eternity and an eye blink, all over a word - Habari - that many people are just recently becoming aware of.

Maybe you first noticed when Chris J. Davis switched his blogging software away from WordPress. After that, dominos started falling, with posts about it from interesting corners of meta-blogdom. It's really been hard to keep up with the influx of interested people and do development and have a life. Thanks so much to Berta for her support during this process, which is undoubtly greatly attributed to her being tired of hearing me complain about WordPress.

So what's the big deal, anyway? Maybe people have said they're interested, but without actually dipping into the small-but-growing community and asking around, it might be hard to get a sense of what any of this really means. Let me cover a few of the common questions and misunderstandings surrounding Habari.

What is Habari?
Habari is a new blogging platform named with a swahili word meaning "News" or colloquially, "What's up?". It is installed on a server of your own, not a blogging service, like Blogger. Habari aims to be a fully functional blogging tool. With Habari, a blogger can do anything they can with the most common blogging tools that are available - draft posts, publish drafts, receive and moderate comments, the sort of thing that blog software does.

Why not use {some other blogging tool}?
There are different reasons for using different tools as each has its strengths. I hope that time proves out Habari's choice to focus on community involvement in every step - planning, design, implementation, distribution, through support. Habari has also chosen to focus on modern technology and coding techniques that legacy systems are not as easily able to integrate.

Why develop another blogging tool?
Everyone in the project has his own reasons for wanting to start fresh rather than contribute to another project or fork something extant, and any reason is really going to be personal. For me, the big reasons are an opportunity to help shape the direction of the project, to build something truly new and inventive, and - especially - to share the experience with people who have these same interests.

Who is associated to this project?
Well, we've had a few people join up with the cause since skippy, Rich Bowen, Chris J Davis and I conceived it back during OhioLinux. We knew that our coder skills would need some help if we were ever going to get a pretty UI design. Khaled Abou Alfa offered up his time in response to our call, and dropped off some crazy wonderful UI designs. After seeing what the project was all about, Michael Heilemann decided he was in, too.

Robert Deaton, who I practically dragged to the New York WordPress meetup with the intention of chatting up Habari, has provided a ton of great PHP insight from very early on. Jay Pipes has been great at pounding against our stubborn WP-isms (since that's where most of us come from) and getting us to consider some code that will really blow your mind when we finally release.

There are four published book authors in our core group. That statistic blows my mind.

I'm missing people who I don't know if I should name specifically, but who have provided code and design reviews all along the way. And I'm really lax in recognizing the folks who have come by our IRC channel on freenode over the past few days and - for whaveter reason posessed them - actually started to help and contribute code, documentation, testing, and enthusiastic moral support. I knew that people would want what we're trying to build, but the turnout from even our unprepared unofficial announcement has amazed me.

So what is special about Habari?
There are a few things that you'll notice about Habari the software apart from the decidedly inviting atmosphere in which we all work. Predominantly, we're using all of this year's tools. PHP 5 instead of PHP 4. MySQL 4 (or 5, still thinking about that) instead of 3. We use a complete object-oriented approach to our code that makes it very easy to experiment; tossing new things to the wall and see if they stick. The PHP Data Objects that ships with PHP 5 enables us to ditch some of the SQL injection issues that have plagued blog tools in the past, and affects performance very positively. (Using imports of our blogs with 2-3k posts and their comments, pre-alpha Habari data access was visibly perceptible as faster.)

The plugin system is top-notch: simple and flexible, written using objects that are very easy to learn. Habari does most of the work for you by registering your plugin hooks, and providing a special home in the interface for your plugin to interact with the admin pages for configuration. The theme system is similarly flexible.

Instead of settling on a single type of template, our template engine is pluggable. You should be able to create a theme using PHP functions (like WordPress does), or the popular Smarty engine, or an engine of another design. Themes will decide what features they offer, either by using a default set of templates (providing a set of template files for each type of page that the engine will display) or by telling the theme engine what pages are available - allowing you to easily add templates with special features at the URL of your choosing.

It sounds complicated, but in the few short days Habari has been in the open, I've seen both a new, working theme, and the Habari engine turned into something like pastebin. Note that this was constructed without anything but the sample code and the inline documentation, and in about a day. It just kind of showed up one day with a couple of guys saying, "Look what I did!"

Spam-handling is not an afterthought in the core product. While we continue to hack away at Habari, comment spammers are bringing some servers to their knees. When MT and WP were in core development, spam didn't exist. Having helped pioneer comment spam detection on WordPress (the original Spam Karma plugin was based on my spam-prevention plugin design), I know how difficult it was to shoehorn detection and moderation into the plugin architecture. As a result of the experience everyone has gained over the years of fighting spam, we realize the importance of making it easy for Habari to fight spam.

As a testament to this, Chris Davis showed me his Akismet plugin for Habari (hey, it's GPL! see below) tonight, and it seems to work just fine (and may be released on his site in a few days). If this development can happen that fast, I have full faith that an open source, peer-to-peer, distributed anti-spam solution that handles spam as well as Akismet will eventually find it's way to a Habari plugin.

Our documentation is going to be edited and ship with the software. If our site goes down, your documentation doesn't. Even with the bundled help, we still plan for a full community site with extra detailed help and user interaction for people who need more. And since we require documentation be submitted with source code updates, all of the developer documentation is written by actual developers that understand the code, and it instantly exists.

I'm glossing over a lot. There is too much very cool stuff to cover in this short of a space. Did I mention database independence with MySQL, SQLite, and Postgres as targets? Atom Publishing Protocol support?

Of course much of this is unimplemented functionality. But it is planned functionality. And a lot of it already does exist. We've figured out how we're going to do it over the past few months, and now it's just a matter of doing it.

But the next time you ask me what's special about Habari, I'll be sure only to mention the people. Because they just freakin' rock.

I've heard you're not using the GPL, does that mean Habari is not open source?
Habari uses a slightly modified Apache Software License. The Apache Software License (ASL) allows us to distribute our source and make sure everyone who helped out gets credit for it. If you contribute to Habari, you're agreeing to those terms. Apart from that, and that's not really a downside, where is the downside?

With the GPL, if you release your code as GPL, anyone who modifies your code is required to distribute that code under the same license, and the license requires them to pass on both the license and the source. In fact, some have suggested that plugins authored for GPL blogging tools are also tainted by the GPL in that they use that blogging tool's library functions. This means that you are permitted to sell your WordPress plugin, but when you do, the person who buys it can then re-sell it for less money, or even give it away for free! I guess there's a business model there -- sell your first copy for big dollars.

People who argue against the ASL say that if you can sell the code that's ASL-licensed, then the freely available source of plugins and themes will dry up. People who argue against the ASL say that we'll lose the ability to use wonderful GPL-licensed code in our project. I don't know how the community will respond to those statements. I wonder idly who benefits more from which license, and whether people realize that GPL plugins to an ASL core are just as valid and possibly more flexible than using a GPL core.

I know that our intent is to keep Habari free and open, and also to be fair with our own use of other projects with the same license, just like open source intended. If people think they can make money by selling Habari add-on tools, that's great - it means Habari is doing as well as I hope it will.

Isn't the high-tech requirement a bit steep for the common blogger?
Last year I started putting my Adsense money to good use, buying cheap hosting at a ton of hosting sites to see if you actually get what you pay for. That plan... It kind of fizzled. But as a result, I've got a few hosting plans at a few popular hosts and suddenly a good reason to do some "common man" testing.

As it turns out, Dreamhost, Site5, MediaTemple, and A Small Orange will all support Habari, with a single config line change. If your host isn't on this short list, your host might even still be able to run Habari. The thought that PHP5 is not widespread enough to be mainstream is, well... about as old as PHP4.

What's with the bells?
You might hve seen some bells in our various logo revisions. Here's the idea: Habari is the swahili word for news. When one thinks of news, they might think of a town crier, which is a very primitive form of podcasting. A town crier often has a bell.

One of the first logos we had was one I cooked up that is basically kind of trying to be a lowercase "h" in a sort of bell shape with a clapper. You can see it carved into a pumpkin.

Aren't you just another WP contributor who is angry about being passed over for inclusion in Automattic, and so you've gotten together to form a new blog package out of spite, but just like b2evolution, TextPattern, and other WordPress-knockoffs it'll never get off the ground?
Oddly, I've seen this question twice this week, and I suppose that even more people are thinking it.

Yes I am a WP contributor, and I continue to be. I organize the world's largest regular WordPress meetup, and that won't stop just because of Habari. I continue to use WordPress professionally, so I don't really see what sense there is having "bad blood" between these projects. I certainly don't have any bad feelings because nobody ever asked me to work for Automattic. I love my job and the people I work with, and I'm pretty comfortable right where I am, as is everyone else on the Habari team whose job I know of.

As far as whether Habari gets off the ground, well... From the interest so far, I'd say we have a pretty good chance. Those other projects mentioned do have fairly decent sized followings of their own (the size of any of those groups for Habari would make me plenty happy), and remember that WordPress was once good ole b2|cafelog. Being that the project is three months old and is hundreds of lines long, it is now much more mature than what this question implies.

How did all this start?
This is about as good a recount of the Habari conception story as you can get without Memorex. And the reason I was at OhioLinux? Skippy suckered me out there with the promise of beer, only to fill my head with ideas of new projects and collaboration. I was seduced by the spinning, plexiglass-encased bust of Pope John Paul on the giant lazy susan table at Columbus' Buca de Beppo, and I somehow agreed to the whole thing. But there was beer. And live, nude penguins.

When will it be ready for me to try?
It's going to be ready for me to try very soon, just as it was ready for Chris. I need to sort out some feed details to make sure certain things don't break, and then it's import/switch to the new theme.

You can try it now, too. Go to the project site, check out the code with subversion (we're not even at a developer preview state yet, so there's no archive you can download) to a server that meets the requirements, and watch it run.

If you have a WordPress database around, you can run the importer to test out Habari with all your posts. Stop by the #habari channel on irc.freenode.net and tell use about your experience. Join the mailing list, read up, and send in your comments.

"Spread the News" - that's our slogan about what you do with . Be a participant. You'll enjoy it.

Thanks to these sites, who talked about Habari early on:
h0bbel
Blogging Pro
Yellow Swordfish
Photomatt
wank
Solo Technology

This is something I've been thinking about a lot lately, and I've not really given it a voice except to Berta and maybe a couple of others.

I've been writing code for a pretty long time. 25 years now, actually. Sure, a lot of that is not professionally, but I think it's relevant in that programming has never been a tinkering kind of hobby with me. Programming is not something that I picked up like many people do a musical instrument in their childhood and then forget when they get older.

To give you an idea of what I mean, know that I didn't go to college to learn programming. I went to school to be a math teacher. And when that didn't work out, I turned my passion for programming into a career, which has worked out fairly well for me, thank goodness.

And that's what it is, really, a passion. I don't have much formal programming training. I never needed it. And that doesn't really bother me - or does it?

Although I've personally built reasonably large software projects used by Fortune 50 companies, I still occasionally feel that twinge of doubt. Am I really capable of this? What really makes me an expert at this? An expert? - Ha!

It feels very strange when people start to trust my word on these things. I suppose that with demonstrated experience you earn that kind of respect. It's just odd when people who I respect look to me with that kind of respect. I mean, I'm glad - I just wonder what I did to deserve it.

I wonder at what point people who do consulting in any field come to reconcile themselves as experts at what they do, enough that they accept money for their services and feel good about it. It's not that I feel bad about taking the money, just sometimes... I'll explain.

I've been told before that I don't charge enough. The explanation for why I should be allowed to charge more is: For my clients to do what I have done for themselves, they would need to somehow acquire all of the training, experience, and natural ability that I have, and then apply it to the problem. Although it might only take me ten minutes to perform a task for them, it could take them days, or it might take less time and not be done as well. So certainly ten minutes of my time is worth some greater fraction of their time's value to do the same thing.

Still, I wonder if I'm really worth all that.

Some recent personal projects have brought some of my own skills into question for me. It's not that I have to prove I can do the work - I know I can do it. I think it's that I need to prove it to people who also know this discipline well. I want them to see me as successful and seek my input and insight. Do I think that I've earned that level of trust from them? I have not yet, and I'm trying hard. I hope I will.

I just wanted you to know that sometimes I feel really confident about my abilities. Top notch, top of the world, I'm so great I can do no wrong. But I sometimes have doubt. I feel like a big kid, and when I look in the mirror I don't really see myself as the accomplished 30-something coder that other people see.

I look in the mirror and remember that kid who didn't play outside with the other kids, but hacked endlessly on a Timex-Sinclair to get an animated graphic of ET to appear. I don't see that kid, but he's still here. He just has bigger projects, and better equipment, and people who apparently rely on his skills. It's kind of freaky.

It's a bit like that movie, Searching for Bobby Fischer. He's so great at chess that losing a game can really throw him. Well, I'm pretty good at programming, but it turns out that my self-perception of that skill is pretty fragile.

I'm not sure what the lesson is here. "It's ok"? "I'll overcome it"? Sure. Of course. I guess I just thought it was unusual to have these thoughts, and wanted to make mention of the oddity.