Share your cool programs!

  • slippyferret@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    36
    ·
    1 month ago

    A long time ago I wrote a little web app that takes a search string and finds all the words in the dictionary that have overlap with its spelling. Sort of a portmanteau generator. It was just a fun project at the time, but I have used it on countless occasions to brainstorm unique names for projects, websites, etc.

    You can try it from the link below. Just type any word or name and it will populate the results.

    https://dev.djdupriest.org/name-combinator/index.html

  • CameronDev@programming.dev
    link
    fedilink
    arrow-up
    29
    ·
    1 month 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.

  • JakenVeina@midwest.social
    link
    fedilink
    arrow-up
    14
    ·
    1 month 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.

  • dgdft@lemmy.world
    link
    fedilink
    English
    arrow-up
    14
    ·
    edit-2
    1 month ago

    In high school, we used to play a game colloquially called Spoons/Assassins/Spoon Assassin/Marker tag. Long story short, everyone playing gets assigned another player as a target. You tag your target on the back of the neck with a spoon or marker to “kill” them + take over their assignment. Rinse and repeat until only the winner is standing.

    Major catch here is that for the game to work properly, the targets have to be chained in a loop, so there usually has to be a trusted individual running the game who can validate the assignment list.

    So I scraped the online school directory to pull names, emails, and school photos of everyone. Then I built a Java Swing app to track a list of who was playing, and the app would shuffle a random list and email everyone their assignments blindly, photos included. Flash forward a few months, and eventually we had a full roster of ~80 people playing across grades, which was ~10% of the student body.

    Unfortunately, a group of freshmen started their own take on the game, which devolved into mauling one another with Crayola markers and Sharpies. The principal catches word that I’ve been running a ring, and brings me into his office to tell me to shut it down.

    Uncharacteristically for my teenage years, I went all-in on diplomacy. I plead my case, tell him I’m not involved with the freshmen, hear out his concerns, volunteer to modify the game rules, and point out that our group been playing for months without issues. No dice; the dude was a jackass with a chip on his shoulder. So we come to an impasse, staring at one another in silence.

    Eventually, to break the silence, he asks about a stray bandage I have sticking out the top of my shirt. I’d had a small melanoma removed from my collarbone that week, which was caught as early as possible and removed without issue. Seizing the opportunity, I tell the principal “I have cancer”, and immediately walk out before he could formulate a response. Poor dude went white as a sheet. Good times.

    Bit of a lame ending for the app, but building it taught me the skills I used to jump-start my career, and drove home the point that software isn’t an end unto itself — it’s the way people use it to come together that makes things great.

  • Captain Aggravated@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    13
    ·
    edit-2
    1 month ago

    Okay, so you know the trope in spy movies where the launch codes or the diamonds or whatever are at the end of a hallway full of lasers, and the protagonist has to do some cool flip moves (if male) or some slinky contortions (if female) to get around the lasers?

    I made that as an arcade game with an Arduino. Some red laser pointer diodes, some photosensors, a few lights, bells and whistles, a fog machine, a few big ol buttons, and you’ve got spy laser hallway. It had a separate “break as many lasers as you can” mode as well, played like a combination of DDR and whack-a-mole.

    The second coolest thing I ever programmed was probably the GPS MP3 player. A farmer wanted to add an automatic soundtrack to his Halloween hayride, like when the drove through the spooky graveyard it played ghost noises, it would play music for longer stretches on the road. I used a Raspberry Pi with a GPS HAT and wrote up a script in Python that would compare the actual position with a set of coordinates stored in a text file, and if one matched, it would play an associated mp3 file. The effect was kind of lost because the audio was coming from the vehicle itself, but it’s a hay ride, it’s supposed to be kind of lame. The bedsheet ghosts said woo as you drove past, I’m in the special effects industry, dad.

  • AnarchoEngineer@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    9
    ·
    1 month ago

    My first project in Rust was replicating this paper because i wanted to learn rust but needed a project to work on because i hate learning from tutorials.

    Of course, I had intended to go the OOP route because that’s what I was used to and this was my first time using rust… that was a bit of a headache. But I did eventually get it working and could watch the weights change in real time. (It was super slow of course but still cool)

    Anyway I’ve started making a much much faster version by using a queue to hold neurons and synapses that need updating instead of running through all of them every loop.

    It’s like lightning fast compared to the old version; I’m very proud of that. However, my code is an absolute mess and is now filled with

    Vec<Arc<Mutex<>>>
    

    And I can’t implement the inhibition in a lazy way like I did the first time, so that’s not fun…

  • 1hitsong@lemmy.ml
    link
    fedilink
    arrow-up
    7
    ·
    1 month ago

    The code I wrote that I use most often is music playback in the Jellyfin Roku client.

    I use it almost every day and think it’s pretty cool 🤘

  • Aneb@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    1 month ago

    Idk I haven’t written many but recently I made an integration for my sister’s startup that automated enrolling prospects from companies in an email campaign by sourcing different prospects name fields and LinkedIn accounts and finding their emails. It was good fun, and the user would get a prospecting email with all the details on the company and the role the person worked in at the company along with how long they worked at their company. I was calling it LeadFetch until my sister closed shop and told me my program was her IP. That still pisses me off cause I was gonna merge it to one of the sources we used after she called it quits and left me with no opportunities. She designed none of the back end but had the gall to say it was her app.

    • StrikeForceZero@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      1 month ago

      Curious but were you paid for it? I’m no lawyer but I can’t imagine that holding up unless she paid you for it. Even then, without an explicit contract, there’s probably a lot of gray area this falls into because you could have just been offering a service that’s utilizing something you made.

      • Aneb@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        1 month ago

        I was employed by her for a time for various duties for her startup and she asked me to make this application

        • StrikeForceZero@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 month ago

          Since she “closed shop” is she running around trying to sell the software you made or is it just rotting away because her ego won’t let you try to make something of it?

          • Aneb@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            1 month ago

            It has been rotting, I frequently used the APIs to remix into different apps, pulling posts and comments off LinkedIn for her to review and compile strategies based off of popular posts and users. She wanted some of that code so I forwarded my scripts to her to make use of. She isn’t selling my scripts but she then used them for herself. I tried to sell this idea of integrating LinkedIn Leads to one of our partners who is also a budding start up and set up a meeting. Then I told her because I was proud of my work and she bashed my idea and the direction I was taking claiming I stole LeadFetch from her.

            • StrikeForceZero@programming.dev
              link
              fedilink
              arrow-up
              2
              ·
              1 month ago

              Quite the family member you got. At the very least hopefully you’ve gotten your family to shun them or something regardless of their “legal rights”. Drives me nuts seeing “idea people” exploiting the actual effort and talent it takes to implement it.

  • namingthingsiseasy@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    1 month 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

  • anton@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 month ago

    It’s either printf and stack unwinding in assembly or something to test all possible execution path for very simple multi threaded programms.

  • SinTan1729@programming.dev
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 month 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.

  • 🍉 Albert 🍉@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    1 month ago

    i read a book about how a cpu+ram work together and decided to simulate it in excel.

    wish I kept the file but I was so proud to make a loop or a Fibonacci sequence in excel by simulating a Von Neumann architecture in excel