Adium Support is Broken

Posted December 24, 2008 by vgable
Categories: Announcement, Bug Bite, Bugs, Debugging

Regretfully, integration with Adium isn’t working right now.

I apologize for releasing without adequate testing.

I did not change any of the Adium-related code from version 2.9 and I foolishly assumed it all still worked because nobody had complained. But in the 13 months since I had last tested my Adium plugin, Adium was updated in a way that broke it. I had gotten out of the habit of using Adium (I prefer iChat’s simplicity and video capabilities) and so I missed this issue completely.

Unfortunately, it looks like getting the status message from Adium with AppleScript is broken, so I don’t yet have a fix out.

I can get the status type (eg away, available), but without a way to get/set the status message there’s not much useful I can do.

I am working on updating my Adium plugin so I can ask it for all details of the the current status. I expect a fix shortly, holidays permitting.

Leopard Only

Posted December 22, 2008 by vgable
Categories: Announcement, Leopard, Objective-C, Programming

I owe you an explanation of why version 0.30+ of IMLocation now requires Mac OS X 10.5 Leopard. Originally IMLocation ran on both Leopard and Mac OS X 10.4 Tiger, so why the change?

As I write this, the Omni Group’s data shows 54.7% of people still using Tiger. The number is decreasing, but it’s still a majority. Alienating a majority of potential users is not something I do lightly.

Practical Reasons


At the highest level, IMLocation does stuff so you don’t have to. It all started as a small project in college to get my computer to update my iChat status when I changed classes. That means IMLocation is fundamentally an automation tool.

In Tiger, Apple introduced, “Automator, your own personal robotic assistant that will take care of whatever task you give it.” But, partly out of shortsightedness, and partly because there wasn’t (yet) support for editing Automator “workflows” graphically, I rolled my own “ActionsEditor“.

Then Leopard introduced powerful new widgets that let third-party applications construct Automator workflows in the same way does.

It just didn’t’ make sense anymore for me to maintain my own Automator knock-off, when I could use the real thing. And, the real thing requires Mac OS X 10.5.

Another benefit of using Automator, now people can use special actions that IMLocation can do (e.g. disabling built-in speakers) in their own workflows.

Support and Quality Assurance

Writing code that runs on two operating systems obviously means more work, and that’s a reason for dropping Tiger support. But a bigger problem I had was quality assurance.

Since I don’t have dedicated testers, I have a lot of trouble doing enough testing of things I don’t use day-to-day. It’s not something I’m satisfied with, but it’s something I have to accept, given my resources.

I only have one computer and it runs Leopard. I don’t think I can do the necessary quality assurance to be confidant that things work on Tiger, because I don’t spend enough time in it.

Only needing to test one operating system means, I can ship with fewer bugs.

New and Improved

Leopard also introduced several technologies, like Objective-C 2.0, that are a big help to programmers, but can only run on 10.5. My hope is that by using them, I can deliver a more useful and stable product faster.

Personal Reasons

Now, here, you see, it takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!

The Red Queen

Technology has a shelf-life, and a learning curve. To stay on top of things I need to move.

Time to Learn

A new programming technology is usually bundled with a whole new way to do software engineering. For example, you need to know what Object Oriented Programming is to get the most out of C++, and even if you grok C++, you have to understand what “message passing” implies to get the most out of Objective-C. Just writing code the same way you always did in a new language won’t cut it, you need to experiment, and try new things. But that takes time.

Writing code that only runs on Leopard gives me the time to actually practice programming with newer technology. There’s no substitute for writing code.

Garbage Collection

It took me a long time to finally understand memory management in Objective-C; it was one of the biggest stumbling blocks to writing good Objective-C code. And then Leopard introduced garbage collection (GC), which is a whole new way of (not) doing memory management.

GC promises to make writing code much easier. But in my experience, when you have an issue with memory in a GC-ed system, it’s much more … esoteric … to understand and fix. It’s a poster-child for “there’s no substitute for experience”.

the iElephant in the Room

To write code for the iPhone, you really should understand Objective-C 2.0 — the iPhone’s frameworks use it heavily.

Transitions IMLocation to Objective-C 2.0 is much better practice for iPhone programming then writing Objective-C 1.0 code that is compatible with Tiger.

Version 0.31

Posted December 16, 2008 by vgable
Categories: Announcement


Version 0.31 (beta) is out! Download the latest version here.

This update fixes a bug that kept IMLocation from asking for the name of a location it did not know.

It also fixes an embarrassing spelling error in an “are you sure?” dialog, which to be honest is something of an embarrassment itself since the best solution is to make the operation undoable so that useless dialog wouldn’t be necessary. But unfortunately I have higher priority usability enhancements to make first, like insuring that basic functionality is rock solid.

As always, updating is very strongly encouraged during the beta period. I try hard to make the latest build work, but I do not support old beta versions. I will probably be pushing updates very regularly in the near future because, things aren’t as stable as they should be yet.



Version 0.30

Posted December 16, 2008 by vgable
Categories: Leopard

After more then a year, Version 0.30 (beta) is out! Download the latest version here.

There are many “under the hood” changes, but the most obvious changes are adding Automator support, which means Mac OS X 10.5 “Leopard” is required.

Additionally, the options for what to do when an application is being used have been simplified. It turns out it was never useful to automatically unmute sound when the DVD Player is in use.

As always, updating is very strongly encouraged during the beta period. I try hard to make the latest build work, but I do not support old beta versions.



The End Times

Posted February 3, 2008 by Vincent Gable
Categories: Uncategorized

I haven’t written anything in almost a month. I haven’t even written a line of code in several weeks. I’ve been too busy moving from sunny Austin, Texas, to the snowy midwest, to start my first full-time job.

The magnitude of the move caught me by surprise. I’ve moved off to college, and across the country for summer internships before, but a permanent relocation is a different beast.

I would like to get back to working on IMLocation soon, but all signs point to more delays. I won’t know how much time my job takes up until Monday. And judging by how much more involved the move was then I had expected, I’ll probably have less free-time then I expect, at least for a while.

Also, I’ve been considering starting a less project-specific blog, which would probably steal at least 80% of the posts I make here.

We’ll just see what happens.

Wireless Network Names Don’t Tell You Much

Posted January 9, 2008 by Vincent Gable
Categories: Research

This article has been updated and moved here.

Messages to Nowhere

Posted January 3, 2008 by Vincent Gable
Categories: Bug Bite, Bugs, Debugging, Design, MacOSX, Objective-C, Programming, Tips

This article has been updated, and moved here