By redfive
Feb 29, 2008 11:35 am
I spent the better part of the last 2 weeks tracking down a deadlock in our
Database Engine. It’s a little disheartening spending so long on a problem and then having the fix be a simple ‘move this line of code 4 lines higher’ kind of thing. But on the good side I learned a LOT about how our dbengine code works and refreshed my memory on locks and monitors.
For more details follow on to my full post…
By redfive
Feb 21, 2008 2:42 pm
One of the uses of the WebpageAPI that wasn’t part of our initial thinking was being able to provide webpage hosted library navigation. But shortly after we got some pieces of the API working it became clear that was going to be a really interesting application. It is easy to get locked in the mindset of a 4 pane library view with the 3 top panes being filtering on the one big list of media at the bottom. To be sure that is an efficient way to find the tracks you want to play, but there can certainly be other, more engaging representations.
A few months ago Keisuke came up with one. He demo’d a tag cloud web page that displayed the users library in a tag cloud. I loved it but it required some php setup on a server so I sat down and re-wrote it to only use JavaScript.

You can load this url in your Songbird and bookmark it to use it as a way to view your library.
It does a little caching right now and isn’t smart about dynamically pulling in new tracks if they get added while you have the page showing. I plan on adding some smarts to the caching and will probably wind up filing a few bugs from this experience (and then fixing them!).
The next thing I have in mind is a dynamic html menu based version this. Basically working like filters: genre->artist->album->click loads a playlist.
By redfive
Mar 28, 2007 12:50 pm
This is a post to provide some deeper context for a post to Mozilla’s XUL newsgroup (mozilla.dev.tech.xul) about a proposal to overlay XBL bindings.
In Songbird, our skinning goal is to enable the underlying media player functionality (exposed through XPCOM) to be expressed by any manner of freeform layouts specified as XUL files. Eventually we hope to achieve near UI-feature-parity with media players like Winamp and Foobar. Instead of Firefox’s single main xul file, we hope to encourage people to create lots of different xul files to describe lots of different ways to generate a media player interface (we already have two, ourselves).
Therefore, we have a very different set of requirements for overlays. These are driven by the need to allow extensions to work with multiple different XUL files in an environment where one cannot ever know beforehand the full complement of ID attributes likely to be instantiated into the DOM at any time.
To meet that need we are making slightly larger-than-normal XBL bindings that aggregate content to provide larger widgets that skin writers can use to create entirely new XUL windows. This allows us to maintain a well-know set of IDs that are available for extension developers to overlay and still use the encapsulation benefits of XBL. In this way, no matter what the page loading the objects may look like or what IDs the page author may choose, an extension developer should always be able to inject functionality into the application.
By redfive
Feb 9, 2007 11:58 pm
Yay! The build farm is up and running and will be spitting out builds every night around 4am. I still have some tweaks to make and we still need to get the master buildbot hosted on our webserver but at least we now have builds for everyone generated autoMagically!! Phew.
You can find links to tonight’s nightlies over here on our nightlies page. The links are to the branch builds which are stable, the “older” builds link to trunk nightlies which are a bit scary right now.
One other thing, DRM playback is disabled until we can get it into the first run bundle.
By redfive
Feb 6, 2007 10:28 pm
As part of the build farm automation step, and just for some general house cleaning, I have moved the dependencies directories for each platform to a new format: PLATFORM-ARCH. It’s a pretty standard format and we started it with the linux 64bit stuff, we just never got around to doing it for the rest.
The fallout is that if you have a source tree, the next time you update dependencies you will re-checkout the code. Silly svn only does a remove then an add, I couldn’t find a way to make it less painful ( if anyone knows one email me please!!! ).
As an update, I have all but the intel mac building and pushing a page through buildbot. It’s still internal but only because that was faster than trying to figure out the configuration needed on the web server. The plan is definitely to get the waterfall page on an outward facing page (and off of my dev machine). The nightlies are SO close now I can taste them (or is that the Sierra Nevada?), just a couple more days.