Roger Ebert, not engines

:: technology

I’ve owned a couple TiVos over the years. The first thing I do on setup? Turn off the suggestions.

The HBO series Mind of the Married Man joked about this a decade ago: “My TiVo Thinks I’m Gay”.

Although I love NetFlix I also find their recommendations underwhelming.

About the only film recommendations I ever find valuable are from a friend or someone like Roger Ebert, who sadly just passed away yesterday.

Why? Precisely because the recommendations aren’t limited to what I already like.

Parameters in Racket

:: Racket

Racket parameters let you manage stateful global variables in a way that feels more functional and is also thread- and continuation-safe. A convenient parameterize form lets you change and restore them. I’ll discuss this and show how I map parameters to a configuration file.

My Google Reader successor

:: Google, Atom, RSS

Just a brief update about what I’ve settled on as my replacement for Google Reader. I’m using Rss2Email, following the instructions in Turning Gmail into Google Reader.

I tried Feedly, NewsBlur, and Reeder. Each of them wasn’t bad, but each felt “heavy” compared to Google Reader. So W. Caleb McDaniel’s post really clicked with me.

Host your own web apps?

:: software

In general I’m a big fan of web apps for many reasons:

  • You don’t need to migrate data when you buy a new computer or mobile device.

  • You don’t spend a bunch of time updating apps for security or improvements. Doing so may be easier on a mobile device than on a desktop. But there are days when my phone does more work updating apps than me actually using it.

  • Synchronization sucks. Using multiple native apps with local stores requires synchronizing state. Essentially this is N/A with a web app because the data is stored in one place. (Note: Caching doesn’t suck; just synchronizing.)

  • Developers can iterate and experiment — “release constantly”. This may sound like it’s an advantage for devs, but to the extent it makes better apps and saner feature accretion, it’s good for us, too.

  • Easier to hack, by which I mean customize for individual needs and preferences.

  • Easier (and generally safer) to use hacks created by others (in the form of browser extensions).

So great. But obviously the Google Reader shutdown brought me up short. Shook my faith. Am I wrong to prefer web apps?

On reflection, there are two reasons why it’s still OK to prefer web apps.

Serve static files

:: Racket

I wanted Frog to provide a “preview” feature: Launch a local web server with a version of the site, and open a web browser.

This local web server simply needs to serve static files. No server-side applications. (Not even features you’d likely want in a production static file server like gzip compression or If-Modified handling.) It just needs to start quickly, and preferably not be a lot of work to code.

The year Google became “Evil”?

:: Google

Via Daring Fireball I found Google, destroyer of ecosystems. Aldo Cortesi writes:

The truth is this: Google destroyed the RSS feed reader ecosystem with a subsidized product, stifling its competitors and killing innovation. It then neglected Google Reader itself for years, after it had effectively become the only player. Today it does further damage by buggering up the already beleaguered links between publishers and readers. It would have been better for the Internet if Reader had never been at all.

What struck me is the obvious search-and-replace:

Frog overview

:: blog, Frog, Racket, software

UPDATE: This was an early post. For up-to-date info, see Frog.

When the code settles down a bit I’ll put it in a GitHub repo, and write a full README.md. Meanwhile, here’s an overview.