Free and Open Source software and cultural change, at Library Camp 2012.

Session underway, participants Tweeting hard. Photograph © Sasha Taylor, used with permission.

On Saturday 13th October I attended the ‘big’ Library Camp 2012 unconference (libcampuk12) at the Signing Tree Conference Centre, Birmingham.

Liz Jolly and I pitched a session on the use of Free and Open Source software in libraries, with a particular focus on discussing the cultural changes or cultural shift needed to develop and sustain the use of in libraries, a typically risk-averse environment. This idea came out of a #uklibchat discussion on Open Source software back in July – thanks to Adrienne Cooper for organizing that.

This session was prepared and facilitated jointly. However when I write “I”, “me”, etc. below I am talking about my own views and experience.

Introduction

In the session asked we use Open Source and Free Software as interchangeable terms that are close enough in meaning that Library Campers could use either term. I realize, and accept, there are objections to doing this. I will refer to FOSS meaning “free and open source software” below.

I explained that Open Source is a pragmatic model of software development where you are allowed access to the source code of the software, however it – and moreover the older concept of Free Software – are underpinned by a philosophy based around respecting users’ freedom and fostering community. Drawing on this we wanted to open with the “four freedoms” in the Free Software Definition (Free Software Foundation, 2012) and how they tie into our professional culture. This list is written by a computer scientist, so famously it starts from zero!

  1. The freedom to run the program, for any purpose (freedom 0).
  2. The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1).
  3. The freedom to redistribute copies so you can help your neighbour (freedom 2).
  4. The freedom to distribute copies of your modified versions to others (freedom 3).

We argued that in higher education and librarianship in particular, these freedoms are broadly aligned to our own professional culture. Universities have a culture of sharing both internally and externally, and also between those working in the same disciplines across institutions. Furthermore, both within and without higher education, librarianship is a particularly collaborative profession.

However, in the broader cultures of higher education we face various problems. In some ways the Four Freedoms are in opposition to the broader organizational culture we work in. We identify points of tension for universities and libraries as collaborative organizations working within power structures that do not necessarily agree with or support a collaborative approach. This is especially the case in our current political and financial climate, where increased competition between institutions will to an extent mitigate against a collaborative culture.

We wondered if perhaps this is mainly a problem within perceived “competitor” institutions, I asked if anyone finds themselves discussing things more openly with colleagues in sectors or institutions that you don’t consider a “threat” or competitor to your own?

FOSS and the culture of libraries and education

Culturally, one starting point is looking at where we still find institutional resistance to FOSS. By this I mean beyond myths like FOSS implying that you have to “build it yourself”, or that “you need to employ programmers”, rather I mean resistance to FOSS as a concept itself. I have seen some of this in my career in further and higher education, but I would say nowadays I think this attitude is dying off. Personally I find myself anticipating resistance to FOSS that simply doesn’t materialize – or in many cases I actually find enthusiastic approval for FOSS.

I am sure our experiences here vary widely – certainly buy-in from senior managers is essential and having one particularly pro- or anti-FOSS manager can make a huge difference either way. Several participants contributed here with examples from their own public sector experience where projects already in development had been scuppered when they were found to be using FOSS, and explained further that they did still spend time knocking down some very old-fashioned arguments about FOSS versus closed source such as needing to “have someone to sue when it all goes wrong”.

There was general agreement that certain sectors are worse at this than others, with libraries in local government and the NHS picked out as particularly difficult: public libraries having to accept whatever systems their authority decides on with limited or no change, and the NHS wanting to play especially safe.

