Tag Archives: Web

Corante Not Trustworthy?

Okay, it was very funny that a blogger by the name of Dana Blankenhorn (who we’ve seen before) attributed Why Google Is Faltering on RSS and that “Google needs to bring in someone with a Clue.” He had no “Clue” himself that the person he was trying to roast left the company half a year ago and he’s now doing cool things with Odeo. Now it’s not worth mentioning or even surprising that someone made a false assumption and came to a silly conclusion because of it. What is interesting is how Corante’s response to the entry, or lack thereof.

As it stands the entry is inarguably factually inaccurate, yet only the comments point to that. Dana has not responded to the comments or updated the entry, even though he had time to write 8 more entries that day. It may seem obvious to you and I that the entry is wrong, but not everyone and the entry is still gathering links. What’s more interesting is that entry has disappeared from the front page. (Screenshot of where it should be here.)

Corante claims to be “a trusted, unbiased source on technology, science and business that’s authored by highly respected thinkers, commentators and journalists; read by many of the sector’s top entrepreneurs, executives, funders and followers; and is helping to lead the emergence of blogging as an influential and important form of reportage, analysis and commentary.” They’re not helping blogging or their trust by leaving that entry up un-corrected and covering it up by taking it off the front page.

Update: Jason notes that the entry was deleted in MT, just not removed from the filesystem.

Open Source Blogs?

So I’m playing around more with Newsburst today, and one thing that struck me was the organization of the defaults. Where in the world did they come from? You could do this with most any category, but let’s take a look at “Open Source”:

  • Builder.com.com — not sure what the site is doing, but the feed does have two mentions of open source software, but it seems to just be re-branded stories from News.com, so I’m not sure what the point is.
  • Linux Dell Blog — Frequently down but hardcore open source.
  • jfleck — I suppose the connection is he contributes to Gnome. Okay… No posts about OS on the front page, and even the category they subscribe to looks to be updated about twice a month.
  • Kuro5hin — A great site, but nothing about Open Source in the feed lately. It’s more tech-culture.
  • Linux.com — dry, but valid.
  • linux kernel monkey log — valid.
  • Miguel de Icaza — Good choice.
  • NewsForge — groovy.
  • Lockergnome Tech News Watch — covers tech but not too much OS
  • Scripting News — Many things, but not an open source blog. Besides, it’s listed several other places already.
  • Slashdot — who would argue with this?

What would be cool if Newsburst let me tag a feed when I subscribed to it, then highlight popular tags and the most popular “sources” within them. Forget what they think “open source” is, I want the opensource tag.

The way to get people hooked on blogs has nothing to do with RSS feeds or river of conciousness displays or whatever, it’s all the fantastic content that’s being created out there by people in the trenches. If you had a passing interest in learning about open source, you would get 60+% junk if you subscribed to that channel group. Where is Blake Ross’ passion about Firefox, Mitch Kapor, ZDNet’s OS Blog, Sitepoint’s, Spread Firefox, or anything from the people that are creating the applications that are changing the way we live, work, and play? Are blogs that talk about open source that hard to find?

Six Apart and Live Journal

I’m a little late to this, but the word is that Six Apart is buying LiveJournal. Congrats to the 6A and LJ teams! Big news, however you cut it. However, the question is: what exactly are they buying? LiveJournal has about 5.6 million accounts, but only about 2.4 million of these are active. That’s still pretty nice though, considering I imagine it’s about 24x what Typepad/Movable Type have now. Is it the technology? That’s already open source so they would have access to that anyway, and it’s Perl (which is 6A’s core competency) so I’m sure they could find they way around. (I wonder what will happen to the Open Source project after the dust has settled though?) That leads me to think it must be the people and engineers at LJ that 6A is after. Is this enough to position them against Microsoft and Google, as many have been suggesting?

98.6% of LiveJournal users don’t pay a thing, but that still gives 6A ~93,000 accounts paying $25/year. That revenue will be nice, especially since 6A has so many employees, but I don’t think it’s the coup most people are expecting. Remember the people who invested $10M in Six Apart are expecting it to be a quarter of a billion dollar business. It’ll be interesting to hear what the official word is on this, if and when an official word comes out. I’m probably missing something obvious. (And where is Yahoo in all of this? They better hurry up and buy someone too.)

Announcing bbPress

