No More Twist

Fedora 16, GPT (GUID Partition Table) and legacy BIOS

with 3 comments

I thought I’d try out the latest Fedora – 16 – which is now available as a Beta release https://fedoraproject.org/wiki/Test_Results:Current_Desktop_Test for testing. I’ve been using Fedora 15 for some time now and there are only a few little niggles with it, nothing really annoying. I have a problem with support of the trackpad on my HP mini 311c netbook, and reliability issues with the ath9k PCIE ASPM support (https://bugzilla.redhat.com/show_bug.cgi?id=697157). The trackpad is bearable and there may be a fix in the future (https://bugzilla.redhat.com/show_bug.cgi?id=590880). There is a relatively easy workaround for the PCIE lockups – just add pcie_aspm=force to the boot command line.

So, overall there was nothing badly wrong with F15. Like anyone who’s been using it I have found ways to like Gnome 3′s shell which was probably the single most controversial addition to Fedora in F15. I have written about that and my SSD experiments in previous posts here. It was a good time to try the latest cutting edge Linux.

I grabbed the desktop edition iso file and wrote it to a USB stick. I booted and found there were still some teething issues with selinux, stopping Gnome shell from working properly. The temporary workaround is to boot with enforcing=0, which gave me a working desktop. After a sanity test enabling the wireless and firing up a browser, I was confident enough to try an install from the live image.

I used Anaconda’s whole disk option and unchecked LVM (I had decided it was stopping me from getting the best out of my SSD, and the extra flexibility would not be needed on a system that wouldn’t have disks added and removed over time). I had also done some naive and unscientific tests to see what the overhead was, and I got the impression that it was likely to be some measurable overhead to access logical volumes instead of straightforward partitions. So LVM was not attractive. The install was pretty fast and painless but when I got to the end, the system wouldn’t boot. I booted with the live USB and had a quick look at the disk. To my surprise the partition table was replaced with a GPT (GUID Partition Table) which apparently is a new standard supported by machines which have EFI instead of BIOS. The setup that Anaconda (the Fedora installer) made for me just wouldn’t boot.

I did some research into GPT and BIOS issues, and found that I was supposed to have a ‘BIOS boot’ partition, a 1Mb space on the disk that would look enough like an old style layout to the BIOS, whilst being compatible with the GPT and the new grub2 boot loader. Apparently Anaconda allows you to create one but doesn’t suggest or enforce it effectively yet. Sadly even when I did my best to create the correct layout using Anaconda, it did not produce anything that my legacy BIOS was able to launch. So I had to recreate an old style disk layout using legacy tools (fdisk) and use the most manual approach in Anaconda to keep that instead of installing an incompatible GPT.

Finally I had a bootable system, and everything seemed to work well. It might even be a little faster than it used to be. There were minor issues with SSD support and getting my tweaks back into the system.

For SSD support I checked that TRIM was working, and it wasn’t. It turns out it still isn’t enabled by default in /etc/fstab, so I added the discard option and re-tested. It was working this time. Essentially TRIM is letting the kernel tell the SSD when the filesystem is no longer using a block, which means the SSD has plenty of time to garbage collect it. The SSD will then erase these blocks to get them ready for re-use. If you don’t do this, the SSD has to erase the blocks at the very time you want to write to them (to re-use them) and that introduces delays. I was glad to get working TRIM support and wondered if moving away from LVM was what made it possible.

Finally I wanted to add my kernel command line arguments, which with legacy grub was just a matter of editing a config file. Grub2 has a more complex arrangement where you edit /etc/defaults/grub and then run grub2-mkconfig. I tried this and rebooted but my arguments didn’t appear in the command line! I wondered if the kernel had to actually change to pick up the new arguments. I edited the /boot/grub2/grub.cfg file that says DO NOT EDIT and rebooted – still without the arguments appearing. I am clearly missing a trick here and I bet a few unlucky people will be caught out the same way. I will update when I find the right trick. For now I can edit the command line manually on each boot.

I found that grub2-mkconfig does indeed write a config, but sends it to stdout. So you need to put that into the right file. If there is an automated way to do this, I haven’t found it yet. Also, once written, the config is installed with grub2-install. So I don’t need to edit my command line at every boot any more!

Written by Cam

