Category Archives: Web Standards

HTML, CSS, accessibility, and the open standards that make the web work.

Hiatus Reloaded

If you glance over at the sidebar, the photolog is now italicized, which can only mean one thing. It’s back! Over two hundred new pictures, eleven new albums, and more captions than you can shake a stick at. Go check it out, and be sure to leave comments. It’s going to be another summer of photos, so be sure to check the photolog regularly. I’m going to see now if I can do anything about the horrid HTML there.

CSS: The Gathering

So the other day I was over at Josh’s house helping him out with some CSS for his new site, fatalifswallowed.com. Now I know what you’re thinking, what’s an “alif,” why is it overweight, and why are they wallowing around? I wish I had the answers, but I don’t. Maybe there will be answers on the site, so you should go check it out.

Anyway, as a bit of friviolity to start your week with, here is the official Matthew Charles Mullenweg Magic the Gathering card, available in limited quantities only. What really cool is he did it so it’s on actual Magic card paper, and there are also a lot of nice details. Go Josh.

The Matthew Mullenweg Magic Card

For those wondering, it’s a black card because apparently deep down I’m evil. That is all.

Keeping the Faith

If you’re like me, you’ve been very concerned about the direction XHTML 2 has been heading. Very recently I’ve thought to myself that I won’t develop a commercial XHTML 2 site this decade. (Look how long it took them to get simple stuff right!) Only time will tell, but Tantek’s XHTML Considered Hopeful brings back that warm fuzzy feeling that promising new technologies give. Yes, it was going in a bad direction. Yes, it’s coming back.

I’ve lurked on www-html for several months now, maybe it’s time (and I finally have the time) to start seriously reading working draft and lend my voice to the process. That’s assuming of course I have anything cogent to say. I think the lesson to be learned here is if you’re concerned with where the spec is heading, let people know. As Tek says, they’re listening.

(My personal favorite new element so far? Gotta be <l>. Lots of possibilities there.)

Yum

Today has been a wonderful day feeling with code goodness. I don’t know why, but I really, really, really like playing around with XHTML. I find I enjoy programming in other languages (mostly PHP, but Python and Perl more now than before) most when it deals directly with XHTML. Anyway, I’m working on some really fun stuff and by this afternoon this site should be even more on the bleeding edge than it was before. Stay tuned.

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.

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?

Recent Comments

All the cool kids are doing it, so here it is. If you put a number at the end, like comments/50, you will se the last 50 comments. Neat huh? Want to see something really fancy? After you put the number on the end, add “rss” like this. Hot damn. It’s even valid. Some feedback would be helpful, because I don’t have an aggregator to test it in on this machine. As Mike would say, “Baaaahhhh.”

The real reason I put this up in the first place is that there is some good discussion (and sometimes not) in the comments occasionally that I feel gets lost in the shuffle. Furthermore, the RSS monkeys have no idea which posts have comments already, or to know automatically if new comments have been posted since they last checked the feed, so this will give them something else to subscribe to for the closer-to-full PhotoMatt Experience. 😉

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.

Psychological Egoism

Okay you know the drill. This is a paper I turned in today for my Ethics class. It deals with psychological egoism, and if you have any leanings toward this moral theory I’d be interested in hearing your feedback on this. My language is strong in the paper, but that doesn’t mean my mind isn’t open. I didn’t have as much time to put into the print (PDF) version of the paper this time, but it’s still a nicer way to read it than the HTML below.

Every human action is at its root a selfish act; even acts that are altruistic on the surface are primarily motivated by a deeper selfishness — or so a psychological egoist would say. Psychological Egoism is a descriptive theory that rather than suggesting, as ethical or rational egoism does, how people ought to live, suggests how people actually go about their lives. The assumptive nature of the theory introduces a number of possible avenues for refutation, some of which are very compelling. Continue reading Psychological Egoism

miniBB

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.

It’s A Beautiful Day

Today has been groovy because I finally got my ethics paper back and it got an 8, which was a little disappointing till I checked and remembered that this teacher’s grading scale has 7 and above as an A, so in fact I got a solid A. What paper you ask? Well it’s on Divine Command Theory and the Euthyphro Argument, and the entirety is available online in PDF and XHTML format through the link above. Which reminds me I still need to make a system to highlight some past notable post.

Source Code Humor

Source code humor is one of my favorite things in the world. I think when properly done, and ideally involving a pun of some sort, it is the highest form of humor in the world. It was introduced to me by studying the source of Jeffrey Zeldman as a young Jedi, and since I have on some level incorporated it into most of my projects since then. It is meant for a select audience, the elite handful that view source with a critical eye, and is usually either in the form of HTML comments—the blunt way to do it—or subtly interspersed in attributes like id, rel, and class. This is neither, and being server-parsed is never seen by the browser, but I had a hearty laugh after I stumbled on it by accident. Anyone have a favorite example of source humor?

