Songbird has a few open positions for Mozilla developers. If you’re interested, or know of someone who is – please checkout the job description and apply for the job!

Growing more (beautiful) plumage…

Monday, Apr 20. 2009  –  Category: Linkage, Songbird

It’s been a while since we’ve featured some of the new and creative add-ons Songbird’s add-on developer community have been cranking out lately… in fact, I can’t recall if we’ve done this since post-1.0! Clearly a situation that needs to be rectified… and hence today’s post calling out some of the awesome Feathers that work in the latest 1.1.2 builds. For regular subscribers to the new add-ons RSS feed (which I highly recommend subscribing to in order to stay on top of all the new add-ons) these won’t be anything new… but for Songbird newcomers, hopefully this will turn you on to some cool new Feathers and inspire you to maybe create your own!

  • YABS continues to be the most popular Feather.. easily one of the nicest of the “dark” Feathers, it’s a complete package featuring mashTape, Pure Player, and LyricMaster skinning (check out the add-on page for a complete list of all the extensions atreiu made look good with this Feather). In addition to Pure Player, he’s got Medium & Mini Player layouts incorporated too!
  • Sparkle is right up there as the a long-running “dark” Feather favourite. Schwadegan just recently added LyricMaster support to this gorgeous whimsical Feather.
  • NABS is the “light” Feather counterpart to YABS. Feature-for-feature, it stacks right up there with YABS… some people just prefer something lighter. :)
  • Spotbird brings Spotify’s subtle and aerodynamic gray rubber look into Songbird. It looks particularly awesome when you have andreas.f’s accompanying Spotbird Artist Browser add-on media view installed with it.
  • Aerofirebird is for the Vista users out there who want a uniform look and feel for Songbird and Firefox. It utilises Firefox’s L&F and uses native Vista borders giving you the “glass” effects.
  • Pure Player is a different take on your regular Feather. It adds a new layout somewhere in between the Main Player and the Mini Player. Featuring ratings, album art, and hover-overlaid player controls, it’s a gorgeous efficient use of space. What’s particularly cool is that Feathers can supply Pure Player skins so you can, in effect, skin your own Pure Player!
  • BlackfuZZ only further shows how much Songbird users like an awesome “dark” Feather. Incorporating Pure Player, Mini Player, and Medium Player skins, this Feather features contrasting light and dark themes, clean angular lines and a really slick volume bar.
  • euphoria is a light Feather with some gorgeous light-reflected lime-green highlights. Sounds a little strange at first, but the colour combination looks really great. The default album artwork image looks particularly awesome in Media Flow. This features Mini Player and Pure Player layouts, and skins mashTape, Media Flow, and LyricMaster for completeness.
  • Walnut2 brings in the lux with some really well done wood-grain finishing. For fans of woodies, it’s particularly nostalgic. One of the more complete Feathers, this skins mashTape, MediaFlow, SHOUTcast, LyricMaster, etc. and incorporates the usual Mini and Medium Player layouts.

That’s all for today’s post… I’ll be covering some of the wicked new extensions that you may or may not have heard of in my next post!

OSDC.tw: making conferences fun again

Sunday, Apr 19. 2009  –  Category: OpenSolaris, OpenSource, Songbird, Travel

I spent yesterday at OSDC.tw (Open Source Developers Conference, Taiwan), organised by Hsin-Chan Chien.  I presented Songbird, giving an intro to the app, talking about the ways it could be extended, and demo’ing the app and some of the extensions/Feathers available.  (If you look at the slides, there are a good number that I included that I didn’t get to speak to as I was trying to plan for the contingency of not having Internet and needing to fill in the demo time).

What struck me about the conference was the community feel.  This is easily up there with FISL and FOSDEM as one of the best conferences I’ve been to.  It was grass-roots organised, staffed by volunteers, and though it had some corporate sponsors, it didn’t feel corporate in any way.  There were (IIRC) 230 attendees, with two talks going on any given time over the 2 day weekend (with in-depth tutorials on Friday).  While this is a far cry from the thousands of people at OSCON and multitudes of talks going on at any given time… but IMHO, it was far far better.  Having only two talks at a time ensures that each talk has a good # of attendees (avoiding the OSCON scenario of talks with only 5 or 10 attendees which sucks).  OSDC.tw also really fostered more of a community feel; I saw people chatting and meeting new people, hanging out and discussing technology and having Q&A over tea-time.  Having the regularly scheduled tea-time breaks in one central area really fosters a nice sense of community as well.

