Wednesday, 8 December 2010

Killer Android Apps

There have been plenty of articles written around the web about the top or best Android apps.  I always find these lists very subjective but they are at least a good way to share what you've found and a great way for other users to discover new apps they've not tried yet.  I've been using an HTC Desire for over six months so I'd consider myself a reasonably experienced user now.  It's a world away from the Nokia N73 I was using previously and my first foray into wifi-enabled portable touch screen devices (for personal use anyway).

Rather than bother myself considering which is the most useful, here's an alphabetical list of the apps I'm using right now.  I'd love to hear what other people are using for similar things, there's so many good apps out there I'm sure to have not checked them all out.

Angry Birds (Game)
There's loads of games on the Android platform but this is the one I've spent most time playing.  I'd be very surprised if you haven't come across it by now but if not then give it a go.

Barcode Scanner (Bar Code Scanner)
When I first got the phone I really didn't see the point of having a barcode scanner.  It has, however, proven quite useful on occasion.  I've yet to use it to scan any tangible product in a shop for example.  Where it does come into its own is opening links from the web on your desktop in your mobile browser.  I have, on more than one occasion, now come across sites that provide a QR code (2d bar code) that gives you a link to a web page or even better gives you a link directly to the right app in the marketplace.

eBuddy (Instant Messenger)
A multi-protocol instant messenger for Android.  It connects to all the instant message services I use and gives me a nice way to increase the amount of time I spend logged into them so I can still be contacted even when not directly using a computer.  I use a multi-protocol client on my desktop so it's great to find a decent one on the mobile platform which means you don't have to run individual apps for each of the services you want to log into.

ES File Explorer (File Manager)
The version of Android I have (2.2 from HTC) doesn't come with any sort of file manager or mechanism for installing APK files.  ES File Explorer is excellent for both of these tasks.  It's the best and most flexible file explorer I've come across but for some reason isn't the most popular or widely known/used.  It has some neat advanced features such as the capability to connect to files over FTP/Samba and integrated bluetooth, etc.  A real step up from any of the other file managers I've seen on Android.

Google Reader (Feed Reader)
As I write Google have just released the official app for their Reader service.  It's definitely an improvement over the mobile version of Reader in the web browser so I'd recommend it just for that.  However, it also seems to be (IMHO) better than other popular reader apps such as Feedsquares.  Personally, Reader is the only internet based feed reader I use so having something integrated to it on my phone is fab.

Maps (Navigation)
Google maps in an app.  You've almost certainly already seen it, but I still use it a lot and like it so it makes my list of useful apps.

RAC Traffic (Traffic/Navigation)
This is one area where I've not searched around much for other apps in the field.  The RAC traffic app shows you where the traffic hot spots and problems are on roads in the UK.  It's really useful to check this (when I remember to do so) before going off on a longer journey in order to help pick the best route that day.  I'm sure it can't be the best app out there for this sort of thing so would be interested in hearing about others too.

Scrobble Droid (Social Music)
I find the last.fm service on the Internet a really useful way to discover music and share music with friends.  I don't tend to use the last.fm clients to listen to music very much so that app doesn't feature on my list.  However, this is a really tiny but useful app (more of a utility really) that will send the tracks you play in the Android music player to last.fm.  This means anything I listen to on my phone gets added to my last.fm account and helps build my profile on the site.

Skype (Instant Messenger and VOIP)
Either you use Skype or you don't and you know what it is or you don't.  The official client for Skype on Android seems to be pretty good to me and a neat way to make free calls to friends over your wireless network.

Todo List Widget (Productivity)
I've tried several todo list apps and widgets on Android but essentially wanted something stupidly simple that would literally just shove a list of stuff on the desktop and allow me to add/remove/tick off items as I deem necessary.  Through a recommendation from a friend I found a widget called "Todo List Widget" which does just that, it's everything I wanted, very very simple and easy to use.  If you want something advanced or more pervasive across devices this isn't the one for you, check out something like Remember The Milk instead.

