Open Source Contributions in 2019

I’m pretty stoked about what I was able to do in 2019 towards open source software. I’ve always contributed here and there but I took the momentum of contributions I did in the second half of 2018, in that case to the Diaspora project, and just kept on trucking. I spent a total of 653 hours on open source projects in 2019. A lot of that was new code generation but there is of course more to development than just writing code. There were lots of meeting times, some hackathons, documentation generation, tech support etc too. Some of these were projects I started as well as contributing to established projects. The five projects I contributed to the most fall into a relatively broad range of software (from highest to lowest number of hours contributed):

  • The B612 foundation : The B612 Foundation’s goal is to get better at tracking asteroids so we can stave off a potential cataclysmic collision. The project is doing all of their astrodynamics algorithm work as open source and I am more than happy to contribute towards that. My work on that has been mostly around getting the OpenOrb astronomy software for generating orbits from telescope observations working within their larger infrastructure and for our particular needs. I’m also experimenting with using the Cesium WebGL system for doing 3D visualization. Lastly I’m trying to reproduce the heliocentric propagation and OD with Orekit as a distant third priority.

  • My Social Portal : You probably haven’t heard of this open source project because I created it starting at the end of October. I’m frustrated by my social media experience. I’m frustrated by the lack of traction of the alternative systems. I’m frustrated about the problems those systems don’t solve. I therefore decided to create a project who is designed from a user-first perspective to address those issues for me and I think (hope) by extension the needs for others as well. I don’t know if this will grow into something far grander than just dealing with my own social media needs. I’m not directly targeting that immediately. I do have thoughts on how to make this far more broadly useful though. I hope to be writing a lot more on this in 2020.

  • Avalonia : I’ve written a lot about my learning Avalonia, the only true cross platform UI framework for .NET that targets Linux as well as Mac and Windows. Much of my time on Avalonia has been with regard to documentation and some testing. I have been dabbling with the idea of doing some direct development as well. I have identified some bugs that I want to see fixed but it’s not going to raise to a high enough priority for the core developers to address, and I agree with that assessment. I think this is a good opportunity to get my feet wet with developing on the project. It is being directly used for My Social Portal and some other software I am writing.

  • Diaspora : Diaspora was the first fediverse project I contributed to and the one I was thinking I’d end up spending a substantial percentage of my contribution time working on. In 2018 I spent a bunch of time finishing up the API work that Frank Rousseau had gotten started. It’s still not merged into the mainline and deployed in production since (AFAIK) it is waiting for a major release. Hopefully it will get going. At the beginning of the year I was planning on doing some serious development further with UI updates. I even setup an issue track for me to do so. However I was getting the sense that Diaspora wasn’t going to fit my needs for a unified social media experience in the fediverse. I believe it should federate over ActivityPub but the core group does not. I also thought there was a horsepower issue with getting pull requests through which would make working on larger issues a bigger problem. For a brief period of time I considered doing a feature fork of the project. I started looking around at what changes I’d make to create a unified fediverse system so fired up my old Friendica account. After playing with it a bunch I actually started using that instead because it integrated with ActivityPub and Twitter (among others). I was thinking that perhaps I would contribute to them instead. However after putting a bunch of effort into getting started in PHP and looking at the code base I didn’t feel that was the right fit either.

  • LiteDBPortal : This NoSQL file-based database has been a great find. I call it SQLite of document databases. It’s all .NET pure and runs everywhere. However one thing that was missing was a client tool to browse and manipulate the database that also ran on Linux (a familiar refrain with .NET software). I’m using this on some projects, including the My Social Portal so it was important for me to address that and I thought it would be great to fill a need. I therefore created this project as well. It is written in Avalonia so it runs on Windows, Mac, and Linux. I’ll be continuing to refine this going into 2020 as well.

  • …and the rest (14 others): There are several other projects I contributed to. Some of them are my old classics that just didn’t get a lot of attention this year, like Orekit and the base math library it forked from Apache Math called Hipparchus. Others are little odds and ends type of things. Some of them I’ll probably end up contributing more to in the coming year. I’m sure some additional ones will come to the fore front too.

I’m very pleased I was able to spend so much time on open source projects. I’m hoping that I get the opportunity to contribute even more in 2020. I don’t want to set an exact target but if I could get something on the order of 1000 hours I think I’d be very pleased with that.