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?

36 comments

  1. [6]
    EgoEimi
    Link
    Learning my way around Supabase. Helping a small queer business I like with their e-commerce platform. They have a fundamentally strong and well-reputed business. But they've cheaped out by hiring...
    1. Learning my way around Supabase.

    2. Helping a small queer business I like with their e-commerce platform.

    They have a fundamentally strong and well-reputed business.

    But they've cheaped out by hiring a string of bad oversea developers through Upwork who have absolutely mutilated the storefront codebase. I feel like the police investigators who had to open up John Wayne Gacy Jr.'s floorboards for the first time. It's (figuratively) criminal what these developers have done.

    Features have been badly implemented. Some features are outright broken. There are a bunch of dynamic content components that the developers didn't bother to understand: so they just commented them out, hardcoded their presentation, and called it a day. There's zero testing. Neither the owners nor the developers did any extensive browser testing: a few store page links are broken and lead to infinite redirect cycles.

    Looking at their analytics, their conversion rate dropped by a whopping third over the past year. Their revenue stayed the same only because their traffic increased — which I think thanks to their expanded product offering, attention from blogs, and glowing Google reviews of their physical store. But had they not degraded their e-commerce site and maintained the same conversion rate, they would have made an extra $400k~500k in revenue over the past 12 months.

    I'm still investigating the code crime scene and getting a fuller picture of the damage.

    I have:

    • Immediately set up a GitHub organization and Git repository for their business and storefront codebase so that all changes are version controlled, and any damaging changes can be easily reverted. This is a huge step up from them using the platform's in-browser code editor, which is version-less!
    • Set up a deployment pipeline with rudimentary validation.
    • Made some images responsive (such that they request multiple resolutions of an image from the CDN) because the index page was at least oh 10mb larger than necessary because of oversized images.

    I'm also in the process of educating the owners about their tech stack and how programming isn't a matter of dragging and dropping something into the codebase and voila, but rather it is like architecture (of buildings) where there are foundations, structure, systems, envelopes that all affect one another.

    21 votes
    1. [5]
      feanne
      Link Parent
      Wow that sounds like a lot!! Renovating an existing (mutilated) codebase is usually tougher than building from scratch, right? Good work, it sounds like you're off to a great start! I bet the...

      Wow that sounds like a lot!! Renovating an existing (mutilated) codebase is usually tougher than building from scratch, right?

      Good work, it sounds like you're off to a great start! I bet the client wishes they'd just hired you in the first place.

      5 votes
      1. [4]
        EgoEimi
        Link Parent
        Yeah. It is Kafkaesque and headache-inducing wading through the code to piece together the current logic (but really more like illogic). I feel like an archaeologist trying to delicately dig out...

        Wow that sounds like a lot!! Renovating an existing (mutilated) codebase is usually tougher than building from scratch, right?

        Yeah. It is Kafkaesque and headache-inducing wading through the code to piece together the current logic (but really more like illogic). I feel like an archaeologist trying to delicately dig out the enormous fossil of an adult tyrannosaurus rex with a teeny weeny brush. sweep sweep sweep

        Short-term plan is simply... triage. Fix the dozen issues that have the biggest impact on the customer experience, like the infinite redirect loops.

        Medium-term plan after triage is to set up an alternate storefront using the default storefront theme provided by BigCommerce with light customization and then A/B test it against the triaged mutilated storefront.

        Once a baseline that is not terrible has been established, then I can start building off that to really address specific user needs and intents.


        I ask from the Tildes dev community its thoughts and prayers. 🙏🏼

        6 votes
        1. [3]
          feanne
          Link Parent
          Sounds like a good plan! Wish you all the best with that :)

          Sounds like a good plan! Wish you all the best with that :)

          1 vote
          1. [2]
            EgoEimi
            Link Parent
            Thanks! I’m both daunted and thrilled by this challenge. The business itself is sensorily fascinating and rich, and it’s owned by an older gay couple who are very kind, lovely, and gentle, even if...

            Thanks! I’m both daunted and thrilled by this challenge. The business itself is sensorily fascinating and rich, and it’s owned by an older gay couple who are very kind, lovely, and gentle, even if technologically naive.

            I’m a corpo burnout, and I’m happier than I’ve ever been in my entire career.

            3 votes
            1. feanne
              Link Parent
              They sound wonderful and I'm glad you're in a happy place in your career now! 💕

              They sound wonderful and I'm glad you're in a happy place in your career now! 💕

              1 vote
  2. nocut12
    Link
    I've been writing some Clojure code related to some non-computer hobby stuff lately. It's been a lot of fun learning the language — I did a decent amount of scheme stuff in college and had been...

    I've been writing some Clojure code related to some non-computer hobby stuff lately. It's been a lot of fun learning the language — I did a decent amount of scheme stuff in college and had been missing lisp a bit. It's getting to the point where I'm thinking about trying to turn this into something potentially useful and put a UI on it, so I've been looking into option there.

    I've been fiddling with seesaw, which seems pretty workable even if it doesn't quite shake off the stink of swing. The project seems totally unmaintained though, and I'm not really sure if it's abandoned or just pretty much "finished." This one looks really cool, but it seems like it's not really ready to use yet and I'm not really interested in waiting around. I also saw this flutter one, but it seems like it could easily become a headache and it sounds like I'd have to lose the REPL, which would be a bummer.

    Does anyone have any thoughts on Clojure UI libraries for desktop apps?

    5 votes
  3. helloworld
    Link
    Gonna give another go to Axum and Rust for my long stuck project. Should be fun. There's also a test framework I'm looking to wrote for work in Java, but oh the priorities....

    Gonna give another go to Axum and Rust for my long stuck project. Should be fun.

    There's also a test framework I'm looking to wrote for work in Java, but oh the priorities....

    3 votes
  4. [2]
    Namarie
    Link
    I've been exploring and writing a small discord bot for a personal server - the goal is to funnel specific updates from a few key games and media sources into separated channels. It's been nice...

    I've been exploring and writing a small discord bot for a personal server - the goal is to funnel specific updates from a few key games and media sources into separated channels. It's been nice getting my hands into some guts, and it's going to run on an already standing independent server PC i have - but it's also been a bit annoying reading multiple sources of documentation on a feature to find that half of the them are out of date, and the other half will be out of date soon due to some permissions changes Discord is making.

    So far it looks like my best bet is to integrate https://github.com/synzen/MonitoRSS/tree/master and set up an RSS feed for it to read from that I curate. I'm open to hearing suggestions if anyone's done something similar before.

    3 votes
    1. erithaea
      Link Parent
      I always prefer fully automated solutions if possible. In your example, the bot would basically stop posting updates if you went on vacation or got sick and became unable to curate the RSS feed,...

      I always prefer fully automated solutions if possible. In your example, the bot would basically stop posting updates if you went on vacation or got sick and became unable to curate the RSS feed, no?

      Have you thought about finding some curated sources for the kind of news you're looking for and then (assuming it doesn't have its own RSS feed already) periodically (maybe once a day or once an hour) checking that source to see if new updates are available?

      1 vote
  5. shinigami
    Link
    I recently stripped an old laptop for parts. I'm hoping to re-use the LCD screen, and wire up the webcam. So far I'm still waiting on my controller board for the screen, and after I tried wiring...

    I recently stripped an old laptop for parts. I'm hoping to re-use the LCD screen, and wire up the webcam. So far I'm still waiting on my controller board for the screen, and after I tried wiring up the webcam, it didn't work :(

    Now for the fun part of troubleshooting.

    I'm also completely new at anything to do with wiring and circuit boards. I'm learning on the fly, and as frustrating as it is, I love it anyway.

    3 votes
  6. FriedGoldfish
    Link
    At work we're moving from on-prem to the cloud and it's been super interesting and educational so far because there's a couple of requirements that provide a challenge for the project

    At work we're moving from on-prem to the cloud and it's been super interesting and educational so far because there's a couple of requirements that provide a challenge for the project

    2 votes
  7. [3]
    gpl
    Link
    I have been familiarizing myself with keras_tuner in order to (attempt to) optimize the training of this neural net for my research. I have found that while tensorflow and keras are extremely...

    I have been familiarizing myself with keras_tuner in order to (attempt to) optimize the training of this neural net for my research. I have found that while tensorflow and keras are extremely powerful, there is an abundance of poorly written tutorials out there. So much so that it can be hard sometimes to find quality resources on the topic.

    2 votes
    1. [2]
      Ruinam
      Link Parent
      I used keras and keras tuner for my bachelor thesis and what I found for myself was a strategy to understand it better: Parallel to my real project I developed a small MLP that only added. It...

      I used keras and keras tuner for my bachelor thesis and what I found for myself was a strategy to understand it better:
      Parallel to my real project I developed a small MLP that only added. It created two random number arrays and tried to learn addition. This allowed me to test keras settings with a network that was trained in seconds and in which I knew what results I expected

      3 votes
      1. gpl
        Link Parent
        This is a really good tip actually, thank you. A lot of tutorials use the mnist data set as their example, which I get, but at the same time it ends up kind of obscuring the actual focus of the...

        This is a really good tip actually, thank you. A lot of tutorials use the mnist data set as their example, which I get, but at the same time it ends up kind of obscuring the actual focus of the tutorial which in this case is learning how to use the tuner. I like your idea a lot more.

  8. [4]
    hash
    Link
    Learning D3.js for school. Been a long while since I had to mess with Javascript and HTML/CSS.

    Learning D3.js for school. Been a long while since I had to mess with Javascript and HTML/CSS.

    2 votes
    1. [3]
      supported
      Link Parent
      D3 is a rabbit hole for sure

      D3 is a rabbit hole for sure

      2 votes
      1. [2]
        UP8
        Link Parent
        Personally I like it a lot better than other charting APIs. Most other charts APIs are more declarative and somehow I wind up spending forever looking up things in the documentation, not being...

        Personally I like it a lot better than other charting APIs. Most other charts APIs are more declarative and somehow I wind up spending forever looking up things in the documentation, not being happy with certain details in the results, or discovering “you can’t get there from here.”

        D3.js does require understanding how it works and doing more yourself, but I feel like I am always going in a straight line and I can always get it to look and work how I want.

        2 votes
        1. skybrian
          Link Parent
          I haven't gotten deep into D3, but I've been using Observable Plot which is a newer, higher-level charting library started by the same author. I assume it shares some design sensibilities. It's...

          I haven't gotten deep into D3, but I've been using Observable Plot which is a newer, higher-level charting library started by the same author. I assume it shares some design sensibilities. It's fairly limited for interaction compared to doing it yourself with D3, but good for creating a variety of pretty charts.

          1 vote
  9. UP8
    (edited )
    Link
    (1) Still working on my RSS reader, I added some facilities to keep track of submissions I've made to HN and Mastodon so I don't submit anything twice. (2) Photographs of flowers have been a big...

    (1) Still working on my RSS reader, I added some facilities to keep track of submissions I've made to HN and Mastodon so I don't submit anything twice.

    (2) Photographs of flowers have been a big thing for me this summer. For a while all my photography centered around printing cards, but I found I get good engagement with flower pictures on Mastodon so I've been publishing a lot of them. I am planning two make two collages of irregularly sized cards of flower pictures but I found my pictures weren't irregular enough. I upgraded my card printing system to give each card a unique id and also make it possible to print cards at a 90 degree angle to the way I usually print them which give me more sizes to work with, though maybe I just need to cut them down on two sides or use something other than 8.5x11 stock to work with. Here are some of the cards I am working with

    https://mastodon.social/@UP8/110820525254376607

    Related to that I also have a

    https://www.pcmag.com/reviews/kandao-qoocam-ego

    that I use to make red-cyan stereograms like

    HTTPS://GEN5.INFO/$/6-*XERJ0LO3S1GNQP/

    I have some software (written in Python/tkinter) that I use to process those photos, mostly I need to slide the left and right images relative to each other to put the "focus distance" at the plane of the paper, minimizing the disparity of the image makes the photo look more normal when you look at it without glasses and also makes the stereogram more likely to fuse properly.

    I've wanted to make collages of stereograms but because that camera doesn't have manual exposure I need to add an exposure adjustment slider to my "developer" program so I can make pictures taken at different angles match up.

    I also made a little studio in my A/V room upstairs so I can make flower stereograms, which I tried doing it outside usually the background was so far away from the foreground that the disparity in the images was too much to fuse properly. I'm just about to go iron the backdrop cloth I have because it is terribly wrinkled.

    I've been collecting more hardware for this project that I need to make useful, I got a used Hololens 1 that I want to use as a stereogram viewer and also test the idea that one of my collages

    https://mastodon.social/@UP8/110817619887893867

    could render something for an Apple Vision or the like if you scan the QR code, also I got a used Lytro Illium light field camera that I'm pretty sure can be used to make point clouds and stereograms since people have reverse-engineered the file format.

    2 votes
  10. unkz
    Link
    I’m working on automatically transcribing, adding descriptive chapters, and indexing video content using GPT, whisper, and llamaindex.

    I’m working on automatically transcribing, adding descriptive chapters, and indexing video content using GPT, whisper, and llamaindex.

    2 votes
  11. [3]
    text_garden
    Link
    I've been using Zig to develop a video game. Aside from typical 2D game stuff, the levels are described by a simple procedural programming language, so I've built a tokenizer, a parser, a compiler...

    I've been using Zig to develop a video game. Aside from typical 2D game stuff, the levels are described by a simple procedural programming language, so I've built a tokenizer, a parser, a compiler and a virtual machine interpreter. The sound effects are synthesized in real time, so I've implemented a soft FM synth with an in-game editor. Next up is the music system, which I intend to be generated by chance using templates describing probabilities for alternatives for musical events.

    I thoroughly recommend looking into Zig to anyone who might otherwise use C or C++ for such things. So many footguns of those are avoided without introducing the additional complexity of memory management and macros of Rust. In particular, the comptime concept is mindbogglingly powerful given how simple it is.

    2 votes
    1. [2]
      Apos
      Link Parent
      What are you building your game on / with? SDL?

      What are you building your game on / with? SDL?

      1 vote
      1. text_garden
        Link Parent
        Yep, SDL2. It's a kind of Robotron 2084 inspired twin stick shooter.

        Yep, SDL2. It's a kind of Robotron 2084 inspired twin stick shooter.

        2 votes
  12. akkartik
    Link
    I came up with a way to bake a code editor in with a native app in such a way that it pops up any time the app has an error. And it only takes ~100 lines of code to add it to any app! (Requires LÖVE.)

    I came up with a way to bake a code editor in with a native app in such a way that it pops up any time the app has an error. And it only takes ~100 lines of code to add it to any app! (Requires LÖVE.)

    1 vote
  13. xavdid
    Link
    My big project recently was the Universal Test Runner. It's goal is to be able to run the unit tests in any repo without any configuration. I've had a small version of it in my dotfiles for years,...

    My big project recently was the Universal Test Runner. It's goal is to be able to run the unit tests in any repo without any configuration.

    I've had a small version of it in my dotfiles for years, but I turned it into an actual project when I started doing a lot more Exercism this year. I even contributed a version of it to their CLI!

    I'm really pleased with how it turned out and use it all the time. The only thing it's missing now is much wider language/framework support, but I'm patient.

    I also wrote a blog post about the project and some more of the context, which also turned out very well: https://xavd.id/blog/post/run-every-test/

    1 vote
  14. m1k3
    Link
    I've been thinking about how to use the Redbean server as a way to create distributed web apps. Rather than using javascript, you can create dynamic apps with Lua and host the site on just about...

    I've been thinking about how to use the Redbean server as a way to create distributed web apps. Rather than using javascript, you can create dynamic apps with Lua and host the site on just about any hardware.

    1 vote
  15. paper_reactor
    Link
    I am still plugging away at the code I'm writing for my PhD in FORTRAN and C++. I've finished the neutron transport solver(s), need to merge them all, and I'm also almost done writing the kinetics...

    I am still plugging away at the code I'm writing for my PhD in FORTRAN and C++.

    I've finished the neutron transport solver(s), need to merge them all, and I'm also almost done writing the kinetics solver(s). Next will be adding the thermal-hydraulic and thermal expansion modules. Alongside that, I'm looking at improving an older project that involves control-rod modeling and also taking a look at cross-section generation for my project.

    When I can, I'm trying to learn Julia and improve my skills with scripting (bash and python).

    1 vote
  16. deadling
    Link
    This week I updated my Nextcloud instance to v27 and the Debian box it lives on to Bookworm. I installed Matrix to see about bridging my Google Chat into Nextcloud Talk (but the Nextcloud-Matrix...

    This week I updated my Nextcloud instance to v27 and the Debian box it lives on to Bookworm. I installed Matrix to see about bridging my Google Chat into Nextcloud Talk (but the Nextcloud-Matrix bridge isn't working for me at the moment). I reconfigured my Apache sites config files to be less monolithic so I can add subdomains easier and got mod_proxy working properly. I also set up self-hosted EtherCalc. Now I have to play catch-up on the new functionality that ntfy has added on my self-hosted instance of that in the past few releases. Lots of technical debt taken care of. :-D So much more documentation to write... :-/

    1 vote
  17. cqns
    Link
    I wouldn't consider myself to be a grizzled programming know-it-all, but I am a writer of sorts. That being said, I'm not your average reader - delighting in the likes of Danielewski's House of...

    I wouldn't consider myself to be a grizzled programming know-it-all, but I am a writer of sorts. That being said, I'm not your average reader - delighting in the likes of Danielewski's House of Leaves and Doug Dorst's Ship of Theseus. I don't read normal books, thusly, I don't write normal things, which then leads me to talking about cobbling a website together with my ancient HTML/CSS knowledge, alongside a bit of pidgin JS to serve as my portfolio.

    enp.neocities.org/centralnode

    1 vote
  18. Apos
    Link
    Fixed a silly / nasty bug in my shape batching library. https://github.com/Apostolique/Apos.Shapes Had a case where my index buffer wasn't filled correctly when the batch needed to be resized. It...

    Fixed a silly / nasty bug in my shape batching library. https://github.com/Apostolique/Apos.Shapes Had a case where my index buffer wasn't filled correctly when the batch needed to be resized. It made some of the shapes not appear in a way that looked random.

    Also finally took the time to rehost / recode my personally site. https://jeandavidmoisan.com/ Now to write some new articles... :D It's now made using https://www.11ty.dev/ which is pretty awesome for making static sites. I'm doing the styles using Tailwind CSS. I wrote my own color scheme for the code highlighting.

    1 vote
  19. Aurimus
    Link
    I’ve been exploring ncurses and a cmake environment - I want to take a short break from my goodreads replacement to try my hand at building a TUI text editor in c++ On that topic… has anyone tried...

    I’ve been exploring ncurses and a cmake environment - I want to take a short break from my goodreads replacement to try my hand at building a TUI text editor in c++

    On that topic… has anyone tried Imtui at all? Or otherwise got any recommendations or experience with c++ ncurses wrappers? There seems to be a bunch but I don’t know enough on how to speak for the quality of any of them

    1 vote
  20. [4]
    zoroa
    Link
    COVID removed my need for my laptop, so it's basically been sitting in a corner for the past few years as a server. This week, I finally found a use for my old laptop and have been trying to...

    COVID removed my need for my laptop, so it's basically been sitting in a corner for the past few years as a server.

    This week, I finally found a use for my old laptop and have been trying to figure out cost-effective (read free) ways to keep the scripts I had running. I remembered I had a Raspberry Pi - Model B (one of the original models from ~2012).

    I imaged an SD card, booted up the PI, and was immediated greeted with a dialog box that said: "Chromium is not supported on Raspberry Pi Model B". The code I want to run isn't particularly compute heavy, but it involves some browser automation.

    I've been trying to figure out if I could get an old version of chromium working, or figure out how I could use another browser.

    But this Raspberry PI has been slow as shit, and no browser I've tried has successfully loaded a non-trivial webpage in a reasonable amount of time.

    1 vote
    1. [2]
      PuddleOfKittens
      Link Parent
      If you're automating web stuff, why even use a browser? You could just go straight to curl, which will run on a toaster. Do you need JS stuff?

      If you're automating web stuff, why even use a browser? You could just go straight to curl, which will run on a toaster. Do you need JS stuff?

      1 vote
      1. zoroa
        Link Parent
        You hit the nail on the head.

        Do you need JS stuff?

        You hit the nail on the head.

        1 vote
    2. zoroa
      Link Parent
      Update: I gave up on getting a browser working. I came into this way too optimistic about the performance of a decade old computer that was pretty underpowered even at the time. I think that was...

      Update: I gave up on getting a browser working.

      I came into this way too optimistic about the performance of a decade old computer that was pretty underpowered even at the time. I think that was partially because I knew that they were used in education (I got mine from someone who needed it for school).

      Holy moly is the Pi slow:

      • I tried using midori, epiphany, Firefox, and Chromium. Chromium wouldn't launch, and neither of the others would load a webpage other than https://google.com in under 5 minutes.
      • I needed an installation of Python 3.11, which pyenv acquires by building from source. That build takes about 2-4 minutes on my very midrange laptop, but took 2 and a half hours on the Pi.
      • Installing script dependencies took over an hour, and I had to do it multiple times because a package would fail to install (I'm looking at you cryptography) and abort the entire process.
      • The scripts themselves run ~20x times slower?

      I'm unsure if I'm coming out of this with a newfound appreciation for the power of consumer hardware, or a really pessimal view of what you can do on an (old) Raspberry Pi.

      I'm still getting some use out of it though; excising all of the web browser related functionality left me with something the Pi could run. And I do have to admit, there's something really magical about being able to do some non-trivial stuff in such a tiny form factor.

      1 vote