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

17 comments

  1. [3]
    Apos
    Link
    Wow! Thread is 30 second old as I enter this site. I've been working on a map editor for MonoGame. https://gfycat.com/lastmistycockatoo (Ability to select stuff, move, and resize.)...

    Wow! Thread is 30 second old as I enter this site.

    I've been working on a map editor for MonoGame.

    https://gfycat.com/lastmistycockatoo (Ability to select stuff, move, and resize.)
    https://gfycat.com/yellowsecondhanddunlin (Ability to select stuff under other stuff.)
    https://gfycat.com/corruptfoolishhake (Ability to select more or deselect within a selection.)

    It lets me create, move or edit rectangles. I also have undo and redo working. Eventually those rectangles will draw textures and that will allow me to create any static worlds. Editor performs pretty well even with 200k+ objects in the world (which is overkill for the games I'm working on).

    Next step will be to apply textures to the rectangles so that they look like something ressembling a game.

    Source: https://github.com/Apostolique/Apos.Editor

    I've also been looking into writing more docs for my open source libraries. This one is starting to look nice I think: https://apostolique.github.io/Apos.Input/getting-started/.

    I discovered https://documentation.divio.com/ which gives some good ideas for how to structure docs. I don't know if I agree 100% yet but just knowing about it should help. The main point is that docs are actually four distinct things: Tutorials, How-to guides, Reference, and Explanation. If you mix them up, it adds technical debt to the docs and they are less useful to the reader.

    I've been doing my development live on YouTube and Twitch.

    9 votes
    1. [2]
      xnaas
      Link Parent
      For anyone else, like myself, who didn't inherently know what this was: https://www.monogame.net/

      MonoGame

      For anyone else, like myself, who didn't inherently know what this was: https://www.monogame.net/

      6 votes
      1. Apos
        Link Parent
        I can't believe I took MonoGame for granted. It's a pretty great C# game framework. It lets you get right into the code and you're free to do whatever you want.

        I can't believe I took MonoGame for granted. It's a pretty great C# game framework. It lets you get right into the code and you're free to do whatever you want.

        4 votes
  2. [3]
    kyotja
    Link
    I'm continuing work on a gemini browser for android. Just finished setting up a test server a few minutes ago, so I'm hoping to finally squash some bugs and get an MVP up and in the F-droid store...

    I'm continuing work on a gemini browser for android. Just finished setting up a test server a few minutes ago, so I'm hoping to finally squash some bugs and get an MVP up and in the F-droid store soon.

    8 votes
    1. [2]
      bendersteed
      Link Parent
      Very cool, this was on my todo list for a while! Maybe I'll start for a gemini server in android then.

      Very cool, this was on my todo list for a while! Maybe I'll start for a gemini server in android then.

      3 votes
      1. kyotja
        Link Parent
        Don't let me stop you! There was already one before I started, and mine is still very rough (and I just found it can't handle redirects), so there's plenty of room for another browser. However,...

        Don't let me stop you! There was already one before I started, and mine is still very rough (and I just found it can't handle redirects), so there's plenty of room for another browser.

        However, the software to content ratio is quite high for gemini, so I'll probably be looking to spin up a server soon. I'll keep an eye out for yours :)

        1 vote
  3. Artemix
    Link
    I'm working on two projects at the moment. A recipe book manager (web-based, HTTP / Gemini) / browser, with expected functionality to allow generating a PDF / epub book from the recipes through a...

    I'm working on two projects at the moment.

    • A recipe book manager (web-based, HTTP / Gemini) / browser, with expected functionality to allow generating a PDF / epub book from the recipes through a dedicated export mechanism (probably using pandoc).
    • A hand-written note-taking software in C++/SDL2 (probably moving to SFML) as an alternative to Xournal++ (too limited and complex UI for my needs) and Concepts (no linux version).
    5 votes
  4. Akir
    Link
    lately I've been unhappy with most of my hobbies so I picked up a new niche to play around in. I bought a cheap kit of motors from Amazon that came with 6 crappy DC motors that run at 3V and come...

    lately I've been unhappy with most of my hobbies so I picked up a new niche to play around in. I bought a cheap kit of motors from Amazon that came with 6 crappy DC motors that run at 3V and come with a bunch of gears, shafts, belts, and propellers (it actually has a surprisingly wide variety of them, too). Also in the mail is this fun little kit that I bought because I mistakenly thought it came with more sensors but wasn't paying enough attention. I somehow assumed that it would come with a PIR sensor and an ultrasonic ranger. Nonetheless, it comes with fun toys that I can use to get used to the kind of programming I'll need to master to make fun robots.

    Lately I've been watching a lot of Tom Stanton on Youtube, and it just seemed fun how he spends so much time building these often-impractical things. I figured the things he is doing shouldn't be too far from some of the skills that I have, so I thought that I'd try delving in to a place that's outside of my comfort zone.

    5 votes
  5. [5]
    simao
    Link
    I am working on a daemon + android app to sync my music collection to my phone. My audio files are well organized on my laptop using beets But frustratingly there is no decent way to copy the...

    I am working on a daemon + android app to sync my music collection to my phone.

    My audio files are well organized on my laptop using beets But frustratingly there is no decent way to copy the music I want without using a cable or some shitty proprietary service. I like using syncthing to sync files but with syncthing I cannot select which folders/files I want to sync. I just want to be able to sync my files and use whatever player I want. I think syncing and playing audio are two different problems, and an app should not try to do both.

    Echoes of Software disenchantment come to mind, but I guess I am part of the problem to, so might as well get to work.

    I am using the opportunity to learn some more rust and finally try out kotlin. I don't like to work on client side things at all, but I think some of the skills are useful anyway.

    5 votes
    1. [4]
      spit-evil-olive-tips
      Link Parent
      Don't let this dissuade you from rolling your own if you want as a learning experience, but I think this should also be possible with the convert plugin plus syncthing. Add a "to-phone" tag to the...

      Don't let this dissuade you from rolling your own if you want as a learning experience, but I think this should also be possible with the convert plugin plus syncthing.

      Add a "to-phone" tag to the subset of music you want to sync, convert it to Opus (or another format, but Opus is state-of-the-art and supported by Android 5.0+). Then have syncthing copy just the output directory used by the conversion.

      4 votes
      1. [3]
        simao
        Link Parent
        If I understood correctly, I would need a directory containing duplicates of the tracks I wanted to sync to the phone, right? I wanted to avoid that because that would not be a trivial amount of...

        If I understood correctly, I would need a directory containing duplicates of the tracks I wanted to sync to the phone, right? I wanted to avoid that because that would not be a trivial amount of storage, though I guess it would in a few years.

        3 votes
        1. [2]
          spit-evil-olive-tips
          Link Parent
          There's a couple ways to do it. The one I described above would indeed create duplicates, but compressed using Opus or similar to take up much less space (I'm assuming that if you're putting this...

          There's a couple ways to do it. The one I described above would indeed create duplicates, but compressed using Opus or similar to take up much less space (I'm assuming that if you're putting this much effort into your music collection, most or all of it is in FLAC or another lossless format).

          You may or may not need lossless quality on your phone, depending on your listening setup, so that compression should be unnoticeable, and has the benefit of taking up less space in your phone storage as well. Opus at 128kbps (which is generally considered acoustically transparent) would mean the duplicate directory would only be one quarter or less the size of the lossless originals.

          If you really want the original files on your phone, another route you could take would be to hardlink them into the "sync" directory. I'm not seeing any way to do that with a native Beets plugin (Beets supports hardlinking when importing files, but apparently not when exporting them based on a query), but I think it could be scripted fairly easily by using beet list to print the paths of the files you want synced then feeding that to xargs ln. Or a simple custom Beets plugin could do it.

          5 votes
          1. simao
            Link Parent
            I think you are right I could do something like that. The thing is I feel this probably should have been solved already in a way that a non techie person should be able to use it and not go...

            I think you are right I could do something like that. The thing is I feel this probably should have been solved already in a way that a non techie person should be able to use it and not go through so many hoops like hardlinks and whatnot. Thanks for the suggestion, I will try and use that while I don't have a working version of my idea.

            2 votes
  6. [3]
    UntouchedWagons
    Link
    I've been trying to figure out how to automate the setup of virtual machines on my proxmox hypervisor, I haven't been having much success.

    I've been trying to figure out how to automate the setup of virtual machines on my proxmox hypervisor, I haven't been having much success.

    4 votes
    1. [2]
      spit-evil-olive-tips
      Link Parent
      There's an Ansible community module for Proxmox. I have limited experience with Ansible & Proxmox (and none at all using them together), but that seems like a promising route. Once the VM is up it...

      There's an Ansible community module for Proxmox.

      I have limited experience with Ansible & Proxmox (and none at all using them together), but that seems like a promising route. Once the VM is up it should be possible to use other Ansible modules to run configuration tasks on the VM itself, if you need to.

      3 votes
      1. UntouchedWagons
        Link Parent
        Yeah I've been trying to use that module, it's not very good.

        Yeah I've been trying to use that module, it's not very good.

  7. Diff
    Link
    I was trying to finish up one last electronics project before the semester started, but I ran face first into my lack of soldering skills. I grabbed a Raspberry Pi 0W I thought I had killed at one...

    I was trying to finish up one last electronics project before the semester started, but I ran face first into my lack of soldering skills. I grabbed a Raspberry Pi 0W I thought I had killed at one point, a NeoTrellis RGB keypad from Adafruit, the tiniest I2C OLED I've ever seen, and a rotary encoder and I'm trying to make a versatile bluetooth human input device. Different profiles for different purposes, terminal, general text input, maybe a CHIP-8 profile, maybe a set for roguelikes.

    Unfortunately the NeoTrellis isn't responding at all over I2C, almost definitely because of the lack of soldering skills I mentioned. Wasn't made any easier by trying to solder to the back of the headers on the Pi, or by using 20AWG in such cramped quarters. Hopefully I've got a desoldering braid and much smaller wire on their way to my mailbox some time today, and I'll give it another shot.

    3 votes