Kevin Guillaumond

Projects

Sometimes I write programs for fun, or improve tools I use.

My own projects are hosted on SourceHut. I also have accounts on GitLab and GitHub, in order to work on projects hosted there.

Current projects

Getting Things GNOME!

Technologies used: Python, GTK

GTG is a personal tasks organizer that I’ve been using since 2022. My favourite feature is its “Actionable” view, which only show you tasks that you can start right now. If a task is too big, you can add children to it, and only the children will be visible. If you have 15 tasks for the day but you know you don’t have time to go through them all, you can move some to tomorrow by updating their start date. Then they disappear from the Actionable view. I find it helpful to only see tasks I can get done now.

GTG sits at the perfect intersection of:

I write code, review code, and open and triage issues.

Confluence Sync GitHub Action

Technologies used: Python, pytest, GitHub Actions

This is a GitHub Action that watches for documentation changes in a repository, converts them to Confluence wiki markup using Pandoc, and uploads them to Confluence Cloud.

It is developed under my work GitHub identity, KevinGDialpad.

I wrote this because of something that happened at work. One of the projects has a README that explains how to run it locally, how to deploy it, etc. Somebody new to the project looked for that information in our wiki instead. When I pointed them to the README, they copied the README to Confluence.

This is a pretty catastrophic idea because the files are bound to diverge, which will eventually make it hard to find up-to-date information.

I also like writing documentation in the same repository as the code. They generally reference each other and need to be versioned together: how else do you access the documentation for version 3.2? It also avoids fragmentation by providing one place to write documentation (obligatory XKCD).

That said, people do expect to find documentation on Confluence, and this is where this project comes in.

I am very happy with it, because it has been working well even if it’s hard for me to find work time to improve it. It’s a good example of software that works well with minimal supervision.

kevinguillaumond.com

Technologies used: HTML, CSS

This website is generated by Hugo, a static website generator. You can learn more about where it came from by reading my first blog post.

It is currently using the pulp Hugo theme, which has some limitations. In order to make my website multilingual, I forked the theme. This is getting cumbersome, so my next idea for the website is to forego the theme entirely and write something simple myself.

This will give me more control on my website. Besides i18n, it’s also going to be easier to publish my blog posts to both the Web and Gemini.

Advent of Code

Technologies used: C

I discovered Advent of Code in 2023, and I solved some problems in C for practice.

Don’t go to that repo to find clean code! It’s fun to work on well-scoped projects and it’s a good opportunity to experiment with programming languages. I might try to solve problems in Hare or Go in the future.

Past projects

Things that I’ve created, am not currently working on, and have no real plans of reviving.

Adventure (2023)

Technologies used: Rust, GTK, gtk-rs

Adventure is a simple text-based adventure game that I used to learn Rust. The version on the default plain_text branch runs in the console, but the main branch contains my attempt at making a graphical version using GTK via gtk-rs.

Ultimately, I decided that learning Rust and GTK at the same time was a bit much considering how much time I have for fun software. While Rust makes a lot of sense in the GNOME ecosystem, I decided to switch to Python (via Getting Things GNOME) and come back to Rust later.

Super Mario World (2015-2016)

Technologies used: C++, SFML

My version of the famous 2D game, written from scratch without a game engine. A more ambitious iteration of a school project, where we wrote an over-the-network multiplayer version of the Mario Bros arcade game.

As the website explains, this dates from a time when I didn’t have any experience with software testing. The code is probably not very good - I haven’t opened it in so long.

My regret is that I never quite tied it up and made a last release with the code that’s there.

Mario Sokoban (2021)

Technologies used: C, SDL

Another Mario game! I was moving to a new team at work, expecting to write more C, and I wanted to practice. I remembered the tutorial I used to learn C all these years ago. The project of the “graphical applications” chapter was a Sokoban game with Mario as the main character.

Similarly to Adventure above, the game itself was never quite finished, but it served its educational purpose.

worldcubeassociation.org (2017-2018)

Technologies used: Ruby, Rails

After reading Michael Hartl’s excellent Ruby on Rails tutorial, I got the opportunity to use my new skills on the website of the World Cube Association. This tied in neatly with my existing interest for speedcubing.

Not that many commits ultimately came out of this, but the main one was adding a way to send the competition results to the results team. This added opportunities for validity checks that the previous email-based workflow didn’t have.

Wedding website (2019)

Technologies used: Ruby, Rails

Another Ruby on Rails adventure. After getting engaged in 2019, I figured it would be fun to use Rails to write our wedding website myself. We didn’t end up using it, but it was a good learning experience.

“Si Poteris Narrare, Licet” (2013)

Technologies used: Javascript, C#, iOS

This was a 4-month full-time student project.

The original work of art is an exhibition where people are standing inside a dome. A video is projected on the inside surface of the done, and one person wears a device that follows where they are looking and displays that part of the video. The exhibition is based on the myth of Diana and Actaeon.

The project is a 3D iPad application which simulates the inside of the dome: the user moves the iPad around to observe different parts of it, and can zoom in to view details.

We presented it during an art exhibition, as part of the 2013 European Capital of Culture events in and around Marseille, next to the actual dome.