The current state of the art in comment spam

Write, geek! gets a fair amount of spam replies. This surprised me at first, when it began happening almost immediately after the blog was set up and content was posted. I should have known better; there’s almost no cost to spammers in spamming even unpopular blogs, so why would they make an exception for mine?

I’m using the Akismet plugin for WordPress, so it’s not like any of these comments actually make it to my blog. In fact, I’d never even have to see them, if not for the fact that I regularly clean these comments out of my spam folder by hand. I do this partly to ensure that nothing legitimate gets filtered incorrectly (which happens sometimes) and partly because I like to sort of keep tabs on the current ‘state of the art’ in spamming.

The current state of the art in spamming is this: the comments are getting better. No longer are comments jam-packed with dozens of links commonplace (one particular default WordPress setting probably made those almost 100% ineffective), but they’ve been largely replaced with comments that masquerade as… actual comments!

The idea of noise disguised as signal is nothing new if you’ve used e-mail in the last 15 years, but that the noise is getting better (read: more difficult for humans to detect) is somewhat surprising. Of course, these comments are no match for a large, distributed system like Akismet, which all-knowingly sees what’s being posted to probably millions of blogs, but the well-disguised, largely pseudo-flattering comments are probably now designed to get human blog authors to click the “Not Spam” button, freeing them the comments the spam box so that they can do their SEO-based dirty work.

Of course, gentle readers, I’m far too smart to fall for that, but not so blinded by my hatred for spam to be unable to appreciate a well-crafted work of authorship, like this one I just found:

Spam that reads "Excellent read, I just passed this onto a colleague who was doing a little research on that. And he actually bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch!"

Sure, it’s not perfect, but someone out there put some modicum of thought into it, which is the least you could ask of the author of a work that’s going to be distributed on a massive scale.

Plus, it’s a lot better than this anti-gem I also just found:

Spam that reads "Why jesus allows this sort of thing to continue is a mystery"

Can you get more unintentionally self-referential than that? (No, you cannot… and yes, that was a challenge.)

How to transfer photos from a Game Boy Camera to a computer (in Linux)

A few days ago, I found a Flickr group thread that was practically begging for my input. It read something like “Hey Everett, you’re surprisingly enough not the only person out there with these two interests (one obscure and the other semi-so). Would you be willing to help out quite possibly the only other person in the world who cares about these things?”

Not only was I like, “Heck  yeah!,” but I decided that this was worthy of blogging, in case a third individual happens to develop these interests. (If this is you, welcome!)

So, in case you find yourself wanting to get crappy photos—a term I use most affectionately—like these:

off of one of these:

red Game Boy Camera

and you use Linux:

(I kid!)

…like I do, read on.

The hardware I’m using to download photos over USB is SmartBoy USB cartridge reader (which is made by these people). And there just so happens to be a great open-source program for facilitating this task using this device (or a similar cartridge reader): gbcflsh.

So what’s the problem? gbcflsh is only distributed as source, and the source fails to compile under recent releases of Ubuntu. I contacted the developers of gbcflsh, and one gave me some suggestions for fixing the source code. They have yet to publish the fixed source, so I’ll document how I got it to compile.

(If you don’t care about this, just grab the binary I made: gbcflsh 32-bit, md5sum: 85b185706c3d5fe45b7787787f8510bd; gbcflsh 64-bit, md5sum: 4326e08fcfb5be39004c290df2a71988)

  1. Download and extract the source code.
  2. Install the following packages:
    gcc 4.3.3, qt4-dev-tools, libftdi-dev
  3. Focus on the following files:
    src/Logic.cpp
    src/ReadFlashThread.cpp
    src/ReadRamThread.cpp
    src/WriteFlashThread.cpp
    src/WriteRamThread.cpp
  4. Add the following to the bottom of the #include section of each file:
    #include <cstdio>
  5. That’s it! Compile it like you already know how to do (which I won’t get into here).

gbcflshWhen you run gbcflsh (you’ll need to do so as root, by the way), it’ll look a little bit like what you see to the right. Select the visible options (USB, Auto, Ram: 128 KB) and click “Read RAM.”

If all goes well, you’ll end up with the contents of your camera’s RAM in the form of a .sav file. Great! The hard part is behind us, but we’re not quite done yet.

Next, you’ll need a program that will extract photos from the save file. I believe there are a few, but they all seem to be for Windows. Fortunately, the one I use works perfectly under Wine. gbcameradumpIt’s called GBCameraDump.exe, and it can currently be found here. Download it, run it via Wine and select the .sav file you got from gbcflsh. You’ll have something that looks like this screenshot (except hopefully with better photos).

I would also advise you to — if this sort of thing matters to you — check the order of the saved images. They’re likely to be out of order due to, it seems, the way Nintendo decided to handle the saving of images to the cartridge. (Also, you’re likely to find some photos you thought were deleted, which may come as a surprise.)

