Archive for May, 2010

Email Yourself via HTTP-GET

May 14th, 2010

I am hoping to use Google AppEngine on a non-profit open-source project. To help me get familiar with AppEngine, I made a very small, simple webapp that sends a short message to any signed up users when they make a HTTP-GET request to their assigned URL. It’s useful if you have a very long running simulation or compilation that you would like to walk away from but be notified when it completes (or errs.) Assuming the email address used for your Google Account is also the one used on your smart phone, it basically mimics SMS without the headache.

The message should be shorter than 78 characters. Anything longer will be truncated. The message will be the email subject. To (feebly) prevent a quota DoS attack, each account is limited to 100 messages a day.

P.S. I learned only minutes ago that AppEngine apps cannot receive email from custom domain addresses, a feature I think my non-profit app will require. FAIL!

Fetishizing Programming Languages

May 1st, 2010

Learning a new programming language is fun. Different languages take different approaches to solving problems — they follow different paradigms. Learning a new language feels a lot like exploring, and I like exploring.

Exposure to more than one language is a good thing. However, once you are familiar with the broad paradigms, there exists a danger of conflating learning new languages with learning new ways to solve problems. In my case I forgot that programming languages are tools. Learning new languages can be seen as acquiring new tools. Learning a set of very similar languages is of limited utility because your not actually gaining anything new. There is almost no marginal benefit. To make things less abstract, compare the promisculous language learner with a carpenter. Carpenters don’t seem to suffer from the same error of judgement. There might be several brands of hammers offering slightly different features, but they all pound nails into wood.

I still enjoy learning new languages, but I don’t do so with such fervent desperation anymore. I’ve ceased my semi-conscious search for the best one. Instead, I finally realized my time is best spent studying algorithms, learning new programming techniques, and contributing to existing projects. This is much more rewarding than implementing the same software in twenty-three languages.

P.S. This post is a follow up to Consumerism and Programming Polyglots. I wrote Consumerism and Programming Polyglots a while ago. When I reread it today, I was very dissatisfied. It hinted at what I wanted to say, but it was inarticulate — mostly because I didn’t understand what mistake I was making by learning languages promiscuously. I think I get it now. Six month from now, I’m sure I’ll identify an entirely new aspect of my miseducation.

P.P.S. I wrote the title down, remembering someone had said it to me once when critiquing another post, Back to PHP. I searched my email before publishing this post and discovered it was Zed Shaw. This was disheartening. It took me several months since my original post to come to a conclusion that was accurately summed up by his flippant response: “All this fetishizing of technology is kind of pointless.”