Slogger

Memories.Slogger

Every once in a while I run across something I’ve seen before but ignored accidentally until I see it in great big headlines and neon and stop to pay attention to it and discover that it does something I really really want. This particular afternoon it was the product Slogger from Brett Terpstra. The software is a Ruby script, and Ruby is a delightful programming language that I’ve had the pleasure of dabbling in. Nowhere near the level of Brett and the people who help him, but here and there, little things.

The need came from a simple Google query, IFTTT and Day One. Looking for some way to bridge that divide between the automatic web service that I’ve fallen in love with, IFTTT and Day One, the journaling software that works quite well and renders DropBox a “Killer App”. Dropbox is the glue that keeps my Day One system together, on my laptop, my desktop, and all my mobile devices. When I found Slogger it was a definite Eureka moment, the answer all in one place. I downloaded the code as the author describes and tried to set it up.

Monumental fail. Pieces everywhere, error codes puking on the screen faster than I could read, pages and pages of interpreter and compiler errors, all surrounding one “Ruby Gem” module called hpricot. I knew why this was fail-town for me, it was because I had installed XCode CLI tools in order to get the mac_google_authenticator PAM module built. That CLI package rendered my system retarded when it came to processing gem requests. In the Ruby world there is a system established for distributing software written in Ruby, it’s called ‘gem’ and you run it much like apt-get in Ubuntu, it’s really quite straightforward and never has given me fits – until. Everything was complicated by the fact that I couldn’t really find where XCode was on my machine, all the likely targets to search didn’t have anything relevant and my find command returned pages of errors and I didn’t have the patience to pick through a thousand lines of “Permission Denied” to find the one spot where the file was hidden.

Didn’t need to complain, as I knew the solution. Download XCode for real. So off to Apple, download the monster and install it. That satisfied hpricot, and everything else installed quite nicely. I set Slogger up, pointed it at my Dropbox and configured the plugins that I wanted. The initial run crashed and burned but I figured out why, it was an errant space in the line that points to the Day One folder, a symbolic link fixed that and I was again off to the races. Of all the plugins that I configured these were successful:

  1. BlogLogger
  2. facebookifttt
  3. goodreadslogger
  4. lastfmlogger
  5. pocketlogger
  6. rsslogger

Then there were the plugins I tried to configure but couldn’t:

  1. fitbit
  2. flickrlogger
  3. getgluelogger

The primary problem with the fitbit plugin was that fitgem, the Ruby assistant program that you have to install is a phantom. You install it, it’s successful, and then it’s gone. No trace of it exists. You try again, poof, nowhere. Plus for the plugin setup there are API codes, User codes, and oAuth codes. I get the reasoning behind all of them and getting most of them was not an issue. I felt a little awkward creating an “Application” for just myself, it seems kind of a waste of effort to ferret all these bits and peices into a semiformal request procedure, but doing it wasn’t hard or cost anything, so what the hell. The part where it all falls apart for fitbit is where you have to get the oAuth token, since fitgem never worked and it’s invocation from slogger should have opened a web browser and asked for my approval, all of that never happened. I tried to be sporting and do the heavy lifting myself but all I did was irritate the API for fitbit and I figured, what the hell, I got most of what I was after and moved the fitbit plugin into the “unused” folder and forgot all about it. Abandon ship, y’arrrr!

Flickr is a pain in the ass. It’s Yahoo and as such, it’s kind of an Internet leper. You need your Flickr number, there’s a site that makes that easy, except it doesn’t work. Flickr username? Feh, either the one in Flickr or your linked Yahoo ID is meaningless. I half figured it was in the URL anyways, but then I thought about it and I don’t really use Flickr all that much beyond a solitary IFTTT rule and that’s precarious as it is. The only attractive part of Flickr is they gave out 1TB of storage. Still lepers tho. So, abandon ship! Y’arrrrr!

