Fellows blogs

Best coding practicesBy Sanjay Manohar, University of Oxford, and Software Sustainability Institute fellow.

We have a problem in neuroscience. The complexity of data analysis techniques increases every year. With each increase in complexity comes an increase in the possibility of error. We have already been plagued by such problems, which have been reported on the internet and in the news. With increasing quantities of code being written, these problems seem unlikely to subside. How can we address the root of the problem?

In a questionnaire I regularly give to my students, one recurrent and ominous statistic always emerges: neuroscientists are, by and large, taught by each other to code. A PhD student is taught by his postdoc, who is in turn guided by her PI, who herself learned to program on the job with help from colleagues. Nobody in the loop has been formally taught coding practices, or implements the kinds of guidelines or conventions that are commonly imposed when programming in industry. This, I believe, is a central part of the problem.

I see a…

Continue Reading

Data Science for DoctorsBy Steve Harris, University College London Hospital, and Software Sustainability Institute Fellow.

This article was first published at Data Science Breakfast Club.

The general public would assume that the medical profession are numerically literate. University-educated, technically-trained in biological science and more, and with the unique legal privilege of prescribing medicines where incorrect dosing leads to disaster, there wouldto be no excuse. However, most medics would deny any affinity with maths, and exude a distaste for statistics. This is a truism even amongst anaesthetists whose professional training includes physics and pharmacokinetics.

Despite this public denial, we are nonetheless a data-literate profession. We read and interpret scientific papers, we run audit projects and write business cases for improvement projects. These are all intrinsically quantitative undertakings. However, our adopted posture gets in the way of our doing these things as well as possible, and engaging with statistics and data.

Data science would appear to be a rebranding of statistics. Despite underpinning quantum mechanics, modern finance, and the humble weather forecast, statistics has never managed to seem cool. At worst, it is cited as ‘lies,…

Continue Reading

Software in engineering By Edward Smith, Institute’s fellow, Imperial College London.

As an engineer, software design concepts are not only familiar, they are central to the education we are forced to endure. These include standardisation, quality testing and the importance of outlining a clear specification. However, when it comes to software development, engineering academics seem to forget these principles; principles that shaped the industrial revolution and allowed us to engineer the modern world. In this short blog, I want to explore why academic engineers don't apply these best-practice concepts to software.

It is clear we are in the middle of a revolution; one which arguably will change the world more rapidly than the industrial revolution over a hundred years ago. Aside from the scientific developments, among them steam power, electricity and mastery of materials such as iron and steel, it was the methodologies forged during this period that were pivotal to the revolution. The key concept for mass production was the division of labour and automation, allowing much greater production by fewer people. In addition, the standardisation of parts allowed each person to specialise and optimise a given part fitted together by agreeing on the required interface between these parts.

Consider a car. Before the industrial revolution, a…

Continue Reading

Containers for HPCBy Krishna Kumar, Institute's fellow, University of Cambridge

The University of Cambridge with the support of the Software Sustainability Institute is organising a workshop on Containers for HPC: A Workshop on Singularity and Containers in HPC and Cloud on 29th and 30th June 2017. The aim of the workshop is to give an overview of container technologies in the context of Research Computing, with a specific focus on enabling HPC and GPU workloads.

The main focus will be around Singularity which is available in the current HPC system at Cambridge and is also the chosen technology that will be implemented in the new Cambridge Service for Data Driven Discovery at Cambridge (CSD3). Alongside a few special keynote talks, an afternoon session will cover practical examples from running a container on HPC to building your own Singularity container images.

Further information and registration is available at Containers for HPC workshop website. Places are limited, please make sure you have a real interest and need of this container technology and you are also familiar with Linux environments.

Containers for High Performance Computing


Continue Reading

Collaborations Workshop 2017, IoT, Open Data, research softwareBy Edward Smith, Institute’s fellow, Imperial College London.

The Collaborations Workshop 2017 (CW17) was the first event I've attended by the Software Sustainability Institute. The topic this year—big data and internet of things (IoT)—didn't exactly inspire me with hope that it would be relevant to my (heavily numerical) work. I couldn't have been more wrong; it was great to gain an insight into the wider infrastructure of software development and, by moving out of my comfort zone, get a new perspective on how similar problems are solved. The keynote talks by Usman and Thomas were very interesting and I have even played around with the IoT Adafruit Feather HUZZAH we were given. The "unconference" aspects meant lots of time to chat and it was great to meet people struggling with the same problems. The hackday was rewarding, again a first for me, working together on a shared GitHub repository. We managed to put together a web visualisation tools for migrant movements and a demo.

