My intro to open source

I don’t know if it’s something I’ve discussed with very many people, but over the last few years I have spent significant time observing the way that open source software works. Using the Julia programming language has exposed me to a lot of this, because the Julia language itself is open source and gets major updates a couple times a year, so by following those updates I see the way that people are working together or how issues that get posted on GitHub get resolved collaboratively (or, on the other hand, get left untouched indefinitely if nobody has the desire, skills, and bandwidth to resolve them).

I made my first “pull request” to an open source repository during my undergrad at BYU. I was using SymPy, a computer algebra system, for a piece of one of my homework assignments and uncovered a bug. Taking a look at the bug, it seemed like a relatively simple thing to fix, so I made an attempt (https://github.com/sympy/sympy/pull/20411) . That suggested contribution (”pull request” in GitHub parlance) did not end up getting accepted, in part because it prompted a larger conversation which resulted in fixing an underlying inconsistency where my contribution would have been a band-aid over the top.

Perhaps a year later, at the beginning of my PhD work, I noticed a bug in a package I was using for my research (specifically, to visualize microCT scans), and was able to submit a very simple pull request to fix that bug: https://github.com/JuliaGeometry/MarchingCubes.jl/pull/6 With some help from the package maintainer, that contribution was accepted!

So even though my first contribution didn’t have the outcome accepted, it has turned out to be very exciting to me to think about code that I wrote benefitting people doing completely different work. So as time has gone on, I have continued to follow online (sometimes as just a passive observer) the process of open source work, as issues are brought up, discussed together, and resolved.

A few recent victories

What prompted this post were a few times that open source software worked really well for me.

Inkscape 1.4

I recently spent a morning working in Inkscape on a figure that I have been using in presentations and in my writing. I had known for a while that this figure did not export well to any vector formats (which partially defeated the purpose of making it in vector graphic software like Inkscape), and ended up doing some searching online to try and figure out why. It turned out to be a known, 15-year-old bug in Inkscape, but I was able to track down someone who had actually fixed the issue less than a year prior (here)—just after the last time I had updated Inkscape. So a random person online had taken it upon themselves to fix it, and by updating my software, it was fixed!

Here is the figure now:

2DVials_LCPikal.png

Fixes of my own

I am a heavy user of the Unitful package for Julia, which helps in dealing with a lot of the awkward units that are conventional in the lyophilization community. This package doesn’t play nicely with some common types of code in Julia, so I am accustomed to working around the rough spots, but recently realized that a few of these places I was using a workaround could be easily fixed to work with units. So I did, and it was accepted, and now some of my research scripts are a little bit cleaner as a result (contributions https://github.com/lnacquaroli/SavitzkyGolay.jl/pull/34 and https://github.com/SciML/DataInterpolations.jl/pull/366).

Last thoughts

One of my main motivations for being involved in open source software could be summed up as a response to the invitation: “Be the change you want to see in the world.” I’m just one person, and I don’t have time or power enough to change everything that is wrong in my life, let alone in the world. But it feels good to take a little bit of time to contribute something that can benefit other people while making my life a little easier. And something I’ve learned as a disciple of Jesus Christ is that sometimes, if we don’t have the ability or strength to fix things ourselves, showing our faith is enough. We do what we can, then (whether by an obvious miracle or by involving other people in our lives) God in His wisdom can make things better.