September 17th, 2011 at 1:34 pm

Posted in UP

Fedora 15 Gnome 3 gotchas

with 11 comments

I’ve been a reasonably loyal Gnome fan since way back, and have been optimistic about Gnome 3 and all the changes that brings. I have been using Fedora 14 for a while with the Gnome shell preview (available since F12) – which I had sort of got used to. The problem is, that is based on a really old version of Gnome Shell, so isn’t really representative of how F15 will work. Also, when using F15 I found several unexpected things, putting it mildly. You could call them shocks. I mentioned this on IRC but there didn’t seem to be any interest in compiling a FAQ targeted at Fedora users who want to give Gnome 3 a chance.
So, here is my list of things that I found odd or surprising. You should also probably see a few Gnome specific links – Gnome Shell Design, a somewhat dry Gnome Shell Design FAQ (which reads like a slightly snifffy justification of why it is how it is), Gnome Shell Cheat Sheet which is more useful.
So, on to the gotchas…

What are these huge title bars and where are the maximise / minimise controls?

The bars are bigger so they should be easier to grab and drag around.

You don’t need to maximise and minimise with a fiddly click. Minimising is a negative thing to do, a mere step on the journey to doing something more postivive – like saying what you actually want to look at. So with Gnome 3 you are supposed to use Alt-tab to bring up the thing that you want to look at and the current window will be relegated to the background automatically. Alternatively you could use the Windows key (Gnome call it the ‘Logo key’) to throw up the interface where you can find your window of interest.

If you really really want to minimise, there is an option to do so in the menu that pops up when you right-click the huge titlebar. Or you can restore the button with a tweak (see later)

What about maximise? You can drag the fat title bar up to the top of the screen and it will snap to something similar to maximised. This is the official way but if you are on a small screen device you might want to just hit F11 which in almost all apps gives you the maximum space to work in and hides the Gnome 3 top of screen area. I use this a fair bit.

But where are my desktop and my folders?

If you have been used to keeping stuff arranged on your desktop, and have upgraded (keeping your home directory instead of starting anew) then the files and folders will still be there, but they don’t appear in the background of the new desktop. You can use the logo key, type in ‘Desktop’ as a search term and it will list all the desktop related apps (remote desktop etc) and if you are lucky, at the end will be a bookmark to your Desktop folder. This is the quickest way to find it under Gnome 3 without tweaks (more later).

What about my removable devices etc.?

When you plug in a SD card, for example, it should offer to import photos for you, or whatever is appropriate. When Gnome 3 guesses your intent and gets it right, it’s great. Otherwise… if you want to manage the device after the import is done, I’m not sure if there is an easy way. If you know the name of the device (my photo card is called ‘Lumix’) you can hit the logo key then search for it by name. I have USB keys that come with less sensible names, ‘B43E-A172′ for example. Good luck with that. The best other way to find it is to search for ‘Files’ then navigtate to the /media top level directory where it should be mounted. Then you can right click and ‘Eject’ it or ask to ‘Safely remove’ it – although when I did that I was told it could not be safely removed. I have created BZ697155 for this.

Update – apparently there is a Gnome shell extension for drive actions:

yum install gnome-shell-extensions-drive-menu

There are other filesystem idiosyncrasies, such as your home directory which is presented as ‘(icon) Home’ (the real name of it is your username). It lives in a directory called /home which is presented as ‘home’. The top level filesystem is represented as ‘(icon)’ so the whole path is ‘(icon) home (icon) Home’ which I find just a bit inelegant.

What are these fonts and can I change them?

The fonts have been chosen for you. You can change the contrast and size under accessibility, but you can’t change the typeface without tweaking.

Where is the theme control panel?

The fonts controls are missing from the control panel, so are themes. Gnome 3 is so slick and appropriate that you shouldn’t need to theme it, although you can still change the background; you should consider this a concession from the design team that you might want to soil their beautiful desktop with some style of your own…

Can I still have multiple workspaces / desktops?

Yes, they are still there and you can see them when you hit the logo key. You can also use Ctrl-Alt-Uparrow / Downarrow to flick between them.

I like to line up my windows Just So

