11
votes
What programming/technical projects have you been working on?
This is a recurring post to discuss programming or other technical projects that we've been working on. Tell us about one of your recent projects, either at work or personal projects. What's interesting about it? Are you having trouble with anything?
I had a DM through CurseForge (of all places) wondering whether I could port v2 (a complete rewrite) of my Tiny Flowers Minecraft mod to 1.21.1, which is a somewhat popular version of Minecraft for mods. I originally released v2 for 26.1 (released early this year) because it made for a good cutover point, and I could always try to backport it later. Well, now is later.
Of course CurseForge, being CurseForge, highlights the most recently released file for your mod, not the one for the most recent version of the game, and I want the most recently released file to be for 26.3. I don't want it to be just an empty release So now was as good a time as any to implement a feature I've been thinking of: allowing the tiny flowers to be put in a Flower Pot. This wasn't so bad, a bit more than a day's work over the weekend. At least I'll have something substantial to release for newer versions of the game and I can ensure that the latest version of the game is highlighted on CurseForge.
Now on to backporting. My plan is to go back through some major versions step by step, so I don't dealing with 2 years' worth of game changes all at once. Starting with the current version of the game (26.3), I've gone back to 26.2 and 26.1.2. These weren't so bad, there were some minor changes here and there, mostly slight refactoring to some of the game's classes that I happen to depend on.
My next milestone is the version just before 26.1: 1.21.11, which, as of writing, is what I'm still working on. There have been four major flavours of pain:
Oh, and remember how my target version was 1.21.1 and I'm only at 1.21.11? There's still another year's worth of game development I need to go backwards through. There are things I know have changed in the game that will affect me (Wildflowers and Leaf Litter were only added in 1.21.4, and that came with a minor change to Pink Petals), but there's probably more that I don't know. I don't have to do this backport, but I've set it to myself as a challenge so I'm going to give it the best I've got.
I was going to try out python-based Cloudflare workers, now that they are officially supported (out of beta). But I'm struggling with getting my local dev environment set up. I think it's because I'm doing this on Windows - I should probably just do it from a container on my Linux server or something. (WSL gave me issues too.)
Mentioned in another post, but might be interesting for others to take a peek at https://archevel.github.io/laya/
It is a condensed model that runs in the browser similar to typesafe.ai's Jev model.
I have some SO ARM101, and I decided to make one of them play chess. It’s still early, but I think I’m almost ready to play fully. There’s still some oddities in calibration.
If someone here wants to play against me, I’ll do my move once I manage to fix the current move for black, and then it’s basically open to anyone to basically be my opponent for my moves.
The site is chess.watermelonson.com
I’ll make a post about it once I’ve finished it, but I am posting short videos about it daily. I think by the end of this week it will be ready, the write up will take a bit more tho
Cool! I hope my move input didn't break it :) fun to see it act. Didn't dare to touch the "flip board"-button, bit it was tempting!
Haha flip board is just visual! The move didn’t break anything! I am just still fine tuning the moves so it’s fun to have people join in. Funny enough when the arm noticed the placement slightly off center it tried to adjust it.
But then it picked up the knight and placed it on that square :D
I fell into a rabbit hole of trying to optimize import times in a Python project (I know, seems pointless, but I made a fair amount of progress). For it, I use an LLM to instrument the package with Pyinstrument, see what the bottlenecks are, and suggest a change. This has worked quite well, but one package I could not get rid of stood out to me: Pint. It's a supposedly small package for converting units, but it took a while (some 500 odd ms I think) to get imported and started.
Turns out it has all sorts of complicated machinary to read a DSL at import time, which was quite slow. I tried improving it but ran into the limits of the architecture.
That's when I thought: surely, this does not have to be complicated? So I am currently working on a library which implements the core functionality of Pint, but with a focus on speed and simplicity.
I used LLMs in some novel ways for me here: use it as a brainstorming partner, as a researcher on other tools and as a researcher to see how packages actually use the package. It also helped to have it implement the arithmetic itself, since that is not my strongest suit. I think the result is pretty nice, I hope to finish it in a few weeks (hopefully, we all know how these things often go).
I'm building a finance and personal goal tracking app for my partner. It's currently codenamed "Lifesync" and I have a usable demo here.
I am very much a backend developer so UI work is a bit tough for me, but I'm having fun getting animations working and stuff. The browser drag and drop API is horrendous though, it's a miracle stuff works.
I'm taking a break to play through and finish CONTROL Resonant right now, but after that I want to go on a bug squashing session as my partner identified a few issues. Then I want to add a new page dedicating to mortgage tracking, since he wants to see how many months he has left, the principal and the interest, and how those change when paying in advance.
For the foreseeable future it will be a tool built for his use and preferences, but I do want to open-source it at some point should anyone else find it useful.