The software that was running the WordPress support forums was getting long in the tooth and was not handling the load of increased exposure terribly well. A PHP upgrade rendered it nearly unusable. Anyway, long story short, I wrote some forum software. It’s called bbPress and is similar to WordPress in a lot of ways, including being Free-as-in-Software. The things that WP does well—unicode, timezones, XHTML, speed–it does well too. You can read all about it on the new bbPress site and grok its philosophy, comment on the blog, join the mailing list, checkout the code, submit bugs, patches, et cetera. I have been putting this off for almost a year now, so it’s very fufilling to get this project rolling. It went so fast that I’m kicking myself that I didn’t do it sooner.

The goal of bbPress is to bring some weblog and WordPress sensibilities to forum software. It’s never going to have a tenth of the features of phpBB or vBulletin, but that’s a feature itself. My experience with those packages is they’re like a herd of elephants who evolved on a strange island in bizzare ways, and they tend to foster a type of community that is antithetical to I’m trying to accomplish. We’ve learned a lot in the past few years about how the interactive web works, why do most forums look and act the same they did in 2000? Why is it still so hard to integrate user systems or mesh designs? Why can’t I ping a thread like I can a weblog post? Why can’t I filter by XFN values?

bbPress is not and will not be right for everyone. There are open source traditional forum packages, like PunBB, that get a lot of things right and push the envelope in interesting ways, so that’s covered. bbPress is not going to have avatars, or put post counts next to your name, or give every user 80 options about how they want their dates formatted, and for some people (maybe most people) that just won’t work. However even if WordPress.org is the only site that ever runs this software, it’ll be totally worth it just to get the forum technology growing again and create a richer support experience for the WP community.

Planned Anarchy

No street signs. No crosswalks. No accidents. A fantastic Wired article about how removing the artificial safety nets we set up for ourself actually makes us safer. The illusion of safety is a very dangerous thing. This is totally applicable to software design too. If you put up a big notice saying “Don’t do this” people won’t read it, you have to design the interaction to encourage people in the right direction.

Houston Press and CNET

(Also known as Announcements Two and Three. See part one.)

Matt Mullenweg may be underage, but he knows how to get into a bar.

That’s the opening line from the Houston Press feature called The Blog Age, subtitled “Matt Mullenweg helps usher in the real information revolution, one Web log at a time.” Modest, eh? It should be on newstands tomorrow so if you’re in Houston pick up a copy. Otherwise read it online.

Though it’s a little embarassing for me in parts, it’s a really good article that covers everything from Open Source to my fellow H-Town bloggers to political blogging at the national conventions. I’ve been talking to Cathy (the author) off and on since August and the strangest thing is how much has changed since we first met in a small coffee shop in Montrose. There are a few points I’d like to expand on or clarify but I’m exhausted from today’s travel right now.

The Other Big News

If you’ve read the article already you’ll notice that it breaks a juicy tidbit that hasn’t been published before: I’ve accepted a job with CNET Networks. That’s the reason I’m moving to San Francisco. There were a lot of ways things could have gone and honestly I wasn’t even planning on leaving Houston originally, but over the course of the past 3-4 months I’ve been talking to CNET and an opportunity came up I just couldn’t pass. As it says in the article part of what they’re paying me for is working on WordPress just like I do now. The rest of my time I’ll be working on various projects, most of them probably so top-secret I can’t breathe a word in advance.

The reason I’m excited about working with CNET is how what I’ll be doing meshes with my thoughts and ideals regarding Open Source, standards, and communities. My principles aren’t changing just because my paycheck is. You can expect the same sort of content here on PhotoMatt.net you’ve seen in the past — namely unfiltered personal thoughts, jabs, and observations not connected with any corporate entity. This is obviously a pretty significant move for both myself and WordPress so I’ll do my best to entertain any questions you may have in the comments.

Best and Brightest

The Best and Brightest, Glamorous Life #33. Who says Zeldman gets linked less?

Zeldman has had a profound influence on the way I think about the web. I started taking web craft seriously because of Zeldman. WordPress exists because of Zeldman. I am where I am today because of Jeffrey Zeldman. This isn’t hyperbole, just statement of fact.

I think now is an excellent time for people to take a walk through his archives and highlight their favorite articles, something I’ll do myself at least once a day every day this week. If you’re doing something similar leave a comment so I can follow along. It’ll be interesting to see what people were most influenced by from one of the most influential fathers of today’s web.

News.com Leads Blog Communication

This is the coolest thing I’ve seen all year. Check out the HTML of this article I linked a few days ago. Notice anything at the top?

