Software and research: the Institute's Blog

LaptopAngel.jpgBy Mike Jackson.

Last week, we ran a sustainability training workshop for Digital Social Research, where we asked "what makes good code good?". The attendees, who were research programmers and software developers, put together a list of necessary qualities, which we've copied here.

Good code should...

  • Correct. Code must be correct and it should also be possible to demonstrate that it's correct, e.g. through provision of associated tests or mathematical models of requirements.
     
  • Well-designed. Code should be modular with well-defined interfaces, inputs and outputs and with code and data encapsulation. It should be elegant and no more complex than necessary. There should be minimal inter-dependencies, no hidden dependencies and limited platform-specific dependencies. Together, these help ensure that the code is easily understandable by other developers; can promote reuse, so reducing the need to reinvent the wheel in subsequent projects; and ensure software can be configured, adapted and extended easily.
     
  • Readable. Code should be commented and indented and use sensible naming. Comments should describe why the code is as it is, since the code itself describes what it does and how it does it. Care should be taken that comments reflect the current code, because code evolves through time.
     
  • Appropriate. The…
Continue Reading

Preikestolen.jpgBy Chris Morris, STFC.

GenBank now contains 100000000000 base pairs. That's big, in the sense each similarity search visits every record, and there are millions of searches a day. But it's not BIG, in the sense that it fits on one disk, and only takes 200s to transfer at 1Gb/s.

An electron microscope tomography image may contain 8 billion pixels. That's big, in the sense that the noise reduction algorithms take polynomial time in image size. But it fits on a USB stick. The data stream from LHC is big; but most of it is of no significance. But it can be reduced to a one-bit answer, such as "Does the Higgs boson exist?" The Sloan Digital Sky Survey contains several terabytes of data. That's big, since it is all unique data of potential interest. But it would fit on a medium size RAID. A Next Generation Sequencing instrument can record 100TB of data in a day. It will quickly be reduced ten-fold, and then later reduced to a consensus sequence - a whole human genome is 1.5GB.

Whether data is big or not depends on what you want to do with it.

Today’s post comes courtesy of Mike Jackson, also from the Software Sustainability Institute. If the Institute was the Dukes of Hazzard television show, with Steve as Bo Duke, then Mike Jackson would surely be Luke Duke.  In this post, Mike answers a testing question about testing frameworks in Python.

Software testing is a vital part of software development. It not only allows us to demonstrate that our software satisfies its requirements but to ensure that our software is both correct and robust. Automated software testing provides us with a safety net during development, allowing us to fix bugs, make enhancements and extensions secure in the knowledge that if we break anything then the tests will catch this. After all, there are few things worse than fixing a bug to discover later that, in doing so, we’ve introduced a new one.

Philip Maechling of the Southern California Earthquake Center (SCEC), at USC, recently contacted the Institute with questions about software testing. Philip and his colleagues develop scientific software that outputs computational results into files. These files are typically simple ASCII text files but contain series’ of…

Continue Reading

Bulbs.jpgBy Simon Hettrick.

Most people turn apoplectic when faced with someone who “thinks outside the box” or attempts to harvest “low hanging fruit”. And rightfully so. We’ve learned to vilify management speak, because it’s wasteful and verbose, but what about its visual equivalent? It’s time that we start saying “NO!” to meaningless images.

The world of software is a grim place if you need an image for a website. This is down to a fundamental problem: you can’t see software. This leads a lot of people to think “you can see computers!”. But there’s only so many times that you can use that data-centre image - with its banks of cold, emotionless circuitry – before things start to get depressing. And it is this tortuous path that causes some people to embrace stock photography with an incredible level of enthusiasm.

There’s nothing wrong with using stock images. It's difficult not to, unless you have your own photography department. I just advise some caution on the images you choose. Take the image on this page, with it’s clever subtext of being the illuminated one amongst dowdy colleagues. It is a nice…

Continue Reading

NewYork.jpgBy Anthony Clarke, Director, Angel Capital Group and member of ACCESS-ICT.

Out of the vast range of R&D projects supported by the EU, only a small number successfully attract external finance to commercialise their results and capitalise on the original EU investment. This means that many potentially very exciting, new technologies never get to the market place - and never get to the equity community. On behalf of the European Investment community, I am delighted to present a new guide that will enable entrepreneurs and research teams to become investment ready.

A key issue for research projects is how to become investment ready, and how to understand investor requirements. Do your R&D results offer the potential for creating a scalable business? Does your research team have the capacity to run a growth business focused on marketing innovative products and services? Is your IP protected and its ownership clear? Do you have a strategy for approaching the investment community and becoming attractive to investors?

It’s a tough and challenging road for entrepreneurs and research teams to commercialise ICT R&D results, but I feel sure that the European investment community will welcome the opportunity to see more innovative, investment-ready propositions coming from the EU R&D framework…

Continue Reading