Log

Here the ARCsoft team write about things we’ve learned or are excited about! Each member contributes an article periodically, both as part of our mission to contribute to the community as well as to grow personally and professionally.

Build a todolist with SolidJS

by Archie To, 10 December 2024

ARCsoft recently decided to use SolidJS as the frontend framework for our future projects. If you’re new to SolidJS, don’t be afraid. Let’s learn SolidJS together by building a simple todolist app.

Creating Custom Modules for the ARCsoft Library

by Lee Napthine, 9 December 2024

At ARCsoft we have begun building a repository of custom Helpers libraries that will be included in future projects. First on the docket was looking at several giant UI test code blocks in Django. These often span dozens of modules and thousands of lines of code. Quite common throughout was the use of repetitive and non-descriptive JsonResponse calls. Let’s walk through how we compartmentalized these calls into a more cohesive set of custom JsonResponse classes and how we added them to our repository of custom methods that we will use here at ARCsoft. Along the way we will document the setup of the Helpers repository and the essential inclusions to a project for the package to be able to be used, imported, and published.

Adapt a new frontend framework for ARCsoft - SolidJS

by Archie To, 3 December 2024

ARCsoft recently decided to add SolidJS as a new frontend framework to their tech stacks. We have implemented SolidJS on several projects and the results have been promising. In this article, we’ll explore why we needed a frontend framework and what SolidJS offers as a solution.

Web Performance using CDNs, Async, and Defer

by Lee Napthine, 30 November 2024

On the ZooDB project I was tasked with looking into the case for and against using Content Delivery Networks (CDNs) rather than the locally hosted frameworks we had currently set up. A decision was made to try them along with their async and defer script attributes to determine whether web performance increased and in which areas.

Getting Setup in Visual Studio Code

by Lee Napthine, 19 September 2024

This blog post gets us started with Visual Studio Code (VS Code). It is intended for onboarding at ARCsoft, and should help sync IDE enironments with the Git projects. Topics include install, startup, formatting, extensions, and shortcuts.

Project versioning and tagging

by Drew Leske, 20 August 2024

Lately we’ve been discussing project versions and tagging for both releases and packaging. This has come up for tags on container images, and we also have developed a couple of Python libraries which we may want to publish to a public repository. While tags on container images have fairly relaxed restrictions, the Python Package Index for example follows a very prescriptive specification for versioning, and ideally we can find a solution that will work for both and is reasonably meaningful and intuitive.

Use Terraform to deploy Helm charts

by Archie To, 17 July 2024

We’ve talked about Terraform and Helm. Those surely are cool technologies. But you know what’s even cooler? When you combine both of those. This article will show you how to use Terraform to deploy Helm charts, a very popular practice for our infrastructure in ARCsoft.

Using syntax trees in Python

by Bhavy Rai, 2 July 2024

In this article we describe how a need for parsing Python files led us on a journey starting with plain text parsing, to abstract syntax trees, and then finally to where we wound up with conrete syntax trees, and the lessons we learned along the way.

Introduction to Terraform

by Archie To, 18 June 2024

Terraform is a very popular technology used both in the industry and within the Research Computing Services (RCS) Team. We at ARC Software have used Terraform to build up STRAP and implemented scripts for Strapper to deploy applications onto STRAP (these apps are called Strapplications). So what is Terraform? What makes it so popular?

Building application containers

by Drew Leske, 13 June 2024

For one of our projects (ZooDB) we recently ran into a problem when adding new Python libraries to our dependencies, as several of the libraries required build tools in their installation. These tools were not available in the application’s base image nor were they installed as part of the build, so they had to be added. Here we look at what can be involved in building such a container.