Rapid releases killed Firefox’s reputation

Via this LWN post I came across a very insightful blog post by Brian Jono, one of those many people who develop Mozilla Firefox.  In his blog post Brian talks about Firefox’s rapid release cycle and how it drove a lot of people to Google Chrome.  There’s nothing new to that.  But Brian’s post is a must read for anyone involved in software development – there are several lessons to learn.  Here are a few bits that I found interesting.

On updates in general:

I’ve been thinking a lot about the fundamental disconnect between the developers and the users. I think it comes down to: Software developers have a perverse habit of thinking of updates/new releases as a good thing.

It’s hard to convince a software developer otherwise: their salary depends on outputting a constant stream of updates, so of course they think updates are good.I used to believe it. Only after I heard from dozens of different users that the rapid release process had ruined Firefox did I finally get it through my thick skull: releasing an update is practically an act of aggression against your users. The developer perspective is “You guys are going to love this new update we’ve been working on!” The user perspective is “Oh god here comes another update, is there any way I can postpone the agony for a few more days?”

On changes to the user interface (UI):

So many companies release updates which radically change the interface for no significant gain — they seem to be moving sideways rather than forward, changing things around for the sake of change. Maybe their UI designers are bored and need to do something to justify their jobs, I don’t know. After years of aspiring to improve software usability, I’ve come to the extremely humbling realization athat the single best thing most companies could do to improve usability is to stop changing the UI so often! Let it remain stable long enough for us to learn it and get good at it. There’s no UI better than one you already know, and no UI worse than one you thought you knew but now have to relearn.

On competition-driven development:

I have another theory, too: When software companies get to a certain size, they start taking their users for granted. They start treating their users as pawns in a battle against some other company. Faceless millions. Gotta copy everything the other company does, or risk falling behind. So they end up doing everything the other company does whether the users want it or not, and probably doing a crappy job to boot.

On user loyalty:

Software companies would do well to learn this lesson: anything with the phrase “users love our product” in it isn’t a strategy, it’s wishful thinking. Your users do not “love” your software. Your users are temporarily tolerating your software because it’s the least horribleoption they have — for now — to meet some need. Developers have an emotional connection to the project; users don’t.

All software sucks. Users would be a lot happier if they had to use a lot less of it. They may be putting up with yours for now, but assume they will ditch you the moment something 1% better comes along — or the moment you make your product 1% worse.

There’s more.  Just read the whole thing, it’s well worth it.

Firefox 4 is awesome!

If you’ve been reading this blog for a while, you know that I switched my default browser a few times already.  I went from Mozilla Firefox and Opera to Google Chrome and back a few times.  Recently, I’ve been very satisfied with Google Chrome.  The main advantage of it is that its super fast.  And the initial downside – extensions – got way better now.  There is pretty much any extension that I need.  Some extensions still have a bit of Firefox catching up to do, but overall, I’m covered.

Recently, Firefox 4 was released.  There has been quite a few improvements, especially in the area that concerned me the most – performance.  Firefox 4 is blazing fast.  Not as fast as Google Chrome, but pretty close.  But.  It also has a few things that I wanted for a long time and that Google Chrome doesn’t have yet.  Here are the two features that were a deciding factor for me to switch back to Firefox as my primary browser for the time being:

  1. Tab groups.
  2. Browser sync with support of the Android.

Tab groups is a feature I wanted for a really long time.  In fact, I’ve blogged about it back in October of 2007!  I was using hundreds of open tabs back than and not having groups was a real pain.  Now I am much more moderate with my tabs, but groups still make a lot of sense.  Have a look at the screenshot below.

With just a couple of clicks I can now group related tabs into groups.  When I switch between groups, in the list of tabs I see only the tabs open within the current group.  This saves plenty of time and confusion.  Also it makes keeping track of open tabs much easier.  Tabs can be dragged from one group to another group.  Groups can be renamed, rearranged, resized, and so on.  When I’m done with the task, I can close either a single tab or a whole group.  And I can even undo the closing operation on both.  Now that is the tool to boost productivity!

The new Firefox 4 also has the browser synchronization functionality, with which one can sync several computers and (now) even mobile devices.  You can choose what to synchronize and where. Bookmarks, history, passwords, form data, and even open tabs are supported! And this solves yet another problem for me.  I’ve been looking for an elegant solution to send URLs from my desktop to the mobile and back.  It’s a problem that I have on a daily basis.  And now it’s solved!  I simply installed Firefox 4 for Android on my mobile, enabled browser synchronization, and that was it.