One contradiction in higher education is we have a very long history of using FOSS for the services that underpin our systems (the concept of Free Software was born in higher education, when Richard Stallman was at MIT (Stallman, 2010) but a reluctance to actually use FOSS for campus-wide and departmental systems. What do we mean by this? At a basic level FOSS gives us the building blocks such as web and database servers, programming and scripting languages that we need to create software and services. Few of our IT and systems colleague would object to for example using a FOSS Web server or content management system – but notice how few FOSS library management systems are deployed in the UK, for example.

As a cultural aspect of this we would ask if library and education managers have enough in-depth knowledge of principles of technology, including FOSS, and how it can benefit their organisation to successfully govern projects and to engage with wider community? In universities there is an approach to promoting managers on academic excellence rather than strategic management ability, but these would be the people chairing project boards.

One example here is Moodle, a FOSS virtual learning environment – some argue that while the use of Moodle in higher education is growing, there is a relative lack of engagement with the community – possibly because of the aspect of knowledge culture in higher education of a fear of “exposure”, of not knowing? Oddly, we note that universities can prove not the best learning communities as we don’t like to admit when don’t know things! We also noted at a higher level a culture of “not invented here” exists in UK higher education (most obviously in nationally-funded projects) where we fail to learn from what others have done elsewhere. Or worse in some cases actively dismiss experience elsewhere because it is not our own idea.

How we buy software, and the “library mindset”

At this point I apologized to my fellow Library Campers for I was going to talk about… project management.

I argue the prevailing approach to software procurement and management in libraries works against FOSS. By this, I mean the approach to procurement or ‘invitation to tender’ that includes implicit assumptions that we are purchasing products from a software supplier or “vendor”. That said, we can actually specify and purchase FOSS in this way – what we are doing is buying the same support from a vendor but the product itself is FOSS. In the public sector, that support might require a tendering process over a certain threshold amount. Luke O’Sullivan pointed out here there is a procurement framework for purchasing FOSS systems available at the LibTechRFP wiki.

We note that very few actually do this. A recent example is Staffordshire University where Dave Parkes and colleagues worked hard to research and justify choosing the Koha Open Source ILS, supported by PTFS Europe (Johnson, 2010). From a systems point of view it’s notable that Koha is quite a traditional LMS, and can go up against other similar systems using the full UK LMS Core Specification.

I would argue systems like the LMS and resource discovery are really about enterprise information, by this we mean they are among our key systems enabling learning and teaching, research, and other business activities in our universities. These systems are therefore business critical and should be viewed as such. However in universities this typically has never been the case. The LMS tends to be seen as a system that is “just there”, in the library – something that doesn’t need too much attention from IT or the broader university.

This ties in with an approach to user acceptance and testing that does not really exist in higher education, but should as the risks are that spreading around bad data between library and other systems in your university can cost you real money. We argued that librarians should look at software projects from a viewpoint of a “testing mentality”: what is it doing? What effect does it have on other parts of the system and on our other data? Librarians as information professionals should have a role to play here. This is not technical, but about information. More broadly Kate Lomax mentioned there’s a lot you can do to contribute without being a developer or a techie – for example documentation.

I argue these points about how we’ve viewed our previous systems and how we  procure them has created something of a “library mindset” in our culture. I feel that as library workers we’ve been complicit in this, and worse in library systems and IT we often take the safe option which can limit our outlook and willingness to risk new things. This is even while we’re very happy using FOSS on own our own computers, or as some participants mentioned “sneaking in” FOSS programs behind the back of unwilling IT departments.

What changes everything in our view are FOSS products in library management systems, discovery, finance, student management, and virtual learning environments that are now becoming mature and mainstream.

Several mainstream examples are:

Conclusion

As a kind of coda we explained that issues around governance, testing methodology, documentation, change management and so on applies to so-called closed-source software just as much as it does to FOSS, and we’d say good project management and software development practice applies regardless of development model use.

As a FOSS developer, Luke emphasized the importance of governance, testing and providing a stable service alongside development. He explained that FOSS is incredibly exciting because you can work with the source code to make changes to suit your local needs – but you risk getting totally carried away. Culturally this represents a real change for library workers not used to this flexibility, so there’s a danger of too much demand on programming time if the assumption is anything about the system can be altered to meet local needs.

The strategic issues here for FOSS projects are around effective management in terms of inclusivity, collaboration and transparency, project governance frameworks, quality and risk management, procurement policies, and change management. These are not specific to an FOSS approach but we argue, essential for such an approach to be successful and specifically to address the traditional weaknesses found in FOSS projects.

Acknowledgement

My thanks to Sharon Penfold, Project Manager at the Bloomsbury LMS for helpful discussion on this subject around procurement, data, testing, and project management.

References

Free Software Foundation (2012) ‘What is Free Software?’ Available at: http://www.gnu.org/philosophy/free-sw.html

Johnson, P. (2010) ‘Staffordshire University chooses Koha for its new library system’. Available at: http://blogs.staffs.ac.uk/informationlandscape/2010/12/10/staffordshire-university-chooses-koha-for-its-new-library-system

Stallman, R.M. (2010) ‘The GNU project’. Available at: http://www.gnu.org/gnu/thegnuproject.html

How to root your HTC Desire and install Android 2.3 (Gingerbread)

Step-by-step guide

There are various reasons to do this, including:

  • Needing root to run certain apps. This includes taking backups, removing unwanted pre-installed apps, and installing a fix for the tiny (140 MB) internal storage on the HTC Desire.
  • Wanting an upgrade to Android 2.3 or higher. This is not available officially.

Isn’t this explained elsewhere online? Yes, but many guides are out-of-date or include unhelpful advice. I wasn’t able to find everything I needed in one place.

This post is 80% there: http://androidforums.com/desire-all-things-root/439627-guide-revolutionary-s-off-rooting.html

This will wipe your phone including apps and data.

Preparation

As well as an HTC Desire you need a Windows PC connected to the Internet and a micro-USB cable for your phone.

The custom ROM process is a bit quicker if you have a USB reader for your micro SD card.

Drivers

On your PC:

  • Download and install HTC Sync. Then uninstall the HTC Sync software itself, leaving the HTC drivers in place.
  • Download and install the HTC fastboot drivers mentioned on the Revolutionary documentation.

Is it necessary to install the Android SDK for this process – using adb shell? I don’t think so. Described on this post.

On your phone:

  • Enable USB debugging.
  • Enable installing non-Market apps.

Root and custom recovery

This is a two step process: we use Revolutionary to gain S-OFF on the phone, then flashing a root zip file which gains you root. Revolutionary does not get you root by itself.

HBOOT version / erase size of 20,000 or 40,000. As we’re using Revolutionary and ClockWorkMod (CWM) does this apply? I think not.

From boot screen:

Check if PVT version is PVT4. If so check erase size.

Install Terminal Emulator from Market, then

cat /proc/mtd

Check if 20000 or 40000. If 20000 or not PVT4, we’ll use ClockWorkMod.

Check HBOOT version, this must be lower than 1.06.

On your PC:

  • Turn off your anti-virus software temporarily.
  • Download Revolutionary from http://revolutionary.io and the custom root zip file mentioned on their documentation page.
  • Connect the phone. Put the custom root zip file on the SD card.
  • Start Revolutionary. It will guide you through the process.
  • You need to get a beta key for Revolutionary – the program gives the details about your phone to generate one on the Revolutionary site.
  • The phone will restart a few times and Revolutionary will update you on progress. It’s automatic, but keep an eye on it.
  • As a final step Revolutionary asks if you want to install a custom recovery – CWM. Say ‘yes’ to this.

You now have S-OFF on the phone.

On the phone:

  • Switch off the phone, and boot into HBOOT by holding ‘volume down’ and pressing the power button.
  • The boot screen should say -REVOLUTIONARY- at the top and mention S-OFF in the next line.
  • Choose Recovery from the menu.
  • Select ‘Install zip from sdcard’ then ‘Choose zip from sdcard’.
  • Choose your root zip file, should be named Superuser-3.0.7-efgh-signed.zip.
  • Power off the phone from the CWM menu.

You now have an HTC desire with root and a custom recovery.

Custom ROM

We will use CWM to partition the SD card then install a custom ROM.

There are some dire warnings online about not partitioning an SD card with CWM, these apply to old versions of CWM and can be ignored with the current version.

This process will wipe the SD card. Copy the contents of it onto your computer first if you want to keep them.

Partition the SD card

Goal is to provide two partitions on your phone:

  • An ext4-formatted partition of 1 or 2 GB on your SD card that the phone will use as internal storage.
  • The rest of the card as a fat32-formatted partition the phone will use as regular SD card storage.

The only complication here is the ext4 partition must come second on the card, the fat32 partition must come first. CWM will handle this for us.

On the phone:

  • Boot into HBOOT by powering off and holding ‘volume down’ and the power button.
  • Go into Recovery → Advanced → Partition SD card.
  • Set the sd-ext partition to be 1 GB.
  • You don’t need a swap partition but setting one of 32 MB will not hurt anything.
  • The partitioning and formatting will take a while. Leave it be.
  • When this is done power off the phone

Installing a custom ROM

Take out the SD card and connect to your Windows PC.

Download your custom ROM of choice. There are many available for the Desire so it depends on what features you want.

I am using the SuperNova ROM which is very good. It provides Gingerbread and HTC Sense and a fairly ‘stock’ experience. Importantly, The ROM has a stable Data2SD installed that provides ample internal storage using your SD card.

Download the latest SuperNova and put it on your SD card. SuperNova instructions are here.

Quick version:

  • Shut down your phone and reboot to HBOOT.

Select Recovery, then:

  • Wipe data/factory reset
  • Install zip from sdcard → choose zip from sdcard → pick the SuperNova file.

Question: is it required to wipe cache and/or dalvik cache? Think it doesn’t hurt at the first install of SuperNova but should never be done when upgrading.

SuperNova is a big file so this process takes a while. It provides updates as it goes. Once it’s finished power off.

At first boot:

  • Allow the phone to boot, then answer all the questions asked except skip the Google account setup. Check About → Software shows the build as SuperNova.
  • Don’t restore data or apps yet. Reboot the phone.
  • At this point Data2SD runs during boot. When the phone has finished booting up, check the internal storage – it should be 900+ MB.

New Radio

Not the Bikini Kill song. The radio is software on the phone that allows you to make phone calls and use mobile Internet.

There seem to be incompatibilities between different Android releases, different custom ROMs, and different radio versions.

Radios are available from Mo Firouz’s site.

Best approach is to leave your radio alone and check if everything works with your new ROM.

  • If it does not, install the most recent radio release. SuperNova recommend you use this – version 5.17.05.23.
  • If this does not work then downgrade to version 5.09.05.30 recommended by Mo Firouz. This worked for me on Gingerbread when my current radio and the newest radio didn’t work.

Flashing the radio

This is complex. The radio as you download it cannot be loaded directly using CWM as they are only distributed in an old and incompatible format. Ignore the steps on the download page above.

You can flash the radio using fastboot. This is a hassle – there must be a better way, surely?

Guide to ADB and Fastboot for Windows.

On the PC:

  • First install the Android SDK. This will take a while as the downloads are large files.
  • Download and install the HTC fastboot drivers mentioned in the Revolutionary documentation.
  • Download your radio file and extract the radio.img file from it.
  • Reboot to HBOOT then select Fastboot from the menu.
  • Connect the phone using USB. Your phone screen should update to say ‘FASTBOOT USB’.
  • At this point you can issue commands using the ADB shell on your Windows computer.
  • Open a shell in Windows using cmd.exe. Navigate to the folder containing your radio.img file.
  • Note: online guides mention setting the system PATH variable. Don’t worry about this, you can just run the fastboot program directly.
  • Find fastboot.exe – it will be somewhere in the Android SDK folder. On my 64-bit Windows 7 machine, it’s:
c:\Program Files (x86)\Android\android-sdk\platform-tools\fastboot.exe
  • Flash the radio using this fastboot command:
c:\Program Files (x86)\Android\android-sdk\platform-tools\fastboot.exe flash radio radio.img
  • Finally reboot the phone:
c:\Program Files (x86)\Android\android-sdk\platform-tools\fastboot.exe reboot

Photo credit

HTC Desire‘ by Flickr user Matthias Penke, license CC BY-NC-ND.