So Sweet. So Spastic.

I’m proud to say that Julie is up and running. After Sarah and Becca, Julie was next in line to be rescued from LiveJournal but the incredible lack of time in the last month prevented me from finishing anything. Anyway her new blog is now up, and it already has some great entries and poetry. Sweetspastic!

Blogshares Etiquette

Is it just me or is there an entire social structure evolving around Blogshares? Links go back and forth, and every blog is given a quantative value. Gifts are given, but for what reason? Is anything truly altruistic? What’s polite? Are there vested financial interests involved? As if the social world of blogs wasn’t delicate enough.

Anyway, my dilemma is two friends I own stock in have gotten dangerously high price to earning ratios. I bought stock in them as sort of a token of my appreciation, a way of saying “Hey buddy.” Because when you buy stock in somebody, you are essentially making a value statement about that person or blog. If you think someone is smart/funny/sexy/interesting then logically that person’s audience and linkage will grow, it’s just a matter of being discovered.

Ideally I would have stock in every person on my blogroll, and I would buy it and hold it, and buy more whenever I had the means to. However, that’s a terrible way to make any money on Blogshares, so I don’t know. I’m going to have to decide whether I’m playing socially or if I’m in it for the money.

American Megatrends Gets Standards

The American Megatrends website is now table free and running on compliant XHTML 1.1 and CSS. Isn’t that a beautiful thing? Glancing through there are some places where the markup could be streamlined or more semantic, but considering there is a sole “webmaster/internet strategist/designer/developer” working on this, I don’t see it as a big issue that a few things slipped by. Plus a launch with full compliance! Also refreshing is the attention paid to accessibility.

It seems logical that a hardware manufacturer would immediately see the benefits of standards-based development, as that is something that has been thankfully prevalent in that sector for years now. I hope that other similar corporations will follow their lead, as anyone searching for obscure drivers on a late night knows how terrible some hardware sites are. Once using only wget (long story) I had to find a Linux driver (tough in and of itself) for an IDE controller. There is very little that could have made that experience better, but a site with easy-to-read code such as AMI has now certainly would have been a relief. Rack another up for MACCAWS.

Acrobot Favelet

You can now sumbit text to Acrobot with a click of a favelet. The Amazing Ian is doing great things over there, though the tool does have a ways to come. I’m hoping he’ll let me peek at the source so perhaps I can use parts of their approach to tidy up my PHP acronym function.

Chicken Little

The sky has fallen.

On Syndication and Rolling Your Own

Tantek and Jeffrey have both written quite nicely about handmade sites and aggregation, respectively. I’d like to address some of Tantek’s points first; since I am writing content management system (by his definition), I found his ideas particularly relevant.

First he lists a number of hand rollers, presumably as examples of the kind of “pushing the envelope” that he posits is easier without the burden of a content management system (even one that is designed specifically for the purpose of blogging). Let’s take a look at the list:

  • Jeffrey Zeldman — The epitome of doing it by hand. He has a URL scheme that doesn’t change, a novel multi-level permalink system, and damn fine structure. No complaints here.
  • Derek Powazek — Derek’s site, at least in its current iteration, is powered by Movable Type. Disqualified. 😉 {Fray} would have been a much better example, but even that is moving to a database-driven backend. (The Storyblog there is also MT powered.)
  • Eric Meyer — Again, no complaints. In a perfect world he could lose the class on his permalink, style it through contextual selectors, and add rel="bookmark" but that’s a nitpick and I know it. Kudos to Eric.
  • Brittney Gilbert — This looks hand done. Update: Tantek was right, a little to harsh here. Sorry! My intention was to say that, looking just at the code, this site does not push the markup and style envelope the way the other sites listed do. Does that make it bad? No. Read on.
  • Simon JesseyNice. Added to bookmarks.
  • David Baron — Not a whole lot going on here, looks like there are only a few posts per month. It seems very Tantek-influenced and well done, but with the frequency of his updates, I doubt that making his pages by hand is that much of a burden. Which brings us to my next point…

For the moment let’s look at hand-coding specifically in the realm of blogging, in its most general sense. In my view, for something to be a blog it really only needs permalinks and entries arranged in reverse chronological order. Feedback mechanisms– trackback, pingback, plain vanilla comments, a nice way to browse the archives, a search— are nice, but aren’t really required. Blogging (or whatever you’d like to call it) by hand requires discipline, and honestly few outside of the Çeliks and Zeldmans have what it takes to create a document for all time. Things like permalinks and archives are a pain to do manually; I know, I’ve tried.

