Archive for January, 2016

January 14th, 2016

Programmer writes documentation like this


User reads documentation like this

giphy (1)

January 11th, 2016

The Engineering and Physical Sciences Research Council (EPSRC) is the UK’s main agency for funding research in engineering and the physical sciences. In May 2015, the EPSRC made a funding call for a new type of 5-year fellowship – A Research Software Engineering Fellowship which indicated their commitment to the national Research Software Engineering movement. I am very happy to announce that I am one of the 7 successful EPSRC Research Software Engineering fellows.

The title of my fellowship project is Building Capability and Support in Research Software. The project summary is below

“Software is the most prevalent of all the instruments used in modern science” [Goble 2014]. Scientific software is not just widely used [SSI 2014] but also widely developed. Yet much of it is developed by researchers who have little understanding of even the basics of modern software development with the knock-on effects to their productivity, and the reliability, readability and reproducibility of their software [Nature Biotechnology]. Many are long-tail researchers working in small groups – even Big Science operations like the SKA are operationally undertaken by individuals collectively.

Technological development in software is more like a cliff-face than a ladder – there are many routes to the top, to a solution. Further, the cliff face is dynamic – constantly and quickly changing as new technologies emerge and decline. Determining which technologies to deploy and how best to deploy them is in itself a specialist domain, with many features of traditional research.

Researchers need empowerment and training to give them confidence with the available equipment and the challenges they face. This role, akin to that of an Alpine guide, involves support, guidance, and load carrying. When optimally performed it results in a researcher who knows what challenges they can attack alone, and where they need appropriate support. Guides can help decide whether to exploit well-trodden paths or explore new possibilities as they navigate through this dynamic environment.

These guides are highly trained, technology-centric, research-aware individuals who have a curiosity driven nature dedicated to supporting researchers by forging a research software support career. Such Research Software Engineers (RSEs) guide researchers through the technological landscape and form a human interface between scientist and computer. A well-functioning RSE group will not just add to an organisation’s effectiveness, it will have a multiplicative effect since it will make every individual researcher more effective. It has the potential to improve the quality of research done across all University departments and faculties.

My work plan provides a bottom-up approach to providing RSE services that is distinctive from yet complements the top-down approach provided by the EPRSC-funded Software Sustainability Institute.

The outcomes of this fellowship will be:

1. Local and National RSE Capability: A RSE Group at Sheffield as a credible roadmap for others pump-priming a UK national research software capability; and a national Continuing Professional Development programme for RSEs.
2. Scalable software support methods: A scalable approach based on “nudging”, to providing research software support for scientific software efficiency, sustainability and reproducibility, with quality-guidelines for research software and for researchers on how best to incorporate research software engineering support within their grant proposals.
3. HPC for long-tail researchers: ‘HPC-software ramps’ and a pathway for standardised integration of HPC resources into Desktop Applications fit for modern scientific computing; a network of HPC-centric RSEs based around shared resources; and a portfolio of new research software courses developed with partners.
4. Communication and public understanding: A communication campaign to raise the profile of research software exploiting high profile social media and online resources, establishing an informal forum for research software debate.


[Goble 2014] Goble, C. “Better Software, Better Research”. IEEE Internet Computing 18(5): 4-8 (2014)

[SSI 2014] Hettrick, S. “It’s impossible to conduct research without software, say 7 out of 10 UK researchers” software-say-7-out-10-uk-researchers (2014)

[Nature Biotechnology 2015] Editorial “Rule rewrite aims to clean up scientific software”, Nature Biotechnology 520(7547) April 2015

January 4th, 2016

I stumbled across a great list of resources about the R programming language recently – a list called awesome-R. The list said it was inspired by awesome-machine-learning which, in turn, was inspired by awesome-PHP. It turns out that there is a whole network of these lists.

I noticed that there wasn’t a list for MATLAB so started the awesome-MATLAB list. Pull Requests are welcome.