So there you have it: how to get photos off of this camera of the past, using the operating system of the (sigh) future.

Upgraded to WordPress 3.0

The old adage (which I think I made up) about spending more time geeking around with a WordPress installation than actually writing in the damned blog holds true, ladies and gentlemen.

I just finished upgrading this fine blog to the newly-stable WordPress 3.0.

In case you were wondering and/or sitting on the edge of your seats, I took great care to:

  1. Disable all of my plugins
  2. Dump a copy of my WordPress MySQL database using the aptly-titled mysqldump
  3. tar a copy of my WordPress directory
  4. Do the upgrade!
  5. Re-enable the plugins one-by-one, making sure each works (or at least doesn’t break anything)

While I know not everyone is so lucky, I’m glad to see that everything appears to work here, because I’d be deathly embarrassed if, you know, Google or Bing’s webcrawler came by and things weren’t looking up to my usual standards.

Fine wine games

There is a certain class of video game whose existence I’ve been slowly discovering over the last few years. Let’s call these fine wine games.

My idea of a fine wine game1 is one that is best experienced a bit at a time. You know, enjoyed in moderation. The kind you only pick up and play every once in a while… because it’s just that good.

Does that sound counter-intuitive? Why would you want to take it so slowly with something so great? Well, here’s other side of the coin: this sort of game also has an element of rarity, or scarcity to it. It’s not the sort of game that prints money, selling millions of copies, so the chances of a sequel being made aren’t very good.

So enjoy the game itself. Savor it as you go. Don’t cry because there won’t be a sequel; think of how lucky you are to play it in the first place! Wring every drop of enjoyment from the experience that you can.

Here are a few games you’ll find in my cask:

Zack & Wiki (Nintendo Wii) The original fine wine game in my book. Critically acclaimed; sold quite poorly. Chance of sequel? Slim-to-none. Thus, I decided that I’d only play Zack & Wiki sparingly.

With save dates as my basis, I’d estimate that I would pick it up every couple of months, play for a day or two (enough time to struggle through my current level feeling like the world’s biggest moron until finally feeling like the world’s greatest genius, which is what this game does to you). And then, back on the shelf it would go, to wait for the next time I’m in the mood for savory gaming greatness.

Thus, despite having bought this game in 2008, I only completed it this past weekend. $40 so very, very well spent.

Soul Bubbles (Nintendo DS) While I bought my copy from an Amazon Marketplace seller, this game was released in the U.S. as a Toys R Us-exclusive title. If this artificially limited its audience, that’s simply unfortunate, because this is a beautiful game… one that I tend to forget all about for months on end before rediscovering it anew every time.

I’ve been taking my time with Soul Bubbles, and have more than half of it (read: years of enjoyment) left to go!

Mother/EarthBound series (Nintendo NES/SNES/GBA) Enough has been written about this series of quirky, rather un-RPG-like RPGs, which have attracted a cult-like following. Thus, I’ll offer only this quick assessment: the fact that English-speaking gamers have the opportunity to play any of the three games should be enough to make a fan thank their lucky stars.

While it could be said that three games released over the course of fifteen years effectively nullifies any supposed rarity… hey, you know what? Fuck you. Nintendo translated Mother and then promptly shelved the English version, Mother 2 (EarthBound) received one stinker of a U.S. marketing campaign, and the English translation of Mother 3 had to be undertaken by a team of incredibly devoted fans.

Mother games in English are some mighty fine wine.

Cave Story (Windows, WiiWare, et al.) Cave Story is the work of one dedicated amateur over the course of five years… work that was simply given away for free as a Windows game, and later ported to a handful of popular platforms by fans.

I started Cave Story a few times over the years, but the lackluster Linux port kept putting me off of it; I knew I should wait for a good port to be available for a platform I use. The WiiWare version was released a few months back, and the rest is history. After years of anticipation, I swilled this one down in a decidedly non-fine-wine manner.

Whoops.

Whether games or other media, what do you consider to be your fine wine?

https://writegeek.com/wp-content/uploads/2010/06/prints_money.gifpr
  1. Initially, the idea I had was that a game of this sort (it was Zack & Wiki that brought this to mind) would be enjoyable to play quite literally with a glass of wine, as this is the sort of game that would be best enjoyed at a relaxing pace, in a chill atmosphere. But last weekend, I instead started thinking of these games metaphorically; the game itself is the wine. I liked that thought, and knew I had to write this post.[]

How Windows ate my EXIF data (and how I mostly fixed it)

The background

As we’ve already established, I love to take photos, and I have a strong bias toward digital. While I received my first digital camera (the aforementioned Game Boy Camera) on my birthday in 2000, it wasn’t until the following summer that I got my first “real” digicam, a Nikon Coolpix 775.

