Showing posts with label software. Show all posts
Showing posts with label software. Show all posts

Sunday, 30 January 2011

The Devil's in the Details

A good piece of software should make boring, repetitive and error prone tasks easy. One of them that photographers face regularly is resizing a batch of images. The typical situation is the day after a party when everybody wants a copy of the photos you took, either by email or on a CD. Quite often, people don't want the full size but they'd quite like copies of all the photos. I found myself in such a situation on New Year's Day: 150-odd photos that needed resizing and burning to a CD. Luckily, I had my trusty Ubuntu laptop running Shotwell. Shotwell does exactly the right thing when you want to export photos: it allows you to resize them all to a size that you specify, as shown in the dialog below:

Shotwell's export dialog

Shotwell's export dialog

My laptop took a few minutes to resize all 150 photos when I exported them. Next to me was a friend who uses a proprietary operating system that shall remain nameless and who commented: Wow, that's cool! When I do that, I have to resize each photo manually and it takes ages! Sometimes the best features are the simple ones.

Saturday, 17 April 2010

Ubuntu Lucid Netbook Remix from Alternate CD

The Problem

I've had Ubuntu Netbook Remix running on my Asus EeePC 701 for some time. After upgrading my main laptop to the beta 2 of Ubuntu Lucid 10.04, I wanted to do the same to the EeePC so that I could test the new release, report bugs if I found any and generally benefit from the improvements in 10.04.

The first problem I faced was that the EeePC 701 I have only has 4GB of internal storage, which is just enough for Ubuntu but too little to enable me to do a straight upgrade from the previous version (Karmic 9.10). No problem, I thought, I can re-install from scratch as I really have nothing important on that machine.

I created a flash drive image from the UNR CD, as detailed on the Ubuntu web site, booted my EeePC from it and selected to install Ubuntu on the system. However, I then faced another problem related to the limitations of the 701 model: this model has a 7-inch screen with a resolution of 800x480 pixels, which is quite small and the Prepare Disk Space screen doesn't fit in that resolution, making it impossible to install. I duly reported the bug and wondered how I could work around that problem.

Installing from the Alternate CD

One of the great thing with Linux is that you always have a lot of options. Ubuntu in particular also comes with an alternate installer, which is text based and designed to work on very constrained hardware. Exactly what I needed!

I downloaded the alternate CD, created a flash drive image from it, booted the EeePC from it and started installing Ubuntu. The installation from the alternate CD is extremely easy and follows exactly the same path as with the standard CD, with the difference that you don't have the flashy graphical user interface. At the end of the installation, I had a perfectly functional Ubuntu system using the standard desktop. However, what I wanted was the netbook desktop.

From Standard to Netbook Desktop

The Ubuntu netbook desktop looks very different from the standard one but in practice it is just made up of a small number of packages.

Adding the Netbook Packages

Adding the netbook packages is extremely easy. Open a terminal and run the following command:

$ sudo apt-get install go-home-applet maximus\
 netbook-launcher window-picker-applet
Adding Launcher and Maximus to Application Startup

Once this is done, you will need to ensure the netbook launcher and maximus applications are started automatically. To do this, go to System -> Startup Applications and add two entries with the following commands:

  • netbook-launcher
  • maximus

Make sure that both can be started by starting them manually, either in a terminal window or via ALT-F2. Then, disable the desktop to ensure you don't accidentally click on it when you want to start an application:

$ sudo gconftool-2 --type bool\
 --set /apps/nautilus/preferences/show_desktop false
Customising the Gnome Panels

You then need to customise the Gnome panels.

Right click on the top panel, where the Applications menu is and remove it. Do the same with the Firefox and Help icons. Then right-click again, in an empty area, and select "Add to Panel"; add the Go Home Applet, which will add a small Ubuntu icon. Right click on that icon again, select "Move" and move it all the way to the left.

Right click on an empty area of the top panel and select "Add to Panel"; add the Window Picker Applet and move it to the left so that it is flush left against to Go Home Applet.

Finally, right-click on the bottom panel and select "Delete this Panel".

Log out, log back in again and you should have a full netbook desktop that look something like this:

Lucid Netbook Desktop

Lucid Netbook Desktop

At first, the favourites folder will be empty so you will have to add them yourself.

Final Changes

One final change I made to the installation is that I removed OpenOffice.org and Evolution. The former because it occupies a lot of hard disk space, the latter because it really doesn't work well on so small a screen.

Other Options

An alternative option to install all the required packages is to install the netbook meta-package:

