12 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. [2]
    9000
    Link
    I mean, it's not really a cohesive project, but this past week or two, I've been making a conscious effort to document and attempt to fix many of the minor bugs that have been bothering me in the...

    I mean, it's not really a cohesive project, but this past week or two, I've been making a conscious effort to document and attempt to fix many of the minor bugs that have been bothering me in the FLOSS software I use regularly. There were a couple GitHub issues that sat silent for a few months that I decided to finally investigate and get to the bottom of, and a few other things I hadn't even filed issues for, that I also attempted to fix. Some of these efforts were more successful than others, but it was productive on the whole.

    In addition to being personally beneficial, I think this was a great learning exercise, since I had no experience with these code bases, and oftentimes no experience with the language.

    15 votes
    1. tindall
      Link Parent
      Thank you for doing this! This is how FOSS progresses, ideally.

      Thank you for doing this! This is how FOSS progresses, ideally.

      7 votes
  2. admicos
    Link
    I'm working on a static site generator that aims to be very light and extensible. Well, so extensible that the "site generator" part itself is a script ran inside the embedded LuaJIT VM. This also...

    I'm working on a static site generator that aims to be very light and extensible.

    Well, so extensible that the "site generator" part itself is a script ran inside the embedded LuaJIT VM.

    This also involved making a Markdown to HTML converter in Lua because the ones I've seen either use C extensions (not portable), or are pure Lua and slow. The one I'm making is in a middle ground, that uses Rust's regex crate/library (exposed to Lua from the generator API itself)

    Oh, also I'm using regex find/replaces to convert Markdown (currently just a small subset, still working on it) to HTML. And yes. I have, in fact, gone insane.

    If anyone's interested, and has any questions, feel free to ask. But I'll probably answer tomorrow, as it's starting to get very late here.

    7 votes
  3. [3]
    skybrian
    Link
    I got accordion synth prototype #3 working just before the holidays and took it with me to show family. Now that I'm back, I'm looking into replacing the sound synthesis with something more...

    I got accordion synth prototype #3 working just before the holidays and took it with me to show family. Now that I'm back, I'm looking into replacing the sound synthesis with something more accordion-like before doing some recordings to show it off. (Currently it's a placeholder sound that's reasonably pleasing but more like a Hammond organ; I just added together the sine waves for the first few harmonics.)

    To play around with sound synthesis, I got MIDI out working so I can use it as an input for Garage Band and VCV Rack. It's pretty fun, but I'm still in over my head on sound synthesis - I got a nice Moog-like bass going but I'm no closer to making anything accordion-like, and it seems I could play with VCV Rack components forever without really getting anywhere, despite doing a lot of reading.

    There is very little research out there on accordion sound. I found references to a couple papers but they're not on the web. I'm thinking maybe I'll learn about violin sound synthesis since it's more popular and then try again.

    I'm also thinking of trying out Pure Data. It seems like VCV Rack, while pretty and easy to use, is very heavily based on the history and practice of hardware modular synthesis and I'm looking more to build something I can translate into reasonably simple code. If I end up making a patch with a component I can't reproduce and don't understand, it's not going to help.

    7 votes
    1. [2]
      joplin
      Link Parent
      I wonder if trying to synthesize other reed instruments would be more fruitful in getting to an accordion sound than synthesizing a violin since the accordion uses reeds? Either way, sounds like a...

      I wonder if trying to synthesize other reed instruments would be more fruitful in getting to an accordion sound than synthesizing a violin since the accordion uses reeds? Either way, sounds like a really cool project! Good luck!

      2 votes
      1. skybrian
        Link Parent
        Even though a violin isn't a reed instrument, I think there might be some similarity because the scraping of the bow makes a pretty harsh sound like a saw wave that's then modified. But we will see.

        Even though a violin isn't a reed instrument, I think there might be some similarity because the scraping of the bow makes a pretty harsh sound like a saw wave that's then modified. But we will see.

        2 votes
  4. tindall
    Link
    I'm building a Rust driver crate for the RN2903 LoRa radio module, which has been both fun and somewhat frustrating, since its interface does not lend itself to a type-safe, highly constrained...

    I'm building a Rust driver crate for the RN2903 LoRa radio module, which has been both fun and somewhat frustrating, since its interface does not lend itself to a type-safe, highly constrained API. Thinking through those challenges has been very enjoyable. Just released 0.2 today.

    I'm hoping it'll be useful by itself, but my eventual goal is to build a non-LoRaWAN higher-level protocol that can be used in either mesh or star topologies without relying on the Internet.

    5 votes
  5. mat
    (edited )
    Link
    I am currently falling at the first hurdle in making a kiln controller (raspberry pi, temp sensors, mains relays, etc). I can't get a reliable read off my thermocouple, which I'm starting to think...

    I am currently falling at the first hurdle in making a kiln controller (raspberry pi, temp sensors, mains relays, etc). I can't get a reliable read off my thermocouple, which I'm starting to think is actually faulty hardware rather than a mistake I'm making.

    Also I found when I was looking for some example code for how to read the thermocouple that someone has already written an oven controller in python but I'm just going to ignore that and make my own because this is supposed to be a fun project not a just-get-it-done project.

    edit: hardware is faulty. A known-good thermocouple inserted into the amp gives the same incorrect readings, and the possibly-faulty thermocouple behaves itself when connected to a meter rather than the amp. The vendor was very nice about it and is sending me out a replacement. I may yet buy a better amp though.

    4 votes
  6. superkp
    Link
    I'm still trying to get through some tutorials for Godot - I'm working on writing a videogame and I'd like to be able to seriously contribute to the programming and design work as well. I was...

    I'm still trying to get through some tutorials for Godot - I'm working on writing a videogame and I'd like to be able to seriously contribute to the programming and design work as well.

    I was expecting to be able to do a lot of this over the holidays, but instead my whole family got sick.

    4 votes
  7. [4]
    json
    (edited )
    Link
    I live rural, which means my internet choices are ADSL (slow) or 4G (fast, but gets expensive with data use). Comparison is $70 (NZD) for unlimited data for ADSL vs $49 every 30 days for 120GB of...

    I live rural, which means my internet choices are ADSL (slow) or 4G (fast, but gets expensive with data use).
    Comparison is $70 (NZD) for unlimited data for ADSL vs $49 every 30 days for 120GB of 4G broadband, and $20 for additional 10GB packs.

    I've recently discovered that my 4G provider has an option to pay $5 for 24 hours of unlimited data.

    So I've decided to try automate adding those unlimited data packs each day after the initial quota is nearly used up.

    This is done using Puppeteer to sign in, check the remaining data balance, and then maybe add a pack for the day. This is something that I can set to run as a cron job each day.

    This means I have a limit of $49 + 30*$5 every 30 days for unlimited 4G broadband. That's $200 kiwibucks.

    Edit: I realised I didn't really finish the explanation on why.
    Rural Broadband Initiative 4G typically has a max cap of 250gb for $210 and a 120gb for $100.
    Skinny has a 4G offering that I'm not sure is part of RBI. They have a 300gb for $59, but that's not available for my address (tower bandwidth constraints?).
    So better for me to do the above and achieve cheaper (unlimited data/$200) than the RBI 4G offerings.

    4 votes
    1. [2]
      sleepydave
      Link Parent
      Didn't you guys get a gigabit network infrastructure over there? I remember us Aussies getting pissed that the Kiwis got residential gigabit connections and we were stuck with the NBN haha

      Didn't you guys get a gigabit network infrastructure over there? I remember us Aussies getting pissed that the Kiwis got residential gigabit connections and we were stuck with the NBN haha

      1 vote
      1. json
        Link Parent
        The Ultra Fast Broadband project is fibre to the home but doesn't extend to rural areas. The Rural Broadband Initiative is about expanding 4G coverage. My speeds on 4G are ~30/30mbps, but have...

        The Ultra Fast Broadband project is fibre to the home but doesn't extend to rural areas.

        The Rural Broadband Initiative is about expanding 4G coverage.

        My speeds on 4G are ~30/30mbps, but have seen tests vary up to 60mbps.

        3 votes
    2. json
      Link Parent
      I have it running with some frequency in cron. Here's some output: Mon 06 Jan 2020 06:00:01 AM UTC balance: { balance: 106, quota: 120, ratio: 0.8833333333333333 } threshold: 0.1 closing chrome....

      I have it running with some frequency in cron. Here's some output:

      Mon 06 Jan 2020 06:00:01 AM UTC
      balance: { balance: 106, quota: 120, ratio: 0.8833333333333333 }
      threshold:  0.1
      closing chrome.
      
      Mon 06 Jan 2020 12:00:01 PM UTC
      balance: { balance: 101, quota: 120, ratio: 0.8416666666666667 }
      threshold:  0.1
      closing chrome.
      
      Mon 06 Jan 2020 06:00:01 PM UTC
      balance: { balance: 100, quota: 120, ratio: 0.8333333333333334 }
      threshold:  0.1
      closing chrome.
      
      1 vote