Chikaora Zion Credell Ogbuji

My favorite picture of Chika

Well, as of Wednesday November 23rd, Roschelle and I became the proud parents of a baby girl: Chikaora Zion Credell Ogbuji.

She was born at Hillcrest (they have a nice collection of trivia related to the birth date/time). I'm collecting her pictures under the chika tag in my Flickr stream. There will be more to come.

Chimezie Ogbuji

via Copia

Chikaora Zion Credell Ogbuji

My favorite picture of Chika

Well, as of Wednesday November 23rd, Roschelle and I became the proud parents of a baby girl: Chikaora Zion Credell Ogbuji.

She was born at Hillcrest (they have a nice collection of trivia related to the birth date/time). I'm collecting her pictures under the chika tag in my Flickr stream. There will be more to come.

Chimezie Ogbuji

via Copia

Copia housecleaning

I've finally had some time today, as I prepare for the holidays, to fix some things on Copia that have been broken for too long. Some of the highlights, especially concerning issues mentioned by readers (thanks, guys), are:

RSS 1.0 feed body fix. Added rss:description field for the RSS 1.0 feed, which fixes missing post bodies in readers such as Bloglines which don't support support content:encoded. I do truncate the field to 500 characters, according to the recommendation in the spec.

Single entry view title fix. Added entry titles for single entry pages. Before today, if you viewed this entry through the perma-link, the title would just say "Copia"; now it says "Copia ✏Copia housecleaning"). I've wanted to do this for a while, but I was having the devil of a time figuring out how to do it with PyBlosxom. A scolding from Dan Connolly forced me to chase down a fix. For other PyBlosxom users the trick is to use the comments plug-in, copy the head.* flavor file to comment-head.*, and then update to use the $title variable, which is the title of the entry itself ($blog-title is the title of the entire blog). In my case the updated HTML header template looks like:

<title>$blog_title &#x270F;$title</title>

I did get a report that Copia is incorrectly sending `Content-Type header text/html;charset=ISO-8859-1`, but when I check using the LiveHTTPHeaders extension for FireFox on Linux it reports the correct charset=UTF-8 from the server. If anyone else can corroborate this issue, please leave a comment with the specific URL from which you noticed the error, your platform and browser, and the HTTP sniffing tool were you using. Thanks.

[Uche Ogbuji]

via Copia

Copia housecleaning

I've finally had some time today, as I prepare for the holidays, to fix some things on Copia that have been broken for too long. Some of the highlights, especially concerning issues mentioned by readers (thanks, guys), are:

RSS 1.0 feed body fix. Added rss:description field for the RSS 1.0 feed, which fixes missing post bodies in readers such as Bloglines which don't support support content:encoded. I do truncate the field to 500 characters, according to the recommendation in the spec.

Single entry view title fix. Added entry titles for single entry pages. Before today, if you viewed this entry through the perma-link, the title would just say "Copia"; now it says "Copia ✏Copia housecleaning"). I've wanted to do this for a while, but I was having the devil of a time figuring out how to do it with PyBlosxom. A scolding from Dan Connolly forced me to chase down a fix. For other PyBlosxom users the trick is to use the comments plug-in, copy the head.* flavor file to comment-head.*, and then update to use the $title variable, which is the title of the entry itself ($blog-title is the title of the entire blog). In my case the updated HTML header template looks like:

<title>$blog_title &#x270F;$title</title>

I did get a report that Copia is incorrectly sending `Content-Type header text/html;charset=ISO-8859-1`, but when I check using the LiveHTTPHeaders extension for FireFox on Linux it reports the correct charset=UTF-8 from the server. If anyone else can corroborate this issue, please leave a comment with the specific URL from which you noticed the error, your platform and browser, and the HTTP sniffing tool were you using. Thanks.

[Uche Ogbuji]

via Copia

Ubuntu on two out of three

I have three Linux computers that I use to varying degrees. Until recently, they were all the most recent Fedora Core version. I've tried a lot of Linux distros on the different computers—Debian Sid, Gentoo, Mandrake 10, etc. In the past I've always come back to Red Hat or Fedora Core. Honestly, the biggest reason is probably that I know the OS very well. Despite my always going back to Red Hat land, I've never been much of a Red Hat zealot. I don't try to convert people, or anything like that. I don't think any Linux distro is intrinsically superior to any other at this stage. Linux is too advanced, and too mature for fundamental superiority in any of its primary flavors. It all comes down to what fits your head the best.

