Firefox Awesome Bar is Awesome

One of the main reasons I continue to use Firefox over Chromium/Chrome is the address bar.  Unlike Chromium, Firefox does not use tie in the address bar with Google search, but instead uses the browsing history and the bookmarks to suggest URL’s.  The address suggestions are made using a combination of frequency of access of URL’s as well as how recent they were accessed. Also, the algorithm gets better with usage.  For example, I had recently read an article about something called the Zing JVM by a company called Azul, but when I wanted to refer to it later,  I could not recall the word “Zing” or “Azul”, so I started typing in “Java Performance” in the address bar and Firefox started pulling out the relevant URL’s and I could soon find what I wanted.

Firefox Awesome Bar
Firefox Awesome Bar

Combining search engine suggestions for URL auto completion as in Chrome, is confusing and does not do a great job of leveraging your own browsing patterns and history. Search suggestions are of course incredibly useful too and therefore separating them out allows the best of both approach.  The Mozilla support site has a very good article on using the address bar.   This feature however works well if there is a rich browsing history present.  There may be a need to ahem, not include certain URL’s in the search suggestions.  The straightforward way is to not allow these URLs to be recorded in the browsing history in the first place – this can be done using Private Browsing.

Firefox problems on Ubuntu

Recently, Firefox stopped working on my Ubuntu laptop for no reason. The hand cursor for hyper links turned into the text select icon, browser history stopped working and overall the browser became very sluggish. I couldn’t find any useful troubleshooting information, so I decided to reinstall Firefox.  I fired up Synaptic Package Manager and got rid of the Firefox and the xul-ext-ubufox packages, rebooted the machine and installed Firefox again. Same result as before, the new install had the same broken behaviour.

Since browser history wasn’t working, I then vaguely remembered something about firefox profiles and decided that a corrupted profile could be the problem. So I removed the default profile using the steps here and did a reinstall and everything was back to normal.

Me gusta !

Installing MediaWiki on a DreamHost server

I was trying to install MediaWiki on this site yesterday. Site hosting is provided by the good folks at DreamHost and I saw that they had MediaWiki available as a “one-click install”. I chose the custom installation option so that I could use the database of my choice as well as install it to a specified directory. All seemed to go well in the initial stages and I got to the configuration part.  However, after entering all the values and clicking Install, something seemed to be happen in the background, but after a while the same configuration screen showed up with all fields set to blank. I checked the database and did see that MediaWiki tables were being created, so something else seemed to be the issue.  I then viewed the INSTALL readme file which was included in the installation archive and saw specific instructions that the config directory should be made writable by the web server . So I decided to install MediaWiki manually. I downloaded the installation archive and decompressed it.  This time before I got to the configuration part, I ran the following command:

chmod a+w config

This step was all that was needed to solve the problem and MediaWiki installed successfully.  I suppose this wasn’t happening correctly or at the right time in the DreamHost installer script. So if you’re facing problems installing MediaWiki on DreamHost – checking whether the config directory is writable can help.

Eclipse generate getter setter tip to deal with field prefixes suffixes

Here is a nifty feature I found in Eclipse regarding generating getters and setters. Normally the names Eclipse assigns to the getter and setter methods are the field names as-is suffixed to get and set. For e.g. if you have a field called “lastName” – the getter would be getLastName() and the setter would be setLastName(). Now some people follow coding conventions by prefixing fields with a certain letter to indicate they are class level variables.  e.g. mLastName, mFirstName etc.  In such a case when Eclipse is used to generate getters/setters, then the method names become getmLastName(), setmLastName() etc.  Those names are nothing short of disgusting:

Getter Setter method name with field prefix
Getter/setter name has field prefix

Fortunately this can be easily fixed.  You can tell Eclipse that you prefix/suffix your fields in a certain way and the prefix/suffix will automatically be removed from the generated getters and setters. Click on Window -> Preferences -> Java -> Code Style.  Select Fields and click on Edit to specify the field name conventions.

Set field name conventions
Set field name convention

Now, things are looking good.

Getter/Setter without field prefix
Getter/Setter without field prefix

Eclipse, what would life be without it ?

Clear on cloud

There’s a lot of buzz about cloud computing these days.  The basic idea is to not install any software or application – but instead pay someone else who installs and runs it for you using their hardware – while you use it over the internet (aka “the cloud”).

While I am not fully informed on the subject – which anyway will not stop me from proclaiming that my vote goes to the cloud computing idea. I think its an idea whos time has come.   Why ? Because deploying and maintaining enterprise software is difficult, complex, overwhelming, yup, here’s the term I was looking for – its fucking painful.  It reminds me of the acronym – FMGWACS – Fuck Me Gently With A Chain Saw. Yes, ladies and gentlemen, that’s what IT folks says when deploying enterprise software.  Order freakingly expensive hardware, invest in a rainbow of licenses, coordinate with a billion folks for a myriad variety of tasks – network teams for loadbalancing, OS teams for deploying, SAN teams for storage, cluster configuration teams and <insert-your-favourite> team. Its crazy, expensive and a time-destroyer.

I’m sure that companies will pay good money to get this monkey off their backs.  That’s why I’m betting the cloud model will kick ass someday.