Common RSS Programming Mistakes

Scott Johnson has a great podcast/blog post on common RSS mistakes:

  1. Putting session IDs into feed urls
  2. Not validating your feed. Valid XML really, really matters. http://www.feedvalidator.org/.
  3. Too many feeds.
  4. Making it too hard to find the feed. There’s a standard logo. Use it. Link to it from every page.
  5. Getting auto discovery wrong / not supporting auto discovery at all. Even today this happens all the time.
  6. Not offering full content feeds.
  7. Improper encoding of data. See point #2. (This happens even with “major” sites — I saw it today from Digg.com’s feed.
  8. Not testing in multiple aggregators.
  9. Trying to track the exit path of links.
  10. Not testing specifically on the hell that is MS-Word data. “SmartQuotes” which I think are the devils handiwork in particular.
  11. The feed:// psuedo protocol. Oy.
  12. Placing XML purity over the care of the user.

As someone who has mostly consumed feeds I’d say that #4, #6 and #11 are the items that have bothered me the most. Especially #11, I’m tired of having to correct cut-n-pasted links out of WordPress blogs that still have the feed:// included in their feed URL.

Google Code Project Hosting

Seems Google has been busy lately, announcing their Google Code Project Hosting at OSCON. NewsForge has an interview with Greg Stein and Chris DiBona about the new offering. More comments on the new service can be found at Slashdot and Techcrunch.

From the very beginning Greg came out and said that they aren’t competing with SourceForge.net. At some level this is certainly true because the feature set that Google is targeting is different that SF (SourceForge). In general though this is direct competition to SF, and it is good to see. SF has had problems for years and have never really been able to keep up with the demand. It isn’t clear that Google will be able to either, but hopefully the competition will drive everyone to be better.

Zillow Mobile/SMS/Email Estimates

You have probably already seen the new cool kid in real estate, Zillow. Now they’ve gone one better with Zillow Mobile, which lets your get a “Zestimate” of a home via email or SMS to z@labs.zillow.com. The information they send back is pretty basic, (price estimate, beds, baths, square feet and year built) but if you are offline and see a potential home this makes it easy to find out if might be in your price range.

Javascript Boot Camp

I haven’t been to OSCON (O’Reilly Open Source Convention) in years, so I’m glad to see that more and more presenters are making their slides available online. It isn’t the same as being there, but it is better than nothing.

The Javascript Boot Camp Tutorial has slides and source code available. I just finished a quick run through of the PDF slides, very cool. These slides are a great intro into Javascript. I think I’ll keep a copy around for reference later.

Ankles Only Bend So Far

I’m not much of a basketball player, but most Tuesday nights I manage to run up and down the court for about 90 minutes. After this week though I won’t be playing for awhile. Last Tuesday while coming down from a rebound I looked down just in time to watch the outside of my right ankle bend over and touch the floor. To make things worse I heard that wonderful cracking sound that lets you know that something bad has just happened. After getting home I found my ankle was quite swollen.

I spent most of yesterday at the getting checked out by my doctor, getting x-rays, crutches and an air splint. The good news was that the x-rays didn’t show a broken or fractured fibula. Not much fun sitting around icing my ankle trying to get the swelling down though.

So if you’ve ever looked down and wondered how far your ankle can bend, yes it can bend around touch the floor and snap back. After having done this myself I confirm the possibility, but wouldn’t recommend that you try it yourself.

The Calacanis Social News Offer

By now most folks have heard about the Jason Calacanis $1,000/month social bookmark/news offer. I’m sure some will be upset, others will be thrilled to see more money being injected into this area of the web. Lets not worry about sides right now, I’m interested in what these numbers actually represent. Bring on the basic math!

Jason provided some ball park numbers in his follow up post on the response to his offer:

  • 12 social bookmarkers
  • $1,000 per month ($12,000 per year)
  • Estimated 2-3 hours per day
  • At least 150 stories per month per person

So for $144,000 per year Jason expects to get at least 21,600 stories. So the big picture is that the maximum cost for his offer is approximately $6.67 per story link. If his social employers do more than the minimum of 150 stories then his costs per story goes done, so his per story link cost is probably going to be less than $6.67. These numbers are even more interesting in the light of Jason’s most recent post, Nicholas Carr nails it, because he estimates the value of each story link at $7 to $12. I don’t know the details of what other costs Jason has to pay for to keep the new Netscape.com up, but one thing seems clear, he won’t be loosing money by paying people for story links.

Now for the other end of these numbers, what the “Netscape Navigators” get out of this. To make things easier we’ll assume that they will be working regular business days, 23 per month. To meet the 150 links per month they will have to submit about 7 per day. Using the 2-3 hours per day that Jason mentioned each link is allotted 17 to 25 minutes. Not a completely unreasonable time frame I think. At 46 to 69 hours per month (23 x 2 and 23 x 3) the hourly rate is $21 to $14 per hour for each “Navigator”.

So is it worth it? We’ll obviously $12,000 per year isn’t exactly a full time job, but as extra money it isn’t bad. I think for most people the deciding factor would be time.

Greg Lehey Interview On BSDTalk

BSDTalk posted an interview with Greg Lehey (a.k.a. Grog) this morning. Greg has a long history in the unix world and has contributed a fair bit to FreeBSD over the years.

I knew that he had worked for Linuxcare during the dot.com boom, but I didn’t realize that he now works for MySQL (and has for almost a year).

Greg is a very intelligent guy, even if he does use emacs :-)

Compressed JavaScript


Here is an interesting feature that I didn’t know about, you can compress JavaScript and use that file directly, just like the uncompressed version. So after gzip prototype.js you can use it in a web page with:

<script type="text/javascript" src="prototype.js.gz"></script>

No need for mod_gzip or mod_deflate in Apache. Compress the file once and enjoy the reduced bandwidth and load on your web server.

This is pretty cool because prototype.js (version 1.5.0_rc0) is 55,150 bytes. After gzip on my Mac OS X system prototype.js.gz shrinks down to 12,479 bytes. Easy way to loose 42,671 bytes. You can save another 98 bytes by using gzip -9, down to 12,381 bytes. Unfortunately none of the browsers seem to support bzip, which shrank prototype.js down to 11,556 bytes.

I’ve tested this on Firefox 1.5 and IE 6 on Windows; Firefox 2, Opera 9 and Safari 2.0.3 on Mac OS X. Before you get too excited there is one problem, this doesn’t work on Safari. All of the browsers that I tested showed no difference between gzip and non-gzip JavaScript except for Safari.

So if you want to properly support Safari in your web app you’ll have to skip this idea completely or look at some sort of browser detection mechanism (ick) which would serve uncompressed JavaScript to Safari.

Still Working On EditInPlace

Just a quick entry to note that I’m still working on the EditInPlace code. I’ve received some suggestions and bug reports that I’m working through. In addition to general features and fixes I’ve taken to rewriting the whole library using different approaches. While JavaScript is flexible in some ways, it is down right odd in other ways.

There are days when I wish that JavaScript would be replaced completely by some other embedded language. I’d suggest Python, but the white space issue would feel strange in the world of (X)HTML. Perhaps Perl, PHP or even Ruby?