If you are used to lining up windows or arranging them in a specific way, you still can, although the huge title might cramp your style a bit. Gnome 3′s snap-to-the-top-means-maximise is joined by snap-to-the-right (and left) which give you a half screen window. This might suit some people as much as aligning windows by hand.

Just because there is a huge title bar and no edge decorations (unless you count the shadow), doesn’t mean you can’t resize windows. You can still grab the edges and drag them about a bit. There is one app that I do this for a lot, Gimp, as it has a couple of floating panels that you can’t really do without as well as a number of image windows. These have a mishmash of different decorations under Gnome 3 and it’s not a pretty sight. Also, maximising the image window puts it underlapping the floating toolbars, even if you have carefully put them to one side – so it’s not really useful. Maybe there is some integration work to be done here to get the likes of Gimp and Gnome 3 to work together.

My xorg.conf snippet isn’t enabling middle button emulation anymore!

Under F14 middle button emulation was disabled and a special xorg.conf file fragment was needed (to turn it back on). For F15, as part of the change to gsettings, it no longer works, but there is a gsettings command to turn it back on:

gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true

See Bug 696790 for more info.

How can I delete wireless networks from Network Manager now?

I’m not sure if you can any more. See Bug 697606 for more details. Update – the old connnections tool is still available – search for ‘connections’ – it just hasn’t had all the features transferred over into the new GUI yet. Thanks to Paul Frields for commenting and clueing me up.

In fact, it’s a good reminder that the search feature is very useful – I could have found this using it. Although it relies on me knowing the name of something that I had only really used from the GUI before. It would also be easily findable in a well structured menu, like the old menu system. I couldn’t find it in the new pseudo menu, apart from by searching. It isn’t in the ‘official’ applications list.

These aren’t the tweaks you’re looking for…

A tweak, apparently, is a deviation from the design that users want anyway. Designers sigh about these but because some developers are users, and like tweaks, we have tweaks. For Gnome 3 under Fedora 15 you can install the optional gnome-tweak-tool. If you are a power user you might find things here that you really like, for example:

  • you can put back the minimize and maximise buttons on the title bar
  • you can override the lid close actions (this is a tiny subset of the power management that used to be available under Gnome 2, but never mind about that
  • you can make the date appear in the title bar as well as the time (but no option for seconds like in Gnome 2)
  • you can change the fonts, hinting and antialiasing
  • you can make the file manager own the desktop again… in fact if you use a blank workspace and the Ctrl-Alt-DownArrow you can have reasonably fast access to a desktop like you used to under Gnome 2
  • you can change several actions that happen on various types of click on the huge titlebar
  • you can make some interface changes like adding icons to buttons and menu options… and changing the gtk theme and icon theme

So overall, there’s a lot new and changed in Gnome 3 / Fedora 15 that might impact on day-to-day use of the desktop. I am still finding new features and gotchas as I try different things. With some tweaking it’s very usable, but I feel sorry for the designers that feel they have to hide these options, and then suffer the ire of users who think that they have been given a part functional dumbed down Fisher Price interface. Which Gnome 3 really isn’t, it’s beautiful and elegant.

Written by Cam

April 16th, 2011 at 9:14 am

Posted in Domestic Entropy

Bike inner-tube cable tidy solution

without comments

Every gadget seems to come with a cable which is neatly folded or coiled when bought, but soon turns into a messy tangle inside a bag or behind a desk. The worst seem to be cables that are moved around… sometimes they are wrapped around gadgets and end up getting damaged. I have knotted them, coiled them and bound them up with cable ties but that solves the mess at the cost of being inconvenient and sometimes damaging the cable.

Then I hit on an idea when I saw an old bike inner tube. I knew you could cut sections from the tube to make elastic bands. You can make the sections wider or narrower according to how much tension you want in the band. I looped a band over one end of the cable in a hitch and tightened it. The rest of the cable can be bunched together in the shape it was supplied in, and the remaining loop of the band stretched over the bunched cable to hold it tidy. It’s cheap, tidy, simple to use and doesn’t harm the cable.

With all good ideas I am surprised if a Google search doesn’t reveal someone else has already had the idea and made their fortune from it, or at least published a beautifully illustrated guide to it on a blog somewhere. I didn’t find this though so maybe it’s my turn :)

Written by Cam

January 6th, 2011 at 10:05 pm

Posted in Domestic Entropy

