Tuesday Feb 02, 2010

Moving my blog...

Opening a blog was one of the first few things I did, sitting on my temporary cubicle on the 2nd Floor of Sun Microsystems, India Engineering Center, Divyasree Chambers, Bangalore on that morning of September 05, 2005. I wasn't assigned any work, having joined Sun on August 31 2005. It took about a week to get my Sun Badge (those days they used to be printed and shipped from Singapore, I believe). I was thrilled to find out that a Sun employee could have his/her own blog at http://blogs.sun.com. In a moment of dwarfed imagination (something that I have gotten used to), I named this blog - Gridbag. I could tell you a 100 excuses regarding the naming, but honestly, I thought I would use the blog as some kind of a research diary about my learnings of Swing UI Toolkit and hence named the blog after the GridBagLayout.

4.5 years have passed, myself and two others are the only remaining members of my first team of 15 at Sun Microsystems, India, the second floor at Divyasree Chambers was given up by Sun about an year ago (I managed to sneak in there before it was closed and sit on my temporary cubicle for a couple of minutes), the product that I worked for when I joined Sun is gone and Sun itself has now been taken over by Oracle.

These years have taught me a lot and gave me a chance to meet and work with some very bright folks, and above all, a chance to work on some great stuff. I don't know whether I made a difference to Sun, but Sun definitely made a difference to me. There have been frustrations, but something has kept me here for all these four years. Thanks Sun, it has been a privilege.

Though I continue to be an employee of Sun (now a wholly owned subsidiary of Oracle), I will not be blogging here anymore. I am in the process of migrating this blog over to http://gridbag.wordpress.com . Hope to see you there.

Signing off...

Rohan Ranade

Saturday Oct 31, 2009

Embedded fonts in JavaFX

I wanted to embed a font in my JavaFX application. Sure enough, the first Google result led to the answer (http://forums.sun.com/thread.jspa?threadID=5353505). But the result is not something that I liked. It worked programmatically, but visually I was disappointed:

Here is the same text using the same font in Photoshop.

I like the second one. The JavaFX rendering does not stay true to the intended look of the font, and for my eyes, has a smudgy look to it (then again, I am no fonts expert). If you are using such a font in many places in your application, this difference between the photoshop mockup and the actual application starts getting to your eyes.

Maybe I am missing some trick or maybe the font rendering is indeed like this on JavaFX. But if this is the way JavaFX renders fonts, I am a tad disappointed for now. Maybe things will improve in upcoming versions.

Friday Oct 23, 2009

This or that or nothing. Nothing it is.

Buxfer Logo

This one is straight out of the "don't do this" examples. Buxfer is a website that helps you manage your finances. It was pretty good till Mint blew me away. So today, I decided to delete my account data on Buxfer, which is when I got this nugget (below):

Buxer question to delete account

Now what is the problem? Neither of the options is selected by default. One could argue that the choice is left to the user since this is an irreversible action. But then why is the submit button enabled? I promptly clicked it and got this:

error message

Woah! Now there is no way to go back to the previous screen! I have to go to the accounts page and again press delete, and must not forget to select a Yes or No option. Not good.

Thursday Oct 22, 2009

Return of the template

Have a look at this:

Blooper about the page title

I hope you caught sight of the page title. I did not know that interest rates for fixed deposits (CDs as they are called in USA) should be called 'Normalized Templates for Word 97'. :) It's a minor blooper but speaks of a lack of professionalism. Also, it's a no brainer that this page has been generated by exporting some word document to HTML. However, a look at the page's source (by pressing CTRL+U in Firefox) was even more astonishing:

page source

It's OpenOffice! I would have thought a bank like ICICI would have a pretty sophisticated way of generating and managing their web site content. Seems not.

Wednesday Sep 30, 2009

NetBeans tip: Notifications using the Dialogs API

The standard code used to display a dialog in NetBeans is:

DialogDescriptor dd = new DialogDescriptor(new UIPanel(), "UI Panel" ) ;
Dialog dlg = DialogDisplayer.getDefault().createDialog(dd);

This uses the DialogDescriptor and DialogDisplayer classes from the Dialogs API. You end up a dialog which looks like the image below.

Standard UI Panel

