Cleaning up Quicksilver


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.

Handling color in the object pane is now possible

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.

Uninstalled Plugins can now be listed

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.

Quicksilver triggers preference pane has been fixed

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.

Fixed a crash with the Quicksilver customize pane

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.


Back to Top ↑

56 Comments so far

Leave a comment

Pages: « 1 [2] Show All

  1. 27

    Ian-
    That made a big difference. Thanks. However, what I meant by help was what can I do on the project at hand. :) I’m learning my way around Xcode, so I guess I should start w/ just trying to getting the source to build on my setup.

  2. 28

    thank you for doing this!

  3. 29

    Hey Ankur, thanks for your effort. I would like to think I would put the time in if I had the skills, but it’s people like yourself who are responsible for getting things done!

    Keep up the good work!

  4. 30

    I’d like to help you as well. Have you access to a SVN repo we can collaborate through?

    By the way, I’m using Leopard, so I can confirm it works there too.

  5. 31

    Thank you. I don’t know a lick about programming, but I’m addicted/tied/in love with quicksilver. Thanks for giving it a chance to survive.

  6. 32

    Nice to know that someone steps up to try and understand all the code.
    I agree with the fact that programmers that work alone and get a lot of request are more likely to do a ‘quick hack’ and forget to structure it properly or think the’ll do it next time .. etc..etc..

  7. 33

    Thanks for your hard work. Waiting for the next release..

  8. 34

    Hey Ankur, thanks for your hard work and your potential picking it up… if you ever happen to release your changes to quicksilver out in the wild, i think there will be a lot of people happily trying to test it out. Also, as many others, i’d gladly donate some $ to help reanimate the development as community project. I’d might even be able to donate some of my spare time helping out, though my Objective-C programming skills are not that good right now.

  9. 35

    nice one guys, be a real shame to see quicksilver disappear, its a great little app i rely on everyday. hurrah, hurrah! keep up the good work. :)

  10. 36

    Ankur are you committing back to the google project or have you basically forked? Where will your code be available?

  11. 37

    I’ll be committing the changes into the B5X branch of the Google Code repo very soon.

  12. 38

    Great to hear that Ankur! :)

  13. 39

    How come Apple does not pick up the ball? QS is filling out a definite OS deficiency and should be integrated with Spotlight somehow (rather the opposite). Keep up the good work. This has been an OS caveat since the days of the Launcher…Remember the rocket icon?

  14. 40

    An inspiring post! Please put your results up as soon as possible. Those bugs drive me crazy. Thank you.

  15. 41

    I can’t wait for these to get fixed - the iTunes triggers bug is my problem and cannot seem to find a fix anywhere.

  16. 42

    Thank you, thank you for keeping the development of Quicksilver going. I would pay $$ for it–I love it that much. You just made one nerd’s day!

  17. 43

    Big props for undertaking this work! It would be incredibly to see a community coalesce around the QS code… and it’s efforts like yours that will set the bar for participation.

  18. 44

    thank you!! if QS dies it would be like losing a limb!

  19. 45

    Thanks a bunch for doing this. I love Quicksilver, and I couldn’t live without it!

  20. 46

    I’m only commenting to echo what’s already been written. I love QS and am happy to see that it may yet survive. I would gladly contribute to the programming side if I were capable, but since that’s not the case….. another person willing to donate to see a great app continue on. Does anyone know of any other efforts or groups working on QS code?

  21. 47

    Best…Utility…Ever.

    I would support any donation, subscription, merchandise, shareware or other initiative to ensure that QS never fades away.

    My Mac is not a Mac without it.

  22. 48

    I am a huge fan of QS and would hate to see it die. Thank you for picking up the torch!

  23. 49

    let me add my voice to those willing to pay well (up to $100) to have quicksilver continue its progress and even possibly become more stable and documented.

  24. 50

    Ankur, you are the wind beneath my (OS’s) wings! Keep up the good work, and let us know how we can support you.

  25. 51

    First of all, excuse my english: I’m an italian QS user.
    When I knew Alcor dropped QS implementation for Leopard I was very sad: I appreciated and used QS a lot, but Leopard too. In the first Leopard release (10.5.0) QS did’t work (that is proxy object and menu item, or tagging, or getting file info). I bought Launchbar (following Alcor suggestion), but I’dont like it very much (it’s just a launcher, and file managing is not even comparable with QS). Yesterday I had some time and sadly tried relaunce my loved QS. Surprise: my uninstalled old version, on Leopard upgraded to 10.5.2, has regained some functionalities. Is it a dream? I can get finder selection (multiple files too) and act on that file in QS (move or copy them). I got menu item too! My version is 3815, and I never got a freeze.
    Then I serched the web and found this Ankur release, but I hesitate to upgrade my version because, althought not like in Tiger, it works fine: not obviously like in Tiger, but quite fine (better than Launchbar). I use Entourage 2004 plug in too (and on my mac I have Office 2008).
    I ask you what follow:
    which functionalities (or plug in) do I re-gain installing it? I mean: do I find in this new (and more tidy) release all the old plug-ins?
    @Ankur: I payed for Launchbar and I’m ready to support your hard work. I begin with a first donation via Paypal (also if I’m not still using your release).

  26. 52

    which functionalities (or plug in) do I re-gain installing it? I mean: do I find in this new (and more tidy) release all the old plug-ins?

    There is very little new functionality in the B5X releases; mostly improved performance. If you need to use file tagging and other plugins, you should probably wait a little bit until the remaining bugs are fixed in this version, or until the new Leopard-only version Quicksilver is released, whichever comes first.

Pages: « 1 [2] Show All

RSS feed for comments on this post. TrackBack URI

Leave a comment

Comments may be edited for formatting.