TweetDeck (Social Client)
I've ditched the Facebook and Twitter apps in favour of using the same app on the phone as I do on the desktop.  I've never experimented with Adobe Air but TweetDeck seems to be a great example built on that platform.  I find TweetDeck much more usable than the other apps and it does seem to just work, is intuitive and nice to use.  Once again a great user experience wins the day on the mobile platform.

Youtube (Video)
Ever tried watching videos in the web browser, they're rubbish right?  The bulk standard youtube app sorts this out nicely, giving a much better view and size of the video and easy to use controls.

I found some other useful apps on my phone too that I have used briefly but can't necessarily recommend with the apps above because I've not used them extensively enough.  These are "AndChat" for IRC related chats, it seems to be very similar to xchat but for Android; "c:geo" for Geocaching as it appears to be a fully functional geocaching app you can use out in the field while caching; and "Gesture Search" which is a Google app which allows you to very neatly search for things (apps, contacts, etc) on your phone via gestures.

In full Trevor McDonald style I'll sign off this post with an "And finally" thought... wouldn't it be really useful to have a social market place where you can suggest and rate apps to friends?  The ratings system in the market place is all very well but isn't particularly relevant to me.  My friends and contacts know me best and I respect their recommendations much more than a generic ratings system.  This sort of functionality would certainly remove the need for this type of blog post entirely.

Tuesday, 1 June 2010

Joggler Linux Boot Mysteries

PCs boot first using a system known as a BIOS (basic input output system), that's the bit you might see when you very first switch on your computer and might say something like "Press F1 to enter system menu" or similar. The BIOS is responsible for knowing enough about your hardware such that it can start the computer, run your boot loader and ultimately pass on some information to your operating system which takes over control of the hardware. The Joggler doesn't boot using the mechanism most of us as PC users are familiar with, however, abandoning the BIOS in favour of EFI (extensible firmware interface). EFI is much bigger, more flexible and inevitably a lot more complicated than the older BIOS system. I'll attempt to unravel in simple terms some of the mysteries of booting your own operating system on the Joggler here.

EFI has its roots in Intel in the same way as a BIOS has its roots in IBM.  Basically, it consists of a set of executables able to run within the simple environment EFI provides.  These executables are just little computer programs that can vary extremely widely from talking to a piece of your hardware to providing you with a shell environment in which you can interact with EFI through to booting your operating system.  This last function is quite important to us as computer users if we're to understand how EFI is used to start your machine, in this case your Joggler.  A BIOS will boot your machine by looking at the master boot record and starting the boot loader that your installed operating system has put there; your operating system is responsible for booting itself.  EFI does away with this, moving the responsibility for booting operating systems into the firmware interface itself, you no longer need a boot loader for your operating system.  Instead, the boot loader is now just another EFI program that runs within the simple EFI environment I mentioned earlier.

You've been wondering what this FAT partition on your Joggler image is all about?  FAT is just another file system like NTFS for Windows or ext for Linux, it's very widely understood so is commonly used these days on USB sticks but not necessarily many other places.  If your disk is to be used to boot an operating system then EFI says you need a FAT file system as the first partition of that disk.  EFI actually says FAT12 or FAT16 must be used for "removable media" so for us Joggler users with USB sticks or hard disks we should be using FAT16 even though EFI can understand FAT32 as well.  You could boot any other disk from your FAT partition but all the simple Joggler cases would just involve booting an operating system somewhere else on the same disk i.e. the second partition.

Fortunately for us, when you start your Joggler its EFI looks both at its internal disk (the one with the O2 interface on it) and removable media (your USB disk).  The FAT partition is discovered on your USB disk and by convention the file called startup.nsh is executed.  This file is simply a script which can be used to execute any EFI script commands you wish.  For Joggler USB booting it just runs a local script on your disk to start your boot loader EFI program.

So for the Joggler we might have something like this in startup.nsh on our disk in order to call the boot.nsh:
fs1:boot2
fs0:boot


And the following in the file boot.nsh to start the grub EFI boot loader program:
fs1:
grub


