bloglines API

Yesterday Bloglines announced their API, which is a RPC/REST interface to their core functionality: unread message count, subscribed feeds / items and blogrolling. While the service URL is http://rpc.bloglines.com/<whatever>, they’re also using HTTP rather directly, specifically in terms of authentication and response codes … mostly correctly even (the 403 in response to listitems should really be a 404, no?)

Open service APIs are awesome; bloglines continues to r0×0r.

I can’t help but wonder why the API isn’t:

GET /user//unread

same plaintext as currently

GET /user//subs

returns the same OPML, with full URLs for the bloglines subscription id of the form…

GET /user//subs/12345 GET /user//subs/12345?since=

returns RSS of feed, with optional date.

POST /user//subs/12345 [simple form indicating that items should be marked read]

I guess you could use GET to modify state, but why? The POST is better-suited.

GET /user//

provides a listing of all of the above, plus more?

Advantages: 1. consistency — both getitems and listsubs? Why am I calling the update RPC to get an unread item list? 2. extension — there’s now a natural resource-space for extension and growth. 3. simplicity — this seems simpler.

Also, a note to API authors: hey, buddy, it’s 2004. You really don’t need to condense sinceLastReadDate to d, or complexActionCode to n … especially when you’re about to give me back super-verbose XML. kthxbye.

In fact, I started to write a aggregation web service not too long ago with a very similar API. Frankly, I love the concept of an aggregation service, but hate web based UIs; luckily the Moz* browers have created a nice, extendable web-browsing platform, which could be an excellent interface to such a service — or really any other.

The UI of a desktop aggregator; the advantages of a web-service approach.

Maybe someday I’ll pick up the thread.

kayaking the Winooski

Yesterday, oddmonster and I took a trip down a section of the lower Winooski. The original plan was to put in just after the dam at the Winooski bridge — which we cross twice daily — and to run the nearly 10 miles down to where the Winooski empties into Lake Champlain. But, after getting a late start, we decided to put in a bit further on, at a nice canoe access provided in the Ethen Allen Homestead.

It was a beautiful day for paddling, and a nice remaining day of summer. That section of the river is both wide and deep — we had no space issue even with motorboats around, and we never once got remotely near grounded. Though the sign at the put-in said we were 5.5mi from Lake Champlain it was more like 7…

We took out at Charlie Auer’s Family’s Boathouse, which is a fixture of the Burlington outdoor landscape. Having been there for 75 years, they are nothing but committed to making your trip awesome … they also run the bike ferry, and have prime placement on the bike trail, so there’s always folks around.

This was also the opportunity I’ve been itching for to play with my brand new Rino 120. We crashed pretty hard yesterday evening after getting back, but tonight I found the time to download the track log data onto my linux box. But the real win was finding the excellent gpsvisualizer.com.

One small issue with gpsvisualizer.com is that it doesn’t let you assign the color of the waypoint markers … but a bit of svg editing later, and problem solved.

Thus, our Winooski river trip:

Path, topo

Path, ariel photo

tasting Old Growler

As I mentioned before, I had my second homebrewing experience not too long ago, and the first one to bear fruit … or … beer, as it were.

There was a good 8 days of fermentation, which was actually longer than necessary, and a semi-hectic evening of bottling. 10 days later — Friday the 24th — I opened the first bottle.

It was about as the earlier taste-tests I’d made, though with a bit less … noise in it. It’s not stellar, but it easily better than many commercial beers I’ve had.

Enjoy!

Mmmmm. Beer.

information design x2

Two examples of nifty information design I saw today:

  1. The Periodic Table of Perl (via lemonodor ).
  2. The recipe descriptions at cookingforengineers.com.

Information design is one of those things that involves talent, time, passion and creativity, and “a good eye” … I wish I could do it at all, let alone well.

second brew

The oddmonster was kind enough to get me a homebrew starter kit approximately a year ago, though it took me nearly 9 months to actually sit down and use the thing.

I pitched the original yeast which came with the starter kit, but certainly after 9 months of being uncared for there was no hope that a bag of dead yeast would do anything. As well, no matter how many times I read and re-read the directions before and during the process, a measuring mistake or two was introduced. I noticed that there was no fermentation the next day, and went down to the local homebrew supply place to get some fresh/real yeast, and re-pitched the next evening. Strangely, there was still no fermentation activity the next morning, and hopes were not high.

After a continued lack of activity and more than enough time, I removed the 1-gallon cubitainer from the basement and poured out a sample. Not only had no fermentation occurred, but it was pretty nasty. Into the sink it went.

Just after the Oddmo’ got me the kit, a friend was kind enough — in the midst of cleaning house — to donate to me both various homebrew accoutrements and a plethora of text, which I’d been studiously reading for the past year…

Mr. Whyte runs the homebrew supply store just down the road, and was kind enough to be working on Labor Day … from the looks of it, a good day to be conducting commerce. I was able to jump in and get kitted out … a food-grade fermentation bucket, airlock, hydrometer, siphon, &c…. and the ingredients of the recipe for 5 gallons (19L) of Old Growler

Homebrewing is a pretty simple art: water + malted-barley + grain + sugar + yeast + wait = beer. The amazing thing is just how long it takes to heat and cool 2 gallons of water…

After starting at 7pm, at 11:40pm last night, I happily closed the lid on my second batch.

It was exciting to check in on it all day, and watch copious bubbles of CO2 come through the airlock.

Now to figure out how to do all my record keeping in RDF…


Old Growler

For 5g/19L ; 1.040-1.050 OG; ~4.4% ABV ; 10g dry ale yeast.

Grains: * 4 oz Victory * 8 oz Crystal 60 * 4 oz Chocolate * 4 oz Wheat

Extracts: * 5 lb Light Malt Extract * 8 oz Light Brown Sugar

Hopping Schedule: * 1 oz Fuggles - 60 min * 0.5 oz Fuggles - 30 min * 0.5 oz Fuggles - 5 min