Continue Reading

firmware parameterisationDr Edward Fisher, Agile Tomography Group, School of Engineering, University of Edinburgh

Software sustainability is crucial as academia looks to commercialise its outputs and progress designs up the technology readiness levels (TRLs). One of the key concepts that transcends software, firmware and indeed silicon hardware design, is the concept of parameterisation. It may seem simple, but a surprisingly large number of us are happy to copy code, thereby creating multiple versions, or simply to leave a code parameter "hard-wired" or "hard-coded" as we are under pressure to "just get it working".

But what can the industrial, commercial mindset teach us when it comes to software sustainability for both projects with multiple developers, or projects with lengthy time scales where we must think of our future selves, perhaps even remove some personal effort and strife further down the line? Can code parameterisation allow us to get closer to our long-term motto of "Better Software, Better Research", or indeed "Better Firmware, Better Results", or "Better Hardware, Better Reproducibility"?

Code Parameterisation

So, what do we mean by code parameterisation? What advantages does it allow, and of course what effort must be…

Continue Reading

Barista mindsetBy Laurence Billingham, RSE at NERC and Software Sustainability Institute fellow

Anyone who has met me in real life knows I love coffee. In fact, I'm writing this post whilst drinking an El Salvadorian pour over in a place with exposed brickwork and a floor that looks like it used to be part of a school gym.

But this post isn't about my love for coffee per se or even about using a caffeine rush to produce awesome code really speedily. It is about a thing I'm struggling to name (naming stuff is one of the canonically hard things after all); the best I can currently come up with is:

Barista mindset

Work like a craftsperson, respect the care that others have put into your materials.

In my previous group, I was lucky enough to work alongside a bunch of talented and dedicated engineers. These folks sweat for the data they give me. Sometimes they spend weeks away from their families in lonely windswept places; making sure our instruments keep working properly and calibrating their data. I'd estimate that we spend several hundred thousands of dollars per year on instrument calibration and data quality assurance.

In a previous gig too I was fortunate to be able to witness the care…

Continue Reading

coding for hardware engineersBy Edward Fisher, Agile Tomography Group, School of Engineering, University of Edinburgh, and Software Sustainability Institute fellow

Originally posted  at edwardmdfisher.com.

Here at the Software Sustainability Institute, we strive to promote best practices in software development for research. Better Software, Better Research. That’s the motto. But does this need to be restricted to software languages such as C, C++, Python or Java? Or should it be restricted to the ideals of open data and open code?

My view is that sustainability can also be significantly included in other domains that use textual description as part of the design process. My role within the Agile Tomography group here in Edinburgh is to develop hardware, firmware and software that enables custom designed, precision instruments to perform often in harsh environments. If we go down a custom route for something simple such as a data acquisition system, the role of the scientist or engineer must touch upon everything from PCB design, analogue and digital circuits, embedded firmware and digital…

Continue Reading

PyCon Namibia, Cardiff UniversityBy Nikoleta Glynatsi, Cardiff University.

I recently became a Sustainable Software Institute Fellow as part of the 2017 cohort. During the selection day, I presented my plans and ambitions that I have set for my fellowship year. My list of plans included attending and running a workshop at PyCon Namibia 2017. PyCon Namibia 2017 is the third PyCon within the country and the organising committee include Jessica Upani, Gabriel Nhinda, Daniele Procida and Vincent Knight. My main reason for attending was to assist and observe what I believe to be a developing Python and research community with a great future ahead.

As part of Cardiff University I was quickly introduced to the Phoenix Project and its plans for fighting poverty and promoting health by working together with the University of Namibia to educate people to help themselves to ensure sustainable change.  I was quickly…

Continue Reading

teaching programming outside computer scienceBy Cyril Pernet, University of Edinburgh, Krishna Kumar, University of Cambridge, Laurence Billingham, British Geological Survey.


When: The Software Sustainability Institute Fellowship face-to-face selection day (November 2, 2016) involved several sessions including group discussions. This group discussion was about education and software.

Who: The group was composed of Dr Laurence Billingham, Dr Elena Vataga, Dr Krishna Kumar, Dr Cyril Pernet.

What: The discussion was about teaching programming and best practices at universities: whom we should teach, what should be taught and when…

Continue Reading
Subscribe to Fellows blogs