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?

28 comments

  1. [2]
    bearpaw
    Link
    I wanted a place to journal wines and share with friends, so I made one: Chateau St. Émilion. You're the second to see it. My sister was the first. Personal logs are private to yourself and the...

    I wanted a place to journal wines and share with friends, so I made one: Chateau St. Émilion.

    You're the second to see it. My sister was the first.

    Personal logs are private to yourself and the groups you share them with. Guest reviews and articles are public. The web site is for fun -- don't take it too seriously, but if you'd like to contribute a guest review or article, let me know.

    (Yes, I know the name is pretentious. Also, I'm a programmer, not a designer, so please cut a little slack.)

    7 votes
    1. countchocula
      Link Parent
      Nice, i just might! Are sparkling wines welcome? Ive had two sparkling wine summers with some amazing BC wines

      Nice, i just might! Are sparkling wines welcome? Ive had two sparkling wine summers with some amazing BC wines

  2. [5]
    HiddenTig
    (edited )
    Link
    I'm attempting to monitize my side project (first time, wish me luck!). It's a daily work tracker I've always wished existed - offline, no data in the cloud (unless you want it), no account...

    I'm attempting to monitize my side project (first time, wish me luck!). It's a daily work tracker I've always wished existed - offline, no data in the cloud (unless you want it), no account required, day focused, automatic movement of tasks not completed, power-user friendly, and infinitely nestable/collapsible. I know a lot about software, a little bit about running a business, but nothing about the nitty gritty stuff it takes to actually launch a product.. so that's been fun figuring all that out. If you want to check it out:

    Edit : url redacted for future Googling privacy

    If anyone would like the "pro" features just message me here or DM and I'll send you a code to make it free (feedback much appreciated!)

    3 votes
    1. [4]
      Gazook89
      Link Parent
      did you use a library for the onboarding layer and the positioning of those cards? I thought maybe you used Anchor Positioning, but dev tools doesn't show that, so curious if it's library or you...

      did you use a library for the onboarding layer and the positioning of those cards? I thought maybe you used Anchor Positioning, but dev tools doesn't show that, so curious if it's library or you made it work yourself.

      1 vote
      1. [3]
        HiddenTig
        Link Parent
        I stole that one from the first ever job I ever worked :) No library - The x/y coordinates get calculated to place an appropriate sized div over whatever I'm highlighting and the screen dim around...

        I stole that one from the first ever job I ever worked :)

        No library - The x/y coordinates get calculated to place an appropriate sized div over whatever I'm highlighting and the screen dim around it is created by adding a massive dropshadow around it.

        Edit: just realized you were talking about the cards! Those are also just computed and fixed. We know the x/y bounds of the screen so can just push them around to the other side if they don't fit in the default position.

        2 votes
        1. [2]
          Gazook89
          Link Parent
          You should check out Anchor Positioning plus Popover APIs. All built into the browser these days

          You should check out Anchor Positioning plus Popover APIs. All built into the browser these days

          3 votes
  3. [7]
    benpocalypse
    Link
    Since I've been laid off, I finally have time to work on my static website generator called Markerator. It ingests markdown files, and images, and spits out a website that is pure HTML and CSS, no...

    Since I've been laid off, I finally have time to work on my static website generator called Markerator. It ingests markdown files, and images, and spits out a website that is pure HTML and CSS, no javascript. I recently added Open Graph support so that links appear correctly as cards when shared on social media, and am just about ready to push a big set of changes that add unit testing, as well as user-definable pagination for the News/Updates/Blog pages.

    My next steps are to document the CSS format so that people can add their own themes, as well as come up with some more default themes that ship with Markerator. Once that is done, I'm going to write some more documentation that walk users step-by-step through using it, as well as how to automate deployment using Github actions. That'll be the 1.0.0 release.

    I'm finally feeling inspired again. If you want to see what Markerator can produce, I use it for my personal website, Bengineering. Markerator probably isn't ready for primetime yet, but I'm finally getting there. Check it out if you're morbidly curious.

    3 votes
    1. [4]
      jmpavlec
      Link Parent
      Cool project! Will you also add mobile responsiveness? I checked out your site, didn't zoom/scale super well on my phone browser.

      Cool project!

      Will you also add mobile responsiveness? I checked out your site, didn't zoom/scale super well on my phone browser.

      2 votes
      1. [3]
        benpocalypse
        Link Parent
        I'm using Firefox on Android, and it appears to still fit the width of the screen and just wrap the text. No need to scroll around or pinch and zoom as far as my testing has shown. What...

        I'm using Firefox on Android, and it appears to still fit the width of the screen and just wrap the text. No need to scroll around or pinch and zoom as far as my testing has shown. What platform/browser are you using? And feel free to file a Github issue if you are still having issues. I've only recently come back to working on this after a long time away, so I'm hoping to keep refining and adding features at a more rapid pace.

        1. [2]
          jmpavlec
          Link Parent
          Chrome on Android. Looks a bit better now but the main logo text forces a scroll. The about page has two columns that look awkward with very skinny paragraphs (40-50% width?). I think there was...

          Chrome on Android. Looks a bit better now but the main logo text forces a scroll. The about page has two columns that look awkward with very skinny paragraphs (40-50% width?).

          I think there was one other page that had columns with a similar issue.

          1. benpocalypse
            Link Parent
            Ahh right you are. I've been making a bunch of updates, I'll look into this. Thanks for the quick reply!

            Ahh right you are. I've been making a bunch of updates, I'll look into this.

            Thanks for the quick reply!

            2 votes
    2. [2]
      xk3
      Link Parent
      I feel like classless CSS as much as possible might make a lot of sense here

      document the CSS format

      I feel like classless CSS as much as possible might make a lot of sense here

      1 vote
      1. benpocalypse
        Link Parent
        I am far from a web developer, but I'd never heard of classless CSS. I'll give it a look and see if it'd be a good fit.

        I am far from a web developer, but I'd never heard of classless CSS. I'll give it a look and see if it'd be a good fit.

  4. [5]
    Sunbutt23
    Link
    For work I’m tryna make a replicable Azeroth core deployment that uses llm backends for player bots so we can pull data from the eks cluster and the llm interactions.

    For work I’m tryna make a replicable Azeroth core deployment that uses llm backends for player bots so we can pull data from the eks cluster and the llm interactions.

    2 votes
    1. [4]
      pete_the_paper_boat
      Link Parent
      What do you hope to learn from the LLM interactions?

      What do you hope to learn from the LLM interactions?

      2 votes
      1. [3]
        Sunbutt23
        Link Parent
        Nothing at all. I work for a telemetry company. I hope to generate massive amounts of data on infra and llm usage that can populate some dashboards. Then I’ll tear it down and make it repeatable...

        Nothing at all. I work for a telemetry company. I hope to generate massive amounts of data on infra and llm usage that can populate some dashboards.

        Then I’ll tear it down and make it repeatable so we have the ability to populate those dashboards on demand.

        All the while I get to play WoW for work J

        4 votes
        1. [2]
          kej
          Link Parent
          You guys hiring? :)

          You guys hiring? :)

          1. Sunbutt23
            Link Parent
            Yes, but I don’t want to drop that level of identifying information publicly. I’ll DM you if you’re serious.

            Yes, but I don’t want to drop that level of identifying information publicly. I’ll DM you if you’re serious.

  5. archevel
    Link
    The state of building secure software is rife with pitfalls. It's super easy to forget some flag or config, unintentionally leave some door open or not act quickly enough on the latest CVEs. You...

    The state of building secure software is rife with pitfalls. It's super easy to forget some flag or config, unintentionally leave some door open or not act quickly enough on the latest CVEs. You can even do most things right, but due to the tech stack you build on having vulnerabilities attackers can exfiltrate data in unexpected ways or gain a foothold to execute arbitrary commands in your infrastructure.

    Over a few months I've been building a stack for secure software. It strictly limits what you can do and locks down the execution environment. At the core sits an orchestrator that listens for https connections. It sniffs the connection for the domain to pass the connection too and starts a VM in tens of milliseconds that's associated with that domain. The VM processes the request and sticks around for a few seconds (since requests are often "bursty") after which it gets stopped.

    The app VM is very limited; no file system and no network stack (the request/response is mediated over vsock). Each app runs on boot without any other binaries installed so you'd have to pull off a hypervisor escape from within a unikernel in order to gain the a permanent foothold. The VM boots with certificates it uses for the https-connection so the orchestrator only ever sees the encrypted traffic. I ended up needing to make calls to external services so for that I mediated the calls through the orchestrator. The orchestrator checks an app specific allow-list to see if that ip/host is explicitly trusted before setting up a TCP connection. So the app is prevented to talk to anyone which you haven't explicitly allowed.

    The above approach works great for stateless servers! But, most apps need a database. You could set this up via allowing connections to an external db, but I figured it would be nice with a similarly locked down approach to persiatence. So I ended up creating a small Linux application that starts on boot and launches postgres. This VM has access to an encrypted disk, but again no network. Instead it just runs on the same host as the VM app. The app-db communication is mediated over vsock (needed a small patch to postgres for this), which incidentally removes all network latency! I ended up setting up an encrypted export of the WAL and feed that asynchronously into a standby postgres on another node. That way data loss is unlikely, but I'm not sure if I should keep this part. The redundancy is nice, but it's quite a bit of code necessary to mediate the transfer and also a bunch to handle failovers etc... I might end up slimming the whole project down a bit.

    2 votes
  6. [5]
    edoceo
    Link
    Still working on my proof of human project, one part is easy, the key management is hard :( I got sidetracked by problem on my homelab network and then used some AI to slop out a DHCP/DNS and...

    Still working on my proof of human project, one part is easy, the key management is hard :(

    I got sidetracked by problem on my homelab network and then used some AI to slop out a DHCP/DNS and Zeroconf integrated service. Adding NTP next. It's actually been a bit better than I expected.

    1 vote
    1. [2]
      kru
      Link Parent
      Are you attempting something akin to what C2PA is doing?

      Are you attempting something akin to what C2PA is doing?

      1. edoceo
        Link Parent
        Similar goal, different approach

        Similar goal, different approach

    2. [2]
      HiddenTig
      Link Parent
      Like a captcha type thing? I might be out of the loop

      Like a captcha type thing? I might be out of the loop

      1. edoceo
        Link Parent
        No, captcha don't work anymore. You need an identity that can be verified but still anonymous.

        No, captcha don't work anymore. You need an identity that can be verified but still anonymous.

  7. text_garden
    Link
    I have a large collection of 320 kbps mp3 files that I sync to my phone every now and then with a bash script using ifuse and rsync. It's a 64 GB Iphone, and I'm running out of space. I've talked...

    I have a large collection of 320 kbps mp3 files that I sync to my phone every now and then with a bash script using ifuse and rsync. It's a 64 GB Iphone, and I'm running out of space. I've talked about the Opus encoder before, to encode mostly spoken material (Star Trek TNG episode audio at very low bitrates), but it achieves much better quality than mp3 at low bitrates for music as well, from what I read basically transparent at 128 kbps VBR for most purposes. I did some transcoding tests to see if there was any noticable loss at this bitrate and was again very impressed by its performance.

    So I made a script which goes through all my mp3 files and transcodes them using ffmpeg, placing the transcoded files in a separate, mirrored directory tree. The original files I have almost all embed album art as well (mostly thanks to Picard), which I couldn't get ffmpeg to transfer, but I could extract it with ffmpeg and then attach it to the new Opus files using a tool called opustags for dealing with opus metadata. I've not figured out how to get replaygain metadata transferred correctly or if ffmpeg deals with that automatically, so I guess that's one last piece of the puzzle.

    I get the nagging urge to source flac versions of my library, but in practice I don't think the re-encoding matters for my purposes. Listened through Swan Lake from these new encodings today and couldn't tell the difference from my mp3 sources.

    I am using VLC on the Iphone which has a very annoying issue with bluetooth headphones though. At the beginning of a new track it will cut out a second or so of audio. They're aware and it seems it'll be dealt with by the next version, but they don't release often. Moving those files over to foobar2000 now to see if that does better.

    I use a similar syncing script for photos. My ideal situation is something like back in the Palm days when all the documents you wanted to transfer between the PC and PDA were synchronized in one step.

    1 vote
  8. ocean-hai
    Link
    Forever working on my rsync script to make sure my laptop, desktop, and servers all have the most updated files. Typically works without an issue but before recently I have been manually upsyncing...

    Forever working on my rsync script to make sure my laptop, desktop, and servers all have the most updated files. Typically works without an issue but before recently I have been manually upsyncing and downsyncing.

  9. secret_online
    Link
    I've continued the backporting of one of my Minecraft mods from last week, though this has been slowed by me making a new mod for TiMaSoMo (which I'll talk about more in the update topics for...

    I've continued the backporting of one of my Minecraft mods from last week, though this has been slowed by me making a new mod for TiMaSoMo (which I'll talk about more in the update topics for that). I'll be spending the weekends working on that mod, and the week days working on this one.

    I finished the port to 1.21.11. It's all working just fine, but the biggest challenge is yet to come. I've had a taste of it so far, but 1.21.1 was released an entire year before 1.21.11 so there were a lot of changes to the game, and lots of them in rendering. I'm going to be saving those for last. Mostly my process is picking a file and then trying to get rid of the compiler errors one-by-one, and I don't know how many there are in total since IntelliJ isn't listing more than 101 problems in the problems tab.