Large-scale, automated whimsy — A journey into blog spam

As you may have noticed if you write a blog, however modest it might be (such as yours truly), you’ll receive spam comments. A lot. Things like that:

spam 1

 

Spam like this is usually obvious. Thankfully, some spammers go out of their ways to create engaging messages to fool your filters, both automated (like Akismet, who dutifully collected all the ones exposed in this post) and human. I’ve been collecting the best of breed (I know, I live a very sheltered life), such as…

 

The Ones Sucking Up

magnificent

Aaaah, the day-to-day of spam. “Magnificent”, nothing less!

 

fame

“Famous”! Money! Girls! Bling! Bring it on!

 

trains

 

“Amazing”, yay! Although I hope you realized you are trying to advertise train horns on a tech blog. Train horns.

 

The Confused Identities

dave-sabine

Why thank you, Sabine — I mean Dave. Hmm, wait.

 

The Sarcastic

colors

The colors on this post are amazing? Are you on drugs?

 

great risk

 

Ah, yes. Writing about SICP almost got me killed by M.I.T.’s own Secret Service. As a matter of fact, I’m hiding in Kazakhstan right now.

(On a serious note, I emailed Hal Abelson about a typo in the online version of SICP and received a very nice answer by him personally the very next day — hats off to you, sir!)

 

The Keyword Bingo

keywordbingoGotta unlock ’em all!

 

The Compliment That Wasn’t

notcompliment

This starts well… Grow, trendy, extremely amazing, attractive… Yeah, classical spam. But at closer look, this is actually a poorly translated troll insinuating that my post is unworthy. Darn!

 

The Cringe-Worthy

incite

It is very telling whether you consider “incite full” or the concept of high-waist shorts to be the worst part of this spam. I can’t really pick, they’re both frightening.

 

The Big-In-Japan

A slight variation on plain sucking up is doing so in different languages.

arabic

russian

portuguese

Google translating that last one gives:

Hello interesting post, I liked a lot, maybe we could become blog palls:) lol!
Aside from the jokes call me Navid and look like you publish on the Internet although the theme of my room … this is very different.
I study the pages on poker free bonus without risking your cash … …
Greatly enjoyed what I saw written on this second visit
I shall return:)
Ps: I have a bad Portuguese

Thumbs up for the politeness and the disclaimer at the end. That’s top quality spam. Not so much to say for the reading skills though, because I don’t remember discussing online poker strategies together with ncurses.

 

The Philosopher

philosopher

Wow! That turns out to be an (unsourced) citation of the late John Enoch Powell, a conservative English MP who’s also quoted as saying “reading one’s diary is like returning to one’s own vomit”, which may or may not be a more appropriate metaphor for blogs. And spam. Oh well.

 

The Prescient

pussy

Apart from the fact that they fscked up the URL bbtag — HOW DO THEY KNOW ABOUT MY SECRET PASSION!?

pity the lolcatpity the lolcat, by tizzie on flickr

 

What were your best ones?

So you want to do the SICP…

That’s awesome! But maybe you don’t know where to start.

So here we go!

Wait, the what?

Structure and Interpretation of Computer Programs, a.k.a. the SICP, is an MIT class teaching computer languages turned into a book.

Why should you care? I’ll let Stack Overflow answer:

Some classics […] teach you the effective working habits and the painstaking details of the trade. Others […] delve into the psychosocial aspects of software development. […] These books all have their place.

SICP, however, is in a different league. It is a book that will enlighten you. It will evoke in you a passion for writing beautiful programs. Moreover, it will teach you to recognize and appreciate that very beauty. It will leave you with a state of awe and an unquenchable thirst to learn more. Other books may make you a better programmer; this book will make you a programmer.

If you’re not sold on the SICP by this point, I’m afraid I can’t help you.

 

The book

The full material for the book, including lessons and the exercises, is available on the MIT website:

http://mitpress.mit.edu/sicp/full-text/book/book.html

Of course, you will need to do the exercises to fully grasp the SICP. The exercises are easy at first and get progressively more challenging. You’ll find a lot to make you think, and some concepts are guaranteed to make your head spin.

The language used to teach the SICP is Scheme, a Lisp dialect. This makes the SICP a gentle introduction to functional programming, made trendy again by the likes of Erlang, Haskell, Scala, Clojure, and even Arc if you’re an HN reader.

Okay, but doing the exercises without ever testing is not that motivating. What you need is a Scheme REPL!

 

A REPL

REPL stands for Read-Eval-Print-Loop. For example, bash could be considered a REPL: enter lines of code, they’re interpreted and results are printed out. Repeat.

Several good Scheme REPL exist, such as Gambit Scheme. If you’re on OS X with Homebrew, just type brew install gambit-scheme and launch it with scheme-r5rs in command-line. You’re good to go!

If you don’t really want to mess with Scheme locally, you can use the awesome online REPL here:

http://sisc-scheme.org/sisc-online.php

(NB: copy and paste doesn’t work on OS X, and apparently it doesn’t work with Firefox 4 on either OS X or Windows. Can anyone confirm?)

This is all good and well, but what if you’re stuck?

 

The answers

Numerous people over the web have posted their take on the SICP exercises. One of the best resources is the Scheme community wiki:

http://community.schemewiki.org/?sicp-solutions

If you trust me enough, you can see my take on the exercises on Github.

 

There it is. You don’t have any excuse not to do the SICP now, you lazy bum.

Happy hacking!

 

Edit: as always, the Hacker News discussion is very insightful.

Convert .approject to .aplibrary

If you ever backed up Aperture projects outside your standard library, you probably noticed the default format for exported albums changed from .approject to .aplibrary in the update from Aperture 2 to Aperture 3.

The Finder correctly reports these new .aplibrary as “Aperture Library”, but it seems to have forgotten everything about the old .approject who now appear as standard folders (it appears to be a weird bug on my machine, but still).

So how do we convert our .approject to .aplibrary?

  • In Aperture 3, pick File > Import > Library/Project… and select your .approject folder. This will effectively re-import your project in the current Aperture Library.
  • Right-click on the project and select Export > Project as New Library…
  • Once it’s done, delete the project from the current Aperture Library (unless you want a backup or if you have other mischievous plans for your pictures, of course)

 

That’s it! Quite straightforward indeed, but a bit puzzling at first.

The Zen of updating WordPress

WordPress automatic updates never work.

No matter if it’s a major version change or just a small bump (let’s say… 3.0.4 to 3.0.5, uh?), I always end up downloading the whole thing and updating it manually because the update page stops responding and plainly goes blank.

Instructions for update are here, by the way. And after the steps to update, they include that little snippet of wisdom:

Consider rewarding yourself with a blog post about the update, reading that book or article you’ve been putting off, or simply sitting back for a few moments and letting the world pass you by.

How could anyone be angry at WordPress after that?