Download Link Fixed

Posted March 13, 2009 by vgable
Categories: Announcement, Bug Bite

Downloading IMLocation hasn’t been working for several weeks(!!).

I have been using a semi-automated process to package IMLocation up on a .dmg and release it. The scripts had been working unchanged for about a year, but after I made some changes to the IMLocation Xcode project, they didn’t work correctly anymore. Everything appeared to build, but the .dmg on my website was corrupt.

I discovered the problem, because the number of downloads in my server logs did not match the bandwidth used.

This is entirely my fault for not doing an end to end test, to make sure that the final bits on my website were correct.

Lesson learned.

–Vincent

Version 0.37

Posted March 3, 2009 by vgable
Categories: Announcement

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

Changes in Version 0.37

* Removed the status tab. I just can’t see people updating their status through IMLocation, instead of an actual Twitter/AIM/whatever program.
* Added the Set Default Printer action.
* IMLocation should start up faster, because the way the location database is read has been simplified.

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. Please let me know if you find any bugs.

Enjoy!

–Vincent

Version 0.36

Posted January 20, 2009 by vgable
Categories: Announcement

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

Changes in Version 0.36

* Added the “Set iChat Status” action.
* Added the Set Screen Saver Security action.
* Fixed a bug in beta-logging. Diagnostic information can now be found at ~/Library/Application Support/IMLocation/BetaLogs/. This information is never sent anywhere, and logs more then a week old will be deleted.

* Fixed bundle-IDs of “com.yourcompany.” in some Automator actions that I had stupidly forgotten to change.

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. Please let me know if you find any bugs.

Enjoy!

–Vincent

Version 0.35

Posted January 12, 2009 by vgable
Categories: Announcement

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

Changes in Version 0.35

* Added a “Close Private Webpages in Safari” action that can automatically detect adult content using Latent Semantic Mapping.

* Fixed a bug that sometimes caused the default “Home” and “Work” locations that were added on first run to be erased on the second run.

* Added a few more application-specific default status messages.

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. Please let me know if you find any bugs.

Enjoy!

–Vincent

Version 0.34

Posted January 4, 2009 by vgable
Categories: Announcement

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

Changes in Version 0.34
* Built all projects so that Mac OS X 10.5 is required (oops! On the bright side, nobody called me on it, which makes me feel better about requiring Leopard).
* Double-clicking on a location-name to change it should be more responsive
* Fixed a bug which made it possible to give a location an illegal name.
* Miscellaneous bug fixes, spelling corrections.

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. Please let me know if you find any bugs.

Enjoy!

–Vincent

Version 0.33

Posted December 31, 2008 by vgable
Categories: Announcement

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

This update fixes a bug in the “Mute Internal Speakers” Automator action.

It also includes fixes from Version 0.32, which I had not officially announced, pending more feedback from testing.

Version 0.32 restored Adium integration, and included some minor UI tweaks.

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. Please let me know if you find any bugs.

Enjoy!

–Vincent

The Technical Story of the Adium Fixes in Version 0.32

Posted December 31, 2008 by vgable
Categories: Bug Bite, Bugs, Cocoa, Debugging, MacOSX, Objective-C, Programming

Here are the problems I had updating my Adium plugin for version 1.3 of Adium, in the order they were discovered.

First, Adium plugins now must declare a minimum version of Adium. If you don’t say “I require at least version x.x of Adium” then Adium assumes the plugin is too outdated to work and won’t load it. (Turns out that was the right assumption for my plugin!) You declare a minimum supported version by adding a value for AIMinimumAdiumVersionRequirement in your info.plist.

Second, AppleScript support for getting the current status message is broken. So I had to add a way for IMLocation to ask the plugin for the current status message. (It also means that I’m stuck requiring a plugin for any integration with Adium, which is a shame.) For what it’s worth, I prefer the new AppleScript interface for Adium (modulo the “not working right now” bit).

Third, the way plugins are written for Adium has changed. From a software-engineering perspective the changes are for the best, and will make a better Adium. But of course I’m complaining because I had to do more work :-).

Plugins used to inherit from AIPlugin, which had a field named adium that was analogous NSApp. Now plugins conform to the AIPlugin and AIPluginInfo protocols, and can inherit from anything. (Hint: #import <Adium/AISharedAdium.h> will give you the adium back, but now as a proper global.)

Fourth, the way I was updating the status message for Adium wasn’t working so well. And the more I looked into it, the more it looks like very little (if anything) was changed in Adium. It just had a different way of dealing with statuses that wasn’t working out all that well for me.

Solving this issue took me longer then solving all other problems combined. But in the end it was definitely worth it. I have better integration with Adium now. And I was able to get rid of some update-throtteling code of mine that prevented too many changes to the status being made too quickly (Adium is now smart enough to do that internally!).

Fifth, testing, testing, testing. All code that’s written must be tested. And because so many changes were made to Adium as well as my plugin’s code, I waited a few days before officially pushing my changes, to allow more time for bugs to be discovered.


Follow

Get every new post delivered to your Inbox.