You now know what to do in order to boot your Joggler from a USB disk but the final missing piece to the puzzle is the EFI boot loader program itself. In the example above I used grub as the boot loader program. Yes, this is the same grub you're familiar with from booting Linux on BIOS based machines. However, in this example it's an EFI program so you'd be right to be wondering how you go about getting a copy of it.  In my example here your FAT partition already has 2 files on it (startup.nsh and boot.nsh) and you'll need another 2 files (grub.efi and grub.cfg) to be able to boot your disk

There are two versions of grub.  The old version, grub 1 or grub legacy as it's know known is not the one you want.  You're looking for the current version which is (or will become) grub 2.  At the time of writing grub 1.98 is the latest version, download the released version.  Unfortunately, it doesn't work on the Joggler without applying a patch.  So it's with thanks and reference to the guys over at Joggler Hacks I got my Joggler booting with my own grub 2.

To compile an EFI version of grub 2, unpack the source you've downloaded, then apply the Joggler grub 2 patch (using patch -p1), run ./configure --with-platform=efi and make.  The compilation should proceed through to completion leaving you just finish off by making the grub EFI program.  You can do this with ./grub-mkimage -d . -o grub.efi part_msdos hfsplus fat ext2 normal sh chain boot configfile linux.  The file grub.efi will be created and you can copy this to your FAT partition.

The one remaining thing to do is create the grub configuration file.  In grub 2 this is called grub.cfg and can be put in the root directory of your FAT partition with the other three files already there.  If you've got your root file system on your second partition then the following should be enough for you to boot it:
set timeout=0
menuentry "Linux" {
set root=(hd0,1)
linux /vmlinuz root=/dev/sda2 acpi=force ro idle=halt
initrd /initrd
}


This configuration requires your kernel (vmlinuz) and ram disk (initramfs or initrd) to be on the FAT partition too.   The final piece to the puzzle is to copy these files from your installed version of Linux in the second partition from the /boot directory.  With all six files in place on the FAT partition you're all set to boot the OS on the second partition.  Most recent versions of Linux should at least boot on the Joggler. However, the Joggler does have some interesting hardware which may not be optimally supported.  Hence, for the quickest out of the box working system you're still better off using a pre-built image from someone else as now you've got the thing booted the hard work is only about to begin.

You can find a lot more of my information about the Joggler at my Joggler Index post. I also have a list of Joggler Bookmarks.

Sunday, 30 May 2010

Upgrading Fedora 12 to 13

I'm pleased to report that after problems upgrading from Fedora 10 to 11 and minor issues upgrading Fedora 11 to 12 that I've finally had a no problem upgrade from Fedora 12 to 13 on my home machine.

I have only a very slightly unusual setup in that I've got Fedora running on top of a hardware RAID environment which has caused some issues with preupgrade in the past. Upgrades I have tried on other equipment such as my work laptop have always been flawless and now it seems the issues with RAID installs have gone away too.

So this brings to an end my blog trilogy about upgrading Fedora, short and sweet, it just works! Now onwards to enjoy using a great new distribution that's pushing the boundaries in pretty much every area of Linux usage. Thanks to the Fedora team, Goddard looks fab.

Tuesday, 25 May 2010

Pre-built Joggler Images

It seems everyone buying a Joggler is doing so for their own good reasons with thoughts about how to hack the device to their needs. I include myself in this too, why else write these blog posts? The majority of people aren't so interested in the hacking side of things as simply getting the device to do what they want and that's where using a pre-built, already hacked, operating system image can come in very handy indeed.

The Images
Easily the two most popular images are Ubuntu based although there are Joggler communities for Android, Mer and Meego, all of which are Linux based platforms. I've only tried the first of these but can lend my recommendation to either of

As I said, both are Ubuntu based with the key difference being the first image uses the Ubuntu Netbook Remix (a.k.a UNR, Ubuntu Netbook Edition and UNE) while the second one uses "normal" Ubuntu.  You'd perhaps expect them to be in fierce competition with each other but in good open source spirit quite the opposite is true. Both are produced by nice guys who help each other (and the rest of the community out) by sharing what they do.

There's no sense in me reproducing how to download and use either of these images.  Both come with pretty bullet-proof instructions on what to do.  I would, however, heartily recommend you produce the images from a Linux system having recently helped a friend struggling with downloading the images successfully and finding the right tools to do the job under Windows.

Fair's Fair
From my own investigations and messing around with putting Fedora on the Joggler I can certainly vouch for the amount of time and effort these guys have put into producing such good quality, usable hacks.  So, if you do more than just evaluate these for your own use i.e. you really are using your Joggler with either of these images then do give serious consideration to spending a few quid giving something back to the guys as they ask through a small donation.  I have no idea how much they might stand to make through donation and other revenue such as the Google ads, but it's probably not a huge amount and is definitely well earned.

Modification
If you try the images out and there's something you don't like, fine, you don't have to stick with that particular quirk.  There's never going to be a one-size fits all approach so if you don't like, for example, the on screen keyboard, the user interface or something else then feel free to change it.  It's your system once you've downloaded and booted it after all.  There are a lot of, dare I say, complaints on the forums about things not being quite right.  If it's something major then let the guy know who produced the image, it will probably get fixed in their next version.  Also, there's a huge wealth of help and support out there in various places so try looking for someone who's already "been there, done that".

Subject to some of the Joggler Hardware Gotchas it is possible to use these images on devices much bigger and faster than a 4GB USB stick.  I've tried with an 8GB stick and USB hard disks from 80GB through 320GB and even one disk of 1TB.  Simply follow the instructions for either image to write to your larger device as if it were a 4GB stick.  Then use a tool such as gparted (again I recommend Linux simply because it's easy and the tools are readily available) to resize the second partition to be as big as you like.  If you move to a hard disk (rather than USB stick) then you can undo some of the modifications made in the images for efficiency and to try and protect your stick:
  • Change the file system back to ext3 from ext2
  • Add a swap file or swap partition
You can change the file system type from ext2 to ext3 either before or after changing the size of the partition.  Simply boot the image on your Joggler and run the command "tune2fs -j /dev/sda2" then edit the file /etc/fstab to change bit that says ext2 to say ext3, save that file and you're all done.  The reason for making this change is your files will be a little safer in the event of unplanned events such as sudden loss of power.  This was quite rightly turned off for the USB stick images because more data is written to the device and since USB sticks are only capable of being written to a relatively small number of times the trade-off between stick reliability and file system reliability has to be made.

Adding a swap file (if you don't know what this is then have a go at understanding paging)is probably easier in many ways than adding a swap partition and with a recent version of Linux such as the ones used in these images doesn't lead to any loss of performance as might have been expected in older versions of Linux.  Feel free to add a swap partition in gparted though, don't forget to add a line to /etc/fstab to tell Ubuntu to use this partition as swap.  To add a 1GB swap file simple run the command "dd if=/dev/zero of=/swap bs=1M count=1024; swapon /swap" then add a line to /etc/fstab so next time you reboot Ubuntu will use this file for swap space.

You can find a lot more of my information about the Joggler at my Joggler Index post. I also have a list of Joggler Bookmarks.

Friday, 21 May 2010

Joggler Hardware Gotchas

I haven't (so far at least) attempted to modify my Joggler hardware in any way. It is possible to do so in order to, for example, add an internal USB port. If you're interested in this sort of thing then have a look at the Hacking the Hardware section over at the Joggler Wiki. I have spent a reasonable amount of time playing with the hardware now though so here's my list of things to be careful about.

GMA 500
Contrary to Intel's usual position with regards Linux support, the GMA 500 chipset is an absolute abomination.  The basic reason for this is they license some of the technology from elsewhere so are unable to provide the full source code to the community.  This means parts of the drivers for the GMA 500 chipset are binary only, cannot be shipped by any of the Linux distributions, so must be downloaded individually by each user.  This driver is known as IEGD (Intel Embedded Graphics Driver).

There is an open source alternative known as PSB (or the Poulsbo driver).  Support for this in the Linux distributions is patchy at best.  Earlier versions of Ubuntu and Fedora have better support for this driver as it best supports earlier versions of Xorg, namely version 1.6.4 and below.  The PSB driver has very recently been patched to support Xorg 1.7 and later so should soon start to work with Fedora 12 and above and Ubuntu 10.04.  The patch was written by someone in the Mandriva community and has been made available for Fedora 12/13 by a Red Hat employee netbook enthusiast.

I have tried both drivers on Fedora 12.  I was unable to get Adam's PSB driver to work (the akmod failed to compile) but I do have a fully working Fedora 12 graphical system using the IEGD driver.  There will be more about how to get all that going in another blog post soon.

It's a shame the Joggler (and most netbooks) use this chipset.  Before investigating you would think Linux would have superb support for Atom based netbooks given many of them have previously been sold with a Linux pre-install version.  My guess is the lack of support for current distributions is why we don't see new Linux pre-install netbooks any more.  This can only be due to demand though, Intel would support later versions if a vendor was willing to pay for support but the market has to be there in order to make this worthwhile (rant over).

USB power
The power provided by the Joggler's USB port is dodgy (technical term) at best.  In order to support that claim I have tried several different USB hard disks (1 Lenovo, and 2 Freecom disks) and only non-bus-powered ones have worked reliably.  The Joggler simply isn't able to provide enough power to operate these drives, two that I tried span up but didn't get enough power to move the disk heads, the third (a brand new Freecom mobile drive classic 2) does work but occasionally drops out causing the OS to crash.  My recommendation is to provide an external power source if you're connecting much more than a USB stick to your Joggler.

Options then, well you can either mains power your device(s) or power from a USB hub.  Either of these work reliably in my experience (I've tried a mains powered 3½" disk and powered hubs with my 2½" disks) but still there's one more problem.  If your device passes power back into the Joggler itself, it wont boot and you'll end up in the O2 interface.  You'll know if your device is doing this as the Joggler backlight will be lit even if the Joggler is not plugged into the mains! So now you have 2 options again, (1) stop your device passing power back to the Joggler, and (2) butcher a USB cable.

You can stop your device from passing power back to the Joggler (if it is doing so) by buying a decent powered USB hub. I'm using a Plexus hub I bought from eBuyer along with my Freecom disk.  I have tried some cheaper powered hubs but they also passed power back to the host so while allowing me to connect multiple devices didn't solve the problem I was having.

The USB cable butchery option isn't as bad as it sounds.  USB cables have 4 wires in them, white and green for data, black for earth and red for live.  Simply grab the cable you want to connect your device with (whether it's the device itself or a cheaper powered hub which is passing power back to the Joggler), cut part of the outer sheath away (about an inch will do) somewhere along the cable length, find the 4 cables inside (getting through any braiding or foil that might be in your cable depending on how expensive it was), then simply cut the live wire.  Make sure the live ends are not touching each other with some insulation and you can wrap the cable back up again.  That's it, you've now got a Joggler compatible USB cable which wont pass power back to the Joggler but, obviously, wont power your device either.  The Joggler is able to detect you've got a drive as part of the circuit is still there via the ground cable and data will flow as normal along the untouched data cables.

Partitioning
This observation is a real oddity for which I have no explanation (suggestions welcome).  The Joggler will not boot from your USB device if it has 4 primary partitions, don't ask me why, yes it should work, but it just doesn't boot.  Using 3 primary partitions works, up to 2 primary partitions, an extended partition and as many logical partitions as you like also works.  But, give it a device with 4 partitions on and it's game over as far as booting from that device is concerned.

Usability
Some people have mentioned to me about not finding the touch screen very user friendly while running Linux. When compared with the O2 interface that's a pretty fair comment as things tend to be a lot smaller on Linux vs O2. There are various tweaks you can make to your desktop depending on your personal preference such as:
  • finding an on-screen keyboard you're happy with (onBoard vs Cellwriter for example)
  • increasing the font size such that all the things you want to touch (click on) are bigger (do this under System->Preferences->Appearance->Fonts in Gnome)
  • installing touch screen addons for your programs (such as chromeTouch for Chrome)
  • Make your scrollbars wider
If you've decided the touch screen really isn't for you then look into getting a keyboard/mouse solution or a stylus. For keyboards/mice you'll need a USB hub so you're able to attach more than one device to your joggler. I have and can recommend a wireless BTC keyboard with built in joystick (for mouse control) which uses a radio signal via a USB receiver. You can use any USB keyboard/mouse you like though but I'd recommend something compact and wireless, there's always Bluetooth too for which you can get some pretty tiny receivers these days. If you go for the stylus option there's plenty of commercial solutions out there for capacitive touch screens. I quite like this DIY Stylus as an option, however.

You can find a lot more of my information about the Joggler at my Joggler Index post. I also have a list of Joggler Bookmarks.

Thursday, 20 May 2010

Getting a Joggler, the how and the why?

Buying a Joggler is pretty simple, you can just go to the O2 shop and get one for one hundred of our UK pounds, or fifty if it's on sale.  The reason for putting "the how" in this isn't to teach you how to buy stuff on the net.  No no, more to say you can get it for less than fifty quid if you're careful!  Those of us who work for IBM have been buying them through a money saving web site we have access to as IBMers such that you buy the Joggler and a PAYG Mobile Internet USB dongle (which you're not obliged to use) for a total of £60 and get £25 cashback for doing so.  That's £35 for a Joggler and mobile Internet, bargain!  I would think this sort of offer must be out there in the wider world too if you look carefully enough.

