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

21 comments

  1. [3]
    Jambo
    Link
    We're rebuilding our commission system and it is overwhelming to say the least. I've been wireframing views and documenting old logic and pseudocoding/documenting better and more efficient...

    We're rebuilding our commission system and it is overwhelming to say the least. I've been wireframing views and documenting old logic and pseudocoding/documenting better and more efficient solutions. Very difficult to keep everything in order and very difficult to get a gauge on progress. My boss asks how it's going and I just tell him "we're steadily moving forward" without any real idea of when we will be anywhere close to testing.

    Currently using our regular IT ticketing system for tagging old issues for remedying in the new system, Trello for comments/requests from users, and I wrote a relatively long (~40 page) technical document to help bridge the gap between those who manage brokerage and our development team (all 2 of us)

    My main concerns right now (aside from organization/project management on my behalf) is the people responsible for the original system have all left and some of the things they did and how they did them are baffling. It's clear there was a reason for some of this but I don't know what it was and when I ask brokerage I get crickets. Testing is going to be... interesting.

    Oh the joys of a 2 man dev team in a non-tech industry :) we're project management, QA, debug, architect, dba, and programmers all in one overextended bundle

    7 votes
    1. [2]
      nmn
      Link Parent
      Wow, a 40 page document. I hope that it ends up being useful, in my experience people don't even read these properly. Why do you have to rebuild btw? Do they higher ups even understand how time...

      Wow, a 40 page document. I hope that it ends up being useful, in my experience people don't even read these properly.

      Why do you have to rebuild btw? Do they higher ups even understand how time consuming it might end up being?

      4 votes
      1. Jambo
        (edited )
        Link Parent
        That has been my experience as well, but I wrote it mostly as a CYA measure, inevitably when this goes live someone will squawk about a missing or improperly implemented feature and I will smugly...

        That has been my experience as well, but I wrote it mostly as a CYA measure, inevitably when this goes live someone will squawk about a missing or improperly implemented feature and I will smugly point to the document before scheduling a feature change rather than a "bug fix" ;)

        We're rebuilding it mostly for migrating the check writing process (and subsequent accounting functions) to our accounting software, rather than the built-in system that is in place currently. In addition, there are several features that have been requested over the years (it's nearing 10 years old, written in asp.net, webforms) which amounted to enough that it was worth rebuilding from the ground up (new tables, codebase, the whole 9) which we will eventually migrate over to once it's ready.

        Upper management is pretty clueless but my direct boss is very competent and takes the brunt of the backlash we get when we end up slowing down on day to day ticket resolution but generally everyone is pretty ok about it, they realize there are only 2 of us and we are always snowed in but they opt not to hire so they get what they get :)

        4 votes
  2. [3]
    VoidSage
    Link
    On Monday I got a dell r7910 w/ 2x xeon 2699s and 384gb of ram for a homelab It's my first enterprise grade server so I'm having a lot of fun configuring stuff, setting up proxmox, and spinning up...

    On Monday I got a dell r7910 w/ 2x xeon 2699s and 384gb of ram for a homelab

    It's my first enterprise grade server so I'm having a lot of fun configuring stuff, setting up proxmox, and spinning up some vms

    6 votes
    1. [2]
      simplify
      Link Parent
      This is awesome, if you have the space and energy. I don't know what I'd even do with 384GB of RAM, but I love it. Proxmox is so fun and powerful. I run Promox on a SFF Lenovo M90q with 64GB of...

      This is awesome, if you have the space and energy. I don't know what I'd even do with 384GB of RAM, but I love it. Proxmox is so fun and powerful. I run Promox on a SFF Lenovo M90q with 64GB of RAM, and it's been great. Don't sleep on the TurnKey Linux images for your containers.

      3 votes
      1. VoidSage
        Link Parent
        I was totally surprised by the turnkey containers, had no idea they were there! Working on setting up the nextcloud and Jenkins one this week I doubt I'll end up using all of the power this server...

        I was totally surprised by the turnkey containers, had no idea they were there! Working on setting up the nextcloud and Jenkins one this week

        I doubt I'll end up using all of the power this server has, but in addition to home server stuff I have a sideproject that I want to have a dev environment running for with a couple databases and a Jenkins server

        2 votes
  3. [7]
    em-dash
    Link
    I'm going to rebuild my home server into a less power-hungry ARM machine soon, and I've been playing with options for versioned configuration. They are all really bad, especially for my decidedly...

    I'm going to rebuild my home server into a less power-hungry ARM machine soon, and I've been playing with options for versioned configuration. They are all really bad, especially for my decidedly non-enterprisey use case of "a single machine under my desk". Terraform's providers for such basic things as Docker containers or files are buggy and questionably maintained. Ansible is comically slow (and YAML is a bad language that people should stop using). I rejected Puppet, Chef, and Salt for various reasons that I mostly don't remember before even getting to the point of trying them.

    So I'm building my own thing, based on the core mechanic of "rsync these files to the remote host and then run commands". There's a directory of config files that get copied verbatim, and then a map of "if /etc/nginx/* changed, run docker restart nginx". It's shockingly nice to work with in comparison. Wouldn't scale to a fleet of machines, but I don't have one of those.

    6 votes
    1. [2]
      bo0tzz
      Link Parent
      It's quite a commitment and a rabbit hole to get into, but I run Kubernetes on my homelab which lets me do everything through gitops, and I'm never going back to anything else.

      It's quite a commitment and a rabbit hole to get into, but I run Kubernetes on my homelab which lets me do everything through gitops, and I'm never going back to anything else.

      5 votes
      1. em-dash
        Link Parent
        I think the difference here is that between "homelab" and "self hosting". The former implies desire, or at least willingness, to learn new stuff just for the sake of learning (y'know, the thing...

        I think the difference here is that between "homelab" and "self hosting". The former implies desire, or at least willingness, to learn new stuff just for the sake of learning (y'know, the thing people do in labs); the latter includes people like me who just want to run a single instance of a process with minimal additional fanciness. I've reached the "grumpy old lady who doesn't wanna learn any of your fancy new shit" stage of my career; the only reason I've containerized everything is because I ran into a few things that had poor support for running outside of a container and it seemed easier to standardize on that once I was partially using it.

        4 votes
    2. [2]
      vczf
      Link Parent
      Is nix out of the question? It is like incomprehensible voodoo to me sometimes, but it does work quite well once you have a good config.

      Is nix out of the question? It is like incomprehensible voodoo to me sometimes, but it does work quite well once you have a good config.

      4 votes
      1. em-dash
        Link Parent
        I did play with NixOS too. It doesn't seem to have a good way to handle configuration files for things that run in containers. It did occur to me that I may not actually need containers, since Nix...

        I did play with NixOS too. It doesn't seem to have a good way to handle configuration files for things that run in containers. It did occur to me that I may not actually need containers, since Nix solves similar problems without them, but--

        For things that run directly on the host, I really want to like it, but I can't really get into the "configure everything in Nix and it generates your real config from that" paradigm. Even if they've mapped every possible setting, I don't like having to translate everything from the manual of the thing I'm configuring to Nix, knowing that it's just going to get translated back.

        4 votes
    3. [2]
      xk3
      Link Parent
      It might be good to throw in a and nginx -t before restarting

      if /etc/nginx/* changed, run docker restart nginx

      It might be good to throw in a and nginx -t before restarting

      1 vote
  4. [3]
    scherlock
    Link
    I've been sketching out a 2D game where you build rube-goldberg like machines to get a ball to a goal. General idea is you have a tool box of things like ramps, toggle switches, springs, etc and...

    I've been sketching out a 2D game where you build rube-goldberg like machines to get a ball to a goal. General idea is you have a tool box of things like ramps, toggle switches, springs, etc and you place them to get a ball to hit a switch, etc

    5 votes
    1. [2]
      mantrid
      (edited )
      Link Parent
      You mean a game like The Incredible Machine?

      You mean a game like The Incredible Machine?

      2 votes
      1. scherlock
        Link Parent
        Yeah, something like that. I was thinking of having a multiplayer element so folks can work together on large machines.

        Yeah, something like that. I was thinking of having a multiplayer element so folks can work together on large machines.

        3 votes
  5. simplify
    Link
    I'm working on a script that can scrape Shopify sites and return in-stock items that you're looking for. It's pretty simple, but publicly Shopify sites will only return 250 items, though you can...

    I'm working on a script that can scrape Shopify sites and return in-stock items that you're looking for. It's pretty simple, but publicly Shopify sites will only return 250 items, though you can recursively paginate to get every product in the catalog, and from there you can obviously parse it down to whatever you want. It's a good way to be alerted to in-stock items you want, especially from an older store that might have thousands of items they no longer sell. Items have variants, too, so if you're looking for a specific size for example, you have to traverse items to get all the variants and filter. It's basically done, but I still need to tweak it for alerts and whatnot. It's more of a portfolio project for my GitHub, but it's a fun and useful data project for me.

    5 votes
  6. [3]
    bitwyze
    Link
    One of my hobbies is mixology/craft cocktails - I've got a pretty large home bar, 60+ bottles. I just recently hosted a party and did the bartending. I wasn't behind the bar all night, so anyone...

    One of my hobbies is mixology/craft cocktails - I've got a pretty large home bar, 60+ bottles. I just recently hosted a party and did the bartending. I wasn't behind the bar all night, so anyone who wanted a drink had to come find me and ask for one, which was not a great experience for them.

    After the event was over, I manually counted up all of the drinks I made, then calculated out all the ingredients I used (liquor, mixers, syrups, etc) to see how much extra I had on hand so as to plan better for the next party. I figured "there has to be a better way..."

    So, I'm working on building a web-based application that allows for people to sign in and place drink orders through the website. It solves both problems I have - people don't have to find me to get their drink orders in, and I don't have to be writing down orders and manually tabulate them at the end.

    I'm building the front-end in TypeScript using Angular, simply because that's what we use at work and I've touched our GUI code a little bit (I mostly work in C++ and Python). I decided to go with Rust for the back-end, mostly because I wanted an extra challenge, as I've never worked with the language before. My plan is to make a very small microservice design (one for ordering and one for managing available/highlighted drinks), which means databases - something else I haven't worked with before. I'm going with SQLite because I used it for maybe two days in college.

    It's mostly a resume boosting project for me, but I'm excited to see if I can actually get what's in my head onto the screen because it would be pretty useful.

    5 votes
    1. [2]
      tarehart
      Link Parent
      Sounds like a great project! Do you have a plan for how you'll host the website for your guests? E.g. will you host it locally and they need to be on your wifi to access it, or will it be on the...

      Sounds like a great project! Do you have a plan for how you'll host the website for your guests? E.g. will you host it locally and they need to be on your wifi to access it, or will it be on the public internet?

      2 votes
      1. bitwyze
        Link Parent
        Thanks! I do some light homelab work and I've already got SSL-enabled HomeAssistant and OctoPrint servers on my home network that are publicly available, so I'll probably just add this to my...

        Thanks! I do some light homelab work and I've already got SSL-enabled HomeAssistant and OctoPrint servers on my home network that are publicly available, so I'll probably just add this to my domain. I'll also probably take the ordering service offline when I'm not actively hosting a party, but keep the cocktail database available.

        3 votes
  7. tarehart
    Link
    I joined a new project at work, and as a learning exercise for myself I've decided to make an animation of how the key business logic works. Forces me to understand it fully, and it can become a...

    I joined a new project at work, and as a learning exercise for myself I've decided to make an animation of how the key business logic works. Forces me to understand it fully, and it can become a user education showpiece, and I get to tinker with cool JS libraries.

    I've been quite impressed with https://www.framer.com/motion/, simple for small stuff and tremendously flexible when you need it to be.

    This is one of the times I'm pleased to work while off the clock. I like being the guy people turn to for building cool visual stuff, so it's worth it to get on the radar.

    2 votes