UKUUG home


(the UK's Unix & Open Systems User Group)






Book Discounts

Other Discounts

Mailing lists







The Newsletter of UKUUG, the UK’s Unix and Open Systems Users Group

Volume 20, Number 2
June 2011

From the Secretariat by Jane Morrison
Chairman’s Report by Paul Waring
UKUUG rebranding as FLOSS UK by Paul Waring
Spring Conference: March 2011, Leeds by Roger Whittaker
OpenTech 2011 by Paul Thompson
OpenTech report by Martin Houston
IWEEE 2011 Free Software for e-health and education in developed countries by Gerald Marie-Nelly
The £100 PC by Martin Houston
Government Consultation on Free and Open Source Software by Martin Houston
Designing Interfaces reviewed by Lindsay Marshall
Vi and Vim Editors Pocket Reference reviewed by Andy Thomas
Programming Python reviewed by Andy Thomas
HTML5 and CSS3 reviewed by Daren Chandisingh
Mining the Social Web reviewed by Paul Waring
REST in Practice reviewed by Paul Waring
jQuery Pocket Reference reviewed by Mike Fowler
Learning the iOS 4 SDK for JavaScript Programmers reviewed by Mike Smith
Learn You a Haskell for Great Good! reviewed by Roger Whittaker

From the Secretariat

Jane Morrison

I am pleased to advise that the Spring Conference held 22nd—24th March in Leeds was very well attended and the feedback forms indicate that delegates enjoyed the event. See the write-up elsewhere in this issue.

The 4 days of Perl tutorials in February (Intermediate and Advanced) also attracted a good number of delegates and we thank Dave Cross for working with us again.

Since then we have been busy organising a full schedule of events for the rest of the year.

  • PF tutorial — by Peter Hansteen — 22nd September — London
  • UKUUG – AGM — 22nd September — London
  • Un-conference — 8th October — Manchester
  • DNSSEC tutorial — by Jan-Piet Mens — November — London

The next Spring Conference will be held in March 2012, possibly in Edinburgh and the 2013 event may be held in Newcastle.

Also next year, we have already planned the following course:

“Intensive Introduction to Google App Engine with Python” — full day tutorial/hands on practical course by Paul Barry — London — 12th April 2012

The Call for Papers for Spring 2012 will be available shortly.

We are again pleased to be working in collaboration with Josette Garcia at O’Reilly to bring you various tutorials.

Novell have renewed their Gold Sponsoring membership with UKUUG for a further 12 months. The sponsoring memberships do greatly assist us and allow us to keep event fees as low as possible.

The UKUUG Annual General Meeting will be held this year on Thursday 22nd September. Further details, Agendas etc. will be sent to you automatically during August.

Don’t forget the Inland Revenue allows UKUUG members to claim their subscription amounts for tax allowance purposes. See further details on our web site.

The next Newsletter will appear in September and has a copy date of: 19th August. Interesting articles from members will be very welcome — all submissions should be sent to [email protected].

Chairman’s Report

Paul Waring

Spring Conference

Our annual Spring conference was held in Leeds towards the end of March and was a successful event as always, with a packed programme covering topics across all aspects of system administration, over a hundred delegates, and several opportunities to sample the varied cuisine on offer in the city. Thank you to all the speakers who gave up their time to discuss their latest work with us, and the numerous volunteers who helped the event run smoothly. Where speakers have provided slides we have made these available online on the conference website:

Plans are already underway for the 2012 and 2013 conferences, which we are hoping to hold in Edinburgh and Newcastle respectively. There are lots of ways to help out, from chairing sessions to preparing the timetable, so please let us know if you would be interested in getting involved.

Changes to Council

In a previous newsletter I reported that due to the resignation of John Collins there was now a vacant place on Council. I am pleased to announce that Martin Houston volunteered to step in, and he was co-opted onto Council at our last meeting. Martin will stand for election formally at this year’s AGM, when members will be able to vote on his appointment.

UKUUG rebranding as FLOSS UK

Paul Waring

You may have noticed a ‘FLOSS UK’ branding on the front of this newsletter (mentioned in the previous issue), and in our regular advertisements in Linux Magazine. Input from members on UKUUG’s activities and branding during recent conferences, on feedback forms and at the discussion session following the 2009 AGM, suggested that a broadening of scope beyond the “Unix” specifics implied by the UKUUG name. Council discussed these ideas at its quarterly meetings and took the decision to begin branding events as FLOSS UK, starting with the unconference in October last year, where it was well received and brought in a number of people who had never attended a UKUUG event before.

The new name is intended to reflect our broader scope, as well as the co-ordinating role we hope to play with other similar groups, a suggestion which arose from the post-AGM discussion. In particular, we are fortunate to have an office and infrastructure which we can use to handle event administration, allowing other groups to concentrate on obtaining speakers and publicising their events without having to worry about booking venues. We already have plans to run a PostgreSQL stream alongside our Spring conference next year, and hope to undertake similar events in conjunction with other groups.

To reinforce the brand, we have a new website,, which is built on the MoinMoin free software wiki. This will allow greater interaction from members and conference delegates and speakers, and has worked well when used for previous conferences.

The UKUUG site will remain online at its current address, together with all the content which has built up over the years. Council intends to continue hosting the site as an archive of past conferences, newsletters, book reviews and other activity. Mailing lists and member email addresses will also continue at for the foreseeable future, and the UKUUG brand still exists if there are events where Council feels it would be appropriate. Finally, the name of the company remains as UKUUG Ltd, and invoices, purchase orders etc. will continue to be issued from UKUUG Ltd.

Council hopes that the new branding will encourage new members to join, attend events and get involved, and we will be monitoring the impact of the change over the coming months.

Spring Conference: March 2011, Leeds

Roger Whittaker

The Spring Conference this year was held in Leeds on 23rd and 24th March, with a tutorial the preceding day. The venue was the very civilised 3 Albion Place, in the centre of the city.

The tutorial this year was on Haskell, given by Edwin Brady of St Andrews University. This was an enjoyable and interesting introduction: as a functional programming language, Haskell challenges assumptions and forces different styles of thinking on those who are new to it. The morning session consisted of an introduction to the language and some of the common functions in the standard library. The afternoon session went into the problem of interacting with a pure functional language and then used the concepts taught so far to show how a simple parsers can be built in Haskell. I found this a most interesting day.

Throughout the two days of the conference proper, there were two tracks most of the time. As always, that sometimes made for painful choices when both talks seemed interesting, but in general the programme was well planned, although there were occasions when one room became over-full.

On the first day I particularly enjoyed Simon Wilkinson’s introduction to Git, which was very clear and well presented. Jan-Piet Mens gave three DNSSEC related talks in total, including a good introduction to the Unbound DNS server and its use as a caching validating DNSSEC resolver. Adrian Kennard’s talk on the current state of IPv6 was illuminating and perhaps worrying.

The conference dinner was held at the Royal Armouries. The walk to the Armouries was just long enough for everyone to develop an appetite for dinner, and provided scope for lively (and even ‘religious’) discussion about whose smartphone had the best navigation app. After assembling in a room filled with armour and ancient oriental weapons, we sat down to an enjoyable meal with good conversation.

One the second day I gravitated towards the track with the talks about storage and virtualisation. John Leach spoke about ceph, and Stuart Teasdale discussed MogileFS as deployed by we7. These were both interesting talks about projects to do similar things (large scale distributed storage) but with slightly different design decisions.

Thierry Carrez spoke about OpenStack: it was interesting to see him one year on from his talk at last year’s Spring Conference, now with a different employer and talking about a different cloud management solution. But there is no doubt which way the wind is blowing in this area, and his old employer has moved in the same direction.

In the afternoon, after a session on PostgreSQL, there was the usual session of lightning talks — unfortunately I could not stay for these.

This was another successful and well attended conference, with a good atmosphere and plenty of opportunities for discussion.

OpenTech 2011

Paul Thompson

This year’s “informal, low cost, one-day conference on slightly different approaches to technology, transport and democracy” was held on 21 May at the University of London Union.

Whilst walking through Russell Square towards the event, I was wondering how many would-be attendees might instead decide to spend their Saturday soaking up the glorious sunshine, but was pleasantly surprised to see all the sessions very well attended. The organisation was better than I remember of previous years, and that added to a great day. Talks with similar themes were grouped together well so I didn’t have to dash between seminar rooms to catch the tail-end of talks in other tracks this year.

Particularly interesting for me was Julian Tait’s talk on FutureEverything’s Open Data Cities programme. He recounted how in 2009 they realised that cities might evolve differently if data were made open and how that could reduce inequalities. They had then set out to try to change the way that public bodies within Greater Manchester share data. He detailed how they attempted to demonstrate to local authorities that there was demand for open data from the 2.6 million population, whilst also grappling with apparent disinterest from residents who didn’t seem to care who provided services across Manchester’s porous administrative boundaries. Challenges included authorities often not knowing what information they held, and being inefficient at handling that data. The breakthrough appears to have been when they specifically targeted Trafford’s transit department who agreed to make some transport data open. FutureEverything created apps around that data to build momentum, and Trafford subsequently identified 2000 datasets that could potentially be released. The hope is that Trafford will become a model for other authorites.

Also on the theme of Open Data, Jag Goraya gave an engaging presentation about how the OpenData Sheffield community had developed. His fascinating props included a “command-line time-phased histogram” showing how the demographics of the community membership had evolved, accompanied by a more familiar chromatic pie chart for traditionalists. The aims of the community include: to keep pace with the agenda of Open Data, improve data literacy amongst the wider population, and to “make cool stuff”. His “lessons learned” would undoubtedly be useful for others persuing a similar agenda with local government, and included a realisation that they’d engaged Sheffield Council too soon (should have done more of what geeks usually do: “to hack cool stuff in isolation then try to get buy-in later”) and that they’d “bitten-off too big a bite of the exploding ODS pie” rather than stimulating grass-roots innovation. Interesting data-visualisation devices such as an “expressionist gant”, a “sweat-equity stacked area chart” and a “heat-spectrum bubble chart” neatly illustrated that the end result of some of the community’s activities didn’t always justify the effort required.

The various talks around open data all carried the message that data isn’t necessarily the property of institutions or companies, but of the citizens: information about when and where I swipe my bus pass is as much mine as it is the bus company’s. However, changing to a more open model can’t be achieved without the co-operation of those already controlling it — as they’re the ones with the power, access and knowledge. Private organisations also have useful data that should be opened, but the citizens have to learn to consume (and contribute) that data and to exercise their rights to it: an illustrative example was given by Greg Hadfield of how, despite Brighton & Hove having talking bus-stops, talking buses and swipe cards, the only available app was written by someone in his spare time, obtaining the data via a circuitous route.

Other notable talks included an introduction to Open Spending: “Where Does My Money Go?” by Rufus Pollock of the Open Knowledge Foundation. An example of the reuse of open government data, it has teamed with to combine government spending datasets from other countries, so can scale-up to, for example, an EU level to see where most money is being spent — such as Common Agricultural Policy, then scale-down to the level of individual farms. They have also created an open source platform providing a simple solution for the exchange and visualisation of data. After-talk discussions became quite animated, with even suggestions that some of the “where your tax is spent” bubbles should be capable of being dragged by individuals to adjust their size, thereby giving citizens direct influence on tax policy.

Another interesting talk that I attended was about a collaborative translation project, ‘Adopt a Paragraph”, by UCL student Juliano Spyer. Motivated in 2009 by being frustrated at the effort involved in translating texts into his native Portuguese, he pasted a document into Google Docs and invited friends to translate one paragraph each. Within 24 hours that first document was completely translated. Juliano provided lots of advice for anyone considering launching such a project, including having Google Translate do the “donkey work” of translating any straightforward text, keeping the required investment in time of translators to an absolute minimum, giving credit to contributors, and maintaining a database of participants.

The organisers’ hard work made for a very enjoyable day (and indeed evening, as the bar remained open long after the sessions ended), the quality of the speakers and the sessions was excellent — and I’m glad I didn’t succumb to the fresh air and sunshine of Russell Square.

OpenTech report

Martin Houston

This was my first OpenTech and sadly I missed the first session because I got caught out not being able to change onto the Northern Line at Tottenham Court Road.

However the rest of the day was a great success. I am not going to just reiterate what was said as the schedule can be found at

I really liked the format of talks in banks of three then a chance for questions. I also liked the fact that it was a ‘why’ conference rather than just the technical ‘how’ that software development conferences usually concern themselves with.

I sat through talks from three different areas: Gavin Starks on the amee project about collecting and collating data on CO2 emissions; Chris Taggart on constricting an open source database to shine a light on the interrelationships between companies worldwide ( and Nick Bull on having unrestricted access to Case Law, including being able to index it in search engines so the general public has a chance to find things for themselves (

I detected a common pattern.

Data is in a bit of a mess. Sometimes this is just through human mess-ups but often too vested interests want to keep it messy so they can charge a lot for simply finding things out that ought to just be a simple matter of a search.

We need good provenance so that particular data can be relied upon, something that the Amee Project in particular is working on.

It was a very intense day with three, sometimes four different streams of talks and a chance to meet like minded people who use computers as a tool to do something. Another common theme was requests for help with the technical side of projects such as websites and natural language processing skills. The event happened as much in twitter as in the halls so looking for the #opentech hashtag is a good way to catch up on the discussion and background material of talks you would have liked to have gone to but had inevitable timetable clashes.

The price (a suggested donation of a fiver) was no bar to going along as long as getting to Central London is not a problem for you.

The icing on the cake was that the whole conference was literally next door to a good old fashioned Computer Fair so I found myself stocking up on various hard to get bits and pieces too.

I think the large number of free software fans made an impression on the vendors of the reconditioned PCs and Laptops for sale. I had an interesting conversation with one and found that it takes them just 4 minutes to blast a minimal copy of XP onto a reconditioned business PC. With such little time involved it begs the question why second user systems not be sent out with a choice of Linux too? Even at the low end machines that have done their 3 years service in the corporate world have 40 — 80GB disks nowadays. Allocating 20% to Linux would give 8 — 16GB to play with, plenty for someone who mostly just surfs the web.

Getting Linux pre-installed on new PCs in the mass market has been a tough nut to crack but having Linux as well as XP gives the purchaser of a £100 reconditioned PC some real extra value, and at no real extra cost to the PC recyclers.

Find who does PC recycling in your area and offer to help them change their procedures to include Linux (whichever you prefer). It would be a very effective way to get many thousands of people to see that there is an alternative to just using the same old thing.

Let me know how you get on.

IWEEE 2011 Free Software for e-health and education in developed countries

Gerald Marie-Nelly

This event (International Workshop on E-health in Emerging Economies) took place in early April in Luxembourg and was organised by the GNU SOLIDARIO association during the Med-e-tel 2011 conference (Official event for the Society for Telemedicine and eHealth).

I attended the event because I am currently investigating Open Source solutions that would be relevant for non-profit Organizations, especially for education and healthcare purposes.

I gained interest in those matters after doing a 2 months charity mission in Haiti last year. I was working in an orphanage and teaching kids computer literacy with Open Source software in 4 schools, trained the charity staff in OpenOffice and setup a website for donations (

That was a priceless experience but I went there without knowing what to expect. Knowing a bit more of the real problems on site, many projects could be potentially done in the area. Solutions for managing the kids/patients in local clinics with the orphans records or even setting up media labs for schools would make a tremendous difference. We see earthquake and misery through the media but there are projects down there which inspires lots of hope.

I have been looking for some OSS projects around healthcare and education online but it was hard to find any concrete feedbacks or case studies. A lack of centralised information was also an issue.

I decided to go straight to the community and found out about the IWEEE. My overall feedback about this event is that I was agreeably surprised to discover an international community and a plethora of strong OSS applications used in many Organizations. The emphasis was towards e-Health solutions in emerging countries and the coordination between the OSS ICT solutions in healthcare.

The first day was the proper IWEEE event and the two other days were FLOSS Tracks for the Med-e-tel parent event.

The IWEEE was launched by the organiser Luis Falcon (GNU SOLIDARIO) from Argentina with an inspiring presentation about the “social” aspect of Free software. Basically, seeing “Free Software” as “Social Activism” imply focusing on people instead of corporation in this context.

Mr Falcon is also responsible for the OSS project “Medical” which is based on openERP (a python based OSS ERP solution). It is a centralised Health and Hospital Information System that provides Electronic Medical Records (EMR), a Hospital Information System (HIS) and a Health Information System. It offers 30+ modules for different pathologies and also the logistics of healthcare Organizations. That project was cited many times in the different talks and is used by Hospitals and clinics around the world:

Among the other talks during that day, a pertinent overview of the use of Open Source at a Governmental level in Brazil was done by Cesar Brod. Due to the ex-president Lula’s open source policies, OSS portals ran by the Government are acting as a catalyst for the national OSS community and most essentially for the country’s development. Many projects used by the Government in Healthcare and Education are created through those portals: and

An excellent example is InVesalius, an application generating 3D images from Xray 2D scans:

The VistA (not the windows one) platform used in US hospitals was also mentioned. Several open source versions exist (WorldVista GPL, OpenVista AGPL, vxVista EPL) and have been broadly deployed in the states:

Another talk was done by the United Nation University (Institute for Global Health) from Kuala Lumpur in Malaysia. I was quite impressed by their initiatives around Open Source since I didn’t even know that their was such a thing as a United Nation University which delivers degrees and PhDs. They implement an open CaseMix tool ( providing a classification of patients’ treatment episodes. For instance, similar tools or services are used by the NHS or in Australia as a key funding model for reimbursement of the cost of patient care in hospitals.

They also publish a portal online with different course around “Open Source Training in health care”. There are only 4 full courses on the website but 10 of them are in progress at the moment so check out the website if you are interested:

A nice project from Bika labs in South Africa that got my attention was BIKA LIMS for Laboratory Information Management System. I was impressed by the maturity of the project and the stories of the project manager (Lemoene Smit) who have been working more than 10 years on it. The software is based on Plone/Zope and fully open source. It allows to manage a laboratory workflow from sample reception to result publication.

It is worth mentioning that Bika labs has also different branches for different industries such as water quality management, wine and beverage industry, geology and mining (

I will not describe each talks done during the two following days (Med-e-tel FLOSS tracks) but the ones that captured my attention and also those focused on providing platforms centralising different OSS projects in healthcare.

Regarding the issue of centralising information about OSS for healthcare, Thomas Karopka and Holger Schmuhl presented the portal during a talk about governance for FLOSS in healthcare. 230 projects were listed on the website during the talk, this is the ultimate place to seek for Open Source software in healthcare or submit a project if you are involved or interested. Holger Schumhl also referred to the Open Health Tools teamforge portal but that was definitely more oriented to the practitioners with many standards and protocols of the healthcare industry provided by those tools (

Another place listing many projects around this topic is DebianMed presented by Andreas Tille from Germany. A debian repository with many projects properly packaged in debs since many scientists tends to just provide sources when it comes to OSS practices. The repository is currently focused on medical practice, imaging and bioinformatics. See

The last day, one track was more oriented towards AAL or “Ambient Assisted Living” projects governance. I didn’t know what was AAL before which is about making smart use of technology to support well-being in the preferred living environment for people who might otherwise find this difficult (e.g. infirm or very elderly people who want to continue living in their own homes). No OSS projects were described but a manifesto and an open platform were presented:,

On the other track, a Spanish company called Andago made a good impresison with their OSS products for eHealth and eGovernment. They offer a new mobile health platform (web and android), Open Health Assistant, that is generic and flexible enough to enable the creation of various kinds of chronic disease management solutions, tailored to both care providers as the patients themselves. The talk was more ‘marketing’ orientated but it looked good and promising on the slides, you can see more at

The last session was a workshop for “Collaborative care team in open source” by Etienne Saliez. The presentation was focused on the chronology of ICT in healthcare, from the paper-based archives to the personal computer and the current distributed environments. The confidentiality and economic issues were also treated with a proposed coordination logic model. The outcome of the workshop was the creation of a Working-Group by Monika Hubler (University of Basel, Switzerland) with all the attendees to carry on the discussion around the main topic of governance for a fragmented FLOSS community in healthcare.

Overall, the IWEEE was definitely the place to be if you needed to have a broad overview of the Open Source solutions used in Healthcare and eventually Education. The talks were highly informative, the discussions pertinent and the networking also was quite enjoyable. I personally recommend this event and will follow some projects that can fit with some charity missions that I’m affiliated with.

The £100 PC

Martin Houston

The under £100 cheap PCs for the disadvantaged have just gone on sale.—from-9200-8-c.asp

Ubuntu 10.10 is there as a solid (and ‘no strings attached’) choice.

But for only £3 more so is Windows XP and Office!

This is very bad news for the disadvantaged, for the rest of the internet community who are going to have to put up with millions of new potential malware filled zombie computers to deal with.

The users also have to agree to special licensing terms as Microsoft is doing them such a BIG favour (not).

Why would Microsoft do such a thing? Is it not trying to end of life XP?

It seems that keeping several million new computer users away from the freedom of running and learning about the free software that the Internet itself tends to run on.

We in the free software community should not take this clumsy piece of vote buying lying down. Make a fuss.

Netbooks were a great chance to free people from having to run Windows. However Microsoft came in and changed ground rules, forced netbooks to be non upgradeable and carrying battery sucking hard disks because XP was not so hot about running from SSD.

We don’t want the same thing to happen in the second user computer marketplace now it is becoming significant.

Five year old PCs are just fine for running Linux for most peoples use. They really don’t need to be distracted by XP and weasel worded licences.

Government Consultation on Free and Open Source Software

Martin Houston

The UK Government would like our help.

Those of you at the spring conference may remember that I mentioned there that the Home Office is in the process of collecting a list of Free and Open Source software that has a good track record of being in use and of use. The purpose of this list is to give suggestions to the system integrators of technologies they could use in constructing complete systems for Government of NHS use.

Having a list of trusted technology building blocks such as Apache, Python and Linux means that systems need not have to consist of many proprietary components that cost the UK taxpayer an arm and a leg in ongoing software licence payments.

Mr Tariq Rashid the Lead Architect of the Home Office IT Technology Solutions and Assurance Team has put together a Google Docs site where you can review the current proposed list and suggest extra packages to be included on it.

See also: where there are links to the consultation document and to the related appeal for information by the FSFE.

Designing Interfaces

Jenifer Tidwell
Published by O’Reilly Media
ISBN: 978-1-4493-7970-4
576 pages
£ 38.50
Published: January 2011
reviewed by Lindsay Marshall

I am conflicted about this book. It is, as the blurb says, a genuinely comprehensive look at “interface patterns” and it should be useful to anyone who is building interfaces, but…

First, the title — this is not a book about designing interfaces; it’s a dictionary/catalogue/encyclopedia of approaches to solving particular interface problems, but it doesn’t tell you how to design interfaces. Second, and this is just me of course, I find the whole idea that these are “patterns” just annoying and wrong. “Prominent Done Button” is only a pattern if you stretch the definition a long, long way, way past breaking point — this doesn’t devalue the content of course, just makes it annoying for me to read. YMMV, and almost certainly will. Third, even though I’ve described this as a dictionary/catalogue etc., there isn’t really a quick way to find a particular solution to a problem you may have. Looking in the table of contents and seeing “Pyramid” doesn’t help me identify whether or not I need to go and read that item.

I’m being picky. The content is good (I like the mobile section particularly), the production values are high: colour, glossy pages and much the heaviest O’Reilly book I have handled recently. If you work with interfaces and can afford to buy it then you should, as you will use it. It is certainly one for the interface development team library at the very least.

Vi and Vim Editors Pocket Reference

Arnold Robbins
Published by O’Reilly Media
ISBN: 978-1-4493-9217-8
94 pages
£ 11.50
Published: February 2011
reviewed by Andy Thomas

Another gem in the O’Reilly Pocket Reference series, this is a long overdue and much needed second edition of a pocket book that originally appeared 12 years ago as a companion to Learning the vi Editor by the same author. Times change, editors evolve and become increasingly feature-laden and the rising popularity of Vim is now reflected in the title. But the book also covers elvis, nvi and vile quite extensively despite the fact that nowhere on the front cover is this mentioned, which seems a curious omission that could impact sales of this excellent book; elvis is the default editor in Slackware Linux, for example.

Omitting the formal structure seen in some other books in the series, there are no chapters or even page breaks separating the different sections — this has allowed the author to cram as much meat into this 85 page book as possible and he wastes no time in doing so, jumping straight into the basic editing functions common to all variants on page 2. Starting with screen mode commands and moving on through startup and recovery options and substitution tricks to the ex commands, explanation of vi’s three modes of operation — command mode, screen mode and ex — switching between them and how they relate to each other is rather lacking but then this is not a vi tutorial. And comparing this with the full size book, it looks as if almost every command. option and parameter in the latter has somehow been squeezed in with nowt left out — it even manages to find space to cover the differences between the Solaris implementation of ‘traditional’ vi and others.

Moving on to the vi clones, it’s perhaps no surprise that Vim gets the lion’s share of the treatment and this is really extensive, opening my eyes to features of Vim I didn’t know even existed. The special features of nvi, elvis and vile are then covered and the book rounds off with a page of URLs to vi-related resources, a useful page listing the authors, email addresses and source download sites for vi and its clones and finally, an index.

O’Reilly’s pocket reference series are a real boon for many as they are designed as an aide memoire for those who already have a basic knowledge of the subject, be it C, Gimp, PHP or vi. For those of us who do a bit of everything and become jacks of all trades, this series is indispensable — not all of us write PHP or use Gimp day in, day out for months on end and we tend to forget the more obscure things 2 or 3 weeks after using it. But there is another aspect to these mini-references — they are very useful when used side by side with the full size reference book when learning a new package as nowhere in “the big book” are the commands tabled one after the other with such concise descriptions of what they do and this is particularly true of the Vi and Vim Editors pocket book.

And even used on their own, they remain a great learning resource as I had a lot of fun trying out all the Vim functions I didn’t know about, spending several hours working my way through the command lists instead of getting on with writing this review…

I found it a very enriching experience, although I doubt I’ll be able to recall all of it in 3 weeks time — which is precisely what this book is for!

Finally, like the others in the Pocket Reference series, this is a true pocket book that will fit into any shirt or jeans back pocket, slim enough not to do the the wearer an injury if he/she sits down forgetting it is there. Many moons ago when I repaired TVs for a living, Newnes used to publish a range of “pocket books” for engineers — only a little larger than the O’Reilly books of the same name but so thick they would not fit any normal garment’s pocket (although I suppose they’d fit the pockets of the voluminous white lab coats all the old hands in the trade wore at the time). And I love that creature on the front cover — well done Arnold and the O’Reilly Pocket Reference team!

Programming Python

Mark Lutz
Published by O’Reilly Media
ISBN: 978-0-596-15810-1
1632 pages
£ 49.99
Published: January 2011
reviewed by Andy Thomas

Leaning back in my chair and contemplating the bookshelves as I ponder how to start off this review, I notice the middle of the bottom shelf is sagging badly, sagging mostly under Sendmail, 3rd edition which I had always regarded as O’Reilly’s weightiest (and loftiest) title to date. All 1200 pages of it. Until now that is — Mark Lutz’s Programming Python, 4th edition comfortably beats that at getting on for 1600 pages and is about the heaviest book I have ever picked up.

The centrepiece of a trilogy, where it is partnered by Learning Python on the one hand and the Python Pocket Reference on the other, this book makes it clear from the outset that it is neither a tutorial nor a Python reference — the reader needs to look elsewhere for that. The emphasis is very much on application programming while the core Python fundamentals are covered in the Learning book — there is no full-sized reference book, at least not yet.

This latest edition covers Python 3.1 only — this means only those parts of earlier versions of Python that have lived on into 3.1 are covered and nothing else. The author explains this was to keep down the page count of this already large book but it seems a shame that an all-encompassing book such as this doesn’t at least cover 2.5 and 2.6 which are still being bundled with many Linux distros at the time of writing. However, we need to move on at some stage even if it does make for version incompatibility and experienced programmers should have little difficulty adapting some of the concepts and code examples explored here to Python 2.x.

After a lengthy preface we finally get into the book proper and find that it is organised into six parts; part 1 is a short and gentle introduction to applications programming in which we are shown in six stages how to create a flat file database and then further augment it using the pickle module to ensure consistent record storage. Subsequent stages introduce OOP Python style, adding persistence and console interaction before moving up to a full GUI and finishing with making the application web-accessible, preparing us for the in-depth applications programming techniques covered in the remainder of this tome.

Part 2 is about systems programming, containing six chapters on Python’s extensive library of modules for system file, directory and other functions. *n*x users should not be discouraged by the fact all the examples shown here (and indeed, the whole book) are for the Windows command shell with references to using Cygwin where appropriate — there are occasional references to Linux in the text but none at all in the massive index at the end of the book, although UNIX gets a few lines here. This section ends with some really quite useful complete systems utilities although some seem to be Windows specific.

Jumping in a bit deeper in Part 3 we come to GUI programming. Five very large chapters are mostly devoted to tkinter, the Python interface to the Tk library — I had some problems running some of the examples on my Linux system and had to tinker for ages with installing tkinter before anything worked. But users of mainstream Linuxes and MacOS bundled with tkinter-aware Python packages should find these will work out of the box and there are some useful image manipulation examples as well as the complete programs that close each part of the book.

Internet and network-aware applications follow in part 4 which for many potential readers will be the most interesting part of the book, as this and GUI programming (part 3) get by far the largest treatment over chapters 12 to 16 covering in turn network scripting, client-side scripting, a complete working email client (PyMailGUI) that illustrates the techniques learned in the previous chapter, server-side scripting and finishing with PyMailCGI, a working webmail-style system. Python’s network support is very standards-compliant so readers using *n*x will perhaps have more fun with the code here than with the GUI section and I certainly felt much more at home here; a lot can be learned from the concepts here that experienced programmers may find useful when writing in other languages.

Tools and Techniques is the topic of part 5, a four chapter round-up of some of the techniques used in earlier chapters including information storage and SQL integration, advanced data structures using stacks, binary search trees and graphing followed by a further two chapters on text and XML parsing and integration with other languages and their libraries. This section will probably be of interest to those who wish to use Python for scientific and mathematical computation work.

Titled simply ‘The End’, the final part of the book is entirely non-technical and largely philosophical look at computer programming in general, what the author thinks is wrong with current programming and development methodologies and why Python comes to the rescue, galloping in as the Knight in Shining Armour and does things “the right way”.

A well-written book that explains complex concepts comprehensively yet clearly, with the occasional references to well-known Monty Python catch-phrases adding a touch of humour, this book is firmly in ‘advanced’ territory as far as the intended readership goes. But given the increasing prevalence of Python scripting even in such mundane areas as operating system install scripts, there is clearly a need for a book at this level and I think this is about the only book that fulfils this need. To get the most from this book, consider also buying the companion learning and pocket reference books and if you do buy the complete set, you’d better have a strong bookshelf.

HTML5 and CSS3

Brian P Hogan
Published by O’Reilly Media
ISBN: 978-1-934356-68-5
280 pages
£ 25.50
Published: January 2011
reviewed by Daren Chandisingh

According to the prerequisites, “HTML5 and CSS3: Developing with Tomorrow’s Standards Today” is aimed at developers with a good understanding of HTML and CSS, as well as those having a basic understanding of Javascript in general, and jQuery in particular. I would echo these sentiments; it’s not a book for the complete beginner. The book leans quite heavily on jQuery, and while there’s a primer in the appendices, a reader who does not have appreciation of Javascript — and its potentially odd-looking syntax — is as likely to be left bewildered as he or she is enlightened.

The book begins with an overview of new additions to HTML5 and CSS3, and deprecated tags that are commonly encountered, along with a caveat that these are specifications that are in development, so could change at any time.

“HTML5 and CSS3” is presented in three parts. Broadly speaking, the first part covers new semantic and structural elements and attributes; e.g. header, nav and section elements. Part two covers more presentational aspects such as the canvas, audio and video elements, and new capabilities of CSS3 such as rounded corners, gradients and drop shadows. Part 3 covers aspects of “HTML5” which are neither markup nor presentation, and have either been spun off from the HTML5 specification, or which were never part of the specification in the first place; these include local storage, web sockets and geolocation.

Each item is introduced in the context of a realistic example, covering not only the “what” of new features, but also the “why”. I found the style quite abrupt, and occasionally lacking enough introduction to blocks of code, be it the HTML, CSS or Javascript that peppers the pages. Similarly, I sometimes read comments within the text that didn’t seem to follow or seem obviously connected to the preceding block of code. As noted before, this book is intended for intermediate developers at least, and I think a degree of inference and internal linking of dots is expected.

Most features are accompanied with a fallback proposition for browsers that don’t yet support the item under discussion; these fallbacks are largely Javascript dependent, and are accompanied with examples of how to detect whether the feature is supported. This was one of the most useful aspects of the book, I felt, as I’ve found it easier to find out what “HTML5” can do, than I have found material that enables me to use the features with confidence that my pages won’t be unusable for a significant number of my audience.

The author also tries to keep the accessibility aspects of new features in the reader’s mind, both offering examples of how the new elements and attributes can help disabled users, as well as highlighting any downsides of the fallback propositions.

This book contains a good amount of useful information for the developer who wants to get stuck in to using HTML5 and CSS3 right now. However, each feature’s coverage is short, before moving swiftly along to the next item, so this is something of a whistle-stop tour. Some work is required on the reader’s part in order to make the most of what’s presented, but it’s certainly a sound launchpad for exploring the new frontier.

Mining the Social Web

Matthew A Russell
Published by O’Reilly Media
ISBN: 978-1-4493-8834-8
360 pages
£ 30.99
Published: February 2011
reviewed by Paul Waring

Many people are a member of at least one online social network, whether it be Twitter, Facebook, LinkedIn or even a collection of emails and mailing lists. This book aims to show you how to pull together, filter and analyse the rapidly growing corpus of data available and turn it into something useful.

The introduction chapter is pleasingly short on flowery prose, and by page 4 we’re already connected to the Twitter API, followed a few pages later by an example of frequency analysis and lexical diversity. The authors have sensibly decided to re-use existing open source tools rather than writing their own, for example graph data is output as DOT language, which can easily be visualised. As a result, by the end of the first chapter we are already writing scripts to produce graphs showing the connectivity of retweets.

The next few chapters go into more depth in data collection and analysis. There is an entire chapter dedicated to email, which contains a trove of useful information about interactions but is probably not the first thing most people think of when discussing ‘social data’. Broad coverage is also given to the topic of using CouchDB to store and process social data, particularly its map/reduce functionality.

Whilst most of the first half of the book focuses on Twitter, chapters covering LinkedIn and Google Buzz (which feels slightly wasted, given that this network failed to take off) bring some variety. Part way through the Google Buzz chapter the mathematical symbols and formulae rear their heads, taking me back to my time spent in academia where I brushed against the natural language processing research area. Facebook also gets a chapter, although the speed at which its platform changes means that some of the information may be out of date, but the principles remain the same.

Overall, this is a good starting point for anyone looking to take large chunks of social data and produce summaries and graphs. You do need to have a good grasp of natural language processing to make the most of the text beyond the first half of the book, and probably a reasonable understanding of Python too, for which Natural Language Processing with Python may prove useful.

REST in Practice

Jim Webber, Savas Parastatidis and Ian Robinson
Published by O’Reilly Media
ISBN: 978-0-596-80582-1
448 pages
£ 34.50
Published: September 2010
reviewed by Paul Waring

Having already purchased and read the excellent RESTful Web Services (O’Reilly 2007), I was pleased to see a new and up to date book covering this topic. For anyone who hasn’t come across REST (Representational State Transfer) before, the basic concept is to use an existing protocol’s (usually HTTP) capabilities instead of implementing this functionality for each application which requires it. For example, HTTP already supports a variety of authentication methods which can be used instead of having to reinvent the wheel.

The book begins with an introduction which succinctly covers all the main concepts and jargon related to REST, with some excellent diagrams for those who prefer graphical explanations to textual ones. This is followed up by two chapters demonstrating the basic operations involved in REST, centred around the example of a coffee shop. The chapter covering an example of an ordering service is helpful, but unfortunately uses .NET for all the example code, and in my experience the HTTP and web client libraries provided do not work well across different platforms.

The chapter on Scaling Out is particularly useful, covering not only how to cache content, but just as importantly how to make content cacheable. Two chapters dedicated to Atom seem slightly wasted though, and the authors could perhaps have culled one in exchange for detailed coverage of another topic.

The topic of security gets a dedicated chapter, covering not just authentication and authorisation but also transport-level confidentiality and integrity. The performance aspects of security are also covered, including the overhead of cryptographic operations and the lack of caching which comes with HTTPS. Finally, the book is rounded off with a chapter of how REST fits in and compares with other well known concepts associated with web services, such as SOAP and WSDL.

Overall, this is an excellent overview of REST, with plenty of clear, crisp diagrams and a broad coverage which takes in everything needed to get started.

jQuery Pocket Reference

David Flanagan
Published by O’Reilly Media
ISBN: 978-1-4493-9722-7
160 pages
£ 9.99
Published: January 2011
reviewed by Mike Fowler

This book serves as an introduction to jQuery and provides very thorough coverage of all the aspects of the library. Though a reference for the API is provided at the end of the book, the book feels more like a pocket guide than a pocket reference. In fact the whole book is the jQuery chapter from the author’s much larger Javascript: The Definitive Guide. This has the advantage of making a very readable little book however the sidebars are preserved and look quite odd as many overflow to a subsequent page. Given the format of the book I would have preferred to see the sidebars integrated into the main text for improved readability.

Each chapter of the book gradually introduces you to more and more features of the library. The author has assumed that you know JavaScript but not jQuery which helps keep things to the point. The examples are simple and clear and not contrived as examples often are. The author takes the time to explain why the library works in the way it does and what browser limitations the library helps you to work around. Amusingly the author also provides some critique of the library, particularly where the naming is confusing. For example the jQuery.ajax() method has an option called type which the author rightly points out would be better named method.

jQuery experts probably won’t find this book of much use as the library moves so quickly the API reference is already somewhat out of date. The book covers version 1.4 and we are already on version 1.6.1. However for people who only dip into jQuery occasionally or who have no previous knowledge of jQuery, this book will serve as an excellent introduction and refresher.

Learning the iOS 4 SDK for JavaScript Programmers

Danny Goodman
Published by O’Reilly Media
ISBN: 978-1-4493-8845-4
318 pages
£ 26.99
Published: December 2010
reviewed by Mike Smith

A brand new first-edition book, this one (well, printed at the turn of the year) but the very first thing I notice is the diagonal flash across the top right hand corner — “Covers iOS SDK 4.2”! I presume this is to demonstrate how new and up-to-date the book is, but I’m not sure of the wisdom of this technique. It is of course already out of date.

I’ve been doing a little tinkering with iOS recently (well, on and off for a few years now) and so this title grabbed my attention. Another worry I have for O’Reilly and the author, which I’ll share with you before getting into the content, is that there is a danger that the way the book is positioned limits the readership base. How many potential iOS developers are there just starting out (yes, probably quite a lot); but more importantly how many of those have a JavaScript programming background? I just wonder why buy this book when there are other more general iOS texts about. (I think a better title to draw people in would have been “iOS development for web developers”, or something similar.) It reminds me of the new near field communication phones coming out — Orange are making a splash with one at the moment, but you have to be on their network, have to have a Barclay card to top it up, and have to have the specific model of phone — all limiting the potential audience. anyway, I digress, onto the review.

There’s an initial positioning chapter that discusses the relative benefits and pitfalls of native application development versus web-based apps. The author talks about his early experiences of the iPhone — life before the SDK, so I think that’s one reason for the inclusion of this material. This book seems to be drawn from much personal experience.

The next chapter walks through the SDK installation and loading up a sample project. Unfortunately, again the world is changing here. I think as a registered developer you can still download the 4.3 version of the SDK from the web, but the latest (and nicely integrated version with Xcode and Interface Builder all together) is now only available through the Mac app store (at a cost too, the meanies).

The next few chapters gently introduce us to developing our first application, discuss iOS frameworks and object-oriented coding. Actually this is one area where a direct comparison is made between creating classes in JavaScript and performing the same activity in Objective C. It’s not until page 92 that model-view-controller is mentioned. I’m jumping ahead here, but it’s drummed into you (at least in many other texts I’ve read) at an early stage that this is the way it’s done in the Apple/Next/iOS world. Excluding the appendices this book has 165 pages, so we’re over a third of the way through by now. A mate of mine has written a PHP MVC framework which is quite cool (some great wizardly Apache rewrite rules make it all work automatically: impressive.)

Data types and memory management up next, and discussions on various topics — with mention of C and C# too. Things like structures, variable scope — a whole mix in chapter 7. But not the special classes in Cocoa — this is saved for chapter 8. Actually we cover similar subject areas — C arrays in chapter 7 followed by NSArray, NSMutableArray etc in chapter 8.

The purpose of Chapter 9, and in fact the final chapter of the book, goes to the core of the title of the book. Performing common JavaScript tasks in cocoa touch. Or that’s what I thought — but actually it’s just a collection of, yes, useful routines that actually you want to perform in any language. I didn’t spot any actual JavaScript code here — just a collection of Cocoa/Cocoa Touch recipes. Useful nonetheless.

A couple of appendices are included. One on using the Xcode documentation, and a brief one on common compiler errors. The first one is useful to point you in the right direction; I have my doubts about the latter.

So I have quite a few reservations about this book. It’s not tremendously long, the content is a bit mixed up, I’m not convinced of the whole premise and I didn’t see that many direct comparisons between the JavaScript and Objective C environments. Don’t let me put you off if you do fall into the target demographic; have a flick through in O’Reilly’s Safari or in Waterstones, but I’m afraid I’m not convinced this has a place on many peoples’ bookshelves.

Learn You a Haskell for Great Good!

Miran Lipovača
Published by No Starch Press
ISBN: 978-1-59327-283-8
400 pages
£ 35.49
Published: April 2011
reviewed by Roger Whittaker

I have been dabbling just a little with Haskell in the past year. As an (ex-)mathematician, I could not help being intrigued by the idea of a functional language in which you can define infinite lists, in which valid code can sometimes look pretty much like mathematical notation, and in which type classes have rules that look like (and are) mathematical axioms. So I was delighted when the tutorial at the Spring Conference this year turned out to be an introduction to Haskell. And likewise it is good to have the opportunity to comment on this book.

I certainly cannot claim to be any kind of expert on Haskell. But comparing this book with the other introductory Haskell books that I have looked at, I am very impressed with the quality of the explanations and examples. There’s a slight air of zany wackiness running through the book, from its title to the illustrations to some of the examples. This atmosphere, combined with the author’s infectious enthusiasm for the subject matter, makes the book a lot of fun to read. Everything is explained alongside short snippets of code which serve as direct and self contained examples. Reading the book while testing out the examples in ghci is easy to do, and the author doesn’t make the mistake of putting down chunks of code on the page that are too big and tedious for the reader to test in practice.

The book starts off at a fairly gentle pace and the first few (of the fifteen) chapters are easy going. Then the learning curve gets steeper. I spent quite a lot of time working through the examples in the chapters on Applicative Functors and Monads, and the clarity of the examples and explanations staved off the “head explodes” experience that I was expecting to happen at any moment. I particularly liked the example in the Monads chapter of the tightrope walker carrying a pole on which birds may land on either side, sometimes causing him to fall.

There were a few places where it was not clear which modules needed to be imported to make the code examples work (but experimenting to discover the answer was instructive in itself), and there is at least one small proof reading error in a code example.

The book started out as a set of tutorials on line at which is all still available under a Creative Commons licence. The online content differs slightly from the book, but not greatly. Even the slightly odd pictures (which seem to be by the author) have been reproduced from the on-line version.

If you are interested in finding out what Haskell is all about, this book can be strongly recommended.


Daren Chandisingh wrote his first HTML page in 1995, an event that served to steer him away from Windows application development, and towards the land of GNU/Linux and FOSS. He currently works as a Web developer at Lancashire County Council.

Mike Fowler is a Senior Software Engineer at Dotted Eyes. He is a firm open-source advocate and has helped companies move from Microsoft based solutions to complete Linux/PostgreSQL stacks. He is a major contributor to YAWL, an open source BPM/Workflow system. When not melded with a keyboard, he spends his time playing as many different stringed instruments as he can.

Martin Houston has been using Unix since 1980 starting with a PDP11/70 and Linux since 1994. He was the founder of the original UKUUG Linux SIG and is currently a freelance Linux consultant. He lives in Essex with wife Teresa and 2 cats, 2 dogs and too many computers.

Gerald Marie-Nelly is a freelance Linux Consultant from Martinique (French Caribbean) working in London via his company Nawflaw Ltd ( He has worked for Red Hat in the past and is currently contracting in the City and studying management during evening classes. Apart from geeking around, he likes broadcasting Caribbean music online and takes part in various charity projects.

Lindsay Marshall developed the Newcastle Connection distributed UNIX software and created the first Internet cemetery. He is a Senior Lecturer in the School of Computing Science at the Newcastle University. He also runs the RISKS digest website and the Bifurcated Rivets weblog.

Jane Morrison is Company Secretary and Administrator for UKUUG, and manages the UKUUG office at the Manor House in Buntingford. She has been involved with UKUUG administration since 1987. In addition to UKUUG, Jane is Company Secretary for a trade association (Fibreoptic Industry Association) that she also runs from the Manor House office.

Mike Smith works in the Chief Technology Office of a major European listed outsourcing company, setting technical strategy and working with hardware and software vendors to bring innovative solutions to its clients. He has 20 years experience in the industry, including mid-range technical support roles and has experience with AIX, Dynix/ptx, HP-UX, Irix, Reliant UNIX, Solaris and of course Linux.

Andy Thomas is a UNIX/Linux systems administrator working for Dijit New Media, Imperial College London and a number of small companies. Having started with Linux when it first appeared in the early 1990’s, he now enjoys working with a variety of UNIX and Linux distributions and has a particular interest in high availability systems and parallel compute clusters.

Paul Thompson is based in London and works for Novell as a Linux consultant specialising in the financial sector.

Paul Waring is chairman of UKUUG and a director of a wholesale insurance broker. Outside of work he can usually be found filing documentation bugs against various open source and free software projects.

Roger Whittaker works for Novell Technical Services at Bracknell supporting major Linux accounts in the UK. He is also the UKUUG Newsletter Editor, and co-author of three successive versions of a SUSE book published by Wiley.

Paul Waring
UKUUG Chairman

Phil Hands
Council member

Martin Houston
Council member

Kimball Johnson
Council member

Holger Kraus
Council member

Niall Mansfield
Council member

John Pinner
Council member
Sutton Coldfield

Howard Thomson
Treasurer; Council member
Ashford, Middlesex

Jane Morrison
UKUUG Secretariat
PO Box 37
01763 273475
01763 273255
[email protected]

Roger Whittaker
Newsletter Editor

Alain Williams
UKUUG System Administrator

Sam Smith
Events and Website

Tel: 01763 273 475
Fax: 01763 273 255
Web: Webmaster
Queries: Ask Here
Join UKUUG Today!

UKUUG Secretariat
More information

Page last modified 26 Sep 2011
Copyright © 1995-2011 UKUUG Ltd.