Given the Quicksilver source code is now out in the open, I’m trying to learn from it while at the same time cleaning it up. Here’s what I’ve done so far.
Bug fixes
A lot of features were buried in the source, available only by setting some preferences to allow them. Mostly it was due to buggy implementation or pending improvements. I managed to resurrect a few of these nifty ones and fix a few old bugs that have annoyed me for ages.
Color handling
Color handling was commented out in the Quicksilver source; probably because it resulted in errors. A simple change in the source allowed correct handling of color values, and the code for drawing the icon was already there. I added functionality to allow dropping colors from the Quicksilver object pane into color wells and the like - which is what makes this useful.

Uninstalled plugins
Added a plugin set to the plugins preference pane to list plugins that you haven’t yet installed or downloaded. Not sure why this was commented out; I didn’t have to add any new code here.

Triggers
There was a very annoying bug in the triggers preference pane that haunted me from the day I started using Quicksilver. Switching to the iTunes trigger set resulted in errors, and often froze or messed up Quicksilver. Finally, it’s fixed, and we can see and use these triggers.

Speaking of plugins; I think I heard mention of a “plugin check bug” fixed somewhere, but it wasn’t working for me so I’ve also fixed the issue where the plugin list would be blank until you hit refresh.
Miscellaneous bug fixes
Other things like crashing when you try to relaunch with the “Customize” preference pane open, and with the source, hundreds of warnings when trying to compile, errors in the shell scripts when working in a path with non-alphanumeric characters, etc. have also been fixed.

Tidy up
[I wonder] how long it’ll take people to notice the Frankensteinian nature of the source and respond - appropriately - with pitchforks. Alcor
I’ll have to agree with Alcor - to say the source is a mess would be an understatement. There are hundreds of compiler warnings, unused or unimplemented features, classes, objects, code, structures, nibs, etc. Hundreds. I’ve tried to remove as much of the redundant or test code as possible and I’ve yet to reach the end. Mind you, I’ve been doing this for hours a day for the past week. The formatting and indentation is almost as bad. I’m cleaning that up too, with some good old regular expressions and elbow grease. As I go, I’m also trying to improve the logic where I see potential for improvement. Already the application is feeling more responsive but I want to also reduce the memory footprint.
Why go to all this trouble? Mainly, to
- Make the source more readable; make it easier for people to understand what’s going on.
- Improve the performance of the application in both speed and memory usage.
- Fix existing bugs and add new features.
In the meantime, I’ll continue my clean up of the Quicksilver source and when it’s lookin’ fine perhaps post it up (the QS license doesn’t really say much about the source, so I might have to ask Alcor first. Perhaps he’d like to add it to the subversion repository after reviewing?).
Lastly, let me just say, I’ve learnt a lot from looking at the source code to Quicksilver. There are some very neat tricks in there, and great little snippets that could be very useful elsewhere. So thank you Mr. Jitkoff; thank you for writing the application, and thank you for the releasing the source code. It is highly appreciated.
67 Comments so far
Leave a commentPages: [1] 2 3 » Show All
Are you going to be pushing your changes back into the Google Code repo? I think a lot of people would be interested in performance and stability improvements to QS (although I’ve personally had few problems, I don’t tend to use a lot of the advanced functionality).
professed by Tony on December 7, 2007 6:53 pm | Permalink
I’m so pleased someone (you) has started to clean things up & start getting rid of the bugs!
Can’t wait for the release.
It’d be great if others could all work on the same version (unless you have enough free time) to get a single version of Quicksilver running smooth & bug free
stated by Jono on December 7, 2007 8:02 pm | Permalink
Very exciting, can’t wait for the release!
professed by Martin on December 7, 2007 8:17 pm | Permalink
Ankur,
Thans for your valuable work. I’m very atonished to know that the code of Quicksilver is a “mess”. I thought it was developped by a kind of genious. However, more I know great programmers, more I realize that great programmers are not always very structured.
I could suggest to launch a slim but stable version of Quicksilver, for most of basic uses.
Anyway, thank you.
reported by Radii on December 7, 2007 9:25 pm | Permalink
At least you picked a small project to start with.
written by Rick on December 7, 2007 9:55 pm | Permalink
This is great news.
expressed by Rolf on December 8, 2007 12:09 am | Permalink
According to the Google Code Pages it’s an Apache License, I don’t know the exact terms, but it probably allows you to distribute it freely…
After quite a lot of hacking, I’ve finally compiled it as well, and it runs! But I have some problems with the interfaces, the combo-box in your last screenshot is empty in my build, and I can’t activate the command window. I tried installing several plugins, the included Cube interface, the Menu interface and Fumo, but it stays empty. Did you have this problem too?
disclosed by sphynx on December 8, 2007 12:18 am | Permalink
Pages: [1] 2 3 » Show All
Leave a comment