In addition to my talk Sunday morning, I got to meet Tim and Bob of the Mozilla Taiwan Community, and went to lunch with clkao, gugod, obra, and a few other folks.  During the afternoon I had a discussion in IRC (#osdc.tw on Freenode) with some folks on ZFS, and ended up giving a lightning talk in conjunction with in2.  She gave some quick slides and introduced ZFS in Chinese, and I followed up with a rapid-fire 5 minute demo (managed to throw up a Virtualbox install of OpenSolaris (snv_101b) quickly) of snapshots, cloning, rollbacks, sends and receives.  My demo was particularly well-illustrated when I accidentally rm -rf’d an SVN directory before snapshotting.  :-)

I also saw Rasmus’s talk on PHP performance and scaling… his example of profiling and optimising Laconica was particularly interesting given our use of Laconica for Songbird’s murmuration project.  But the best talk of the day, by far, was Yusuke Kawasaki’s talk on JSAR (Javascript Augmented Reality).  I can’t even begin to describe his demo of Air Xiaolongbao and Air Pudding, but it was very akin to his hilarious Air Yakiniku video on YouTube.

After the conference we had a great speaker dinner… I can’t think of any other conference where every speaker could get together afterwards and have a big dinner.  I got to chat some more with obra, xdite and met Paul Bakaus (the undisputed and renowned jQuery UI world expert ;-) ).

I’m really hoping I’ll be able to attend OSDC.tw 2010 next year, and I’d certainly encourage anyone organising conferences to pursue this sort of community grass-roots feel.  It was a far far cry from the huge corporate conference feel, and if anything felt more like a huge user-group get-together.

Update: Photos from Yusuke’s talk here, and photos from dinner here

Eggy Coincidence?

Sunday, Apr 12. 2009  –  Category: Food, Songbird

Woke up this morning feeling a hankering for the Chinese thousand year old eggs (yeah, those black ones that you eat with rice porridge). And this was before I even realised it was Easter Hidden Egg

Good guys vs. bad guys

Friday, Apr 10. 2009  –  Category: Musings, Travel

Dubrovnik, CroatiaWendy and I just got back from an awesome vacation to Barcelona, Croatia (Dubrovnik), and Montenegro (Kotor & Budva).  I’ll upload photos soon.. I won’t say much on Barcelona since both Wendy and I had been there before and done the touristy thing.  The weather was cold, dreary, and rainy.  Wendy had her wallet stolen.  .. but the food… wow.  We ate extravagantly, we ate fantastically, and we ate well.

We’d been reading a lot about the Balkans and the history of the region (skimming most of the stuff pre-WW1) trying to understand the tensions and conflicts that have plagued the area.  It was definitely a little chaotic to track all the different parties involved, and we ended up sitting down one night in the hotel bar with some drinks, pads of paper, Wendy’s Kindle & my iPhone with various Wikipedia pages loaded (such geeks, I know).   We mapped out the parties involved, the wars fought, and generally tried to simplify things into “good guys” vs. “bad guys”.

Of course, this dramatically over-simplifies things, but we were really trying to just distill things down as much as possible.  One of the things that jumps out at you when you do this exercise is that things aren’t so clear cut as the “good guys” vs. the “bad guys”.  There is perspective obviously (e.g. how the Albanian Kosovars saw NATO vs. how the Serbs saw NATO), and the vicious cycle of revenge and what everybody calls justice.  I’ve spent my whole life in the West (England and the US), so justice to me is pretty clear and absolute.  But justice in the Balkans takes on shades of grey tinged with the red of revenge for war crimes committed by pretty much every side involved.

Given that my only previous background to the area was more or less the news media coverage we got here in the US in the 90s, my initial naive impression was that NATO (and thus, by extension, everyone NATO was “defending”) were the good guys, and that the Serbs (e.g. anyone led by Milosevic) were the bad guys.  Reading the accounts, going through the quite thorough Wikipedia articles, and actually talking to folks present that lived through the wars has dramatically changed that for me.

