It’s just data

Thanks for Volunteering!

Larry Masinter: When the C++ committee (ISO/IEC JTC1/SC22/WG21) produces a document, are they producing a Technical Specification of the language, or an Applicability Statement on compiler implementation?

The context for the above statement is an argument by Ian Hickson that "Technical Specifications", as you are describing them, are worthless.

James BrittThe consolidation removes this useful competition. This is maybe a plus for folks who prefer Rails, and a gain for people who want to do things the Merb way but can now say they are using Rails. Less useful to people who want to see more distinct options.

The context for the above statement is the fact that Yehuda Katz (of Merb fame) is joining the Rails Core team.

What do Yehuda and Ian have in common in this case?  They are both working on causes they believe in.

Dan Connolly: I also suggest we demote many/most of our OPEN issues to RAISED, and discourage discussion of issues that aren’t OPEN.

The context for the above statement is an Open Issues list where to this day the majority of open items have no actions associated with them, and for those that do have actions, many of the actions are either overdue now, or soon to be so.  If you listen carefully, you might even be able to make out the Whooshing Sounds.

I don’t yet fully know what I can accomplish as co-chair of the HTML working group, but I do intend to approach every raised issue with a disarmingly simple question: Is this something you intend to work on?

AWDwR3 Beta 7

Beta 1.7 of Agile Web Development with Rails, Third Edition is out.

A few highlights of this edition (as compared to the second edition) are as follows: installation completely updated, static scaffolding (don’t laugh, this completely broke the previous edition’s approach to the Depot application), a balanced focus on REST and non-REST interfaces, atom_feed helper, Internationalization, timestamped migrations, ActiveResource, and Passenger.  And a bazillion or so smaller changes.  A few things left for the next edition: JQuery, Metal, Merb, and Ruby 1.9.


Rack'em Up!

Rack is Ruby’s answer to Python’s WSGI.

A year and half later, Rails replaced the guts of script/server with a call out to Rack.

Days later, Phusion Passenger™ essentially became mod_rack, though you can still call it mod_rails if you like.

Yesterday, a new micro-framework named Metal has been introduced which allows one to intercept requests, whether it be for performance reasons or simply to call out to another framework.  Sinatra has already been demonstrated, Merb can’t be far behind.

I love it when a plan comes together

Co-Chair HTML WG

Michael(tm) Smith: effective January 5, there will be a change in the leadership for the HTML Working Group. Sam Ruby has been appointed as a new co-chair by the W3C Director, Tim Berners-Lee, and will be joining Chris Wilson in that role next month; at that time, I’ll be returning to my previous role as the W3C staff contact for the group.

While my primary focus will be inward, let me first get something out of the way: I personally would like to see the XHTML2 and HTML groups brought together or at least the overlaps removed.



Today was the Airman’s Coin Ceremony.  Pictures:

Airman Dad Mom Parents

“Just” use Unicode

Sean McGrath: Making it possible to write software that will work in any language in any country, in any culture in the world is an extremely laudable goal. A goal that I wholeheartedly sign up to. We should make sure that the software arts make it possible. It is simultaneously the commercially sensible thing to do and the right thing to do from many human perspectives. A rare alignment of drivers indeed.  At this point, a voice somewhere in the room (is that a pointy haired boss I see out of the corner of my eye?) proclaims the answer to be obvious.


OK, I admit it.  I’m an ssh junkie.  I often have ssh windows open to several different machines — my Mac Mini, my Ubuntu server, my hosting provider, and even to whichever workstation I happen to be at at the moment.  That’s why the recent change to remove the icon option from profile of gnome-terminal has proven to be a minor but constant irritant.


Thin-Client Revisited

Steven J. Vaughan-Nichols: Now, thanks to a partnership between Canonical, the company behind Ubuntu, and IBM, there’s a way to roll out corporate Linux desktops almost as fast as you can plug them into the network.

This story excites me.  Not for the “... drive significant savings compared with Microsoft-desktop software by amplifying ...” angle, but because hopefully it will mean that more application developers will see it as important that their applications are made available early, and run well, on Linux.

Python 3.0 Released

Python Software Foundation: We are pleased to announce the release of Python 3.0 (final), a new production-ready release, on December 3rd, 2008.

I’m particularly looking forward to Text Vs. Data Instead Of Unicode Vs. 8-bit.

HTML5 in Gecko

Henri Sivonen: The effort of putting an HTML5 parser inside Gecko takes a step out of the vaporware land.

I can confirm that it displays this page, served as text/html as well as the same bytes served as application/xhtml+xml.

Henri’s approach is interesting.  If he can do that, it seems to me to be a rather small leap from there to producing C++ using, say, either Ruby or Python libraries for memory management, as well as a thin binding to the language.


Moonlight 1.0 beta 1

Miguel de Icaza: We have released the first beta of Moonlight 1.0.

Installation on Firefox/Ubuntu was a breeze.  User agent:

Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/2008111318 Ubuntu/8.10 (intrepid) Firefox/3.0.4

My prior experiment with Silverlight doesn’t works on Moonlight once I uncomment and convert the script from using MS interfaces to W3C interfaces.

RubyGems 1.3.1 on Ubuntu 8.10

David Heinemeier Hansson: you can install Rails 2.2 through RubyGems. We now require RubyGems 1.3.1, so be sure to update that first


$ gem update --system
ERROR:  While executing gem ... (RuntimeError)
    gem update --system is disabled on Debian. RubyGems can be updated \
    using the official Debian repositories by aptitude or apt-get


Half Full

Roy Fielding: When did you stop beating your wife, Ian?

If HTML5 were redefined to be the set of things over which we can come to rough consensus over the next 18 months or so, it would in all likelihood be (a) delivered on time, (b) be significantly smaller than the current working draft, and (c) as consistent as we collectively know how to make it with the full 2022 vision.

Repeat that process ever three or so years, and I’m confident that we will eventually converge on full consensus.  Possibly even by 2022.



Patrick Mueller: We fundamentally have the wrong tools to do the job. We’re using a spoon where we should be using a backhoe. Look down! You’re using a spoon for bleep's sake! Don’t you realize it? Slap yourself around a little and clear the fog from your eyes. Expect better.

I’ve seen applications that have been built using a backhoe.


Shelley Powers: One unfortunate consequence of switching DOCTYPEs is that when I do use embedded SVG, the page won’t validate. However, this won’t impact on the user agents and their ability to process the SVG correctly, so I’ll just have to live with the invalidation errors. That’s the joy of DOCTYPEs.

We either need a DOCTYPE that supports both RDFa and SVG and that a validator recognizes, or a validator that doesn’t rely on DOCTYPE that supports RDFa.

oliver, Henri: suggestions?

Native JSON parser

Mark Pilgrim: HTML 5 will not ... expose a native JSON parser for web content

HTML 5 may not, but the plan is that ECMAScript will (section 15.12).  It is already supported in IE8 beta 2.  Firefox has landed support, and is tracking it as a part of an overall plan to support ES3.1.

gem install ibm_db

Antonio Cangiano: The IBM API development team has released version 1.0 of the ibm_db gem, which includes both the Ruby driver, and the Rails adapter, for IBM’s databases.

This was just over three years in the making.


Content Drives Demand

