Share your cool programs!

  • JakenVeina@midwest.social
    link
    fedilink
    arrow-up
    16
    ·
    2 months ago

    Not QUITE a program, but I’d have to say my own little GBA ROM hacks for the original Fire Emblem. On account of the following story…

    IIRC, it was 2007, and I was a senior in high school, reorganizing some of the stuff for the robotics team, in the cabinets in the big science classroom where we met. There were some freshmen interested in the team (season wouldn’t start for a while yet) who’d taken to hanging out there, after school.

    They all had laptops and I recognized the menu theme when one of them pulled up Fire Emblem in an emulator, from across the room, and immediately called out “Who’s playing Fire Emblem?”. When I went over and saw he was using Virtual Boy Advance, it occurred to me what I had in my pocket. Or rather what happened to be ON the flash drive in my pocket.

    At the time, I didn’t have my own laptop, so my flash drive had years worth of random crap on it. And over the years, I spent a LOT of time tinkering with ROMs and VBA over the years. In addition to a few copies of different hacked ROMs and save files, I had a portable hex editor, and a LOT of text files with hex tables and memory maps and other research I’d collected over the years.

    So, yeah, I pulled out the flash drive, said “Wanna see something cool?” and proceeded to apply many crazy hacks as I could think of, in the most obtuse manner possible, just editing hex values directly in memory as the game was running. Free XP, free items, end game equipment, sprite swaps, etc. At one point, one of them says something like “What kind of wizard ARE you?!”

    It’s what comes to mind for me when you say “cool” because I like to think I inspired those kids to get into software and programming themselves, or at least consider it as an option. They certainly stuck around with the team for the rest of the year. Also, it inspired ME to really realize how much I’d grown just by tinkering and being curious, and how much you can accomplish through incremental effort.

  • SinTan1729@programming.dev
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 months ago

    Chhoto URL - It’s a simple URL shortener written in Rust.

    I’ve written more programs, some of which are more useful in my daily life than this (e.g. movie-rename) but this is one that many seem to find interesting, and that’s kinda cool I guess. Also, I’m proud of some of my Lean code, but that stuff’s not published.

  • JillyB@beehaw.org
    link
    fedilink
    arrow-up
    2
    ·
    2 months ago

    A lot of cool projects on here. I’m not actually a programmer so everything I’ve done is little more than a script. In high school, I taught myself python by solving project euler problems. Many of them involved prime numbers so I got increasingly good at making prime number generators. I was really proud of getting it down to just a couple lines of elegant simplicity.

  • Quicky@piefed.social
    link
    fedilink
    English
    arrow-up
    11
    ·
    2 months ago

    In the 2010s I had a Windows Phone which I thought was amazing. I bought the original Surface Pro too, because at the time I thought it was incredible. A full operating system in a tablet form factor that was incredibly fast and touch screen.

    In the IT office I worked in, we had a dartboard. It was great for just stepping away from your desk if a problem had stumped you, throwing a few darts to take a break, and inevitably the answer would come to you. It was our rubber duck.

    Trouble was, all of us were terrible at the basic maths involved with darts matches. So I thought, what if we mounted the Surface to the wall, and could just tap where the dart had hit, and get scores instantly.

    So I wrote this darts score-keeping app that worked on everything from Windows Phones to tablets, and even an Xbox at one point, thanks to the way Microsoft had implemented their cross-device app deployment.

    We used it every day in the office. I think in 10 years it’s sold about 3 copies.

    Lovely Darts

  • solomonschuler@lemmy.zip
    link
    fedilink
    arrow-up
    3
    ·
    2 months ago

    Implementing a probabilistic skiplists.

    Because standard linked lists use traversal methods instead of quick memory access like arrays it’s computationally straining to traverse through 1000000 elements. A skiplist skips nodes by adding an additional dimension to the linked and its probabilistic for adding and removing nodes where as the idealized version requires reconstructing the entire list.

  • namingthingsiseasy@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    2 months ago

    I wrote a program that scanned object files (compiled from a large C++ project) to see how they were interdependent. It was pretty useful for detecting cycles in the shared libraries that we were compiling from them, but the biggest benefit was it enabled me to very easily rewrite the build system from scratch.

    It was surprisingly simple - most ELF parsers can read a file and dump the symbol tables in them. (In this context, a symbol means a defined function, so if a C/C++ source file has int main() in it, the corresponding .o file will have a main symbol in it.) They also include information about which symbols are defined in the .o file, as well as which symbols it depends on which are undefined. This allows you to figure out a dependency graph, which you can easily visualize using graphviz or use to autogenerate build files for CMake or any other build system you may wish to use.

    In my case, I wrote this kind of program twice in two separate jobs. Both of them had a very janky build system using custom Makefiles. I used this program to rewrite the build systems in CMake. The graphviz dependency graphs are also just generally helpful to have as project documentation. CMake can do this natively, by the way - here’s the documentation for it: https://cmake.org/cmake/help/latest/manual/cmake.1.html#cmdoption-cmake-graphviz

  • olenkoVD@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    2 months ago

    It’s half-working but:

    A library for making a Discord bot in C with the only dependencies being OpenSSL and cJSON. That means I also wrote code for handling the HTTP requests and also WebSockets.

  • CameronDev@programming.dev
    link
    fedilink
    arrow-up
    38
    ·
    2 months ago

    Archery app. Basically zero users, and got purged from the play store earlier this year because I refused to jump through their hoops.

    It was was meant for use with scopes, you would put in some distance and scope settings pairs into it, and it would fit a line allowing you to estimate intermediate scope settings.

    It also had an AR mode, where you could save a targets GPS position, and get the distance and angle to the target, and the pin setting.

    Sadly, never got any users. So its just for me now. And I deleted the AR stuff.

  • Wiz@midwest.social
    link
    fedilink
    arrow-up
    1
    ·
    2 months ago

    Ok, this is dumb and shows my age, but my proudest moment was creating a Frogger “clone” on the Apple 2 in BASIC, using ASCII text. It even had music! I taught myself how to program doing that!

    Now about 4 decades later, I’m a professional developer, go figure.

      • arendjr@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        I’m hoping early 2026, but I’m looking to hire a platform owner for Android, since I don’t use it myself. So it’s 🤞

  • I_am_10_squirrels@beehaw.org
    link
    fedilink
    arrow-up
    2
    ·
    2 months ago

    I made a ttrpg character sheet template generator. It used PHP to parse a markdown language to build the sheet, and Javascript on the front end to control the fields and save the current sheet as a JSON cookie.

  • Rose@slrpnk.net
    link
    fedilink
    arrow-up
    10
    ·
    2 months ago

    Back in the day, I got the weird idea that it’d be handy to grab information from the XMMS music player as it was running. So I made an extension that basically dumped the information about the player state as text to a named pipe. A few people wrote scripts for their IRC clients and whatnot to tell others what they were listening.

    (Back then, none of the GUI music players really had any kind of RPC capability. Nowadays, you can probably do this stuff easily with D-Bus or whatever.)

    One time, late at night, I was just listening to music in bed with headphones, controlling XMMS via infrared remote controller (LIRC). A random cool track came up. I had no idea what it was actually called. I went “wouldn’t it be cool if I could hit a remote button and it’d say what song is currently playing?” …so I got up, got back to the computer, and wrote a script that reads the pipe, takes the artist and song title, and feeds it to Festival TTS, then added that to LIRC configuration.