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

27 comments

  1. [3]
    ingannilo
    Link
    I'm way behind everyone here, but I began my first semester of programming classes. First time back in school since 2016-ish when I was a PhD student studying number theory. I did small bits of...

    I'm way behind everyone here, but I began my first semester of programming classes. First time back in school since 2016-ish when I was a PhD student studying number theory.

    I did small bits of coding for school (Matlab, R, lots of Tex), but never used any of the common development languages. I aways wanted to learn, and this year I needed a means to access a student scholarship at the college where I teach to help pay for my kid's daycare.

    So far I've compiled my first few baby programs in C++ in visual studio, solved dozens of problems in zybooks labs, and started to grasp the syntax a bit. It's all moving very slowly, and I'm not sure the zybooks approach is the best for really learning, but I'm trying to save and compile code outside of the zybooks environment for anything that's more than a few lines. Hopeful that we get to some critical thinking stuff soon.

    7 votes
    1. carrotflowerr
      Link Parent
      I'm a Chemistry major, and what helped me cement programming knowledge is making things related to chemistry, like a stoichiometry solver or acidity calculator. Maybe try some number theory math...

      I'm a Chemistry major, and what helped me cement programming knowledge is making things related to chemistry, like a stoichiometry solver or acidity calculator. Maybe try some number theory math wizard stuff since you already know how they work?

      3 votes
    2. clayh
      Link Parent
      You can learn algorithms in any programming language and once you get the hang of programming, it’s often just a small amount of work to learn a new language. The reason so many people start with...

      You can learn algorithms in any programming language and once you get the hang of programming, it’s often just a small amount of work to learn a new language. The reason so many people start with Python is because you largely can forget all the complexities associated with pointers, memory management, and compiling (which are hard to grasp as a beginner) and focus on writing programs that do things. Then you can quite easily pivot back to C++ or Rust or whatever and know exactly what it is you are trying to do and focus on how it is done in the other language, layering on the more complex topics. If you feel things are slow going (and learning to program in any language is hard), maybe try to get up to speed in a less complex language/environment? And remember, no matter the language, all you are doing is managing and manipulating data. It’s all about structures for storing, changing, and moving data.

      1 vote
  2. skybrian
    Link
    I should be writing documentation for repeatTest but instead I’m improving it in minor ways. I published a release tweaking some API’s and dividing the package up into entrypoints because it...

    I should be writing documentation for repeatTest but instead I’m improving it in minor ways. I published a release tweaking some API’s and dividing the package up into entrypoints because it seemed like the thing to do for a JSR package. Better to do the breaking API changes now, I suppose, since I don’t have any users yet.

    4 votes
  3. [2]
    mobusta
    Link
    Currently we're deploying k3s at work. Right now I'm setting up my dev cluster - 1 control-plane, 3 worker nodes, 2 storage nodes for longhorn. I'm using kube-vip + traefik for lb and reverse...

    Currently we're deploying k3s at work. Right now I'm setting up my dev cluster - 1 control-plane, 3 worker nodes, 2 storage nodes for longhorn.

    I'm using kube-vip + traefik for lb and reverse proxy. I had longhorn deployed but this was using the default root disk on the storage nodes so I'm re-configuring them to use a dedicated disk on each system for storage.

    A lot of the work I'm doing is proof of concept / eval to show my team so we can do planning for what production will be like. Namely how we need to change our deployment pipeline since we want to use argocd + rollouts (with analysis in the future)

    I still have spare nodes available so I might do a Talos deployment using metallb and nginx since I've seen people have opinions on k3s for production use. Thankfully we're a small team with a small user base internally for our applications so I don't think there's a wrong answer to this as before, we used docker swarm and it was fine.

    4 votes
    1. first-must-burn
      Link Parent
      I wanted to do a project using Kubernetes, so I set up both local dev environment and remote deployment for a full stack app (vuejs+go+postgres) for my quote website. I was really happy using k3d...

      I wanted to do a project using Kubernetes, so I set up both local dev environment and remote deployment for a full stack app (vuejs+go+postgres) for my quote website.

      I was really happy using k3d to create local environments, and was able to set up a terraform to create a k3s (single control plane, unreliable) on a Hetzner instance that runs about $8/mo. It's way overkill for a single app, but I have it on my to do list to factor the remote environment stuff out of the app repo so I can make it a general purpose cluster and deploy other containers on it as well.

      1 vote
  4. carrotflowerr
    Link
    Yesterday I procrastinated on homework so badly that I made an entire pomodoro timer (trust me bro, it'll help with productivity)

    Yesterday I procrastinated on homework so badly that I made an entire pomodoro timer (trust me bro, it'll help with productivity)

    4 votes
  5. [10]
    elight
    Link
    Been trying to set up an LLM on my 10900K 3090 24GB VRAM. Keep running into issues getting PyTorch to compile against the CUDA libraries. Keeps pulling down the CPU version. Using conda. pip was...

    Been trying to set up an LLM on my 10900K 3090 24GB VRAM. Keep running into issues getting PyTorch to compile against the CUDA libraries. Keeps pulling down the CPU version.

    Using conda. pip was making me crazy.

    3 votes
    1. [6]
      brogeroni
      Link Parent
      Interesting, what os? I hate python package management as much as the next person, and Cuda makes it 10x worse, but just for setting up an llm locally I've had a very smooth time using just pip.

      Interesting, what os?

      I hate python package management as much as the next person, and Cuda makes it 10x worse, but just for setting up an llm locally I've had a very smooth time using just pip.

      2 votes
      1. [5]
        elight
        Link Parent
        Windows 11 because that's where my 3090 is. Also not enjoying Python package management at the moment.

        Windows 11 because that's where my 3090 is.

        Also not enjoying Python package management at the moment.

        2 votes
        1. carrotflowerr
          Link Parent
          Using pip feels like being a blind dogwalker

          Using pip feels like being a blind dogwalker

          3 votes
        2. brogeroni
          Link Parent
          Have you tried using a compiled kobold cpp? I personally use this on Linux, but I'm pretty sure it has even better support on windows lol. https://github.com/LostRuins/koboldcpp

          Have you tried using a compiled kobold cpp?

          I personally use this on Linux, but I'm pretty sure it has even better support on windows lol.

          https://github.com/LostRuins/koboldcpp

          1 vote
        3. [2]
          ewintr
          Link Parent
          Another option: Ollama has a Windows version. On Linux it works really well, not sure how good the Windows version is. I find it very convenient for running the LLM itself, but it only provides an...

          Another option: Ollama has a Windows version. On Linux it works really well, not sure how good the Windows version is.

          I find it very convenient for running the LLM itself, but it only provides an API you can talk to. You could pair it with ollama-webui if you want a ChatGPT style interface.

          1 vote
          1. creesch
            Link Parent
            The windows version works quite well from my experience. It's what prompted me to suggest it as well elsewhere in the thread. Even before the windows specific version was available people managed...

            The windows version works quite well from my experience. It's what prompted me to suggest it as well elsewhere in the thread.

            Even before the windows specific version was available people managed to run it using WSL.

            3 votes
    2. adutchman
      Link Parent
      Try Mamba. It is a reimplementation of Conda in C++ which makes it leages faster. Never gave me issues and improved my user experience exponentially. Mamba recommends you install it via Miniforge:...

      Try Mamba. It is a reimplementation of Conda in C++ which makes it leages faster. Never gave me issues and improved my user experience exponentially. Mamba recommends you install it via Miniforge: https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html

      2 votes
    3. [2]
      creesch
      Link Parent
      In what context are you trying to run a local LLM? Depending on your use case there are much easier options out there to just get the model running that even come with APIs to then connect to the...

      In what context are you trying to run a local LLM? Depending on your use case there are much easier options out there to just get the model running that even come with APIs to then connect to the models.

      Ollama is probably one of the well known ones which comes with an api and even an experimental openAI compatible api.

      Feel free to ignore if your use case includes more than just running models locally ;)

      2 votes
      1. elight
        Link Parent
        Partly to experiment, partly to move toward replacing Alexa with a consistent voice assistant plugged into Home Assistant. Finally, because I very very very much want to see Apple Knowledge...

        Partly to experiment, partly to move toward replacing Alexa with a consistent voice assistant plugged into Home Assistant. Finally, because I very very very much want to see Apple Knowledge Navigator realized.

        1 vote
  6. [3]
    carrotflowerr
    Link
    I'm trying to simulate a stock market based on historical data so I can experiment with a trading algorithm.

    I'm trying to simulate a stock market based on historical data so I can experiment with a trading algorithm.

    3 votes
    1. [2]
      kej
      Link Parent
      What source(s) are you using for historical data, out of curiosity?

      What source(s) are you using for historical data, out of curiosity?

      1 vote
      1. carrotflowerr
        Link Parent
        Yahoo finance. I was expecting to have to web scrape but they just gave me a CSV.

        Yahoo finance. I was expecting to have to web scrape but they just gave me a CSV.

        2 votes
  7. Carrow
    Link
    I've been playing around with game dev engines. I don't really intend to output anything worth sharing, but I've had two friends express interest in making a game and have well-formed unique...

    I've been playing around with game dev engines. I don't really intend to output anything worth sharing, but I've had two friends express interest in making a game and have well-formed unique concepts so I thought perhaps I'll pop out a prototype. One friend has talked about their idea for a long time so I thought a prototype might motivate them to make it happen.

    They're mainly narrative driven games, so at first I looked at renpy and narrat. One of the projects involved some RPG lite systems, so narrat seemed more appropriate. I didn't like the js approach though and the documentation was lacking. It seems directed at folks new to coding, but also accidentally assumes a basis as an experienced web dev.

    So I went over to the newest darling, Godot. It's much more complex, feels a bit like using a factory robot arm to crack open a beer, but I'd prefer to learn something more generalizable. I'm quite pleased with the documentation so far and the demos available out of the box cover a wide range of topics. I've mostly just explored the systems and learning the relationship between scenes and nodes. I did get an extremely rudimentary dialogue system set up that pulls a script from a file, now I'm working on keying the lines to indicate "stage directions" like swapping sprites for different speakers to start. The goal would be to make it so my friend could essentially write the scenes similar to a play script as the dialogue input files.

    3 votes
  8. AuthenticAccount
    (edited )
    Link
    Battling my way through a data quality project. Have a script that hits an API to run some jobs caching data processed by code under test to a table to compare with baseline data. Some new stuff...

    Battling my way through a data quality project.

    Have a script that hits an API to run some jobs caching fresh data processed by code under test to a table to compare with baseline data.

    Some new stuff for me: asyncio, aiohttp, Datacompy to compare dataframes, and a touch of Bazel because I'm working in a big ass monorepo now.

    2 votes
  9. [2]
    saturnV
    Link
    I'm trying to learn haskell, I've gone through learn you a haskell, going to do some project euler, then maybe advent of code if I don't think of anything else to do in it. If anybody has...

    I'm trying to learn haskell, I've gone through learn you a haskell, going to do some project euler, then maybe advent of code if I don't think of anything else to do in it. If anybody has recommendations on what sort of things they try and build when beginning to learn a new language I'd be interested, also for any other haskell (or functional in general I guess) learning resources

    2 votes
    1. carrotflowerr
      Link Parent
      How did you like learn you a haskell? I've tried different ways of learning the language but nothing ever clicked.

      How did you like learn you a haskell? I've tried different ways of learning the language but nothing ever clicked.

  10. FireTime
    Link
    I created a web portal request system that extends my YTmusic time shifting application I shared here previously. The program lets users search youtube music and request them PIC1 PIC2. The...

    I created a web portal request system that extends my YTmusic time shifting application I shared here previously.

    The program lets users search youtube music and request them PIC1 PIC2. The program then checks my library and any pending requests for duplicates and if not found it adds them to a work queue. When the tape dub server kicks off the worker it has these requests already on the work list and gathers the music albums for the requested tracks. I have this all linked to my plex library to build up a music collection again.

    I have the code and dockerfile hosted on my git lab here if anyone wants to mess around with it. Will require the tapebub server running as well to operate.

    First time using picocss and was verry happy with it. I've been looking for a basic light weight framework to replace bootstrap for small web programs. Just enough to get stuff on the screen looking 1/2 way decent on desktop and mobile wtihout bogging me down on learning the ins and outs of a frame work.

    2 votes
  11. xk3
    Link
    This week I added some timezone flags for my dateutil wrapper CLI program. It was a bit harder than I expected because my tests were failing when changing the system timezone. I tried using...

    This week I added some timezone flags for my dateutil wrapper CLI program. It was a bit harder than I expected because my tests were failing when changing the system timezone. I tried using freezegun but it wasn't covering all the system timezone callpoints. In the end I decided to only write tests for the explicit timezone parts and skip testing the localtime parts for now. But I also discovered the pytest-regressions plugin which made it easy to write a bunch of data regression tests without having to copy and paste failing values with correct ones over and over:

    @pytest.mark.parametrize("p", [["1970-01-01 00:00:01"], ["--from-unix", "1"]])
    @pytest.mark.parametrize("fz", [["-fz", "America/New_York"], ["-fz", "America/Chicago"]])
    @pytest.mark.parametrize("tz", [["-tz", "America/New_York"], ["-tz", "America/Chicago"]])
    @pytest.mark.parametrize("s", [[], ["-d"], ["-t"]])
    @pytest.mark.parametrize("f", [[], ["-TZ"]])
    def test_lb_timestamps_tz_utc(data_regression, p, fz, tz, s, f, capsys):
        lb(["timestamps"] + p + fz + tz + s + f)
        captured = capsys.readouterr().out.strip()
        data_regression.check(captured)
    

    The data_regression fixture will create a test output file that should be committed to the repo. It takes in a dict by default but luckily strings also work. You can use --force-regen as in pytest tests/text/test_timestamps.py --force-regen to replace the failing test data with the new output data, otherwise it will keep failing until you fix the code.

    1 vote
  12. ogre
    Link
    I work on a laboratory information management system (LIMS) for my job, which is just a case manager for patients & lab tests. The feature work has been pretty limited, I’ve mostly been doing bug...

    I work on a laboratory information management system (LIMS) for my job, which is just a case manager for patients & lab tests. The feature work has been pretty limited, I’ve mostly been doing bug fixes and performance improvements. To get a better understanding why it’s architected the way it is I’m implementing a basic version from scratch using the same framework, SpringBoot.

    My version feels a little too basic. It’s just a crud app without the secret sauce that makes commercial LIMS profitable, like their plug and play interfacing with lab machines. I don’t know the first thing about the communication between those instruments and the LIMS at my job, it would be nice to know the scale of the work that connects them.

    On the other hand I’ve been making another crud app in Go, not really anything more or less complex. Working on both at the same time highlights everything I dislike about Java. It feels juvenile to contribute to any lang vs lang discourse because I know every tool has its advantages, but I find Java and Spring to be cumbersome. These companies are pretty locked in with the wealth of Java knowledge their senior and staff engineers have, especially when scaling LIMS. I wonder what it would take to implement the secret sauce in Go and how the growing pains would be different.

    1 vote