Amazon MP3 Store in Banshee

The Banshee logo I’ve landed a new extension in Banshee — an integrated Amazon MP3 Store source. This source allows you to browse, search, preview, purchase, and download music from the Amazon MP3 web site.

Building on last week’s announcement of the Amazon MP3 downloader extension, the Amazon MP3 Store extension allows for tighter integration and a better user experience — music can be explored and purchased all from within Banshee.

Amazon MP3 Store in Banshee
Watch the Banshee Amazon MP3 Store Screencast!

I employ no gimmicks. The extension is very simple, just embedding a WebKit GTK web browser, and integrates with a few hooks:

  • Intercepts audio/x-mpegurl content, to stream previews. This provides natively integrated music previews that play in Banshee, not in the web page via Flash.

  • Intercepts audio/x-amzxml content, the playlist (or “download queue”) that Amazon provides after a purchase, and load through the Amazon MP3 downloader extension to immediately begin downloading the newly purchased music. This eliminates the need for Amazon’s external downloader. Everything happens from within Banshee.

  • Set a cookie ahead of time so that the Amazon MP3 web site is aware that a downloader is installed (Banshee), making the purchasing experience faster and less confusing.

  • Search the Amazon MP3 store from the usual Banshee search box.

  • Provide basic web-browser navigation controls: back, forward, refresh, home.

Amazon MP3 SourceAs simple and obvious as this approach may be, the reality is that this integrated experience was previously unseen on the Linux Desktop. This approach levels the music purchasing playing field — no extra software to install, no browsers, file managers, or mime systems to configure, and no more manually importing externally downloaded music. Just click, buy, and enjoy.

The code is all committed and available for immediate use in Banshee’s git master branch. It will be available in the next release for packaging: 1.7.3.

Remember, Amazon MP3 music is all DRM-free, and there is tons of free content on Amazon as well for you to try the extension out if you’re not up for purchasing more music just now.

Posted in uncategorized | Tagged , , , , , , | 20 Comments

Government Security System

High security in Boston

As seen near the Boston Common.

Posted in uncategorized | Tagged , , | 2 Comments

Banshee on Linode

The Banshee logo I recently migrated all of the Banshee web server stuffs to a Linode 768. We were previously running on an incredibly slow, unreliable, and expensive dedicated co-lo machine that once hosted a number of Novell community projects. As part of the migration, go-oo (Novell’s edition of OpenOffice) has migrated to openSUSE infrastructure, and I’ve taken F-Spot with me to Linode.

The performance and reliability so far has skyrocketed, and the flexibility we now have is very welcome. The Banshee web site is powered by openSUSE 11.2, lighttpd, MySQL, and WordPress. The new Linode backup service is a huge relief, which we are using in addition to daily cron-based on-system backups. I’ve been a huge and loyal fan of Linode since 2005, and am happy to bring Banshee along!

I’m also excited to note that I’ve switched our “main” domain name to banshee.fm, a domain I’ve owned for Banshee for about a year but have done nothing with. A number of people seem to love the new domain name, much preferred to the old banshee-project.org. What do you think?

Linode - Linux Virtual Servers

If you are thinking of signing up for a Linode (and if not, you should be), you can help the Banshee Project out by signing up using our referral code: 5ea2a167caa5bec58b16800303350173e3dd094

Three cheers for Linode, and for better web performance for Banshee!

Posted in uncategorized | Tagged , , | 8 Comments

Amazon MP3 downloader support in Banshee

The Banshee logo I’m very excited to announce I have just landed support for downloading and importing your Amazon MP3 purchases into Banshee.

It is a simple extension that understands the download queue file that Amazon delivers after a purchase is made. Linux Desktop integration is provided so that your web and file browsers associate Banshee with the download queue file.

Banshee Amazon MP3 support

Further improvements are on the way, but I’ve downloaded many albums in Banshee at this point (and subsequently burned a decent amount of money!) Of course, there are a number of free downloads that Amazon offers, which were good for testing. Unfortunately, I didn’t think to look for these until I had finished the feature.