So why do I, or you for that matter, want one?  There's lots of different uses for it.  Even if you look at it as a dumb wireless digital photo frame then it's far cheaper than other wifi frames out there.  The neat thing about it is it runs a version of Linux internally, has a USB port and is also capable of booting from USB.  This means you can run pretty much anything you like on there instead of the default O2 interface.  So, it's the ideal hacking toy and can become a fully fledged computer system disguised as a photo frame if you choose to do so.  The sky is the limit.

For me, I use it as a low power home server running:
  • remote login to home (ssh)
  • music streaming (squeezebox server)
  • internet connected photo frame (gphotoframe)
  • trivial internet browsing (chrome + touchscreen addon)
  • file server (nfs, http, ftp, smb, etc as required)
  • backup server (rsync) 

I've also found it very useful to have a computer connected to my printer for wifi print serving from my laptop in the past.  Currently the Joggler isn't located next to my printer so I'm not doing this but it's definitely an option for the future.  Similarly I may eventually reconnect my current cost meter for home power monitoring, sending daily electricity bill via email, graphing and storing stats.  Another use I could put it to is as a WOL client so wake up other machines in the house remotely so I don't leave them powered on all day (not that I do this anyway), but I haven't configured WOL yet.

Not investigated yet but it seems to me it should be possible to run the OpenPeak apps on Linux too.  These are just flash applications so I should be able to run them on the Linux desktop without any issues which would provide me with the same functionality I would get from the original O2 interface under my own Linux.

You can find a lot more of my information about the Joggler at my Joggler Index post. I also have a list of Joggler Bookmarks.

Wednesday, 19 May 2010

Joggler Index

This post will be kept up to date serving as an ordered index to my notes about the O2 Joggler; essentially a glorified digital picture frame with a touch screen.  All posts will use the joggler tag too but these may appear in any order.

The very brief tech spec is:
  • Intel Atom Z520 with GMA 500 chipset
  • 512MB RAM
  • 1GB Internal Storage (to run the O2 operating system and interface)
  • 7 inch touch screen
  • USB port, audio jack, wired Ethernet and wireless network
