Why Android is winning

We’re hearing so much about Android at the moment in our line of work. We’re still developing iOS applications of course, because the operating system is very much part of our world. It’s necessary for consumer applications, and great for organisations large enough to use the Enterprise Program and who can run an in-house app store.

However, Android has many advantages for businesses large and small, as well as for end users.

For a start it gives complete control and the same freedom old Windows mobile devices offered. So, for instance, a small company could buy ten handsets of their choice and load their in-house application without having to ask permission. And there’s no bureaucracy.

There’s a wide choice of hardware too. Android is available on low-end phones, high-end smartphones, cheap tablets, and robust, weatherproof devices like the Panasonic Toughpad.

It’s also available on processor modules for integration directly in to your own hardware.

Then there’s the ease with which user interfaces can be developed such as modern touch-based screens. And it supports development of USB device drivers, which can control custom hardware.

Android also enables custom application launchers for single purpose devices, and it’s possible to ship a completely customised Android image on your own hardware.

So while there’s still a place for iOS, Android is winning the operating systems war.

We’re recruiting! Join the Humboldt team

Tired of working on the same type of projects day in, day out? Looking for something a bit more varied and challenging where you can use your problem solving skills?

You could be just the person we’re looking for!

We need an enthusiastic, generalist developer with a good knowledge of Linux, as well as C experience, to join our small team in Camberley. You’ll also be eager to try your hand at a wide range of projects, and keen to learn new things.

Our clients are mainly small to medium-sized electronics companies; we work with them as a trusted, experienced partner. You’ll find the work varied – for example you could be working with a leading university to develop an app one month and the next integrating a company’s existing systems to make them more efficient. Or you could be upgrading products to enable them to take the latest technology. Read about some of the projects we’ve worked on here.

You’ll enjoy challenges and problem solving. And you’ll need to be flexible – some clients like us onboard from the beginning and others call us at the last minute to help them complete their project.

As well as Linux, it would be useful, but not essential, if you know about some of the following:

* Device driver development

* Git version control

* Understanding component datasheets

* Embedded build systems such as Yocto

We’re offering a salary £28k – £35k depending on experience.

So if you think you’re the new team member we’re looking for, please call us on 01276 415787 or email us at info@humboldt.co.uk

Visit our About Us page to find out who we are and how we work.



iPad app for Royal Holloway University study into macular degeneration


