2024 - Code Recap
2024 had its ups and downs. I’ve been working on a lot of different projects, some of them are public, some of them are private. I’ve learned a lot about different technologies and programming languages. I’ve been experimenting with different runtimes and I’ve been contributing to open source projects.
Overall I’m happy with the progress I made. I’ve made some new friends along the way and I’ve been able to help out in a few projects.
Programming Languages
Languages used:
- Ruby
- JavaScript
- Clojure / Babashka
- TypeScript (new)
- Java (new)
- Go (new)
JavaScript Bonus: experimenting with JavaScript runtimes played a huge part this year:
- Deno (is what we’ve all been waiting for)
- Bun (is really cool, too)
Public Projects
Here are the projects I’ve shoved into existence this year:
Shell-Curry (Ruby & Jekyll)
shell-curry is a curated list of shell tools and configurations. The main goal is to provide a curated list of shell tools and configurations that we use in our daily work.
Picnic-Auth (TypeScript@Deno)
picnic-auth is a simple authentication service that uses JWTs and BCrypt to authenticate users from an env file.
Wilson (TypeScript@Deno)
wilson is a glorified OpenAI Client, that works with recipe/form files to interact with threaded/multistep OpenAI Assistants. User Input via CLI.
Unreachable Tiles Map Editor (JavaScript@Deno)
unreachable_tiles_map_editor is a simple web interface to interact with a map, in order to mark tiles as unreachable.
Deno Garmin JS SDK to JSON (Deno in Docker)
deno-garmin-js-sdk-to-json is a compilable Deno wrapper around the Garmin JS SDK to extract JSON data from .fit files.
Strava Export Organizer Web w/ CLI (Ruby & Go)
strava-export-organizer-web is a web interface for the Strava Export Organizer. The project pulls in strava-export-organizer, a CLI tool written in Go to organize Strava Exports into a structured folder hierarchy.
Java Map Tile Metrics w/ CLI (Java)
java-map-tile-metrics and java-map-tile-metrics-cli are Java implementations of the map tile metrics calculation. A score of a user’s visited places on a map.
BB Map Tile Metrics w/ CLI (babashka)
bb-map-tile-metrics a Babashka (Clojure/Lisp) implementation of the map tile metrics calculation.
Revisited Public Projects
Some projects have been revisited and improved:
Shuffle-GAG (babashka)
shuffle-gag is a github action based podcast scraper written in Babashka.
Git-Hire, hire on fire 🔥 (babashka)
git-hire a Babashka (Clojure/Lisp) to API scrape GitHub for users with a certain skillset in a certain location.
Ruby Telegram Login Web Stub Tutorial (Ruby)
ruby-telegram-login-web-stub-tutorial a ruby implementation of the Telegram Web-Login.
Pizza Dough Calculator (ClojureScript)
Pizza Dough Calculator a ClojureScript implementation of a pizza dough calculator.
Topics and Learnings in Private and Public Projects
Every project I’ve worked on this year has taught me something new. Here are some of the topics I’ve been dealing with:
- VPS Server Setup
- Caddy
- intensive use of justfiles
- document my ideas, urls, decisions, and thoughts in readme.topic.md files
- Prompt Engineering
- side effect: dealing/interacting with AIs had an impact on my documentation/communication for sure
- a glimpse into MongoDB (with Go)
- Git Submodules (no conclusions yet)
- Systemd
- Ruby stuff:
- a medium sized app with Roda, Rodauth, htmx and Postgres via Sequel
- Sequel: Postgres can stream results 🚀
- Passenger vs Puma (Ruby Webservers)
- Honeybadger vs Sentry (Ruby Webservers)
- YJIT config for production
- jemalloc2 and ruby
- a medium sized app with Roda, Rodauth, htmx and Postgres via Sequel
- Much higher performance when the web server is setup using a socket NOT TCP
- GHCR (GitHub Container Registry)
- Traefik and cron jobbed deploys from GHCR.io
- (p)React.js
- Deno compile
- Deno test
- e2e with playwright using github workflows
- some bugs can be fixed by upcasing the first letter of a string (roda-i18n) 😅
- Github Workflows
Open Source Contributions
I contributed to the following projects (hope I didn’t forget any):
- strava-ruby-client (co-mainainer) by @dblock
- roda-i18n (co-mainainer) by @kematzy
- strzibny/invoice_printer by @strzibny
- wieczos-virus-scanner by @wieczo
- scittle-tiny-slides by @chr15m
- r18n-core
Anything else?
Yeah, I learned How Drum and Bass is made… on YouTube.
⬅️ Read previous Read next ➡️