« May 2006 | Main | July 2006 »

June 30, 2006

Deleting your FeedBurner Feed

I wanted to clear a couple of things up about the Redirecting Guy post. First, FeedBurner feeds never "expire": once you have a FeedBurner URL, it's yours until you explicitly delete it. Second, if you do decide to delete your FeedBurner feed, you can select the "30-day Redirect" option, which goes through the following steps:

Day 1-10: Any requests for the FeedBurner feed are sent an HTTP 301 "Permanent Redirect" response back to your source feed. This will cause most feed readers to forget the FeedBurner URL and use the new URL from that point on. Your subscribers don't feel a thing.

Day 11-20: If your FeedBurner feed is still getting requests at this point, it probably means that your feed reader is treating that "Permanent Redirect" as a "Temporary Redirect". That's actually pretty common, so now we enter "Phase 2". Now, any requests for your FeedBurner feed will receive a "redirect document". What is a redirect document? Dave Winer displayed foresight by anticipating this need back in 2002 and provided this specification so that a publisher could keep control of their feed location. We strongly encourage more feed readers to support this specification, and we are going to be widely campaigning for this capability.

Day 21-30: You're still here? Well, at this point we return a valid feed that contains a single item that says "This feed has moved to (feed URL here)". So even though all of the transparent mechanisms to redirect the subscription have failed, there's still a trail for your subscribers to follow.

After Day 30, your feed is deleted and that URL is up for grabs. If you would like to extend this time period beyond 30 days, however, just drop us a note to feedback [at] feedburner.com and we'd be happy to extend this redirect period indefinitely. We've done that for lots of publishers.

Mike's point is valid: as a publisher, you should be aware that if you delete your FeedBurner feed you are also releasing your claim to that particular URL, just like what happens if you give up a domain name or a delete a blog on a hosted service. We have provided the tools (through redirection, MyBrand, and the 30-day Delete process) to ensure that publishers maintain complete control over their feed, but we always welcome feedback and suggestions for improvement!

June 27, 2006

Distributed Caching with Java

Kevin Burton had a nice comment in a previous post, warning against using local caches and instead suggesting using memcached. I agree. At FeedBurner, we're using memcached and we've had really good luck with it. Why memcached? Because we knew some people that used it successfully, and we've pretty much used Brad's LiveJournal growth history as a template for how we want to scale.

But as we grow, I have a few concerns, and we're soon going to be doing some research into other possible distributed cache solutions. The biggest concern is that it appears that adding or removing a memcached server causes all of the object identfiers to be rehashed, which essentially flushes the cache. We're getting to the point where we have to be a little careful as our cache warms up, so I'd prefer to be able to add and remove cache servers without having to blow the cache.

I'm certainly not ruling out staying with memcached, but I'm willing to look at alternatives. If anyone has any recommendations for things to look at, please let me know.

Branding the Feed

Good article in Business 2.0 on FeedBurner featuring Dick. I like that he worked in the "feed of me" stuff.

Source: Business 2.0: Branding the feed - Jun. 27, 2006

June 22, 2006

Atom 1.0 for SmartFeed in Bloglines

Bloglines recently announced much improved support for Atom 1.0 feeds. Therefore, at FeedBurner, we flipped the bit on the SmartFeed service so that Atom 1.0 feeds will be delivered as-is to Bloglines instead of being down-converted to Atom 0.3.

Very soon, we're going to be switching SmartFeed from the current "assume a reader doesn't support Atom 1.0 unless we have recorded otherwise" logic to the "assume a reader does support Atom 1.0 unless we have recorded otherwise". That might cause a few problems with some readers that we haven't identified, but we should be able to chase those down quickly.

June 21, 2006

FeedFlare Scratchpad

feedflarescratchpad.pngThis past Friday, we had our third Hackathon here at FeedBurner. My project was to create a FeedFlare development environment, since creating and debugging FeedFlare Units right now is like spelunking without a flashlight. So I created the FeedFlare Scratchpad as a rudimentary start to this development environment.

Below the fold is a simple walkthrough for how this tool works. I hope it helps some enterprising FeedFlare developers out there!
Here's a sample walkthrough of how a developer might use the FeedFlare Scratchpad. Let's say that you want to develop your own version of the "Email This" FeedFlare.

1. Go to the FeedFlare Scratchpad

Easy enough ... just click on this link: FeedFlare Scratchpad.

2. Enter a FeedFlareUnit in the text area

Copy this XML and paste it into the FeedFlare Unit text area and hit "Go!"