Jeff Schiller: These days, Internet Explorer is the last browser I look at… as long as all my textual content is actually visible, then that’s just fine by me.

I think I’ll take a bit of Ian’s advice, and drop my use of the X-UA-Compatible header.


Go Long

Lauren Wood: The bit I have found most disconcerting in the whole process, which has been going on for months now, is the demonisation of each side’s supporters, the assumption they’re not intelligent/patriotic/… enough. The level of vitriol hurled around is astounding, not only at the candidates themselves, but at their supporters

Now is a time for a bit of optimism; and a time for winning, or losing, gracefully.


Benefits of Uniformity

Jon Udell: These are, of course, best practices for an ecosystem sustained by web standards like URI, HTTP, and XML. But it was wonderful to see those best practices clearly demonstrated in a PDC keynote.

In many ways it feels like we are now about at the point in the evolution of the web where we were two decades ago with respect to GUIs.  For that reason, it pleases me greatly to hear that Don Box was on stage demonstrating the value of Hi-Rest.  And it pleases me that Atom/AtomPub played a role in this.


Ubuntu on a Stick

My plans are to do a fresh install of Intrepid Ibex on a number of computers, and since I had a spare machine, I thought I would recover Windows to a known clean slate, insert a second hard drive, and use that install to clone existing machines which would then be wiped and restored.

A few bumps along the way, none of which affect my overall plan.


OpenId Minus Id Equals Wide Open

Martin Atkins: Yahoo!'s OP and now it seems Microsoft’s OP both ignore the value of openid.identity provided to them, and just return an assertion for whatever user’s logged in.

I may ultimately need to black-list such ids.  If everybody uses the same URI, I can’t tell them apart.



Today my son is off to 6.5 weeks of Basic Military Training on his way to becoming a Airborne Mission Systems Apprentice.

Web Design

Tim Bray: real deep design skill is rare, but there are a few principles of design and color that, if you follow them, will keep you mostly out of trouble and produce something that may not seduce the viewer’s eye but on the other hand won’t revolt it

Once Firefox 3.1 comes out with SVG mask/clip-path/filter effects in HTML, I plan to experiment with texture.  It seems to me that being able to link to a page that contains one’s effects would be a handy thing to have.  Define your effects and even on one page, reference those effects in your css, and link to both pages and your markup can be clean.

Meanwhile, I’ve tweaked my current textureless design for Halloween.


Wincent Colaiuta: The standard update procedure yielded an error and didn’t actually install the new version

Notable in this release:

Now uses ~/.gem/cache if the cache dir in GEM_HOME is not writable.



Anne van Kesteren: What also was funny was that the Web was not about the browser except that lots of people here at TPAC wanted browsers to do things differently.

I’m not there, but I can’t believe that anybody there would ever say or even want to imply that the web does not include browsers.


Post-Update Restart

Aristotle Pagaltzis: Since I started using git, I noticed that I use version control for many more things than I would in the days of using Subversion. It seemed to be a lot easier to put everything under version control, but for a while, it was merely a feeling whose reasons I found hard to fathom, then hard to articulate. After recently reviewing the ceremony required by Subversion to establish version control for something, the reason stood out to me clearly: Subversion makes the mental overhead of creating a repository very much greater than any DVCS.

Me too, and I think it is more than that.  Whenever I find myself updating a script I wrote months or even years ago, these days my first step is to do a git init.


Progressive Disclosure

Roy Fielding: I am getting frustrated by the number of people calling any HTTP-based interface a REST API.

I am amused by the people who are valiantly trying to decipher Roy.

While I don’t really have much to add, here is what I have...


I Voted

Stopped by the local mall.  Stood in line for five minutes tops.  Gave my name and address, was handed a form by a person who witnessed me signing it, then she signed it herself, and I then took the signed form to a second stop where I swapped the form for my ballot.  I then took the ballot to a counter with partitions where I filled in my choices.  Finally I took the completed ballot to where it was scanned and counted.  I was handed a sticker and thanked.


Eee Owner

Seeing a sub-$300 Linux-based ASUS EEE PC 900A on the shelves at a retail store… I couldn’t resist making an impulse purchase.

Even with the “Easy Mode” UI in place, all it takes is a Ctrl+Alt+T and I have a bash shell, ready to ssh into my other machines. 

The keyboard is small but functional.  I can touch type, albeit with higher than normal error rates at this point.  The trackpad is a bit sensitive.


Popping Pie Partial

Looking into Asset Rebalancing, I thought a visual aide would be helpful.  So I developed a simple Rails partial for doing a pie chart and a jQuery script which causes the corresponding slice to “pop out” when you hover over a row in an adjoining table.


Firefox, Cache, and Comments

It looks like Firefox will soon invalidate cache on non-GET requests, and I will be able to retire my workaround.  Kudos to Mark Nottingham.

Rails’ AtomFeedHelper just got better

Rails has an AtomFeedHelper that I just helped improve.  If you look at a feed, it contains things like authors, ids, links, dates, and text.  Rails already knows about ids, links, and dates, so it can provide reasonable defaults for these that you can override if you need to, but otherwise generally don’t have to worry about.


Value Trends in Renton vs Raleigh

Dare Obasanjo: According to Zillow, our home is one of those that is currently “underwater” because it’s estimated value has dropped $25,000 since we bought it according to their algorithms.

The shape of the value curve is widely different here in Raleigh.


jQuery and Closures

I’ve taken a first look at jQuery, and while I’m generally averse to frameworks, this truly is a library, one that you can use as little or as much as you like, and doesn’t try to do too much.

The net effect of jQuery is that you can “write less and do more”, as promised.  But something that more fundamentally changes the way one writes scripts seems to have gone under-reported, at least to my quick scan of the web.



Jim Kellerman: We are happy to announce that we’ve been cleared to contribute patches again.  Looking forward to getting back to writing code.


Roy Fielding: All of those points are rather small compared to my overall complaint that it isn’t appropriate to define a “REST” binding to a specific data model’s limitations. The whole point of REST is to avoid coupling between the client applications and whatever implementation might be behind the abstract interface provided by the server.

What matters most to me is not how they derive or express this specification, but on whether the operational behavior is such that a pure HTTP client can fully participate up to the limits of the HTTP specification, and AtomPub clients can participate to the limits of the AtomPub specification.  Based on my discussion with Al last night, I’m cautiously optimistic that this will be the case.


Planet Hopping

Jacques Distler: I got quite annoyed that the existing software (Venus) was unable to handle my own Atom feed. Apparently, the Universal Feedparser is weak, and easily confused by posts like this one.

Inside the feedparser is the following comment, originally by Mark Pilgrim:

# This will horribly munge inline content with non-empty qnames,
# but nobody actually does that, so I'm not fixing it.

The bad news is that continued further progress is difficult.  The internal model for the feed parser for content is a serialized string.  Such a string is repeatedly pulled apart using a SGML parser and put back together.  It was the best technology at the time.  Workable, but not ideal for HTML.  Problematic for XHTML.

That’s what inspired me to produce Mars.


RubyConf 2008

My proposal has been accepted for RubyConf 2008.  Because of the presence of Ruby implementers, this is going to be a bit challenging as it will likely turn into two talks at once.  One sharing experiences with fellow developers concerning things they may need to watch out for, and another with language designers about the impact of their changes.  It also is likely to be true, as it was at OSCON, that there will be members of the audience who know way more about this subject than I do.