In addition to the integrated Banshee extension, there is a command line client called bamz. It requires Banshee to be installed for support libraries, but does not integrate with your Banshee library in case you are into that sort of thing. By default, bamz downloads the tracks into your current working directory with the following structure: $PWD/<Artist Name>/<Album Title>/NN. Track Title.mp3.

bamz command line client

I will be merging the Amazon MP3 support into the 1.6 stable series, and it is currently available in Banshee’s git master branch. Enjoy!

Posted in uncategorized | Tagged , , , , , | 22 Comments

New favorite way to cook hot dogs

I would like everyone to take notice: I now prefer to broil my hot dogs instead of grilling them. You’re left with the same great tasting hot dog (as is usually the case when broiling meat properly) – nice and crispy on the out side, juicy on the inside. However, broiling allows for one important change that is difficult to accomplish on the grill: cheese and toasted bun in one clean go.

  • Place the hot dogs in a skillet or baking sheet under the broiler for a few minutes. Turn once so that the whole dog is bubbly and crispy. I like mine slightly blackened.
  • Move hot dogs to buns, and coat with thick slices of pepper-jack cheese. Stick some on the sides of the inside of the bun.
  • Place newly constructed hot-dogs-in-buns back under the broiler for 60-90 seconds. Long enough to fully melt and bubble the cheese, and toast the buns.
  • If you like onions or other non-condiment toppings (I always use banana pepper rings or jalapenos), place them under the cheese to secure and integrate before melting the cheese.
  • Coat with condiments, if necessary.
  • Eat, and repeat.

I’ve never been able to so cleanly and thoroughly melt cheese on a hot dog until the broiler. Trying this on a grill isn’t practical – you can’t use the bun because it’ll burn, and the heat won’t reach the cheese in time. Any other method just results in either cheese loss and messy transfer of cheese dog to bun, or only partially melted cheese (e.g. the residual heat of the dog).

This has been a cheese-dog PSA.

P.S. I was going to post photos but I ate them. With enough interest, I can post the results.

Posted in uncategorized | Tagged | 7 Comments

Banshee for MeeGo

Banshee for MeeGo After lots of intense work and collaboration, the Netbook profile for MeeGo 1.0 has been released today. As such, I am particularly pleased to announce in conjunction that Banshee is the default and integrated media player for MeeGo.

Currently, MeeGo 1.0 features the latest stable Banshee release: 1.6.1. As new Banshee versions are released, we’ll be providing updated packages for MeeGo.

The Media Panel

In MeeGo, most tasks are performed through panels that slide out from the top toolbar. This is how you can chat with friends, get lost in Twitter and other social network feeds, quickly browse and play your media, access the web, and launch and switch between applications and zones.

MeeGo Media Panel
Media Panel in MeeGo

In Banshee, the MeeGo integration extension provides a panel that integrates into the MeeGo toolbar. From the Banshee panel, you have quick access to your music and play queue sources. The new grid view introduced in Banshee 1.6 is quite prominent here as is the track list and now playing display.

When you’re just in music consumption mode, the panel is really all you need – quick access to entertainment.

A Richer Experience

While the MeeGo Media Panel is great, there will be many cases where a more traditional media player interface is desired. For this the more familiar and feature-full Banshee interface is a click away – it can be launched from the Myzone or Applications panel (it’s an out-of-the-box favorite), and of course, from the Media panel.

Launch the Banshee Media Player

The traditional Banshee interface will feel familiar, especially if you’ve used Banshee before, but there are a few customizations exclusive to MeeGo:

  • Optimized for smaller screens
  • No main menu – all actions are contextual or available through a quick-access menu at the top right of the toolbar
  • MeeGo look-and-feel
  • No status bar

Traditional Banshee Interface for MeeGo
Traditional Banshee Interface with MeeGo Customizations

From the traditional interface, you have all the power of Banshee at your disposal: Last.FM radio, video playback, podcasting, etc.

