Archive for August, 2003

Firebird

As noted previously, the administrative interface provided by my hosting service does not play nicely with Safari or IE/Mac. They suggested Mozilla Firebird. I finally decided to cave, and give it a try.

I think I like it. That’s really saying something, considering I’ve never seen a Mozilla browser I liked. From the early Netscapes onward, I’ve always thought they were ugly and slow. Mozilla 1.0 became usable, but not really comfortable. Firebird (I’m using the 0.6.1 build) feels alot different.

It’s still rough around the edges. Scratch too hard and you will see the mozilla underpinnings. In the Mac OS X version, if you close all windows, the menus all change… to what look like Mozilla menus. Even the Mozilla properties dialog, which Firebird normally replaces with a much slimmer version, returns when all the windows are closed. And when I tried to install the Windows version on my office PC (Win2K), it crashed. Repeatedly. I finally gave that up.

But this is only a 0.6x build… its supposed to be rough. It’s got some very nice features. Tabbed browsing is on par with Safari. The ‘extensions’ feature reminds me of Blosxom… There seem to be lots of extensions available already (this may be a general Mozilla feature). And of course, the CSS rendering is great.

All in all, so far so good. I might even make it my default browser. If I can ever figure out how to customize the keyboard shortcuts, I will. For some unknown reason ‘Backspace’ is only a shortcut for ‘Back’ in the Windows version. Why not make the Mac ‘Delete’ key do the same thing? Until then, I still find myself in Safari less and less.

Irony

While writing the previous entry, I used Textile’s footnote feature to note that my site’s RSS feed validates. I even made the word “validate” a hyperlink to the Feed Validator with an url that will autocheck my feed. Since I always check my links as soon as I post a story, I clicked the validator link. Only to find that my feed no longer validates.

Why does my feed no longer validate? Because of the footnote. Specifically, because Textile’s footnote feature makes relative url hyperlinks to anchors within the page. And relative urls are not valid in the element.

My feed will remain invalid for a short period of time while I ponder a solution. So far my options seem to be:

  1. Remove the footnotes
  2. Live with a non-validating feed
  3. Tinker with the textile2 plugin and/or textile.pm, and get it to emit full (not relative) URLs for footnotes.
  4. Tinker with the RSS flavour to fix up such urls automagically.
  5. Find/build a plugin that rewrites all relative urls to fixed urls. This will be tricky for the RSS feed, since the url is not relative to the feed being created.

Option 1 is admitting defeat, and besides, I like the footnotes. Option 2 I will accept only as temporary, to keep from having to take down the offending post. Options 3, 4, and 5 mean learning more about Blosxom’s plugin model, and/or the guts of textile; both things are already on my mental list of Todo’s. I’ll post the resolution when I find it.

Where to Begin?

So, now that I have a basic site up and running, what next? Things in my todo list (in no particular order):

  • Visual design (see separate list below)
  • Comments/trackback
  • Blogroll
  • RSS feed1
  • Setup a logfile analyis tool
  • gzip compression
  • Write!
  • improve the wikieditish flavour. I want to add links to insert em dashes, en dashes, etc., add a preview mode2, and clean up the textile help I copied from the Textile homepage.

1 Technically, I already have an RSS feed, thanks to the wonders of Blosxom’s flavour system, and the built in RSS flavour. I’ve even made a tweak so it will validate. But I intend to do more.

2 In fact, I want to go one better than preview mode. The idea is a ‘publish’ checkbox. If checked, works just like now. If not, the file is saved as something.txt~. Will have to do some tinkering so wikieditish can still display the ~ version.

Most of the above are just a plugin away. I just love Blosxom! Even gzip compression just became available today as a plugin.

The visual design I’ve already begun, and continue to play with. Todo’s here include:

  • Fonts (!)
  • Fix IE rendering (ugh)
  • Tweak right-side ‘panelets’ color scheme, sizing
  • Improve rendering of story titles and panelet titles
  • Overall negative space tweaking

I’ve reading up as well. I have Zeldman’s Book3 on order at Amazon. Meanwhile, I’ve been browsing such places as:

3 Full Disclosure: I have enrolled in the Amazon Associates Program. The provided link to Amazon.com includes reference to this site. I will get a kickback if you buy through this link.

UTF-8 Madness

One of my stated goals with this weblog is to better learn web standards, such as XHTML and CSS. So each time I make a change to the design, or post a new story, I use the validation badges (see the right hand column) to check that everything is still copascetic. Yesterday, it was not.

The error message from the XHTML validator, in all its yellow-highlighted glory, was:

Sorry, I am unable to validate this document because on lines 52, 56-58, 62-66, 68-70, 73, 76-81, 83-84, 86 it contained one or more bytes that I cannot interpret as utf-8 (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication.

Now, this is clear (invalid characters), and yet not so helpful (what characters? Where in the line?) I didn’t see anything in the view source, or opening the original file in an wikieditish. And of course, I’m using textile, so that could be a culprit as well.

After some experimentation (by which I mean to say, several hours of searching Google, threatening the Validator, and banging my head against the wall), I found that by saving the XHTML from my browser, and running it through less, I could see the bad characters. They were all 0xA0, which is 160 decimal, a.k.a.  . Of course,   is valid in XHTML, as is  . But utf-8 does not encode single byte values above 0x7F as single byte values, so 0xA0 is not the utf-8 encoding for nbsp.

The thing is, I’m not sure how they got there. The seemed to mostly appear inside blocks, in place of the original indent spacing. So I suspect it was a combination of textile2 trying to format the code, and wikieditish saving the document. I'm going to have to do some experimenting to make sure I understand how they interact.

I tried to fix the problem my adding some filtering to wikieditish, in the form of:

$_ = $body;
s/\xA0/ /;  #non-breaking space

snip! more translations in here,

like emdash, soft hyphen, etc.

$body = $_;

I then re-edited the file, but this didn't seem to fix it either. I eventually downloaded the story to my local system, cleaned it up with a perl one-liner (perl -pi -e 's/\0xA0//;' filename.txt), chosing to just eliminate the nbsp's entirely for now until I better understand them.

And the best part of all? My host is running perl 5.8.0, with PerlIO enabled; which if I read perluniintro correctly is supposed to automagically take care of all that utf-8 madness for me, so I don't have to.

Baselining

Now that the weblog is up, albeit in very rudimentary form, I can begin to improve upon the design. My goal is to better learn XHTML and CSS, and to write about what I learn here. As part of this process, I intend to periodically review where I am and where I have been. To this end, I need a baseline.

The current (initial) design is that baseline. I have archived this design as the flavour rev0. You can view this post in the rev0 design, or view this site in the rev0 design.

Before looking at what I want to change, I want to review what I have. Rev0 features:
* Valid XMTL 1.0 strict and CSS
* Two column layout using CSS, not tables
* Post Calendar, Category Tree
* Badges for validation and attribution

Under the hood, the weblog is running the following plugins:
* timezone, v0.0.1
* calendar, v0+6i
* categories, v0+4i
* flavourdir, v2003-03-13
* metadir, v2.0b4 (required for textile2)
* textile2, v0+1i
* timestamp, v0+2i
* wikieditish, v2003-05-29

All of these plugins are available from the Blosxom Plugin Registry. Aside from configuration variables, they are all unmodified, except for a bug fix to wikieditsh. I did edit the default wikieditish templates a bit, to add textile help (like found on the Textile Demo Page).