<link rel="pingback" href="http://tb.news.com/p2t.cgi/2100-1032-5368454" />

Houston, we have Pingback support! Let’s dig deeper:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
dc:title="Microsoft flip-flop may signal blog clog"
dc:identifier="http://news.com.com/2100-1032-5368454.html" />

Ugly as sin, but that’s trackback. It gets better…

A little URI hacking takes us to this page which lists all trackbacks and pingbacks the article recieved. How cool is that?

It’s my understanding that even though they’ve had the trackback autodiscovery code for a while they’ve been recieving mostly pingbacks, which makes sense given that it’s more fully and elegantly automatic. It would be cool if they could add support for the nascent rel="trackback" discovery method and save themselves the trouble of the RDF hack. Hopefully spammers won’t exploit their trackback server too soon and they can support legacy systems that don’t implement Pingback yet.

The implications of this are fairly large. News.com is obviously bootstrapping code that will involve their readers with the blog conversation surrounding their articles. How long for other sites to catch up? Will they plug into Technorati or Pubsub next? As far as I know this is the first major media organization to implement Trackback and Pingback. The team at News.com should be commended for their effort and leadership in this area.

Bloggers Declare Bore

Online Journalism Review writes Bloggers Declare War on Comment Spam, but Can They Win? I’m not sure what that has to do with journalism, but they talk to the same old people and read the same old sites and (not surprisingly) come to the same old tired conclusions. I’m trying to figure it out because I like everyone the article refers to and the article itself is well-written, but it feels very contrived. I think it may be because it draws a lot from blog material a year or more old, and selectively, like the writer had an agenda and Googled until there were enough quotes to fill the space. For example Mark Pilgrim’s blog is called “comment-free” when the entry on the front page for the last three weeks clearly has comments. Is it too much to ask to look at the front page of a blog you’re quoting? The article talks about Blogger redirecting URIs but not about Blogger’s registration aspect. It talks about Typekey but not the PATRIOT act. (Totally kidding there.)

You probably saw this coming from me, but most of all I think it’s silly that they don’t mention a single one of the dozens of other blogging systems that deal effectively with these issues every day. You can’t discuss the Movable Type spam epidemic without talking about people like Molly who tried everything out there including MT-Blacklist to no avail, then switched software and got on with their lives. There is a lot more to the story, but that’s been the conversation over the past year and a lot has come of it. The essence of blogging is communication and comments are here to stay, it’s just a matter of moderation.

RSS Bandwidth Usage

Robert Scoble looks at RSS bandwidth usage but unfortunately doesn’t give real numbers. There are a couple of important points in looking at HTML vs. RSS bandwidth usage, some brought up in his comments but I’ll review here:

  1. RSS is not a transport mechanism, and these problems should be handled on the HTTP level. This is faster, better tested, works with caches and proxies, et cetera.
  2. I don’t care if an aggregator checks my feed every 5 minutes, if they support HTTP properly (last-modified headers) the load is neglible for me and them. The bandwidth used each time is around 250 bytes.
  3. Speaking of HTTP, gzip encoding works just as well for RSS feeds.
  4. Bloated HTML in full content feeds will make for bloated feeds. We’ve upped our standards, up yours.
  5. Adjust your number of items to match your posting schedule. If you update two or three times a week, you don’t need 20 items in your news feed, try five. If you update a lot like myself or Robert you run the opposite risk: people who don’t check your feed for a while might actually miss content. I talked to aggregator developers a few months ago about a way to address this, perhaps we need to look at this again.
  6. A visit to a homepage like this generates a lot of requests. First you get the HTML, then your browser requests the CSS files, then it gets all the images, probably about a dozen of them. RSS is generally a single request, and then images embedded in posts may be requested later if that entry is viewed.

That out of the way, how about some real numbers? I can give the best stats for photomatt.net because my RSS feed is on a separate subdomain. Here’s bandwidth usage for August:

photomatt.net – HTML and images, et cetera
56.0 GB
xml.photomatt.net – RSS and other variants
1.7 GB

The ratio for July was similar, 77.6/2.0 GB, I guess I lost some readers in the summer slowdown.

