Category Archives: Opinion

To hell with bad email software

The current state of email clients is such that responsive email is considered one of the most difficult tasks in web-development. It’s time to force the hand of email client developers.

In 2001 Jeffrey Zeldman wrote:

[Web] standards have been around for years. Browsers that support them have been around for six months to a year. If not now, when?

It typically takes 18 months or longer for web users to upgrade their browsers. Many still use browsers, like Netscape 4, that date back to 1997. These folks will only upgrade if we give them a reason to do so.

To hell with bad browsers, A List Apart

Continue reading To hell with bad email software

Conference Codes of Conduct

Before I begin, I have to say I think codes of conduct are a good thing, an essential element of a well run conference. In fact, I’d go as far to say not having a code of conduct is to neglect your duties as a conference organiser.

I know a few people who have organised conferences, some better than others, and none of them want a code of conduct. This is why codes of conduct often include some variation of “we don’t want to write this, we have to”.

Continue reading Conference Codes of Conduct

Remembering the 90s

John Allsopp had a rant on Twitter recently – as is his want from time to time – he was remarking on vertical rhythm tools around the web and his point boils down to:

This speaks to me of a wider problem; web developers are forgetting the 90s. Continue reading Remembering the 90s

Dear Drupal: Season’s Greetings. Love, Smashing WordPress.

Every day I work with WordPress in one way or another. My Twitter feed is full of WordPress types, and I’m a regular at my local WordPress meetup. I’m a WordPress fan.

The White House hosts a number of Web developers who use Drupal every day. Their Twitter feeds are probably full of Drupal types, and some may well attend the Washington DC Drupal meetup. They are Drupal fans.

Continue reading at Smashing Magazine.

Euthenasing Internet Explorer 6

I think, much of the time, when website owners and developers decide to drop support for IE6, we go about it the wrong way.

For a not-for-profit, like WordPress.org, the decision can be simple. The project is free and the cost is resources. To no longer support IE6 in their admin means the WordPress team can develop more efficiently. When a website makes a profit, however, I think the decision is black and white.
Continue reading Euthenasing Internet Explorer 6

Forms are forms, not lists

Respecting someone or their publication does not prevent one from disagreeing with them. In fact, I think to nod along saying “you’re so right, OMG, you are so right!” is less respectful than listening to and considering what they say. That dealt with, allow me to disagree with some people I respect.

Frequently, I see HTML forms coded as lists. I’ve seen this in code by some publications and people I highly respect, such as on A List Apart. The code may be:

<form action="example.php" method="post">
<ol>
  <li>
    <label for="itemOne">Item One</label>
    <input id="itemOne" name="itemOne" />
  </li>
  <li>
    <label for="itemTwo">Item Two</label>
    <input id="itemTwo" name="itemTwo" />
  </li>
</ol>
</form>

Continue reading Forms are forms, not lists

Why we host Big Red Tin on US servers

Some time ago, I wrote a post in which I stated I’d be sticking with Australian web hosting provider Quadra Hosting. Shortly after writing that post I’d relocated the Soupgiant sites to an American service provider.

Even though I’ve done similar before, it’s not because I’m a compulsive liar. I promise. It’s because situations change and they can change quickly.

About the time we switched hosting providers, Soupgiant became responsible for hosting the Boxcutters podcast. Each week Boxcutters releases an MP3 between 35 and 45 MB which is, in turn, downloaded at least 1000 times.

The maths is pretty simple, each week Boxcutters, alone, uses 35 GB or more of bandwidth. With our current host, Linode, we’re paying a little under $US60 for a VPS and 600 GB of bandwidth. To get the equivalent bandwidth in Australia, we would be charged at least ten times that amount.

It’s not entirely the fault of Australian hosts that they’re pricing themselves out of an international market. According to the OECD, retail bandwidth in Australia is 50% more expensive than in the US. It’s safe to conclude this is a reflection of wholesale pricing.

To state the obvious, hosting pricing has to follow the lead of bandwidth pricing. So if Australian web hosting providers are gouged, gouging of their customer must follow.

I’d love to host the Soupgiant websites in Australia, partly due to home-town pride but mostly because the 25,000 km (15,500 mi) round trip to California is pointless.