However, what if you want to display some notification messages to the user? NotificationLineSupport to the rescue. Just create a notification line (code highlighted below) and add your message.

DialogDescriptor dd = new DialogDescriptor(new UIPanel(), "UI Panel" ) ;
NotificationLineSupport supp = dd.createNotificationLineSupport();
Dialog dlg = DialogDisplayer.getDefault().createDialog(dd);
supp.setInformationMessage("Sample Information Message" ) ;

The result is a dialog like the one shown below:

UI Panel with notifications

You can show informational messages, error messages and warning messages. However, displaying an error or a warning message does not disable the OK button. For that you will have to call the setValid() method.

Tuesday Sep 15, 2009

Value of IM

One of the most innovative usage of GTalk to date has been as an ice breaker when me and my wife were sitting, poring into our notebooks, ignoring each other, after a petty quarrel. I wasn't talking to her, and she wasn't talking to me. So, there, I opened up GTalk, sent her a "hi" and we started chatting on GTalk, sitting almost next to each other. And what do you know! A smile appeared on her highness' face in a matter of minutes.

I love technology :)

Wednesday Sep 02, 2009

Hide and seek with important information

Ended up getting a brizzly invite and promptly got confused by the signup process. :) Yes, I am a lame chap but look at the screen shot below. I thought that I needed to provide only my invitation code and pick a user name since the email and password field were grayed out.

But on clicking the signup button, I got an error (see below):

Yes! I know it's not a valid e-mail address. But what kind of GUI takes focus away from a required field? Totally lame (and equally confusing).

Thursday Aug 27, 2009

Safely confusing

Here's AT&T's Play Safe and Win contest form which got me confused.

What got me was the \* next to the U-Verse details. I don't have U-Verse, and I normally associate \* with mandatory information in forms. So I thought this form is not for me. What has happened is that the designer of this form has conveniently reversed the role of \* to make it denote optional items. That goes dead opposite to convention and is confusing.

As you can see in this form, the U-Verse entry is the only one which is optional, so going with the convention of marking a \* against every field in the form would have been a bit of a clutter. But, why not just label the optional field - "AT&T U-verse 9 Digit Account(optional)" and put a line on top of the form mentioning that all fields are mandatory unless otherwise mentioned?

Thursday Aug 20, 2009

Are you sure? Are you sure? Are you sure?

