intertwingly

It’s just data

Pond Envy

Michal Wallace: The other main advantage is the huge number of developers. Thanks to Microsoft’s reach, .NET is a much bigger pond than python. I can hire .NET developers anywhere, or if i want, I can get a job as a .NET developer. (The Java pond is bigger still, but Java always felt clunky to me.)

My first recommendation aligns with Aristotle's: diversify.  I didn’t do any Perl in the past week, but I did do Python, PHP, Ruby, and JavaScript.  In pond size terms, PHP is huge and growing.  Ruby is nascent but exploding.

My second recommendation is to consider the whole picture.  For me, that includes source control and unit tests.

What I like about Ruby isn’t just the language, but that the community that surrounds this language tends to share these values.  Pick up a random PHP package, and try to find the test cases.  Where are the unit tests for netron?

Now, just try to submit a patch to Typo without a test case, I dare you.  In fact, before making any choices, I’d suggest that you try the following:  Check out Typo.  Copy config/database.yml.example to config/database.yml, and tailor it based on your needs.  Then create your databases.  For mysql (for example):

create database typo_dev;
create database typo_tests;

Load the schema for the tables:

mysql -p typo_dev < db/schema.mysql.sql
mysql -p typo_tests < db/schema.mysql.sql

Make sure that rake is at version 0.7.0 or later via rake -V, if not, execute sudo gem install rake.  Now type rake.  You should successfully execute hundreds of tests.

To get a feel for how all this fits together, look at this patch — test cases, test data, and code, each has a place.  The test cases can verify — at a very fine grained level — everything from the HTTP status codes, to the HTML that is returned, to the results of XPath queries.

Every part of this patch was developed solely using VIM.

The only downside to Rails is that you have to find a hosting provider that supports — at a minimum — FastCGI.

Got any recommendations?  ;-)


Now you see it...

For the past couple of nights, I noticed a strange thing.  I’d go to bed with my entries showing up on Planet Intertwingly.  I’d wake up with a number of them missing.

...


Typo-Atom patch

Time to kick it up a notch.  This time I’m armed with a patch which includes test cases.

...


Blogger, Firefox 1.5.0.2, and Atom 1.0

Jeffrey Tucker: A special thank you to Sam Ruby for fixing the Schola’s atom feed in Firefox live bookmarks. He performed selflessly and brilliantly without asking anything in return.

...


application/vnd.mozilla.maybe.feed

Ben Goodger: The problem with detecting feeds is that very many feeds are served with incorrect or overly generic Content-Types. Some are served as text/html which is clearly wrong, but others are served as application/xml or text/xml which is not incorrect, just not specific enough. We can’t attempt to parse every candidate Content-Type as a feed just to see if it is, since that would significantly impact our performance. We also can’t restrict ourselves to Feed types, since that would leave us not detecting a lot of feeds, and still be incorrect.

Added NonSpecificMediaType warning


Nav Keys

Inspired by Bloglines, which apparently in turn was based on work by Matt Kruise, I’ve added navigational key support to Planet Intertwingly and to the index and comments pages on my weblog.

...


Logistics and teamwork

How do we go about getting builder updated in Rails 1.1, picked up by Typo, and deployed by Amy?

...


Adding Atom support to PlanetPlanet

This weekend’s recreational programming project involved PlanetPlanet and ensuring that there is adequate support for Atom.  And there’s nothing like live data to help identify integration issues.

...


Planet Intertwingly

bzr get http://www.gnome.org/~jdub/bzr/planet/devel/trunk/ planet

Apply this patch

Download Universal Feed Parser 4.1

Edit config.ini

python planet.py config.ini

Done


Web Heresies

Avi Bryant: In July, I’ll be in Portland at OSCON, talking about Web Heresies.


bzr

Just when I was just starting to get comfortable with svn, along comes bzr.  For me, the biggest benefit of svn over cvs is the increased ability to work offline.  It looks like bzr intends to take this to the next level,

...


Two Browsers

I’ve made some progress getting my recent slide show to display on IE.  It is time to document a few of the obstacles I have encountered, and capture what I have done so far.

...


Two Webs

Dare Obasanjo: When talking about REST and HTTP-For-APIs, we should be careful not to learn the wrong lessons from how HTTP-For-Browsers is used today

My two cents: you have to look deeper.  Otherwise, you will miss the fact that the split is actually elsewhere.

...


commentRss

Matthew Mullenweg: the author of the Well-formed Web spec has changed the capitializition of the wfw:commentRSS element at some unknown point to lowercase Rss. This arbitrary decision has been codified by the validator, which now reports the millions and millions of feeds that use the previously correct capitialization as invalid

I’ve just deployed a change, downgrading this to a warning.

...


Short Form

Tim’s post made me think

...


Bloglines Security Fixes

Ben Lowery: The various security issues presented in this thread have been addressed and fixes have been pushed out to the production site. Please let me know if you find any problems with the fixes, or if you find more issues.


Intangibles

Paul Querna: It is interesting to ponder the value of the Apache HTTP Server Project, but I think at some point, you can’t get caught up in silly things like that. You need to do open source for yourself first. If other people use it... thats just a bonus.

That’s certainly The Apache way.  But as I post this using Ubuntu Linux

...


Bloglines Breakages

Bloglines: Psssssst. Hit m. You’ll thank me later

