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

24 comments

  1. [3]
    talesofweirdfl
    Link
    I am loving exploring the Inform7/TADS/Ink/Twine world of interactive fiction. Right now, I'm neck deep in Inform 7 and rediscovering so many amazing games from my youth. I know the first dozen+...

    I am loving exploring the Inform7/TADS/Ink/Twine world of interactive fiction. Right now, I'm neck deep in Inform 7 and rediscovering so many amazing games from my youth. I know the first dozen+ things I make will be rough, but I'm so excited to work on this in the evenings.

    Other than that, I've been playing with building a novel production workflow out of Vim/Git/Make/pandoc, etc.

    Still in the embryonic stages of that, but it's certainly exciting!

    7 votes
    1. [2]
      Comment deleted by author
      Link Parent
      1. talesofweirdfl
        Link Parent
        no idea how I missed this! So sorry. Fascinating! That's a huge amount of work you put in. I'm looking forward to digging through all this. Thank you!

        KeenWrite Architecture

        no idea how I missed this! So sorry. Fascinating! That's a huge amount of work you put in. I'm looking forward to digging through all this. Thank you!

        1 vote
    2. UP8
      Link Parent
      Years ago I was interested in the example of Inform 7 as a "controlled English" implementation and wondering if you could put a real production rules engine under it. We were speculating about...

      Years ago I was interested in the example of Inform 7 as a "controlled English" implementation and wondering if you could put a real production rules engine under it. We were speculating about "Inform 7 for air travel regulation" as an alternate route to what certain regulators were attempting at the time.

      Now that the source code for Inform 7 is out I ought to revisit the idea.

      2 votes
  2. [2]
    Aurimus
    Link
    I’ve been continuing work on my goodreads clone. This week, I’ve been writing a bunch of html and css to work on the mobile interface for the navbar and the user entry options - the current...

    I’ve been continuing work on my goodreads clone. This week, I’ve been writing a bunch of html and css to work on the mobile interface for the navbar and the user entry options - the current struggle I’ve just overcome is just styling out a <details>
    in a way I think doesn’t look awful, next up I need to work on the dialog forms for adding new entries, then I can work on the backend POST requests those forms will make

    5 votes
    1. UP8
      Link Parent
      I want to see a better Goodreads!

      I want to see a better Goodreads!

      2 votes
  3. chromakode
    Link
    I've been building an open source podcast editor that transcribes the source audio and lets you edit it as text. Last weekend, I finished implementing collaborative editing, a 6 week project! This...

    I've been building an open source podcast editor that transcribes the source audio and lets you edit it as text. Last weekend, I finished implementing collaborative editing, a 6 week project!

    This weekend I'm reworking the transcription queue to run on GPU PaaS platforms like runpod.io, so I can stop running the GPU workloads on my gaming machine 😁

    5 votes
  4. skybrian
    Link
    I'm working on a VS Code plugin for doing AI chats in a plain text or markdown file (and probably other text files; I'm particularly interested in Jupyter and other notebooks). The idea is that...

    I'm working on a VS Code plugin for doing AI chats in a plain text or markdown file (and probably other text files; I'm particularly interested in Jupyter and other notebooks). The idea is that the chat history will be easier to save, edit, and reuse than doing it in OpenAI's UI.

    This is built on Simon Willison's llm command-line tool, which can be customized via plugins to use whichever llm you like, including the ones you can run locally. I mostly plan on using it with GPT-4, though.

    I'm not sure if I'll publish it, though. I thought GitHub Copilot only did autocomplete, but it's more versatile than I thought. I need to play around with it more to see what it can do.

    3 votes
  5. Earthboom
    Link
    I recently finished a python program that monitors folders for new container files, logs them to a database, and then submits the file to the right third party service. Then the files are...

    I recently finished a python program that monitors folders for new container files, logs them to a database, and then submits the file to the right third party service. Then the files are monitored and when processed they get downloaded to pre defined categories that serve as folders.

    I did this before I realized pyloader existed and I could have just built on it.

    I did it to replace another python program that stopped being developed and had issues with various python components being the wrong version.

    I just made the same thing without integrating with pyloader and made it leaner while expanding on the features I needed and it's cli based.

    Now I'm working on an azure runbook to inject scripts into VMs but it's deceptively easy. The instructions are pretty easy to understand but the devil is in the fine print. Bypassing the need to have local storage for scripts makes it very difficult. Microsoft didn't intend for you to run scripts in any other way than a physical file which can't be stored in the vm sandbox that does the pushing.

    Next on my hitlist is a C++ application to search for, pull and organize wallpapers depending on sizes into folders via api calls to the wallpaper sites.

    3 votes
  6. deadling
    Link
    I just finished a suite of scripts that theoretically "beats a level" of the game Bitburner with one command. Now I just have to let it run for a while to see if it works and where to optimize it....

    I just finished a suite of scripts that theoretically "beats a level" of the game Bitburner with one command. Now I just have to let it run for a while to see if it works and where to optimize it. Then maybe I can stop procrastinating the public release of the tildes keyboard navigation userscript I adapted/made if there's any interest in it.

    3 votes
  7. [2]
    mym8marty
    Link
    Nothing interesting, but I’m just finishing up my first complete project! It’s a text compression CLI tool written in Go using the Huffman coding algorithm. I got a little ahead of myself (still...

    Nothing interesting, but I’m just finishing up my first complete project! It’s a text compression CLI tool written in Go using the Huffman coding algorithm. I got a little ahead of myself (still have to finish up parts of the documentation) but I published it and made it available on GitHub for people to install.

    I am a little worried it’s lacking in options right now but I’m thinking of adding an analytics flag (to tell you how much a file was compressed). Scratching my head for other ideas. Anyway, that’s the project :)

    3 votes
    1. UP8
      (edited )
      Link Parent
      When I was a kid I had a TRS-80 color computer and I was using my modem to log into a BBS that used...

      When I was a kid I had a TRS-80 color computer and I was using my modem to log into a BBS that used

      http://kc85.info/index.php/magazines-mainmenu/morrow-owners-review-mainmenu-143/113-the-wonderful-world-of-zcpr3.html

      which was an enhanced version of CP/M and they had a program called "LU" that could pack files together into an archive (like ZIP) and then they would run something called "SQ" (squeeze) that would huffman-pack the file. I had the Z80 assembly source listings for these tools and I would up rewriting them in BASIC which was the kind of thing that's a hassle to write in BASIC. Looking back I don't see why I didn't try translating it to 6809 assembly, which I knew at the time, but I guess I didn't feel comfortable doing so.

      1 vote
  8. [4]
    tauon
    Link
    The result of me using the OS and applications on my laptop with a fruit on it more and more exclusively through the Terminal, and significantly less with the mouse/trackpad than what’s probably...

    The result of me using the OS and applications on my laptop with a fruit on it more and more exclusively through the Terminal, and significantly less with the mouse/trackpad than what’s probably average, is that I’ve been getting into (bash/where needed POSIX sh, or to be precise more commonly zsh) scripting recently as part of setting up my dotfiles with everything relevant to my current command-line setup. Which also included determining what all standalone scripts are still relevant and making the necessary config files part of a “backup” (git repository that’s also stored and available online), and began with writing a setup/software installation script that pulls/bootstraps everything from there.

    So now I wonder: Anybody here got hands-on experience with NixOS? As far as I understood it at least, the “reproducibility” of an environment seemed very intriguing, not to say attractive, to me last that I checked it out.

    But there remain two unknowns: How much effort is setting this completely up to reproduce the OS, preferences and installations like I’d want it to be; and how user-friendly is using the OS/setup itself as a daily? Admittedly I haven’t looked into it all that much so far, I was planning to do that this weekend, given enough free time…

    3 votes
    1. [2]
      gf0
      Link Parent
      I am a huge NixOS fan, though I didn’t get whether you are thinking of Nix on Mac, or full NixOS on a Mac (intel-based?) If the former, you get the benefit of being able to gradually transform...

      I am a huge NixOS fan, though I didn’t get whether you are thinking of Nix on Mac, or full NixOS on a Mac (intel-based?)

      If the former, you get the benefit of being able to gradually transform your setup to it - having a few things be configured through it, but have the escape hatch of general OSX.

      3 votes
      1. codesplice
        Link Parent
        Yeah I was going to recommend using Nix + home-manager as a way to try out the Nix approach without having to go all-in right off the bat.

        Yeah I was going to recommend using Nix + home-manager as a way to try out the Nix approach without having to go all-in right off the bat.

        1 vote
    2. spit-evil-olive-tips
      Link Parent
      I've been using NixOS as a daily driver for 8ish years. I now run it everywhere, from desktops to laptops to personal servers, and even my internet router (since a router, at its heart, is just a...

      I've been using NixOS as a daily driver for 8ish years. I now run it everywhere, from desktops to laptops to personal servers, and even my internet router (since a router, at its heart, is just a Linux/BSD box with two or more NICs and some special networking configuration)

      there is definitely a learning curve, at first, while you figure out what you want your configs to be. once you get past that, there is a wonderful "plateau" where everything Just Works. installing onto a new PC is a dream because you can copy your configs over and it immediately "feels like home". this was the original killer feature that got me to switch from Arch to NixOS - the hassle of manually reconfiguring everything on a new Arch install was very annoying.

      instead of starting with your daily driver, I'd definitely recommend setting it up on a spare PC, or running a VM, and configuring whatever desktop environment or window manager you want to use. if you're switching from Apple, that may be a learning curve of its own, not entirely NixOS-specific - Linux distros for power users, such as NixOS/Arch/Gentoo, don't have a "default GUI" but instead give you multiple choices and expect you to pick your own.

      along with NixOS itself, you also have home-manager (which manages your dotfiles - NixOS as a rule won't touch anything under /home, instead it'll only modify system-wide config files under /etc). as well as "flakes" which are a newer and somewhat-experimental way to manage your configs in a Git repo. both of these are strictly optional, you can use "plain" NixOS to do almost anything* you'd want. that's what I would recommend to start off with - get comfortable with NixOS on its own, before adding in the extra complexity of home-manager and/or flakes.


      * the exception to this is stuff that the relevant program only looks for under /home, such as Firefox extensions, which you can configure declaratively through home-manager but not the NixOS system-wide options.

      3 votes
  9. dsh
    Link
    I am back at work for two weeks before taking another week off to watch the baby while our daycare provider is on vacation. That being said, a lot of things at work are just taking over our DevOps...

    I am back at work for two weeks before taking another week off to watch the baby while our daycare provider is on vacation. That being said, a lot of things at work are just taking over our DevOps and tuning a bunch of PHP-FPM/NGiNX containers (ECS on Fargate, if you're curious) for high Magento 2 volume. A lot of it has been load testing with K6 and changing up the Static Children parameters for FPM. Any advice folks have for me here would be hugely appreciated.

    I am also considering working on refactoring an HTTP service we need for 2024 to be up and robust in my free time.

    2 votes
  10. moistfeet
    Link
    I’ve been working on redoing my Webdev portfolio, I made my original one right after learning to use express and bootstrap, so its performance isn’t that great and doesn’t look that good either....

    I’ve been working on redoing my Webdev portfolio, I made my original one right after learning to use express and bootstrap, so its performance isn’t that great and doesn’t look that good either. Also, all my data was hard coded inside a json file, so I would need to modify the source code and redeploy every time I want to update it. The new one uses a cms instead, so it should be much more easier to update over time. And then it’s back to job apps. Sigh.

    2 votes
  11. polle
    Link
    Investigating, documenting and testing the enterprise-scale deployments of each defender for cloud plan in Azure. Including how to set up supporting identities, agents, policies and logs from the...

    Investigating, documenting and testing the enterprise-scale deployments of each defender for cloud plan in Azure. Including how to set up supporting identities, agents, policies and logs from the various resources to allow security analysts to properly respond to any alerts the defenders generate.

    It's all fun and games as long as you can use the one-size-fits-all autodeployments, but things get really obscure and not-documented as soon as you require more control over what is happening

    Oh, and putting all of this in reuseable Terraform modules for good measure of course!

    2 votes
  12. UP8
    Link
    (1) I hooked my RSS reader to my old autoposter for Hacker News so I can select articles that I like and queue them to be submitted. When I post links to Mastodon I try to always add an emoji at...

    (1) I hooked my RSS reader to my old autoposter for Hacker News so I can select articles that I like and queue them to be submitted. When I post links to Mastodon I try to always add an emoji at the front

    https://mastodon.social/@UP8

    I used to cut and paste those from emojipedia, but now I have a dropdown that shows all the emoji I've already used which saves me from dealing with that janky site. There is a lot more I can do on that system but I think the next big priority is adding a facility to import an arbitrary web page so it works as a bookmark manager. I need to also tag items based on the feed they came from but that involves rebuilding the ingestion system and it seems like a hassle.

    (2) I've spent about a decade thinking about the semantic web, things didn't really pay off until last year when I figured out a correct mapping between (most) XSL schemas and conforming documents to OWL schemas and instances accordingly. I've got to turn this into an open source product so I have some visible deliverable for that time in my life. I just brought my prototype out of mothballs and need to figure out where to go with it.

    (3) I've been talking about my RSS reader, my three-sided cards (see the media of my mastodon to see them at work) and other projects, I really need to get back into blogging. My plan is to set up Pelican, which is a Python-based static site generator. I've convinced myself that I can write Pelican plugins to make my blog exactly what I want, I really have to wire up a Jamstack setup for Pelican and just get it done.

    2 votes
  13. codesplice
    Link
    I spent two days this week writing my first from-scratch Go program. All it does is periodically pull a JSON file from a defined set of web servers, parse that, and serve up a webpage with a...

    I spent two days this week writing my first from-scratch Go program. All it does is periodically pull a JSON file from a defined set of web servers, parse that, and serve up a webpage with a nicely-formated table of the results - but it's exactly what I needed for that very specific purpose.

    It's quite basic, but I'm quite pleased with how it turned out, as well as all the things I learned along the way.

    2 votes
  14. [2]
    johansolo
    (edited )
    Link
    It's August, which means fantasy football season is spinning up, so I dredged up my salary cap league program that created an ideal/efficient team using an genetic algorithm, updated it for my...

    It's August, which means fantasy football season is spinning up, so I dredged up my salary cap league program that created an ideal/efficient team using an genetic algorithm, updated it for my league's newest rules, and added in k-means clustering algorithm to generate tiers/buckets of similar players.

    1 vote
    1. UP8
      Link Parent
      I've been wanting to implement this system https://www.amazon.com/Dr-Beat-Racetrack-William-Ziemba/dp/0688072216 (which works) on my HP Prime calculator and try winning at the track at Tioga...

      I've been wanting to implement this system

      https://www.amazon.com/Dr-Beat-Racetrack-William-Ziemba/dp/0688072216

      (which works) on my HP Prime calculator and try winning at the track at Tioga Downs. It's been an agenda item for two years but there are numerous concerns such as: (1) I'm not sure if I can punch the numbers from the tote board into the calculator fast enough (write an Android app that visually reads the Tote board instead?) and (2) I'm not sure if I want to spend enough weekends at the track to make the project really worthwhile.

      2 votes
  15. unkz
    (edited )
    Link
    I’ve been building a searchable video library of BJJ instructionals and YouTube videos with transcripts (mostly done using whisper with some manual corrections) and an index of techniques tied to...

    I’ve been building a searchable video library of BJJ instructionals and YouTube videos with transcripts (mostly done using whisper with some manual corrections) and an index of techniques tied to the curriculum at my gym. Unfortunately it is filled with copyrighted material so I can’t make it public, but it is going to be pretty useful for me as a lesson planning tool.

    1 vote
  16. Checkmate
    Link
    I've been wanting to start a side project, but I have absolutely zero ideas. I really like those online riddle games, so maybe something like that but as a mobile app? I did a side project in...

    I've been wanting to start a side project, but I have absolutely zero ideas. I really like those online riddle games, so maybe something like that but as a mobile app? I did a side project in React Native a while ago and wouldn't mind brushing up there.