Hello everyone! I hope you’ve all been having an excellent summer - whether you’ve been taking a break, either here in the UK, or perhaps somewhere somewhat warmer, or whether you’ve been working and taking advantage of what is generally a quiet period to try and make some progress on coding or research. That being said, this year, I’ve found July and August to be unusually busy, maybe you’ve found the same? As ever, there’s been lots going on this month in the world of science and technology and I’m sure you’ll have seen details of the landing of India’s Chandrayaan-3 lander in the south pole region of the Moon last week. This got me thinking again about the computing hardware and software required for this sort of mission, and the differences between the modern technology we now have access to and that used in lunar missions 50+ years ago. Check out the blog posts section of the newsletter for more on this! We also have details of a number of upcoming events and activities you can get involved in, so read on for more details…
The rOpenSci Champions Program welcomes individuals from historically excluded groups interested in contributing to open source and open science communities. Apply to join the 2023 cohort as a champion or mentor by Monday 4th September 2023.
The JADE Tier-2 HPC facility consortium, in which Imperial is a partner, are running their JADE Day event on Friday 29th September 2023 at Worcester College, University of Oxford. Registration is open.
The UNIVERSE-HPC project will hold its first project seminar on Monday 9th October, 11:30-13:00, online and in person at University of Edinburgh. UNIVERSE-HPC is working to develop a training curriculum and associated framework to provide skills to potential and existing RSEs across all career and skill levels. From basic core computing skills through to specialist competencies supporting work in the High Performance Computing (HPC) and Exascale domains, the project is collecting and developing a wide array of training materials. This first seminar will be delivered by Dr David Henty who leads HPC training activities at Edinburgh Parallel Computing Centre (EPCC).
Nordic-RSE invites everyone interested in Research Software Engineering activities to join & shape the agenda of the online Nordic-RSE unconference (lightweight get-together) which is taking place on 25th/26th October 2023.
And a few reminders from last month:
The hidden REF Festival takes place in Bristol on 21st September 2023, registration remains open.
Registration is also open for International Data Week 2023: A Festival of Data, taking place 23rd-26th October 2023. This will be a hybrid event taking place in Salzburg, Austria. In addition to a range of talks, the event also hosts working group meetings for Research Data Alliance WGs.
National RSE community conferences: Both the German and US research software communities are running conferences over the coming months. On the 26th-28th September 2023, the German RSE community (deRSE) will run their deRSE Unconference in Jena, Germany, which follows on from the main deRSE conference that took place earlier in 2023. US-RSE will run their first conference, US-RSE 2023 on 16th-18th October 2023 in Chicago, IL.
This month we highlight a code developed in the Department of Electrical and Electronic Engineering at Imperial - ISSIE (Interactive Schematic Simulator and Integrated Editor).
ISSIE (Interactive Schematic Simulator and Integrated Editor) is open-source software developed over the last three years, still under active development, in the department of Electrical Engineering at Imperial College. The motivation for ISSIE is to make a digital circuit design and simulation tool that would be as capable as commercial products but have a much faster learning curve and be more efficient for relatively small projects, such as are often used in research and teaching. ISSIE runs cross-platform from binaries as a desktop app – you can try it out! You can download the latest release binaries from the GitHub repo: https://github.com/tomcl/issie. ISSIE is designed to be usable without documentation, but the repo has this.
One of the interesting aspects of ISSIE development is the way that undergraduate students at different stages in their degrees first use and then contribute to it. ISSIE is used for the EEE 1st year digital design module where it allows students easily to design and test a fully featured RISC CPU. In the 3rd year those same students can (as an option) take a functional programming module in which they learn F# - the language 99% of ISSIE is written in, and in group work make real contributions to enhancing ISSIE. In their 4th year a number of students have made major contributions to ISSIE in final year project work.
The ISSIE code base is now over 40k lines of F#, the equivalent of 100K lines or more of C# or C++. It is quite dense algorithmically, making it fun to develop. ISSIE is a showcase for the merits of a “functional first” programming style, in which complex dependencies between components are minimised by the language and architecture itself. ISSIE now incorporates code from 50 or so different students, mostly inexperienced programmers, and it is relatively easy for them make additions without increasing technical debt. This Summer we have active development from 7 students, three of whom (making great contributions) have just completed their 1st year of undergraduate studies. This helical development model is satisfying for all.
We welcome interest from outside, particularly users who can try ISSIE and highlight problems (for example aspects of the UI that are not clear). Our goal is to have software which is very highly usable: much more so than is typical for software products. For that, critical user feedback is essential. You can download the latest binaries from https://github.com/tomcl/issie/releases and add issues to the repo if you find problems.
MATLAB now offers an online version accessible in-browser. You can access the full version with MATLAB licenses or opt for a limited basic version with a free account. And if you have some scientific code written in MATLAB now you can put it in GitHub and create a link that opens it in MATLAB online. A small step towards better MATLAB reproducibility. More details can be found in this MATLAB blog post.
According to Simon Hettrick, only 11 software outputs were submitted in the REF 2021. Out of 186,000 listed outputs. To address this, Hidden Ref introduced the 5% Manifesto, urging Higher Education Institutes to commit to submitting at least 5% of their non-traditional research outputs to REF 2028. You can sign the manifesto online for yourself, or maybe spark some discussion around this in your institution.
A reminder of the Research Data Alliance / Research Software Alliance Working Group Policies in Research Organisations for Research Software (PRO4RS) that is currently being set up. You can join the group via the RDA website to get involved with the discussions and participate in the group’s activities to better understand and offer guidance on organisational policies for research software. The group will also be running a session at the RDA’s 21st Plenary on Thursday 26th October, 12:00-13:30 UTC which is available to registered participants of the conference either in person or online.
GitHub Actions is a popular platform for Continuous Integration (CI)/Continuous Deployment (CD) workflows, and its usage in scientific software is increasing. Researchers looking at GitHub project workflows have discovered that many are insecure - to help ensure security of your own GitHub Actions workflows, take a look at “Four tips to keep your GitHub Actions workflows secure” published recently on the GitHub blog.
Are you new to using the Linux Shell? You could learn to use the shell by taking Software Carpentry’s introductory course. Alternatively, why not dive into the old-fashioned text adventure “bashcrawl” (a dungeon crawler made entirely in Bash - play it here), to help teach you usage of the shell!
A paper published recently in PLOS Biology by Erin McKiernan et al. looks at “Policy recommendations to ensure that research software is openly accessible and reusable”.
A blog post by Carlos Maltzahn of UC Santa Cruz takes a look at an important challenge currently facing many members of the research software community, internationally - “The urgent need to make the value of open source visible and quantifiable to university leadership”.
The Chandrayaan-3 Moon Landing
As mentioned in the introduction, many of us will have seen the extensive news coverage following the Chandrayaan-3 mission and it’s landing in the south pole region of the Moon. We thought it would be nice to highlight some resources related to the technical aspects of this achievement and, indeed, past Moon missions.
An article discussing “The Tech behind Chandrayaan-3” looks at a number of aspects related to the lander itself and the software that it uses.
If you’ve ever wondered about software testing for devices that need to operate in harsh environments, this blog post on “Chandrayaan 3: Software Testing for a Lunar Mission” provides some high-level thoughts on the types of challenges involved and approaches for addressing them.
Focusing on some of the principles of software engineering practice that may be learnt from projects such as Chandrayaan-3, another short blog post “Exploring Lessons for Software Engineers from India’s Chandrayaan 3 Project” covers some key aspects.
We see lots about the advanced software practices and technical hardware used in such missions, but what about missions of the past? - 50 years ago, so much of the technology that we have today was even beyond science fiction!
This talk from the National Museum of Computing about the Apollo Guidance Computer - “Light Years Ahead - The 1969 Apollo Guidance Computer” - provides a fantastic insight into the hardware and software used in the Apollo Moon landings. I was particularly amazed to see how the program code was literally hardwired, by hand, using fine copper wire, into an array of magnetic rings - a form of “core memory”.
If you’re keen to find out more, you can check out the Apollo Guidance Computer (AGC) source code on GitHub at https://github.com/chrislgarry/Apollo-11! And, if you missed this in a previous newsletter quite some time ago, there is also the Virtual AGC project which you can run on your own system!
The Imperial Research Software Community Slack workspace is a place for general community discussion as well as featuring channels for individuals interested in particular tools or topics. If you’re an OpenFOAM user, why not join the #OpenFOAM channel where regular code review sessions are announced (amongst other CFD-related discussions…). Users of the Nextflow workflow tool can find other Imperial Nextflow users in #nextflow. You can find other R developers in #r-users and there is the #DeepLearners channel for AI/ML-related questions and discussion. Take a look at the other available channels by clicking the “+” next to “Channels” in the Slack app and selecting “Browse channels”.
If you want to start your own group around a tool, programming language or topic not currently represented, feel free to create a new channel and advertise it in #general.
If you need support with your code, seek no more! The Central RSE Team, within the Research Computing Service is here to help. Have a look at the variety of ways the team can work with you:
All the documentation, tutorials and howtos for using Imperial’s HPC are available in the HPC Wiki pages. See also the Research Computing Service’s Research Computing Tips series for a variety of helpful tips for using RCS resources and related tools and services.
Imperial’s Research Software Directory provides details of a range of research software and tools developed by groups and individuals at the College. If you’d like to see your software included in the directory, you can open a pull request in the GitHub repository or get in touch with the Research Software Community Committee.
Drop us a line with anything you’d like included in the newsletter, ideas about how it could be improved, or even offer to guest-edit a future edition! email@example.com.
If you’re reading this on the web and would like to receive the next newsletter directly to your inbox then please subscribe to our Research Software Community Mailing List.
This issue of the Research Software Community Newsletter was edited by Jeremy Cohen. All previous newsletters are available in our online archive.