A guide for infrequent contributors to Racket

:: Racket, Git

Do the following apply to you?

  • Maybe you want to contribute something to Racket: You’d like to improve the documentation, or you’d like to add a small feature.

  • Maybe you’re comfortable with Git, but haven’t made a pull request before.

  • Maybe you’ve made a one-off pull request, but haven’t tried to contribute to the same project over time and stay in sync with the upstream project.

If so, you may find my guide helpful. I was hopelessly confused about how to handle the branches and merging. After I figured it out, I wrote this down in a Gist as a note to my future self. Today I figured I’d dust it off and make it into a blog post.

Planet vs. the new package system

:: Racket

Recently I’ve shared some new libraries using the new package manager, but not uploaded them to Planet.

What about my existing Planet libraries? Yesterday Danny Yoo pointed out a bug in the Dynamo module of my Amazon AWS library on Planet.

The bug wasn’t present in my GitHub repo—I’d neglected to go through the steps of making a new version and uploading to Planet.

By contrast, with the new package manger, it would have been automatically up-to-date.

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: