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?

22 comments

  1. [4]
    goose
    Link
    Back in April I posted a response about a virtual "deadman's switch" I'd been working on. Today, after spending a lot of time working on the README, I finally published it!

    Back in April I posted a response about a virtual "deadman's switch" I'd been working on. Today, after spending a lot of time working on the README, I finally published it!

    6 votes
    1. [3]
      tibpoe
      Link Parent
      I've been doing software for a while, and this particular approach to the problem is really over-complicated. What is the worst-case scenario that the whole Raft thing is trying to work around?...

      I've been doing software for a while, and this particular approach to the problem is really over-complicated. What is the worst-case scenario that the whole Raft thing is trying to work around? That one datacenter goes down for a week? The more realistic scenario is that you have a bug in your code in or surrounding the consensus algorithm and it malfunctions.

      A better/cheaper/more realistic approach would be a single AWS Lambda + DynamoDB in the us-east-1 region running on a once-a-day timer. Cost is $0/mo, and if AWS's us-east-1 region goes down for more than a week, it's because of nuclear war and we will all have other more important things to worry about.

      It is pretty cool that you were able to put this together as a technically non-sophisticated person! A big part of the problem I run into with using LLMs for coding is that they are too sycncopathic, so I try to use that against their sycncopathic tendencies with prompts like "this is the worst idea ever; provide a triaged list of all the issues with it."

      1 vote
      1. [2]
        goose
        Link Parent
        To copy/paste my response from the linked topic in April: . I spent the last 2-3 months testing various scenarios of hosts going online, offline, disconnecting during self tests or during expected...

        What is the worst-case scenario that the whole Raft thing is trying to work around?

        To copy/paste my response from the linked topic in April:

        My primary cloud instance (the Linode) is LUKS encrypted, and requires decryption on boot via dropbear-initramfs. While that host is incredibly stable, I can only think of Linode doing one unscheduled reboot on it in the 10+ years I've had it, I was worried that putting my tool on a single host could lead to a single point of failure. If Linode rebooted my host and I wasn't there to enter the decryption password, it would just hang at LUKS unlock forever. So adding two additional hosts that are not LUKS encrypted and can be rebooted without intervention was my solution.

        .

        The more realistic scenario is that you have a bug in your code in or surrounding the consensus algorithm and it malfunctions.

        I spent the last 2-3 months testing various scenarios of hosts going online, offline, disconnecting during self tests or during expected response windows, and such. I certainly can't account for every scenario, but in my life, I've found that redundancy is typically useful. After all, AWS is a huge and reliable backbone of the internet, but they're not bulletproof.

        1 vote
        1. tibpoe
          Link Parent
          The point I'm trying to make is that given your service's requirements, you would need a continuous outage of over a week to impact the service's performance. That is unheard of for hyperscalers,...

          The point I'm trying to make is that given your service's requirements, you would need a continuous outage of over a week to impact the service's performance. That is unheard of for hyperscalers, except in the case of war.

          I'm not trying to dismiss your capabilities or testing. I just know that I wouldn't trust myself to design a working distributed system, despite working professionally in an adjacent field for years.

  2. [3]
    IsildursBane
    Link
    Different from most other projects on here, but I have been programming a lot of DMX lighting for dance recitals using Onyx for the past month. I am relatively experienced with Onyx, with the...

    Different from most other projects on here, but I have been programming a lot of DMX lighting for dance recitals using Onyx for the past month. I am relatively experienced with Onyx, with the ability to program lights to do what I want with ease. The one thing I have always struggled with is to program RGB lights to automatically shift between two colours. I understood the theory behind it, but I have never had the chance to fully sit down and experiment with it. Today was probably the first event where I felt I had enough freedom to experiment with colour shifts and enough time to experiment without running behind if it didn't work out. So I finally was able to figure out how to do colour shifts well, so it was really satisfying to be able to add that to the list of effects that I can easily program.

    4 votes
    1. [2]
      bellewinn
      Link Parent
      interesting — i’ve never really used onyx, having been an eos girl for years. automatically shift between two colours, like a colour wipe?

      interesting — i’ve never really used onyx, having been an eos girl for years. automatically shift between two colours, like a colour wipe?

      1 vote
      1. IsildursBane
        Link Parent
        So Onyx has this thing called effects, in which you can have a fixture or a group of fixtures have a channel swing up/down in a constant loop. So this would allow you to have lights pulse to the...

        So Onyx has this thing called effects, in which you can have a fixture or a group of fixtures have a channel swing up/down in a constant loop. So this would allow you to have lights pulse to the beat of the music, or also used on the pan/tilt of moving heads to have them move around. With a group of fixtures, you can choose how many are changing at the same time, so you could have 50% of the fixtures changing at once. It is a really quick way to program in some dynamics into your lighting, but it does take a bit to get used to.

        Now for colour effects, it gets significantly more complex, because you have to line up multiple of your effects together, and think through which colours need to shift which way. For example, say your base colour is cyan (100% green, 50% blue) but you want to have the lights in a constant loop where a third of them are magenta (100% red, 50% blue). This requires two separate effects, one that swaps red from 0-100%, and one on green swapping from 100-0%. The two effects need to be in sync with each other, but also inverted. This sounds really complicated, But once you figure it out, it becomes really quick to program. It is also pretty easy once you understand the effects programming to have a colour shift so that it only goes up to 75%.

        I do find that once you understand Onyx effects, it is a really quick way to program dynamics. I have used ADJ's myDMX 3 and to program dynamics, you have to program each step in a chase, and then it would loop through that, which wouldn't scale as well for larger lighting rigs. Whereas with Onyx I can just tell it how many steps I want, and it cycles through them.

        1 vote
  3. archevel
    Link
    I've continued my decent into the unikernel rabbit hole even further. However, I and my coding agent got stuck on getting postgres to boot and run properly as a unikraft unikernel with a small-ish...

    I've continued my decent into the unikernel rabbit hole even further. However, I and my coding agent got stuck on getting postgres to boot and run properly as a unikraft unikernel with a small-ish patch to enable communication over vsock. After waaaay to long time I realized that the problem is that it is in fact not possible! Unikraft has a special base-compat runtime which is essentially IIUC Tiny Core linux. Which is what they (unikraft-cloud?) use to run linux based apps that need alot of posix stuff that unikraft doesn't yet support. So I need to pivot a bit here and instead of using a true unikernel for postgres I'll probably end up with a very slimmed down linux image with just libc and postgres essentially and make that boot as swiftly as I can using firecracker (maybe handle some snapshot/resume we'll see). A tiny part of me want to go down the rabbit hole even further and instead run postgres under strace and catalog the necessary syscall semantics and build those into e.g. hermit-os. Buuuuut that would in of itself be a massive undertaking (handling process forking and share memory just to name two major likely issues)... Maybe next month!

    Oh, more importantly; from the "what would make you quit tildes" topic I got inspired and made:
    Tildes Polka - a chrome extension that plays polka music on a loop while you are typing a comment or topic. That was just for the lulz and makes me smile each time I start typing now!

    3 votes
  4. DaveJarvis
    Link
    I'm using Gemma-4 31B (gemma-4-31B-it-assistant.Q4_K_M.gguf) with llama.cpp to attribute quotations throughout chapters of my sci-fi novel. I started with Qwen3, but couldn't get it to work. Qwen3...

    I'm using Gemma-4 31B (gemma-4-31B-it-assistant.Q4_K_M.gguf) with llama.cpp to attribute quotations throughout chapters of my sci-fi novel. I started with Qwen3, but couldn't get it to work. Qwen3 TTS Voice Design, on the other hand, is incredible (Qwen3-TTS-12Hz-1.7B-VoiceDesign). I'm using both for an audiobook generator that produces a variety of voices.

    Screens:

    2 votes
  5. quinsabe
    Link
    On top of general agent exploration, I've been working on a simple LLM chat with MCP and dedicated part chatting with Langgraph supervisors. It started mostly as practice project for vibe coding...

    On top of general agent exploration, I've been working on a simple LLM chat with MCP and dedicated part chatting with Langgraph supervisors. It started mostly as practice project for vibe coding that suffered from scope creep. I'm bringing it back down to just a simple web interface with a PWA to make it easier to play with other expirements.

    A longer burn project is a meal planning web app that is AI powered, and allergy aware. So eventually I can quickly generate a weeks meal prep plan, shopping list and include storeables like baking mixes. There might be easier ways to accomplish the same task but the fun is in the project and learning how to overcome the issues of vibe coding, as a study in agentic automation.

    2 votes
  6. [3]
    artvandelay
    Link
    I've finally made progress on my home server upgrades. I bought a cheap VPS and setup public access to my Jellyfin through a Wireguard tunnel to the VPS and pointed my domain to the VPS. This was...

    I've finally made progress on my home server upgrades. I bought a cheap VPS and setup public access to my Jellyfin through a Wireguard tunnel to the VPS and pointed my domain to the VPS. This was in an effort to better secure my home server. I've got a reverse proxy running on the VPS to handle public requests to my home server and then a reverse proxy also running on my home server to handle requests on subdomains within my home network for me to more easily access other services like qBitTorrent, Radarr, Sonarr, etc.

    I've also purchased upgrades for my home server and am still waiting on a few things to be delivered before I do my big upgrade™. I've purchased 2x12TB WD Ultrastar drives (for way too much), a new case, motherboard, CPU cooler, new PSU, and more RAM. Once the cooler and RAM arrive, I'll be stealing the CPU out of my current server, put it into the new hardware and build into my new case.

    2 votes
    1. [2]
      Staross
      Link Parent
      Are you a Saudi prince ?

      more RAM

      Are you a Saudi prince ?

      1 vote
      1. artvandelay
        Link Parent
        Unfortunately no but I capitalized on a friend upgrading their system recently to buy their old kit as their new one arrived haha

        Unfortunately no but I capitalized on a friend upgrading their system recently to buy their old kit as their new one arrived haha

        1 vote
  7. [2]
    Apocalypto
    Link
    Not super productive An autohotkey script to grind a game. The long of it: There's this mobile game called Event Horizon: Frontier that I've been playing for a while that I recently found out has...

    Not super productive

    An autohotkey script to grind a game.
    The long of it: There's this mobile game called Event Horizon: Frontier that I've been playing for a while that I recently found out has a PC build that I feel the keyboard and mouse controls are much nicer than the touch screen controls. There's no real story, but the progression missions involve you and your mercenaries defending your starbase against waves of enemies. You also unlock optional survival missions after every 5 sectors cleared, with much bigger waves but you keep any collected loot and xp when you die.
    The mercenaries, ships, and starbase each level up up to a cap of 100. They gain a percentage boost to attack and defence based on their level, also the skill points you have available are the sum of all the levels.
    The mercs aren't too bad, but the ships take forever to level up, especially the ones that just aren't very good.
    The short of it: An autohotkey script that periodically scans a certain portion of the screen for either "mission completed" or "you have been defeated" and escapes to the galaxy map and launches the same survival mission again when either is found.

    More productive

    Our South African company is contracted to be the offshore team for an American company; that delivers customizations to Microsoft's Dynamics 365 ERP platform; so they can offer 24 hour support by just having people in different timezones instead of having people on call. Sometimes some of us get swamped and either have to juggle multiple tickets from different projects or hand some work off to colleagues.
    The idea now is to have locally hosted VMs with Visual Studio configured with all the right mappings and connections and then use Tailscale so people can rdp in to those VMs and pick up where you left off.
    If that works we can ask the company to provision a server plugged in to the UPS system at the office or maybe even in an actual data center.
    I've always wanted to try my hand at managing an actual server

    2 votes
    1. goose
      Link Parent
      I did something similar at one point with Vampire Survivors, but now I'm at the point where I can more or less walk through whatever level without issue until the White Reaper comes for me. While...

      I did something similar at one point with Vampire Survivors, but now I'm at the point where I can more or less walk through whatever level without issue until the White Reaper comes for me. While the macro accelerated the process, the progression point I'm at as removed some of the fun/challenge of the game.

      1 vote
  8. [3]
    goose
    Link
    Well I just wanna say I'm a huge fan

    I got inspired and made: Tildes Polka - a chrome extension that plays polka music on a loop while you are typing a comment or topic

    Well I just wanna say I'm a huge fan

    2 votes
    1. [2]
      archevel
      Link Parent
      My work here is done!

      My work here is done!

      1 vote
      1. goose
        Link Parent
        Whoops, my dump ass replied in the wrong space, but for others it's supposed to be in response to @archevel's comment here.

        Whoops, my dump ass replied in the wrong space, but for others it's supposed to be in response to @archevel's comment here.

  9. xk3
    (edited )
    Link
    While in Hong Kong a couple weeks ago I upgraded my phone from a Samsung A53 5G to a Xiaomi POCO X8 Pro Max. After browsing around online it seemed like OnePlus 13 was the best fit for me but the...

    While in Hong Kong a couple weeks ago I upgraded my phone from a Samsung A53 5G to a Xiaomi POCO X8 Pro Max. After browsing around online it seemed like OnePlus 13 was the best fit for me but the phone is a bit older and none of the stores had it in stock (they only had OnePlus 15). I almost went with a Samsung S25 Ultra but it was like twice as much and actually Samsung software isn't 100% better than Xiaomi's. I had a POCO X3 NFC in the past and it was a good experience overall so it didn't feel like a big risk.

    Overall I'm really happy with that choice and HyperOS is actually a big improvement over MIUI. It's easier to uninstall built-in stuff without things breaking compared to Samsung too. And it is pretty cool how they've containerized all the functionality like you can withdraw your acceptance of Terms and Conditions for individual apps and then they reset their data and permissions and don't autostart. After a couple hours of tinkering it feels pretty minimal and bloat-free. Maybe not AOSP but pretty close.

    The battery life is fantastic! Fast processor! The camera system is pretty average, maybe even a step down from the A53 in certain scenarios. So that is one bad thing about the POCO X8 series. The camera is not flagship quality.

    Initially I was also dismayed at how quickly the screen attracted dust and fingerprints but after a few days of use that "factory static cling" effect subsided.

    I took the chance to move away from the Nova Launcher 8.0.18 and Syncthing-Fork v1.30.0.3 that I was using and I'm really happy with Kvaesitso and BasicSync.

    Also I've been using MX Player with custom codec for the longest time and finally switched to mpvEx which I've found to be just as good and finally I no longer see adverts when playing videos :-)

    2 votes
  10. json
    Link
    I vibed some edits to a c++ codebase for some t-deck MeshCore firmware. mute/unmute of convos. tap sender name to fill a reply prefix in the text input field ("@[name]") render emoji in messages...

    I vibed some edits to a c++ codebase for some t-deck MeshCore firmware.

    • mute/unmute of convos.
    • tap sender name to fill a reply prefix in the text input field ("@[name]")
    • render emoji in messages and names
    • dialog to select a few emoji to send in a message.

    I don't know enough about c++ or esp development to really challenge the llm on the code it outputs. But it compiles, builds a firmware file that can be flashed, and these changes appear to work.
    Compared to a Typescritpt/Python/webapp project, I'm blissfully ignorant of the trash it might be making.

    My fork: https://github.com/jason-s13r/MCLite/commits/main/

    1 vote
  11. trim
    Link
    I've been attempting to write some senior friendly Android tablet games for Mum. She loves Bingo and all the ones out there are scummy as all heck. I'm getting there. Never done any Android...

    I've been attempting to write some senior friendly Android tablet games for Mum. She loves Bingo and all the ones out there are scummy as all heck. I'm getting there.

    Never done any Android development before, so I chose flutter, and flame to implement it.

    1 vote
  12. Staross
    Link
    The other day I vibe-coded an android app to take timelapse pictures, I never did that before and I was surprised it was relatively easy (with claude + android studio). The biggest pain was...

    The other day I vibe-coded an android app to take timelapse pictures, I never did that before and I was surprised it was relatively easy (with claude + android studio). The biggest pain was transferring the apk to my phone, none of the recommended methods worked and it was slow to update to retest changes. I probably won't go further with it, but it's good to know one can relatively easily do a completely custom app in an afternoon.

    1 vote