My front page is an average of 17K HTML and about 30K of images, so lets say 50K. The images and CSS are all cached, but I don’t output the proper headers on the HTML because it would be a pain. I would have to check the time of the latest post, check the latest updated link, make sure there’s not a random photo, basically go through a lot of trouble that isn’t really worth it. (When I was caching everything with Staticize the page was stored in its entirety so I sent correct headers, but I don’t bother with that anymore because everything is so fast it doesn’t really make a difference.) All that said, I’m happy with the level of optimization, my HTML and CSS is as streamlined as I want it to be.

My feed, on the other hand, is completely self-contained. I can send headers with confidence because I know everything in that file and can say authoritively when it was last changed. (Actually WordPress handles it all automatically, I don’t worry about it.) Most of the aggregators that hit my site support this. I don’t think about it and they don’t think about it, HTTP just works. My feed has 25 items because of my posting frequency, more than twice the number of items most feeds have. The feed is usually around 10K, and as I already mentioned it’s only one request.

Here’s the kicker: my RSS feed is requested 3 times for every time my front page is loaded. So a HTML page with 1/3 the traffic is using over 30 times the bandwidth. What was that about scalability again?

WordPress.org Search

I’ve ripped out the guts and redone the search on the WordPress.org support forums in the hopes of making it something more people will use. Try it out! The new system searches the wiki (hosted on a different machine), thread titles, recent posts, and does a FULLTEXT post search for the most relevant posts. It has contextual search highlighting (like Google).

When I have some time to get back to this every section will have a “more of this” link to take you to more results (paged). It does this currently with the wiki search, counting the total results and linking to the wiki search directly if there are more than 5 results. Probably still a few bugs to work out. The fulltext query was taking over two seconds to run until I tweaked the JOIN type to get the MySQL optimizer to use the proper index and join order. Everything should validate as XHTML.

A new system is also in place to inject custom results at the top of the page. We’ve been logging searches for the last few months (over a 129,000 so far, about 43,000 unique searches) and I’m going to be working closely with the documentation team to identify which searches are most common and what tailored information would be best to present the user with when they search for targetted terms, be it a blog post, an external resource, someplace on WordPress.org itself, a wiki page, or a specific thread. We can watch trends and spikes in searches to identify any problems in the application itself or features that may be insufficently documented or hard to use.

The work is far from finished, but I think it’s a strong first step into fully integrating search as a support mechanism and bringing the WordPress team even closer to the pulse of the users.


Zoto looks pretty neat. I signed up earlier and also set up an account for my Mom. But why isn’t WordPress a “supported blog”? Only a 136 users so far as I write this. Go sign up and try it out. They’ve done some interesting things with the interface and they have an open source photo client available for Windows, OS X, and Linux. I couldn’t get the Linux client working on my Mom’s computer, had no trouble at home on Gentoo though. I think it was an old version of Python.

I uploaded a few not-yet-on-the-photolog photos to my Zoto page to get the party started. (The fact that some of those are from Christmas and New Year’s means I really need to catch up.)

Staticize 2.5

Version 2.5 of the Staticize Reloaded plugin is now available for download. Installation instructions are included in the archive. What does Staticize Reloaded do? It is a highly advanced caching engine that dynamically and automatically caches pages on your site that need to be cached, when they need to be cached. It also allows for some parts of a page to be cached and others not to be, so for example your menu could always be dynamically included from a single file while your main blog content was cached. With Staticize Reloaded you don’t have to worry about rebuilding, stale caches, slow posting times, or any of that. It works silently, efficiently, and trasparently to both the end user and the author.

This version adds the ability to have dynamic functions on a page in addition to dynamic includes. It also adds full support for etags and last modified headers, though you must turn it on in the plugin file. My one tip is that when you redesign or tweak your template temporarily deactivate the plugin. Staticize Reloaded is well-suited for sites on older servers or that receive more than twenty thousand visitors per day. WordPress is so fast anyway I find it’s not worth caching on lower-traffic sites.

Update: The zip archive had a slightly older version of the plugin than the final 2.5 release. Please re-download to get the latest and greatest and fastest.

Mac IE 5 Support Worth It?

In Joining the Dark Side -OR- Is Mac IE 5 Support Worth $1,500, Scott responds to Tantek’s calling out of the new Feedster’s lack of support for Mac IE. Personally I’m sympathetic to Feedster’s case because I’ve had to spend hours talking to someone with a Mac trying to debug Mac IE issues with this site and wordpress.org and ended up having to change my favorite list menu technique from using floats to display: inline, which meant changing all the other menu styles to compensate. It was a pain.

