Imperial College Research Software Community Newsletter - August 2023

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…

Dates for your diary

And a few reminders from last month:

Research Software of the Month

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.

RSE Bytes

News

Blog posts, tools & more

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.

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!

Some reminders…

RS Community Slack

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.

Research Software Engineering support

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:

HPC documentation and tips

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.

Research Software Directory

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.

Get in Touch, Get Involved!

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! rse-committee@imperial.ac.uk.

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.