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

14 comments

  1. [3]
    DanBC
    Link
    My child wanted a thing that could detect people walking upstairs that would send a message to a webpage or something. So, I thought maybe I could cram this into a Raspberry Pi Pico and...

    My child wanted a thing that could detect people walking upstairs that would send a message to a webpage or something.

    So, I thought maybe I could cram this into a Raspberry Pi Pico and breadboard.

    That meant installing Micro python, and learning how that works. I'm thinking of converting it all to Circuit Python which is a little bit more beginner friendly.

    Once I've got it working and I understand it I'm going to take it all apart and create code snippets for each bit of the circuit, with diagrams. The aim is to get my child to build it from scratch, with help available but hopefully they're figuring it out through trial and error and bug fixing and tinkering.

    It's fun! I'm finding Pi Pico much more approachable than ESP32 for some reason - I think it's because there are two variants instead of like 80.

    7 votes
    1. [2]
      tauon
      Link Parent
      If you don’t mind me asking, how old is your kid and do they have previous "experience" to be showing this much interest? Don’t get me wrong, it’s a great thing they’re this curious and that you...

      If you don’t mind me asking, how old is your kid and do they have previous "experience" to be showing this much interest? Don’t get me wrong, it’s a great thing they’re this curious and that you can support them this well – I’m just curious what bracket this would be age-appropriate for.

      1 vote
      1. DanBC
        Link Parent
        They're 13. They've done stuff with the BBC MicroBit which is excellent for younger people, and has options for Scratch-like building block programming with MakeCode or Python with a Python...

        They're 13. They've done stuff with the BBC MicroBit which is excellent for younger people, and has options for Scratch-like building block programming with MakeCode or Python with a Python Editor. I haven't used MicroBit version 2. There are lots of educational resources fro MicroBit.

        Raspberry Pi Pico has a reasonably well developed ecosystem. There are four boards. One has no wifi and no pin headers, one has wifi and no pin headers, one has no wifi but does have pin headers and one has both wifi and pin headers. This makes it really easy to know whether something is going to work on the board you have. Comparing this to ESP32 there are a lot of different development boards with different features and it's not hard to work out if something will work, but it's an additional step. There is a reasonable amount of good quality educational content too.

        The Pico has options for firmware. Two of the most popular are MicroPython and CircuitPython. I don't have enough experience in either to say which I prefer. Some libraries for sensor products are only easily available in one form, and conversion is potentially tricky. It's very easy to switch firmware. Switching firmware does make programming easier.

        I have breadboards and jumper wires available. I bought the Pi Pico with headers. I looked around for tutorials and found a kit that does all the stuff - it's a bit expensive, and it has a Pico without wifi. Waveshare MicroPython Learning Kit. The company page for thsi kit is hereWaveshare introductory kit They've got a wiki and tutorials here: Waveshare Pico tutorials. In my opinion this is going to need a bit of support for people new to micro controllers and hardware.

        So, I didn't buy the kit, I bought the IR sensor separately - I think it's HC-SR501 IR Pyroelectric Infrared PIR Motion Sensor Detector.

        I'm using their code examples to try to develop a sequence of building steps. Can you use the repl to do "hello world!", can you light an LED, can you get the PIR to detect anything. The web stuff will be trickier, and life is interfering with it a bit.

        Age ranges are always difficult because a well motivated smart 8 year old shouldn't be underestimated.

        3 votes
  2. arqalite
    (edited )
    Link
    The Splitwise alternative I talked about last week is going well. Despite me wanting to learn Kotlin, I scurried back into the comfort of Rust + Dioxus, then spent two whole days fighting with the...

    The Splitwise alternative I talked about last week is going well.

    Despite me wanting to learn Kotlin, I scurried back into the comfort of Rust + Dioxus, then spent two whole days fighting with the compiler and the borrow checker because it does not like shared state among components that much. But I made it work, and adding new components is a breeze now.

    I decided to develop the UI and the backend at the same time, focusing on adding complete, working features until I can call it a minimum viable product and share it with friends (and you guys).

    Right now you can add, remove and edit expenses, see them in a list with the essentials (cost and date added), and click on each expense to see all its details, and I'm going to work tonight on the groups and the actual splitting of expenses. Should be easy.

    Also - I caved. I will probably have a central server for 1.0 that will handle connecting users together, and then find a way to converge each user's database on-device. But that's way off in the future. And maybe for a 2.0 I will find a way to make it serverless.

    6 votes
  3. rustbucket
    (edited )
    Link
    Mine is a little bit niche. I've decided to make some AMX Mod X plugins for Team Fortress Classic. I'm only in the learning/planning phase at the moment, but so far it's going pretty good. For...

    Mine is a little bit niche. I've decided to make some AMX Mod X plugins for Team Fortress Classic. I'm only in the learning/planning phase at the moment, but so far it's going pretty good. For those who don't know (most people probably), AMX Mod X is Metamod plugin for Half-Life engine (Goldsrc) games that allows you to fairly easily create server plugins. It provides it's own functions and uses the Pawn scripting language

    Anyway I have a few ideas for plugins, most of which are pretty boring but would hopefully be useful to server admins One of my ideas is a fully featured class limit system that allows for limiting classes based on the amount of players currently on, what classes are currently being played, and in the case of Attack/Defend games, team specific limits too. I also hope to make it fully adjustable in-game. I tend to have a habit of starting projects and not finishing them, but I'm striving to see this one through.

    5 votes
  4. 0x29A
    Link
    Finally got my OPNSense router build up and running (a project I started years ago and just kinda never finished). Replaced an aging Edgerouter-X from Ubiquiti that was starting to show some...

    Finally got my OPNSense router build up and running (a project I started years ago and just kinda never finished). Replaced an aging Edgerouter-X from Ubiquiti that was starting to show some problems (hardware and software- Ubiquiti's firmware/OS quality became an absolute mess).

    Running it on a Wyze Extended 5070 (Dell) "thin client" with a 4-port Intel NIC installed. Pentium J5005 CPU, plenty fast enough for bridging/routing/switching my gigabit connection. SSD, 8GB RAM. Overkill is my hardware M.O. so hell yeah.

    Being between jobs at the moment actually allows me to have the energy to get some personal projects and necessary work done. I realize how much my job was wearing me down now that I no longer have it. Old projects are getting done!

    Surprisingly- my network (unless placebo effect) actually feels quite a bit faster. Super fast page loads and resolution. I always got full bandwidth but just the lower overall latency across the network feels great- and of course the aging ER-X I think was starting to cause lagginess on the network because of its problems so now with a new clean faster-hardware router build, of course things are going to feel way better. I'm stoked.

    5 votes
  5. [3]
    skybrian
    Link
    Still working on my web forum / personal blog / wiki project. Figuring out when and how to support collaborative editing is tricky.

    Still working on my web forum / personal blog / wiki project. Figuring out when and how to support collaborative editing is tricky.

    4 votes
    1. [2]
      brogeroni
      Link Parent
      What's your tech stack? I remember throwing in tiptap with hocus pocus and getting the text editing done in a few hours.

      What's your tech stack? I remember throwing in tiptap with hocus pocus and getting the text editing done in a few hours.

      4 votes
      1. skybrian
        Link Parent
        I'm all-in on Deno. (Deno Fresh uses Preact.) Never heard of Tiptap. Looks like it uses ProseMirror, which I haven't used but I have a lot of respect for the author. I'll check it out. I'm just...

        I'm all-in on Deno. (Deno Fresh uses Preact.)

        Never heard of Tiptap. Looks like it uses ProseMirror, which I haven't used but I have a lot of respect for the author. I'll check it out.

        I'm just doing Markdown, though, like Tildes but a little more client-side stuff. I want to support drafts and sending suggested edits (like pull requests), not real-time collaboration.

        2 votes
  6. [2]
    vord
    Link
    So this one is in the early pondering phases... I'm chewing on the idea of rolling my own budgetting software using Plaid as the integration tool. Most of my banks have terrible or no integration...

    So this one is in the early pondering phases...

    I'm chewing on the idea of rolling my own budgetting software using Plaid as the integration tool.

    Most of my banks have terrible or no integration functionality. But Plaid would solve a number of problems and allow me way more power than most other options I've tried.

    They allow you to connect up to 100 accounts on the free tier, which is perfect for a self-hosted solution.

    3 votes
    1. shadow
      Link Parent
      I've thought about this as well. I looked at the Plaid API, determined I'd rather go native app to store transaction information there, and worked through a decent amount of pseudo code/db needs,...

      I've thought about this as well.
      I looked at the Plaid API, determined I'd rather go native app to store transaction information there, and worked through a decent amount of pseudo code/db needs, but ultimately realized the amount of work for me compared to a paid solution would not make economic sense.
      Just too busy with other things in my life!

      Good luck to you though! I'd be more than willing to share any of my thoughts.

      2 votes
  7. Minty
    Link
    A script hijacking CUPSCALE and manga-colorization-v2 to perform not-so-bad unattended colorization on a directory of cbz/cbr files. I called it Mangenta :v

    A script hijacking CUPSCALE and manga-colorization-v2 to perform not-so-bad unattended colorization on a directory of cbz/cbr files. I called it Mangenta :v

    3 votes
  8. Indikon
    Link
    I've been writing powershell scripts to migrate MSP client computers from their remote management software to our remote management software. If it goes according to plan it should remotely remove...

    I've been writing powershell scripts to migrate MSP client computers from their remote management software to our remote management software. If it goes according to plan it should remotely remove the old software and install the new software on about 3000 computers and reconnect them to the correct account without much manual intervention. The problem is they cant both be installed at the same time so I'm using the task scheduler to start the new installation shortly after the old software is removed.

    2 votes
  9. tauon
    Link
    My city’s public transportation API is something I’ve long been meaning to work on/with. Issue is, since these API libraries are usually unofficial, there’s half a dozen of them out there, with...

    My city’s public transportation API is something I’ve long been meaning to work on/with.

    Issue is, since these API libraries are usually unofficial, there’s half a dozen of them out there, with half of them being deprecated/archived/non-functional within 2-3 years of being published. I now seem to have found a working one and already implemented a demo barebones CLI which fetches the next departure times (i.e., including potential delays) for a given real-name station, akin to a very basic version of this inspiration.

    The current problem: what I’d really like to accomplish is the ability to do full route planning as a fully viable replacement to the official app or website. However, I’m not so sure if this particular API even has these features… And I definitely lack the skills to extend it as such; I just wanted a reasonably-sized project to improve my Python and/or Unix-style CLI building skills.