Software and research: the Institute's Blog

Agent applications start to flood in

Latest version published on 6 October, 2016.

Whenever we come up with a good idea, there’s always the worry that the rest of the world won’t share in our excitement. Not so, the Agents network. We’ve been slowly ramping up publicity over the last couple of weeks, and the applications have started to flood in (just yesterday, we received eight applications, and at 13.27 today, it looks like we'll break that record). Even better, we’re getting applications from all round the country and from all disciplines.

This is great news for the Agents network of course, but what does it mean to everyone else? If we get enough…

Ask Steve! - A unit test framework in MATLAB?

Latest version published on 30 September, 2016.

You may recall a while back I looked at test-driven development, and covered unit testing. Well, I received a related question asking whether there was a unit test framework for MATLAB, so let’s have a quick look at a few of these…

Arguably the most popular is the xUnit Test Framework, which is compatible with…

Why is reproducibility important?

Latest version published on 3 October, 2016.

The second discussion session at the Effective Scientific Programming workshop in Newcastle, chaired by James Perry, focused on reproducible results and related issues. We discussed why reproducibility is important, what obstacles get in the way of achieving it, and noted some real-world examples where reproducibility came into play.

Outcomes

Maybe the most obvious reason is correctness. If you run your code twice and get different results each time, how do you know which (if either) are correct? It also enables others to re-run your code and verify that they get the same results…

Ask Steve! - Developing software in an open way: Part II

Latest version published on 26 September, 2016.

So, continuing on from Part 1 of Developing software in an open way, let’s answer the last two aspects of the question from Alex Voss…

“Should I make all my source code available from the start to attract potential collaborators and to solicit contributions or should I keep it close initially to avoid getting locked into early solutions that have been taken up by others?”

You will have project…

We're all engineers now

Latest version published on 3 October, 2016.

Well, OK, of course we're not. Most of us are researchers who want to get on and make new discoveries in our chosen fields. Increasingly we find ourselves having to create and use software to make progress, but that doesn't make us all software engineers. What we're doing is research - computational research, if you will - but not software engineering.

Hmm. Hold on a minute.

Research works best without constraints on thought; it needs the freedom to chop, change, freewheel and go off at tangents; it is, by definition, a voyage into the unknown.  

In contrast,…

Ask Steve - Developing software in an open way: Part I

Latest version published on 30 September, 2016.

So I received this question from Alex Voss the other day:

“As I am just embarking on a software development project, I would like to know from Steve what the benefits and risks are of developing a piece of software in a completely open way? Should I make all my source code available from the start to attract potential collaborators and to solicit contributions or should I keep it close initially to avoid getting locked into early solutions that have been taken up by others? Are there examples of how people have…

What makes good code good?

Latest version published on 6 October, 2016.

At the Effective Scientific Programming workshop on the 20th June 2011, Mike Jackson posed to 31 attendees one of the essential programming questions, that of "what makes good code good?" The attendees, who mostly viewed themselves as "scientists who do some programming", rather than "scientific programmers" proposed the following:

The most important quality is that the code must be fit for purpose. It must do what it is intended to do and do it correctly. Without this quality, any research deriving from the code could be fundamentally flawed. The code must be readable, well-…

SSI at the Effective Scientific Programming workshop

Latest version published on 6 October, 2016.

The Software Sustainability Institute was invited to participate in a workshop on Effective Scientific Programming at the University of Newcastle on Monday 20th June 2011. Funded by the Vitae Yorkshire and North East Hub, the workshop was run by a team of researchers from Newcastle University and Northumbria University. The workshop allowed scientists to come together and share their experiences of programming and gain a greater awareness of tools and techniques that can help them become more effective programmers.

Over 70 scientists from universities across the North East…

SSI contributes to Software Carpentry

Latest version published on 7 October, 2016.

We have written a tutorial on file management in Python, which is now available on the Software Carpentry website.

Since 1997, Software Carpentry has taught scientists and engineers the concepts, skills, and tools they need to use and build software more productively. Software Carpentry is an open-source project that provides a whole range of free-to-use online educational resources, including lectures, videos and exercises.

Greg Wilson, Software Carpentry's project lead, asked us if we could contribute lectures to their site and so extend the range of materials…

Commercialising your software

Latest version published on 6 October, 2016.

Aleksandra Pawlik, a PhD student from the Open University, has been looking into commercialisation of scientific software. Getting people to pay for your software is one of the many routes to software sustainability, so we asked Aleksandra to give us an overview.

If you’re happy to share your cutting-edge software with other researchers, why not make some money by commercialising it? If academics are dying to get a copy of your code, then your software must be a desirable product. Industry is an equally important customer for software, and if nothing else it’s fun to charge…