GetGlue was the last great effort. Much like Klout, it’s a site that makes sense sort of, but the name is utterly silly. GetGlue. What the hell? Why? Glue has nothing to do with TV or Movies. The only connection I could think of was celluloid and horses-processed-into-glue sort of connection. They give away stickers, what a wonderful bit of pollution that is, and as a gimmick seems dumb. The plugin needs an RSS feed for the GetGlue Activity Stream. It appears as though the GetGlue folks have moved away from RSS and towards “widgets” which seems stupid as in this application RSS is the answer and widgets are worthless. Alas, Google searching for the RSS feed method was fruitless. I was half hoping for something like http://getglue.com/user/bluedepth/feed.rss, where I could just craft it up and be on my merry way. No. You have to “View Source” to find it, which is stupid because that is so full of CSS flotsam and jetsam as to be utterly incomprehensible. Again, my ardor for that particular service was fog on a hot day. I don’t need it. I don’t use it. Whatever! Abandon ship! y’arrrrr!

So I tried the slogger script, it failed, tore out fitbit goop and then it worked. Then I went into my Day One app and mopped up all the mess that testing had made. The only oddity I noticed was the BlogLogger completely missed out on the text on my WordPress site that was between pre tags. Meh. Not really a reason to kick the entire thing to the curb, just something to honestly stop using. HTML is a right bastard, almost all of the time. CSS is a filthy abomination, but we won’t go there.

I would say that tonight everything will work as it should for Slogger, but I have to race to work tonight to turn everything off because work is going to exit-stage-left when it comes to the Internet. They are turning the entire thing off, at least for a few hours. I can’t wait for tomorrow, there will be lulz.

So, to Mr. Terpstra, thank you for slogger. I’m sorry the plugins didn’t work, that fitgem was a phantom, but at least most of what I wanted worked. So we sound a victory cheer, sort of. Yaaay!

Help Yourself

I have to admit to really enjoying the web service IFTTT. The service stands for If This, Then That. It allows you to create recipes from a menu of popular services where there is a public API available and move data back and forth not according to anyones design but your own, with IFTTT’s help, of course.

A great practical example is Twitter. On Twitter there is an account, MichiganDOT that is the public twitter mouthpiece for Michigan’s Department of Transportation, those folks responsible for the roads and rails and such. This twitter resource is valuable for many reasons the least of which is that MichiganDOT tweets about road hazard conditions and the presence of crashes or construction that would otherwise hamper movement within the Mitten. On its own Twitter is something that you have to grope for, you’ve got to start an app and page around to find what you are after and it’s all very manual — and annoying. I hate annoying. So how can you beat MichiganDOT, for example, into a service that sends you alerts? IFTTT.

The recipe in IFTTT to make this work is clever if you know the way to run around the back-end of Twitter. Several months ago Twitter closed their API to IFTTT making it difficult to create any new IFTTT recipes that use Twitter data to do automatic things. Twitter left a back door open, in that every Twitter account has an undocumented RSS feed associated with it, and all you need to know is the trick to get at it. IFTTT can consume RSS data, Twitter produces RSS data, so it’s kismet. The code you start with is this:

http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=michigandot

This plugs into IFTTT’s Feed source, then you connect that to IFTTT’s SMS destination, set it to your mobile phone number and the recipe is done! Just like that. Really easy and straightforward and now the very moment that anyone who staffs the MichiganDOT twitter account posts ANYTHING the RSS link lights up, IFTTT notices, copies it over to an SMS message and ships it out to my phone.

With the undocumented API backdoor from Twitter, MichiganDOT, and IFTTT I am able to recast the MichiganDOT twitter account as a “Michigan Road Conditions Alert Line” and I don’t need to sign up for anything or ask anyone for anything or cajole some developer to make something to make it work for me. In many ways, it is a clever way to have my cake and eat it too. I don’t have to schlep around in Twitter missing things, I get alerts, bam, as they happen.

The nice thing about IFTTT is it’s just the tip of the iceberg. You can send any channel data anywhere you want. Twitter to Evernote, Twitter to Pocket, Facebook to Evernote, Facebook to Pocket… there are about 20 channels you can fiddle around with and you can shop around for other people’s recipes and adopt them and make them work for you. If you don’t have IFTTT, then you are missing out on a huge potential of DIY convenience. The best part is, nobody is the wiser. MichiganDOT has no notion, Twitter doesn’t care, so why not use what’s out there and make it work for you?