There are some good reasons for doing a blog by hand, but I don’t think Tantek explicitly states the most important one. Lack of support from your host is not a good reason; there are too many options out there, from free and up. Along that same vein, cost should not be a barrier, as some of the very best systems out there are free (as in beer). Difficulty setting up shouldn’t be a problem either, as there are a number of people (including myself) who are familiar with a number of blogging systems and wouldn’t mind you setting up any one of them. Tantek comes closest when he likens what he does to a craft, implying that hand-coding his website is not merely a means but an end. Whatever you do should put as little as possible between yourself and whatever it is you love about creating your little corner of the independent web. This above all other things is the driving force behind WordPress, where my chief inspiration is myself, a lazy philosophy major. Tantek is happy writing the code for his page, just as I get a buzz typing in a box and having everything else happen automagically.

The question then becomes what makes Tantek happy about coding his site, not suppositions about the relative merits of hand coding something that could be easily automated. So what makes Tantek happy? I don’t know, but I can relate a story that might shed some light on it. At SxSW I had the pleasure of spending some time with Tantek and I got to see him update his site several times. (Watching people blog is fascinating in and of itself, because I’m convinced that everyone does it just a little differently.) Anyway when he met someone new Tantek would whip out his Powerbook and add that person to a list of people he had met so far at the conference. It was surprisingly fast, he could do it offline, and overall I got the feeling I was peeking behind the curtain of his web presence and seeing a well-oiled machine at work, the happy cogs of OS 9, his editor (BBEdit?), a Wifi card, and a simple FTP program all spinning away in what could only be described as a highly evolved process. It rocked my world; a process so radically different from my own, yet if we had raced, it would have been close.

I’m sure Zeldman is the same way. I’m sure of very few things in life, but I know that he wouldn’t still be doing what he’s doing if he didn’t enjoy it. So I guess in some sense, I’m a blogging hedonist. Do what makes you happy.

Just to clarify, I’m referring to coding by hand specifically for blogging, which I think is a tad daft, and not general hand-coding web pages, which I practice because there is no tool out there to my liking. If there were a perfect tool I still might not use it, but I’d definitely give it a try. However, in any hand-coding situation, you still shouldn’t make things any harder on yourself than need be. Noel Jackson uses Texturize with PHP’s output buffer to add typographic niceties on the fly to pages he hand codes. I’ve started doing this myself and it saves a tremendous amount of time, and it’s terribly simple to use. With two lines of PHP I was able to update a 450-page site, something that would have taken hours to do manually. (Not to mention us poor PC folk don’t have access to Dean Allen’s scrumptious Preflight Cruncher.) I’ve written similar tools for acronyms, line breaks, and pretty much any other mundane task that can be easily codified.

Moving on…

I agree wholeheartedly with Jeffrey on the potential for aggregation to steal the soul of a site. Recently on my syndication page I included a quote:

Q: If you offered an RSS feed, I could read your stuff without visiting your site.

A: If you stored your groceries on the sidewalk, we could eat your food without sitting across the table from you.

That’s classic Zeldman, complete with the famous Playboy-inspired editorial “we” that we so dearly wish we could pull off too. That was then, and he’s obviously trying to be more diplomatic this time around, yet the thrust is the same. I have debated removing my feeds several times, but ultimately my ego won out. There are several people who simply wouldn’t read this site if it wasn’t available in a syndicated format, and my desire for readership—to be able to look at my stats and know I’m not speaking into a void—is greater than whatever it is inside me that wants my writing to be appreciated in the context of my site. Christine says she comments more since she started using an aggregator. Besides, I try to remind my RSS readers several times a week that they’re missing out on something. It’s “Nice. But not the same.” I haven’t seen any unbiased studies that compare the effects of RSS on readership and such, and on a personal level it’s hard because RSS stats tend to be inflated due to the automated nature of their updating.

I think a laissez-faire attitude will eventually prevail. I can primp and preen my design all I want, but when it comes down to the basics all my code is merely a suggestion, and the interpretation of that is at the whim of whatever user-agent is knocking at the door. I question whether or not RSS is the best format for this sort of thing, but it seems to be quite good at what it does. RSS boils away the fluff and leaves just the meat, but what sort of meal is that?

Texturize Finished

I just stuck a fork in Texturize and I’m ready to integrate it fully with WordPress. I’m very satisfied with the speed and functionality of this latest version. Not much in way of feature changes, except for one I think is pretty significant.

The Q tag would be great if it weren’t for Internet Explorer’s lacking in the realm of CSS generate content. (See Hixie’s scathing remarks for a critical look at IE.) Anyway this is the first automagic quote curlifier to do this (cue 15 corrections) though I’m sure Textile and SmartyPants won’t be far behind. The great thing about this technique is it lets you markup semantically meaningful quotes in your writing without losing a majority of your audience. Even better it would be trivial to put some simple browser detection and send the markup to browsers that get it. What a concept, using browser detection for good and not evil. This post is the first one where I’m using this technique. Hope the sky doesn’t fall. Update: It didn’t.

