Rdio Remorse


I’m still having a hard time getting used to services that I pay for asking me to pay more for them.

Maybe I’d be more sympathetic if I understood the difference between “downloading” and “streaming”.

Dungeon Siege III


Purchase Dungeon Siege III before release and receive single player versions of Dungeon Siege and Dungeon Siege II to play now!

A free game seems like much less of a deal when you know the best parts have been stripped away.

What the Bus? The COTA Bus Locator

Last night I hit a milestone on a project that I’ve been working on and decided it’d be a good time to push it out to the web. Its located at What the Bus? and it uses the Google Maps API to show where the COTA buses are located in Columbus, OH.

COTA already has a map that’s sorta like this, but its buried somewhere beneath the rest of their site and is a real pain to get to when you’re on your cell phone at a bus stop and want to see where your bus might be at. After a little digging I was able to find the XML files that store the route paths and vehicle GPS coordinates, so I thought I’d try to hack up a new interface for it. It was also a good excuse to play around with the Maps API and polish my Javascript skills.

At any rate, I was able to jam the following features in that I think are all an improvement on COTA’s implementation:

  • Optimized for viewing on mobile devices
  • Better visual indicators of bus location and direction
  • Automatically updates bus locations periodically
  • Less clutter on bus info display (when a bus icon is clicked)
  • Full-screen map
  • No stupid pop-up error about API key being out of date
  • Uses geolocation features to locate user and center map on area (apologies to anyone outside of the Columbus area, as that’ll be really annoying until I set up some kind of out-of-bounds limit on it)

Unfortunately, COTA doesn’t have a developer API or anything, so the project as a whole is a bit of a hack. I don’t follow the public transit scene, but I did find out that TriMet out in Portland, OR has a pretty nice API for this kinda thing. Maybe I’ll make a YQL table for COTA or create some functionality to have my project work as “stand-in” API. Not sure how many people other than myself would be interested in something so specific.

OAuth Where Art Thou?

If you’ve ever been working on a Twitter application and thought to yourself “I wonder what it’d be like if Twitter suspended my API key” then wonder no longer! It takes the form of an email that looks something like this:

This is a notice that your OAuth token for [application name] has been suspended from interacting with the Twitter API.

Please make sure that your application follows Twitter’s policies, including the Twitter rules, the API rules, and the automation rules.

To request for your token to be re-enabled, please write to api@twitter.com

To which you might reply with something like this:

Dear Twitter API Gatekeepers and Gurus,

I’ve received a message that states “your OAuth token for [application name] has been suspended from interacting with the Twitter API.”

Here’s a link to my app details: [http-blah-blah-blah]

I read over the included links to the Twitter rules and the API rules, and glanced over the automation rules (the application I’m working on doesn’t automate anything, so I assume there’s little of relevance there). Still, I’m unable to determine which of the rules my application violates.

I’ll hazard a guess. Is it because the Callback URL for my app points to a location that is not publicly accessible? This is because I prefer developing on a local machine before putting my codes on the web. I didn’t see anything in the Twitter/API rules the said this was unacceptable, but I was a little drunk when I was reading them so it could have been missed.

At any rate, if the Callback URL is the issue, please let me know and I can correct it. Otherwise, if I could get a specific reason why my application OAuth token was suspended it’d be very helpful.


I’ll update when I have some more details about what’s going on and why.

Not really an update @ 2010.02.20: I still haven’t heard back from Twitter. I suppose my next course of action will be to register another app and continue work using the new information. Might as well set up a valid URI for it just in case.

Kohana Auth and LDAP

I just put a new project up on GitHub that some people might find useful. Hopefully. I mean, that’s the point, right? It’s a module for Kohana that allows their Auth module to authenticate using LDAP. Oh, and it does a couple other neat LDAP-related things as well.

It’s not quite complete, so make sure you read the fine print. It seems to be working well for me so far, though.

Hooray for my first open-sourcey project publification.

Getting OBSE working with Steam Oblivion

Update: It looks like the OBSE team has officially added support for Steam in their latest beta release, so you may want to use that instead of the file linked below.

Gah, I totally had a huge rant going about how pissed I was over OBSE not working with the Steam version of Oblivion. I did a little double-checking just before publishing and, lo and behold, I found this forum post by jmccaskey for Valve:

Here is how you get OBSE working legitimately:

1) Make sure you have received the latest update, we just updated on Steam about 30 minutes ago to make our binary more compatible with OBSE. Restart Steam if you are unsure and you should get updated. If you’ve replaced your binary with some non-Steam version you’ll want to make sure it updates and you are on the new Steam shipped version.