The simple fact is: Soupgiant can’t afford to host our sites locally, given that most of the bandwidth is used for a loss-making podcast.

Hosting the sites in the USA means we may break even some months but locally there’s no chance.

Update: Since writing this post I’ve relocated Soupgiant’s hosting to Media Temple‘s dv service. A managed service is a better fit for Soupgiant.

jQuery 1.5 as jQuery 1.5.0

In early 2009, I wrote a post on browser caching times for the Google AJAX Libraries API.

The cheat notes are that three different URLs point to the current edition of jQuery and each URL is cached in the browser for a different length of time:

The point of my post was that, when using Google’s AJAX Library to host jQuery, or any of the other libraries, it is best to specify the exact version to receive the full benefit of hosting on the same server as gazillions of other web sites, that being, your visitors don’t need to download the library for every site they visit. I was reminded of this when Dave Ward appeared on episode 32 of the official jQuery podcast.

When jQuery 1.4 was released, the Google URL being publicised by the jQuery team was http://…/jquery/1.4/jquery.min.js – while Google had set it up as http://…/jquery/1.4.0/jquery.min.js. I had two problems with this:

  • The publicised URL, coming from the official jQuery team, was only cached for 1 hour;
  • Anyone using the publicised URL would automatically be upgraded to jQuery 1.4.1 upon its release, regardless of their expectations.

My request to John Resig and the jQuery team is to avoid confusion by officially numbering the next version as jQuery 1.5.0 and publicising the URL that contains the full version number.

That means that for most people the default version of jQuery they download will be updated least often. It means that the people building the websites have more control over which version of jQuery their end users download and when.

It may seem trivial now but if your visitors leave your site while they’re waiting for jQuery to download, you’ll think it less so.

Update: In the blog post announcing version 1.5, the jQuery team did publicise the 1.5.0 URL on the Google CDN.

Thesis V WordPress, Pearson V Mullenweg

Reading my WordPress feeds this-morning, it appears a war of words broke out overnight between Matt Mullenweg (the lead developer of WordPress) and Chris Pearson, the developer of the Thesis theme.

In brief, Mullenweg believes that, because WordPress is released under the GPLv2 license, all themes and plugins developed for WordPress must also be released under the same license. Pearson disagrees.

This situation has never affected us directly at Soupgiant so we haven’t needed to, and this is important, ask our lawyer if my interpretation is correct. This is a layman’s opinion and should be treated as such.

The battle comes down to these clauses in the GPLv2 license:

You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.

–source GPLv2 license

Due to the second clause quoted above, I believe that Mullenweg is wrong. WordPress themes can operate on other blogging platforms with minimal changes. This has been done before with the Sandbox theme for WordPress which was successfully ported to Movable Type.

WordPress themes output HTML with a series of calls to the blogging platform. To output the post’s title and contents in our base theme, we use the code:

<h2 class="entry-title"><?php the_title() ?></h2>
<div class="entry-content">    
    <?php the_content("Continue reading " . the_title('', '', false)); ?>
</div>

To output the same HTML in a Movable Type theme, we would output:

<h2 class="entry-title"><$mt:EntryTitle$></h2>
<div class="entry-content">
    <$mt:EntryBody$> <$mt:EntryMore$>
</div>

In terms of a page’s output, the above code is a minor part of the page. The theme’s template is mostly made up of HTML and CSS, HTML and CSS operate in the browser and not in the blogging platform. It’s for that reason that I believe that Pearson is correct in this case.

I acknowledge that WordPress hooks may complicate the matter but these hooks output such a minor part of a theme’s HTML, that I consider the theme uses the platform but isn’t derived from the platform. I’ve left plugins out of this discussion as these are a more complicated matter: they can output HTML or they can build on the platform.

The above said, were I to release a WordPress theme I would probably release it under the GPL as a hat tip and thank you to the community that has assisted me so much. However, if the theme was as complicated as the Thesis theme, I may feel differently about the matter when it’s crunch time.

Again, this is a layman’s opinion and should be treated as such. If you have a layman’s opinion too, we’d love to hear it in the comments.