Macular degeneration is a painless eye condition that leads to the gradual loss of central vision. Central vision is used to see what is directly in front of you, when reading or watching television for example. The central vision becomes increasingly blurred leading to symptoms including difficulty reading printed or written text (because it appears blurry, less vibrant colours and difficulty recognising people’s faces.

Humboldt was invited to join a project to build an iPad app to test ‘eccentric viewing’, which scrolls the text at a steady pace through the reader’s peripheral vision, enabling those with macular degeneration to read text.

Working in conjunction with a team at Royal Holloway University, we used iOS app development technology to build an app, which was aimed at medical researchers working on macular degeneration, as well as patients investigating the approach themselves.

The app was preloaded with sample ebooks, and more could be downloaded from the web.

Working with Humboldt

Professor Robin Walker, who headed up the project at the university said: “It was extremely useful to work with a company with knowledge relating to the wide range of challenges involved in this project.

“A number of decisions needed to be made because the initial specification had not been worked out in detail. With Humboldt’s guidance, these issues were quickly resolved. The choices proved to be sensible as the final version of the app fulfils all our requirements. Humboldt challenged us to think differently and suggested considerations such as the best way of programming the app and iPad features so they would be most useful. Their knowledge of digital publishing, digital rights management, and releasing an app via Apple, was invaluable.

“With their input we were able explore possibilities, such as voice activation, and then choose whether or not to use these techniques as we went along. There was a clear advantage to working with people you could sit down with to discuss the initial ideas, test prototypes, and make changes to the initial specification.

“I really enjoyed the relaxed and informal way we worked together with regular communication by email and in person. Most meetings were quite brief and enabled us to develop the ideas and the app from scratch. Humboldt then confirmed decisions in writing and gave us detailed costings broken down into stages. Any teething problems were quickly resolved and I had complete confidence in the company’s ability to produce a working app that could be released on iTunes.”

The result

The app was successfully launched and is available through the App Store. Professor Walker has received further grants to pursue the work. Click here to find out more about the app


Arqiva DCinema project

Arqiva runs a satellite network that streams films and adverts to cinemas on behalf of film distributors. The network uses a transmission system and satellite receivers from a Canadian company. Movie files are large, for instance, a major Hollywood release may be several hundred GByte.

We were asked to build a system to provide integrated management functions for Arqiva’s main digital delivery process.

The system was installed in 2011, and we continue to work with them as they evolve and streamline their delivery process to cope with changes in transmission methods and new customer needs.  Arqiva’s goal is to deliver a greater number of movies per week and to ensure its equipment and satellite bandwidth is not left idle.

The result

The system runs on a small cluster of servers in Arqiva’s data centre and uses Web Interfaces, Java, Linux Servers, and PostgreSQL to handle the databases.

It performs many functions including

  • monitoring distributor folders to detect when cinema files arrive
  • consistency checks on DCPs (digital cinema packages) from distributors
  • moving files to the correct server for transmission
  • generating transmission file lists
  • checking transmission results and generating reports
  • operator’s web interface

We will be launching a customer-facing portal for the system during 2014.

Working with Humboldt

“That we’ve worked with Humboldt for about five years is credit to its integrity which was established from the outset,” says Ian Holloway – technology consultant and project manager at Arqiva.

“Humboldt provides an integral part of the Arqiva DCinema project and from day one, it felt like they were part of our internal team. Adrian and his team played a major part in the initial scoping of the project and continue to do so as the system evolves.

“Open and flexible in their approach, Humboldt willingly suggests alternative approaches and quickly adapts to changes in the project.

“Communication is essential and it’s one of Humboldt’s strengths. The team readily communicate throughout the project’s lifecycle to its final delivery and acceptance.

“Humboldt’s professional approach, contribution and commitment to this project has enabled us to provide a first-class service to our DCinema customers. For example, Humboldt optimised the processing of cinema (DCP) files, reducing the number of times they were copied over the network from three to just one. This reduced the time it took to process a newly arrived movie by several hours.

“A recent update automates the process of generating delivery report spreadsheets for customers, and they are about to begin a major improvement to our live event management service.

“We consider Humboldt as a trusted partner and will definitely continue to work with them”.

Upgrade for thermal imaging camera


Rufilla, a software development consultancy that specialises in training, asked us to support a project for one of their clients.

The client had a thermal imaging camera, aimed at building inspectors and engineers. We were asked to carry out a mid-life upgrade on the product, which included enabling it to support high capacity SD cards (SDHC).

What we did

The camera was a Linux based design, with u-boot bootloader.

We applied the customer’s board specific modifications to a more recent Linux kernel, which supported the SDHC cards, and we made both u-boot and Linux kernel changes.  This was an important upgrade as SDHC cards were becoming more prevalent and the client wanted to give end-users greater choice.

We also made a series of minor enhancements to the camera, which responded to end-user demand. They included modifications to its video system, which reduced the delay between moving the camera and the change showing in the viewfinder. This made the camera easier to use.

The result

The project was delivered on time, and the customer was able to issue an update, which gave compatibility with a wide range of memory cards. This gave their end users more choice and enabled them to store more images.

Says Joe Nicholson MD of Rufilla, “We’ve collaborated with Humboldt many times so I knew they had a great deal of knowledge and experience of Linux video drivers.”

“They were a key component in making this project successful. Fast and flexible, they approached each element in the most appropriate way. This involved meetings, joint investigations, short milestone software delivery, as well as advice on the correct approach.”

“We worked jointly on many tasks so communication needed to be excellent. Humboldt made this very easy and seamless by using online collaboration tools.”

“I have to say, I don’t think we could have completed this project without them”.

MD evReader for iPad

Download on the App Store

The iPad app we’ve developed for Royal Holloway University is now in the app store. The MD evReader helps people with macular disease (MD) to read eBooks using the eccentric viewing technique. Eccentric viewing involves a person trying to see by making use of the peripheral, rather than central vision. The technique is like trying to see ‘out of the corner of your eye’ and can be a useful way of enhancing visual tasks such as reading. The app scrolls text, one line at a time, with the speed and direction of scrolling controlled by a track pad on the iPad screen. Large fonts can be used and the text can be presented onto a digital TV screen via HDMI.

Development required overcoming a number of technical challenges to ensure steady performance while rendering large fonts to two screens simultaneously.

Building Bespoke Mobile Software

As mobile apps have taken off in consumer applications, it’s become more difficult to build an application for a customer to use in-house. Many new platforms have launched without an easy way for an in-house developer to release bespoke software to their customer, and tracking the start of the art can take time. Here’s an overview of the current options:

iPhone / iPad

The devices are certainly popular. iOS is what everybody wants, and Apple now offer two methods for an in-house app: enterprise distribution, and the Volume Purchase Program. As the Volume Purchase Program is only available in the US, I’ll skip over it.

The iOS Enterprise program requires our customer to join the developer program, and then sign the app with their own key. This puts extra workload on to the customer, though it can at least be outsourced to a corporate app store such as Appaloosa. There’s no requirement to submit the app to Apple, so bug fixes can at least be pushed out quickly.

Popularity: 5/5 Waterproofing: 0/5 Developer Ease: 4/5 Customer Ease: 3/5


Apart from a few locked down devices, Android is the closest to the freedom of desktop operating systems. No bureaucracy required, good development tools, and a wide range of hardware. Some of the hardware is even waterproof. If you’re deploying to a large enough number of devices, then a corporate app store may help, but there’s nothing stopping you from simply placing the file on an internal web server.

Popularity: 4/5 Waterproofing: 4/5 Developer Ease: 5/5 Customer Ease: 5/5

Windows Embedded Handheld 6.5

Windows Embedded Handheld allows us to develop applications using .NET, and an administrator can place them on the device with no requirement for approvals. A few years ago, this was the default, with good tools and rugged, waterproof devices available. Unfortunately, the OS and the available hardware are showing their age, and Microsoft don’t give much confidence about the roadmap.

To add insult to injury, the development tools require Visual Studio 2005 or 2008 Professional, and Visual Studio 2010 Professional does not come with downgrade rights. This makes the entry fee for development very high.

Popularity: 0/5 Waterproofing: 5/5 Developer Ease: 3/5 Customer Ease: 4/5

Windows Phone 7

The initial release of Windows Phone 7 required all applications to be distributed through the public Marketplace, but Microsoft now support Targeted Application Distribution. Apps distributed through this method still require certification, but do not appear in public searches. The app is available to anyone with the private URL. Provided that the app connects to an authenticated service, this is a minor problem.

This leaves us to jump through the certification hoop and may delay release of bug-fixes, but it puts little workload on our customer.

Popularity: 2/5 Waterproofing: 1/5 Developer Ease: 4/5 Customer Ease: 5/5

Windows 8 Tablet

This isn’t here yet, and signs are mixed. For Metro apps on PCs, administrators should be able to manage app installation:

In addition, enterprises can choose to deploy Metro style apps directly to PCs, without going through the Store infrastructure. For Windows 8 Beta, IT administrators can use group policy to permit Metro style app installations, as long as the apps are signed by trusted publishers and the machines are joined to the domain

For Windows 8 tablets, we don’t know yet. We know the consumer position:

Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update.

Steven Sinofsky’s use of the word consumer may be significant.


While Blackberry is neither trendy nor waterproof, it is a straightforward platform for deployment of corporate software.

Popularity: 3/5 Waterproofing: 1/5 Developer Ease: 4/5 Customer Ease: 4/5

fsync() Across Platforms

When an application writes a file, the data does not become permanent immediately. The write operation first moves the data into the operating system cache in RAM, where it is vulnerable to system crashes and loss of power. The second step is the transfer to the hard disk, which normally has write caching enabled. The disk acknowledges the data straight away, but keeps it in the disk write cache which is still volatile memory. The data is now safe from system crash[1. Ignoring some worst case scenarios.], but is not safe from loss of power. On a modern disk, this may be 16MB or more of data in unknown state.

As performance enhancements in ext4 have made committing data to disk a contentious issue, I’ve written a note on how different platforms handle data consistency.

Read more

The Mystery of ProxyPassReverse

The mod_proxy_ajp module for Apache has many advantages over mod_jk for connecting a Tomcat server to an Apache front. For me, the crucial advantage was the ProxyPassReverseCookiePath directive, which allows me to map the session cookies of a Tomcat web application (other than the root application) into the root of a virtual host.

Unfortunately, many tutorials contain misleading advice, and recommend this pattern for the ProxyPassReverse, which will break if the web application issues a redirect:

ProxyPass /jspdir ajp://localhost:8009/jspdir
ProxyPassReverse /jspdir ajp://localhost:8009/jspdir

Read more

Wrapping a Native Library with Maven

I recently converted a large project to build with Maven. The project contained both C++ and Java code, and produced a web application, a standalone server application, plus a number of small command line tools. The project used a large number of open-source Java libraries, and Maven tamed these easily. The native C++ library proved harder, and this is the approach I took.

The code snippets below are part of a complete example that builds a tiny Java/C++ application under Linux. This should port easily to other Unix-like platforms, and may provide some help to performing the same task under Windows. The example is available in tar.gz and zip formats.

Read more