Another sighting of slightly annoying UI behavior. This time, it's VirtualBox. I was trying out the Sun Storage 7000 series simulator (an awesome piece of work. Go download and play with it even if you don't care a dime about storage, it's engineering at it's best), and after screwing up the simulator to my heart's content, I wanted to delete it. Off I went to the media manager to delete about 16 disks that belonged to the virtual machine and that's when my head started aching. The task was to delete 16 disks. The list box allows you to just select one at a time. So, 16 delete actions instead of 1 :(. Once you select the disk to be deleted, the delete isn't triggered when you hit the delete key on your keyboard. You have to take the mouse all the way to the toolbar and click 'Remove'. Doing it once was OK but doing it 16 times is damn tedious.

Also, every time I hit the delete button, I get the message shown below.

The message is there for a purpose. The operation of removing the disk cannot be undone. So it serves as a place to double check. But imagine doing this 16 times :(. Also, as a power user of VirtualBox, I know what I am doing. Can there not be a way to turn this message off?

The scenario I mention about is pretty uncommon. Most VirtualBox users would have a disk or two to be deleted at a time, and that won't be as painful. Also, I haven't quite figured out why the disks can't be removed by the step that deletes the virtual machine. Why delete the hard disks separately? At least, why not ask the user if he wants to delete the hard disks associated with the virtual machine to be deleted.

[Update: Raised a bug (http://www.virtualbox.org/ticket/4828)  for this as per a suggestion in the comments.]

Tuesday Aug 18, 2009

Hiding under the table

Here is an annoying example of how 'data' on the screen eats away 'information'. Browsing through JSch library's users mailing list archive is such a pain. When you click on the link, you are presented with this page.

Very nice. I can pick and choose to view mails from as far back as 2002! But are the recent mails (August 2009)? They are below this whole matrix.

What's more, even if you were to click on any month in the year/month matrix, you still are not shown the mail threads. You again get to see the huge matrix and some even more (un)interesting stats.

I don't think I am interested in seeing how many mails were exchanged on the second Wednesday of February 2004. I want to see the mail threads, and this statistics bloat comes in my way. Not good.

Monday Aug 10, 2009


Any one who has not seen this? Pretty rare, I believe.

This is Firefox showing the user that it is in offline mode. Now, I would think a thousand times before tagging some UI in a software such as Firefox as a blooper, but this one is worthy of it, in my opinion. I recently read a fantastic book on usability - Designing from both sides of the screen, and right into the first chapter of the book, an important point is made about 'appreciating the user's physical effort' in using the software.

Look at this page shown by Firefox. What is the use of the 'Try Again' button if it is clicked without unchecking the 'Working Offline' menu item? Apparently, it does nothing, I found out by trial and error (another situation you want to avoid for the users of your software). I can't seem to understand why I must ferry my mouse half way across the screen and click once to open the File menu, and click again to uncheck the 'Work Offline' item and ferry my mouse back to the center of the screen and then click on 'Try Again'? Can't the 'Try Again' button just be smart enough to do the unchecking of the menu item for me?

I don't want to be overly critical in case I am missing some thing. Comments welcome.

Saturday Jul 25, 2009

How to display the NetBeans font chooser.

Since I have been going after some low hanging fruits in fixing some Python support related issues in NetBeans, strictly over weekends (without the knowledge of my wife who prefers my MacBook Pro being 2000 miles away from me on weekends), I ran into an interesting issue where I had to display the NetBeans font chooser instead of a custom font chooser being used in the code. Unable to find the proper API (perhaps I am dumb), I waded into the NetBeans sources, and found the way out. Blogging about this here to save some poor soul some time when the need arises.

PropertyEditor pe = PropertyEditorManager.findEditor (Font.class);
DialogDescriptor dd = new DialogDescriptor (
    "Some Title"  // NOI18N

DialogDisplayer.getDefault ().createDialog (dd).setVisible (true);
if (dd.getValue () == DialogDescriptor.OK_OPTION) {
    font = (Font) pe.getValue ();

It just boils down to getting a property editor for Font and then wrapping the panel inside a dialog box using the NetBeans DialogDisplayer API.

Friday Jul 24, 2009

Hit me one more time...

A minor one today. This dialog box is pretty good, I just don't like it telling me again and again that it is importing an appliance in it's title. It's too much information in the title.

I would suggest keeping "Importing Appliance" as the title and putting the detailed path of the appliance into the content panel of the dialog box. Or atleast do away the repetitive "import" and "appliance" words in the title.

Wednesday Jul 22, 2009

Why point fingers?

For the past few days, I have been pointing to various GUI bloopers that I have seen. Today's nugget comes from our own Solaris JDS screen to unlock a display. I am more than a 100% sure that this is a known issue, but I wanted to put the blooper here anyway.

Here's the screen that is displayed to me for about a second or two when I have typed in my password correctly and pressed Enter. 

When I saw this dialog box for the first time, my first reaction was, oh hell, perhaps the password was incorrect.

Look at this dialog box - there is so much wrong in there. First, the password text box is displayed as is. Now it may be that the text box is disabled, but to my eyes, it does not look so (even if it is, it shouldn't be there in the first place). Secondly, that poor little label telling us that the login was successful is a pauper on the screen when it should have been the king. And, the dialog box still tells me that the display is locked. Very confusing to me atleast.

Tuesday Jul 14, 2009

What the hell just happened?

I found another possible blooper. This time, it is the case of unclear feedback. It so happens that I wanted to follow CNN dot com live on twitter using Nambu. I got the following dialog box.

Fair enough. But after hitting Follow, I wasn't told anything. Apparently, the status bar at the bottom did show the status of the action:

Now it can be argued that this feedback is good enough. But I have the following problems with this feedback through the status bar:

  1. It is blending into the background. A green color or any other contrasting color should have made it clear to me. Alternatively, I have seen NetBeans employ a balloon to do similar things. It gives the user enough feedback when the action completed (image below).

  2. The "Done" message hardly conveys anything. What was done? A message like "Successfully following cnndotcomlive" or something similar would have been better.

Rohan Ranade's musings on anything and everything.


« August 2016