$ sudo apt-get install ubuntu-netbook

I didn't try this so I don't know how much it installs and configures for you. One of the nice side effect of doing it the way I did is that it keeps some standard configuration, such as the multiple workspaces that you can access via CTRL+ALT+arrow keys. I find that this works particularly well with the netbook interface.

Saturday, 14 February 2009

Designing Good Error Handling

Usability is an important subject in software design. Your application can be the coolest thing since sliced bread, if it's difficult to use, people will just not bother. We all know that. There are lots of books and articles on usability. However, such material often forgets about one important aspect of usability: error handling and messages. When your application encounters an error, whether it is due to something the user did or to a bug, it is extremely important to ensure it behaves in a way that makes sense to the user, even more important than for normal behaviour. This is because when an error occurs, your user will typically be stopped in his tracks and asked to resolve a problem he wasn't expecting to be faced with. If the error handling adds to the confusion rather than help, the user will not know what to do and his confidence about the application and his own ability to understand it will significantly diminish. So here are a couple of example of what not to do, helpfully provided over the past week by applications I use at work.

Cryptic error message

We use Borland StarTeam at work to manage change and configuration. When starting the application earlier this week, I was faced with the following error message:

Borland StarTeam error message consisting of a single zero

Yes, the error message consists of a single zero. Difficult to do any shorter or any more cryptic. At that point, I am given two options: a Details button and an OK one. Assuming the Details button may lead me to a more understable explanation, I clicked it and it showed me the following message:

Borland StarTeam detailed error message showing a Java exception

This is absolutely meaningless for anybody who is not a Java developer. And even for those who are, it doesn't really help, it only shows that there is a bug in the product where an internal array is not checked for size before accessing its first entry. It doesn't tell me whether the application will keep working or whether it will horribly crash when I click OK. It so happens that clicking OK made the message box disappear and the application kept working normally after that.

So, how can we improve on such a message? The best way in my opinion would be to display a message to the user explaining that an internal problem has occurred in the application and how they can report it to Borland. What is displayed in the details screen would be invaluable to the developers in order to correct the bug. So directions on how to send that information to the product team would make the user feel that the company cares about the qulity of their product and that they are ready to receive bug reports. Not all users would actually go through the steps of reporting the bug but some would.

Lack of information

Another error I was faced with this week came from the automated backup tool. This tool, which is installed on all laptops will continually backup changes in the user's folder to a central server. It runs in the background, is relatively unobtrusive and flexible enough that you can select sub-directories that you don't want to have backed up. However, it sometimes require your attention and will pop up a message. I was faced with this one yesterday:

Error message saying: Part-complete actions have been found due to an interruption during last sync. Click OK to complete there actions before scanning. Click Cancel to continue with the scan and ignore the part-completed actions

Contrary to the previous example, this message is in plain English and I can understand every word of it. However, it is worded in such a generic way that I have no idea whether I should click OK or Cancel. I don't know what part-completed actions it refers to and therefore don't know whether those actions should be completed or not. I suspect that they should because the default button is the OK one but I can't be sure. Also note that the word scan is misleading: it only makes sense to me because I have a fair idea of how the backup tool works but it could make the user think this is a message from the anti-virus system.

So, what could be done to make it more useful? First, the message should identify what application triggered it. It is important in this case because it is triggered by a background process and is completely unrelated to what the user was doing at the time. Then the obvious thing to do would be to detail what actions are pending and require attention. However, this may not be enough. If the actions' descriptions are too cryptic, that won't help the user make a decision. So the message should also ensure that the descriptions for the pending actions are clear and concise.

Conclusion

Usability is good but it should also go hand in hand with error handling. So next time you design a piece of software, make sure all the error messages that can potentially be displayed to the user are clear and include enough information, especially if the user is expected to take a decision based on the message. If the message is triggered by an unexpected error, consider giving the user a way to report the error so that you can correct the bug in a subsequent version.

Sunday, 1 February 2009

Canon and Linux, part 4

For the background to this post, see part 1, part 2 and part 3.

Having had no news from Canon for nearly a month, I was about to send them another message when I received the following email from their helpdesk:

Recently you placed a Support Request with Canon Support Centre.

To ensure you received the best possible service we would like to confirm that your request has been handled satisfactorily before it is closed. A description of your request follows:

Please use the following URL to confirm whether your service request is complete or still needs to be addressed: some long URL

YOU HAVE FIVE (5) DAYS IN WHICH TO RESPOND. IF THERE IS NO RESPONSE, YOUR REQUEST WILL AUTOMATICALLY BE CLOSED BY THE SYSTEM.

