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

15 comments

  1. [5]
    CrypticCuriosity629
    Link
    Right now a couple of things. So I work at a smallish print shop, and we use an estimating software that outputs PDFs for estimates to send to client, Job Confirmations that also get sent to the...

    Right now a couple of things.

    So I work at a smallish print shop, and we use an estimating software that outputs PDFs for estimates to send to client, Job Confirmations that also get sent to the client when an order is live, a Work Order which is for the internal production department and lists all the job details for production, then finally an invoice.

    Well my boss is a stickler for perfection, so everything has to be formatted perfectly. There's just a lot of fields that all have to match up with certain options.

    For instance, if a customer is picking up, the "ship to" address has to be "Will Call" and list our address, and "shipping method" has to be "Pick up - CALL", AND we have to have a "Shipping" line item called "Shipping & Handling | Customer Pick Up - No Charge."

    And if the customer wants a union bug, you have to actually select that so it shows up in the job functions for production AND the job description, even though I'm the one adding it.

    Anyways, I won't go into detail, just know that like there's a ton of little details that all need to match. Add to that that it's a common practice to duplicate similar jobs and change the details, there's a lot of things to check.

    I'm not knocking on that, however the first half of the year working here I was STRUGGLING. My boss was getting on my case for all these little mistakes, and no matter how hard I looked I was not finding them all.

    Anyways, I said fuck it and started writing a python document scanner specifically to parse these documents and create a multitude of checks.

    It checks all those "If this than that and that" kind of variables and alerts me when things don't add up so I can change it before taking it to my boss for review or sending to client.

    I also have all the details extracted as variables, so after every scan it gives me the option to create a job folder on our job server named perfectly from the document and including the correct subfolders.

    AND I integrated a Local LLM to scan some of the fuzzy human input data like job names and descriptions to check them for inaccuracies and suggest better more standardized name/descriptions.

    My mistakes went from several per job to zero for weeks now.

    For shits and giggles because I'm a fan of those ridiculous 90s movie hacker trope where software has little avatars, I named the Software "Mervin" because it mixes "Merlin" and "Kevin"(boss's name), and designed a little 32bit sprite of the likeness of my boss in a wizard outfit that reacts to job checks and pops up when it detects a PDF in the hotfolder. So when it's scanning the wizard pops up reading a book intently, then if the job passes the checks the sprite will transition to an animation of him waving a wand with fireworks. If there are warnings then he'll wave his wand and nothing will happen and he shakes it. And if the document fails, then it blows up in his face with cartoonish singed hair.

    Well, my boss caught wind of how little mistakes I've been making, asked me what changed, showed him the software, and now he's paying me to package it up into an installable tool that can be distributed to all the other project managers and managers.

    8 votes
    1. [4]
      CrypticCuriosity629
      Link Parent
      Outside of work, I'm hoping back into a sidelined project I made that batch scans videos for black frames and produces an interface to visually check them all, then exports the video as an .mkv...

      Outside of work, I'm hoping back into a sidelined project I made that batch scans videos for black frames and produces an interface to visually check them all, then exports the video as an .mkv with chapter marks at those black frames.

      It's for my ErsatzTV server so I can inject 90s commercials into those sections for my 90s Cable Re-creation project.

      And I'm trying to play around with AI Agents to help manage my emails at work better and see how far I can automate it.

      And I'm circling the drain on buying everything I need to make a MagicMirror2 so I can hopefully track life stuff easier.

      1 vote
      1. [3]
        first-must-burn
        Link Parent
        If you don't mi d saying, what platform or tool are you using for your AI agent, and how do you like it?

        If you don't mi d saying, what platform or tool are you using for your AI agent, and how do you like it?

        1. [2]
          CrypticCuriosity629
          (edited )
          Link Parent
          Admittedly I'm still playing around with different ones, but the main one I have my eye on is called TFrameX/Tesslate Studio. I like the node style layout, but I haven't gotten too far into...

          Admittedly I'm still playing around with different ones, but the main one I have my eye on is called TFrameX/Tesslate Studio.

          I like the node style layout, but I haven't gotten too far into actually building agents yet, so I can't exactly vouch for the software. But it sounds great at least:

          Core Concepts

          TFrameX is designed to orchestrate complex agent interactions using its powerful Flow system, which controls the sequence and logic of operations.

          Within a Flow, you define reusable collaboration structures called Patterns—such as SequentialPattern, RouterPattern, or DiscussionPattern. These patterns can be nested inside one another. For example, a ParallelPattern may contain several SequentialPatterns, enabling hierarchical task breakdowns.

          TFrameX also supports the agent-as-tool paradigm: LLMAgents can directly call other registered agents. This enables supervisor-worker relationships and task delegation between agents.

          Together, nested patterns and inter-agent calling allow for sophisticated designs—including recursive or cyclical flows. For example, a DiscussionPattern creates a controlled loop of interaction. However, to avoid infinite loops, flows must be carefully structured with clear termination conditions or managed by moderator agents.

          These entire Flows—along with their patterns and agent configurations—can be defined declaratively in YAML files. This makes it easy to version, share, and modify agent behaviors programmatically, giving you maximum flexibility in building adaptive, interconnected agent systems.

          I'm also looking into playing around with Observer AI, thinking maybe it can act as an organic autonomous task/project manager. Something that can see my screen, check tasks off as I finish them autonomously, or help me draft emails or job information based on just having the emails open. Maybe catch things I've missed. Kind of a long shot, but I'm curious about it.

          1 vote
          1. first-must-burn
            Link Parent
            That's really neat. I hope to hear about future updates, and I hope to have an update myself at some point :)

            That's really neat. I hope to hear about future updates, and I hope to have an update myself at some point :)

            1 vote
  2. [3]
    Durinthal
    Link
    I've been wanting to move away from Imgur as an image host for a while now and have something that's more in my control but hadn't settled on any particular service I could host myself like Picsur...

    I've been wanting to move away from Imgur as an image host for a while now and have something that's more in my control but hadn't settled on any particular service I could host myself like Picsur or Slink. A few days ago I came across copyparty and was impressed by it enough that I finally got around to spinning it up in a VPS. I might end up changing which software I use under the hood in the future but for now it's good enough for serving up single images which was my primary use case.

    3 votes
    1. [2]
      Gazook89
      Link Parent
      Oh this looks interesting. Are you just going to run it on your normal computer or on a little server or? I’d love to ditch Imgur and img.bb

      Oh this looks interesting. Are you just going to run it on your normal computer or on a little server or?

      I’d love to ditch Imgur and img.bb

      2 votes
      1. Durinthal
        (edited )
        Link Parent
        Got a small VPS through Hetzner, haven't used them before either so part of the process was getting an account set up. Aside from that it was fairly straightforward to use the docker image with...

        Got a small VPS through Hetzner, haven't used them before either so part of the process was getting an account set up. Aside from that it was fairly straightforward to use the docker image with Traefik as a reverse proxy to handle HTTPS better too since I already had experience with it, with resulting image links like this: https://i.durinthal.net/m/FcDfprzf2.jpeg — I randomized that one but I'm in full control of the path and file name which is something I've always wanted as well.

        I might make another instance for sharing files right from my home server to friends but that would be a separate project in the future.

        2 votes
  3. 0x29A
    Link
    Despite my earlier comments on these threads, I am now considering moving to a static site / manual blog rather than using bearblog.dev, for a number of reasons (though bearblog is great, don't...

    Despite my earlier comments on these threads, I am now considering moving to a static site / manual blog rather than using bearblog.dev, for a number of reasons (though bearblog is great, don't get me wrong):

    • I feel like having more control over the site. While bearblog is lightweight, it does still set a harmless/small cookie, something to do with dates or something, but it's enough that it triggers an acceptance request in text-based browsers like Lynx which I don't like
    • I want to push the efficiency even further
    • I realized making RSS feeds manually is easy
    • Bearblog offers CSV export and there are tools to convert these exports others have created
    • While this will create a bit more friction to making new posts, I think I'm ready to handle that
    • I think having a project like this, where I may end up doing my own scripting locally to help me create a static site (vs using pre-existing SSGs) will give me a nice project to pursue
    3 votes
  4. Toric
    Link
    Im making good progress on my roller blinds project, now called Crabroll. I have all the electronics, Ive written a (very basic) driver for the tmc2209, I have the esp32 connected over wifi and...

    Im making good progress on my roller blinds project, now called Crabroll. I have all the electronics, Ive written a (very basic) driver for the tmc2209, I have the esp32 connected over wifi and connecting to an mqtt broker, and Im working on proving the ability to send and receive messages. After that, I have to sit down and draw up a proper architecture diagram for the whole system, to figure out how everything fits together.

    2 votes
  5. [5]
    j0hn1215
    (edited )
    Link
    My current frivolous programming project has hit a snag due to a geometry problem. I'm writing some MATLAB code to determine at what date/times various sides of Egyptian pyramids were illuminated,...

    My current frivolous programming project has hit a snag due to a geometry problem.
    I'm writing some MATLAB code to determine at what date/times various sides of Egyptian pyramids were illuminated, and by how much. Once I had sun vectors for each day at 5 minute intervals (Using Cartes du Ciel, which has good ephemera back several thousand years), the bulk of the work was done. But the issue comes in the edge cases, where the sun is only partially above the horizon, or partially above the "horizon" of that particular pyramid face.

    I need a function to determine the proportion of the sun's area shining on a face. Trouble is, the problem seems very different depending on whether the circle segments overlap some, overlap entirely, or don't overlap, and I'm not sure how to create an area function that is just a function of h1, h2, and theta (See diagram).

    I feel like this should be straightforward, and I'm likely making it more complex than it needs to be. A numerical solution would be fine, too, but I have no idea how one would implement that in MATLAB.
    Crudely drawn diagram of the three cases to better illustrate the problem.

    A silly project, but it gives me something to ponder when rocking a baby.

    2 votes
    1. tobii
      (edited )
      Link Parent
      I find it very hard to understand what h1 h2 & theta are in relation to the pyramid faces and sunlight direction (or shape or shadow?), but in the case of the diagrams, "find how much of the...

      I find it very hard to understand what h1 h2 & theta are in relation to the pyramid faces and sunlight direction (or shape or shadow?), but in the case of the diagrams, "find how much of the circle surface area is green" in terms of h1 & h2 and theta looks fun:

      • assuming theta between 0° and 90°,
      • and h1 and h2 always between 0 and the diameter.

      Do you have a way to distinguish the 3 cases?

      EDIT:
      There is a funny 4th case where everything is obscured: https://i.imgur.com/TNhcHii.png
      I played around with it in desmos, but I couldn't find a single function to do every case, not even close. Here's a desmos link of you wanna try: https://www.desmos.com/calculator/yzmozwkqvm

      2 votes
    2. [2]
      zestier
      (edited )
      Link Parent
      To me it looks like it could be resolved by starting with a conversion from h1, h2, theta format to a triangle. From looking at the diagrams I can see that the addition of a line tangent to the...

      To me it looks like it could be resolved by starting with a conversion from h1, h2, theta format to a triangle. From looking at the diagrams I can see that the addition of a line tangent to the circle in middle of the theta arc can be combined with the lines associated with h1 and h2 to create a triangle that when intersected with the circle yields the white area. In practice I'd probably push it a bit out from the tangent just so I don't have to think about if that line intersects with the circle. I'm pretty sure the only degenerate case requires theta to be 0, which I assume to be impossible since the pyramid sides aren't laying on the ground, but that case wouldn't be hard to account for if it is actually possible.

      With that in mind I'd then just grab an off-the-shelf algorithm for intersecting the area of a triangle and a circle, get that working, and then if I was feeling particularly motivated I'd simplify by taking out the cases that aren't relevant to the narrower requirements of this problem than the generalized solution of making any triangle work against any circle. I've not done the math, but I have a suspicion that if h1 and h2 were represented as from the center of the circle rather than from the edge they'd appear in the reduced algorithm.

      1 vote
      1. tobii
        Link Parent
        I tried some napkin math and I definitely agree on making h1 & h2 start out from the center of the circle.

        I tried some napkin math and I definitely agree on making h1 & h2 start out from the center of the circle.

        1 vote
    3. tobii
      (edited )
      Link Parent
      Will you also take into account the angle of the sunlight relative to the face of the pyramid? If the face is perpendicular to the rays of the sun I'd say it gets more illuminated (it catches more...

      illuminated, and by how much

      Will you also take into account the angle of the sunlight relative to the face of the pyramid? If the face is perpendicular to the rays of the sun I'd say it gets more illuminated (it catches more sunlight).