Why am

I here?

By Simon Hettrick

  ORCID: 0000-0002-6809-5195

Why am "I" here

Research Software Group

 

www.rsg.soton.ac.uk

@RSGSoton

Software Sustainability Institute

 

www.software.ac.uk

@SoftwareSaved

A note on

sticky notes

1. Have you installed the software?

3. Download the repository

2. Verify your set up

http://goo.gl/dqvnnS

Still having problems?

Say hello to your partner

Why should we care about software?

*Refs [1-3]

Use

software

Fundamental to

results

Time spent coding

Primarily self-taught

69%

92%

30%

90%

  1. Reliable

  2. Reproducible

  3. Reusable

What's the worst that can happen?

An in-house data reduction program introduced a change in sign for anomalous differences. This program... converted the anomalous pairs... thereby introducing a sign change."

It really is rocket science

code for the Ariane 4 rocket is reused in the Ariane 5... The error is in the code that converts a 64-bit floating-point number to a 16-bit signed integer. The faster engines cause the 64-bit numbers to be larger in the Ariane 5 than in the Ariane 4, triggering an overflow condition...

 

...[the] backup computer crashes, followed 0.05 seconds later by a crash of the primary computer.

What's the solution?

Automate repetitive tasks

Track and share code

Use a high-level language

Test your code

Command line

Version control

Python

Unit testing

                       ------

                -----------

                       -----

   --------------------

Automate

#! /bin/bash

#Initialise a counter
count=1

#Make new dir
mkdir NewImgDir

#Loop through file, copy and rename
for i in *.jpg
  do
    cp $i NewImgDir/"EventPhoto_"$count".jpg"
    count=$(( count + 1 ))
  done

Track and

share work

Version control

Which version of the code was used to generate this result?

How has this code changed?

Who made this change?

Can I edit your code?

Write in a high level language

This is going to be controversial

Most people want a language that will do the job with the least amount of pain

Test your code

Confidence in your code

Quickly check for bugs

And whether edits have introduced more bugs

It's a sign of a good code

If it's not tested, it's broken

Just the beginning...

Fill in the post workshop survey!

References

[1] "It's impossible to conduct research without software, say 7 out of 10 UK researchers"http://www.software.ac.uk/blog/2014-12-04-its-impossible-conduct-research-without-software-say-7-out-10-uk-researchers

[2] Hannay JE, Langtangen HP, MacLeod C, Pfahl D, Singer J, et al.. (2009) How do scientists develop and use scientific software? In: Proceedings Second International Workshop on Software Engineering for Computational Science and Engineering. pp. 1–8. doi:10.1109/SECSE.2009.5069155.

[3] Prabhu P, Jablin TB, Raman A, Zhang Y, Huang J, et al.. (2011) A survey of the practice of computational science. In: Proceedings 24th ACM/IEEE Conference on High Performance Computing, Networking, Storage and Analysis. pp. 19:1–19:12. doi:10.1145/2063348.2063374.

[4] "Retraction" http://www.sciencemag.org/content/314/5807/1875.2.long

[5] Stefik A, Siebert A, Stefik M, Slattery M, "An empirical comparison of the accuracy rates of novices using the quorum, perl, and randomo programming languages", Proceedings of the 3rd ACM SIGPLAN workshop on Evaluation and usability of programming languages and tools
Pages 3-8