Wendy and I had dinner one night at Restaurant Europe in the Budva Old Town.  Since it was still low season we had the entire restaurant to ourselves for the whole night, and we conversed quite a bit with the manager, Dragoslav, (who we ended up inviting to sit down and have a drink with us).  (As a random side note, apparently the owner of the restaurant is Dragan Stojković (a.k.a. Piksi or Pixie), the former Serbian national footballer!)  He is Serbian, from Belgrade, but living in Montenegro to run the restaurant.  Getting his perspective of the war was really interesting.  I was initially timid, but perhaps the bottle of Montenegrin Sauvignon-blanc loosened me up, but eventually I asked him what his opinion of Milosevic was, and gave him the impression we all get in the west of a genocidal war-criminal.

This was the first time I’d ever talked to someone directly face-to-face who, without any hesitation, proclaimed Milosevic a hero and a patriot to the Serbian people for trying to hold on to some sense of Serbian identity and pride (prior to my reading and our trip, I had no idea Kosovo holds a special place in Serbian history as a legendary battleground for them… it’s akin to an American Gettysburg, or Scottish Falkirk).

Having now left, I’m still reading my last book on the region and still fascinated by the tensions that I can see still exist in the general populace there. Across the regions we visited, I saw desire to not be involved in any more conflicts, and to move on with life and build up some semblance of a tourist industry – but at the same time, I didn’t necessarily see a desire to forgive and forget. The people we talked to seem to still have the strong national pride, and the museums we visited (including the memorial in Dubrovnik to the soldiers and civilians killed in the shelling of Dubrovnik from Montenegro) still very much evoked a “look at how we were wronged” attitude.

I really really hope that the region can heal… it’s an immensely beautiful land.  Honestly, it’s one of the most beautiful areas I’ve ever visited.  The bay towns of Dubrovnik, Kotor, and Budva will be huge tourist draws (Dubrovnik already is, Kotor and Budva less so… at least internationally).  They are beautiful medieval-era cities with a ton of history, with friendly people, fantastic food, and just overall are incredible towns to explore.  I’d encourage anyone reading this to travel there soon.  While we were in Kotor we came across two EU Election Observers (there to observe the parliamentary elections to ensure fair elections, a requirement for EU admission), and I can honestly say that was the first time I’d talked to someone in the past 8 years who was genuinely excited to see an American tourist.  :-)

Last.fm Radio release!

Tuesday, Mar 24. 2009  –  Category: Songbird

lastfm_radioIt’s official… after many beers weeks of development, we’re ready to release Last.fm Radio support for Songbird.  If you haven’t gotten the Last.fm/Audioscrobbler add-on update yet you should be getting it soon… (or you can go install it manually from the add-ons site).

Here’s a few of the features provided by the new Last.fm radio support:

  • Geolocates your IP and presents the most popular artists & tags from your country on Last.fm on the homepage (in case you were wondering why certain artists may appear there)
  • Last.fm webpage links for “Play <foo> radio” get redirected to use the Songbird Last.fm Radio support
  • Dynamic links on the sidebar for your Last.fm favourite/most played artists (based on your scrobbling history)
  • Links on the sidebar for your friends and neighbours’ stations
  • Dynamic links on the sidebar for your Last.fm stations based on your Songbird library’s highest rated and highest playcount artists.
  • Click around and explore artist, tags, and Last.fm users
  • Easily jump off to station webpages to read more from Last.fm
  • When you authenticate with the extension it logs you in for both scrobbling and the Last.fm webpage