I know that when I’m tweaking and checking things in different browsers, the number of my audience who uses that browser isn’t always the most important thing. In the previous case the only Mac IE I had heard anything from since both of the sites started was Tantek, and that was important enough to spend a couple hours of my time on. Imagine if you’re doing a job and the client’s boss uses Netscape 4, (god help you and) suddenly that browser becomes much more important in your testing, and you should triple your rate.

However, is this something the Web Standards Project should be interested in the same way we have been All Music or Odeon? I don’t speak for anyone but myself, but in my opinion it’s not the same at all. Feedster’s pages are a few trivial mistakes away from valid XHTML 1.1 and valid CSS, which is no easy task. (MIME issues aside.) Of course they should fix those mistakes, but it is a matter of a few minutes rather than 1-1.5 days. They aren’t writing to one browser or propietary technologies, they’re writing to modern standards and excluding browsers that have serious flaws in that area. Is that so different from the browser upgrade campaign?

From a user experience point of view, excluding Mac IE users might be a good idea as well. If Feedster allowed Mac IE users to visit and they saw a messed up layout (or no layout at all), as Tantek has suggested, then their perception of the Feedster brand, reliability, and image would be negative. I bet Keith would have some great thoughts on this. If they’re given a message that the site doesn’t support Mac IE, (honestly) they’ve probably seen this before and will just switch to another browser for that site. In my experience Mac users tend to be total browser flirts, and have every browser you’ve ever heard of installed. I would rather they open up my site in Safari or Firefox.

If Tantek was here I imagine he would counter that those browser options are really only valid for users on OS X, and that ignores hundreds of iMacs and such in libraries and such. Of course the question that a site owner needs to ask himself then is that in terms of costs and benefits, does that half of a single percent audience in libraries on older computers overlap with the audience you’re targetting with your site? If I was doing an ecommerce selling something like BMW accessories, I wouldn’t even give it a second thought. This isn’t about the many innovations that Mac IE introduced or its excellent standards support for its time, the issue is where Mac IE stands today.

On the bright side, Feedster has characterized this as a business cost/benefit decision and said if anyone sends them Mac IE CSS they’ll use it, which seems like a good concession. Of course I think Feedster should support Mac IE, and a day and a half to add support seems a little high, but if they choose not to I can understand.

Image Toolbar Header

I’m doing some code cleanup around here, and I came to a line in my <head> that is soley to work around an Internet Explorer feature I don’t want on my site.

A highlighted example of an Internet Explorer image toolbar.

Here is the standard way to remove it:

<meta http-equiv="imagetoolbar" content="no" />

Since the http-equiv attribute is meant to be simply a document-level replacement for real HTTP headers, and I have the ability to send out real HTTP headers, I decided to try out removing this line and replacing it with this bit of PHP, which according to the spec is functionally equivilent:

<?php header ('imagetoolbar: no'); ?>

Looks funky, but according to the HTTP 1.1 specification user agents should ignore headers they don’t recognize, so there’s no harm. However in my testing I was disappointed (though not terribly surprised) to find that Internet Explorer did not respect the header. I have trimmed other parts of my markup quite a bit though, and I’m willing to sacrifice this one line.

More Googlebot Flailing

Now I’m seeing the Googlebot request /about/ pages relative to known blogs that don’t have any links to any /about/ URI. The last time the Googlebot flailed around like this it was fun to watch for a little bit and wonder what they had cooking in the labs, but then it got annoying. I don’t know if there are rules of bot etiquette, but requesting imagined unlinked resources while spidering can’t be a best practice.

There is of course one blog vendor who consistently has about pages at /about/ URIs, and that’s Typepad. Now my question Google is: what should the rest of us do if we want our about pages indexed by this new system? Mine happens to be in the about subdirectory of my blog, but what about people who have about.html or about-me.php? Should I set up a permanent redirect for every blog I have redirecting to the real about page?

(Note: That’s faux indignation. I don’t have any juicy conspiracy theories, and I’m not really that peeved, mostly I’m just curious what they’re up to. However juicy conspiracy theories are welcome in the comments. [As long as they don’t make fun of me for noticing these things.] )

UPDATE: It just requested a non-existent non-linked /contact/ URI.

UPDATE: It just requested a non-existent non-linked /stats/ URI.


Movable Type and WordPress Meet