Not exactly.  I used to have a bookmarkNote: do not click on that link if you are an active Bloglines user unless you want all your unread items marked as read — and for the last week or so, the accelerator keys stopped working for me.  Now I understand why.

Instead of breaking things that used to work, I’d really appreciate if Bloglines could handle basic things like whitespace, links, relative URIs, and plain text.  Oh, and fix a few security holes.  And be a bit more responsive.

Otherwise, I’ll continue to wave my arms and gesticulate wildly.  Expect more stunts.


Don't throw charset out with the bathwater

Ian Hixie: I think it may be time to retire the Content-Type header, putting to sleep the myth that it is in any way authoritative, and instead have well-defined content-sniffing rules for Web content.

The reason why people can safely enter non-Latin-1 characters in my comments and have them presented properly to all consumers that have installed the appropriate fonts is that these pages specify charset=utf-8 in the content-type header.

Sniffing for the character encoding used is clearly not the answer.  Nor am I convinced that meta http-equiv is either.


Frozen peas and valium

Mark Pilgrim: Please take this opportunity to relate amusing anecdotes about your vasectomy.

...


Atom in a sea of RSS

Slides for an internal presentation.

I was invited in order to help advocate that certain applications provide Atom feeds in addition to RSS feeds.  I’ve declined to do so, as I now feel that every feed should be provided in exactly one feed format, preferably with an x.0 version number.  If your feed is valid and you are aware of — and have a strategy of coping with — the limitations of the feed format you selected, peace be with you.

...


MS Live gets an upgrade

Niall Kennedy: Starting next week I will join Microsoft’s Windows Live division to create a new product team around syndication technologies such as RSS and Atom. I will help build a feed syndication platform leveraged by Microsoft products and developers all around the world. I am excited to construct a team and product from scratch focused on scalability and connecting syndication clients and their users wherever they may exist: desktop, mobile, media center, gaming console, widget, gadget, and more.

This has the possibility of being a Very Good Thing.

...


Hard Drive Failure

It started with a hard drive failure.  On a machine that is between three and four years old.  It ended with me spending a half day installing not one, but two operating systems.  And being pleasantly surprised how smoothly it went.

...


<comment>

First, I verified that the RSS 0.91 spec is more honored in the breach than the observance.  Then I switched exclusively to Atom 1.0.

Time to destroy the internets again.  But only for those Aggregators with an 'X" in column four in this table.  Non-IE based aggregators with an X in this column will simply see silent data loss.  IE-based aggregators with an X in this column that aren’t based on white-listing may see a repeat of last Tuesday.

If your aggregator is broken, point the authors to section 3.1.1 of RFC 4287.


Park Place

_why: So, it’s really not much, but it does handle most things, and it’s decent enough... It’s Park Place, a clone of Amazon’s S3 (Simple Storage Service.) It’s written entirely in Ruby, with heaps of help from the Camping 4k web framework. Oh, and no SOAP support to speak of. [announcement]


Draconian Strftime

While making other changes to my weblogging software, I noticed that some of the code was running using Python 2.2 and others using Python 2.4 based on the entry point.  As the majority code is largely independent of the entry point, this made little sense, and without much thought I changed the primary entry point to use 2.4.

...


DB2 Viper

Boris Bialek: Finally ! We made it and you can get it... Now ! If this sounds like I am on endorphine loaded high this is maybe true - it is great to be part of such a cool project. The DB2 Viper test drive is now available with a highly optimized Linux version fine tuned for the Linux Kernel 2.6 with all bells and whistles. It will give you a lot of fun to kick the tires. The test drive is available from the DB2 Viper web zone.


Temporary Subscriptions

I’ve decided to only offer per comment feeds for a period of 90 days after the last comment has been received on any given entry.  After which point, the autodiscovery link and the common feed icon will be removed from the page, and any attempt to fetch the feed will return an HTTP 410 status code.

...


The Delta Web

Andy Roberts: I’ve started a new project called “the delta web”. The idea is to define a markup language called “delta” for describing changes to Web-based documents such as Atom feeds. Delta lets you capture the notion of “change over time” or “work done” to content on the Web.


First Step

Rod Smith: Inside I.B.M., do-it-yourself software is an oxymoron

Clearly an over-generalization with a (somewhat large) element of truth to it.

It always is refreshing to be working in an area where there is a clear recognition of the problem to be solved.


CSS Naked Day

Dustin Diaz: Welcome to the first annual CSS naked day which will be happening April 5th, 2006. The idea behind this event is to promote Web Standards. Plain and simple. This includes proper use of (x)html, semantic markup, a good hierarchy structure, and; well, a fun play on words. I mean, who doesn’t want to get naked?


Anole Bite

Central North Carolina is home to a lounge (status: suprious) of small lizards, most commonly skinks and anoles.  One, apparently an anole, wandered onto my screen porch and couldn’t find its way back to freedom.

...


Letting Go

David Reid: One trait that I’ve found most of the people working on open source share is that they find it hard to let go. I’m guilty of this myself, but have, over the years, found that it’s a neccesity if sanity is to be preserved!


Relative References

I feel strongly that Atom processors need to be able to process relative references in a consistent manner.  But, for now, I’ve restored the use of absolute URIs in my Atom feed, and I will keep it that way for a minimum of 90 days.

...


ASF in a Nutshell

Ted Husted: How many ASF committers does it take to change a lightbulb?