Note that due to recent changes Last.fm has made (recently being today), only US, UK, and Germany users can listen to radio for free.  Users in other countries will have to pay €3.00/month to Last.fm to listen to Last.fm Radio.  Sorry, but it’s their service and nothing we can control. :(

Trust funds for the families of the slain Oakland cops

Monday, Mar 23. 2009  –  Category: Linkage

I live in Oakland, and our neighbourhood was pretty rocked this weekend by the murder of the 4 (or 3, depending on your classification of life vs. death) Oakland police officers.  This is the highest # of police officers slain in a day in the department’s history.

There’s not much I can say really.  It’s f-’d up, and I’m pretty saddened by the events that happened.

The OPD just setup trust funds for the families of the slain officers.  We’ll be putting some money in, and I hope you will too.

Last.fm tagging

Thursday, Mar 19. 2009  –  Category: Songbird

In the week and a half since we shipped Songbird 1.1, what have we been up to?  Well besides grandly horking a whole ton of iPods (sorry sorry sorry!), we’ve also been planning and scheming on some cool new stuff for the future.  Quite frankly, while doing performance and feature parity stuff is always good – we wanted to work on something innovative and different. Matt did a bunch of awesome mockups and threw up a planning doc on the wiki for anyone interesting in seeing what our [very rough] plans are.

Anyway, if you take a look you’ll see a big part of it revolves around activities, e.g. actions the user does to interact with their music.  We’re talking things like:

  • rating songs
  • making playlists
  • adding new tracks to their collection
  • tagging songs
  • etc.
We’re looking to build something that can socialise these sorts of behaviours more and share them with a group.  It’s the online equivalent of you coming over to my house, and me saying “Check out this new album I found the other day, I’ve been listening to it on repeat all day.” Not only that, it’s also about the subsequent interaction and discussion we have…. e.g. you saying “OMG. Vanilla Ice? You’ve been listening to that all day??” and then you calling up all my other friends to tell them what a loser I am.

Anyway, let’s not dwell on what happened yesterday.  Instead, let’s focus on what we’re doing today.  We’ve been thinking about what sorts of activities make sense, how people would want to share them and consume their different friends’ activities.  I happened to be fixing a couple of Last.fm Radio bugs today (random tangent: we should be pushing this live next week!), when it occurred to me we could do something neat with Last.fm tagging.  Long story short, I was able to throw together something quick today that seems to do the job:

lastfm_tagsIt throws a tag icon into the love/ban area of the faceplate, and when clicking it pops up a gratuitously-translucent panel allowing you to see the Last.fm tags applied (both by yourself and other Last.fm users).  You can add new tags, as well as delete any personal tags you’ve tagged the track with.

Ultimately it’d be nice to commit these tags into the Songbird local library so you can neat things like arbitrarily sort or filter your library based on tags but that’ll require some more bird-side work.

For now, this is a cheap and easy tagging solution that gives me a “tagging” action that we can make use of for our larger plan of socialising Songbird interactions.  The work has been committed to SVN and should be available in tonight’s nightly add-ons build.

I’d been looking for a good way to do server-side mail filtering with client side configuration… and short of some lame CGI interfaces to editing your .procmailrc, I hadn’t found much until I discovered Sieve a few days ago.  To skip a long and boring story, I rebuilt a bunch of packages (yay for JDS’s spec build system) for the following:

Quick summary: Dovecot is a wicked awesome IMAP server.  Sieve provides a way of doing mail filtering.  managesieve is an protocol to allow users to modify their sieve filters via the IMAP protocol.

I use Roundcube Webmail on my server, and there is a super-nice Roundcube Managesieve plugin available.

So I built and installed my Dovecot packages, installed the Roundcube Managesieve plugin, and I’m off and flying with awesome client-configurable mail filtering while allowing the mail filtering itself to be done server-side.

I’ve made the packages available here (14 MB download).  This SVr4 pkg contains SFEdovecot, SFEdovecot-cmusieve, SFEdovecot-managesieve, and the SFEdovecot-root (configuration files) packages.

cliKball Growl/tray notifications

Monday, Mar 9. 2009  –  Category: Code

I made a small patch to cliKball’s Firefox extension to use the nsIAlertService to provide system notifications of new items/comments.  On the Mac this uses Growl notifications, on Windows it theoretically uses system tray notifications – though I haven’t tested it.

Download the following browserOverlay.js and drop it on top of your Firefox’s extension directory for the cliKball extension.  On my Mac, that’s:

~/Library/Application Settings/Firefox/Profiles/*.default/extensions/addon@happyfunlink.com/chrome/content

browserOverlay.js

This was patched against version 0.2.31.1235091994 of the extension.  Caveat emptor, buyer beware, no guarantees, etc. etc.


Recent posts