Tuesday, September 26, 2006

Wild Banshee

I caught a nice bug tonight in Banshee. Every time you switch between sources (Library, playlists, devices, etc) in Banshee, it reloads the ListStore model three times. Reloading is a linear-time operation, so the results below will scale according to how many songs you have. Here are the seconds it takes to execute everything that's triggered when the ActiveSourceChanged event is raised. I switched fairly quickly between my Library (with 2015 songs) and a Smart Playlist (with 409 songs) before and after my patch:
Before  After
1.08  0.04
0.94  0.06
3.96  0.04
0.87  0.06
0.96  0.05
4.23  0.05
8.14  0.05
1.12  0.06
1.01  0.08
4.79  0.06
10.08  0.05
17.75  0.05
Ouch! I was probably trying to switch faster than Banshee could keep up with toward the end, hence the drastically increasing times. But even in the more typical case, it goes from about 1 second to 1/20 of a second. Fix committed! I've been looking into automated testing for F-Spot and Banshee (using Dogtail and Gendarme) for a while. It would be great to track performance regressions and improvements over time, as well as test importing, exporting, code compliance, and more. Looking forward to seeing and meeting people at the Summit in less than two weeks!

Saturday, September 9, 2006

Atlantis

STS-115 launched this morning with Mission Specialist Joe Tanner. Joe was kind enough to take me flying in a Boeing Stearman open-cockpit biplane, cruising the Gulf from 500 ft and pulling a few aerobatics, when I was in Houston working for NASA/USA. I'll never forget that flight. Best of luck for another successful mission, Joe!

Thursday, September 7, 2006

Tag Searching in F-Spot

Back in mid-August I resuscitated the F-Spot query branch, fixed some things, and added some new features. In particular, I added a type-to-find bar where you can enter arbitrary and/or boolean queries (using parenthesis as needed). The not operator is not supported yet, but shouldn't be hard.
I also created an animated GIF of the type-to-find bar in action. More recently I changed the menu options - in the context menus and the Find menu. They are now more functional yet simpler.
Larry says he wants to get this in soon. You can follow along at home by CC'ing yourself to the infamous bug.

Wednesday, September 6, 2006

Smart Playlists in Banshee Core

Aaron has moved the Smart Playlist plugin from Banshee SVN into Banshee itself. Two nights ago I added some pre-defined smart playlists: