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?

5 comments

  1. DataWraith
    Link
    I've been developing a StarCraft II bot in Rust for the past few weeks. The bot beats the strongest non-cheating built-in AI more than 85% of the time using nothing but Marines. In order to...

    I've been developing a StarCraft II bot in Rust for the past few weeks.

    The bot beats the strongest non-cheating built-in AI more than 85% of the time using nothing but Marines. In order to achieve this, it uses speed-mining, which exploits the practically limitless APM (actions per minute) of a bot to increase resource gathering rate by ~12% (so I guess it is cheating -- kind of).

    Implementing speed-mining in particular was tricky and took several days of experimentation and much gnashing of teeth -- a lot of the example code I looked at for it was just plain wrong and/or ineffective, and I also ran into a bug or limitation in the SC2 interface that cost me a lot of time to figure out.

    I also used the project as an excuse to finally test GitHub Copilot. In the beginning it was more annoying than helpful and it took me a few days to get the hang of it, but now that I know its limitations, I find it very useful, especially when prototyping: just write a comment (or even the start of a comment) and it will fill in the blanks, sometimes with an elegant approach I would not have thought of myself. I still wouldn't want to use it for work stuff though, because (a) it potentially could leak the source code to Microsoft and (b) it can (and does) introduce subtle problems into the code if you're not vigilant.

    Despite its success against the built-in AI, the bot is still nowhere near good enough to be uploaded to the SC2AI ladder because it is lacking so many basic skills (e.g. making anything other than Marines...).

    Working on this has been extremely addictive and exhausting, enough so that it could potentially lead to problems if I keep it up, so, unfortunately, I've decided to shelve the project for now and wrote this post as a conclusion of sorts.

    7 votes
  2. [3]
    dblohm7
    Link
    I'm overhauling Tailscale's Windows installer. The default installer that users download is NSIS-based. I wrote an MSI installer over a year ago, but it was not ready yet to replace the NSIS...

    I'm overhauling Tailscale's Windows installer.

    The default installer that users download is NSIS-based. I wrote an MSI installer over a year ago, but it was not ready yet to replace the NSIS installer by default. I'm getting the MSIs ready to go so that we may finally complete that migration in preparation for adding an auto-updater.

    4 votes
    1. [2]
      cfabbro
      (edited )
      Link Parent
      Oh, is that where you're working now? Neat! Their HQ is in my home province. :) How are you enjoying it so far?

      Tailscale

      Oh, is that where you're working now? Neat! Their HQ is in my home province. :) How are you enjoying it so far?

      2 votes
      1. dblohm7
        Link Parent
        We're 100% remote, so the "HQ" is more a formality than anything! It's a fast-growing place, so there's always lots to do!

        Their HQ is in my home province.

        We're 100% remote, so the "HQ" is more a formality than anything!

        How are you enjoying it so far?

        It's a fast-growing place, so there's always lots to do!

        3 votes
  3. Wulfsta
    Link
    I’ve started designing a 3D printer: repo. There are several reasons I’m starting this project: Tensioned ball screws Every CoreXY printer with an aluminum extrusion frame that I’m aware of has a...

    I’ve started designing a 3D printer: repo. There are several reasons I’m starting this project:

    • Tensioned ball screws
      • Every CoreXY printer with an aluminum extrusion frame that I’m aware of has a z-axis that experiences linear thermal expansion, due to the stage being attached to the opposite side of the frame as the x-axis and y-axis. This printer should not be bothered by changes in external environment.
    • 9mm GT2 belts
    • Nema23 CoreXY
    • Externally mounted motors
    • Bed similar to HevORT

    FreeCAD has been a bit annoying to work with, but it’s FOSS.

    3 votes