Unfortunately, although Fedora Core still fits my head best, the community seems to have hit the doldrums, big time. I've always complained about the repository politics, and I always end up going first with the Fedora Extras faction, and then the RPM Forge faction (usually preferring the latter). Since FC4 came out, I've been very frustrated that I cannot get the combination of timely updates and stability that I've come to expect from Fedora Core. I switched from Fedora Extras to RPM Forge hoping for more dynamicism, but I think that was actually a change for the worse this time. At the same time, Ubuntu seems to have breathed a huge amount of energy into the Debian world. I tried Debian once and was very disappointed. Sid broke too often and woody updated way too slowly for my needs as a developer. I tried to learn enough of the system to be able to tame Sid, as Debian Gurus such as Edd Dumbill can, but that's when I discovered that Debian just didn't fit my head. I went back to Fedora. Edd tells me, and many others have corroborated that Ubuntu does an amazing job of dealing with these problems. "Ubuntu just works" is just about an axiom these days. Time to give it a go.

A month or so ago, as an experiment I installed Ubuntu on my third string computer. Besides the installer (which sucks) I was quite impressed with the Distro. Impressed enough that I'm installing Ubuntu on the second string computer as I type. That will bring me much more close and personal with Ubuntu: that's my main media computer: video, music, graphics, games, literary writing, etc. If I'm happy with that the last bastion of FC4 for me is my laptop—my very right arm. It's my main development and communications computer (programming, tech writing, e-mail, Weblogging, IRC, IM, etc.)