SSD upgrade for Fedora 14 Netbook

with 5 comments

I recently upgraded my netbook, a HP / Compaq Mini 311c, maxing out the RAM to 3Gb and replacing the stock hard drive with an SSD. I always liked the idea of an SSD, but didn’t like the price. The market is fast moving though and before long I saw that less than £100 would get a 60Gb SSD that could work just about as fast as the SCSI II bus in the netbook. Add to that the zero noise, low power and shock resistant working and the upgrade was a no brainer.

The drive I got was this: OCZ VERTEX 2 SATA II 2.5″ SSD which is claimed to have peak read and write rates of about 270-280 MB/sec. SATA has a limit of 150MB/sec and the SATA II interface on the netbook, running at 3Gbit/sec has a theoretical top speed of 300MB/sec. Using hdparm -t I can see read benchmarks consistently over 200MB/sec. So the drive has theoretical speeds of near the bus maximum, and achieves just under that. For comparison a 1TB disk on my server on a SATA II link manages just over 100MB/sec with the same benchmark.

I was a bit concerned about how Fedora would cope with the disk and if it would properly install using it. I used a live CD transferred to USB stick (no DVD drive on the netbook, of course) and installed from that onto the blank (unformatted) SSD. I wanted to see what the defaults were so I accepted them. The result wasn’t easy to determine, as the output of sfdisk -l is a bit cryptic:

[root@newt ~]# sfdisk -l
Disk /dev/sda: 7297 cylinders, 255 heads, 63 sectors/track
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sda1   *      0+     63-     64-    512000   83  Linux
/dev/sda2         63+   7297-   7234-  58101760   8e  Linux LVM
/dev/sda3          0       -       0          0    0  Empty
/dev/sda4          0       -       0          0    0  Empty

 

It isn’t clear from that if the partitions are 4k-aligned. Searches online suggested that the partitions should be to ensure good performance. There seemed to be a lot of FUD and misinformation about the topic but I trusted this early 2009 blog post from Ted Ts’o. With a few commands it seems possible to make sense of alignment even taking LVM into account.

[root@newt ~]# fdisk -H 224 -S 56 /dev/sda

Command (m for help): p

Disk /dev/sda: 60.0 GB, 60022480896 bytes
224 heads, 56 sectors/track, 9345 cylinders, total 117231408 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e2854

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   117229567    58101760   8e  Linux LVM

 

That presentation looks better, although it’s the same layout as sfdisk reported… because CHS is just a convenient fiction. I checked the LVM alignment like this:

[root@newt ~]# pvs /dev/sda2 -o+pe_start
 PV         VG      Fmt  Attr PSize  PFree 1st PE
 /dev/sda2  vg_newt lvm2 a-   55.41g    0    1.00m

 

That also looks OK – a nice round number for the first physical extent (PE).

In fact according to Fedora docs the disk layout should be good for SSDs.

The next suggestions were to set the elevator to ‘noop’ which tells the kernel not to bother optimising disk access for spinning disks. I also changed the mount options to noatime – to avoid writing back file access times to the disk, and discard to activate the TRIM feature of the SSD, where space released when files are deleted is explicitly released for garbage collection in the SSD. All of these features were tweakable but not set optimally for SSDs by Fedora’s installer.

Setting elevator to ‘noop’ in /etc/rc.local (excerpt)

# for ssd
echo noop > /sys/block/sda/queue/scheduler

 

Setting mount options in /etc/fstab (excerpt)

/dev/mapper/vg_newt-lv_root /                       ext4    noatime,discard,data=ordered        1 1

 

So, on to the experience. The boot time is reduced and so is the time from logging in to getting a usable desktop. As well as that, applications that took time to start previously (eg. the Gimp) are noticeably faster. Everything seems a bit snappier. I had been worried that the Atom based CPU would limit the performance – I think some netbooks are faster than others and the Ion based ones do a little better thanks to the DDR3 RAM. With the fan set to come on only when needed, the netbook is silent until the fan kicks in. I haven’t noticed increased battery life but it’s not something I keep tabs on.

Overall, it’s impressive and it makes me realise that SSDs are here to stay – mechanical drives will surely go the way of the cassette tape before long. No wonder Google’s Chrome OS is only targeting hardware with SSDs. It’s good to see that Fedora is pretty close to complete support for SSDs too.

Written by Cam

January 3rd, 2011 at 11:55 pm

Posted in Domestic Entropy

Bitten by a RAM SCAM?

with one comment

When I bought a netbook I made sure I got one where the RAM could be upgraded. I got curious about the upgrade, found what sort of RAM I needed and started watching the prices to see when I could get a good deal. Greedy for the best deal I ended up buying from a USA based company on eBay (Koybe). It was very cheap.

After a short wait the RAM was delivered. It was well packaged and looked right. I installed it in the netbook but that’s when it became clear all was not well. Instead of booting up, or even beeping unhappily, the netbook wouldn’t start up at all, and just made a clicking sound. Something was wrong. It’s not like this was the only RAM in the machine so I would have expected an incompatible module to be flagged and the machine to power up successfully and complain about the RAM.

I tried the usual fixes like reseating the RAM, checking for signs of damage or faulty contacts, but with no joy. I double checked on a reliable vendor site (Crucial) that I had bought the correct type of RAM. Of the RAM that was being sold on eBay, the main variation was speed and according to Crucial there was a potential upgrade for me in either speed at the same cost.

I fired off a polite message to the seller telling them there was a problem. Meanwhile I looked at the antistatic bag the RAM came in and started to get suspicious. It was a ziploc type bag not a sealed bag. Why would you need a reusable bag like this on cheap memory? I have never bought new RAM in a bag like this before, it has always been sealed. A short while later I got a flurry of messages from the vendor, and my suspicions were confirmed.

The messages seemed cheery and helpful, first saying I could have a refund or replacement, the next one saying my system must be incompatible but they could help me find the right RAM at cost price, then a third message saying after checking with my manufacturer they could definitely provide two different grades of RAM at extra cost that would be more likely to work. The messages were sent very close together though, closer than it would be possible to compose them if they were genuine, and really have researched my ‘incompatibility’. I noticed the auction was a private one – I can’t think of any reason why a genuine vendor would set the auction to private for a non contentious item like some cheap RAM.

I searched online for information about the vendor and wasn’t surprised to find lots of negative comments and copies of what looked like the exact same set of messages I received. It looks like the business model is this:

  • advertise some commodity at a bargain price.
  • send goods that look right but won’t work
  • make up the money on restocking fees, surcharges to ‘upgrade’ to a more compatible product, etc

I was kicking myself for not looking more carefully at the auction at this point. I was down by the price of a takeaway meal and had a useless piece of junk on my hands. Believing the whole thing to be a scam, I would be mad to send one further penny the way of this vendor. I could pay more in surcharges and postage to get some more memory that might be just as bad as the first set. I could pay more than if I’d gone to a reliable supplier like Crucial.

The vendor ads said ’100% Satisfaction Guaranteed’ so this is what I’m aiming for. Disregarding their small print I have explained my concerns, offered that they can make me a full refund including postage and I will endeavour to return their dodgy RAM to them – failing that I will take up the matter with PayPal explaining my concerns. Very quickly I get an offer to cancel the transaction – sneaky, because this would close the matter as far as PayPal is concerened. Ebay says:

“You should only accept the cancellation request if you haven’t paid yet or you’ve already received your refund from the seller”

So I won’t be accepting that until I get a refund. I see further emails with a ‘RMA’ suggesting I can return the goods in order to get a refund. Great, hassle and expense for me so some other sucker can be sent the dodgy hardware! I later see more attempts to manipulate me to do things that would not be in my best interests – like closing the dispute and contacting the company outside of the eBay system. Another point from the eBay help pages of note:

“If you close the case, you can’t re-open it and you won’t be able to open another case for this purchase.”

At this point you have several cards in your hand. One, feedback hasn’t been left yet. Also, seeking redress from PayPal / eBay will cause the vendor some hassle. Finally, you have the goods, although they are of questionable value. So as bad as it seems there is still hope to get your money back and if not you can at least make sure you don’t lose any more money and cause the vendor enough hassle that they might change their ways. Things are looking good for the vendor too though, they have your money in exchange for faulty tat, they can claim you have their valuable goods until you return them with some form of tracking. Then they could claim you damaged the goods and make all sorts of excuses to avoid a refund.