Future of Email

A group I’m a part of is preparing to form a number of “working groups” and each group may prepare a number of documents. The proposed format for these documents is plain ASCII text wrapped at 74 characters. It’s not the IETF, and on the whole it seemed like a rather restrictive format to develop documents in, an opinion which I’ve been trying my best to communicate. The discussion is still ongoing, but there was a brief tangent where several people misconstrued my argument as being one for HTML email, which is a totally separate beast.

Anyway it got me thinking about how HTML email is almost universally condemned among tech-savvy email groups. The problem, I think, is not technological but in fact human. HTML email has the potential to be clean, structured markup that can add a number of rich elements that there is no standard way to add in plain ASCII, such as emphasis, links, quotes, and in general represent things in a more meaningful way. The problem is generally not in the receiving client; I can’t think of a client with no HTML reading support (even Pine does some). Also the MIME standard allows and encourages a plain text equivalent of all rich content. It’s a problem, to put it into Spiderman terms, of great power and great responsibility. Someone very near and dear to my heart sends me email with garish background, text that varies between large and red or some purple script font, and any number of images speckled about. To me an ideal solution would be an email composer that enforced strict separation of style and content, and a client which allowed any CSS attributes to be toggled at will. Someday, perhaps?

Notes: Between the Stylesheets

Here is a collection of some notes I took at the Between the Stylesheets panel, complete with linky goodness. Update: Tantek’s post.

Jeffrey: The thing about CSS, it’s hard to understand unless you first think about markup. It’s hard to rethink the way you approach X/HTML. There’s so much to do that it seems strange to think about HTML, but in fact it’s important. We now have the chance to party like it’s 1993, we have the chance to write it like it was meant. We (designers) could do that until browsers became compliant. Saves Bandwidth. Work is now more accessible. Continue reading Notes: Between the Stylesheets

Search Updated

I’ve cleaned up the ht://dig search engine quite a bit, though I still have to hack it to be XHTML 1.1 compliant and fit better with the site, but after updating the index I got these interesting stats:

./htstat
htstat: Total documents: 11490
htstat: Total words: 1933258
htstat: Total unique words: 17660

The bulk of those pages are from the photolog, which is currently 5200 photos, but before the index was huge because my URLs weren’t very tidy and sometimes the same thing would have 10 different ways to access it. That’s still true a bit, but I’m working on it. Also I’ve been working very hard on a new project, but I’m not sure if I’m supposed to talk about it yet.

A Little Curly

I’ve finally got it figured out. Put whatever text, html, whatever you want into this and if it breaks click the button. It works with things like the '70s (closing), 5'9" (prime marks), ``this stuff'', multi-paragraph quotes, and pretty much every other situation I could think of. It also doesn’t touch a thing in HTML tags or between code, kbd, or pre tags.

Cookie Price Differences Explained

Well after much Googling, I found two definitive sources that say there are price differences in cookies. I found an article (word document, view as HTML) from the Wall Street Journal that talks about a price war in Michigan between neighbooring councils that had prices at $2.50 and $3.

Girls are told that if customers ask about the price difference, they should explain the economic factors at play — that the Metro council serves four times as many members as its “sister” council, and runs three more camps. Michigan Metro says its troops receive a profit of at least 45 cents on each box sold; in Macomb County, the minimum is 32 cents.

Oh that’s wonderful. Item 9 on this Girl Scout FAQ confirms that prices are set indivdually by over 300 councils.

Such scenarios have been repeated in other parts of the country, as many of the nation’s 330 Girl Scout councils go through their annual pricing debate. Officials say they can’t adopt the simple solution—setting one national price—because their parent organization, Girl Scouts USA, follows the Sherman Act, which prohibits price fixing.

With each council individually incorporated as a nonprofit organization, Girl Scout officials say the law, originally designed to rein in robber barons, could apply to them as well. “In being good citizens, we choose to abide by the spirit of the law,” says Girl Scouts USA spokeswoman Ellen Ach. At a national meeting of council leaders last month in San Diego, Girl Scouts USA officials reiterated their position that prices shouldn’t be discussed among local councils.

So there’s a legal reason for the price differences, but I think it’s highly unlikely that the Girl Scouts of America would be prosecuted under the Sherman Antitrust Act, though personally I think the prices are a bit high. It’s supply and demand, and I think people would buy more at a lower price. They are also outpacing inflation: my simple calculations using the GDP Implicit Price Deflator, which is Greenspan’s favorite measure of inflation, gives me that if a box of Girl Scout cookies was $2.50 in 1996 it should be about $2.80 now, give or take a few cents. There haven’t been any changes in quality I know of, they have a great distribution model, and I don’t see why their costs would have gone up at all to justify that sort of price increase. Just my two dollars and fifty cents…