LINK Navigation

Now I know I just gushed about Opera, but I just found another reason why Mozilla kicks butt. Back in the day a number of link types that could be used by user-agents in an additional navigation bar or pre-cache some elements “to reduce the perceived load time.” Cool, eh? There are a number of possible applications in the blog format that lend themselves well to this, and I’ve tried to put as many as possible here. Viewing the source or visiting in Mozilla is the best way to get a feel for what’s happening and how neat the application is, but some descriptions are in order nonetheless. I don’t know the default setting for the “Site Navigation Bar” is for Mozilla, but to make sure it’s on go “View > Show/Hide > Site Navigation Bar > Show Only As Needed” to make sure you’ll see what all the fuss is about.

First, it was very tricky hard to get this all working with my current setup; whenever I try something new here my immediate thought to how it can be integrated into WordPress, but the steps I had to take were so convoluted that I doubt that any of this will make it into the next release. Anyway the first useful link that came to mind would be “bookmark,” something I specify the rel attribute on my permalink tags but no current browser picks up. So for example the bookmark link for this entry would be like so:

<link rel="bookmark" href="/p620" title="LINK Navigation" />

For any index, individual, archive, or category page you look at on the journal part of this site there will be a set of bookmark links to each of the entries on the page. I have created similar links for commenting and trackbacking entries, that personally I’ve found to be an extremely efficient way to get around. Check under your “More” menu in Mozilla to see it all. Mozilla also links nicely to the alternative representations of the content, such as RSS, and though it links to the same resources on each page it really should link to the specific representation of only the content on the current page, so for example the comments page could link to its unique RSS 2 feed.

Then some basic navigation elements were in order. The logic of these should be apparent from the code, but there is a link pointing to the top page of this site, a link to the search page, the FAQ, information about myself, and finally copyright information. When you are browsing a single entry you are offered links to the previous and next entry, as well as to the very first entry. This could be expanded once date-based archives are available to allow you to browse from month to month or day to day. Once you start using it, you’ll wonder how you ever navigated any other way.

Finally I set the categories to be “sections,” though I’m not sure if I’m entirely comfortable with this. If you envision all of the text of this blog as a document, then the “index” could be the front page, but after that it’s open for interpretation. Should categories be sections or chapters? Could chapters be say, month-based archives? What if I wanted some arbitrary division of chapters, say by whatever relationship I was in at the time? Sub-sections seem ill-defined as you can’t seem to define several sub-sections as a child of a section, though I may simply need to explore this further. Also I am feeling slightly constrained by the software I use to manage everything, but it would be fascinating to see how someone without those constraints such as Tantek could do with his structure. Ideally some common set of relationships specific to the organization of a weblog—much like the goal of the Weblog Metadata Initiative (where’d they go?)—could be agreed upon and implemented by default by the authors of the most common software and templates. Several people already implement a bit of this already, for example Mark, but there is a lot of unrealized potential here.

Opera is able to use all of the standard defined links, but doesn’t catch any of the extra ones. IE of course is oblivious to it all. Mozilla gets everything. If you have any information on other browsers let me know. I should be defining the extra rel attributes in a profile document, but there are only a few hours left before I’m supposed to “wake up” for my classes tomorrow, so some sleep may be in order.

Opera Coming Along

I must admit that I haven’t touched Opera for some time now, and I never really took it htat seriously as a browser. Tracking its market share is tough because out of the box it identifies as IE6 out of the box, but I always figured that there was just too much wrong with it for it to be that popular. What a surprise their latest version is! Not only is it blazingly fast like it has always been, it has what I would count as the best designed user interface I have seen thus far in a browser. IE is weak. Phoenix was better. SlimBrowser makes IE nice but puts too much clutter, and feels unpolished. Mozilla, well, good ‘ol Mozilla has become my main browser for the past couple of weeks and I can’t complain. Out of the blue comes Opera, with a interface so dandy I feel like I might be in OS X (someday…) if the garish start bar at the bottom of my screen didn’t bring me back to reality. The only thing chapping me is the banner, but I would have no problem supporting such finely done software even it wasn’t my primary browser, just to encourage its development. I can’t begin to detail all of the nice touches they’ve put into the interface, just try it out. It’s only a 3.2 MB download without Java! (And who needs Java anyways?)

My Personal Hero