I had originally requested a slot on Saturday.  My current slot requires me to shave a day off of ApacheCon.  I’ve again asked that the slot be changed, but even if it doesn’t move, I can manage this.  At least we are only talking about a short hop from New Orleans to Orlando.

Small Updates

Alf Eaton: Aside: if you’re reading a Planet that contains HubLog, those posts will all jump to the top - sorry! (I wish Planets dealt better with small updates so I didn’t have to worry about it).

I don’t know what publishing software you use, but I see you provide an Atom feed, and Planet 2.0 and Venus both implement atom:updated as specified in RFC 4287.



Now that I have my weblog looking reasonably consistent between Gecko and WebKit based browsers, I’ve taken another look at Opera.  Opera doesn’t have support for border-radius, but does have support for background images in SVG, which can be used to provide the same effect.  My Nav Bar on my test site now employs this technique, and it requires two separate images: 039 on CCD and CCD on FFF.

Frankly, my first reaction to this was mixed.  The pluses for SVG in CSS is that it doesn’t require either adjusting your markup or JavaScript to achieve these effects, a desirable characteristic that generally the other techniques don’t share.


Raleigh Convention Center

Grand Opening is occurring this weekend.  Took a tour yesterday, looks modern, clean, and should attract more businesses into downtown.

The facilities looks to be about a quarter the size of the combined Moscone Center (i.e., North, South, and West combined).  I’d wager that the weak link in attracting major (international or even national) conferences is the airport, as Raleigh is neither a major destination nor a national hub.

One unique feature is the shimmer wall which is fun to look both at night and day.

Chrome Polishing

Google Chrome gave view-source some much appreciated attention.  I often want to take a look at the CSS or JavaScript or some related link, and control-U takes me to the source of the page in a separate tab, with all of the lengthy lines line wrapped and line numbered.  Best of all, all of the links are active.  I simply find what I’m looking for, and click on it, and I see that page in another tab.

This caused me to track down and fix a few WebKit compatibility issues, both with my weblog, and with my planet.


Continuing Saga of text/plain

Is this feed valid?  At the moment, the feedvalidator only issues a warning on the use of a text/plain mime type.  At the time the feedvalidator was originally written, this was only a venial sin, primarily because browsers had no material feed support at the time, and because both desktop and web server based aggregators largely ignored the content type.

Times have changed a bit.


X-Content-Type-Options: nosniff

Eric Lawrence: Sending the new X-Content-Type-Options response header with the value nosniff will prevent Internet Explorer from MIME-sniffing a response away from the declared content-type.

I can’t can now reproduce this, either with the feeds I care about or and with the testcase provided.


Translation is Hard; Let’s Go Shopping!

I should have known better, but when I started to take a deep dive into Localizing Rails for the purpose of adding coverage to this in AWDwR3, I thought I could handle translating the dozen and a half phrases that appeared on the website.

That turned out to be much harder than I would have thought.


What’s SUP?

