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

37 comments

  1. [6]
    bo0tzz
    (edited )
    Link
    I spent the weekend and start of this week fully hyperfocused on something I've been slightly obsessed with for quite a while - trying to fully map (almost) all LOC records I can find in DNS....

    I spent the weekend and start of this week fully hyperfocused on something I've been slightly obsessed with for quite a while - trying to fully map (almost) all LOC records I can find in DNS. Being so obscure, there's few enough that that's feasible, and to my surprise it didn't even take that long - just 2-ish days of scanning.
    Edit: I should add a link: https://loc.place/

    10 votes
    1. [2]
      all_summer_beauty
      Link Parent
      Thank you for this, without it I never would have discovered bacongod.org just east of Pittsburgh.

      Thank you for this, without it I never would have discovered bacongod.org just east of Pittsburgh.

      4 votes
      1. bo0tzz
        (edited )
        Link Parent
        Ha, that's awesome. I've had a ton of fun poking around the map and discovering all the fascinating domains that are listed on it.

        Ha, that's awesome. I've had a ton of fun poking around the map and discovering all the fascinating domains that are listed on it.

        2 votes
    2. [2]
      Durinthal
      (edited )
      Link Parent
      I love maps and that's a neat one, interesting to see a lot of .tel domains. Edit: also fascinating to see the trail of internet2.edu subdomains across the US, I'd be curious to see the story...

      I love maps and that's a neat one, interesting to see a lot of .tel domains. Edit: also fascinating to see the trail of internet2.edu subdomains across the US, I'd be curious to see the story behind those.

      Any plans to update it over time? I have some LOC records to add for a few domains I own.

      2 votes
      1. bo0tzz
        Link Parent
        I probably will update it over time, once I can be bothered to figure out how exactly I want to approach that. The main point there is that ideally I'd have a way to receive new domains to scan as...

        I probably will update it over time, once I can be bothered to figure out how exactly I want to approach that. The main point there is that ideally I'd have a way to receive new domains to scan as well, instead of just the static (and slightly old) list that I've used now, but all the options I'm aware of for that are paid.

        2 votes
    3. 1338
      Link Parent
      It's like a museum of the internet from 20 years ago. This one is bizarre: http://pathwalker.org/ What's going on in Buffalo? https://i.imgur.com/nN0RoTY.png

      It's like a museum of the internet from 20 years ago.

      This one is bizarre: http://pathwalker.org/

      What's going on in Buffalo? https://i.imgur.com/nN0RoTY.png

      1 vote
  2. slade
    Link
    Nothing novel or interesting. I'm building a web based game engine. I'll probably never finish and could do more with existing frameworks, but it's the building I enjoy. I realized years ago that...

    Nothing novel or interesting. I'm building a web based game engine. I'll probably never finish and could do more with existing frameworks, but it's the building I enjoy.

    I realized years ago that every time I've learned new tech, I want to use it to build a video game. When I was younger I truly wanted to make a game, but along the way I realized that video game engines were really just my "todo app". A well understood problem that I could apply to whatever I was learning.

    Last time around was building one in TypeScript. This time the technology I'm exploring is AI coding (something I do a lot at work, but here I'm doing it myself and how I want).

    7 votes
  3. [10]
    devalexwhite
    Link
    I added a snow script to my personal blog. It was a ton of fun to just build something silly and simple. I especially love how the snow accumulates on the bottom of the screen. You can check it...

    I added a snow script to my personal blog. It was a ton of fun to just build something silly and simple. I especially love how the snow accumulates on the bottom of the screen. You can check it out on my blog by pressing the snow button at the top.

    5 votes
    1. [2]
      IsildursBane
      Link Parent
      Really cool. I ended up reading the personal software post, and it was a good short blog post and enjoyed it. Then, I waited around for a few minutes more to figure out if your snow stopped...

      Really cool. I ended up reading the personal software post, and it was a good short blog post and enjoyed it. Then, I waited around for a few minutes more to figure out if your snow stopped accumulating at a certain point, and found out it did. The last little parts of the snow animation filling was interesting, as it required snow to fall in just the right spot, reminiscent of the DVD logo hitting the corner of a screen. Does the larger snowflakes add more snow at the bottom compared to the smaller snowflakes?

      4 votes
      1. devalexwhite
        Link Parent
        Thanks a lot for stopping by! Exactly! The bottom is partitioned into buckets and half the size of the flake is added to the height of the closest bucket when the flake reaches the bottom. The...

        Thanks a lot for stopping by!

        Does the larger snowflakes add more snow at the bottom compared to the smaller snowflakes?

        Exactly! The bottom is partitioned into buckets and half the size of the flake is added to the height of the closest bucket when the flake reaches the bottom. The buckets stop growing once they've reached a max height (as you discovered).

        3 votes
    2. [2]
      zestier
      Link Parent
      While I suspect you aren't concerned with bugs in your snow effect I'll report one for you anyway. Maybe it'll one day be relevant in something you are more concerned about. When using a mobile...

      While I suspect you aren't concerned with bugs in your snow effect I'll report one for you anyway. Maybe it'll one day be relevant in something you are more concerned about.

      When using a mobile browser with bottom anchored address bar the effect stays at the location that is the address bar's top when the bar it is fully extended. The problem with this is that the address bar goes away when scrolling and then the effect is no longer anchored to any visible element and leaving a gap under the snow. I observed this is multiple browsers.

      3 votes
      1. devalexwhite
        Link Parent
        Thanks for pointing that out, should be fixed now! I was lazy originally and didn't add an event hander for browser resizing.

        Thanks for pointing that out, should be fixed now! I was lazy originally and didn't add an event hander for browser resizing.

        2 votes
    3. [4]
      Gazook89
      Link Parent
      I think the snowman should get buried over time, rather than rising to the top. But really, I just liked it. Good work

      I think the snowman should get buried over time, rather than rising to the top. But really, I just liked it. Good work

      3 votes
      1. [3]
        devalexwhite
        Link Parent
        Thank you! I actually went back and forth on the snowman getting buried or rising up, but I thought it was kind of a cool effect seeing him rise up. Logically though, totally agree with you!

        Thank you! I actually went back and forth on the snowman getting buried or rising up, but I thought it was kind of a cool effect seeing him rise up. Logically though, totally agree with you!

        1 vote
        1. [2]
          Gazook89
          Link Parent
          Maybe in the spring, have the snow melt and reveal things like shovels, mittens, rotted Halloween pumpkins….. THEN, flowers. Probably getting a little ahead of the cart here though.

          Maybe in the spring, have the snow melt and reveal things like shovels, mittens, rotted Halloween pumpkins….. THEN, flowers.

          Probably getting a little ahead of the cart here though.

          2 votes
          1. devalexwhite
            Link Parent
            Love the idea, especially rotted Halloween pumpkins (I may or may not have 1 slowly rotting on my patio...). I could see replacing snow particles with rain for spring.

            Love the idea, especially rotted Halloween pumpkins (I may or may not have 1 slowly rotting on my patio...). I could see replacing snow particles with rain for spring.

            1 vote
    4. jmpavlec
      (edited )
      Link Parent
      When scrolling to the bottom of the page with snow turned on, I waited for the snow to accumulate to see if the footer links would still work even though they were not visible... They still work...

      When scrolling to the bottom of the page with snow turned on, I waited for the snow to accumulate to see if the footer links would still work even though they were not visible... They still work 🙂.

      Cool effect! Would be fun to also toggle the intensity. "Activate Blizzard mode!"

      1 vote
  4. xk3
    Link
    I've been working on building a GUI for selective Syncthing downloading. I like the plugins system that Filestash provides so I've been building on top of that. The core functionality is mostly...

    I've been working on building a GUI for selective Syncthing downloading. I like the plugins system that Filestash provides so I've been building on top of that. The core functionality is mostly there but the UI needs some adjustment...

    The way to override default code via patches is really interesting but because it's a compiled program I think I'll just keep track of changes inside git commits instead.

    Here are some other interesting repos that I found but didn't end up using:

    WFM begun its life around 1994 as a Perl CGI script for CERN httpd server. It was developed to allow uploading logs, traces, dumps and other case data by support engineers and customers. Later rewritten in C language, when CGIC library and Apache httpd were released. Up until 2015, it has been a closed source commercial application used for lightweight document management and supported by a few customers. It has now been open sourced. In 2022 WFM has been rewritten in Go as a stand-alone application with a built-in web server for modern deployment scenarios.

    4 votes
  5. text_garden
    Link
    Worked some more on my Rogue port for gaming handhelds, but not much. I'm restructuring it all so that you can evaluate a single turn by passing a player command to a function. The function may...

    Worked some more on my Rogue port for gaming handhelds, but not much. I'm restructuring it all so that you can evaluate a single turn by passing a player command to a function. The function may return a prompt for more input, in which case you call it again with the original command but with the required input data as well. This means that all the keyboard input function calls and internal input-feedback loops using e.g. getchar need to be removed.

    Most of that is actually done now, and I have my own main loop with commands bound to buttons. There are a few y/n confirmation prompts in the game that I need to deal with, but other than that the input functions are gone from the code.

    I also removed quite a few commands. For example, in my version you can't rename items, nor can you quick-fight with f or F, The former because I think it's rather pointless given that the game auto-renames items as you discover what they do, and the latter because it's a convenience function that would be less convenient when such things would only be accessible through menus.

    I've also wrapped all the Curses terminal output functions so I can eventually implement my own subset of Curses tailored for the game. The device I'm targeting (R36S) has a 640x480 screen which should fit the entire game screen nicely, but it's rather small, so I'd like to implement zooming and scrolling.

    Most of the stuff I add on top of the game are written in Zig, and the main loop is written in Zig now as well. I've used Zig-C interop before, but this is a nice battle test for me. The ergonomics of that setup so far is great. I also replaced the original Makefile with the Zig build system.

    4 votes
  6. [4]
    bitwyze
    Link
    I finally finished migrating my proxmox instance on an old college laptop to a real server I built a few weeks ago. I've got 6TB of storage now, so my wife and I are fully migrating our Google...

    I finally finished migrating my proxmox instance on an old college laptop to a real server I built a few weeks ago. I've got 6TB of storage now, so my wife and I are fully migrating our Google Photos to Immich, Google Drive to Nextcloud, etc. I repurposed the laptop to be a proxmox backup server and it's doing weekly backups to my Backblaze bucket. We were spending something like $20/month for Google's storage between the two of us, now the storage is something like $0.002/day.

    Just nobody tell her how expensive the server was ;-) (she already knows, it came out of my fun money budget)

    4 votes
    1. mordae
      Link Parent
      Hahaha. In the same boat. Now only to finish migrating mail from an old VPS to the server. 😅 I wouldn't use Nextcloud voluntarily. Wife and me, we tend to use Hedgedoc for collaborative text and...

      Hahaha. In the same boat. Now only to finish migrating mail from an old VPS to the server. 😅

      I wouldn't use Nextcloud voluntarily. Wife and me, we tend to use Hedgedoc for collaborative text and we also use SyncThing to share files in general. Self-hosted Immich is awesome, though. We love it.

      1 vote
    2. [2]
      tauon
      Link Parent
      If you want to answer, 1) how do the backups work? and 2) do they resume automatically if you’re away from home and there’s a power loss event? I’ve been thinking about a migration from (in my...

      If you want to answer, 1) how do the backups work? and 2) do they resume automatically if you’re away from home and there’s a power loss event?

      I’ve been thinking about a migration from (in my case Apple) cloud to local storage (NAS) too, at least for the big media files, and that’s the one thing that’s been keeping me off*. Can you actually fully restore from the backup in a reasonable amount of time? If so, I’ll have to look into it too :-)

      *I could probably do another backup local-ish to the area by getting either of my parents to set up hardware at their place, but I think I’d prefer cloud, just haven’t properly looked into the options that exist there yet.

      1. bitwyze
        Link Parent
        The proxmox backup server is connected to backblaze through the PBS (beta) s3 interface. You plug in the API key from backblaze into PBS, pick your bucket, and you're done. (Optional but highly...

        The proxmox backup server is connected to backblaze through the PBS (beta) s3 interface. You plug in the API key from backblaze into PBS, pick your bucket, and you're done.

        (Optional but highly recommended - set up backup encryption in proxmox VE). Then, you add the PBS server as a "storage" location in proxmox VE and designate it as a backup storage. In proxmox VE, you can set up automatic backups on a schedule. I've got mine configured for every Sunday morning at 1am. Proxmox VE takes snapshots, encrypts them, and sends them over to PBS. PBS then takes those backups, performs de-duplication, and pushes the diffs to backblaze. That's my mental model, at least. Someone can correct me if I got any details wrong.

        I can post some screenshots later if you'd like.

        I don't know about the power loss. My guess is that it will not automatically resume. I've got my PCE, PBS, and all my networking equipment on a UPS :-)

        1 vote
  7. HiddenTig
    Link
    A little React/TS idle game crossed with a deck builder. It's nothing fancy, in fact it's purposely pretty simple and limited scope. I've been having issues staying motivated on all my side...

    A little React/TS idle game crossed with a deck builder. It's nothing fancy, in fact it's purposely pretty simple and limited scope. I've been having issues staying motivated on all my side projects so I decided I'd reset and just do one, fun thing for a bit. I'm also going to take this opportunity to try and learn an animation library built for React as I'm pretty weak in modern animations. I'm open to recommendations or advice in that regard.

    3 votes
  8. lynxy
    Link
    I have grabbed, before the prices jump too high, an Intel Pro B50 to replace the B580 in my server machine (which will likely end up in the VR machine in the lounge), so that I may play with...

    I have grabbed, before the prices jump too high, an Intel Pro B50 to replace the B580 in my server machine (which will likely end up in the VR machine in the lounge), so that I may play with SR-IOV in the Linux 6.18 kernel! I might finally justify a Proxmox installation, then- something I've been putting off because a lot of what runs on the server machine is GPU accelerated anyway, so near-everything would have ended up in the same virtual device, rendering any benefits moot.

    3 votes
  9. [2]
    h3x
    Link
    I'm just working my way through the Advent of Code (in Python). I'm having a great time doing it, and despite having done very minimal coding over the year, I'm finding it much more within my...

    I'm just working my way through the Advent of Code (in Python). I'm having a great time doing it, and despite having done very minimal coding over the year, I'm finding it much more within my grasp than previous years. So that's a good feeling :)

    3 votes
    1. Thomas_Stiles
      Link Parent
      Doing the same, but damn if some tasks don't take hours of thinking.

      Doing the same, but damn if some tasks don't take hours of thinking.

      2 votes
  10. [3]
    Trobador
    Link
    Some months ago, a game jam I attempted with a team didn't go very well ; I was the only one in the team who engaged with the project and nothing was done in the end. As of recently, I picked that...

    Some months ago, a game jam I attempted with a team didn't go very well ; I was the only one in the team who engaged with the project and nothing was done in the end.

    As of recently, I picked that project up by myself and it's going OK! I still struggle to work on it with regularity but I'm putting some work in and that's good. The concept is that of a horror management game where all of humanity uploaded their minds onto computers and you're left behind to maintain the computers in question.

    Just yesterday, I managed to get a working version of my dialogue system. You can talk to your 'denizens' through a chat! You can open a chat tab by right-clicking and then selecting 'Chat' in a custom context menu I'm fairly proud of, and you can then send them text messages through an input field. They recognize specific keywords through regex!

    I made it all very flexible, so that inheriting classes may recognize different keywords and produce completely different responses, with not just single text messages but multiple if desired, with delays and effects and potentially game events too. There's still tons to be done but I'm happy with what I made.

    3 votes
    1. [2]
      jmpavlec
      Link Parent
      Have you seen the show Pantheon? Related to your project. Pretty good watch as well.

      Have you seen the show Pantheon? Related to your project. Pretty good watch as well.

      1 vote
      1. Trobador
        Link Parent
        Oho, I haven't! I'm taking note, it sounds great, thank you. I wanted to make a post at some point asking for recommendations on fiction about mind upload, because even though I've been making...

        Oho, I haven't! I'm taking note, it sounds great, thank you. I wanted to make a post at some point asking for recommendations on fiction about mind upload, because even though I've been making this, I haven't actually read or watched much about it.

        It's one of those cases where I have enough of an understanding of a common trope from distant exposure to have ideas about it, but a lack of concrete knowledge on it. Yet jumping in on realizing the idea without thinking too much is better than waiting until my ADHD lets me finish all the cultural material I'd "need". Still, better if I get to it at some point!

        1 vote
  11. moocow1452
    Link
    Tried to install Bazzite on my old GPD Win 1 I dug out from a closet. It took, but big picture mode doesn’t have display active and I manually have to get to the desktop from terminal, plus Wi-Fi...

    Tried to install Bazzite on my old GPD Win 1 I dug out from a closet. It took, but big picture mode doesn’t have display active and I manually have to get to the desktop from terminal, plus Wi-Fi isn’t working. Additionally when I made a disk for Steam OS as a backup, I dd’d my own hard drive. There was nothing important on that computer, but still stung for a bit.

    2 votes
  12. [3]
    artvandelay
    Link
    I spent last week trying to get a reverse proxy going for my home media server to stream some movies while I was visiting my parents. Ran into issues getting my domain on Porkbun going so I risked...

    I spent last week trying to get a reverse proxy going for my home media server to stream some movies while I was visiting my parents. Ran into issues getting my domain on Porkbun going so I risked my life and just used my IP for a few days. I turned the proxy off after I got back and now I'm just trying to understand why my domain gave me issues. It's DNS records just never propagated. Thankfully that domain was only like $2 so not a big loss.

    2 votes
    1. [2]
      0x29A
      Link Parent
      That's interesting. I use Porkbun for all my domains and the propagation actually feels surprisingly fast to me. At least far faster than it ever has in the past, including a couple of recent...

      That's interesting. I use Porkbun for all my domains and the propagation actually feels surprisingly fast to me. At least far faster than it ever has in the past, including a couple of recent changes I made.

      4 votes
      1. artvandelay
        Link Parent
        Yeah I have a personal domain on Porkbun that updates super fast so was surprised to have issues. I suspect the issue stems from this domain being a de domain and I'm in the US lol

        Yeah I have a personal domain on Porkbun that updates super fast so was surprised to have issues. I suspect the issue stems from this domain being a de domain and I'm in the US lol

        3 votes
  13. mordae
    Link
    I found out SEPIC uses low-side switching. This kinda changes things, so now I want to include a programmable power supply in my pocket electronics lab tool. It will require active discharge...

    I found out SEPIC uses low-side switching. This kinda changes things, so now I want to include a programmable power supply in my pocket electronics lab tool.

    It will require active discharge circuit for when one sets it to a lower voltage, but I guess I'll just fry some resistors with a coil and a freewheeling diode and call it a day.

    Now double it up, but second time as Ćuk to obtain the negative rail.

    As for the source, I think USB-C with sensing on CC pins would allow for up to 15W. If I implement the PD protocol, even more. But I think I won't be using that beefy inductors, so 10W output tops. Still, that's not at all bad to get kids started.

    2 votes
  14. Apocalypto
    Link
    I'm working my way through Crafting Interpreters with the goal of adding some scripting elements to a game me and my friend want to make

    I'm working my way through Crafting Interpreters with the goal of adding some scripting elements to a game me and my friend want to make

    2 votes
  15. Diff
    Link
    My resume and WeasyPrint. Up til now my resume has been built in Illustrator and is difficult to reformat to tailor for different jobs, so I rebuilt it in HTML/CSS that is designed to print into a...

    My resume and WeasyPrint. Up til now my resume has been built in Illustrator and is difficult to reformat to tailor for different jobs, so I rebuilt it in HTML/CSS that is designed to print into a letter size PDF. Combined with Jujutsu (VCS), it's very easy to make multiple tailored versions as bookmarks (git branches), and update or add new revisions before the forks to make changes that will automatically update all the descendant commits if I need to add or tweak anything globally. And JJ is git-compatible, so I've still been able to push and pull from GitHub to work from multiple devices, even ones that don't have JJ installed.

    For that last step, I'm using Weasyprint. It's a Python program that has its own CSS and layout engine to render HTML into a PDF. Browsers just do too many shenanigans, and it's too difficult to restrain them from making changes to a document for printer-friendliness that I don't need. It's very nifty and hackable, but there's a few missing spots that I've been messing with, like missing support for relative positioned children of a flex/grid parent.