For Developers

All the code to build the MeeGo profile of Banshee is available in the regular Banshee git tree on both the master and stable-1.6 branches. There are no hidden repositories or forks. All the code has been developed as an extension to Banshee in our regular upstream tree.

There are two main MeeGo pieces:

As such, you can easily build Banshee for MeeGo (and you don’t even need to be running MeeGo). Assuming you’re already familiar with building Banshee from source, just pass the --enable-meego configure flag. For convenience, you can also use ./profile-configure meego to configure with a selection of other flags that best match how the Banshee packages for MeeGo are built.

You will also want to touch /etc/meego-release to trick your non-MeeGo system into taking some MeeGo specific code paths. This is quite handy for development.

When running the MeeGo extension to Banshee on a non-MeeGo system, the panel interface will simply appear as another window.

The Future

Banshee 1.6 for MeeGo 1.0 is just the beginning of the adventure in this space. We’ve got a lot planned for the next MeeGo release and certainly Banshee in general.

Foremost, there will be a continued focus on performance improvements and core/UI splits. Expect a bigger main interface overhaul as well in the near future.

With MeeGo 1.0 for Netbooks out in the open finally, expect to hear more exciting details around Banshee and MeeGo in general. Fun times are ahead!

Posted in uncategorized | Tagged , , | 1 Comment

Lemon Shallot Vinaigrette

Feeling like an arugula salad today, I needed to also use up two shallots before they went bad, so I concocted this delicious lemon shallot vinaigrette. As the arugula is gone, I may finish the dressing with some fish tonight.

Arugula salad with Lemon Shallot Vinaigrette

I rarely measure anything in the kitchen, so all values are approximate.

Ingredients:

  • 2 shallots
  • 1 cup + 2 tbsp olive oil
  • 1 cup chopped fresh parsley
  • 2/3 cup balsamic vinegar
  • 1/2 large lemon
  • 1/4 cup freshly grated parmesan cheese
  • 1 tsp salt
  • 1 tbsp freshly cracked pepper

Method:

  • Finely dice the two shallots, sauté over medium heat in the two tablespoons of olive oil until slightly browned and translucent.
  • Finely chop the parsley for easier blending.
  • Juice half the lemon, and gather about a teaspoon of zest.
  • Combine all ingredients into a food processor and emulsify.
  • Chill and serve.

Enjoy!

Posted in uncategorized | Tagged , , , , | 2 Comments

Banshee + GNOME 3.0

The GNOME logo I spent a little time this weekend doing one of the things I’ve wanted to do for years – eradicate one of the oldest files in Banshee: banshee-dialogs.glade.

The vast majority of Banshee’s UI is custom widgetry that is laid out dynamically at runtime. The main window and the preferences dialog hasn’t been restricted by Glade for a couple of years, but all the other dialogs were defined in part in Glade:

  • Open Location
  • Seek To
  • Import Media
  • Smart Playlist Editor
  • Error list dialog (very unlikely anyone has ever seen this)
  • Last.FM Station Editor

These were all fairly simple dialogs in Glade — mostly consisting of a table, some static labels, and placeholders to pack in custom widgets at runtime (e.g. the import source combo box in the Import Media dialog, or the actual query builder UI packed in the Smart Playlist Editor dialog).

Old Banshee Glade Dialogs
Old Banshee Glade Dialogs

These are now fully defined in code, allowing the dialogs to derive directly from BansheeDialog, which provides extra common functionality for dialogs on top of Gtk.Dialog.

The big take-away here is no longer depending on the deprecated libglade/glade-sharp libraries (well, almost — later this week Gabriel will port Muinshee — an alternative Banshee client in the image of Muine, but not a core component). Additionally, I removed our dependency on libgnome/gnome-sharp, which is also deprecated.