2) Install OBSE into your steamappscommonoblivion directory as you normally would

2) Get [this file] and extract the obse_loader.exe over the top of the one from the standard OBSE install in your oblivion folder.

3) Run obse_loader.exe and everything should now work (you’ll get passed through the loader first, just hit play).

I’ve contacted the OBSE guys so we can hopefully get our revisions to obse_loader added into the official OBSE package. Until then if you would like the source for the changes for obse_loader to compile yourself email me at jmccaskey at valvesoftware.com.

So, you know, FUCK YES!

Hopefully this post saves someone some time and effort. And, as they say, now for something completely different– a post in that thread that I found particularly humorous:

[...] Cmom, if you are buying the game because of OBSE you are doing it wrong, it’s a hack made not by bethesda, and people are putting to much trust in it. [...] If you don’t like the vanilla game, what’s the point? If you have to mod the game in order to enjoy it, throw it away and buy a game you enjoy out of the box, or else you are just paying to get mad, and that is just stupid

Wizards Updates Gatherer (Finally)

I’m a little late in noticing, but it looks like Wizards has officially released the new version of Gatherer. I’m quite pleased with the enhancements they’ve made, even though it’s going to mean some extra work on a project of mine.

Somebody (-bodies, I imagine) really put in some love. The interface is much sleeker now and there’s a myriad of search options and featuers that weren’t there before. I thought about listing some of my favorite changes, but you might as well just check it out for yourself if your into that sorta thing.

Git Fail

Update: I’m completely in love with Git these days. The issue I complain about here still hasn’t been changed, but it’s not that big of a deal if you’re aware of it ahead of time.

I’ve heard of Git before, and even looked into it a bit, but it wasn’t until atom recently returned form SXSWi that we decided to try and use it for ourselves.  Apparently a bunch of respectable geeks there nearly cream themselves if you get them started on the subject.

I don’t know.  There’s a lot of sweet-sounding features, but ultimately I ran into a deal-breaker that put me back into the hands of SVN/SVK.

Can I add empty directories?

Currently the design of the git index (staging area) only permits files to be listed, and nobody competent enough to make the change to allow empty directories has cared enough about this situation to remedy it.

Directories are added automatically when adding files inside them. That is, directories never have to be added to the repository, and are not tracked on their own.

You can say “git add <dir>” and it will add files in there.

If you really need a directory to exist in checkouts you should create a file in it. .gitignore works well for this purpose; you can leave it empty, or fill in the names of files you expect to show up in the directory.

via GitWiki

This is one of those things where I feel maybe I’m being stupid.  Like there’s some l33t developer rule about not having empty directories in your application, and by mentioning something like this I’m exposing my inner noob self.  Regardless, I still think this is rather ridiculous.

Atom found a comment somewhere that describes a workaround for this.

Git automatically ignores empty directories. If you want to have a log/ directory, but want to ignore all the files in it, first add log/* in .gitignore, then add an empty .gitignore in the empty directory.

No.  No, thank you.

I’ll probably have to give it another try on a new project.  Most of my rage comes from the fact that we were moving an existing project over to Git, but it used empty directories.  It was very annoying and confusing for a minute there.

Chumby as a Service

Since I got my Chumby when they were first released I’ve been hearing about “Chumby as a service” from the Chumby Industries blog. I had an idea of what they meant by it, but the video they recently posted makes it clear, and it’s kinda cool.

One thing I really like is the device that allows you to see several of your widgets at one time and focus on the one you want to see more of. Although this functionality would be nearly impossible on the standard Chumby device, I often wish it was much easier and quicker to switch from one to another.

The thing I still don’t like, though, is the widgets  themselves. I’ve never felt that it made much sense to have a device that is as wide-open as the Chumby, then lock widget development into the realm of Flash. Because of this– and the fact that I have no desire to aquire or learn Flash– I’ve been unable to make my own widgets. This means I’m stuck using ones that have been designed and developed by other people, which I generally find to be lacking for one reason or another. Except for the Kane Approves! widget, which brings me nothing by joy.

I don’t really get why there’s not an embedded Webkit browser system in place. With a system like this, web developers could quickly and easily create new widgets using the HTML, CSS, and JavaScript they already know in addition to the server-side language of their choice.

Generally, I chalk this up to “I have enough stuff to do without messing around with Chumby widgets,” but that only partially works. I’m still left with a Chumby-widget-developer-sized hole in my heart.