Next I get a message saying they have authorised a refund but I should send the goods back in order to get it. I politely explain that I won’t spend any more until I get a full refund, or will have to take it up with PayPal… Fast forward a few messages and they send an offer of half-up-front plus $6 – and quickly go back on it. Summing up my options it looks like I don’t stand much chance of a full refund, and shipping the dodgy goods back to them will cost me about $3 (without tracking) or nearer $10 tracked. I realise that the only way I can make sure I don’t lose out and they do, is to keep the dispute going until I can escalate it to a PayPal claim.

After several more messages, the seller offers the half-up-front-plus $6 shipping again and I decide to take it. I get the refund and ship the package tracked to the USA which actually costs nearer £6 so I am now officially out of pocket. I suck it up and buy the RAM at market price from a reliable vendor – kicking myself when I see that it’s almost as cheap as the stuff from Koybe.

After a long wait (shipping over the Christmas holiday) and several more messages, the package is delivered and the other half of the refund arrives in my PayPal account. I close the dispute.

In the meantime, eBay have sent me a survey about my experience of the resolution system and I list the problems I have encountered. It must have had some effect because I get an email apologising and a £5 voucher against my next eBay / PayPal purchase. So, unless you count my time, I’m back in the black again.

Written by Cam

January 3rd, 2011 at 10:00 pm

Posted in Domestic Entropy

Rent and the Cloud

without comments

I’ve been hearing lots and lots about the cloud, software as a service (SAAS) lately – it’s a compelling business model. From a software point of view it provides a smoother income than the up-front costs of writing then selling software. You can be a feature control-freak and add in features as the market calls for them, or to ensure that users are locked in. In a way it’s precarious that users can leave you on a whim, if you fail to deliver, or if there is a grass roots rebellion against you. Still it seems an improvement on the approach that gives massive returns to software publishing winners and leaves losers by the wayside. I’m thinking of publishers that have a huge ‘hit’ or struggle with dwindling sales under the traditional retail model for software.
Open source advocates are often scathing about ‘the Cloud’ and it’s not hard to see why. When you aren’t actually delivering software to the customer, then you don’t need to give them sources. So a basic tenet of the open source ecosystem is blown away – you can modify open source software, use it to provide a service to customers and keep the changes private. Whether it’s entirely a bad thing for open source, I’m not sure, because it still encourages people to use the software, and any way that people can make money from it is surely a strong selling point. But to the purists it means people can use the software and modify it and ‘take away their ball’ if they want to.
I suspect that open source licensing will have to evolve once more, or the communities that surround it will have to change to get the best out of a future that could see much computing virtualised. If there is a loophole where corporations no longer have to contribute back changes to software, it’s not hard to see that the software could just fade away eventually from lack of attention. Maybe open source can be sold as the ultimate escrow, where there is a guarantee up front that the code will always be available for anyone to improve. Maybe Infrastructure as a Service will come with the implication that you have rights of access to the ‘means of production’ for the services that you consume on the virtual platform?

Written by Cam

December 20th, 2010 at 9:03 pm

Posted in Signs of the Times

Agile

without comments

I’ve been ‘doing agile’ for a short while at work and I am finding it interesting. I can see it’s better than the older ways of working for several reasons. These fall into two main categories, it being a way to achieve something useful in a limited time, and also as a way for people to work more efficiently. At the same time I am really struggling to fit it into my long held ideas about the journey that software engineering must take towards being a genuine engineering discipline. I wonder if Agile is really a step in the right direction.

With any movement or fad there is inevitably a jargon that accompanies it. This is part of the marketing, conscious or otherwise, of the thing, and really it’s a crucial and integral part of it. Consider object orientation and it’s language which I would describe as mathematical or pseudo scientific: functor, derivation, subclass, superclass, inheritance, adaptor, accessor, mutator, patterns, polymorphism… It gives a scientific, academic, learned air that inspires technical people to be interested in it and to want to participate and have a bit of that technical gleam rub off on them. Everyone working in software must know a colleague who fits the description of learned OO guru or wannabe! So agile has a jargon: pigs, chickens, stakeholders, sprints, scrum, planning poker, scrum-master, stand up meetings, retrospectives… it is somewhat macho, reasonably aligned with a mythical golf playing, aspirationally sporty male member of the management profession.