With these new features in, and much improved performance, I don’t see any reason for why I shouldn’t switch to Firefox 4.  So that is exactly what I am doing starting today.

On a separate note, I have to once again highlight how important are competition and open standards.  Competition brings in the cutting edge technology and much improved end user experience. Open standards allow for simple switch between different implementations.  Kudos to all the open source developers, participating companies, and anyone else involved.  Keep it up guys!

Happy 6th birthday, Firefox!

Download Squad reminds us that it has only been 6 years that Firefox is with us.   That’s true, but I find it so hard to believe.  What was the web experience before Firefox came along?  I remember that Firefox made it way better, but I don’t really remember how bad it was before that.  And even though I spend most of these days using Google Chrome, I clocked thousands of hours in Firefox and it is almost like a relative to me.

Happy birthday dear browser! Best wishes and may you continue to improve, especially now that you have some competition to get you going.

Back to Mozilla Firefox

About a month ago I praised Chromium browser (and Google Chrome incarnation of it).  It’s fast, slick, and like Firefox has a gadzillion extensions.  Unfortunately, I switched back to Mozilla Firefox for now.  And as much as I’d like to use Chrome, there is an issue that annoys me enough not to – profile corruption.

As any other young application, Chromium crashes quite often.   That is understandable.  But the problem is that every time it crashes, my browser profile is corrupted, which results in loss of history, saved passwords, and open tabs.  That’s just something I can’t tolerate.  Crash  all you want, but bring me right back to where I was, when I restart your sorry butt!

Hopefully this problem will annoy enough people for someone to step up and fix it.

Running simultaneous Firefox sessions with different profiles

The more and more I use Firefox, the more add-ons I install, and the heavier it becomes.  Recently I got to the point where I am annoyed by all the heavy weight functionality, but cannot remove it complete because I need it occasionally.

The solution to my problem turned out to be pretty simple, even if it required some Google searching and IRC chatting – multiple profiles.

By default, when you run Firefox for the first time, it created a default profile to store all your stuff – saved passwords, bookmarks, add-ons, etc.  However it is possible to create more profiles and separate things a bit.  For example, I currently have three profiles:

  • Browser.  I use this one for generic browsing stuff, such news reading, email, etc.  Firefox add-ons for Gmail, Google Calendar, YouTube, Flickr, and other major sites I used frequently are installed under this profile.
  • WebDev.  I use this one for my web development needs.  Web Developer, Firebug, Live HTTP Headers, and any other add-ons that help me do my job are installed under this profile.
  • Default.  I keep this one clean and empty.  Sometimes I want to see how  site behaves in the browser with default settings – for this I use the Default profile.

Creating this profiles in very easy.  As per Firefox documentation, all you need to do is close all current Firefox windows, and then run Firefox from command line with -ProfileManager parameter.  A small window will popup that will give you options to create, rename, and delete profiles, as well as select with which profile to start the new session.

The problem that I came across was running several Firefox sessions in parallel, each with its own profile selected.  I could easily select the profile for the first session, but when I was starting up the second session, it would just reuse the same profile from the first session.

The solution to this problem is either setting MOZ_NO_REMOTE environment variable to 1, or specifying -no-remote parameter on the command line.  The -no-remote parameter on the command line seems to be a recent addition to Firefox, so if it doesn’t work yet for your version of the browser, you’ll need to fall back on to the MOZ_NO_REMOTE environment variable.

So, if you have a recent Firefox version, you need to run (updating your desktop and menu shortcuts seems like a good idea):

[user@host dir]$ MOZ_NO_REMOTE=1 firefox -ProfileManager

If you want to start Firefox with specific profile (e.g.: DesiredProfile), you can do so with

[user@host dir]$ MOZ_NO_REMOTE=1 firefox -P DesiredProfile

Alternatively, you can export the variable globally, by adding the following line to your .bashrc file

export MOZ_NO_REMOTE=1

If you have a recent version of Firefox, then the command changes to:

[user@host dir]$ firefox -no-remote -P DesiredProfile

Other things that you might want to keep in mind are:

  • Some add-ons will be common between your different profiles.  For example, I want to have my delicious bookmarks available to me everywhere.  For these cases, you’ll need to install the same Firefox add-on to every profile that you will need it at.
  • Some bits of configuration (such as custom keyboard shortcuts, for example), will need to be configured in each profile separately.
  • You might want to have a different Firefox theme for each of your profiles, so that it’s easier to see where you are visually.