Software and research: the Institute's Blog

Constructive Code CritiqueBy Nicolas Gruel, University of Manchester, Andrew Walker, University of Leeds, Vince Knight, Cardiff University, and Mike Jackson, University of Edinburgh.

This post is part of the Collaborations Workshops 2017 speed blogging series.

Code review is accepted as a key process in the creation of maintainable software with a low defect rate. Wilson et al. recommend code reviews as one of their Best Practices for Scientific Computing. The value of code review is beginning to be recognised in the development of research software, for example, in…

Continue Reading

Software stackingBy Blair Archibald, University of Glasgow, Stephen Clement, University of Leeds, Raniere Silva, Software Sustainability Institute.

This post is part of the Collaborations Workshops 2017 speed blogging series.

Choosing a software stack for your new project can be a daunting task filled with many what-ifs. Our best advice? Don’t panic and don't overthink it. Trying to over futureproof your project is a mistake! Choosing a software stack involves decisions at every level of the software’s architecture including the programming language(s) being employed, the build system, runtimes, libraries, frameworks, even the infrastructure or architecture the software will run on and the version control system.

When starting out a new project it is important to get an idea of who your main audience and users will be. Do you predict many application users? Will these users also be developers? What sort of background do they have? Someone with a background in software will be more likely to have complex tooling (such as compilers,…

Continue Reading

Software metricsBy Neil Chue Hong, Software Sustainability Institute, Daniel S. Katz, University of Illinois Urbana-Champaign, Thomas Kluyver, University of Southampton, David Mawdsley, University of Manchester, Patrick McSweeney, University of Southampton, Geraint Palmer, Cardiff University.

This post is part of the Collaborations Workshops 2017 speed blogging series.

Software is important to research. Whether you think software is a primary product of research or not—or indeed not yet—it’s clear that a lot of researchers rely on a lot of pieces of software. From short, ill-planned, thrown-together temporary scripts to solve a specific problem, through an abundance of complex spreadsheets analysing…

Continue Reading

Ship and containersBy Raniere Silva, Community Officer, Software Sustainability Institute.

The Docker Containers for Reproducible Research Workshop (C4RR) is one of the Institute’s 2017 events. It will bring together members of the research software community—researchers and developers—to present, discuss, network and explore the landscape of containers when applied to research and reproducibility of results. C4RR will take place at Department of Engineering, University of Cambridge, from 27th to 28th June 2017.

If you wish to attend C4RR, register here.

C4RR is focused on the hot topics of reproducible research and containers such as Docker. Containers promise deep changes to the way that we run some software on our local machines or on the cloud, which could have a big impact on research and how to reproduce it.

Our call for papers closed on 31st March. We are now contacting successful authors and will add more details to the…

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