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

13 comments

  1. [3]
    lynxy
    Link
    Going to straight-up out myself as a furry, or at least "furry-adjacent", with this one, but my current project (in-between lamenting quite how many of the available units in my masters programme...

    Going to straight-up out myself as a furry, or at least "furry-adjacent", with this one, but my current project (in-between lamenting quite how many of the available units in my masters programme are AI-oriented this year) involves ongoing research on designing and building a protogen head. For anyone that has no idea what this is, think Daft Punk helmet. Translucent visor, LED matrix displays, except a bit more.. furry.

    The thing is- most everyone who builds a protogen head works off of one of the few existing "kits", which means that they mostly look the same. Even makers who build these things to sell generally use these same kits.

    And these kits have some.. questionable design decisions. The primary issue I wish to solve is one of comfort. Most of the popular models for head designs seem to revolve around a 3D printed "bucket", which is supposed to be filled with padding. This feels like both a waste of plastic, but also a potential issue for ventilation & cooling. I'm also not convinced that what is essentially a DIY helmet is going to be particularly comfortable over long periods.

    The idea that I am currently testing is to hijack the billions of dollars that the technology sector has invested into research into comfortably mounting heavy things to faces- VR. If I can mate a spare Valve Index face gasket to some form of third-party headstrap, perhaps one with an integrated battery for both counterweight, and power for the LED matrixes (matrices?), I can solve multiple problems in one fell swoop. Additionally, with the use of the Valve Index gasket, which is attached using four magnets on struts, I will be able to pull out the face padding and wash it when needed.

    I've performed two test prints- the first, blocky and easy to print, but ugly as sin. The second is a more organic shape, and it seems to work as I hoped! Without the rest of the protogen head, the whole contraption is a little back-heavy, but this is perfect as it gives me plenty of weight to play with. Onto this inner frame I should be able to mount additional hardware- cameras for eye & mouth tracking, pillars to which I can attach the protogen mask and visor holder itself, potentially even some form of video passthrough rig if I can find an old VR headset to cannibalise. If I can design the whole thing to be modular, I can iterate on each part of the project individually, and hopefully overcome my perfectionism-induced procrastination problems.

    I am struggling quite a lot with toplogy, if I am honest. I'm using Blender, because learning a CAD program is not something I want to do right now, and it's also probably a little bit of a personal philosophy thing. I'm still not convinced by any of the open CAD solutions, and I refuse to learn any tool that isn't open. I'm relatively technically proficient with blender, but organic modelling and complex topology handling still somewhat escapes me.

    Anyway, there don't seem to be many spaces to talk about this specific project online, except one Telegram group which isn't very active, and when I created a Telegram account recently it was banned within half an hour despite me not even doing anything (no, not even messaging a user or joining a group- just instantly banned for no given reason).

    5 votes
    1. [2]
      ogre
      Link Parent
      Ahaha furry-adjacent cracked me up. This project is awesome! Can you share pictures when you’ve completed it?? Not just of the cool furry part but also of your VR frankenstein components. And I...

      Ahaha furry-adjacent cracked me up.

      This project is awesome! Can you share pictures when you’ve completed it?? Not just of the cool furry part but also of your VR frankenstein components. And I wish you the best of luck trying to use blender for modeling. It sounds harder but I respect/admire your refusal to use proprietary solutions.

      2 votes
      1. lynxy
        Link Parent
        If I manage to reach a satisfactory point, I will definitely try to remember to post some pictures! If it works out, I should probably document the process, release the print files, etc. Blender...

        If I manage to reach a satisfactory point, I will definitely try to remember to post some pictures! If it works out, I should probably document the process, release the print files, etc. Blender is certainly a bit of a challenge for this sort of modelling, I think, but it should be capable enough- we will see ;)

        I appreciate the interest so very much.

  2. xk3
    (edited )
    Link
    I really enjoyed building the retirement account simulator a couple weeks ago with Gemini CLI. This week I'm pulling that thread by porting two repos from 99% handwritten Python CLI to 90%...

    I really enjoyed building the retirement account simulator a couple weeks ago with Gemini CLI. This week I'm pulling that thread by porting two repos from 99% handwritten Python CLI to 90% AI-ported Golang Web UI.

    to

    It is still very much a work in progress but I've often been pleasantly surprised by what is possible with simplicity.

    Eventually all the programs will have a CLI, TUI, and Web UI with many overlapping features... but right now I need to pull out a lot of the ported functionality and go one subcommand at a time to make sure everything works

    4 votes
  3. [3]
    Shevanel
    (edited )
    Link
    I built a lightweight brain-dump tool that lives in your CLI and allows you to send super quick notes to a server of mine with a single command, and retrieve them in much the same way. Since memos...

    I built a lightweight brain-dump tool that lives in your CLI and allows you to send super quick notes to a server of mine with a single command, and retrieve them in much the same way. Since memos are stored in a server, you can sync your account across workstations and write / retrieve anywhere. It’s an app intended for an audience of one, but in the interest of respecting the privacy of anyone interested in trying it out, I encrypt all notes stored in the server, so I can’t view anything regardless. You need an account because otherwise you couldn’t sync notes across environments, but email is totally optional and used only for password recovery.

    Impetus: I hated losing track of notes across mediums (did I save that random thought to my phone’s Notes app? To a notepad on my Linux desktop? Or my Windows work laptop? Or my personal MacBook?), so this is widely usable in any Unix based CLI, including Git Bash if you’re on a Windows machine (though I recommend WSL). I also appreciate that it keeps me in flow. It’s a lot easier to bash out a single line command and get a thought out of my head without any extra finagling.

    Of note: this is a virtually worthless tool if you are fully bought into Apple and have synced Notes functionality everywhere. I do not have that, and I also like building little CLI tools :)

    More information and the download can be found here: https://mrndm.sh

    Would love any feedback folks are willing to share about the script or the functionality as an end user!

    Future functionality: I’m working on getting SMS certification on a phone number I’ve leased, which I’ll hook up to the server. Once that’s good to go, you can also choose to (totally optionally) link your phone to the app and save memos via text. Phone numbers will also be encrypted in the DB!

    3 votes
    1. [2]
      xk3
      (edited )
      Link Parent
      Where you have an unix shell you probably have access to git. I frequently copy notes between computers using ssh, git, or rsync as they can often do very similar things. For example you could...

      Would love any feedback folks are willing to share about the script

      Where you have an unix shell you probably have access to git. I frequently copy notes between computers using ssh, git, or rsync as they can often do very similar things. For example you could pipe a git diff through ssh, if you are in the middle of making a commit:

      ssh phone "cd $(pwd); git diff" | git apply -
      

      Git is a technical tool so of course it's not perfect for everything... But you'll never be able to escape file/line conflicts without making choices about tradeoffs as I'm sure you're familiar with by now!

      Also, you don't need to trust GitHub/Lab/Berg with your private notes. Git itself works fine computer to computer. Personally, I choose one computer as the center hub--though I'm sure there are more decentralized ways to do it:

      # hub pc
      cd /home/$USER/notes
      git remote -v
      git remote remove origin
      git config receive.denyCurrentBranch updateInstead
      
      # other devices
      git remote remove origin
      git remote add server ssh://$USER@hub-pc/home/$USER/notes/
      git branch --set-upstream-to=server/main main
      git fetch
      

      But you will still probably want something like Tailscale to make the DNS stuff easy (or use something like Syncthing which does UDP hole-punching using its own mechanism instead... But git has superior conflict management)

      1 vote
      1. Shevanel
        (edited )
        Link Parent
        I love that this is a solution that relies totally on a tool that anyone who finds themselves in a terminal will almost certainly already have! Thanks for sharing. I do have a large more formatted...

        I love that this is a solution that relies totally on a tool that anyone who finds themselves in a terminal will almost certainly already have! Thanks for sharing. I do have a large more formatted “notebook” repository that I use with git in a way similar to what you’re describing.

        My approach with mrndm is to take away a lot of guesswork for the end user (if they don’t already have git set up), but also to reduce the friction. I like the idea of being able to run a script that enables the end user to type mrndm “return library books”, hit enter, and then go about their day. I’m absolutely sure we could use aliases to do a lot of that lifting regardless though, so your approach still makes good sense and renders this moot if folks are comfy with git!

        Edit: I forgot to mention that using git, I’d still need a more frictionless means of capturing memos on my phone, hence my SMS approach that I’m looking to implement in the near future. I know it’s not impossible to do this via git clients that can interact with one’s phone, but it’s more hands-on than texting a phone number.

        1 vote
  4. [3]
    IsildursBane
    Link
    So I have upgraded the drives on my homelab server, and so now need to do the OS installs. The main use of my server is a NAS, but I also run a few other VMs for the occasional task. I was...

    So I have upgraded the drives on my homelab server, and so now need to do the OS installs. The main use of my server is a NAS, but I also run a few other VMs for the occasional task. I was considering setting up either Jellyfin or Plex, since one of my current uses is on the NAS I have various shows my wife and I are watching, and we just watch it over SMB normally smoothly. I thought plex or jellyfin would be a great addition, but looked up my cpu and turns out I am running an intel i5 650, which is a dual core. I thought I had 4 cores, but apparently not. So odds are I will go back to my previous setup.

    On top of installing the new drives, I also dusted the machine and did a thermal re-paste. It will be nice having more stable storage and also significantly more space. A bit disappointed about not having enough performance to run a plex server though

    2 votes
    1. [2]
      kari
      Link Parent
      Do you have a PCIe slot available? I'm not sure if maybe that CPU just isn't strong enough to even handle the streaming in general, but if you're just worried about transcoding, I've heard the...

      Do you have a PCIe slot available? I'm not sure if maybe that CPU just isn't strong enough to even handle the streaming in general, but if you're just worried about transcoding, I've heard the cheapest Intel ARC GPUs can handle that really well.

      2 votes
      1. IsildursBane
        Link Parent
        I do, but the problem is it is a proprietary HP computer. The biggest limiting factor is the PSU is 300W, and the MoBo has a proprietary connector for power. So, adding a GPU would require a new...

        I do, but the problem is it is a proprietary HP computer. The biggest limiting factor is the PSU is 300W, and the MoBo has a proprietary connector for power. So, adding a GPU would require a new PSU and an adapter out of the weird connector. At this point, the next upgrade step is just doing a clean rebuild and carrying over the drives, but that will not be happening in the short term

        1 vote
  5. 1338
    Link
    Still working on my book tracker. Got the dashboards fairly capable and customizable, even threw in a cheap AI helper for generating the queries that power all the widgets. Main issue is I really...

    Still working on my book tracker. Got the dashboards fairly capable and customizable, even threw in a cheap AI helper for generating the queries that power all the widgets.

    Main issue is I really need to spend some time on the design side. The generic styling, inconsistent sizing and spacing, bad UX, etc is bugging me now that I have a sense for how I see it coming together. Though I also need to get an importer built so I can pull in realistic data and start dogfooding it, lord knows what might change once I start trying to actually use the thing instead of blasting in functionality.

    A couple screenshots
    https://ibb.co/SwF8SjvJ
    https://ibb.co/0jNM3DPV

    2 votes
  6. kari
    Link
    I've been continuing working on my window manager, beansprout, for the river Wayland compositor that I mentioned back on January 28th. Since then, a lot has changed! I moved the project to its own...

    I've been continuing working on my window manager, beansprout, for the river Wayland compositor that I mentioned back on January 28th.

    Since then, a lot has changed! I moved the project to its own "organization" on Codeberg, for one, but I've also started using it as my daily-driven window manager, which is pretty exciting.

    I've also added a basic bar and wallpaper support directly into the WM (with the option to turn off both) and a clone of river-tag-overlay for when switching tags. I've honestly added most of the main features I want/need but there's still a decent list of TODOs that I may or may not get to.

    1 vote
  7. sparkle
    (edited )
    Link
    A few weeks ago, somebody mentioned setting up paperless-ngx for their document organization and it reminded me that I'd been meaning to do the same for the last year or two. So after one...

    A few weeks ago, somebody mentioned setting up paperless-ngx for their document organization and it reminded me that I'd been meaning to do the same for the last year or two.

    So after one afternoon scouring the house looking for a 4-port network switch I could swear is here because I didn't think I'd need dual cat6 ports in that area, I gave up and resolved to use a spare Raspberry Pi 4B to interface with the old Epson flatbed printer/scanner I have lying around. I set up Arch on ARM, installed sane and built a simple shell script to take command line arguments like scan.sh 300 adf color to facilitate automation, allowing me to provide resolution, source, and color/grayscale.

    My next steps currently are adding physical interfaces - I'd like to have physical buttons to choose what kind of scan (I'll likely just have two or three mapped to the basic functions I need, e.g., gray adf or color adf or color flatbed) along with a small OLED screen to output status.

    I also still need to actually setup paperless-ngx. For anybody who has done this, what kind of resource usage have you needed to allocate? Would anybody recommend offloading any work to the Pi? I believe it's only a 2GB model - currently it just processes scans into pdf with img2pdf and dumps them into a network folder. I also need to tweak the scan settings to the point I can balance size with legibility. I plan to digitize an entire filing cabinet worth lots of text, so most will be grayscale.

    Paperless will live on my main docker server with all the other containers, though I can put it in an LXC or a VM of its own. Does anybody have any suggestions on workflows for scanning? I know paperless has divider sheet support, does anybody have experience with that? Or is it preferable to just scan a batch in, ingest and tag it in paperless, then move on? Are there any small local LLMs that can be used in combination with OCR to categorize things? I don't want any of my documents to leave the house in any way so local model is the only way. I can't imagine a simple OCR LLM would require much processing power - my server is old but not ancient with 64GB RAM and an i7-6700k and a GTX970 that I haven't bothered to set up passthru for yet.