It would be wrong to judge a movement just on the jargon, and there is luckily much more to agile than that. I get the impression that a lot about agile is on several levels, with a superficial impression of one thing but an actuality that is something completely different. So the jargon is almost misleading and we have to look at a deeper level to see what’s really going on. This is a theme that I have noticed a lot in the agile approach.

For example, prioritising the backlog and working on the most important user stories first. This ensures that the if you run out of time you have the best chance of having the most important features ready. Interestingly this is no better than the traditional way of working if you expect the management of the project to demand the most important features first. But it might not be the best way to work, after all what use is a life support machine or aero engine management suite that is 90% complete? What if some part of a project isn’t a real headline feature but helps with stability, debugging or makes the architecture maintainable? All these can be prioritised but I feel there’s a risk with agile that they might be sidelined (and implicitly, omitted). Sometimes less than 100% isn’t acceptable. Agile assumes that it is.

Another feature that stands out is the planning. Instead of estimating being done centrally, it’s distributed over the team. This inherently makes the team buy into the process and the estimates, which is good. Estimating tasks falls to those who will do the work, and high level planning is done by the product owner, whereas detailed planning is done by the team. This is also good apart from the variation that individual estimates introduces. Agile guards against this by a system of feature points and ‘velocity’ – these aggregate individual performance and provide a relatively bogus statistic that could be easily manipulated by a clever team while distracting management with a feel-good number or slope. Planning poker is also worth a mention. It’s a clever technique to ensure that everyone present in a planning meeting contributes to an estimate, by choosing a difficulty level for the task being estimated. The cards are turned over and the discussion starts. It’s an ice-breaker.

So the planning that leads up to a sprint is better than traditional approaches. What about the sprint? On a superficial level it’s an intense period of activity leading to some demonstrable output. In practice it can be a feast / famine – the structure of a sprint tempts people to plan to fit the time. Planning isn’t perfect so we will finish early or run out of time. Maybe some people will finish early and some will overrun. The sprint is useful if it creates a gentle pressure that encourages people to be productive. Team members who can exchange tasks or help each other out will do so. So the subtext is that the sprint creates productive pressure and forces teamwork to happen. What it doesn’t do is match people’s individual abilities to tasks or guarantee perfect utilisation of resources. It seems obvious to me that a large team deciding on a sprint of n weeks is a coarse grained approach and better planning would be to have smaller sub-teams with individually different sprint lengths.

Sprints end at a demo, where the work product is proudly shown to all the stakeholders. The usefulness of a sprint to the goals of the project is to provide a finished piece of work that will be a part of the project. But the structure of a sprint encourages the team to take shortcuts to make sure the demo happens and runs smoothly. This can be obvious or somewhat hidden. The way to spot this behaviour is to look out for significant rework being done in the following sprints or at a later date when the feature is being integrated with others. A diligent team will put in all the groundwork for the following sprints but a pressured team might well end up throwing functionality away and thinking it will get refined at a later stage. The ‘definition of done’ should guard against this but it’s probably easier for a team to get away with this than it is for anyone not directly involved to detect it.

Getting back to software engineering, my hope is that in the long term it will become less like an art and more like car maintenance, with well defined diagnostic procedures and standard times to perform specific tasks, with defined materials and tools. The outcome of a project should be more reliable in the same way that civil engineering projects result in reliable buildings, roads and bridges. This would give society software that is fit for purpose and on time / to cost. Let’s face it, the vast majority of software engineering these days is putting together systems from unglamorous parts, and the really amazing creative stuff (like mp3 compression for example) is so rare that most people will not get around to working on it.

So where do agile and software engineering meet? It looks like the methodology is more about management of people than how products are made. The cost of getting the prioritised features delivered on time is the loss of overall control and vision of a product. The quick gratification of a sprint and demo are not a guarantee that there will be a finished product at the deadline, and they aren’t a magic formula for making a team productive. There are lots of little things that possibly make teams more productive but ultimately I think it’s more dependent on the people than the methodology. Succeed with good people and common sense, use agile methods along the journey if it suits you.

Written by Cam

November 25th, 2010 at 8:31 pm

Posted in Signs of the Times

A few signs

without comments

