10 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?

34 comments

  1. [5]
    faye_luna
    Link
    I built up my websites over like the last 2 weeks ago and it has been a blast. My goal is to like somewhat recreate one of those 1.0 Web experience or just an "Old Website". The most recent thing...

    I built up my websites over like the last 2 weeks ago and it has been a blast. My goal is to like somewhat recreate one of those 1.0 Web experience or just an "Old Website". The most recent thing I added is a gallery with some of my drawings and I "updated" the landing page (index.html) So it would look better and it now shows some of my "obsessions". Yay.

    Also I installed OpenSuse on some old Thinkpad laptop and altough i've had some experience with linux in the past but i basically forgot everything. And it makes me so happy with all the stickers I put on yayyy :3.

    I'm thinking about learning some python again or maybe not. But yes -- That's about it. Yay -- Have a nice evening / day or whatever.

    9 votes
    1. [4]
      faye_luna
      Link Parent
      Also not to like self promote myself too much but ya here is my little site. Just let me know if you can think of something cool to add or maybe something is missing or idk. Maybe just everything...

      Also not to like self promote myself too much but ya here is my little site.

      Just let me know if you can think of something cool to add or maybe something is missing or idk. Maybe just everything is terrible i wouldn't knoww.

      PS It doesn't look that good on a phone btw soo yaaa.... View at your own risk....

      5 votes
      1. first-must-burn
        Link Parent
        I thought it looked fine on my phone :) I love the way you phrased this. It made me happy to read it. Nice work!

        I thought it looked fine on my phone :)

        I am Luna a weird thing that is currently 25 years old.

        I love the way you phrased this. It made me happy to read it. Nice work!

        1 vote
      2. [2]
        gpl
        Link Parent
        I love your site! Immediately added to my "Cool blogs/sites" bookmark folder, good stuff.

        I love your site! Immediately added to my "Cool blogs/sites" bookmark folder, good stuff.

        1 vote
  2. skybrian
    Link
    Continuing to work on my accordion MIDI controller. (So far it's just a piano-style keyboard with three keys.) I've been working on the mechanical part: getting a solid connection from the levers...

    Continuing to work on my accordion MIDI controller. (So far it's just a piano-style keyboard with three keys.) I've been working on the mechanical part: getting a solid connection from the levers to the key caps and making sure they rotate smoothly without bending. Next I want to do some experiments on reducing noise.

    5 votes
  3. [2]
    polle
    Link
    Started work on the JSON API for tildes. The read-only APIs that don't involve user authentication should be fairly straightforward. The authenticated api endpoints will prove more interesting....

    Started work on the JSON API for tildes.

    The read-only APIs that don't involve user authentication should be fairly straightforward. The authenticated api endpoints will prove more interesting.

    Gonna need to figure out how to nicely integrate REST api token based authentication into the tildes codebase (which relies a lot on user sessions) without duplicating too much code

    3 votes
    1. creesch
      Link Parent
      Oh neat! I was thinking the other day about something I might want to automate with tildes. But currently it would involve me having to scrape the website and such. Possible, but no ideal.

      Oh neat! I was thinking the other day about something I might want to automate with tildes. But currently it would involve me having to scrape the website and such. Possible, but no ideal.

  4. kari
    Link
    A while ago (back on May 2nd!) I mentioned that I was reading through the river Wayland compositor's upcoming river-window-management protocol to write my own window manager. I did a bit of basic...

    A while ago (back on May 2nd!) I mentioned that I was reading through the river Wayland compositor's upcoming river-window-management protocol to write my own window manager. I did a bit of basic work in early June but stopped until I've started looking at it again the last week or so. I've managed to make an—extremely basic, barely functional—window manager so far, but it's able to at least display a window—and not crash when the window closes. I'm excited to work on it more. I'm sure the other WM's that come out for the protocol would be more than enough for me but I'm still excited to be able to run software that's mine every day.

    3 votes
  5. [2]
    neo
    Link
    Been setting up IRC bouncer and connecting to it from Emacs. Lots of struggles, but I've been having fun, and some chats are still pretty alive! This is also a chance to tinker with my instance...

    Been setting up IRC bouncer and connecting to it from Emacs. Lots of struggles, but I've been having fun, and some chats are still pretty alive! This is also a chance to tinker with my instance after so long and Nix is making everything smooth as always.

    I'll probably try to create a NixOS module for gamja, the web irc client that integrates tightly with my bouncer of choice, soju.

    3 votes
    1. archevel
      Link Parent
      I started using NixOS as my daily driver a bit over a year ago. It has been fairly solid though I had to go with the unstable branch to get support for my webcam originally and haven't moved off...

      I started using NixOS as my daily driver a bit over a year ago. It has been fairly solid though I had to go with the unstable branch to get support for my webcam originally and haven't moved off it yet. Any updates that break I can just rollback and keep on truckin'!

      I do feel like I haven't gotten a good grasp on how to work with it though. Any tips on something to read in order to move beyond newbie levels?

  6. [4]
    ConalFisher
    Link
    I've been trying to get into ricing Arch ("ricing": The process of heavily customising your Linux desktop and general aesthetic, see /r/unixporn for examples). Looking at various tiling/dynamic...

    I've been trying to get into ricing Arch ("ricing": The process of heavily customising your Linux desktop and general aesthetic, see /r/unixporn for examples). Looking at various tiling/dynamic window managers (technically called "compositors" in Wayland) and am a bit dismayed by the options.

    Hyprland is the big trendy one these days because it has loads of fancy features and is super smooth, but IMO it's super bloated and is far more CPU intensive than other options. Also the lead dev is a huge bigot and I don't want to support that in any way.

    On the other end of the spectrum is dwl, a Wayland fork of dwm, part of the Suckless collection of software that aims to be aggressively minimal and lightweight to near absurd levels. The whole thing is less than 2000 lines of C code, super lightweight, flexible, a bitch and a half to configure (you literally have to edit the C source file and recompile every time you want a change), but really cool overall. Unfortunately, the Suckless people are straight up Nazis, so, yknow. Really loving the Linux experience so far.

    There are other WM options but they're all kinda, idk, mediocre. I might honestly look into writing my own Wayland compositor because 1. I've spent ages learning C for basically no reason, might as well attempt to put it to use, and 2. the nazi guys did it in 2000 lines of code while having room temp iq how hard could it be yknow. Plus, could be a fun project to help me learn more about Linux.

    3 votes
    1. faye_luna
      Link Parent
      Seems like a very cool project. I hope it comes out well.

      Seems like a very cool project. I hope it comes out well.

      2 votes
    2. lynxy
      Link Parent
      I've had a look at writing a Wayland based compositor a couple of times and it's a bit of a pain- though perhaps the ecosystem has matured somewhat since then. In the end I've switched from...

      I've had a look at writing a Wayland based compositor a couple of times and it's a bit of a pain- though perhaps the ecosystem has matured somewhat since then. In the end I've switched from OpenBox, which is wonderfully minimalist but still X11, to LabWC which is largely inspired by OpenBox and has a compatible configuration format.

      I'd love to see your progress if you do give writing your own a go!

      1 vote
  7. 0x29A
    Link
    New 3D printer (courtesy of my family) is on the way to me now so I can dig more into it and make stuff at home. Very excited to start another new hobby/pursuit on top of my 100 other half-done...

    New 3D printer (courtesy of my family) is on the way to me now so I can dig more into it and make stuff at home. Very excited to start another new hobby/pursuit on top of my 100 other half-done and barely-started pursuits

    Also thinking through how I'm going to migrate my blog from bearblog -> static and what I want to script to automate for myself. Mostly just a brainstorming thing and this will be a nice exercise / refresh of my skills and so on.

    2 votes
  8. [9]
    lynxy
    Link
    I've been fiddling with a few designs for dry-box rollers, filament passthroughs, and magnetic filament guides which allow me to feed filament into the Prusa CoreOne directly from the IKEA-based...

    I've been fiddling with a few designs for dry-box rollers, filament passthroughs, and magnetic filament guides which allow me to feed filament into the Prusa CoreOne directly from the IKEA-based dry-boxes mounted above the printer. This project became a necessity partly because the PETG really can't stay outside of a drybox for long without becoming swamped, and partly because the two kilo PLA spools don't fit on the stock spool holder. I've just this second installed the magnetic Bowden coupler pieces that allow easy reconfiguration of what filament goes in where!

    1 vote
    1. first-must-burn
      Link Parent
      Neat! I bought one of these drybox kits to hold filament for my prusa one + mmu3 that I'm building right now. I want to try replacing the buffers on the mmu with these autorewinding spools. I got...

      Neat! I bought one of these drybox kits to hold filament for my prusa one + mmu3 that I'm building right now. I want to try replacing the buffers on the mmu with these autorewinding spools.

      I got a little overwhelmed having so many things be new at once, so my current planned order of operations is 1) build and use the Prusa One. 2) add the mmu with the stock buffers and spools on the counter 3) try to replace the buffers and spools with the dry box and the auto rewind spools.

      2 votes
    2. [7]
      skybrian
      Link Parent
      Do you live somewhere with high humidity? I'm in California, and I keep PETG in ziplock bags when not in use, but otherwise it's been pretty trouble-free. (On a Prusa Mk3s. One of these days maybe...

      Do you live somewhere with high humidity? I'm in California, and I keep PETG in ziplock bags when not in use, but otherwise it's been pretty trouble-free. (On a Prusa Mk3s. One of these days maybe I'll upgrade.)

      1 vote
      1. [4]
        first-must-burn
        Link Parent
        I have a mk3 that eventually got upgraded to a mk3s+, and after they put the arachne slicer algorithm in prusaslicer, I upgraded it with a Revo hot end to make nozzle swaps easier. The mk3 is...

        I have a mk3 that eventually got upgraded to a mk3s+, and after they put the arachne slicer algorithm in prusaslicer, I upgraded it with a Revo hot end to make nozzle swaps easier.

        The mk3 is still a solid machine, especially if you don't print much. But my MK4 is amazing, and so much easier and faster that I have pretty much mothballed the mk3 at this point.

        2 votes
        1. [3]
          skybrian
          Link Parent
          I might get the 3.5 upgrade since increased speed would be nice. And maybe that could be combined with a Revo, for trying different nozzles.

          I might get the 3.5 upgrade since increased speed would be nice. And maybe that could be combined with a Revo, for trying different nozzles.

          1 vote
          1. [2]
            first-must-burn
            Link Parent
            The revo hot end upgrade was a great quality of life improvement. Every time I tried replacing my nozzle on the old v6 hot end, I'd end up with ooze out of the top of the heater block. Couple of...

            The revo hot end upgrade was a great quality of life improvement. Every time I tried replacing my nozzle on the old v6 hot end, I'd end up with ooze out of the top of the heater block. Couple of times I had to replace the whole hot end. With the revo nozzles, I was able to easily swap them.

            I used the 0.25mm nozzle to print business cards (~6 0.1mm layers to get three colors and reasonably decent resolution. A moderate amount of work to do the manual color changes, but they were very eye catching at the professional events I took them to.

            I mostly print everything in 0.6mm these days, but for my Catan upgrade set, going down to 0.4 for the number tokens made a big difference.

            2 votes
            1. skybrian
              Link Parent
              Yeah, I have never replaced the nozzle because it looks like a hassle. I bought a new nozzle once, but never got around to using it. (Also, it keeps beeping at me to upgrade the firmware and I...

              Yeah, I have never replaced the nozzle because it looks like a hassle. I bought a new nozzle once, but never got around to using it.

              (Also, it keeps beeping at me to upgrade the firmware and I didn't bother with that either.)

              1 vote
      2. [2]
        lynxy
        Link Parent
        Unfortunately, a combination of small apartment and many humidity creating devices, haha. Cooking can bump the humidity up pretty high, as can the dishwasher. Given the temperature in summer, we...

        Unfortunately, a combination of small apartment and many humidity creating devices, haha. Cooking can bump the humidity up pretty high, as can the dishwasher. Given the temperature in summer, we also have a lot of the windows open most of the time!

        1 vote
        1. skybrian
          Link Parent
          Ah. Mine is out in the garage. That wouldn't be an option in a lot of places due to temperature changes, but it works here.

          Ah. Mine is out in the garage. That wouldn't be an option in a lot of places due to temperature changes, but it works here.

  9. [2]
    xk3
    Link
    I wrote a small script that writes git commit messages for me instead of "wip". I don't use wip commits all the time but I will use them when it's mostly churn. It's a bad habit I know but no one...

    I wrote a small script that writes git commit messages for me instead of "wip". I don't use wip commits all the time but I will use them when it's mostly churn. It's a bad habit I know but no one is paying me so I don't bother with fixing myself.

    Git commit messages should primarily be a record of your state of mind and why you are making the change. But sometimes my state of mind is just "bleh" and that's not very useful to write down. Previously I was using gitupdate but the code is not doing much as you can see so I figured I could take a better stab at it: bin/wip_message.py

    I think the most interesting part is this:

    def track_moved(added_lines: list[str], removed_lines: list[str]):
        added = list(added_lines)
        removed = list(removed_lines)
        moved = []    
        for line in list(added_lines):
            if line in removed:
                added.remove(line)
                removed.remove(line)
                moved.append(line)
    
        return added, removed, moved
    

    Which is a pretty simple way to calculate moved lines. It's kind of pretty isn't it? I'm sure Git uses a slightly more complicated way to calculate moved lines but it is surprisingly easy to do it yourself!

    1 vote
    1. skybrian
      Link Parent
      I think pre-populating the commit prompt with a default message (that you then edit) would be a good use for an LLM, if there were a hassle-free way to hook it up. Looks like GitHub Copilot will...

      I think pre-populating the commit prompt with a default message (that you then edit) would be a good use for an LLM, if there were a hassle-free way to hook it up.

      Looks like GitHub Copilot will do it for VS Code. There are probably lots of other ways.

      1 vote
  10. [3]
    BuckWylde
    Link
    I recently attended an Intro to Modular Synths workshop. Now I've been messing around with VCV Rack, a piece of software that emulates a rack setup. It's been pretty interesting since I've been...

    I recently attended an Intro to Modular Synths workshop. Now I've been messing around with VCV Rack, a piece of software that emulates a rack setup. It's been pretty interesting since I've been figuring out which modules I prefer to make cool-sounding drones and noisy things.

    1 vote
    1. [2]
      0x29A
      Link Parent
      I haven't done the workshop, but a follower of Sarah Belle Reid perchance? I love her videos and have watched some stuff and installed VCV Rack myself to learn more modular things, and I love that...

      I haven't done the workshop, but a follower of Sarah Belle Reid perchance? I love her videos and have watched some stuff and installed VCV Rack myself to learn more modular things, and I love that she gives out free VCV setup files too as starting points. Made some cool stuff with it so far!

      1. BuckWylde
        Link Parent
        I did come across some of her stuff, but I'm still looking for my master ;)

        I did come across some of her stuff, but I'm still looking for my master ;)

        1 vote
  11. zestier
    Link
    I'm currently in the process of building a Stremio addon. I'm not certain if I'll ship it because I would definitely open source it and I'm not sure if I want such a thing associated with my...

    I'm currently in the process of building a Stremio addon. I'm not certain if I'll ship it because I would definitely open source it and I'm not sure if I want such a thing associated with my public profiles that employers and such may look at. The core thing that differentiates it from other addons I've found is that it natively supports private indexers (not that they're built in, just that it makes it possible to add URLs and keys and such to make the ones that match standard formats work). I also want a feature that I've not yet found in any of the other debriding addons: when playing a video also start the cache process for the most similar next episode. By "most similar" I mostly mean picking the closest resolution and closest name. Basically just the one I think is most likely to be clicked after the current video finishes.

    This project is a bit of a distraction from a larger project I am only in the early design phases for. This project is similar to cloudflare tunnels or localtunnel, but while satisfying a few goals that aren't fully achievable with them. I could expand on this if anyone cares why anyone would build yet another tunneling service, but its probably not that interesting for anyone familiar with these technologies.

    1 vote
  12. hobblyhoy
    Link
    Chipping away at my side project. I want to build the first high quality product and "actual" deals site. It tracks exclusively high quality products with real world averaged pricing over time to...

    Chipping away at my side project. I want to build the first high quality product and "actual" deals site. It tracks exclusively high quality products with real world averaged pricing over time to find when things are actually on sale instead of just discounts from artificial sale prices. At the current rate, it'll be finished.. never. I need to find some motivation or maybe try to find a dev partner. Not letting people down can be a strangely strong motivator for me.

    1 vote
  13. archevel
    Link
    I posted about it in ~games.tabletop, but I figured I'd elaborate here a bit. I wanted to try building a non-trivial piece of software using only prompting and for a while I've had an idea for a...

    I posted about it in ~games.tabletop, but I figured I'd elaborate here a bit. I wanted to try building a non-trivial piece of software using only prompting and for a while I've had an idea for a VTT. So I started out using Google Code Assist as a plugin to VS Code. I've managed to prompt coax it into something that works ok. Part of the clunkiness in the current version is due to not having a server component at all (besides the hosting of the static webpage and scripts). It relies on WebRTC to connect the players. The GM sends out invites (url with base64 encoded "offer") and the player must then copy and send the response (an base64 encoded "answer") back to the GM. That must all happen out of band, e.g. via separat chat or email. Once the connection to the GM is established that person acts as a signaling server for all the players so all peers can establish connections without the whole invite dance. I might rework this whole thing at some point, but I want to build some other features first.

    It is a bit of a hassle to test it out on my own properly since I ideally need a whole group of players to connect and test it out. But before I do that I want to make sure that it can handle reestablishing a connection e.g. on page reload and I'm a bit unsure if that is possible to do without a new invite.

    I am both impressed with the Llama ability to produce code and a bit dismayed that for some simple operations can take quite a while to figure out what it should do. Smaller refactorings and shifting the code around is much faster if I do myself, larger requests can sometimes cause the agent to end up in a never ending loop. Sometimes the context isn't big enough to handle the output causing it to crash. So you often have to instruct it to first make a step by step plan, then start on step 1... then ask it to do step 2 and so on. All that said I don't think a non-web developer would be able to prompt it to do this properly. I have a big advantage from understanding the underlying technologies and can steer the LLM/agent to a solutions I want.

    The whole code base is up on GitHub under an AGPLv3 license. If you want to try it out the application is available at:
    https://vtt.lindqvist.dev

    Edit: Just wanted to mention my favourite feature so far; the distance based volume when players claim tokens. The audio for peers is adjusted based on the distance the other peers token is from my token. It is there to encourage more roleplay (and perhaps shouting hehe).

    1 vote
  14. aaronm04
    Link
    I'm writing a "Stupid Simple" Lisp in C: https://git.sr.ht/~aaronm04/asslisp Currently it's close to the stage where I can add in lambda and defun (tree-walking for now), and finish garbage...

    I'm writing a "Stupid Simple" Lisp in C: https://git.sr.ht/~aaronm04/asslisp

    Currently it's close to the stage where I can add in lambda and defun (tree-walking for now), and finish garbage collection.

    My goal was explicitly to have a fun project and I think it's met that goal a little too well. I find myself thinking about it too much...

    1 vote