This means that Banshee 1.5.4 will be GNOME 3.0 ready. The last thing to do is implement a udev hardware backend. We already have partial DeviceKit support, and GIO support. However, we don’t take a hard dependency on HAL. The removal of the last Glade file represents the eradication of any hard obsolete GNOME 2.0 dependencies. Exciting!

As a quick aside: what was really nice about the porting from Glade to C# was the use of C# 3.0 features – specifically type inference and object initializers. This permits interface construction using a more terse syntax than available in C# 2.0, yielding improved readability and organization. For instance:

    var table = new Table (2, 2, false) {
        RowSpacing = 12,
        ColumnSpacing = 6
    };

    table.Attach (new Label () {
            Text = Catalog.GetString ("Station _Type:"),
            UseUnderline = true,
            Xalign = 0.0f
        }, 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Shrink, 0, 0);

Bring it on, GNOME 3.0. We are ready!

Posted in uncategorized | Tagged , | 2 Comments

Banshee 1.5.3 and the return of OS X support

The Banshee logo

The Banshee community is proud to announce the availability of Banshee 1.5.3! With a slew of new features and bug fixes, and a fully refreshed Mac OS X build, this is another solid release on the road to 1.6 (due out on March 31st).

Get It!

Gabriel highlights a number of new features and improvements on his release announcement blog:

  • A new sync device from playlist option
  • Audiobooks library extension
  • Library-folder watcher extension
  • eMusic importer/downloader extension
  • GIO file backend supporting non-local files

Additionally, 75 bugs were fixed since the last release. Read the 1.5.3 release notes to learn about additional new features and improvements.

Mac OS X Release

What’s particularly exciting to me is the return of the OS X releases. I have completely overhauled our OS X build, and we no longer take a framework dependency on Mono or GTK – these dependencies are bundled as part of the binary distribution of Banshee on OS X.

If you have OS X 10.5 or newer (Intel only), you can simply download and run Banshee – nothing else needs to be installed.

Banshee 1.5.3 on Mac OS X 10.6

This gives us greater flexibility to refine and polish Banshee for OS X. For instance, I started working on a new GTK theme that uses the flexible Murrine engine. Currently the Mono framework installation uses Clearlooks.

There’s still a lot to do on the OS X build, so if you’re interested in hacking on the platform backend, it’s now easier than ever to do so:

  • Install XCode
  • Clone Banshee from GNOME git
  • Run ./bootstrap-bundle at the top of the checkout

This process will magically build everything that Banshee requires, and from there hacking on Banshee is just like it is on Linux. I recommend using MonoDevelop of course to get real work done though.

Enjoy!

Update: There was a lame bug preventing startup of Banshee 1.5.3 on OS X. This has been fixed and the DMG image has been respun. If you had problems running the release, download the updated image. My bad ya’ll!

Posted in uncategorized | Tagged , , , , | 11 Comments

Banshee Grid View

Spread out over a number of hours over the last few weeks I’ve been working on making our high-performance list view in Banshee also handle grid-style layouts.

That is, all the benefits of our polished list widget with a new look and feel! I’m making the widget more clever and abstracted about layout and rendering so it can be more inviting to users. In fact, you can even live-toggle between layout modes (e.g list and grid) without losing any state.

This effort provides a more visually immersing and space-conscious view for your collection of albums. This big step forward is the groundwork for presenting other media collections in a friendlier way — video thumbnails, movie box covers, audio books, photos…

Screenshot of Banshee's new grid layout for albums
The new grid layout mode for the album browser.

There are still a few quirks to work out regarding interaction (different maths for keyboard navigation), and some more polish to add on the rendering side of things, but I am very close to merging this work to master in git.

The code is being developed in the grid branch in git for those who would like to try it out. Poke me on IRC if you find problems, but I probably am already well aware — again, it’s not merged to master because it’s not RC worthy yet — but it’s ready for some broader testing!

Thoughts? Suggestions? Complaints? Hopes and dreams? I’m super excited about finally having this land, and it’s been an enjoyable hack to implement.

Posted in uncategorized | Tagged , , | 25 Comments