Paul Buchheit: You can see SUP <link> elements in FriendFeed’s Atom feeds (e.g.,, and you can see FriendFeed’s SUP feed at

Excellent!  I took a look with the thought of updating the feedvalidator to support this, but it turns out that there was nothing to be done.  As Col. John “Hannibal” Smith would say, “I love it when a plan comes together”.


“Improved” Namespace Support

Internet Explorer 8 Beta: The Features: Internet Explorer 8 simplifies the use of standards-compliant XML-based webpages that support namespace features like scalable vector graphics, XML user interface language, mathematical markup language, and others.

Let’s give it a spin.


ES Decimal Updates


A summary of changes to ECMAScript decimal support, based on input from the committee in the last week or so:

Output and a summary of the run of the small but growing unit test suite.

W3C HTML 5 Conformance Checker

Karl Dubost: We are happy to announce that W3C has integrated a version of HTML 5 conformance checker into a beta instance of the W3C Markup validator. That will help us to detect bugs, improve the user interface, and benefit from the large W3C communities.

Gotta love the “random” page that Olivier Théreaux chose to mention in his announcement.

Standardizing RESTful JSON

Kris Zyp: The notes in this post are based on the behavior of server implementations of JSON REST including Persevere, CouchDB, GrassyKnowl, Amazon S3, and RoR’s ActiveResource, and on client implementations including Dojo, Jester, and Persevere JavaScript client.

It looks like Joe Gregorio may have started something.  Again.

AWDwR3 Beta 5

Agile Web Development with Rails, Third Edition beta 5 is now available.  The current list is much more manageable.  The people who have participated in the beta have been tremendous, and the forums have been quite active.  Meanwhile, I’ve converted all of my personal Rails apps to Phusion Passenger.


Wii Fit Update

I’ve lost ten pounds since I got a WII fit, but that number doesn’t tell the whole story.  Losing another 10 pounds (gradually: over the course of 3-6 months) would put me into the fitness category in terms of body fat percentages, and would seem to be a worthy goal.

I’m not convinced that the exercises contributed significantly to my weight loss.  It is possible that early morning stretching and aerobic exercise set my metabolism for the day.  But more importantly, at least for me, is the daily tracking and graphing.  I often see up to two pound fluctuations day to day, even when the measurements are taken at the same time and same conditions.  But the ten day moving average (not graphed by the WII) trends are clear and consistent.  This feedback keeps me focused.  And has provided feedback on the relative “costs” of various activities.


Tilting at Windmills

Damien Katz: "The web is built on REST. Therefore REST is good" Bullshit

I’m not sure what the purpose is behind creating a strawman based on a caricature of what some people view as best practices and then proceeding to shoot it down.


Tasty Rails Caching

Tim Bray: This matters if your Web app is maxed on some combination of CPU and database, and a noticeable proportion of requests don’t really need a page-rebuild, and your existing caching and last-modified setup isn’t getting the job done.

While I agree with that, I claim that the potential benefits are much more than that.  Much more.  Furthermore, the upcoming Simpler Conditional Get Support is not the only arrow in Rail’s quiver, and not always the best one.


Live HTML5 Parser

Henri Sivonen: So without further ado, here’s Live DOM Viewer with an HTML5 parser running as JavaScript in your browser.

Wow!  I’m impressed by the speed.  I can definitely see myself tweaking, if not outright developing, the SVG images I create using this.  I can also see this being used in a comments live preview function.


AWDwR3 Beta 4

Agile Web Development with Rails, Third Edition beta 4 is now available.  All chapters, with the exception of Web Services which is likely to be replaced by a chapter on ActiveResource, have been updated to work with Rails 2.1.

I’m now looking for suggestions on what new features are in edge Rails today that deserve specific focus and expanded coverage in the next beta.


Minor Edits

Ciaran Gultnieks: what follows is a fairly simple hack to allow you to specify that a particular edit is minor, and thus get Wordpress to leave the last-updated date alone

I’ve extended Ciaran’s change slightly... by adding an if check preventing the checkbox from being shown if the entry has yet to be published.


Minimalist Markup, now text/html Compatible

Bug 311366 is resolved in Firefox 3.0.1.  It may, in fact, have been fixed earlier; but my initial testing was flawed.  Thanks go out to Anne van Kesteren and James Graham for spotting the problem that was preventing me from seeing that it was fixed.

Demonstration of an minimalist HTML5 page served as text/html.

Open Standards

Simon Phipps: Field-of-use restrictions have no place in open source.


Updated Decimal Implementation


I’ve added decimal literals and support for both unary and binary operators on top of SpiderMonkey.  More details here.  Code here.  Mozilla tracking here.


New ASF Platinum Sponsor

Sam Ramji: Microsoft is becoming a sponsor of the Apache Software Foundation (ASF).  This sponsorship will enable the ASF to pay administrators and other support staff so that ASF developers can focus on writing great software.


Open Web Foundation

Eran Hammer-Lahav: This morning at OSCON, David Recordon announced the creation of the Open Web Foundation. The Open Web Foundation is an attempt to create a home for community-driven specifications. Following the open source model similar to the Apache Software Foundation, the foundation is aimed at building a lightweight framework to help communities deal with the legal requirements necessary to create successful and widely adopted specification.

If this group evolves to the point where it finds the right balance of enabling and getting out of the way, this foundation could be a very handy thing to have around.


Ruby 1.9: What to Expect

slides for OSCON 2008 presentation

A number of the members of the audience were more informed on the subject than I was (excellent!).


Life after Bug Tracking Systems

Avery Pennarun: The git developers don’t track bugs. If you find a bug, you can write about it on the mailing list. You might get flamed. And then probably someone will ask you to fix it yourself and send in a patch.  This is unlike almost all other open source projects.

Sometimes ideas take time to percolate.  When I first saw Avery’s post, it didn’t quite sink in.


Stalled Tickets

Joseph Scott: we can definitely use more people looking at the XML-RPC and AtomPub code.

My experience matches Jeff’s, namely that post 2.3; contributions of time in terms of showing up on the IRC channel; producing and commenting on both bug and feature requests; and in terms producing actual patches, rarely produces the desired result.


Tracking Towards Decimal Support in Firefox

Bug 445178 (decimal) – Implement Decimal Support

Thanks John!

Update: Downloadable standalone SpiderMonkey executables for Darwin, Linux, and Windows.

Hello Decimal World

js> print(new Decimal("8.5"));

OK, so it is not much yet.  But it is a constructor, a toString method, and a finalizer.  And it makes use of decQuadFromString and decQuadToString from the decNumber library.  And it is in the context of a real codebase, namely SpiderMonkey, which is what Firefox uses.  And it is in a public repository that you can clone, pull, and download from; and perhaps even try building yourself or patching.

Decimal in ECMAScript


Monetary units around the world are often expressed in terms of decimal numbers.  You would think that by this time computers would be adept at handling such, but as this page indicates, sadly such is not the case for JavaScript today.  This befuddles businessmen and causes application developers to focus attention on unnecessary details unrelated to solving the problem at hand.

One of my tasks is to write the spec text for future revisions of ECMAScript to address this by introducing a notion of a Decimal class.  As currently envisioned, this will be accomplished in three layers.


Above All

My son voluntarily enlisted in the Air Force yesterday.  He heads off for Basic Training on October 28th.

I’m not yet sure of the details, but apparently his assignment will involve the maintenance and service of on-board radar equipment.


Victim of Success

Joe Gregorio: The rapid ascendency of distributed version control

Anybody know where I can find a recent tarball for Mercurial?  The download site appears to be down.

More Minimalistic Markup

Continuing my minimalist markup quest, I’ve converted posts to be mostly valid HTML5.  The overall structure is correct, but individual comments may only be well-formed but may contain deviations from validity.  Most posts will have no span, div, or table elements.  Over time, the hope is to make it so that all new comments are valid.


Atom Store Interop

Bryon Jacob and Chris Berry: AtomServer is an off-the-shelf implementation of an Atom Store. It is implemented as a Java web application, and should deploy into any J2EE Servlet Container. Under the covers, AtomServer uses the Apache Project’s open-source implementation of the Atom Protocol, called Abdera, to process the RESTful verbs and XML vocabulary of Atom.

I see that it has test cases.  Good.

If AtomServer is a framework extracted from Homeaway, I wonder if a generic Atom Store test suite could be extracted from the AtomStore test cases.

The thoughts are that perhaps it might be handy to have a Python one that can be deployed on Google App Engine, or a PHP version that could be run pretty much anywhere...


Eric Lawrence: we’ve provided web-applications with the ability to opt-out of MIME-sniffing. Sending the new authoritative=true attribute on the Content-Type HTTP response header prevents Internet Explorer from MIME-sniffing a response away from the declared content-type

While I’m not a fan of content-sniffing, one of my few pet peeves with HTML5 is that it endeavors to institutionalize the practice with no provisions for content providers to opt out.  As the lesser of the available evils, I hope Microsoft’s proposal is quickly adopted by other browsers.

June 31st

Bill de hÓra: You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

Update: seems to be better now. Will leave with this somewhat odd page.

Unable to Complete the Call as Dialed

Tim Bray: I’m not sure whether this free-TLD idea is a good or bad thing in the big picture

Consider the fun that will occur when existing software is presented with email addresses that contain non-latin characters.


Minimalist Markup

While Ryan, James, and Mark have been pursing a minimalist design from a presentation perspective, I’ve been quietly pursuing a minimalist design from a markup perspective.

My front page (under development) will be valid HTML5 and yet have absolutely no div or span elements, no inline style or class attributes, and no table or img elements used purely for layout purposes.


OpenID Check on Rails

Looking at openidauthentication, it seem to do everything I want.  Since I am looking to check an identity during the processing of a request, I need to somehow have the id of the unprocessed record tag alone with the identity request.


Intertwingly on Git

I’ve installed git and gitweb, and put up my initial code explorations for a Ruby on Rails based rewrite of this blog’s software.  Neither the code nor the tests are all that much just yet, mostly just scaffolding and CSS, a small bit of controller logic, and the autogenerated tests and fixtures.  But anybody out there feels compelled to try it out, go for it.


Atom-PubSub module for ejabberd

Eric Cestari: This module will offer an AtomPub interface to ejabberd PubSub data... The AtomPub interface passes the Atom Protocol Exerciser (though some warnings remain).  It means that any AtomPub clients will be able to post to a specific node in your PubSub tree.  It also means that your PubSub tree will also be available as an AtomFeed.  [via kael]

Intertwingly on Rails

Views: index, post, comments, archives

This clearly is just modest beginnings.  A snapshot of existing data.  Read-only views at this point.  No caching.

Technology is Rails 2.0.2 on SQLite3 using Phusion Passenger on Dreamhost.


Advertise One Feed Format

Nelson Minar starts a meme.  Rafe Colburn waters it down.  I’ve watered it down even further.

Whatever you call your feed, Safari will call it RSS.  Don’t sweat the small stuff.

Which format should you pick?  I’d suggest that you pick whichever one that you can consistently produce with the fewest errors and warnings detected by the feedvalidator.  Test with Iñtërnâtiônàlizætiøn and ampersands in titles.  June, particularly in the UK is also a good time to test.

RX for Pain

Tim Bray: There is quite a bit of disgruntlement about XML and Ruby right at this point in time

I’m scheduled to give a talk about this subject and more at OSCON next month.  Short summary: if you are a markup geek (i.e., deal with things like HTML or XML), and expect things to “just work”, now is not a great time to be exploring Ruby 1.9.  The biggest issue is that bug reports and suggestions don’t seem to attract the necessary cycles from the key developers.

Hopefully, venues like OSCON can help draw attention to this important issue.

Sausages and Uncertainty

Scales of Justice. Based on work Copyright 2007 by Ken A L Coar. All rights reserved. The design and this SVG rendition are protected by copyright law, and may not be used or reproduced without the express permission of the author,

Yesterday we had an ASF members meeting.  You can see the board results here.  I was asked about the status of the ASF third party licensing policy.  Luckily I had prepared in advance.


Rails 2.1

Agile Web Development with Rails, Third Edition has been updated to Rails 2.1.  The biggest visible change is the UTC-based migrations.  It is amazing how fast beta readers pick up on details such as these.

Wii Fit

Bought a WII fit two weeks ago when it first went on sale.  It hasn’t replaced going to the gym, but I will say that my wife and I have integrated it into our daily lives.  I recommend it.  Not because of the amazing graphics, but because the “training” is entertaining and psychological engineering is impressive — everything from continuous encouragement in the form of cheerful “good jobs!” to continuous measuring, tracking and reporting on your progress.


Scaling Rails... Down

As I proceed with updating Agile Web Development with Rails to support Rails 2.x, I have become impressed with how Rails has become even more focused on scaling down than it was in Rails 1.x.  Some of the credit goes to Rails itself (changes in scaffolding, migration), but much of the credit goes to making sqlite3 the default.

I am having difficulty expressing the concept, but I have two examples that I can express in code.


Despamming Venus Mememes List

I just committed a change to Venus that lets one configure a list of URIs which are not to be included in the mememe list.  Example usage:


One simply lists URIs separated by white space (I personally prefer to do this one per line) and these URIs will be eliminated from the list.

Men in Suits

Geir Magnusson Jr: Given that fact that the statements contained in [link] are given by a Sun employee identifying himself in his job role, can I assume that Sun is interested in taking this discussion public? I think that is a really healthy approach. I think there is confusion about the basic facts and I think clarification will be useful for the community as a whole.

It is the right discussion to be having.  Let’s just make sure that the right people have every opportunity to participate.


Beta 1.1

B1.1 of Agile Web Development with Rails, 3rd Edition is out.  Unless you have an deep interest in the migration function, there isn’t much new content here — the primary focus on this update is addressing the errata and forum comments received to date.

This effort has turned out to be both harder and more rewarding than I would have ever anticipated.


Open Standards

Paul Fremantle: For me the core difference between Open Standards and Open Source is this: Open Standards enable companies to compete in a structured way, Open Source projects enable people or companies to collaborate in a structured way

I think Paul may be onto something.  It is rapidly becoming the case that this more than this is becoming the exemplar for open standards.  While it is popular to malign the JCP, it is worth noting that many (most?) JSRs have TCKs which actively promote the idea of multiple, independent, interoperable implementations.

Word Of Mouth

danah boyd: I decided to go with a Scion xD because it was the right combination of small, cheap, quirky, practical, and dependable. I feel a little guilty because it’s painfully clear that Scion is targeted directly at people like me and I hate ending up fitting into a stereotype, but, well... it is nice to have an iPod jack built in standard and have a design aesthetic meant for hipster 20-30somethings.

danah deserves a commission.


VMWare Workstation, Hardy Heron, VMWare Tools

Norman Walsh: In case you haven’t found it yet, here’s a pointer to the instructions for building VMWare Tools under Ubuntu 8.04, “Hardy Heron”.

The above instructions (originally for VMWare Fusion) also work for VMWare Workstation.


Just add scaling!

Ola Bini: I still haven’t found anyone who knows how you implement Scaling in a language, so I guess that LRM will never have it... Anyone who care to enlighten me, please send me a detailed email with an implementation of Scaling. I really feel the need to know how this thing works.

Job Posting

Henry Work: TechCrunch seeks two Rails programmers to join the company as interns this summer.

License-Free Spec

Mike Melanson: the previous restriction that anyone who looks at the spec technically isn’t allowed to create an independent SWF decoder (if documentation EULAs are to be believed) was a point of contention among many open source types.

I would agree that the ability to create a license-free, independent open source implementation is an important aspect of an open standard.

Sleep Quirks — Debugged!

David Goodlad: the existing article on the Ubuntu wiki for the T61 says to modify /etc/default/acpi-support, which is only valid for Gutsy. gnome-power-manager in Hardy seems to use the data from the hal-info package instead, now, which is contained in a bunch of xml files in /usr/share/hal/fdi/information/10freedesktop/20-video-quirk-pm*.

This hint lead me to Sleep Quirk Debugger.


modrails: easy (if you are root)

Took a look modrails.  First impressions: easy to set up; not sure what the target market is for this.  There already are plenty of options available to people with root access to their servers.  What I would think would be most useful is something that targeted Apache shared hosts.  I should be able to put something in my /home/rubys/public_html/.htaccess (or /home/rubys/Sites/.htaccess on a Mac) to say that the depot directory is a Rails application, and access it as http://localhost/~rubys/depot/.


Passing on Ubuntu 804

For the last two months, I’ve been running XP with CYGWIN.  Mostly the SSH client, Firefox, Thunderbird, and Pidgin.  I’m increasingly using my server (via SSH) for development where I used to use my laptop.

Clearly, if I’m willing to run XP, I would be willing to try restricted video drivers.  The restricted video drivers, either installed directly or via envyng-gtk do address all of the problems listed above, but introduce one new problem.  Suspend works.  Resume doesn’t.  Unfortunately, for me, that is a complete show-stopper.


Third Edition

Pragmatic Programmers: Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including new support for RESTful applications, new generator options, and so on. And, as importantly, we’ve all learned a lot more about writing Rails applications in the last few years.  So here’s the Third Edition of the Jolt Award winning book that shows you a new approach to web development, updated for Rails 2.


Martin Atkins: it is impossible to use Yadis in this way while having a conforming HTML 5 document. The current ethos for HTML 5 seems to be to remove any mechanism by which it can be extended in any way without going through the HTML working group and changing the core spec.

Just because YADIS didn’t have the foresight to use the officially sanctioned way to embed custom non-visible data is no reason to complain.


Ian Hickson: I have removed SVG support from the HTML parser specification as per your request. (I have left MathML support in the specification.)  Hat tip: Shelley Powers.

SVG and MathML Annexes to HTML5

As Anne previewed, HTML5 has recently added support for data attributes and MathML and SVG vocabularies.  The latter is of more interest to me.  It isn’t full distributed extensibility, nor is it entirely consistent with the direction that IE8 says they are going, but it is substantial progress.


Damaged in Transit

Ciaran Gultnieks: How do you make web browsing faster on a GPRS connection? The answer seems to be by injecting huge blocks of javascript into pages, turning 6KB of well-formed XHTML into 23KB of junk that refuses to render because it’s invalid.

CSS Naked Day

Once again, it is CSS Naked Day.  Due to the way the Universal Feed Parser strips object tags, the SVG icons on entries from this weblog will display in full screen on Planet Intertwingly.  This can more easily be addressed in the Mars codebase.

SEC Feeds

Dominic Jones: In a move that portends dramatic changes in how disclosures are disseminated online, the US Securities and Exchange Commission (SEC) has added news feeds for every issuer and reporting person who files with the commission’s EDGAR database [via Charles Hoffman]

It would be nice if somebody could introduce the SEC to the validator.

Mars on GitHub

David Heinemeier Hansson: Killer apps makes or breaks any platform. With Github, I think the Git hub just scored one. Rails is going to be hosted there for the launch. Capistrano, Prototype, and Scriptaculous already moved there.

Within the past week, I’ve started receiving patches for Mars via GitHub.


Ruby 1.9 at OSCON 2008

I’m scheduled to present on Ruby 1.9 at this year’s OSCON.  My plans are to expand on this and report on both the excitement and ennui.

My tentative conclusion at this point based on observations of efforts to get products like Rails working on Ruby 1.9: the biggest obstacle to Ruby 1.9’s adoption is the sheer number of mostly working but essentially unmaintained gems that virtually everybody in the Ruby community depends on.

RESTful Services with Erlang and Yaws

Steve Vinoski: if you’re writing dynamic RESTful web services, then Yaws is definitely worth exploring. In this article, I’ll relate some of my experiences with using Yaws and Erlang for web services development.

This otherwise excellent article fails my ETag test.

Bad Trip

Opera and WebKit are racing to complete Acid3Jeff Schiller inspects some of the collateral damage.  Meanwhile, IE and Firefox are focused on different things.

Metron Is Impressed

Sam Ramji: Donating code to an established, consensus-driven organization such as the Apache Software Foundation benefits both our customers and the open source community at large

Reminds me of a quote:

Perhaps... in several thousand years... your people, and mine, shall meet to reach an agreement. You are still half savage... but there is hope.

When I joined IBM, it was the undisputed evil empire.  Here’s hoping that Microsoft makes the journey successfully.


Christophe Sauthier: This does not appear to be a bug report and we are closing it. We appreciate the difficulties you are facing, but it would make more sense to raise your question in the support tracker.


Roy Fielding: ROA is supposed to be a kind of design method for RESTful services, apparently, but most folks who use the term are talking about REST without the hypertext constraint. In other words, not RESTful at all. REST without the hypertext constraint is like pipe-and-filter without the pipes: completely useless because it no longer induces any interesting properties. The RESTful Web Services book doesn’t help the situation by renaming the hypertext engine as connectedness. That does nothing but obscure its role as the driving force in RESTful applications.

I won’t take credit for that idea, but I stand behind it.  Perhaps I talk to different people than Roy does, but many of the people I do talk to don’t, um, connect when they hear the phrase hypermedia as the engine of application state.  Yet, when I point out that systems that are set up to merely enable the storage and retrieval of discrete and disconnected resources aren’t crawlable, and therefore effectively are not part of the web, well, lets just say that I find that sentiment resonates better.

Hardy Heron Beta on T61P

Hardy Heron beta was released yesterday.  First impressions


Implausible Date

“Saturn”: The Feed Validator clearly isn’t updated with the new Daylight Saving dates, since it comes up with “implausible date” for every feed I test...

Engadget seems to have “sprung forward” but still be on EST.


Phil Wilson: wxVenus is, at the moment, a desktop tool for browsing the cache that a local Venus installation creates when it runs. It is written in wxPython and is dependent on lxml.

Sounds wickedly cool.  I’m getting a 403 though.

Martian Mindsets

Joel Spolsky: 98% of the world will install IE8 and say, “It has bugs and I can’t see my sites.” They don’t give a flicking flick about your stupid religious enthusiasm for making web browsers which conform to some mythical, platonic “standard” that is not actually implemented anywhere. They don’t want to hear your stories about messy hacks. They want web browsers that work with actual web sites

Boy do I miss Mark pleasesirmayihaveanother Pilgrim.  For now, this will have to do:


Strange Loops

Mark Pilgrim: On a somewhat related note, I’ve cobbled together a firehose which tracks comments (like these) that I make on other selected sites.  Many thanks to Sam for teaching me about Venus filters, which make it all possible.

Ah, yes.  The Tools Will Save Us, circa 2004.  I remember it well.


OS X First Impressions

I found that most tools I care about are already installed: vim, svn, ssh, apache, ruby, gem, irb, python.  With the exception of Python, none of those are automatically installed on Ubuntu.  On the Mac, all I needed to do is go into System Preferences -> Sharing and enable Web Sharing and Remote Login.  A few things definitely have a cygwin-ish uncanny valley feeling to them.  vi /Users/rubys/Sites/index.html, for example.  Yech.


x-ua-compatible doesn’t work

Bring up this site in IE7.  The entries are neatly and consistently indented under the titles.  And there is a Nav Bar on the right.

Bring up this same site in Internet Explorer 8 Beta 1.  The first entry is indented under the title.  The remainder are bizarrely indented.  And the Nav Bar is no where to be seen.

So much for X-UA-Compatible, in either the HTTP header form or the meta tag form, as this site currently sports both.



I bought a mac-mini today.  That’s not what I originally set out to do, but it turned out to be the best match to my requirements.  I started out looking for a replacement for an aging 17 inch CRT.


Design By Attrition

Dave Orchard: I still have hopes that the HTML5 working group would listen to Sam Ruby and the TAG and add namespaces in HTML5.  Maybe MSFT’s features will prompt the group to start working on namespaces.

Indirectly, and when there are fewer good options to choose from, it eventually will happen.  But not because the HTML5 working group picks up this effort.


Improved Namespace Support

Microsoft: Internet Explorer 8 offers Web developers the opportunity to write standards-compliant HTML-based Web pages that support features (such as SVG, XUL, and MathML) in namespaces, provided that the client has installed appropriate handlers for those namespaces via binary behaviors... See Improved Namespace Support white paper for more information.



Rafe Colburn: I didn’t know until just now that you don’t need to include the closing ?> in PHP files that consist entirely of code. The Drupal coding standards explain why you probably want to leave it out.


Intel chooses 'Atom'

Steven Musil: Intel announced Sunday that is has chosen the name “Atom” for a new family of ultra-small chips.  The “Atom” moniker will be applied to a family of chips with two members that are expected to be released later this quarter


PDF Burst and Staple

I have occasion to deal with PDF scans that contain multiple documents.  With pdftk and a few nautilus scripts, splitting such a document is as easy as burst, create folder, drag and drop, and staple.


AppClientTest Update

Joe Gregorio: I’ve just checked in an updated version of the AppClientTest, a program for testing your AtomPub service. It has been updated to use the atompubbase module and also sports HTML output as an option. To make it easier to develop I’ve transcluded via svn:externals all the libraries you will need as long as you are running Python 2.5.

Pointing appclienttest at WordPress HEAD: html, error

Summary: 6 errors and 36 warnings.  Yikes!


Migratory Ape

Without much (or as far as I can tell, any) fanfare, Tim’s APE has moved from to rubyforge.  And moved from cvs to svn.  But rest assured, other than the location and the repository type (and code layout, dependencies, and functionality) nothing much has changed.  Really.  Just don’t try to look at Dave Johnson or my notes as they will just confuse you.


Auto-inlining SVG

Jeff Schiller: Wouldn’t it also be possible for Sam to do this object->inline conversion on the planet side?  Requiring everyone producing feeds to do this seems like more work than to do it in one central location.

Such code would need to handle gzipped/deflated content, and should play nicely with caches.  For a number of reasons, that means that such functionality would be easier to add to Mars than to Venus.  In fact, it is easy enough to do so that I went ahead and did it.  Those that care to, can take a look at the output.


Fallback Safely

Erik Dahlström: Now the only thing that makes me twitch is how strips out all the svg content from my feed while preserving the ‘object’ element fallback content. It looks absolutely bizarre.

As a policy decision, the Universal Feed Parser strips out all scripts and object tags.


New PGP Key

I’ve generated a PGP key.  I’ve generated throwaway ones in the past (several intentionally so, and one that I simply misplaced).  Lately, however, I seen an uptick in requests for a PGP key, so I generated one using gpg --gen-key and uploaded it the MIT keyserver.  Hopefully, this one will fare better than previous ones.

Here’s the fingerprint:

1024D/20546256 B4B1 146C B4C2 76D8 9AC1  0651 1D28 809A 2054 6256

XHTMLating WordPress

Shelley Powers: Input from readers enters Wordpress in several different places in the code, most of which do not have hooks allowing us to override the code to provide our own. The only way Wordpress will be able to effectively do XHTML is through a commitment to make this a change in the underlying base code.  Since the Wordpress developers have not shown any interest in supporting XHTML, and since I haven’t seen a lot of interest in XHTML support in Wordpress from my own explorations and published posts, this is just not a challenge I’ve been eager to take on.

If you submit a ticket with a patch which adds a hook that you need, I can help champion it.  Furthermore, if you describe some observable behavior, I’ll automate a test case that I will continuously run to ensure that the feature continues to behave as desired.  I’ve effectively been developing what amounts to veto power over changes which break things.

Hardy Heron Alpha 5 on T61P

Hard drive arrived on Thursday, Hardy Heron Alpha 5 was released on Friday.  I downloaded it this morning, and installed it.  Twice.


Patches Are... Wait For It... Just Data

James Snell: This is clearly better, IMHO, than the line-based diff, but still requires that the client and server both be able to do identical Atom-to-JSON serializations.

Why?  My daughter is studying Algebra II right now, and evaluating f(g(x)), and if she can master such concepts, so can we


APP Level Patch

Joe Gregorio: At Google we are considering using PATCH. One of the big open questions surrounding that decision is XML patch formats. What have you found for patch formats and associated libraries?

I believe that looking for an XML patch format is looking for a solution at the wrong meta level.


Jeff's SVG theme

Jeff Schiller: I use SVG in a bunch of different places:  inline as decoration around the page (the blue gradient and the title) and referenced (via <object>) for the icon menu (at the top) and W3C validation badges (at the bottom).

Very cool.  A web site that is amenable to view-source down to the validation buttons themselves.

I echo the comment commending Opera’s leadership in this area.

Transfer Patches

Roy Fielding: My answer was to use PATCH, of course, but the standards issue is still that there are no registered diff formats.  So, I said to myself, I know how to fix that ... [via Rob Sayre]

A much more interesting question to me is whether PATCH will operate at the content level or the transfer level.  Or, to put it anther way, will patch operate at the infoset level, or will it be able to be directly applied to HTML as she is written?

Place Of Interest

Day 3 on Windows XP.  I note the Mozilla does not display the (a.k.a. Place Of Interest) sign on Planet Intertwingly.  I had put that in as a placeholder for all feeds that do not supply an icon.  I try Opera.  It doesn’t show up there either.  I try Safari.  Also not there.


Embrace, Extend then Innovate

Joe Gregorio: So there you have it, outside of six open questions, a nice RESTful way to do partial updates.

James Snell: Blech…....

I’m with James. Sorry, Joe.


Ruby 1.9, now with Bacon!

As of revision 15473, Ruby 1.9 now passes the bacon test suite, closing ticket #17920.

Making Myself at Home (temporarily) on XP

My three year old laptop has been doing a yeoman’s job... though the USB ports only work intermittently, the little nub below the screen that allows the laptop to detect when the lid is closed has worn off, and a chunk is now missing to the right of the right arrow key.

So when I heard that I could get issued a T61p, I figured it was time.

Initial observations:


CouchDB @ ASF

I’m pleased to have been the one to announce that CouchDB has been accepted for incubation by the Apache Software Foundation.

Meanwhile, James Snell isn’t waiting - he has already started integrating CouchDB with Abdera.


Mashups, Smashups

Tim O’Reilly: If you don’t think of what you produce as the “final product” but rather as a step in an information pipeline, what do you do differently to add value for downstream consumers?  In Reuters' case, Devin thinks you add hooks to make your information more programmable.

There is a train wreck coming.  And it has nothing to do with whether the content is “more” programmable or not.  Long, long, long before it gets to that point, one needs to be able to reliably (and in a non-reputable manner) determine whether or not the information is consumable at all.


BBC Aggregator

Asemantics: A new generation of feed aggregators for Web 2.0 applications is being jointly developed by Asemantics and the British Broadcasting Corporation. As a first step in the process, Asemantics has completed the aggregator engine for the Memory Share service of the BBC.


No Bacon in Ruby 1.9, Chunky or Otherwise

While it has been reported that Bacon worked on 1.9.  As near as I can tell, that was based on attempts to use some of the functions, and not to actually run the Bacon (a.k.a. test/spec) test suite.  The tests exposed a problem with Ruby 1.9’s implementation of STDOUT.reopen, which Matz indicated that it is possibly a bug.  This lead to a patch, approval and a commit with a test case.  The tests now fail a different way.

This generated a follow-up question.

tmpl2xslt spec

I wrote a spec for tmpl2xslt and committed it to mars.  Unsurprisingly, I found and fixed a few bugs in the process.


SVG Tidy

Normally, I hand craft my images using vim.  I also try to limit myself to 1K bytes.  I occasionally find it convenient to start from an existing image.  Sometimes that works out.  Sometimes it does not.

This image nearly did not work out.  In retrospect, I would have spent less time writing it from scratch, but some good did come of the effort.


CouchDB @ ASF


Update: Damien’s catchup

Ruby CI Efforts

Charles Oliver Nutter: It seems that so far having head be broken for many days is not generally a concern for the “most core” of core developers. But it makes it nearly impossible for others to get up and running if builds fail and tests don’t run green.

My experience matches Charles'.  And quite frankly it surprised me.


Accumulators come to MT

Byrne Reese: Aggregating all of these activities I participate in across the Internet should be as seamless and as easy as it was for me to create them in the first place. And until now, nothing has been made available that collects and publishes this data for your personal blog.  But this plugin is not just about activity aggregation, it about control. Today, we released for Movable Type Open Source a plugin called Action Streams that allows users to input the various services they use

I agree that such an approach provides a greater level of control.  It is in action.  Today.  Without requiring Data Providers to change anything, unless they don’t currently provide a feed.  Once that feed is available, Accumulators can take it from there, presenting, archiving, and mashing up the data at will.


Acid3 to contain SVG

Erik Dahlström: A number of SVG tests have been added to the work-in-progress ACID3 test as a result of the competition (see tests 68 - 75).  So lets hope that ACID3 means that non-standard behavior will start to corrode away, resulting in a solid interoperable core of the web that, among other things, includes SVG.

Optional Elements Required

Anne van Kesteren: The problem here is that OpenID does not use a proper HTML parser (not even one that follows the HTML 4 specification). <head> et cetera are actually required

The spec isn’t as clear as it ought to be.


Asymptotically Converging on Standards

Shelley Powers: Microsoft is asking us to declare our intentions, it’s only fair we ask the same of it. If Microsoft won’t meet us half-way–if the company releases IE8 without support for the HTML5 DOCTYPE or XHTML, and without at least some guarantee as to when we’ll see SVG in IE–then we’ll have our answer. It may not be the answer we want, but it will be the answer we need.

If Microsoft were to declare that the following were to be treated as equivalent, then a lot of the concerns expressed by the web community would go away


SVG Shiv

Chris Wilson: I want to jam standards support into (this and future versions of) Internet Explorer. If a shiv is the only pragmatic tool I can use to do so, shouldn’t I be using it?

Sjoerd’s revelation can be applied to build on the prior work in this area.  The result is this page which is valid HTML5, displays natively on standards compliant browsers such as Firefox, Safari, and Opera; and will display the same image on existing IE browsers that happen to have the Silverlight plugin installed.


Smooth Migration to XML::SAXParser's new Callbacks

libxml's XML::SAXParser has been changed in the Development Release to use callbacks.  If you want to code to the new interface yet continue to work with the released interface, the following can be added to your code:


Resurrecting Planet Mozilla

Reed Loden: For some reason, planet.m.o is not updating...

Apparently htmltmpl and NFS don’t get along.  Who knew?  Not wanting to get into the middle of that catfight, I wrote a script based on HTML5lib and REXML which converts index.html.tmpl to index.html.xslt.


Another SVG Enabled Weblog

Ken Coar: If this is working correctly, there should be an SVG image on the right, it should appear in the feeds, and it should resize as you change the font size.

Down that path lies madness...

Sunsetting Quirks Mode

“Steve”: Are there any doctypes that do not require this new meta tag to render with the IE8 rendering engine?

Chris Wilson: @Steve - sure.  Any unknown (i.e. not widely deployed) DOCTYPE.  HTML5, for example.

And, with that, there is no longer any need for me to have to opt-in in order to opt-out of IE8’s new super deluxe bistro quirks mode.


Managing Expectations

Robert O’Callahan: It seems clear that for now we have no market need for drastic multi-engine compatibility, and therefore there’s no need to even consider the pain it would cause.

Apparently, the clear difference between Mozilla and IE is in the expectations that they set.  Jeremy Keith analyzes what it could mean for IE users and IE itself.


Best Standards Support

Chris Wilson: If you (the page developer) really want the best standards support IE8 can give, you can get it by inserting a simple <meta> element. Aaron gives more details on this in his article.

I’ve implemented the following in my .htaccess file:


Vocabulary Test

A small little application that I originally wrote to help my kids now has found new life — teaching (what I gather to be Hungarian) students English.  Check out the right hand column on this page.

Doctrine of Minimum Necessary Disclosure

Ryan Tomayko Schemas can be useful when placed far enough up the stack. (i.e., don’t bake schema and language binding in at the protocol level.) Just because WSDL sucks doesn’t mean describing representations using some formal schema is a bad idea

The right question is not “schemas: yes or no?”.


Star This

A few weeks back I wrote a simple personal application for sharing bookmarks with my wife.  Think of it as a decentralized / twitter combination that uses XMPP instead of SMS.  We’ve found it quite useful.  Perhaps others who are predisposed to host their own OpenID and personal IM server may too.


Atom as Registry / Repository

First, AtomPub replaces UDDI. Then it replaces JCR.  Then UDDI again.

Paradise Regained

Jacques Distler: In theory, the result of serializing a REXML tree is well-formed XML.

It is quite possible to produce a DOM that can’t be serialized into well-formed XML, but I do agree that if one parses a document without error, one should be confident that the document produced is well-formed.


OSCON 2008

Allison Randall: The call for participation for the 2008 O’Reilly Open Source Convention is out. This year marks the 10th anniversary of OSCON, of the Open Source Initiative, of Mozilla, and of the term “Open Source”, so a huge celebration is in order. OSCON will be in Portland, Oregon again this year, one of the key Open Source hubs in North America. It will be co-located with the 2nd annual Ubuntu Live conference, which is also currently running a call for participation.

There are 16 tracks listed in this year’s CFP.  Last year, there were 13.  I’m encouraging Damien to submit a proposal on CouchDB.  I’m considering a talk or a tutorial on migrating to Ruby 1.9/2.0.  There’s plenty of areas in the ASF that merit proposals, particularly in the incubator (example: Shindig, which just started last month).

Exclusive Content

S. Somasegar: We have signed an agreement to partner with NBC Universal to build a Silverlight 2.0 based web broadcast of the 2008 Summer Olympic games.  This agreement also sets MSN as the official home of the 2008 Summer Olympics.  As a part of this, we will provide users with exclusive access to over 3000 hours of live and on-demand video content via Silverlight streaming.  This means that viewers can access every minute of every event.  Additionally, the amount of meta-data attached to each of the streams will be extensive and include links to player bios, medal counts, shortcuts to particular events (i.e. athlete x’s third long-jump attempt), maps of the Olympic facilities, pop-up overlays with real-time event alerts, headlines, video search capabilities, etc. 

Rake Contrib for 1.9

While Ruby 1.9 now includes rake, it does not include popular rake/contrib addons.  The solution to that turns out to be quite simple.  Package up just those files into a separate gem.


Builder on 1.9

Like with REXML, I ported XML Builder to run on Ruby version 1.9.  As there is likely to be an extended transition period between 1.8 and 2.0, the design goal was to build a single library that supports both.

Updated: Patch, Gem



Jim Baker: The most important thing to know about Django on Jython is that we are almost there, and with clean code. End-to-end functionality is demonstrated by the admin tool running in full CRUD, along with a substantial number of unit tests and syncdb. But this has been achieved by so far requiring only 6 lines of code in changes to Django trunk.

As the decade comes to a close, it is interesting to see the promise of “Write Once, Run Anywhere” move from “write in Java, run anywhere there is a JVM” to “write in Python or Ruby, run anywhere there is C, a JVM, or .Net”.  While the latter VMs provide additional runtime libraries, the pressure to run high profile frameworks like Django and Rails ensure that there is a rather large set of common libraries implemented compatibly across the various implementations.

IBM += Dims

Davanum Srinivas: Many Many thanks to everyone who helped me with my job search! I’ll starting with IBM today. My Android days most probably come to an end though i may get to do a bit of Axis2 again.

IBM += Damien Katz

Damien Katz: I’ve accepted a permanent, full-time job with IBM. My primary duties are (drumroll....) CouchDB! So all the stuff I’ve been doing up until now for free I’ll be doing full time and be getting paid for it! Yee Haw!

I guess I can talk about this now.  :-)

Keeping On Your Toes

Bugs, here, there, there, there, and even over there.