3. Fix the XML

That didn't work because the XML is invalid ... we have to make sure we encode that ampersand before the "body" parameter correctly.


So let's change that encode that ampersand. Paste this version into the text box:



4. Add the Text element

Still no dice ... now it's saying we need the "Text" element.


A look at the FeedFlare Developer Guide tells us that we need a Text element for a static FeedFlare, so let's add it. Paste this version into the text box:



5. Enter a feed URL

Alright ... now that we have what appears to be a valid FeedFlare Unit, let's test it against an item in a feed. Enter a feed URL (it doesn't have to be a FeedBurner feed) and hit "Go!". For this walkthrough, enter "http://feeds.feedburner.com/publisherbuzz".

6. Select an item

After a feed is entered, we go and grab the latest version of the feed and display the items in a drop-down box. Go ahead and select one of the items to see how your FeedFlare will be applied to that item.


7. Profit!

After all of that, we have some results. We can now see if a FeedFlare would have been created for this item. If a FeedFlare isn't created, that might mean that one of your variable substitutions or XPath expressions is wrong. You can use the "Atom 1.0" view of the item to help tune your XPath expressions.

If a FeedFlare would be created, then the tool shows you a preview of how the FeedFlare would be rendered in a feed or on a site.

8. Explore

At this point, feel free to play around with the FeedFlare XML ... or choose a different item, or even a different feed. It can serve as a testing tool now.

There is certainly a bunch more that we can do with this tool, and some of the developers here are already teasing me that it's not using AJAX, but it's a start, and I hope you find it useful!

June 16, 2006

Slinging the World Cup

sling_plus_wc.png
I'm a very happy worker these days. I ended up connecting my Slingbox to a dedicated Tivo (i.e., one that won't switch into "Dora the Explorer" in the middle of a game) at home, and bringing in my projector to the office. It's not HD, but it's certainly servicable, and it gives us Hot World Cup action throughout the day, baby! I'm finding it very enjoyable (and productive) to have the games projected while working. And the timezone difference is just about perfect: all three games fit comfortably within the work day.

I love this job.

June 15, 2006

Java Concurrency in Practice


This book joins Effective Java and Hibernate in Action as a "two copy" Java book -- it's such a must-have book that I need one copy at home and one copy at the office. This is an incredibly valuable book that is a required read for anyone hoping to create scalable web apps with Java.

Concurrency in Java is a very difficult, iceberg subject, and I guarantee your intution will fail you more often than not. The all-star authors (Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea) manage to make the book as readable as possible. Which is good, because this is not a reference book: it is a book that is meant to be read from cover to cover, multiple times. I found something to be embarassed about every few pages. Swallowing InterruptedExceptions? Oops. Communicating via state between threads via non-volatile variables? Ummm. Using synchronized HashMaps for local caches? Crap. There are a lot of bad habits I've discovered as a result of this book.

This book is also prompting me to move FeedBurner to JDK 1.5 (from JDK 1.4) sooner rather than later. While Doug Lea's concurrency library works well in JDK 1.4, the VM support for atomic variables in JDK 1.5 is reason enough for me. Well, there are a bunch of other reasons of course to move to JDK 1.5, but that's for another post.

Five stars, four thumbs up ... this is a must-read book for all serious Java developers.

June 14, 2006

Some Blog Changes

I'm finally getting around to making some changes on this blog. No more orange text on an orange background ... I went with the clean Iconic style from Carrie Patri. It still needs some tweaks, but I'm happy with how it's holding together so far.

I'm also experimenting with using Vox as a place to keep all of my "media" ... recent movies, what I've been listenting to, and books. See my Vox space, "Beyond the Blog". It's still a bit rough, but I really like the potential. I like how they have Atom feeds for each of the categories of media. I burned each of those feeds at FeedBurner and used BuzzBoost to power some of the sections of the left rail. Sure wish I could make some of those pictures smaller! That's a feedback item for the Vox team.

All of the feeds from before still work -- the main feed (with del.icio.us links spliced in), the comments feed, and a microfeed for each item's comments. I'll probably also try to get some of the Vox stuff spliced in as well. Oh, I added a FeedBurner email subscription option as well.

I hated the look of my blog so much before that I resisted posting anything. Now I can come up with an entirely new reason for not posting.

June 07, 2006

Right, Said Fred

I know someone that is going to be very happy.

Michael and the Six Apart team did an awesome job with this integration with FeedBurner. Really nice work!