Dr Chris Beeley ~ Free and open source software. Come for the free, stay for the awesome

Shiny Cover

Open source software refers to software whose code is available for anybody to view, revise and reuse. This should be contrasted with closed or proprietary code which is known only to the manufacturer, and who will often charge a fee for individuals to use the software (for example, Microsoft Word, or Adobe Photoshop).

There are many types of open source licence but the principle of viewing, revising, and reusing underpins them all. On the face of it, this does not seem like a very exciting proposition, and newcomers to the concept often wonder what difference such an apparently obscure part of software licensing could make.

However, because open source software (often, although not always, available at no cost, and referred to as Free and Open Source Software or FOSS) can be modified by anybody it offers a number of advantages over traditional proprietary software.

Firstly, FOSS is free. I’m writing this blog post on a computer which contains absolutely no software of any kind that costs any money whatsoever. I shall repost it on my self-hosted blog which runs on a server which itself contains no software of any kind that costs any money whatsover. In a time of austerity, the availability of free software that can perform all the tasks of paid software should be a deafening clarion call across the public sector. And indeed FOSS is starting eto gain traction in education and health.

However, not only this, but FOSS is often better than its paid counterpart. This is because anybody can change and improve it, and whole communities exist around popular tools, adding new features and fixing bugs continuously with everyone inside and outside of the community benefiting. The FOSS operating system Linux basically runs the internet. The closed source Microsoft Excel, notoriously, features bugs that Microsoft can’t or won’t fix (e.g. here and here). Even the US Military are making ever larger use of open source software.

The statistical programming language R is another success story from the FOSS world. Precisely because it is free and open source, a huge community of statisticians, programmers, data visualisers and analysts all contribute to its development. At the time of writing there are nearly 5000 user contributed packages within R, which help users with tasks as diverse as computational chemistry and physics, finance, clinical trials, medical imaging, psychometrics, machine learning, statistical methods, and the production of extremely powerful and flexible statistical graphics. R is rapidly becoming the lingua franca of analytics and is widely used in many leading  data science departments, perhaps most notably Google.

I have made extensive use of R in my work on Nottinghamshire Healthcare NHS Trust’s new patient feedback site, using R to serve both static quarterly reports as well as interactive, searchable analysis of all of our feedback past and present.

The searchable reports are made possible by the Shiny package which makes it ridiculously easy to allow users to interact with a dataset. Shiny handles all of the hard work involved in programming a graphical user interface and lets analysts such as myself concentrate on the content of what is delivered to the user.

Although Shiny is never going to replace other methods of programming for very large, fully featured analytics platforms (for example, Google Analytics) it has certainly proved its worth on the patient feedback website and I would hope that R and Shiny would find more and more use in NHS settings up and down the country to allow Trusts to better communicate their data to the communities and service users whom they serve.

I have written a book about Shiny which can be found here. The book is designed to be read by individuals new to the R language, and includes lots of examples using R/ Shiny as well as HTML, CSS, JavaScript and jQuery that show how Shiny can be best utilised and extended to produce attractive and powerful interactive analysis applications.

There are some demonstrations of what can be done with Shiny on my website, some are little examples I wrote just for the book but some are more fully featured than that and hopefully demonstrate some of the things which can be achieved using Shiny.

Over the next 10 years I hope to see more and more use of FOSS, not only for the Free, but also for the Awesome.

Posted by:
Chris Beeley, PhD, C.Psychol
Senior evaluation manager & Honorary lecturer, School of sociology and social policy
Institute of Mental Health, Nottinghamshire Healthcare NHS Trust

Advertisements

6 Comments

Filed under Uncategorized

6 responses to “Dr Chris Beeley ~ Free and open source software. Come for the free, stay for the awesome

  1. My problem with FOSS is not the ‘OS’ but the ‘F’. I’d like all software to be open source because of the awesomeness it facilitates. But the freeness causes problems. Being free means that I have to do myself (and many others may have to replicate) something which I am relatively ill-equiped to do. Packages can certainly address this to some extent, but it’s no secret that a lot of FOSS requires a much greater investment of time than proprietary equivalents. At the organisational level this could be addressed by having FOSS gurus on hand, but for your average Joe the entry costs into the world of FOSS are quite high, even if non-monetary.

    • I agree with you up to a point. However, it isn’t true to say that all FOSS is difficult to use, nor that all proprietary software is easy to use.

      Linux is very easy to use ONCE YOU’VE INSTALLED IT (which I admit can be hard), but if it were pre-installed on a machine or used in an organisation this wouldn’t be an issue.

      Word 2007 et al. are now such a horrific mess that their FOSS equivalents (e.g. LibreOffice) are actually easier to use. Don’t even get me started on the file types. What a horrible, idiotic mess they are.

      R is not easy to use, definitely not, but then neither is its serious competitor, Stata (SAS is a funny one, I’m going to ignore it for the purposes of this discussion. SAS does some things well but not others).

      This leads on to a broader debate, which who knows, next time I write a programming book I might post about on here, about the way IT is taught in schools and the absolute necessity of teaching our children to code. Because although there is an entry barrier (there certainly was for me, I’m self-taught from books) we must remove it with our education system. Some of the things that flummoxed me early on were really simple and if I’d had a proper ICT education (instead of being force-fed garbage Microsoft products) wouldn’t have phased me at all.

      And yes, we need FOSS gurus. There should be somebody in NHS England whose job title is “reduce cost of software to NHS and improve productivity at the same time”. With good luck and a following wind in 10 years that will be my job title :-)

  2. John.

    An exciting blog post Chris thank you. Just wondering what level of expertise is needed to start learning R? Also is Shiny free? You can see the level of novice that you’ve attracted…. : )

    • Shiny is indeed free, it’s a standard R package and free-ness is enforced with lethal prejudice in the R-world.

      I started learning R 5 years ago with absolutely no coding experience whatsoever (apart from an abortive attempt to reproduce Space Invaders in a very simple programming language) and within 2 years the investment had paid for itself. I’m now at the point where my productivity gains with R are so dramatic that if it ever disappeared I would instantly become useless and be fired.

      There’s loads and loads of stuff about R on the internet (that’s the other great thing about FOSS, the communities are so big, active, and welcoming), here’s a good list of tutorials:

      http://pairach.com/2012/02/26/r-tutorials-from-universities-around-the-world/

      I am, obviously, always available to discuss R which is probably my favourite thing that has ever existed.

  3. Great article, Chris.

    We use FOSS software for our websites. We then charge to install, design, custom code and maintain. Our clients benefit from not having to pay for development of the software, only for the necessary customisation to make their web site look and work as they require.

    As well as lower cost, with the right FOSS package, their is an element of future proofing – not being tied into a proprietary system means you aren’t at the mercy of the vendor in the future.

    There’s also a vibrant community of developers creating add-ons that can tackle pretty anything you can think of, greatly reducing both cost to clients and speed of delivery.

    Needless to say, I’m a fan, too.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s