From there, the flood of digital photos began. Initially, I just dumped every photo into a single folder on my shiny, new, gonna-help-me-do-well-in-college-this-fall laptop, and let their sequential filenames (DSCN0001.JPG, 0002, etc.) do the “sorting.”

This worked for a while, until it became clear that having all of my photos in one folder was poor for both organization and performance, so I started organizing my photos using dated subfolders (e.g. photos/2001/2001-08-12/). This was all the organization I did for my photos, and was also how  I viewed them, up until I began using photo managing software (first Picasa on Windows, later F-Spot under Ubuntu).

The problem

While these apps excel at taking photos and turning them into a well-organized stream based on date taken, I noticed that a small handful of photos were out-of-place in the timeline.1

After spending some time puzzled by this, it occurred to me that:

  1. none of these photos had EXIF data
  2. all of these were taken in 2001
  3. all of these had been taken in “portrait” mode (when you turn the camera sideways), as opposed to “landscape”

In an example of clearly misguided, youthful indiscretion, I had manually rotated these photos—remember, cameras didn’t have orientation sensors back then—using Windows Picture & Fax Viewer (Windows ME/XP’s default), and it ate my photos’ EXIF data! From then on, I started using the camera’s built-in rotate functionality.

But, ugh, I still had a bunch of old, messed up photos. Fortunately, I wasn’t totally in the dark about these photos’ chronology, as I knew the correct dates that these photos were taken, thanks to the surrounding sequential photos still having their EXIF data.

The solution

For the last few years, I let these few photos just be, annoyed that they would always show up in the wrong places. So today, I finally did something about this: I gave them new EXIF data using the best information I had at my disposal.

While I didn’t know the precise time taken, I did have dates for these photos, so I figured giving them EXIF with the right date and wrong time was better than no date at all. I accomplished this using a pair of Linux programs: jhead and touch. Here’s how:

First, I created an EXIF tag for a given photo using jhead:

$ jhead -mkexif DSCN1282.JPG

Then, I touched the file (in Unix-y parlance, change the file’s “modified” timestamp) to midnight (00:00:00) on the appropriate date (e.g. August 12, 2001):

$ touch -t 200108120000.00 DSCN1228.JPG

Finally, I used jhead to change the file’s EXIF timestamp to the newly-fixed modified date:

$ jhead -dsft DSCN1282.JPG

Having re-added the problem images to my F-Spot library, the photos now appear more-or-less in the place they should. They’re now good enough that I’ll never again have to see those photos mixed in with the wrong year!

  1. I know what you’re thinking: that there were times when I forgot to set the date on my camera. Nope. No way. I never forget to set the date on my camera, because making sure my photos have the correct date and time is something that I’m a bit obsessive about, and the first thing I do after charging my camera’s battery is always check the date.[]

Warmth, fuzz at 60 MPH

Last Friday evening I was alone, driving south on one of South Florida’s fine expressways, when I had the strangest moment of, for lack of a better term, empathy.

(This is notable because the word with which I would expect myself to have ended that sentence is “contempt.”)

The driver in front of me, piloting a Mitsubishi that was either silver or gold (difficult to tell which in the half-light of the expressway’s overheard streetlights), wasn’t driving at a pace that was to my liking, so I decided I would pass them. I engaged my turn signal and began merging over to the next lane. They must have sensed, from the amount of time I had spent behind them, that they were not driving at a pace that was to my liking, so at the exact moment I started moving over, they too started moving over in the same direction I was. (Of course, they did so without signaling,1 which is the South Florida Standard.) Just as simultaneously as we began them, we aborted our lane changes, as we each noticed the other’s attempt.

It was at this moment that I felt a warm, fuzzy feeling, the likes of which I almost never experience while driving down here. In that moment, I became quite aware that there was a person driving that Mitsubishi. It’s easy to forget that the other cars on the road are driven by people, especially at night when it’s not so easy to see them through their windows. But in that driver’s moment of obvious self-correction, it could not be clearer.

Also, I will not let it go unsaid: the events that unfolded made it clear that the person in front of me actually looked in their mirror before attempting to change lanes! Their careful consideration only makes me aware that they were at least a bit like me.

Around here, that’s saying something.

  1. That’s fine, really. Had they signaled and done the other noted things, I would not be writing this post, because I would have died that night, from some sort of shock.[]

It’s fear, mostly.

Inc. Magazine: Why Is Business Writing So Awful?

When you write like everyone else and sound like everyone else and act like everyone else, you’re saying, “Our products are like everyone else’s, too.” Or think of it this way: Would you go to a dinner party and just repeat what the person to the right of you is saying all night long? Would that be interesting to anybody? So why are so many businesses saying the same things at the biggest party on the planet — the marketplace?

Fear, mostly.

(via Ryan)