My first impression of Ubuntu is that the installer is laughably ummm...retro. I've been installing Linuxen since Red Hat 4.2, and I've see it all, from having to duck into the spare console during an install for workaround hackery to the steeplechase of the Gentoo installer (I swear they're deliberately placing a hurdle in front of users: if you can't complete the scavenger hunt of the install process, they don't want you as a Gentoo user). Ubuntu's installer might be the ugliest and least intuitive I've ever seen. Fedora Core and Mandrake have really nice installers, and honestly, I'm a bit spoiled in that department.

Once I got past the installer the default look of Ubuntu is a combo of really sharp fonts with a theme that's drab almost to the point of depressing. Who chose that brown/copper background and the dun theme? That got changed with the quickness. It's interesting that you only create a regular user, and never set a root password. On my first Ubuntu machine, I couldn't resist switching to single user mode and setting a root password. This second time I'll just leave that alone and see how it goes. Ubuntu set me all up in sudo, so I'll probably be fine for a good while.

I started with the default package manager and added a whole bunch of packages I needed, or wanted to play with. The package management experience is better than Debian's which was already better than Fedora's, but then again, that has always been Debian's well-known strength. I did run into a problem with non-existent "Multiverse" repository option provided in the package manager. For some reason I was not able to install, say Real from the default package manager. It said I needed to enable "Multiverse" but I was having problems with that repo entry. I tried Synaptic and it installed the problem packages with no problem. Synaptic is a real treat.

So far I'm definitely happy with the switch. Many more things just work than in FC4. I do have to look into a few things, for example:

  • Enabling mp3 play in Rhythmbox (I knew how to do this in FC)
  • Figuring out how to loosen the firewall chokehold and how to enable services. Wanting to print and SSH to the machine, I tried the various applets in System->Admin and Apps->System Tools and I can't figure out the equivalent of FC's "Security Level" and "Services" applets.

I'm confident I'll find answers because the Ubuntu community seems as full of useful info as the Fedora community used to be. I already addressed a couple of needs with some easily found resources:

[Uche Ogbuji]

via Copia

Ubuntu on two out of three

I have three Linux computers that I use to varying degrees. Until recently, they were all the most recent Fedora Core version. I've tried a lot of Linux distros on the different computers—Debian Sid, Gentoo, Mandrake 10, etc. In the past I've always come back to Red Hat or Fedora Core. Honestly, the biggest reason is probably that I know the OS very well. Despite my always going back to Red Hat land, I've never been much of a Red Hat zealot. I don't try to convert people, or anything like that. I don't think any Linux distro is intrinsically superior to any other at this stage. Linux is too advanced, and too mature for fundamental superiority in any of its primary flavors. It all comes down to what fits your head the best.

Unfortunately, although Fedora Core still fits my head best, the community seems to have hit the doldrums, big time. I've always complained about the repository politics, and I always end up going first with the Fedora Extras faction, and then the RPM Forge faction (usually preferring the latter). Since FC4 came out, I've been very frustrated that I cannot get the combination of timely updates and stability that I've come to expect from Fedora Core. I switched from Fedora Extras to RPM Forge hoping for more dynamicism, but I think that was actually a change for the worse this time. At the same time, Ubuntu seems to have breathed a huge amount of energy into the Debian world. I tried Debian once and was very disappointed. Sid broke too often and woody updated way too slowly for my needs as a developer. I tried to learn enough of the system to be able to tame Sid, as Debian Gurus such as Edd Dumbill can, but that's when I discovered that Debian just didn't fit my head. I went back to Fedora. Edd tells me, and many others have corroborated that Ubuntu does an amazing job of dealing with these problems. "Ubuntu just works" is just about an axiom these days. Time to give it a go.

A month or so ago, as an experiment I installed Ubuntu on my third string computer. Besides the installer (which sucks) I was quite impressed with the Distro. Impressed enough that I'm installing Ubuntu on the second string computer as I type. That will bring me much more close and personal with Ubuntu: that's my main media computer: video, music, graphics, games, literary writing, etc. If I'm happy with that the last bastion of FC4 for me is my laptop—my very right arm. It's my main development and communications computer (programming, tech writing, e-mail, Weblogging, IRC, IM, etc.)

My first impression of Ubuntu is that the installer is laughably ummm...retro. I've been installing Linuxen since Red Hat 4.2, and I've see it all, from having to duck into the spare console during an install for workaround hackery to the steeplechase of the Gentoo installer (I swear they're deliberately placing a hurdle in front of users: if you can't complete the scavenger hunt of the install process, they don't want you as a Gentoo user). Ubuntu's installer might be the ugliest and least intuitive I've ever seen. Fedora Core and Mandrake have really nice installers, and honestly, I'm a bit spoiled in that department.

Once I got past the installer the default look of Ubuntu is a combo of really sharp fonts with a theme that's drab almost to the point of depressing. Who chose that brown/copper background and the dun theme? That got changed with the quickness. It's interesting that you only create a regular user, and never set a root password. On my first Ubuntu machine, I couldn't resist switching to single user mode and setting a root password. This second time I'll just leave that alone and see how it goes. Ubuntu set me all up in sudo, so I'll probably be fine for a good while.

I started with the default package manager and added a whole bunch of packages I needed, or wanted to play with. The package management experience is better than Debian's which was already better than Fedora's, but then again, that has always been Debian's well-known strength. I did run into a problem with non-existent "Multiverse" repository option provided in the package manager. For some reason I was not able to install, say Real from the default package manager. It said I needed to enable "Multiverse" but I was having problems with that repo entry. I tried Synaptic and it installed the problem packages with no problem. Synaptic is a real treat.

So far I'm definitely happy with the switch. Many more things just work than in FC4. I do have to look into a few things, for example:

  • Enabling mp3 play in Rhythmbox (I knew how to do this in FC)
  • Figuring out how to loosen the firewall chokehold and how to enable services. Wanting to print and SSH to the machine, I tried the various applets in System->Admin and Apps->System Tools and I can't figure out the equivalent of FC's "Security Level" and "Services" applets.

I'm confident I'll find answers because the Ubuntu community seems as full of useful info as the Fedora community used to be. I already addressed a couple of needs with some easily found resources:

[Uche Ogbuji]

via Copia

First board

So yesterday I took my weak right knee up with my friends, all on skis (punks) to Keystone for my first day on the slopes this season. I'm usually reluctant to admit going to Keystone. Keystone and A-Basin both got dumped on, but it was a mixed crowd, so Keystone was the better bet for terrain diversity. It was a sweet day on the slopes. For pre-Thanksgiving the snow was quite good, especially on the steep tree runs in the Outback. Susan, Kenny and I did a few such challenging runs, and as usual Susan kicked our asses with her effortless form (A couple of my friends were kind enough to say they didn't want to board if they couldn't do so as elegantly as I do. Well for sure, if I ski I want to be as elegant as Susan). After lunch we were forced on the crowded front face where the snow was more what you'd expect in early season and I wasn't sure whether we were skating or sliding. Hats off again to Donek, who made my board. As usual, the float in deep snow was very stable as was the edge grip on ice. I hadn't had time to wax my board or sharpen the edges, but you wouldn't know that for a moment.

This first trip beat me half to death, though. By the time I got to the bottom my knee (despite the brace) was begging for mercy and I was feeling weak, with chills. Kept my spirits up by chatting with Guy, Susan and Dawn on the road back, but I crashed before 6, as soon as I got home, and I'm just starting to feel better. I wonder whether it's a touch of altitude sickness. Alexandra said she'd suffered the same thing after her first trip last week, but I haven't had altitude sickness since before I lived in Colorado.

[Uche Ogbuji]

via Copia

Ouch. I feel your pain, Sam

Seems Sam Ruby's presentation suffered a bit in the spectacle. Unfortunately, I'm no stranger to presentation set-up problems. I've also been lucky enough to have patient audiences. Maybe conference organizers will someday factor Linux A/V support into consideration when choosing venues (I can dream, eh?). I almost always can use projectors and stuff with no problem in usual business scenarios, and I can only guess that conference venues tend to have archaic A/V technology that doesn't like Linux.

As for the presentation itself, based on the slides much of it is an accumulation of issues probably well known to, say, a long-time XML-DEV reader, but useful to collect in one place. It looks like a much-needed presentation, and I hope Sam gets to present it again, with better luck with the facilities. Here follow a few reactions I had to stuff in the slides.

expat only understands utf-8

This hasn't been true for ages. Expat currently understands UTF-8, UTF-16, ASCII, ISO-8859-1, out of the box, and the user can add to this list by registering an "unknown encoding" event handler.

Encoding was routinely ignored by most of the initial RSS parsers and even the initial UserLand RSS validator. “Aggregators” did the equivalent of strcat from various sources and left the results for the browser

Yuck. Unfortunately, I worry that Mark Pilgrim's Universal Feed Parser might not help the situation with its current practice of returning some character data as strings without even guessed encoding information (that I could find, anyway). I found it very hard to build a character-correct aggregator around the Feed Parser 4.0 alpha version. Then again, I understand it's a hard problem with all the character soup ("char soup"?) Web feeds out there.

[Buried] in a non-normative appendix, there is an indication that the encoding specified in an XML document may not be authoritative.

Nope. There is no burial going on. As I thought I've pointed out on Copia before (but I can't find the entry now), section " 4.3.3 Character Encoding in Entities" of XML 1.0 says:

In the absence of information provided by an external transport protocol (e.g. HTTP or MIME), it is a fatal error for an entity including an encoding declaration to be presented to the XML processor in an encoding other than that named in the declaration, or for an entity which begins with neither a Byte Order Mark nor an encoding declaration to use an encoding other than UTF-8. Note that since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly need an encoding declaration.

So the normative part of the spec also makes it quite clear that an externally specified encoding can trump what's in the XML or text declaration.

The accuracy of metadata is inversely proportional to the square of the distance between the data and the metadata.

Very apt. I think that's why XML's attributes work as well as they do (despite the fact that they are so inexplicably maligned in some quarters).

In fact, Microsoft’s new policy is that they will always completely ignore [HTTP Content-Type] for feeds—even when the charset is explicitly present

XML of course doesn't force anyone to conform to RFC 3023, but Microsoft could prove itself a really good Web citizen by adopting it. Maybe they could lead the way to reducing the confusion I mention in this entry.

I think of Ruby's section on the WS-* mess to be an excellent indictment of the silly idea of universal and strong data typing.

In general, programming XML is hard.

Indeed it is. Some people seem to think this is a product of architecture astronautics. They are laughably mistaken. XML is hard because managing data is hard. Programmers have developed terrible habits through long years of just throwing their data over the wall at a SQL DBMS and hoping all goes OK in the end. The Web is ruthless in punishing such diffidence.

XML is the first technology that has forced mainstream programmers to truly have to think hard about data. This is a boundlessly good thing. Let the annoyances proliferate (that's your cue, Micah).

[Uche Ogbuji]

via Copia

Suspicions confirmed, so I'm ditching Rojo

Rojo was a pretty nice UI, but I always had a nagging suspicion it was showing me only a small number of my feeds. I finally got time to check on that last this morning. I loaded Liferea (Aristotle's suggestion) with the same feeds list I used for Rojo. I found numerous feeds with recent entries, which Rojo wasn't showing me. The worst part of it is that Rojo wasn't giving any indication that it was having trouble with some feeds (I did notice that the number unread in the left hand bar didn't match the number in the folder newspaper view, but I could never figure out how to get at exactly what that meant). Liferea is a bit clunky, but at least I don't miss entries using it. I guess I'll use it until I find something better.

[Uche Ogbuji]

via Copia

XOXO versus Atom versus XBEL for Web feed lists?

Very useful response to my quest for XOXO understanding. Wow. In fact, I've had so much good discussion here and on the #atom IRC that I'm not sure where to start.

I'll start with what my current leaning is, after all that discussion. I think I want to use XBEL for managing my bookmarks, and I'll advocate the necessary extensions, and hope they are as well received as XBEL itself has been.

On to my general thoughts.

XOXO. I was pointed to a thread in which my use of rel="webfeed" was rightly deprecated. I was just grasping for something appropriate in XHTML space, and I don't think there really is. I got into an argument about whether type="application/atom+xml" is the way to go, and I'm still not fully convinced it is. The way it works for me to think about it is that for each item I have zero or more links I want to consider human-readable content links, and zero or more I want to consider feed links. It's my arbitrary decision how to decide which is which, but media type alone doesn't tell the tale. As an example, what if someone has a Weblog that is served as custom XML with XSLT to render it in my browser. The media type would be application/xml and yet it would be a content link. I see the weakness in my own argument: after all, a user agent can also make an Atom document nicely rendered for a human reader, so the distinction I'm trying to make might be an impossible one regardless of method. Maybe I'll have to cave in to the "use type" argument. I'll try it out in this entry.

So back to my first format example for XOXO. If I throw in examples of "folders", I come up with:

<ol class="xoxo">
  <li>
    <p>Technology</p>
    <ol>
      <li>
        <ul>
          <li>
            Weblog home
            Weblog feed
            <dl>
              <dt>description</dt>
              <dd>That good ole Weblog</dd>
            </dl>
          </li>
        </ul>
      </li>
    </ol>
  </li>
</ol>

Umm. That's a round mouthful of tags. I'm not sure I really want to have to squint at that. I also don't like how <description>...</description> becomes <dl><dt>description</dt><dd>...</dd></dl>. That's too much markup indirection for me. Even worse that the usual reduction ad absurdum of <element name="description">....

Atom. Aristotle and then Mark suggested using Atom for Web feed list exchange. It's one of those "DUH!" moments. I can't believe it didn't occur to me. The main problem I have with Atom is that is really only offers one level of hierarchy: feed/entry. My Web feed list is hierarchical. The ready solution is to use categories to simulate hierarchies.

<entry>
  <id>http://example.com/weblog/</id>
  <updated>2005-05-23T15:38:00-08:00</updated>
  <title>Example Weblog</title>
  <link rel="self" href="http://example.com/weblog/" type="text/html">Weblog home</link>
  <link rel="alternate" href="http://example.com/weblog/atom" type="application/atom+xml">Weblog feed</link>
  <summary>That good ole Weblog</summary>
  <category term="Technology"/>
</entry>

I'd also need some way to separately express the hierarchy of categories. I might also have to use use the ranking extension (see for example this article) to preserve item order, if I care about it. I don't know. This looks a bit of a stretch. It certainly wouldn't be very friendly to edit by hand. The fact that the updated element is mandated, for one thing, tends to color Atom into a machine-generated-only lines. This is OK for a lot of Atom's use cases, but I think it's a real bummer for my present one.

XBEL. XBEL is just the little XML format engine that could. Despite its great age and recent neglect, it's possibly the most widely deployed of these options, because of its use in Browser bookmark formats. Not that I think that's any reason for preferring XBEL. I do like how it looks, though:

<folder>
  <title>Technology</title>
  <bookmark href="http://example.com/weblog/">
    <title>Example Weblog</title>
    <info>
      <metadata owner="webfeed">
        <link href="http://example.com/weblog/atom" type="application/atom+xml"/>
        <description>That good ole Weblog</description>
      </metadata>
    </info>
  </bookmark>
</folder>

Even with the required info/metadata layer, it's much cleaner than the other two options. I think that we could at least get into XBEL 1.1 native elements for alternate links and for bookmark descriptions (which I think were already proposed by others), so we could perhaps eliminate the info/metadata layer in XBEL 1.1. Regardless, I think I'll manage things for myself in XBEL as above and just use XSLT to convert to whatever starts t emerge as a viable option for export to other tools (or as a way to export to OPML if I have to).

[Uche Ogbuji]

via Copia