I haven’t posted any signs for a while so here are a few. I have seen others but haven’t had the chance to snap them.

The last one was in Woodall services on the M1. I wonder if anyone who hasn’t already got a satnav, wants one, and was tempted by this marketing?

Written by Cam

October 24th, 2010 at 12:05 am

Posted in Signs of the Times

Camera Fun – Panasonic DMC-LX3

without comments

I’m friends with my camera again after a longish period of being a bit annoyed with it. I’ve got a Panasonic Lumix LX3 which is a reasonably good compact camera. Previously I’ve had Canon cameras.

I think there isn’t much point in having a camera if you feel you can’t take it everywhere with you. This means some risk to the camera and so be it. You hope the camera will be tough enough to withstand minor knocks and scrapes even though you’ll be really careful with it. In fact my old Canon was pretty much indestructible, a little metal bodied thing with rounded corners and retractable working bits like a little photographic submarine.

The Panasonic is a little different though. It does have a metal case and retractable working bits. But hours after getting it, I managed to drop it a few inches (tipping over a Gorillapod – avoid for cameras without a central tripod mount). After the drop the battery hatch started sticking. I realised this was because the case was very slightly out of shape and carefully bent it back until the hatch wasn’t binding any more. I realised I’d have to be a lot more careful with the new camera. I used it for over a year.

Recently I was at a family event and dropped the camera about 1 foot onto carpet. The zoom control started binding and I realised I’d have to either send the camera off to be serviced or attempt a repair myself. I had noticed some dust behind the display which I thought I might get fixed under warranty. After all who would expect a high end camera to start having dust trapped in the display? Even so I was reluctant to send the camera away for any length of time (and possibly at my expense). I tried to open the camera but wasn’t able to. I figured maybe there were tricky hidden screws under stickers, or some part that was glued and had to be replaced after opening… so I left it. I had fallen out with the camera.

I didn’t completely give up on it though. I searched for a service manual online and eventually found a blog post containing the manual. Wow! I learned where the secret screws were – under the metal leaf spring of the flash shoe. So you just slide out the spring which exposes four longish screws that hold the whole thing together. Very crafty. There are no single use parts and nothing hidden under stickers. In fact it’s very repairable (even if the lens assembly and sensor are a sealed unit). I un-fell out with it.

The problem with the zoom control didn’t seem to be a bent case. After some fiddly dismantling of the ‘top part’ of the camera I found the crucial spring and it seemed to have lost tension. I re-tensioned it and cleaned the moving parts. I put the whole thing together taking time to unclip the LCD and blow away the dust. I’m not sure how dust got there but it was probably a design flaw. Mobile phones often have a tiny foam rubber gasket between the display module and the external window but the LX3 didn’t have anything like that. Now I know the secret to opening it I can remove dust easily.

Now the camera is pretty much as good as new. A bonus from reading the service manual is finding out the secret key sequences that display the error logs (which will have time and details in them if the camera detects faults). The sequence is as cryptic as the hidden screws: power off; set camera mode (not play); hold down the one-shot focus button and keypad UP while turning on. Nothing special happens. Then press one-shot focus, keypad LEFT and MENU/SET at the same time. A list of times and error codes will show, or all zeros if the camera hasn’t detected any failures. I found two further screens that aren’t mentioned in the manual, by pressing DISPLAY in this state two different memory areas are shown and you can scroll through them. I haven’t a clue what they mean though :)

Written by Cam

October 16th, 2010 at 10:02 pm

Posted in Domestic Entropy

Snickering

without comments

A quick post devoted to geeky things that make me chuckle, like this post on fedora-devel where the ‘nicer’ installer is eyed up enviously… A message extols the virtues of the foreign installer and culminates with the traitorous “Thoughts? Can we switch to their installer?”. It’s not long before the reply comes “No.” – but it will be lost in a flurry of replies about why we can’t have their installer or why we shouldn’t want it.

Really, from anyone with a lesser reputation such a post “Ubuntu 10.10′s installer looks rather nice” might be seen as trollish. The response was probably anticipated. Open source clannishness, demonstrated. Suggesting taking a core technology (the installer) from a rival is about as appropriate as a fart in a sermon.

Written by Cam

October 11th, 2010 at 11:06 pm

Posted in UP