TurnKey Linux Virtual Appliance Library

comment spam countermeasures (mollom, honeypots, hashcash, bad behavior)

The spam situation has recently gotten a bit out of hand and automated defenses have been giving in.

I've taken a close look at the problem and implemented a gauntlet of spam countermeasures that I'm hoping will give us back the upper hand for a while longer, without compromising on the user experience.

Previously, we only used mollom to filter out comments by anonymous users. This was easy to get around for two reasons:

Good design is harder than it looks

A few months ago I worked a couple weeks on a new website design. Just to be clear website design isn't one of my specialties. Not be a long shot. I'm much more of an engineer at heart. That means I feel more comfortable coming up with solutions I can test objectively. Visual design doesn't fit the bill. It's more art than engineering. Open-ended. A seemingly infinite solution space. No clear fitness function that doesn't involve wishy washy, vague notions like taste and style.

Website monetization primer: how online advertising works

Money. A tricky subject to bring up. It's been proven that merely activating the concept will induce selfishness. But bear with me here. This is a public service announcement, not a get rich quick scheme.

If you have a website that gets a reasonable amount of traffic, you've probably considered adding advertising at one point or another. Maybe you're dreaming of quiting your day job to work full time on the site or maybe you just want to cover some basic costs.

Two simple ways a script can detect if it's online

I didn't want installation of one of TurnKey's components to freeze up too long if it was installed offline so I looked for a nice way to detect that without bringing in additional dependencies.

Two methods stood out...

  1. ping Google DNS servers: one second constant delay, regardless if you're online or off:

GPL2 vs GPL3

Some people don't like the GPL3 and prefer to use the GPL2 license. We use GPL3. Just in case I missed something I just finished comparing the GPL3 to the GPL2 in detail and confirmed that we like the GPL3 better.

The main differences:

Security update regenerates stale SSH ECDSA host key

Peter Lieven from KAMP.de discovered a problem with TurnKey 13.0 where the OpenSSH ECDSA key is not regenerated on firstboot like the RSA and DSA host keys.

We've issued a signed hotpatch to TurnKey Core 13.0 that regenerates the ECDSA SSH host key. TurnKey deployments that have not disabled automatic security updates (it's on by default) will have their ECDSA SSH host key regenerated automatically within the next 24 hours.

configuring libresolv to timeout DNS queries to unreachable nameservers more quickly when offline

When I go offline I pull my network cable. This causes DNS queries to take forever to resolve. Actually 40 seconds but it feels like forever.

Smart cache expiration with Drupal Rules

I've been exploring Drupal Rules some more since last week.

We were already using it before to automate the various repetitive tasks involved in creating a new appliance (e.g., creating aliases for the feeds).

Intelligent caching

Now we're also using Rules in conjuction with the Cache Actions module to expire the cache page intelligently so that adding or removing published content expires related page caches immediately.

A practical intelligence amplification hack that really works: how to use your phone's TTS engine to give your brain a boost

The future is already here — it's just not very evenly distributed. 

- William Gibson

Today I decided it was time I shared a unique, literally mind bending experience I've been having. If I could only get one idea out into the wider world this would be it. It's the best piece of technology advice I have to give.

Try it and it could change your life. Tell your friends and we might change the world. It's changed mine more than any other technological innovation since I got my first modem back in 1993 and discovered the Internet a year later.

A practical brain machine interface you can use right now

Back in the mid 1990s, when I was  teenager I remember spending a lot of time speculating whether the technological singularity Vernor Vinge predicted would be driven by human IA (Intelligence Amplification), non-human AI (Artificial Intelligence) or both.

As a lifelong fan of the human race I preferred the IA route and dreamed of a day when we would have William Gibsonesque brain machine interfaces (e.g., ala Count Zero) that would augment our brains, make us smarter and let us gobble up all the knowledge we wanted at superhuman speed.

Well, it turns out you can use speech synthesis technology (AKA TTS or Text-to-Speech) to hack the equivalent of a USB port for your brain, right now. No neurosurgery required!

Hacking your brain in 3 unintuitive steps

StdTrap: a magical Pythonic mechanism for intercepting console output

As a programmer I believe less is more. Good code is small, simple and elegant and many times favorable to larger, noisier code that does the same. It's not just about aesthetics either. Making code small and beautiful makes it easier to read, and easier to understand. Which is guaranteed to make it work better. Trust me on this.