LoicLoïc Le Meur Blog: MT and WordPress meet :=) I didn’t get to see Loïc again on Friday like we originally planned, but in the short time we met I got a good impression. People assume that behind the scenes we’re all at each other’s throats, that it’s all WordPress vs. MT vs. Drupal vs. TextPattern vs. Blogger vs. whatever, but it’s actually the opposite. Though there may be some professional differences (you say po-tah-to, I say PHP) everyone is genuinely friendly. Behind the tools are normal people, not super-villians. While meeting with a large potential WordPress user I suggested they also check out Typepad and Blogware because I’ve personally used each and they seem like solid platforms worthy of investigation. I hung out with Anil half of the days I was in San Francisco. Life is too short to waste karma on blogging, and while I get as passionate about the issues as anyone, at the end of the day we’re all contributing something positive to the medium. Of course, Mingus would say “They’re singing your praises while stealing your phrases.”

Staticize Reloaded

The caching plugin I pointed to the other day was very well-executed but it didn’t meet my needs for several reasons, mainly that it cached every bit of output, which wouldn’t be appropiate for things like my random photo. (Or my non-rotating photo formerly known as the random photo in the header. It’s on break right now.) My site is a pretty neat system of PHP includes, and I want to preserve that because it makes my life easy and doesn’t slow anything down any perceptable amount.

So I took the Staticize plugin and added support for dynamic non-cached sections, cleaned up the code a bit, fixed a weird problem where it would just show a blank page if it couldn’t write the file, fixed the problem with edit links and the comment form, and made it fit with the WordPress code a little smoother. Full instructions are included with the plugin, but to install just make sure your wp-content folder is writable (you may have already done that when setting up WP) and activate the plugin, and it will start working immediately.

I have a couple more improvements in mind for it already, but it’s fully functional and I’m running it right now.

Download Staticize Reloaded 2.0.

Mosquito Bites

So it wasn’t even the first day of the bug tracker’s existence when bug notes got rowdy and prompted Shelley to write a post lamenting WordPress developer communication and more. I started to write a reply in the comments, but it got pretty long so I decided to post it here.

Shelley: Different people particpate with the development process at different levels. While I appreciate the point you were trying to communicate, it seems like an inappropiate place to role play a clueless user. (Particularly posting under your own account.) Ryan and I fully realize that the reply would mean very little to someone who didn’t know PHP or diff, but it was a dialogue between you—Shelley Powers the bug reporter who has written several advanced hacks and plugins for WordPress—and a developer who wants to address the problem. Someone else probably would have been treated differently. In the past you have been very indignant when someone assumed you didn’t know something and addressed you at a level you deemed patronizing. In that situation, how is anybunny supposed to respond?

It’s silly for it to come up in the first place. Communication is much more than 50% of successful application, it’s 100% essential because without it the code doesn’t really matter. The project falls in the forest without making any sound. However the bug tracker doesn’t seem like the best place to make this point. If you really feel strongly about this, why not write some guidelines or best practices in the wiki and send a note to the documentation list.

There a thread on the forums which addresses some of this.

Standards Police

The Standards Police, I think Keith is totally off here, as I began to express in Dave’s comments. A laissez-faire approach to compliance isn’t helping anyone. Someone needs to set an example, and if it’s not these guys who will? Jeffrey and Doug, each with no small amount of content on their site, seem to have no problem keeping things compliant. Neither does Eric, Tantek, Joe, Lars, Anne, Mark, just to name a few. Don’t tell me “validation is very hard and takes quite a bit of effort.” That’s a weak cop-out. Accessibility is very hard, design is very hard, music is very hard, driving in between the lines is very hard. If you don’t want to make the effort, then don’t dabble and make flippant comments that hurt the field as a whole and insult the people who work “very hard.”

I’m coming out. This site is to the best of my ability valid XHTML 1.1 sent with the proper MIME to browser that can handle it. Even the photolog, which took me hours and hours of work to get to the point where it is now, and for a long time was far from decent markup. However I am fairly certain that there are some comments (particularly on the mosaic thread, which now has almost a thousand replies) that have broken validation, and though I am very busy I will personally check each of these. WordPress helps a lot. The WordPress site is also XHTML 1.1 with the exception of the forums, which are compliant by default (more hours of work) but which could do a much better job of validation input. These are my weaknesses, out for the world to see. Even though the sites work just fine, and “validation doesn’t pay the bills,” I’m going to devote my time to fixing these problems because how can I presume to be a member of an organization devoted to standards without following them myself?

Update: Pulled and republished.