So I went to the URL provided and responded by saying that I had not had a reply at all and that my request was still open. I then received the following email the very next day:

Please find attached that latest firmware version for your EOS 5D (Version 1.1.1).

As requested I am sending it to you in a ZIP file as the EXE download is not suitable for your Linux operating system.

Please go to the following link where you can find instructions on how to upload the firmware to your camera.

http://web.canon.jp/imaging/eos5d/eos5d_firmware-e.html

Please take careful note to the End Users Licence agreement at the bottom of the page.

Also I would like to state that you have decided to take full responsibility for the installation of the firmware, and we have sent the firmware in this format knowing that you agreed to our conditions.

At last, I had a version of the firmware that I could unpack on Linux! It was then just a matter of following the instructions:

  1. Unpack the zip file and extract the .fir file that it contains;
  2. Format a memory card in the camera;
  3. Move the .fir file to the top directory of the newly formatted memory card;
  4. Insert the memory card back into the camera and upgrade the firmware.

All went without a hitch. Considering that the only reason a computer is needed in order to upgrade the firmware is to copy the .fir file to the memory card unmodified, Canon has no real software to write: any computer that can write to the memory card can do that. Therefore, I fail to see why Canon insist on providing versions of their firmware that can only be unpacked on Windows or Mac OS-X and why they go through such an effort to explicitly shift the responsibility of the upgrade to me because I use Linux. Well I suppose the reason they do this is to limit the number of variations they have to support in testing firmware upgrades. But surely, there is a better way to distribute firmware that would not require me to explicitly contact customer support for it.

Friday, 2 January 2009

Canon and Linux, part 3

For the background to this post, see part 1 and part 2.

I got an answer from Canon on Tuesday:

Dear Customer,

Thank you for your query regarding the Firmware update for your EOS 5D.

As the versions available for download are only compatible with Windows and Mac, we could produce a zipped up version of the .FIR file so that you can update your firmware on your Linux computer.

Please note that whilst we try our best to ensure the file we provide you with is virus free, you must install the firmware entirely at your own risk.

Could you please also confirm that you have an EOS 5D.

Some progress then. However, they ask me some more questions, to which I can give the answers but you can't reply directly to their support email address, you have to go through the standard form on the web site again. I did that and asked the following question:

Dear support,

Yes, I can confirm that I have an EOS 5D and I am happy to update the firmware at my own risks. Have Canon got any plans to offer a zip version of the firmware in the future in order to support all their customers equally?

So now I'm waiting for the next answer. This whole malarkey of going through the web form every time means that there are potentially 2 to 3 business days delay for the answer to each new question even if it relates to the same problem, which can potentially drag things out a lot, especially considering the web form is limited to 4000 characters!

Monday, 29 December 2008

Canon and Linux, part 2

5 days ago, I sent a complaint email to Canon about their lack of support for Linux (or any operating system other than Microsoft Windows or Apple OS-X) when it comes to upgrading the firmware of my camera. I received this standard email reply today:

Dear Customer,

Thank you for your recent enquiry regarding your Canon product.

Your query has been sent to the appropriate group and is currently under investigation.

Yours sincerely,

Canon Support Centre

Should our answer not fully resolve your problem, please feel free to either re-submit a new query by clicking here, or alternatively call our support helpdesk at 08705 143 723 Monday to Friday from 9:00AM to 5:30PM stating the 7 digit reference number in the subject of this email.

We aim to answer queries as soon as possible. Responses on average take 2 to 3 business days (or the next working day if submitting on a weekend or public holiday).

If I read between the lines, it looks like the Christmas period was out of hours so the average of 2 to 3 business days probably starts now.

Wednesday, 24 December 2008

Canon and Linux

I've now been the proud owner of a Canon EOS 5D for a few years. I've never upgraded the firmware on it but tonight I thought I would investigate how complicated it was. I easily found the corresponding web page on the Canon web site. It seems easy enough: you get a .fir file that you put in the root directory of a newly formatted memory card and you then follow the upgrade procedure on the camera. All easy and simple. The only snag is that you get two version of the firmware package: a self-extracting .exe file for Windows or a .dmg package file for Mac OS-X. Both those options are proprietary so they don't work on Linux. Therefore, there is no way I can upgrade my firmware using my laptop. I could use the Mac desktop at home but I am not home right now. Furthermore, it's not even a software problem, it's just a packaging problem: there is nothing in the .exe or the .dmg apart from the automated unpacking. It would be so easy for Canon to offer a simple .zip file that can be extracted on any operating system. By any means, provide the proprietary formats for people who will benefit from them but also provide a generic format that can be used anywhere. So here is the complaint I registered on the Canon UK support site:

You offer firmware download on the Japanese site (http://web.canon.jp/imaging/eos5d/eos5d_firmware-e.html). Unfortunately, you only provide proprietary Windows and Mac packages. Using a Linux laptop, I cannot use those formats. If you were to offer a simple ZIP file for all other operating systems, it would enable all your users to update their firmware. As such, I feel treated like a second class citizen by Canon and it is very disappointing. I am happy to take complete responsibility for updating the firmware from a Linux machine but I would like to be given the option. Is there any way I can download a version of the latest firmware that can be extracted on Linux? If yes I would appreciate if you could provide me with the details of such a download.

We shall see if anything comes out of it. They promised to come back to me within 2 to 3 days. Then I went and filed a second complaint because their web site crashes when I try to log into it as a registered Canon customer but that's a whole different story.

Thursday, 30 October 2008

Intrepid Upgrade

Canonical released Ubuntu 8.10, code named Intrepid Ibex today. So obviously, I felt like I had to upgrade my Hardy Heron (8.04) T42 tonight, especially considering that Canonical have advertised this release as focused on the desktop and mobile computing so should be ideal for a laptop. As usual with recent Ubuntu releases, once the 1466 files my upgrade needed were downloaded, the rest of the process was a breeze and I am now writing this on a newly upgraded machine. Well done to Canonical for making it easy and idiot proof. So here are my first impressions, in no particular order:

  • The Gnome theme is slightly more streamlined and looks good.
  • I was expecting OpenOffice.org to be updated to v3.0 but that wasn't the case and Intrepid keeps v2.4. Hopefully, an upgrade to 3.0 will be available later.
  • There is a new Create a USB startup disk option in the System, Administration menu. I'll have to try that out!
  • There's a Recent Documents sub-menu in the Places menu. This will definitely come in useful.
  • The Shutdown button that used to open a dialog box box has been replaced with a drop down menu that includes a Guest session option: makes it easy to lend your machine for a few hours to a friend without being worried about your files or having to set up a special account.

Everything else looks like Hardy but I'm sure I'll discover new changes as I use the machine more.

Monday, 26 February 2007

Software Patents in the UK

Tony Blair had been busy answering petitions on the No 10 website recently and he has just replied to the one on software patents. The response is short, straight to the point and says that no patents should exist for inventions which make advances lying solely in the field of software. So in theory it's all good and it means that software patents are unenforceable in the UK. Of course, there will be a grey area for everything that is not purely software or depends on particular hardware. Mobile phones come to mind as such an example.

This is a step in the right direction. Let's hope a European directive or a future government doesn't contradict it now.

Tuesday, 16 January 2007

OS-X Instant Messaging

Apart from iChat, that comes bundled with OS-X but can only connect to a limited number of networks, most OS-X versions of instant messaging clients, like MSN Messenger, are fairly poor compared to their PC counterparts. An interesting alternative I discovered recently is Adium. It is quite basic in terms os features so far but it can connect to an impressive list of networks, including MSN, Yahoo, Google Chat, ICQ and quite a few obscure ones, which means that you only ever need one chat client open. It currently doesn't support voice or video but it's definitely on their to-do list. Nor does it support extended animated smileys like MSN does, although you could argue that's rather a good thing. A very nice feature is the ability to use tabs rather than individual windows for each thread of discussion. You can even have a hybrid setting whereby you have one window per group of contacts and tabs inside each window. And of course, in typical open source geeky fashion, most settings can be changed through the preferences and you can completely customise it using AppleScript.

Monday, 30 October 2006

Sync your Nokia phone with your Mac

I have a Nokia 6234, a model that unfortunately is not supported by iSync on the Mac out of the box. I have been looking for a solution more or less since I got the phone and today I found it on .mactomster. They offer an iSync plugin for a large variety of Nokia mobile phones. The site is all in German so it took me a few minutes to work out that I had to register before I could download the plugin but I eventually got there. Luckily the installation instructions also come in English but they are so simple it would be difficult to get it wrong. Once I had downloaded the plugin, it took the whole of 5 minutes to have it installed and my data sync'ed. What more could I ask for? This is what software should be like!

So, if your Nokia phone is one of the unsupported models on the Mac, get this plugin and you'll be sync'ing in minutes. Then make sure you click the Paypal button as those guys definitely deserve your support.