Hire this man, or pass the link around. He’s put out some nice products, and you have to admire anyone who puts a picture of Zeldman in their header. Now if only he would release the email encoder as a nice PHP function for use in other applications…

So Easy

For the project I mentioned in my last post I’ve also been using a fantastic class called ezSQL that really makes a lot of things an absolute piece of cake. I don’t remember exactly how I came across this class, perhaps via Simon, but at the time I wasn’t doing anything I could use it for and so I just bookmarked it and made a mental note to check it out later. After not much more than a night of using it the syntax is already very intuitive to me and I look at the documentation hardly at all; the class itself is so logically done that a quick glance at the code is just as helpful as the documentation. Of course there is some room for improvement, for example it would be nice if the errors and such were valid XHTML, but I’ll survive.

Image Fun

Been playing with manipulating images with PHP all night, something I haven’t done much since I had the fancy capital thing on this site, and that wasn’t as much manipulating images as generating images using truetype fonts. With GD included PHP is very easy to use for this sort of thing. I’m storing the images themselves in the database as BLOBs, along with a bit of meta-data I grab from them when they’re uploaded using a web form. I have a small PHP script that returns the images from the database, resizes them to whatever width I specify in the query string, and does “funky” caching so if the image has already been generated/grabbed it returns just about as fast as reading it directly from the filesystem would. I have to have some fun because the site I’m doing this all for uses tables.

Speaking of tables, everyone head over to Big Pink Cookie and see how there aren’t any there. I recreated the basic layout in CSS and then helped Christine tweak it till it became the beauty you see before you now. If you’re curious, here are some of the changes I made:

  • The CSS and Javascript is now in seperate files, as to be easily cached.
  • The header graphic is now a h1 tag with the text hidden and the graphic as the background.
  • The latest pictures from Pixelog at the top of the page are now an ordered list, styled to display horizontially through CSS.
  • There is a “rapper” div (gotta have some flava) of a fixed width centered using margin: auto and a IE workaround.
  • Inside that there is a content and menu div, the menu has a fixed width and is floated on the right.
  • ms that were previously all preceded by “::” are now unordered list items with the :: effect recreated through a list image. Now if Christine wants to change the way her menu looks she just has to edit one file instead af change hundreds of double colons.
  • It now loads really, really fast. Especially when compared to before.

It might still have a stray error here or there that’s keeping it from validating, but give it a few days and all those should be ironed out. More importantly, it validates in spirit. I can now add Christine to the list of site I check when I’m browsing on my Palm over a 9.6k connection. Best of all, I think CSS no longer makes Christine’s eyes bleed, and she can see Tantek again.

No Designer Meetup

The web design meetup was cancelled due to lack of response. Maybe next time!

Web Designer Meetup

Okay this meetup could potentially be cool. Also the venue is in a convinent location, and I’ve never been there, so I’m willing to try something new out. I think we should plan a blogger takeover. 😉 But really, if you plan on going let me know and maybe we can carpool or eat or something.

New Yahoo

Saw this via Simon and I must say that I’m quite impressed. The interface is clean, the results are an ordered list and there’s all sorts of nice features and semantic goodness. Plus I show up twice on an image search for “photomatt.” If they had good toolbar this could definitely replace Google as my main search squeeze, unless of course Google comes back with something new, exciting and neat. While we’re on the subject, could someone tell me why I keep getting hits from a MSN search for “”?


I’ve spent all night hacking miniBB to have some semblance of standards compliance. I like it a lot because it’s simple and easy to get around, but the coding style (or lack thereof) in the source is really painful. In addition to no formatting of the PHP, the HTML suggests a lack of a basic understanding of markup languages, with enough nested tables to curl your toes. But guess what, it validates. On that note I would like to announce that the WordPress Support Forums are now up and humming along nicely.

My Own Medicine

What’s good for the goose… St. Thomas High School (which I didn’t attend) is now compressed and loading using the zlib method which has grown on me since I wrote that article. STHS is the one major client I have that I don’t host (hence the non-mod_gzip compression) which made things very interesting yesterday afternoon when their host moved the site onto a server with PHP 4.0.6, breaking most everything in the process. However the host was very helpful and they handled the situation quickly, upgrading within an hour or so.


This code really tickles my fancy. If I were starting a photolog now this is what I’d use, but 5596 photos later the prospect of converting is not trivial. I hope this trend of well-designed web applications continues.


Only $37,500 per Letter

After reading The Name Game I didn’t know whether to laugh or cry. Well actually, I laughed out loud the entire way through the article. The sheer frivolity of the industry described boggles the imagination. I actually checked the date to see if it was published on April Fool’s Day. Maybe I’m missing something very big here; if so, please enlighten me.