Software and research: the Institute's Blog

Docker Containers & Reproducible ResearchBy Raniere Silva, Community Officer

The Docker Containers for Reproducible Research Workshop (C4RR) is nearly upon us. It will take place from the 27th to 28th June 2017 at the Department of Engineering, University of Cambridge.

The latest changes and additions to the agenda are now live. Tuesday 27th June will be filled most with talks. 28th June will start with two demos. Delegates will need to select one to attend since they will be run in parallel and are responsible to configure their machine in advance with the requirements of the demo they plan to attend.

28th June afternoon will kick-off with the Sponsored Keynote Talk by Kenji Takeda from Microsoft. Kenji was one of the speakers at Collaborations Workshop 2017—you can watch the recording of his talk here—and we are very happy to have the opportunity to listen him talking about containers.

The workshop dinner will happen at the end of the first day, 27th June. We will be waiting delegates at The Cambridge Brew House for a informal curry night. Before the dinner…

Continue Reading

ArticDEM project

By Daniel S. Katz, Assistant Director for Scientific Software and Applications at the National Center for Supercomputing Applications, University of Illinois Urbana-Champaign.

This article is part of our series: A day in the software life, in which we will be asking researchers from all disciplines to discuss the tools that make their research possible.

A large amount of today’s computational and data science involves combining the execution of many tasks that each run a model or transform data, to build up a multi-component model or a multi-stage data transformation. Most researchers initially do this manually, and then (if they have any programming experience) eventually move to using shell scripts when the manual process gets too painful.  However, shell scripts tend to limit the work to single resources, as they don’t really work well with parallel computing.

An alternative method is to use a system that I’ve been involved in developing: the Swift Parallel Scripting Language. (Note that there’s no relation here to Apple’s Swift, other than that they reused our name.) Swift provides an implicitly parallel and deterministic programming model, which applies…

Continue Reading

Good coding practiceBy Sanjay Manohar, University of Oxford, and Software Sustainability Institute fellow

When you try to distil years of experience into words, something is always lost. How can you convey the basic principles of a practical art in a seminar? Teaching coders how to code well is challenging because each person starts with a different set of experiences, a different skill set, and a different end goal in their programming journey. Yet there is something that brings them all together: a passion to improve their code to broaden the set of techniques they have in their toolbox.

As a teacher, it is crucial to remain aware of what students do and do not understand yet. A set of assessment techniques is part of the armament of every educator and allows the use of the most appropriate level of language, criticism and sophistication. These formative tools also give students the feedback they need to see their own limitations and measure themselves against.

On 10th April 2017, I held a seminar on good coding practice for neuroscientists. It was at the British Neuroscience Association Festival of Neuroscience, a national meeting involving neuroscientists of every kind from around the country. In a small seminar room in the convention centre, forty excitable scientists crowded…

Continue Reading

Measuring Behavior

By Robyn Grant, Manchester Metropolitan University, and Software Sustainability Fellow.

Measuring Behavior 2018 will take place in Manchester, 5th to 8th June 2018. Call for symposia and workshops is now open!  

I am a lecturer in Comparative Physiology & Animal Behaviour at Manchester Metropolitan University. I am really interested in measuring precise aspects of animal behaviour using image techniques. Specifically, I use high-speed video cameras to measure whisker movements in small mammals (and large underwater mammals), and then use image processing techniques to detect and track these fine, fast-moving sensors. I am really keen to develop free, open-source behavioural hardware and software systems to encourage quantitative behavioural measurement in the bio-sciences.

Indeed, I became a Software Sustainability Institute Fellow in 2014-15 to really get to grips with making our software adaptable and free for future users, which can hopefully be seen in our subsequent papers (Hewitt et al. 2017: A novel automated rodent tracker (ART), demonstrated in a mouse model of amyotrophic lateral sclerosis and Hewitt et al. 2016: Manual Whisker Annotator (MWA): A Modular Open-Source…

Continue Reading

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