Songbird Beta Released (finally)!

We’re excited to announce that Songbird is now in public Beta! This update to Songbird includes a new default look and feel, several new features, performance gains, improvements to stability and additional playback capabilities.
New Features
A New Look
We’ve completely redesigned Songbird to make it simpler and more intuitive. We’ve improved drag-and-drop throughout the application and worked to optimize music management vs. web browsing experiences.
Smart Playlists
Create dynamic playlists that automatically update based on criteria you set.
Concert Tickets
Discover upcoming shows in your area based on the artists in your library. Event listings powered by Songkick.
Last.fm Scrobbling
Integrated Last.fm support allows you to scrobble, love, and ban your tracks.
Album Artwork
Display the currently playing track’s album art and write new artwork back to the file.
Note: If you are upgrading from an older version of Songbird, be sure to get the Concerts and Last.fm add-ons so you can enjoy all the new features we’re talking about!
Performance Enhancements
A lot of users have asked us to devote cycles to focusing on performance and stability improvements. We made substantial investments in this release and will continue to dedicate much of our next release to focusing on this area. In this release we:

 

  • Started our migration towards adopting GStreamer as our media core on all platforms. Starting with this release, GStreamer handles playback of FLAC files. In our next release, GStreamer will become our default media core and handle all codec playback and enable additional functionality, such as gapless playback.
  • Improved startup performance. Launching Songbird is now significantly faster than before, in some cases by several orders of magnitude.
  • Reduced memory usage on Windows and Linux by enabling jemalloc as Songbird’s memory allocator.
  • Reduced the time it takes to import media and scan metadata. On all platforms reading metadata is now twice as fast.
  • Improved search results and sort order by ignoring diacritics (like á, ö etc).

For Developers

Early Feedback on 0.7
“A marked improvement over the last release” – Jason Kincaid – TechCrunch
“Songbird’s new UI is also a major improvement” – Sarah Perez – ReadWriteWeb
What’s Next
As we march towards a 1.0 release, our goal is to improve existing features while continuing to focus on performance gains and stability issues. Stay tuned to the blog to keep up to date, or if you like to live dangerously check out one of our nightly builds and see the progress for yourself!

Firefox 2 – Display Single Close Tab Button

Close Buttons on Tabs in Firefox 2.0

If you’re now using Firefox 2.0, you’ve probably already noticed that tabs now have close buttons by default, instead of having a single tab close button on the far right-hand side of the toolbar. If you preferred the older behaviour, simply navigate to the “about:config” page (type it in like a URL or webpage address), and find the section marked “browser.tabs.closebuttons”. Double-click on this entry, and set the value to 3 to display a single close button at the end of the tab strip (Firefox 1.x behavior).

Alternatively, you can set the value to 0 to display a close button on the active tab only, 1 to display close buttons on all tabs (Default), and set it to “2 to not display any close buttons at all.

taken from the about:config page at MozillaZine

A parting tip: To close the current tab using your keyboard, press CTRL+W. If you close a tab by mistake, just head to History > Recently Closed Tabs, and you can resume work from there (alternatively, you can use the arcane keyboard combo CTRL+SHIFT+T).

If you prefer using your mouse and want an even faster way about it – try the middle-mouse click (that’s typically a scroll button). When you click the scroll on any tab it instantly closes the tab for you. I have been using this method quite a bit lately. Though it seemed quite alien at first, I quickly got used to it and it’s now a major part of my Firefox 2 workflow.

Beyond Firefox 2 – Testing Minefield (Firefox 3)

OK, so everyone is very excited about Firefox 2. I’m excited, your excited, all the social networks are ablaze.

But development does not stop at whole numbers, and the testing must go on – which is how we got here.

So I’m testing Firefox 3 (Minefield). That’s right, I won’t be outdone. I must run the most unstable software. Well at least on the test boxes. So currently the Vista, Leopard, and Edgy boxes are running “firefox-3.0a1”.

The first things you will notice are the graphics – everything has a nice sheen to it (in fact, looks just like Firefox 2!), while remaining true to the normal Firefox UI. Also of note is the fact that favorites are now run using a SQLite3 database. For the full list of features, head on over to the Burning Edge page.

Firefox 3 Minefield Toolbar
Firefox 3.0a1 Toolbar
Firefox 3 Minefield Tabs
New Tabs in Firefox 3.0a1 Minefield

As far as I can tell this is just as stable as Bon Echo was (that’s right – was stable for me), with inline spell-checking and some other fancy goodies.That’s all for now, some more screenshots from other platforms (other than Windows XP of course) and crash reports as they happen

Note: of course this is somewhat tongue-in-cheek. I’m sorry for the Mozilla devs. We all need to stop worrying about the cutting edge and appreciate what we have – fantastic browsers! Opera, Safari, IE7 and Firefox are all great, really.

Make Prototype.js TINY – Keep Compatibility

Prototype.js is a very popular AJAX framework used when building dynamic websites. You will find Prototype in most Ruby on Rails projects as it is included by default, and for good reason; Prototype.js is a great library that includes a lot of functionality.

Unfortunately it is rather large in size, weighing in at roughly 50KB.

Although many have managed to reduce the file size of Prototype by paring down the code and gzipping the file, we’re going to use an additional tool to approach the problem, one from the Mozilla foundation that appears to work very well – Rhino.

(Oh, in the interest of full disclosure, I am a Java fanboy, having studied at a university that got a lot of Sun funding back in the day. I hope you can see past that and check out this Javascipt hack, I really do.)

An informative quote from the Mozilla page for the Rhino project goes like this:

“Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users.”

Alright then, so what you have is a Java bytecode version of Javascript that will work in most browsers.

Sounds interesting, let’s see what we can do with Protoype.js!

I decided early on to use a Rhino tool that I found on the Dojo site that allows me to compile Javascript and make it Rhino compatible. The page give you a brief walkthrough and some examples on how to use the tool, so I won’t need to cover that here in detail.

So we compile our Prototype Javascript file, let’s see what our results are then, shall we?

Before: 47445

After Rhino: 32716

After Rhino and gzip: 9454

So it’s at about 9KB now!

In order to utilize the new file, upload it to the directory that houses your original Prototype javascript file, then any instances of prototype.js in your code to prototype.jgz (zipped javascript).

You’ll also want to change your .htaccess file so that you handle the new script properly by typing pico (or nano or vi or what-have you) .htaccess:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ".*Safari.*" [OR]
RewriteCond %{HTTP:Accept-Encoding} !gzip
RewriteRule (.*)\.jgz$ $1\.js [L]

AddType "text/javascript;charset=UTF-8" .jgz
AddEncoding gzip .jgz

You'll notice here that we're doing user agent detection for Safari. When I did my testing it seemed to be spotty, so what we're doing is falling back to javascript if we see that the user is using Safari. We're still compatible, and the code works everywhere else.