I have a list of Joggler bookmarks.

    Thursday, 25 February 2010

    Letter to Altonians

    This is an open letter to the people of Alton in Hampshire, my home town:

    People of Alton (and there abouts),

    There is a battle raging in the town over whether the Coors Brewery should be permitted to sell their sports facilities (what's known as the Bass sports ground) near Anstey Park.  Many of the local residents object to this for many reasons:
    - there is a covenant on the current sports ground stating it should remain in use only for sport
    - relocation of sports facilities to Anstey Park means massive loss of public green space in the town
    - the coors site would be redeveloped as a supermarket or possibly dense housing

    Why should the town lose a park so Coors can profit from land sales on which there is a covenant?

    If you agree, you can find out more information from:
    http://ansteyresidents.org.uk/
    http://www.weloveansteypark.com/
    http://saveansteypark.org.uk/
    or the Facebook group
    http://www.facebook.com/group.php?gid=299652801351

    Things you can do to help:
    Display the poster from the weloveansteypark.com web site
    Object to the two planning applications concerned,
      http://www.ansteyresidents.org.uk/object_to_footballhub.php
      http://www.ansteyresidents.org.uk/object_to_supermarket.php

    These campaigns are all fighting the same cause with the aim to protect our open spaces and ensure any development is sympathetic to the surrounding area and sited appropriately in the town.

    Thanks for your time in reading this,

    Graham White

    Wednesday, 24 February 2010

    New Lens

    I've saved writing about the new lens I was given at Christmas until I've had a decent chance to use it.  I've wanted this for quite a while now, inspired by my friend Mim and her wonderful portrait photography <shameless plug>you can hire her by the way</shameless plug>.  I'm deliberately not showing off any of my pictures in this post until I've got a little better at using it.

    My only other two lenses don't have a massive maximum aperture so it's great to finally have a fast lens in my arsenal.  The benefit of greater lens speed is to widen the aperture which allows for throwing the background of your subject out of focus.  This has the benefit of making the subject stand out and drawing the eye towards it.  It's particularly great for portrait work.

    The other great plus to this particular lens is it's just about the smallest, cheapest, lightest lens Canon make.  This thing is tiny, weighs something like 130 grams and is less than 80 quid!  It's just about the best bang-for-your-buck you can get in my opinion.

    Usage is obviously quite simple as it's fixed focal length so there's no zoom ring to worry about.  You only get a focusing ring and an auto/manual focus switch, no image stabilisation switch to worry about either.  It does feel very strange to use at the moment though, because of it's size and weight it gives the camera a completely different feel.  Not to mention that I'm used to zoom lenses so there's nothing to twist unless you're manually focusing.  You have to move yourself in order to frame the subject as you want and while none of these things are bad, it does give a different feel to the experience of taking pictures.  The results, though, speak for themselves, you can produce really great images from this lens which is a real shocker given the price.

    Saturday, 13 February 2010

    High Dynamic Range (HDR)

    Recently I've been playing around with creating HDR style images. I'll save the full technical explanation for someone else.  In my own simple words for the uninitiated, it's a post processing technique where you combine multiple images of the same scene taken at different exposures. The reason for doing this is that your camera is only capable of "seeing" a certain range of light and colours, you usually tell it which range to use i.e. whether you want an underexposed or overexposed image. Some scenes are too mixed in terms of different light levels, you could expose for the dark areas or the light but perhaps not both. This is where a technique such as HDR comes in handy, allowing you to retain the detail in the shady areas as well as the well lit areas for example.

    HDR images can look like they're not photographs, perhaps computer generated, depending on the algorithm used to render the final image.  However, in the right hands they can look pretty cool, for example this one from the Flickr HDR Group:

    I'm still very much learning, I've been working with these three images:

    My best attempt so far is:

    I think I've still got some way to go, but it's been fun trying and learning.

    Thursday, 4 February 2010

    Contributing to BloGTK

    I was meaning to talk about BloGTK before my previous post on the topic but never quite had the time so here's a quick follow-up to fill in the holes...

    At the end of last year I decided it was about time I filled in a scripting gap in my knowledge, namely Python, so set about finding something to code.  I'm also a blogger (D'uh) and have always been frustrated at the lack of a decent off-line client for the Linux desktop.  Enter BloGTK, both a blogging client and written in Python.

    Step 1 before thinking any further about contributing or reading any source code is to seek permission from my employer.  I was glad (and surprised) to find getting permission to contribute to open source projects is actually very quick and simple.  A short note to my manager and a couple of days delay later yielded the rather simple response:
    Graham

    Approved

    Regards, ...

    BloGTK didn't do a couple of things I consider essential for my blogging purposes, the main one being support for uploading and embedding images.  I wrote and submitted a couple of patches to the project, learning a lot about Python along the way.  The latest development snapshot of BloGTK (which will probably become version 2.1) includes support for uploading to Picasa and Flickr.  If you went looking for Flickr support as a result of my previous post then you'll either have to grab the development code early or wait a while until the release of the 2.1 version.  In the mean time I'll do battle with Flickr to find out why they think BloGTK is a personal web site or gallery in order to publicise the App through the App Garden.

    Tuesday, 2 February 2010

    Flickr Appgarden Violation‏, really?

    Today I unexpectedly received the following from Flickr in reference to BloGTK.
    Hello,
     
    The App Garden is a place for software developers to
    showcase applications they've created. Because your app
    doesn't appear to fit this description it has been set to
    private.
     
    Your API key is still active and fully functioning , it's
    just not public in the App Garden.
     
    The App Garden is not a place to showcase a personal
    website or gallery. Please only publicize app pages for
    applications that you have developed and that are related
    to
    the Flickr API. You can review the App Garden guidelines
    here:
     
    http://www.flickr.com/services/apps/about/
     
    Thank you for your understanding.
     
    Regards,
    Flickr Staff
    I hold Flickr in very high regard for their openness, interaction with the community and the great API.  This is also the reason I'm happy to sign up for a pro account vs other services I use heavily (such as Geocaching.com) which are a closed managed community.  So I was surprised to find this note in my inbox this morning which appears to be an automated message or at best the staff member simply hasn't looked at the application before criticising and taking action.

    Sunday, 3 January 2010

    Teach, Yourself

    ChalkI've recently had the opportunity to teach a class of students on a couple of different occasions. Something I've not done for quite a while now but something well worth doing every now and then. I say every now and then, I don't think I have the vocal stamina to do it for more than a few days and I especially don't think I have the special quality it takes to teach children. The classes were both very different, one a knowledgeable internal audience for a days course, the other a three day course for a customer where the participants were only a short way along the road towards learning what I had to say. Both were similar, on the topics of Linux cluster administration and all the various technologies it takes to run a cluster.

    Clustering technologies really are varied and it takes a few years experience before an administrator has a good overview of the inner workings of how everything hangs together. For example, I mostly covered Linux administration and clustered administration with xCAT but to fully understand it you need a fair bit of background knowledge. Your Linux OS, hardware configuration and control, network architecture, storage, clustered file systems, remote management, parallel computing, computer service (NTP, DNS, FTP, NFS, HTTP, TFTP, etc) administration, etc. The list really is quite long and while this is starting to sound like a "Look at all the stuff I know!" blow-your-own-trumpet type blog post, the point I think I'm trying to make is the list of people who know (and I mean really know) all this stuff in any given company isn't very long. You'll know the guy, the one who everyone always asks when something is wrong with their machine, the "he fixes everything" guy. While these people are hard to find locked away in a small room somewhere (think IT Crowd), it can be even harder to teach the "I already know quite a lot" guy but I took up the challenge anyway.

    There's nothing like teaching every now and then to keep you grounded. Some people in your class will challenge what you're saying so you have to make sure you're right and know how and why you're right, the how and the why are very important when teaching. Some times the class miss the point of what you said, this resets your view on the assumptions you make, the assumptions you work with every day. When someone in the class misses the point it's often to do with how you've expressed it rather than their lack of understanding. Some people might find this challenge to their knowledge of the fundamentals of what they work with quite stressful but I look at it as an opportunity. Sure, you might set yourself up for a fall but that's all part of the thrill. Fortunately, I don't mind speaking in front of a crowd, at least not about something with which I'm familiar, but the audience does add to the experience.

    I can be a bit of a show-off, I know that, so teaching can be very satisfactory. Great for the ego, almost. However, I take great pleasure from imparting knowledge on others. The opportunity to help others understand something about which they previously knew little is not to be missed as far as I'm concerned. It plays to your inner show-off if you're prepared to stand on and risk falling off of the pedestal you put yourself on when you stand in front of a class.

    If you're knowledgeable in a certain area then I would heartily recommend you share what you know in front of an audience, risk making a fool of yourself in front of your audience. I think the rewards are good if you don't often teach. Have what you know challenged. Have your assumptions highlighted. Find out the little gaps you didn't think you had. Most of all, have fun doing it.