HACKER Q&A
📣 smarri

Have you created programs for only your personal use?


Curious to know if anyone has written programs for their own, regular, & personal use. And if so what they are? E.g. A colleague of mine tracks all of his homes energy use through a custom program which disaggregates the energy consumption per device and outputs a report to a tablet.


  👤 LeoPanthera Accepted Answer ✓
Hundreds! Doesn't everyone? Most of them are just bash scripts, many of which have now reached a complexity so high that I wish I'd started writing them in a different language but it's too late now. The majority of the rest are Python.

Off the top of my head, the most used ones are:

* A replacement front-end for "tar" and various compressors

* A script to synchronize my music library to a compressed version for playing in my car

* A secure-but-readable password generator

* A system to batch compress folders full of video files. (For ripped blu-ray discs, mostly.)

* A replacement front-end for "ffmpeg", see above

* A "sanity check" program for my internet connection to see if the problem is me, or Comcast

* A front-end for "rm" that shows a progress bar when deleting thousands of files. (Deletes on ZFS are unusually slow.)

And lots more tiny things.


👤 jonplackett
Yes. And it’s a strange one.

I made a program to gender swap any text you put into it and then got a book deal to rewrite and illustrate Fairy Tales. It’s been published around the world.

https://genderswappedfairytales.com

The idea is to shine a light on the original versions but it also creates a lot of never-written-before characters. A lot of brave princesses and lady-beasts, but also men desperately wanting children and being rewarded for kindness.

I wrote the gender swap algorithm in Swift. It seemed like it would just be a simple auto replace type thing when I started but there’s some weird things in English, for example with his/him/her/hers where they don’t swap back and forth sensibly and you have to understand the context.

It was his > it was hers.

It was his sword > it was her sword

So I ended up down this rabbit hole of natural language processing to break up each sentence into verbs, nouns etc to work out the correct words to use. Even tried training an AI to do it based on the finished swapped text but a whole bunch of rules worked more reliably.


👤 vax425
I made myself a Chrome extension called Headlamp that puts a red dot by each link, button, text box, etc., and clears them as I click or type while I’m testing a web app.

When I hand off a build to a client, if all the red dots are gone, I know I’ve at least TOUCHED everything.

If I’m working with another engineer, we can both see the dots in our browser and collaborate to clear them all while we test.


👤 primitivesuave
I created a program that prints QR codes onto sheets of peel-and-stick labels. When someone scans the code, they are directed to a simple web app that manages food sharing with my four roommates.

We noticed that we buy a lot of the same things (bananas, avocados, eggs, etc), so we implemented a system where anyone can stick a QR code onto something they want to share, and anyone else can scan it to record what they took. For example, this morning I pulled a carton of eggs out of the fridge, scanned it, recorded that I took 3, and a Splitwise expense was automatically updated between me and the person who bought the eggs (much easier and less awkward than handing someone 75 cents). Everyone is logged into the application via Splitwise OAuth, and all products/expenses/debts are automatically simplified within Splitwise and updated via the API - so the app is pretty much a wrapper over Splitwise specifically for granular sharing of food.


👤 linsomniac
Decades ago I had a friend that needed to scan his CD cover to start selling it online. I only had a Linux machine. So I looked up the documentation for the HP scanners, found it was well documented at the protocol level, so I bought one.

I wrote some CLI tool that could trigger a scan and read the data back, into a file. Worked well enough, but I wanted a GUI.

I started thinking I wanted to make a GUI for it. I started thinking "I'll need to do X like xv does, I'll need to do Y like xv does, I'll need to do Z like xv does..." Clearly, what I needed to do is extend xv so it could do scanning. I spent a weekend making the prototype, and it worked brilliantly.

xv was open source but licensed $25 for commercial use. I made a deal with the author, John Bradley to become a reseller for xv. Over the next few years I sold, I don't remember exactly, but maybe thousands of copies. To people, to government labs, to businesses large and small. It was the beginning of a company that I ran until around 7 years ago, and that just shuttered for good a few months ago, 25 years later.

All for program I wrote to scan a friend's album cover art.

https://www.linuxjournal.com/article/4029


👤 chasd00
I created a program that outputs one of my kid's name if the day of year is even, the other kid's name if it's odd. I use it to determine who's turn it is to take a shower first. They'll argue with me and each other all day long but for some reason they will not argue with the computer.

👤 doodpants
Heck yes, all the time. While it seems like the major computer/OS vendors these days are trying to turn computers into limited purpose appliances, I was first exposed to computers as a child in the late 70's, when it was expected that anyone who owned a computer would also want to program it for their own purposes. My own personal projects tend not to be very large in scope, but can be quite handy. Some examples include:

- A Pomodoro timer that has exactly the features and user interface that I want

- A script to perform backups of select files and directories from a source drive to a specified backup volume

- A "pixels-per-inch" calculator that allows me to compare the resolutions of displays that I may be interested in purchasing; by entering the width and height of a display in pixels, and its diagonal in inches, it calculates the density in pixels-per-inch, and the dot pitch in millimeters

- Various user-friendly graphical interfaces to aid in solving different types of puzzles (think sudoku-like logic puzzles)

- Programs to actually solve various types of puzzles all on their own (I've written over 70 of these in the last 10+ years!)

- Various command line scripts for code management tasks (i.e. useful for sofware development itself)


👤 gotaquestion
Huh, I've never been asked that.

Yes, for over 30 years. I could never list them all. Nearly every thought I have becomes a program. I've written x86 asm game hacks (DOS era), 2D tile games (80's), Windows MIDI composers, game frame languages, ray-tracing renderers, OpenGL visualization, PID controllers, camera controllers, video controllers, circuit simulators, flight controllers, so so so many games, scripts for analyzing data, scripts for scraping websites, ODBC readers for my cars, FM synths, game solvers, and that's just stuff in C, not even getting started with the bazillion websites.

Over decades, programming becomes such a part of your life, that it is simply the way you move about the world, and think about it.


👤 deanmoriarty
I wrote a scraper for various dating websites that would automatically generate activity on my behalf according to several empirical criteria (very simple stuff, no ML!), so that I could minimize the amount of time spent manually fishing.

It worked amazingly well, it got me hundreds (yes, 100+) of dates, incredible dating stories and a lifetime of memories, all in a semi-automated way without me requiring to “swipe right” or similar. As a matter of fact, my current girlfriend (of 5 years) was found through the software. She knows it and laughs about it.

Clearly the software didn’t do anything magical, I would have likely gotten the same results had I spent the time to individually message and interact with the 100s of women the software did in a semi-automated way, but it was really nice to save my time.

One day I should write a blog post.


👤 Karrot_Kream
Tons. Way too many at times. I build a lot of tools to make it easy to consume and produce media/social media offline (these flows usually involve turning things into email or Usenet articles and then transmitting them on a private network) both because it lets me control how/when I consume media and also because it's just plain fun.

Other than that though, I have a system that helps my D&D group (which meets weekly and has for years) choose what to order for dinner. The system keeps track of a number of restaurants in our area (hand annotated) and chooses 5 restaurants from different food genres and excludes the genre of food that was picked the previous week. The restaurant choices are placed in a ranked choice poll which I monitor and close manually to choose dinner. The ranked choice poll has been helpful when a restaurant actually ends up closed so we just step down the list and pick the next in ranking.

Admittedly this is a technical solution to a mostly social problem, but my D&D group has some neurodivergent personalities that are really bad at coming to consensus. Also, the system pretty much runs itself at this point as the restaurants are kept in a sqlite database and the code is so simple that it never really changes.


👤 deathanatos
I wrote a mapping program that could display maps, my location on them, time estimates to a down-road position, etc.

"Why not Google Maps?"

Several reasons: Google Maps requires a cell connection. (They have offline maps now — they didn't at the time I built the tool — but my offline maps are far more controllable in what data I pull down. And if I need data I haven't got, and I have a cell signal, I can fetch it on the fly and add it to the offline cache.)

Google maps was much worse at the time about finding rest areas. They're better marginally better now, but it's still pretty tedious to do on mobile. (There's no general search for it; you can search rest areas and usually get rest areas + junk, but you also really want to also search at the same time for, e.g., Flying Js, Loves. Contextual knowledge about the road would be good too, in case I'm on a turnpike. Also, still waiting for it to realize that, if I'm looking for gas, food, etc. … I want it downroad.) Admittedly my own implementation could have been better here, but I also lack the nice datasets that Google has…

OSM's map data is, in my opinion, better.

The GPS device I have can acquire a signal pretty much instantly. The phone … cannot. Useful in situations where we needed a quick answer, b/c things are happening at 60mph.

Though, we did end up supplementing the program with the phone. (On-the-fly routing is better in Maps, b/c it's a really tough problem, and I didn't build an interface into OpenRoute or whatever its called.)

OpenLayers is an amazing library, too.


👤 snide
My entire linux Desktop feels this way! It's my favorite part of working in a barebones Linux distro like Arch. I've got to build everything from the ground up. Need a screenshot program? OK... let's pull in Flameshot. Where's it going to host that image? Well, let's create a watch folder and shuttle everything off to a GCP static bucket.

Window manager? I3... heh, let's build a bunch of scripts. Vim? Well... man, that's a whole ecosystem of tooling I an hack together and write against.

I do this as a designer. I'm actually not a fantastic programmer, I just like the flexibility of building tools that are specific to me. My entire desktop feels like a love letter to building cool things the way I want.


👤 jrm4
I live by them; I probably couldn't name them all, they've become so embedded in my flow.

Probably the most important part of my flow is the following; it's a method for doing a personal "inbox" GTD style, 100% reliant on email + zim-wiki. I have a script that, when called manually, searches for new "inbox-marked" emails (i.e. ONLY those sent from me to me), and copies them to my zim notebook (specifically, to the page corresponding to "today" in the journal) as an open checkbox item.

Supporting that is-

- Desktop: a little shell script that pops open a zenity window to send such an email

- Smartphone: An android app called Blitzmail that does that and only that.(pops a window and sends to an address with no other interaction)

This replaces a LOT of things for me and helps prioritize immensely, (i.e. strongly prevents "email inbox as to-do list" which is a bad idea)


👤 tedyoung
I created "Kid Money Manager", a tool to help manage my son's virtual account. He wasn't old enough to open his own bank account when I started, but we needed some way to track his "earnings" (returning bottles for their deposits or gifts from grandparents) and spending. It has both a Web UI and access via SMS text messages. We mainly use the text messaging—entering transactions at the store, etc.— since I didn't want to write a dedicated phone app for such a simple interaction.

Created it from scratch, live coding it on my (https://JitterTed.Stream) Twitch channel (and some videos on my YouTube channel at https://JitterTed.TV). Written using TDD in Java + Spring Boot, deployed on Heroku and open-source at https://github.com/tedyoung/kid-bank.

I also recently wrote "Format Hero" (https://formathero.dev), because I could never remember which letters to use in Java's DateTimeFormatter. Was also a good demonstration of Hexagonal Architecture and, of course, I live coded it, TDDing all the way. Source is at https://github.com/jitterted/format-hero. Still some work to do on that one, but filled my immediate need.

[edit: added proper links for Stream/YouTube]


👤 lbutler
I work as a water engineer, specializing in building hydraulic models so water utilities can simulate their network.

A big part of that is calibrating them which can be time consuming, you look through hundreds of options. I create a few web based apps to help grind through these tasks but ultimately they were for my own use as a consultant to close projects quickly.

I did pull out the engine as its own open source library for other to use, and that ended up helping me get my current role where I can now maintain it and be paid at the same time.

https://github.com/modelcreate/epanet-js


👤 danbmil99
Dozens if not hundreds (my github recently exceeded 100 repos; more than half are personal projects)

What I've done at every job I've had (in software) is convince my boss "it's just a little code, let's open-source it! Maybe it'll go viral and a community will form to contribute & make it better!"

Which basically never happens (well it did once, in a big way) -- but when I'm working my next gig, guess what? I can use all that code again. And this time I can honestly recommend, "Let's use this thing on github, it does what we want & it's open source!!"


👤 ghughes
I have a fun one. The front door to my house had an automatic door opener, paired with a single-button remote control to unlock and open the door. The remote control was annoying to carry and use. (This was before IoT became a thing.)

I pried open the remote, soldered on an extra circuit bypassing the push switch, and hooked it up to an Arduino. When a packet is sent over serial, the Arduino simulates a button push:

    const int basePin = 2;

    void triggerRemote() {
        digitalWrite(basePin, HIGH);
        delay(2000);
        digitalWrite(basePin, LOW);
    }

    void setup() {
        pinMode(basePin, OUTPUT);
        Serial.begin(9600);
    }

    void loop() {
        if (Serial.available() > 0) {
            Serial.read();
            triggerRemote();
        }
    }
This was paired with a tiny web server to do the serial write:

    #!/opt/bin/python2.6

    PORT = 5525

    import BaseHTTPServer, SocketServer

    class LoccaHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
        server_version = "LoccaServer/1.0"
        def do_GET(self):
            if self.path.startswith("/trigger"):
                serial.write('A')
                self.send_response(200)
            else:
                self.send_error(404)

    serial = open("/dev/ttyACM0", 'wb', 0)

    httpd = SocketServer.TCPServer(("", PORT), LoccaHTTPRequestHandler, False)
    httpd.allow_reuse_address = True
    httpd.server_bind()
    httpd.server_activate()
    httpd.serve_forever()
Finally I threw together an iPhone app with the most basic UI imaginable: a static full-screen photo of the remote; tap once, it fires off a HTTP request, and the door swings open:

    - (IBAction)triggerRemote:(id)sender {
        NSURL *url = [NSURL URLWithString:@"http://10.0.8.48:5525/trigger"];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [NSURLConnection connectionWithRequest:request delegate:nil];
    }
That's basically all of the code. Considering how much of a janky hack this is, it worked great.

Ancient write-up with some photos: https://web.archive.org/web/20120103180640/http://ghughes.co...


👤 maxmunzel
After a quick burst of manic energy during exam phase, I decided to solve the pigeon problem on my balcony once and for all (and in a humane way).

So I bought a cheap electric water gun from Amazon, built in WiFi using an ESP8266 and a relay shield; 3D printed a window mount for my old iPhone (running a webcam app) and hacked together some openCV code in python.

After all this was working on my desk, I had the pleasure to discover that the PCB Antenna of the ESP is to weak to receive WiFi on my balcony so I connected the ESP to my (current) iPhone hotspot and wrote a small go relay for my server so that my laptop can send the shooting commands to the water gun ~~over the internet~~. Oh and while I was at it, I added a Siri Shortcut, so it’s voice controllable, too. (They are surprisingly hacker-friendly)

The surprising thing is, that this Ruben Goldberg machine actually works really well and without much fiddling.


👤 nilshauk
Some weeks ago I wrote a couple of bookmarklets, one of which was this:

javascript:(function(){ location.href = `https://nitter.net${location.pathname}` })();

You can take this JavaScript snippet and save it as a clickable bookmark (hence the name bookmarklet) in you browser. I've named this "re-open in Nitter". I deleted my Twitter account a while back but sometimes I get handed a Twitter link. This snippet let's me quickly re-open the link in Nitter which is a nag-free way to browse Twitter without having an account. :)


👤 Sohcahtoa82
I have a strange problem with my monitor that I solved with a program.

Basically, I use a USB switch to switch my mouse, keyboard, and webcam between my personal desktop computer and the MacBook I use for work. I tried a full KVM switch at first, but every time I'd switch it to my MacBook, Windows on my PC would flip its shit. With the primary monitor disconnected, it would move everything to the secondary monitor, which was fine, except that when I moved the KVM switch back to my PC, it would move everything back to my primary display, whether or not it was originally on my primary or secondary. Additionally, since my two monitors are different resolutions, all my window sizing was wrong.

I tried to get around this by plugging my PC into my monitor's Display Port and plugging the MacBook into an HDMI port and just telling my monitor to switch inputs, and for the most part it works, but at 1 PM every day, if my monitor is set to HDMI, it drops the DP connection, making Windows think it lost the monitor, putting me back at square one.

So I wrote a simple program in Python that sits in my notification tray. I can tell it to save or restore all my window positions. So if Windows loses the monitor, after it comes back, I can restore everything to where it was.

As a bonus, I also added a "Easy Copy/Paste" menu to quickly copy emojis like ¯\_(ツ)_/¯ and ಠ_ಠ to my clipboard.


👤 acutesoftware
I love writing personal programs - you get to re-invent the wheel your own way to learn exactly how things work, with no code reviews or people shouting "[BLAH] ALREADY DOES THIS".

Sometimes you just want to code and see if you can recreate BLAH for yourself.

My oddest program was called 'heater' - it variable settings from warm -> hot and would peg the CPU at different rates (at the time I was in an unheated office, and rather than go buy a heater - I did what all programmers do and re-invent the wheel)

Programming is fun!


👤 asdff
Any time I find myself doing something twice on a computer, I try and think if it would be easy to write some tool and do it if the value makes sense. Usually these are teensy little utilities that might pull data from websites, wrangle text and handle common files in my life, let me know upcoming meetings and connect to them, or even just little hobbies like making a scraper and local database of recipes vs manually going to that js heavy website prone to link rot.

All these exist on the command line, some are short functions in my bashrc, and some are more substantial written as discrete scripts and run via launch daemons. Not having to worry about gui or capturing each and every test case makes solutions fast and only a couple to a few dozen lines most of the time. I don't worry about awkard characters in my strings and all the esoteric regex and special cases that would need to go into a production ready script, because i simply don't use those characters in strings or do anything funky that stack overflow comments like to bring up as a potential pitfall. Makes it easy when I am my own client. plus it makes it easy getting all these programs to some new computer of whatever OS when all I need to do is pull a git repo full of these scripts to install.


👤 mavci
Hacker News is part of my daily life. I try to follow the top stories every day when I have the opportunity. In order not to miss important stories on my busy days, I prepared a notification service. It was a very simple, ~40-line PHP script that sends me notifications for stories with over 200 points. I have been using this service for 7 months and I no longer worry about missing important stories.

Finally, I made this service available to everyone so that it can be useful to others. I have also obtained the necessary permissions from the HN moderators to share such a service with you. So, I hope you will not miss important stories from this awesome platform with the help of this service.

https://hnn.avci.me


👤 cm2187
I have the feeling I am creating one every two weeks. If you tolerate windows, C# is a great multi-purpose language to develop quickly tools across desktop GUI, CLI and websites.

A UI over ffmpeg to look into downloaded movies and add/remove/rename/change default tracks without recompressing (or re compressing certain tracks only). And to autorename files with imdb titles and ids. And another one to collect timestamp from videos to edit out segments. Or to merge videos, auto finding the best size, fps, etc.

Own mp3 player with ability to exclude songs, import files from different sources and sync playlists with itunes on windows through COM. (Had so many bad experiences with itunes that I don’t trust it as my reference for song data, ratings and playlists and only use it to sync iphones).

Various tools to edit and manipulate gpx (fix time zones mostly and apply gps to photos) or srt files.

All sort of web scrapers.

A nimbletext-like on which you can drop files

A home website that contains the downloadable imdb data to manage my movie library and suggest movies I don’t own already.

Music sorter to try new songs with fast keyboard shortcuts to fast forward/flag/discard. Same for photos.

Lots of CLI tools: CLI for my domain names (for instance to maintain a dyndns-like subdomain). My own ACME client for wildcard certs that also updates various softwares with the new certificate (IIS, mail server, will look into synology soon). Tool for wake-on-lan my devices. A tool to auto-update the other tools based on a central repository. Various commands to put in a powershell script to send notifications, update my own "dead man snitch" website. Watch new real estate transactions in my neighbourhood on land registry (UK).


👤 throwaway787544
Thousands.

Back in the day we used to clean them up and release them to Freshmeat. Clones of Freshmeat still exist today, but the kids today don't know about it, so nobody uses it, so it's mostly just old apps that are still maintained. But Freshmeat used to be the very first site you'd visit to find open source apps. Sooooo much easier than today where you have to search and search through various sites and still you're only seeing the most popular projects.


👤 cecilpl2
I wrote a web tool that automatically syncs all my brokerage transactions from multiple brokerages (either using their APIs or web scraping). It also grabs daily closing prices of my stocks and relevant foreign exchange rates from public sources, and then presents me with a bunch of graphs that I find relevant. It does my capital gains tax calculations every year.

It took me probably 6 months of hacking on it in my free time.


👤 airbreather
I wrote a fairly large and involved desktop app in Python and PyQt5 to enable me to execute a project I was on where I the functional safety engineer for some fairly serious industrial Burner Management Systems, for a lithium processing plant.

The app enabled me to define the behavior of the BMS system as a state machine represented by a table (using PyQt tableview). It also simulated execution of the code as would be implemented, one scan at a time.

Once there, I added a bunch of tools to print out reports/documentation, run diff against models, extract transition comments where certain tags or similar existed (eg show all transitions with a comment that include "IEC 61511"), version tracking, etc etc etc.

It might sound slightly a trivial problem on first description, but one of the systems had ten burners and it ended up being a hierarchical set of 15 state machines 3 deep and it would have been almost impossible to define the behavior on paper - simulation picked up heaps of minor sequencing issues and allowed us to correct them before actual software was written and tested.

Basically, I ended up with an executable specification (not far off the IEC 61499 dream) that self documented. I could have made it write the core PLC code and export it as XML for import to the PLC programming tool, but it was sort of break even to go that far on SIL 2 systems, so I did not go the full distance on that. At one stage it looked like we might go SIL 3, so this would have been useful in that case.

In the end, I put in maybe 1200 hours to build this, in my spare time. Lots of late nights for well over a year, but I don't think we could have really done the project well without it, or something like it.

I looked at it, and decided to actually commercialize it in the form where I could maybe sell/give it to random punters was whole new level of effort. Plus it seemed to be the sort of software that people go broke trying to sell and support, so I just use it for my own purposes now.


👤 stevenjgarner
I have written many web applications for my own use, where I do not have to take the extra effort to bulletproofing applications for unintended use (validation and verification requirements etc). Three applications stand out:

1) a web application to manage customer Q-tagged VLAN Ethernet circuits within specific color-coded optical fibers of municipal fiber-to-the-home cables (12, 36, 48 and 96 fiber cables). The application enabled fiber optic physical plant to be optimized for customer Ethernet circuits, reducing the cost of implementing customers considerably below industry average.

2) a double-entry bookkeeping system optimized for the monthly US Bankruptcy Court Chapter 11 financial reporting requirements to manage the same company as debtor-in-possession when our largest customer(s) filed bankruptcy during the dot com bust (circa 2001), forcing us to also file for protection. This enabled us to successfully double our customer base, double our revenue and retire all debt while reorganizing in bankruptcy.

3) a general accounting web application emerged from these experiences specializing in multi-currency accounting of businesses specializing in asset management (features that Quickbooks etc just do not have). This built on my personal situation of being a citizen of more than one country.

All 3 of these were developed using PHP/MySQL and I have refactored them over the decades up to PHP ver 8 / MySQL ver 8 running on the latest Ubuntu LTS server version. As I am the sole user (with a few personal assistants), I have been able to focus on the addition of features and capabilities rather than user support, security and general hardening of the applications.


👤 WalterBright
I wrote Empire for my own enjoyment. Turns out, my friends (and even my not friends) liked it, too.

https://classicempire.com/

Also a disassembler, editor, file dumpers of various formats, directory comparators, accounting aids, audio file declicker, hard disk driver, a program that would image a floppy disk, VT52 emulator, etc.


👤 shayan01
Like many people of this community I have written multiple scripts and programs for my own use. Recently I was bored with Tinder, so I wrote a small CLI to automate the likes on Tinder. It's totally stupid and just likes everyone, but I found that it's easier to filter out uninteresting candidates afterwards instead of having to swipe manually in the app.

Another recent thing (this one is open source, search for "5hay/notionbackup"): I wanted regular backups of my Notion workspace, so wrote a little program in Go that does that. I'm doing weekly backups and pushing it to my Google Suite with rclone (encrypted).


👤 matheusmoreira
Absolutely. Most of the software I've written is for my personal use. I enjoy automating and customizing things on my computer, usually by plugging in my own scripts into the programmable environments. I'm also extremely fond of reinventing the wheel on purpose.

My biggest personal project is a streamlined android app I use to easily track my own job performance and statistics. I can back up my performance claims with real data, negotiate more valuable terms and identify optimization opportunities. It's helped me increase my profits by about 60% and also allowed me to work a lot less hours because I know how much time I need to accomplish each task and can optimize the use of my time accordingly.

I don't feel comfortable publishing things on github without at least polishing them a bit first and I no longer have enough free time or motivation to do it. Sometimes I come across an interesting concept that I just have to implement to convince myself it works and that I'm not insane for thinking it. Usually lose interest after it's proven, finishing it is a lot of work and it just feels pointless.


👤 ChuckMcM
Like zillions.

I wired up all my house electrical circuits with a TED[1] unit and wrote code to track electrical usage by circuit.

I've written scripts the automate the creation of parts like screws that can be imported into 3D CAD tools.

I've written code that processes processor data sheets to generate include files for the register definitions.

I wrote a simple CMS to manage web pages.

I've got a bunch of programs that are part of some ML experiments for converting text books into knowledge graphs.

I wrote a simple database to manage all the DVD/Blurays I have so I can know quickly at a yard sale if the movie is one I don't have.

I wrote a 3D graphics package that would talk to the 3DFx libraries for their VooDoo graphics accelerators.

I wrote a filter designer that would optimize RF filters based on standard available parts and a minimum of winding my own coils.

Libraries for STM32 chips so that I could easily go from idea to something I could test.

The list does go on, but you have to understand that before I ever wrote code "for money" I wrote it for fun, learning, and exploration.

[1] https://www.theenergydetective.com/


👤 phone8675309
Yes - I wrote a full DVD authoring workflow to take weekly anime fansubs and produce finished DVDs for friends with either bad internet connections or who preferred to watch in their living rooms.

This was before having an HTPC or media center was a mainstream idea.

All you did was add in the video files sorted by file name in a subdirectory and add a main menu image template, a main menu audio file, and episode select image template (the layouts were static so that the same dvdauthor XML could be used) and it would stitch together a DVD with an intro video, main menu screen with subtitle, play, and episode select options, and generate episode select screens by taking thumbnails from the video files.

Last time I used it was about five years ago before same day/date streaming of anime really took off. I still hack on it from time to time. I don't really have a use for the output, but it's nice to maintain it as the tools it use change/update and as I learn new things.


👤 mdp2021
Hundreds. Look, computers are tool builders and tools hosts, so when you need a tool you build it, if an adequate solution is not already available.

And tools can be anything: organizers, information accessors, information processors, learning aids...

As already mentioned, months ago I had to build a full word processor for Android. I just needed it and what was available was faulty. Worth mentioning because I had to laugh in front of the odd situation of having to build a Word Processor from scratch in 2021 - but there you go, you may need anything.


👤 lph
Most recent program: I wanted time-lapse photos of some potted plants I'm trying to grow. So I stuck QR codes on the pots and take a picture of each one each day with my phone. That goes to Google Photos, and a cron job scans new photos, recognizes the QR code, and copies the photos into directories for each plant with filenames that sort chronologically. Most of the plants died. I am a better programmer than gardener.

Most used program: I keep a journal of practical daily happenings in Emacs org-mode, organized hierarchically by year/month/day. It was too much hassle to add new entries (I'm lazy), so now I have a utility that inserts journal entries in the correct place from the command line, e.g., "add-journal 'talked with roofers to get estimate'". It's turned into an ad-hoc database for recording things like my weight, also, which gets parsed and turned into a graph.


👤 EvanAnderson
Tons and tons of them over the years. I wish I'd kept better track of them because I've caught myself reinventing the wheel now and again.

- When I was a kid using a DOS PC I'd write them in Microsoft QuickBASIC or Turbo Pascal and compile them to EXEs. (I used to drag a few particularly useful ones around with me until a few years ago when the prevalence of 64-bit Windows made running them on a stock Windows machine impossible.) I had stuff there like a random password generator, dumping files to VGA mode 13h (to visually look for patterns in data), drop the DTR on a serial port (to hang up a modem from the command line), search/replace on INI files, and lots of others I've forgotten.

- I wrote a proto-Markdown text processor back in high school when I was taking notes on a vTech Laser PC4[0]. It took files from the vTech and rendered output files with Epson printer formatting codes, centered text, made headings, etc.

- I regularly use a script I wrote to import my phone backups' SMS logs and dump them into my IMAP mailbox. I love being able to search all my email and SMS communication in the same interface.

- I have a podcatcher I wrote bolted onto my (heavily forked) tt-rss[1] installation to download podcasts to a local webserver for archiving and playing.

- My father persists in using a DOS accounting package for his business. A small program I wrote ingests check printing output from the DOS app (meant for dot matrix tractor-fed checks) and reformats it for sheet-fed checks in a laser printer.

- Front-end scripts for lots of command line utilities so that I don't have to remember obscure options for common tasks.

[0] https://oldcomputermuseum.com/laser_pc4.html

[1] https://tt-rss.org/


👤 mfarstad
I made a headless sqlite dbms (not nearly as feature rich as the real thing) for my own embedded development. It can show the values of any table, view specific cells, update cells with a text editor interface, beautifies json, and takes in SQL queries as well.

Got some bugs with formatting complex lines of text, but it works well enough for me. I plan on porting to Rust one of these days.

https://github.com/mathaou/termdbms


👤 ggayan
My main group of friends with whom I play videogames on a daily basis is on Telegram. We use voicechat and stream our gameplay on discord for others to watch/comment in a more private setting (other tools are too public). I wrote a bot that notifies on the telegram group whenever someone starts a stream on discord so others jump in and join the game/stream. Discord shares which game/activity through their API so we know exactly what someone is playing. I also add some personalized randomized spice depending on who is streaming and what they are playing to the telegram bot messages so we can laugh about it.

Whenever the bot has gone down (I turned off the home server or whatever) my friends complain, so I know the bot is fulfilling its purpose :)


👤 playpause
One thing I do (and am curious if anyone else does anything like this) is I dynamically generate PDFs, generally to print out planning sheets and stuff. I like using templated printouts for planning my day/week, because I can scribble over them and break out of the predefined structure when necessary. But I also like digital calendar-type tools for their extra powers - they can pull in weather forecast data, events from shared work calendars, stuff like that. So I have a script that dynamically generates a day-planning PDF in my preferred tabular format, augmented with info from digital sources, before sending it to my printer. It's the best of both worlds.

👤 ashilfarahmand
Market Alerter - I created an app that alerts\emails you if your chosen stock meets some condition. There are many other sites that already do this. However, I wanted it to be able to expressions of one or more stocks. For example, if you want to monitor West Texas Intermediate (WTI) crude price or Brent crude price, you can do it easily. If you want to monitor the crack spread (WTI - Brent), existing solutions are limited. I made this to allow monitoring of combinations of stocks\commodities.

Options Simulator - An extended family member asked me to create a small simulator to help forecast the outcome when making options trades.


👤 tristor
I don't know that I'd consider most of them "programs", but I've written hundreds of small helper scripts of various sorts over the years. Most of them aren't even published anywhere, not out of a desire to keep them from the light, but more because I write them, use them, and forget about them until they are rediscovered years (decades?) later.

One of the simpler scripts I wrote that I actually published is a little helper to output WiFi signal strength on Macs into printable glyphs so that you can include it in your prompts on the terminal.


👤 noobermin
I'm a scientific programmer so almost all my software is for my own personal use.

I'm just kidding, I'm assuming these are not for fun projects (because in that case, idk dozens to idk how many at this point) but general programs for my use as utilities beyond just the fun for programming, and I'm guessing scripts don't count, well once upon a time I made a notes app but that has fallen into disuse unfortunately.

Looking at the comment section, uh, scripts that are just wrappers for various tools (rsync, ffmpeg, others) are a dime-a-dozen I guess, I have so many in my ~/bin directory that I've forgotten what some of them do at this point.

Oh yeah, once upon a time I made a background changing app that just changes my desktop background based on the time so I would have backgrounds that matched the time of day, I did it in CL just because I loved learning CL but I have no real reason to use it in my work. I was going to make it automatically change the timestops based on the season, so evening photos etc change as the length of day changes, and make it based on the sunrise equation[0], but I sort of dropped it a few years ago and haven't really touched it since. You know I might do that again, just for an excuse to learn Lisp again.

[0] https://en.wikipedia.org/wiki/Sunrise_equation


👤 phoehne
I wrote a set of python scripts to pull down economic and stock market data. It pulls down several different data sets mostly from the Fred API service at the Federal Reserve. Using Jinja templates and Matplotlib for graphs, it builds a set of latex files and spits out a PDF that I can review. That way I don't have to look at 4 or 5 different sites to get the overall market picture I want. Essentially my own newsletter... to myself... okay, is that healthy?

👤 BrianHenryIE
I have GoPros on my bike and often when I arrive to work/home I forget to turn them off and the batteries die, so I wrote an app so I can shout across the room, "Hey Siri, stop all cameras".

I don't use it anymore myself and got a bug report last week. It's a couple of years since I've written any Swift at all, so I'm not mad keen on working on it, and I feel a bit bad that I have published it and it's not working. I never put the code on GitHub because the reverse engineering of the Bluetooth was somewhat incorrectly documented in the code and I didn't want to share bad information. Now GoPro have an SDK I could use.

Similarly, I wrote a Siri Shortcut for checking where the nearest Jump (bikeshare) bike is (Python on AWS Lambda). Then Uber sold Jump to Lime and there is no API access for me anymore (Sacramento).

https://www.youtube.com/watch?v=0RzahKxUYqc

https://apps.apple.com/ie/app/stoppro/id1453312416

https://gopro.github.io/OpenGoPro/demos/python/sdk_wireless_...

https://github.com/BrianHenryIE/Bikeshare-Siri-Shortcuts


👤 chimen
Yes. Typely [1]. Made it to aid in writing better articles for myself and some employees at the time. Decided to put it up there after a while and is now being used in many schools around the world. This is the only one that was made for me initially - I have a lot of other projects but they are made for aiding my businesses or to try new ideas.

[1] https://typely.com


👤 touchngthevodka
I spent a week or two creating a trading tool for the popular video game EVE Online. The tool identifies regional arbitrage opportunities between large market hubs and allows me to prioritise the movement of goods to maximise profit while minimising time investment. It also helps me update orders efficiently.

As it provides a decent competitive advantage I have no plans to publicise it, although it is on Github as a portfolio piece.


👤 khaledh
I've written a quick and dirty Django app to organize computer history literature (papers, manuals, books, etc). Every document includes an embedded pdf and is tagged with authors, institutions, and topics. It supports cross-references between documents. I also added a feature to mark a document as read and when it was read.

It has helped me wrap my head around certain areas of computing without getting lost in a pile of pdfs.


👤 verit
Every so often I want to derive a fraction from a decimal value, such as 0.571 => 4/7. The key point is I want good approximations, not exact values. That is, I rather get 4/7 than 571/1000. I had found a tool at one point that did it, but it stopped working, so I made my own.

https://voces.github.io/dec2fract/


👤 jms
I made a command line music playing frontend. It has a list of all my music as a flat text file, then if I run "music" it shuffles randomly, or I can add a regex as an argument to pick the files from the list. It works surprisingly well - given my folder structure I can just type in "music " or "music " or "music " and it just does it. It also has a flag for turning shuffle mode on or off.

Very simple, but very comfortable for me.

I also created my own TODO / dashboard app, where all tasks are on a schedule (do this every x days) and I can enter a value each time I complete a task. These then show up as graphs on my dashboard - helpful for tracking weight etc. I also graph a bunch of random things automatically in the same system (how many unread emails I have).

It also tracks how many tasks are overdue so I can measure my general ability to get stuff done, and if it gets overwhelming I can tweak the settings so it just shows me a few things (or more realistically I tweak the task to either not need doing/tracking, or I slow down it's cadence).


👤 wink
Several, but not many that I actually used daily/weekly for an extended period of time.

I am not a huge fan of podcasts but I do listen to a select few. I am also weird and only listen to them on my main machine at home while doing something else.

I was a huge fan of Juice[0] but it hadn't been updated in ages and at some point its TLS parts were too old and I gave up updating it to Python 3 after a quick try. So I wrote my own Podcast library thing in C++/Qt which talks to a backend, where the data is stored.

[0]: http://juicereceiver.sourceforge.net/

And I wrote a soup.io clone in Clojure that I use mostly for song bookmarking via youtube (but so I can play them). Then I stripped nearly all of the soup features and now it's just a tumblelog I guess. Then after many years I rewrote it and didn't open source the rewrite.

And as you mentioned, the odd metrics/scraping/whatever job that's being run every night and where I actually look at the output several times per week, in one case it's an actual program, yeah.


👤 bexsella
Dozens, one of the more outwardly useful ones notifies me of a certain band's latest LP drop (basically just queries shopify's public-facing JSON for any shop you give it).

I've also got a stupid one: a mouse waggler. My work enforces screen lock times to be 5 minutes, and I have two computers, one on an air gapped network. So when development happened in the air gapped PC, and I inevitably had to look up docs for something, I would always be prompted for my password. So, I made a program that nudged my mouse just slightly every five minutes. That has essentially turned into my Windows API test bed. Someone will ask, how hard will it be to implement X for Windows? I'll try and find a use for it in this waggler, and look how to implement it.

This has also lead to the waggler part being obsoleted by one function call:

   SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED);
It's now a full GUI program with all sorts of timers and reminder things, it also happens to keep my screen on.

👤 tombert
I have a fairly large blu-ray collection (~300 movies, ~15 complete TV series). I rip them and serve them with Jellyfin, which works, but due to codec annoyances, I need to transcode them to run on web browsers, and the SBC I'm running Jellyfin + ZFS on is not really fast enough to transcode in real time.

Since I have a ton of little SBCs sitting around my house, I decided to write a clojure app the queues up and transcodes my movies to H264. It uses Docker Swarm to handle distribution of nodes, RabbitMQ to queue up the movies, and core.async to handle local queuing within the application, and uses the Java NIO filesystem stuff to handle any kind of atomicity.

It's hardly the "first" or the "best" at what it does, but the advantage of writing your own is of course that you can tailor it exactly to your setup, and of course it was fun to write.

https://gitlab.com/tombert/distributed-transcode


👤 pserwylo
I write Android apps for my baby-now-toddler.

At a few months old I created BabyDots [0] as she loved this YouTube video of dancing dots [1] which really settled her when she was upset as a young baby.

At over a year old I added BabyPhone [2] to let her talk to family and have them “talk back” to her even when they were not available. I missed the timing on this and she didn’t enjoy it at all until literally this week when she started talking back to the little baby on the other end of the phone.

At 18 months old I made a book-building app [3] that takes titles of pages on Simple English Wikipedia, and creates pages for a book that can then be exported as a PDF and printed (or viewed on the phone). It also has a website [4] on a free heroku dyno which definitely won’t take much traffic. This was because when she gets interested in, e.g. planets, I don’t want to have to order a book on planets, I want to print one out 5 minutes later to keep her interested.

One of my proudest moments was at my new job where a team member said during our first standup “I have your baby dots app installed and although we don’t do screen time, the music really sooths our kid during nap time!”.

[0] - https://github.com/babydots/babydots [1] - https://www.youtube.com/watch?v=8DILz54aYFU [2] - https://github.com/babydots/babyphone [3] - https://github.com/babydots/babybook [4] - http://book.serwylo.com/


👤 parentheses
So many, I've lost count. Many are private or work-related, but these are the public ones:

https://github.com/bigH/git-fuzzy

https://github.com/bigH/auto-sized-fzf

https://github.com/bigH/interactively

https://github.com/bigH/dotfiles/tree/master/bin

https://github.com/bigH/dotfiles/blob/master/aliases/git.sh

https://github.com/bigH/dotfiles/blob/master/aliases/kubectl...

https://github.com/bigH/dotfiles/blob/master/functions/fzf.s...

https://github.com/bigH/dotfiles/blob/master/functions/core....

So much shell scripting and use of `fzf`. I make things I enjoy and will be happy using and since I spend a lot of time in the terminal, it makes sense to make things like this for me.


👤 btrettel
Some recent small ones I wrote:

- wgetcheck (Python): Downloads a file with wget and verifies a provided hash, for my convenience. Also automatically verifies internal checksums in zip, gz, and other archives, and verifies the size and MD5 checksum provided in a HTTP header. I'll probably next add verifying the provided size of the file to provide some sort of basic check for files without provided checksums. This all would probably be better done by a browser extension, so maybe I'll write one later.

- freeze (Python): A script to update a hash file (same format as shaXXXsum) by adding new files and noting which no longer have matching hashes. Optionally sets the files as immutable [0] to prevent them from being modified or deleted. Intended to be used on files which aren't supposed to change or change infrequently.

[0] https://en.wikipedia.org/wiki/Chattr (chattr +i)


👤 godshatter
I've been writing programs for myself since I started programming on a Tandy Level I. I'm always working on some project or other. Most of them are too big for me, but I do them so I can learn how the real things work. Currently writing an html user agent, but it's not even off the ground yet. I have a program that uses something like genetic algorithms to play go, but it's not doing very well relatively speaking. I wrote a program to resize files using an underlying floating point grid whose size you can specify that tends to work okay. It's slow, but I use it for resizing files for smaller displays and just to tinker with.

There are staples I keep coming back to. I'm always trying to write a reverse ray tracer that shoots photons from light sources and tracks them around to see if they hit a pinhole camera, but they are of course way too slow. I've played with some ideas for compressing images, and I've taken a few runs at the hutter prize (compressing wikipedia). Writing a massive text-based old-school rogue-like is something I keep coming back to.

I used to mod games, and have played with some programs designed to edit different file types I was trying to reverse engineer. I've played around with trying to optimize sha-256 hashing, but haven't gotten anywhere. I also have tons of shells scripts that do various things.

I usually write in straight C these days, though I've tried various programs in D, Free Pascal, Ada, Java, assembly, Perl, BASIC (back in the day) and probably others I've forgotten. I remember in high school writing a game with a friend for one of the early Tandy machines in assembly on paper and then hand-assembling it to machine code and using poke in BASIC to put it in memory and then executing it. We didn't have access to an assembler.

I haven't ever given out any of my code, I just use it to play with ideas and to keep my skills up.


👤 Patrick_Devine
I was so bored at my last job that I wrote my own version of Minesweeper that works in your terminal. You can try it out by running: `docker run -it --rm ghcr.io/pdevine/bombitron`.

It works pretty well w/ Linux, and also iTerm2 on macOS (if you enable mouse reporting events). It's a hot mess if you use Terminal (but no one uses Terminal, right?)


👤 schappim
I made macOCR[1], it is an app that I used for years to make office work easier.

It is a command line app that enables you to turn any text on your screen into text on your clipboard. When you envoke the ocr command, a "screen capture" like cursor is shown. Any text within the bounds will be converted to text.

You could invoke the app using the likes of Alfred.app, LaunchBar, Hammerspoon, Quicksilver, Raycast etc.

I only released it to the world when I swapped the backend out from being Google Vision to Apple's built-in OCR APIs.

I also made a "life management" app marcusOS [2], that does all the usual things you'd expect.

[1] https://github.com/schappim/macOCR

[2] https://s3-ap-southeast-2.amazonaws.com/cdn.amplifier.app/Sh...


👤 toast0
I wrote a PPPoE client with failover so I can keep the session even when one of my gateways fails or is rebooted (this lets me do regular maintenance without interrupting my internet connection); I put it on github[1], but I doubt anyone will use it. I hope there are few people left with the scourge that is PPPoE, and my OS choice means many people would need to switch OSes to use it, so yeah. Also, I don't care to make it easy to use or to promote it, really. (I've mentioned it once or twice and did a Show HN that got less than ten votes, which I kind of expected).

I've also got my personal (network) monitoring software, some 'IoT' stuff to capture temperature and humidity data around my house, and I'm working on a ESP32 based alarm clock pulling data from iCalendar feeds.

[1] https://github.com/russor/ppp_thing


👤 lsb
I have just made a little machine learning model to help me go through the 27k photos from my ten years of cell phone cameras (should this go up on the wall? y/n), and am using a Jupyter notebook for the tick tock of data labeling, image classification, data labeling the most ambiguous, reclassification, etc. Hope to write up soon

👤 sandruso
A webapp which helps with freestyling into rap beats. It throws rhymes at you which u can use to keep it "flowing".

👤 neriymus
I was addicted to refreshing websites - twitter, reddit, etc etc. So I wrote an extension to essentially pull new posts for me every 10 minutes - its actually saved so much of my time.

https://github.com/neriymus/Fetcher if anyone's interested


👤 kissgyorgy
I self-host everything, and I wrote an authentication framework, which I call "Fancy Auth". It is configurable by YAML and works like a proxy in front of all my web apps. It's like a glorified Basic Auth, but can connect to LDAP, htpasswd files, can login with QR Code and Magic Link or via SSH.

I plan to release it some day though.


👤 betaanon
I've created a multithreaded python daemon which every 5 minutes scrapes all currently online cammers on chaturbate and streams to file the ones I've marked as favorites. I've got a text file with tags for each favorited streamer so I can change which ones are being downloaded depending on mood.

👤 lmc
I had been accruing bookmarks in Google Bookmarks since 2008, then saw it was going to be shut down[0]. I liked the workflow and the core features seemed simple enough, so I made a cheap clone - Strudel Bookmarks [1] (I was planning a move to Austria at the time). The code is terrible so I never open sourced it. Took it as an opportunity to try a couple of pieces of tech out... much respect to Hasura[2].

[0]: https://9to5google.com/2021/07/20/google-bookmarks-closure-m...

[1]: https://i.redd.it/uvrv7qsqtct81.png

[2]: https://hasura.io/


👤 yellowapple
When I bought my "new" truck a few months ago, I wanted to load some songs for it to play over USB, but its stereo system only supports artists and albums (via ID3), entirely ignoring playlists or whatever folder structure there is (it just recursively traverses every folder looking for songs). I ended up writing a script[1] which churns through the myriad songs I downloaded via youtube-dl and sets their artist/album/title tags based on the folder and file names (i.e. $ARTIST/$ALBUM/$SONG.mp3). In hindsight I probably could've done this as part of the youtube-dl download process somehow, but it works well enough.

----

[1]: https://gist.github.com/YellowApple/7b9cc54cf6fbc20bf79cf240...


👤 nathants
agr: like ag/ripgrep, but for search and replace. [1]

set-opt: ensure settings in conf files in /etc. [2]

s4: when i need to do distributed data processing and don’t want to import an apache project. [3]

bsv: when i need maximum performance data processing. [4]

tinysnitch: for monitoring network connections to/from my laptop. [5]

new-gocljs: when i need to start a new fullstack web prototype. [6]

cli-aws: when i need to work with aws from cli or go, and don’t want to import the cloudnative equivalent of an apache project. [7]

aws-rce: when i need remote code execution on aws for great good. [8]

1. https://github.com/nathants/agr

2. https://github.com/nathants/bootstraps/blob/master/scripts/s...

3. https://github.com/nathants/s4

4. https://github.com/nathants/bsv

5. https://github.com/nathants/tinysnitch

6. https://github.com/nathants/new-gocljs

7. https://github.com/nathants/cli-aws

8. https://github.com/nathants/aws-rce


👤 BeatQuestGames
Absolutely.

Working on a music visualizer in Unity right now, half the fun is creating it.

The other half is creating music to showcase. Outside of this I'd argue all of my side projects have been created for my personal use.

https://youtu.be/2dv2cjJIh2s


👤 Fergusonb
I created a program that allows me to control the max charge level of my laptop battery on linux, and persists the change through reboot. Written in rust, and I use it several times per week.

I designed it for my system, but it should work on any linux system with a battery, kernel version 5.4+, and systemd.


👤 brundolf
I made a desktop note-taking app for myself because I wasn't happy with any existing options, and it's been great: https://github.com/brundonsmith/writer

- Plaintext

- Single list of notes

- Notes are auto-titled based on the start of the content, and auto-deleted when empty

- Sorted based on recently modified

- Pick a folder on startup, and notes are loaded from/saved to the folder as plain text files (one note == one text file). I use a folder that lives on my Dropbox so I get backup and syncing

- Text is centered and finite-width when full screen, so line wrapping is natural

- All UI except your text disappears when typing, and reappears when you move your mouse

- Light/dark mode toggle

- Made with Electron, so it's cross-platform and easy to modify


👤 Twirrim
Routinely.

I played a D&D character that was, until recently, about as stupid as they could come. Think "Makes Forest Gump look intelligent". A monk who quoted scripture at random that had zero relation to the matter at hand. Never got anyone's name right (always got the first letter right)

So I wrote a discord bot. First in python, then eventually in rust (just because). The bot has a few commands, one to return a random quote from a database, one to add a quote to the database, and one to return a random name that starts with the specified letter.

Of course, things being what they are in D&D, he's suddenly a lot smarter, and the bot is no longer useful. Fun though, an interesting learning exercise.


👤 emacs28
Many, one fun one that comes to mind is last year I made a Python debugger to output error traces exactly how I want to see them. It can display local variables, print the surrounding lines of code and parent function & class name at each trace for context.

I also made a custom debugging print function to print variable names as well as their value with only having to write "print(var)". It also will print the parent function and class names for context. I use this tool more than the debugger day to day now.

I know there are existing alternatives for one or both of these but there's nothing easier than tweaking a tool you wrote yourself. Plus I learned a lot about Python in the process!


👤 analog31
I'm a so called "scientific" programmer, meaning that I use programming as a problem solving tool, and not to create software for others to use. Programming is a lot easier when you're the only user. Here are some items:

* A ransomware detector based on accessing my home network file server via an all-Linux chain that stores file hashes and watches for changes.

* Converting PayPal transaction history from PDF to the numbers needed for my tax return, and some similar tax related scripts.

* Anything involving measurement or data logging, such as temperature, etc. During one episode, I sorted out whether my home furnace was operating intermittently.

I won't count hobby related stuff, which is innumerable.


👤 lucgommans
Most certainly, too many to count. A few are on github, e.g. https://github.com/lgommans/mountall.sh, various others are on https://lucgommans.nl/p/

If you're just having a look around, I might recommend to start with

- the hangman solver as a funny random example https://lucgommans.nl/p/hangman-solver/ (for a game to try it on: apt install bsdgames && hangman)

- https://dro.pm

I use 'cau' a lot myself for 'inline' footnotes in chats, e.g. https://lgms.nl/p/cau/?Look+at+how+much+data+I+can+fit+in+th.... but I could see how most people would not use my server for that. Feel free to steal the code! https://lgms.nl/p/cau/?source

I'd be curious to know how many people haven't made the equivalent of https://lgms.nl/p/ip/, at least if you're from before when icanhazip became popular


👤 greggman3
Lots, sometimes intentionally, sometimes not. I'd say most of the things I have on my github I wrote for myself and then put them up just in case someone else might find them useful.

OTOH I thought some people would enjoy this but no one did so unintentionally it's just for me.

https://mopho-v.org

I use nearly it every day on one or more of Windows, Mac, Desktop, Laptop, and VR (via Oculus Rift's ability to show the desktop in VR). It does have a couple of semi-showstopper bugs that I need to fix but I'm lazy and it continues to mostly meet my use-case well enough that I haven't gotten around to fixing it.


👤 emacs28
The most polished and useful program I've made for personal use is an emacs minor mode that lets you scroll down top lines in a file. I was tired of having to always look all the way at the top of the editor window to read the top lines of a file or small files.

https://github.com/trevorpogue/topspace

I also made a Python tree data structure library to easily parse and read tree structures which I actively use in other personal projects.

https://github.com/trevorpogue/sections


👤 Hithredin
The most simple one, but so useful that time:

This car cheap autoradio has no random nor memory. Everytime the engine start, the music restart from the beginning.

Just coded at a stop a little python script for Nokia to randomize the name of the music files of the usb stick.


👤 csours
The most complicated one I created was a widget showing the status of the factory where I was working at the time.

This wasn't strictly speaking for personal use, but I created it and I was the only one who used it as far as I know.

The info was the same as the main status screen, but I made it frameless and always on top of other programs, and gesture aware. It was about 150 px by 700 px, with little blinkenlights for the statuses. It hung out on the right side of my screen and I could see at a glance whether things were running or not. There was a button to summon the main screen for more details.

The main work was understanding how to handle windows, and UX refinements.


👤 exitnode
I created a very simple CLI tool for logging amateur radio contacts. There are tons of programs doing this but there was too much clicking, thinking, selecting etc involved or were overloaded with distracting stuff.

I want to play with the radio, not with the tool that should help me with that.

My software simply does the following in the order I want it to do:

* asks me for a call sign

* shows info about the call sign gathered from a API

* shows previous contacts with this station

* asks for date, time, band, report, comment and prefills what it can

* submits this information via an API to an online logbook service

More info and code here: https://qrz.is/qrzlogger/


👤 Fradow
I have created a webapp (very ugly, but it works) to control my bar lighting. It's a wall of 3 rows of ~12 bottles. Each bottle can be highlighted individually, per group, or I have configured a few animations.

It's 3 bands of Adafruit Neopixels, which means I could play with colors as well, and it's driven by a Raspberry Pi 1 (accessible on local network only).

Fun fact: it runs on a computer PSU: the Raspberry is low power enough that it run on the stand-by rail, and the PSU is only turned on (by the Pi) when the lighting is on.

Due to how custom and crude it is, I never considered open-sourcing it. It's a fun party trick when I have guests though.


👤 sangupta
A simple server to send notifications to my phone, and an app to view/receive. Now setting up alerts anywhere is super easy.

👤 soren1
I've been liberally trading cryptocurrencies for the past several years and ended up with a bit of tax nightmare, with thousands of trades across many exchanges. I found my self with little choice but to write my own capital gains calculator. At the time I needed it, I couldn't find a suitable open source solution, and I have privacy concerns about paid services. It's no longer just for "personal use", as I've recently published it on GH https://github.com/dleber/capitalg

👤 dohko69
Yeah bunch of scripts mostly. Things I find most useful are tamper/grease monkey scripts that makes interacting with common websites easier.

- I play a lot of chess and I want to click a button to copy the chess PGNs from chess.com easily while playing a game: https://pastebin.com/UKVUXQxc

- Another one is to grab property info from Redfin and paste it in google sheet for easier analysis and comparison b/w properties: https://pastebin.com/EmH66Q0r


👤 jffry
Most of my light bulbs are color-temperature-adjustable. So I wrote a small program which varies the color temperature throughout the day and night.

I started by matching it to the solar elevation, but ultimately I like it more just on a fixed schedule. I've also programmed it to make a more dramatic warm shift near bedtime, and to fade up a bedroom light when it's time to wake up.

Due to the inevitability of scope creep this system also now tracks the charging status and position of my robot vacuum, and I'm working to expand it to collect the 15-minute-interval usage data from my electric provider's website.


👤 aynyc
I have many apps and scripts over the years, but the ones still in use are:

1. StrongLift 5x5 tracker. This is a python CLI based script that tracks 5x5 (Strong Lift) program. I haven't used it in awhile, but a few friends still do.

2. HNews calendar style home page. I wrote this as a way to reduce my daily HN screen time but don't want to miss anything. So I created an app (django on raspberry pi) that downloads from HN API and group HN articles by date and point in a calendar style page. Pretty useful, but the code is still in Py2 and awful.

3. A crawler that downloads swim school class availability so I can sign my kids up.


👤 sbehere
I have created a personal finance tool that Works-For-Me and requires no sharing of login credentials with third parties.

Something that scrapes financial transactions from bank and credit-card accounts in a fully automated way where possible, and semi-automated way where necessary, dumps those transactions into a database, automatically categorizes them, and creates dashboards for commonly used views and analyses.

I've blogged a bit about it here: https://sagar.se/blog/where-is-the-money/


👤 Mc91
I have written some programs...

An old IRC channel I was on migrated to Slack, so I wrote a Python script that logs it in an IRC log-like format, like I use to do on the IRC channel.

I wrote an Android app that tracks my movements if I am moving, and sends it to a server. I wrote it all in about a week in 2018. Have not had time to update it but it works well enough. Have not done much with the data yet, but it has been useful when I am trying to remember when I went somewhere and for things like that.

I use other things, but they're mostly open source programs that I modified slightly for my purposes.


👤 darekkay
Most of the programs I wrote were for my own needs. I've open-sourced many of them, but some are really just for me and closed-source:

- A scraper to get thousands of quiz questions from popular German TV shows and then import them into an Anki deck.

- Sync app between Foobar2000 and Plex playlists.

- A script to enter Steam giveaways for me. After winning over 1000 Steam games and DLCs, I've turned the script off (mainly due to playing more console games lately). I might do a write-up about this one someday.

- A movie management web app. It's been running for 7 years with low maintenance effort.


👤 smokel
Many.

One program that I am particularly happy with is a calendar generator for Scribus.

The Python script generates a year calendar, which I then print as a book. It helps me to plan my art career by week, by month, and by quarter. The custom layout somehow makes me take all the planning very seriously. And there is a lot of room for sketching.

Another recent project is a personal mind map, which I can extend to my own needs. It is heavily inspired by Kinopio, which, unfortunately, is not open source.

I am always amazed that not everybody is using computers and programming in this way.


👤 samjanis
A heck of a lot. Some scripts, other GUI, but out of all the one-offs there are mainly 2 I use every day:

- s3d: fast(ish) image viewer. Basic but it gets the job done.

- Thoth: Text editor with FTP and note-taking features. Even though I uploaded it 2 years ago https://www.mirrorisland.com/thoth but I haven't needed to update anything on it because it does what I need just fine. I also use it to read error logs on various websites via FTP.


👤 savanaly
I created two web apps to help when playing the boardgame Gloomhaven. Both were coded in Elm and were done partly because I had a need for them but mainly just for the joy of coding in Elm. I'll link the github repos of both, the demo is linked in the README for each.

The first app is Battle Objectives [0] which I made so that my group could play with some "enhanced battle objectives" I found online. The fan-made enhanced battle objectives are freely available on Boardgame Geek but I didn't want to print out and cut out all the cards so I coded them into an app. I linked this app on BGG but didn't think it was getting any use from anyone outside my personal Gloomhaven group. But I also found out while writing this post that someone forked Battle Objectives to translate it to German so I guess someone was using it! [1]

The second one is Hitdeck [2] which I made to automate the tedium of reshuffling my hitdeck and of rebuilding it to add and remove cards as the game went on.

Edit: I almost forgot I coded a complete emulation of a solo card game called Friday [3] [4]. I enjoyed the card game a lot but it's well suited to many fast paced rounds and I got tired of having to shuffle all the cards so I made an app to emulate all of that. It's unfortunately just for me because I never got around to adding a tutorial or anything so unless you already know the rules of Friday you'll be pretty lost trying to play.

[0] https://github.com/tristanpendergrass/battle-objectives

[1] https://github.com/ToM-Korn/kampfziele

[2] https://github.com/tristanpendergrass/hitdeck

[3] https://boardgamegeek.com/boardgame/43570/friday

[4] https://github.com/tristanpendergrass/legendary-barnacle


👤 a_passable_dev
I haven been working on my own version of docker-compose that can also work with podman. But the draw for me here isn’t that i wanted to replace docker-compose, or even use podman specifically, but rather that I wanted to have a one stop shop for generating conteinerized projects using my most used languages and frameworks without having to have any tool chains installed locally, and as a bonus point have a wrapper to be able to issue commands inside those containers without having to use the full docker-compose incantations or having to shell into the running containers.

It’s not a full replacement, and I wouldn’t use this in production. It is more meant to help lower the friction for starting new learning projects.

Right now I can do things like `wizard new rails -d postgresql MY_PROJECT` or `wizard rust test` or `wizard start`

It is mostly cli for now but I’ve started working on a nice TUI for it as well.

No good reason for this other than not wanting to depend on environment managers, tool chain managers, or a combination of different tools.

I don’t use docker-compose for almost anything now, but projects generated with my tool are fully docker-compose compatible as I also create a docker-compose file when creating a new project with my tool. It’s been a really fun learning exercise and I learned a LOT about docker and the docker api in the process


👤 egypturnash
I had a nice little Python hack that would watch the weather and set the color of a light in the foyer based on the weather, and override that with a dim red at night because I really did not want a bright blue light when I got up late on a rainy night. I never set up the lights after moving across the country so it’s been dormant.

(There are services out there that can set the color of a light based on the weather, OR on the time, but I’ve never found anything that can do both.)


👤 Paje_mx
I have created custom programs but not the kind to regulate household energy consumption.

I once made a software in form of a digital book in Java it was more like personal motivational book on how I would start my business.

I later converted the software into an app and edited the content to fit an audience, surprisingly the software was a success https://play.google.com/store/apps/details?id=business_ideas...

I later created a few games with Unity and Godot which I shared with friends. They were pretty interesting 2d platformer games. I never uploaded these games but some of my friends still play the color shooter game I made with Godot.

As my programming got better, I started creating slightly advanced software like this music player that I had been using for a while as my default music player. I decided to upload the software on 6th April 2022 for public use https://play.google.com/store/apps/details?id=media.mp3playe...


👤 pklausler
I have been editing code for the last 15 years in an editor that I wrote for myself only.

Most recently, I wrote a "wgrep" program that scans an input of 5-letter words and extracts those that could be a Wordle solution, given a guess and its result on the command line; and another program that determines the best Wordle guess from a list of remaining words (where "best" means "minimizes sum of squares of counts of words with the same outcome").


👤 ericboehs
I created an offline version of YouTube (for Mac). I use Downie to download videos I'm interested in (usually videos download in 10-30 seconds). Then I go to the web app and click play. Using a shell command, it launches IINA and starts playing the video.

I have a mark watched and delete button so that YT's algorithm still works to surface interesting videos.

Having offline videos allows me to watch videos like I couldn't before (even on a stable 1Gbps connection). I can fast-forward instantaneously and there are no ads. Subtitles are also downloaded and a thumbnail.

Another nice feature inherent of offline video is if you want to grab your laptop and go somewhere (I'll sometimes go to the park and eat), you don't have to worry about your video stopping because you don't have internet/need to tether.

The whole app is contained in one executable file (you'll need Ruby) and stores its data in the JSON files that Downie provides.

Screenshot and code: https://gist.github.com/ericboehs/79e7799829d86c3b84d449ad3c...

I've been using it for ~6 months. I've shared it with a few friends but I think I'm the only one that uses it every day.


👤 bayindirh
I've written and still writing small tools to help with my work or personal computing life all the time. Some of them live long and become sophisticated tools, some of them stay as small scripts to help with mundane tasks.

The most used one is a tools called Railgun (https://github.com/hbayindir/railgun/) for sending e-mails from command line via Mailgun.

I've also built a backup tool for SMB shares [0], a simple time tracker [1], and a semi-sophisticated tool for helping me managing PXEBoot symbolic links[2].

Currently I'm working on, albeit slowly, on a tool for organizing Pocket (https://www.getpocket.com) items.

[0]: https://github.com/hbayindir/smb-backup

[1]: https://github.com/hbayindir/Daily-Log-Analyzer

[2]: https://github.com/hbayindir/Hex-IP-Toolkit


👤 scriptstar
I built a Crypto prices chrome extension that shows the top 10 Crypto coins and their prices. All right under my browser, so I don’t have to go to any other website. It’s so helpful, and I love it. I use it every day.

https://chrome.google.com/webstore/detail/crypto-prices-in-y...


👤 minimaul
Absolutely tons - my personal gitlab instance has 152 projects in it. I can't imagine not doing this - it makes my life a ton easier. It means I have little tools that work just the way I want, and usually takes less time that trying to wrangle someone else's into working.

The things that I use (or used to use) a fair bit though:

- a whole set of tooling to take my FLAC/ALAC music collection and transcode it to 256k AAC for my phone (including generating an iTunes library XML file I can just import into Music.app)

- tools to automatically scrape content from various websites and alert me / automatically download things

- a client for SchedulesDirect to feed into tvheadend

- various little game-related tools (often to edit data files)

- a slideshow app

- a Formula1 news aggregator

- tools to pair with RTL-SDR to scrape the readings from my neighbours' temperature sensors

- a simple webui to libvirt

- a game boy emulator (this was really fun!)

- a transparent tls proxy to evade geoblocking - uses the SNI hostname from ClientHello to push traffic to different VPN endpoints so I can watch things like F1TV live from the UK

- tools to scrape the DSL stats from my modems when I used to have DSL for diagnosing faults

I also write a ton of small scripts for work use - eg:

- a tool to allow me to pick ECS containers from a list for aws ecs execute-command

- wrappers around the AWS API to generate and update launch templates


👤 dexterlagan
I wrote a ton, like most people. The most complex ones would have to be Tax Helper, an extensible accounting tool to get my taxes done in a minute: https://github.com/DexterLagan/tax-helper

Another one I'm sorta proud of being the only one using is Invoicer, a one-click invoicing app: https://github.com/DexterLagan/invoicer

Last one I'd consider strictly personal would be Todo Master, an advanced todo with calendar, preset/macro facilities for generating dev reports and tons of other features only I would find a use for: https://github.com/DexterLagan/todo-master

Oh wait, there's also Database Master, born out of frustration with MySQL Workbench: https://github.com/DexterLagan/database-master

As far as I know, most if not all of my github repos are only used by myself.

Cheers


👤 RheingoldRiver
I made a Firefox extension (and accompanying autohotkey script) because muting Twitch streams of League of Legends esports broadcasts in between games with my mouse was irritating and I could find no existing way to do it with a keyboard shortcut. https://github.com/RheingoldRiver/MuteTabsMatchingPattern

👤 patch_collector
I'm a consultant who fills out a timecard every week. I made an integration for Toggl (https://track.toggl.com) that summarizes my week, and makes it easier to transfer my time into the timecard. It's mostly for my personal use, though a few coworkers also use it.

https://toggl.clayson.io


👤 krstffr
When starting my freelance career back in 2012 I had a pretty simple idea on how to track time using only google calendar and this tiny web app I wrote. Used it literally every workday since then, and even got a colleague (another freelancer) to use it with the quote “the first time tracker to ever work for me, and I’ve tried a lot!”. He is still using it last time I checked.

So I guess it is actually used by one more person than me!


👤 ryandrake
I wrote a Poker 'tournament clock' application for macOS that I use to run home games. There are many of these out there, mostly commercial software, but I didn't really care for any of the existing ones. I display it on my living room TV and it can be remote controlled over the network from a phone or Apple watch at the table. Never got around to releasing it, as it's mostly a hobby project.

👤 mbreese
Ignoring that I write software to analyze biological data in a lab, so everything I write is really just for me (and includes a lot of infrastructure type code like a sub-request authentication server for nginx)…

Two programs that to wrote just to make my life easier: one for viewing tab delimited data in a tabular TUI, and another for getting data from my server back to my local machine without using scp. The second one is actually quite handy. To use it, you start a daemon on your local machine. Then when you SSH to the server, it creates an SSH tunnel back to the local daemon. The tunnel is setup to use a Unix socket, so you don’t have authentication issues to worry about (just file permissions). Then to send a file back to your local computer, it’s just “rtun send remote1 {remote2…} local”. The best part though, is if you want to view a remote image, you can run “rtun view file1 {file2…}” and it will open the image locally (it transfers the file as a temp file and calls “open”, etc). When you generate a bunch of figures remotely, being able to open them locally from the remote command line is very helpful.


👤 naugtur
I wrote a tool to convert a YouTube playlist url into a RSS podcast url compatible with podcast player apps. I use it a lot. handsfreeyoutube.vercel.app

I wrote a simple app to turn an inperson tabletop conversation game accessory (pieces of paper) into something that can be used remotely in a pandemic. totpal.vercel.app

And I wrote a bunch of debugging/diagnostics tools for node.js. some for fun, some I actually needed. NPM: debugging-aid


👤 jasfi
I wrote a a huge tech stack in Flutter and Nim. I really wanted to use Nim, and the stack kept growing the stack as my needs grew.

Now I'm planning on releasing most of it as Open Source: https://nexusdev.tools

I really didn't plan on writing my own tech stack, because that's the last thing you typically do in a startup, especially if you're the sole founder. Nim has some basic web functionality in the form of Jester and Karax, so I went with it, despite Nim being relatively unknown compared to Python.

A big reason I went with Flutter is because I realized that the mobile market is huge and a lot of people want an app. Flutter can also be used on the web and the desktop. I'm always thinking about reusability of code. What I ended up with is a Flutter rendering engine which can be powered by the back-end in Nim. However the SDK is language agnostic, really, so I'm adding Python support too (Dart is included as it's needed on the front-end). Any desired language can be added in theory, as long as it can produce JSON and send it over a socket.


👤 jim_lawless
Yes. There are far too many to mention all of them, but here are some that are probably among the more recent.

Windows clipboard capture to file tool. Any new image placed on the clipboard is written to a sequentially-numbered file so that I can just hit various Print-Screen key combinations or I can right click an image in a browser and click Copy to capture it.

Python / PIL scripts to arrange directories of images into seamlessly connected wallpaper images.

Lots of email automation scripts, both sending and receiving. ( Pruning spam, marking all of my unread messages read, sending alerts for blog post updates. )

Scripts to convert filenames to all lowercase in a folder.

Startup scripts that forcibly turn off Windows options that I don't want because Windows update sometimes re-enables these.

Python/Bash + Cheese - Poor man's security system. I used an old netbook with the camera pointed at the inside door of a house I used to own take a picture of the door area and send it to me via email so that I could monitor to see if anyone had been inside while I was gone for an overnight trip.

Custom RSS aggregator scripts ... sends results to me in email so that I keep a record of the articles by day.

...etc., ...etc.


👤 na85
>Curious to know if anyone has written programs for their own, regular, & personal use. And if so what they are?

I wrote an algorithmic trading bot in Common Lisp. Basically it uses statistical arbitrage to buy low and sell high.

It runs continuously so I'm not sure if that fits the spirit of your question.

Aside from various random shell scripts, I also wrote a python script that would alert me via push notifications when my plants need watering.


👤 probabletrain
Out of frustration with the built in Mac Notes app, and with the loading times of Notion, I made my own while waiting in airports on the way to and from a holiday:

https://notes.probabletrain.com/

It was a handy excuse to try out YJS, as I (for no good reason) wanted it to sync live without conflicts, despite it not really being a multiplayer application. It can be opened across tabs on the same machine with updates propagating live across tabs, or by signing in with Google, can be opened across devices/browsers (with live syncing via websockets). I needed this so I could sync notes between my work and personal laptops.

Some other features:

- Keyboard friendly (but very mouse unfriendly)

- Markdown 'preview': typing markdown adds styles without changing what you typed. For example, '#' will still be visible in headings. The only markdown supported is headings, bullet points, and inline code.

- Good luck getting any use out of it on mobile

- Is a PWA, so I can open it on Mac with CMD+Space, 'notes', Enter

It does exactly what I need it to do and nothing more, and is extremely user-unfriendly.


👤 trafnar
I made a video player for studying languages (Chinese in my case) its fully keyboard driven and allows marking areas of the video to be looped, so I can play through the video and efficiently mark all the areas with speech, then loop through those and navigate between them. I can also write a note for each marked area, which I use to transcribe and translate the video content.

I'll make it public in the near future.


👤 MicroSplit
For our sisters birthday, my brother created an iPhone app called kat in a kan. Just like a vintage toy called cow in a can. When you tipped the can upside down, it would make a moo sound. Ours made four different animal sounds. I drew child quality pictures of animals such as pig, moose, chicken hawk, and wildcat. Select an animal and tip your phone and it made the animal sound. Our sister loved it.

👤 meichenf
I have an ESP8266 running a tiny webstack on my local wifi that is wired to a low voltage relay that turns on my hot water heater (tankless). Combined this with a Apple shortcut so I can tell Siri to turn on the device (send a post request to the unit). Basically just a hacked together system to avoid using Homekit. It's been running great for 6 years with no maintenance so no complaints.

👤 cranium
I love writing those ! They are (mostly) short to write and provide tons of value because they are tailored for you. And for the code/language, you get to choose your level of hackyness vs cleaness.

I personally wrote:

* Scripts to command my window manager (i3): move workspace to other screen, create a temporary workspace, move a window to a new workspace * CLI scripts to send an ascii version of my calendar to Telegram / Slack * Scripts to generate complex transactions for the accounting of my consultancy company (eg. salary with the social taxes distributed to the right accounts). I use Ledger, so I also use its Python library to read all the transactions and output benefits/expenses/... graphs with matplotlib. Thanks to the matplotlib-backend-kitty project, I can have the graphs directly in my terminal. * Scripts to send convert ePub/mobi and send PDFs to my reMarkable, also a fake printer that directly sends the PDF to the reMarkable * A Pomodoro service with the possibility to subscribe to specific events, eg. play a gong sound when a pomodoro starts


👤 hpeinar
If we exclude smaller scripts then one thing that stands out is a small CLI application (written in nodeJS) which takes all emails from Gmail marked with a special label and uploads their attachments to special Dropbox folder for my company accountant.

So forwarding invoices to my accountant is as easy as throwing a special label onto the email and boom, done.

Was totally worth automating, been using it for like two years now.


👤 sergnio
For you Elden Ring fans I created a little rune calculator app for me and my friend. I thought to throw it on reddit, and several thousand users later I'm happy I did!

I've spent <10 hours on it and did it to learn some next.js & preact, and as a bonus, people have been using it.

https://golden-rune-calc.vercel.app/


👤 TawandaMoyo
I wrote one to organise the highlights and notes I make on the Kindle paperwhite eReader. It takes in the .txt file with the highlights and outputs a folder with every book as a txt/md file which contains all the highlights from that particular book. I use it every week when I review what I've been reading. It's a really simple JS file but when it worked it felt like magic.

👤 sokoloff
Probably the most fun one: Halloween Costume where we became life-sized ARGB LED stick figures

https://imgur.com/a/MoCR1xt

Another useful one was an Alexa skill to pick which kid at random had to do something (like get their shower first). Leaving it up to chance felt fair in a way that “JFC, it doesn’t actually matter!” didn’t.


👤 bpye
I have written these sorts of things, but I do try and put them up on GitHub if I think they’ll be useful to other people. I wrote a tool unimaginatively named wsl-ssh-pageant [0] which I wanted because I use a YubiKey for my SSH key. It has been by far my most popular GitHub project.

I do have other things as well, some on GitHub some not. A scraper to notify me when a local gym booking website changes for a time I’m interested in. A bridge between a BroadLink RM4 and HomeKit for some fans [1] - I wanted to avoid home-assistant. A script to grab my power consumption data. A shim to make gpg-agent compatible with launchd’s socket activation protocol [2].

[0] - https://github.com/benpye/wsl-ssh-pageant

[1] - https://github.com/benpye/hkrm4

[2] - https://github.com/benpye/launchd_shim


👤 mich312
Oh yes, there are a few things that I have built for my personal use over the years. A few of them I have started publishing on the iOS Appstore.

1) The most used one: An iOS app that I use to push myself articles from RSS feeds. I can send notifications via post request to a webserver (similar to services like Pushover). On the device I can select to read later or read directly. Inside the preview of the notification I have placed a WebView so that I use rich html content as preview. The app itself is a RSS reader that I built to learn SwiftUI [0].

2) More recently: A cron+python script that fetches the current queue from my sonos. It creates a list of viral songs and creates our flat-charts from the songs that either myself or my flatmate have added to the queue since last execution of the script.

3) An iOS app to help me create timelapses by taking one photo per day. For instance, I used it to create a timelapse of a blooming tree in spring. It uses OpenCV for image alignment.

4) An iOS app to track my camera setup for film photography [1], and a small flashcards iOS app I use for language learning [2].

5) A website with a covid map of the region i live in (because there was none).

[0] https://apps.apple.com/at/app/newsflash-rss/id1487449663 [1] https://apps.apple.com/at/app/film-logbook/id1520402017 [2] https://apps.apple.com/at/app/cardsflash-flashcards/id159183...


👤 iamscout
Oh yeah. I was annoyed with ctrl+f and its exact spelling requirement, so I wrote an NLP based ctrl+f replacement that works pretty damn well.

https://chrome.google.com/webstore/detail/scout/hgljpodblkjj...


👤 alexswensen
I recently wrote a tool that allows me to copy AWS secrets to another aws account for testing. It ended up being far simpler than doing a copy-paste for doing it repeatedly. I plan to write a few more in the appropriately named repo.

https://github.com/AlexSwensen/useful-scripts


👤 perlgeek
Lots of small little scripts lying around in bin/, some of them for extracting information or downloading stuff from certain websites, some for small admin tasks.

Possibly the most useful for others is a small wrapper around pdftk that splits a PDF file into smaller ones based on the "bookmarks" (the chapter annotations that many PDF readers show as outlines in a side bar).


👤 robacarp
Neat question, I've enjoyed the replies so far.

I've built tons. Most of them don't stick for long. One that has is a file-cabinet organization tool - https://github.com/robacarp/place

- it moves files into place within my filing system - renames the file so that even if it's moved _from_ the filing system I can see where it came from (eg sent in an email) - uses a custom TUI engine I built for this specific task https://github.com/robacarp/keimeno

----------------------

Another is a clean, bare bones, web-extension mode "picture on a new tab" extension. When I came back to firefox a few years ago I couldn't find one amongst the clutter on AMO so I put together https://github.com/robacarp/photographic_start


👤 willjp
This is my favourite passtime. So so many little scripts. Some fun ones:

* cli tool to diff changes to a branch since the last revision you looked at when it has been rebased (only if you haven’t git gc’d!!)

* use fzf to choose from pulseaudio sinks/sources, changing the default and applying it to all current audio streams (ex.change mic or to headphones)

* change the default linux webcam by renaming devices, runs as a udev hook.

* various arch tools. Automatically download mirrorlist and enable the fastest 5 sources. Download/extract a package from the aur. Fzf multiselect all of the .pacnew files, vimdiff them, and delete the .pacnew files for files that changed. Also my own install script with choices for ext4 or zfs.

* use mplayer to play a video as the background on all monitors. I downloaded several 10hrs of ocean/forest sounds and alternate between them.

* tool to convert restructured text to html email in mutt

* using xargs to parallelize updating my most common config repos

* index all git repos on disk, then either fzf choose from or choose best match and cd into it. Not my idea, but I love it so much!

* makefile for my i3 config that looks at avail displays and gives me 10 monitors per display with the same hotkeys (like dwm).

* choose from several presets and recompile st with a different colourscheme.

* categorize all of my bank transactions to monitor my spending over time.

* a cli DM with different Xorg configurations and window managers (music keeps playing, fuse mounts retained). Useful for multimonitor games that require different setups.

* wine, proton scripts to manage prefixes and cd to common windows directories within them.

So,so many more.


👤 mieubrisse
I wanted to have a digital journal that:

1) backed up simply by storing in Google Drive (no special servers or DBs)

2) was principally for Markdown, but capable of storing entries of any type

3) dispensed with any form of folders in favor of tagging and a powerful search, using only the filename to store the tags

I couldn't find anything I really liked, so built https://github.com/mieubrisse/cli-journal . Haven't needed to modify the code in 2 years and it's still working great.

I'm currently (lazily) working on Montu, a terminal app that will read in a Markdown checklist and allow you to check things off with Vim-like bindings while editing the underlying checklist: https://github.com/mieubrisse/montu . It started with my desire to automatically check off the parent checkbox when you check off the children, and grew from there.


👤 ricg
Quite a few. Some I use regularly:

- Text snippet app to reply to support request emails. Use this to reply to about a dozen emails each day. I have over 300 snippets.

- App to got through a folder with my bank statement PDFs and produce a number of transaction and investment reports (calculates IRR and other metrics).

- An app to simulate all possible portfolio combinations for a given set of assets (this was before https://portfoliocharts.com)

- An egg timer that you can start before you set the time right after you put the eggs into the water. Those seconds are precious. Wrote this as a gift for somebody.

- App to generate monthly invoices for my app sales.

- A nice frontend to manipulate csv files.

While I was looking for an apartment, an app to look for new listings and notify me right away (often the nice apartments would already be gone by the time the daily email reached my inbox).

A workout timer. Simple app that tells me the time every 15 seconds. Throws in the occasional Tony Horton quote for motivation.

Oh, and a personal notes app, of course!


👤 thomashabets2
Plenty.

Of the ones I use every day:

* Parallel downloader (https://github.com/ThomasHabets/rslurp)

* Email client (https://github.com/ThomasHabets/cmdg)

* sudo replacement with phone auth: https://github.com/ThomasHabets/sim

* Custom frontend to youtube: https://github.com/ThomasHabets/yurate

* Scan-to-google-drive (https://github.com/ThomasHabets/autoscan)

* My own RSS reader (not published. It will never be end-user friendly enough to compete with other ones. But it's better for me)

And then plenty more than I use occasionally, and some I no longer use. E.g. for a while I used my own SSH replacement, in order to get TPM-backed keys (https://github.com/ThomasHabets/tlssh). Nowadays I use yubikey instead (https://blog.habets.se/2016/01/Yubikey-4-for-SSH-with-physic...).

Those are just the main ones (as in not small, and used every day), and ones that fit what I assume your criteria: ones with no expectation of users other than me. I find myself fixing problems all the time by writing code.


👤 richsu-ca
#1 Card matching game

Browser based game where you try to pick two matches cards. When the pandemic started, I played this a lot with my kids (they were better every time). Got tired of shuffling cards and laying it out and I wanted to learn Javascript, so.

https://github.com/richsuca/memorygame

#2 Grade 2 Spelling Practise

My daughter had to learn spelling of a few words every week in Grade 2. To help her test it, I wrote a Windows desktop app that would say the word and she had to spell it.

https://github.com/richsuca/SpellWell

#3 Bulk Tag Remover from Pinboard

I had too many tags that it became useless so I had to retag all my links in Pinboard, the website doesn't let you do it in bulk so I made a Windows desktop app (also wanted to try out XAML).

https://github.com/richsuca/Retag


👤 dadro
I combined a series of state collected freshwater bio/fisheries data into a web app that maps it out per lake. I use it for discovering and targeting specific fish species within a given area (town/county). I used it with much success during ice fishing season and have started using it for canoe trips to target bucket list species I want to catch.

👤 derivagral
Yep! Made a note app for tracking HN users. Fun making it build React in Greasemonkey before the toolchains matured to make it kinda trivial. It ran off of a real database because I use a few different computers, so localstorage wasn't the right thing.

Stock research platform using relatively cheap ($X00/yr)fundamental data & free pricing APIs.

Had a fun "fight" with a major pricing website for a game. When your (rate-limited! trying to be nice!) crawler needs to turn to OCR to defeat css spriting and they're leaving comments in the HTML though... a bit too combative. Fun project making it work though.

Any game with an economy I end up making stuff for. Personally, I wish games weren't so hostile to automation or user time these days!

I also once SaaS'd a weird file format translator thing on heroku for myself; sometimes old formats or algs do really just disappear!

I've made some small modules for my MagicMirror but haven't had inspiration on further stuff for that just yet.


👤 mtlmtlmtlmtl
One of my first projects was a simple stochiometry calculator library in Common Lisp, for high school chemistry class(for my own use only). It had classes for acids and bases and I could do things like make a 1 liter solution of water and add x moles of some previously defined acid. It would then do the appropriate "reactions" and end up containing the appropriate equilibrium concentration of said acid, its conjugate base, and H3O+. And I could calculate the pH etc. It was very SICP inspired. And it allowed me to check my work during tests. It was also an excellent way of learning to do this type of stochiometry by hand.

I made attempts to extend it to various org-chem concepts, but it quickly became far too difficult in terms of modeling the molecules and reactions at that point and I quickly gave up on it. That taught me a valuable lesson as a budding developer: Some problems are just too hard, and the sooner you realise, the better.


👤 kazinator
I created an accounting system for self-employment activities that does everything: invoicing, tracking expenses and assets, capital cost allowance depreciation of assets.

I have a web app called Tamarind (acronym for throwaway mail alias randomization is not defeatable). I can create randomized e-mail aliases there which instantly go live. Likewise, delete them. Each entry is associated with a memo field that can contain URL's (these get rendered into links). Also a date of creation. The UI lets you edit the order: selecgt entries by checkbox and move them up and down, or to the top or bottom. There is a regex search box. It can authenticate the user using SASL or IMAP4. It works by editing a mail aliases file; your mail server has to know to include that one. It can work with the main /etc/aliases; Tamarind will avoid modifying any parts of the file it doesn't know about, confining itself to the area between its markers.


👤 fuzzythinker
Took about a year to finish a TradingView like app, with features TradingView doesn't have and missing features it has that I don't care about. Intention from the start is it's just for myself, as making publicly available would take longer plus time needed to support, which may or may not be recoupable even if I charge for it.

👤 0815haro
Darn yes. I built a web based RSS Feed Reader that can also subscribe to e-mail newsletter. It is really just a stream. No nagging, if there are unread messages. Categorisation and search are only second class citizens.

I found that everything else will overwelm me time and time again.

I really wanted to publish it for others to use. Without any serious subscription or payments, maybe patreon.

The "problem" is, that I'm based in germany and you can't just have a website, that integrates other peoples content without having a good lawyer, I guess.

Plus it would be a really good idea to block any scripts that feed creators put in their stuff to f*ck with other peoples systems. But you're not allowed to change feed content, or at least that might be a concern. Not to speak of if people subscribe to illegal stuff and you show it on your site (even only to them), maybe?

Too much uncertainty, so I'm nearly sure I will stay to be the only citizen in this neighbourhood.


👤 alsetmusic
This probably isn't quite what OP had in mind, but I put together a number of Python and Bash scripts to control my home media center. Then I used the iOS Alfred app to give them a front end on my phone as a remote. I also made them actionable with various flags so I could call them by typing them into the Mac Alfred app.

Power on / off home theater device and set inputs Power projector on / off and set inputs Make calls to both at the same time working together Call AppleScripts to control music playing through the stereo from a connected Mac mini

I also built a tool for a friend in Bash and AppleScript. It watches a list of his favorite streamers and then calls to the Downie video download app to begin recording their streams. He runs it on a headless Mac mini checking each person in the list every two minutes.

Of all the things I've made for myself or others, these are the two that would most resemble a user-facing GUIable end-product.

edit: a letter


👤 tbillington
I got so sick and tired of `rm -rf node_modules` that I made a tool to do it for me, recursively, and eventually supporting tons of different project types thanks to open source contributors.

Sounds dumb but is surprisingly useful.

https://github.com/tbillington/kondo


👤 Jaruzel
Yup millions. Almost a new one every day....

Most are just one-off utilities to solve a problem. Some people would do them in bash, or python, or PowerShell. I do them in C#, because I know it well, and can code it without thinking...

A Few 'Big' programs I've written are:

- Custom SMTP server to proxy in front of an Exchange Server - ran 24/7 for over a decade until last year when I migrated to Exchange Online.

- Gopher Client for Windows which people actually use! [1]

- A application launcher/dock thing that sits at the top of my screen with drop down menus for apps sorted into categories, because I cannot stand the windows Start menu.

- A similarly useful transparent current-month calendar that sits in the bottom right of my screen at all times, which saves me having to click on the clock to find out what date 'next Wednesday' is etc.

- An RSS reader in PHP that I use multiple times a day. It's different to most others in that it only shows the current items in the live RSS feed for a site - it has no history. I prefer that, so I don't get anxiety with unread items.

A nice recent one that's only been in constant use for a few months is a Python script that dumps all the data from my weather station and logs it into a MariaDB table. I'm not doing anything with the data just yet, just collecting it. Once I have enough back history to play with, I'll write a web app to display it all nicely.

I could go on and on.... my 'Source Code' folder is massive, full of useful stuff, and half-written ideas.

Oh, and I'm actually not a programmer by trade,

---

[1] http://www.jaruzel.com/gopher/gopher-client-browser-for-wind...


👤 kkfx
Much depend on what you call "program", in "scripting" terms I've written very many, countless, most buggy limited wrapper but very useful time-savers, an example (witch was derived by many others similar, I can't remember them all, this is my version) http://ix.io/3Vbk like this I have around 20+ in use, some written years ago and left almost untouched, some evolved. In "config-as-programs" terms my Emacs config, witch is actually an elisp program is around 4800 lines, my NixOS config, witch is in Nix language, so another program, is a bit more than 1500 SLoC etc. If you means large WebApps, GUIs etc no, I've write some small GUIs and very few WebUIs for some relatives/friends but not for my own personal use...

👤 irchans
- A program for backing up my Master of Orion Save Files - A program for finding the best planet in Master of Orion - A program for calculating my walking pace from time and milage - Many simulations for various games - Several Markov Decision Tree solvers (fairly simple dynamic programming) - Many game strategy solvers - Programs that process my life documentation notes - miles of jogging/walking per month, energy level, wake up time, productivity - Many programs for testing mathematical theories or other math research for fun - Physics or Astro-physics simulations - Investment simulations - CPU Benchmarking programs - Programs for drawing graphics - spirals, mathematical objects, ... - Lots of programs for Project Euler or LeetCode - just for fun. (I probably write around 100 small programs a year for myself, mostly for fun.)

👤 andrelaszlo
- Bookmarking tool with free-text search.

- Web page diff notifier with various heuristics, sms/email notifications, screenshot logging, and js page support.

- Linux keyboard macro tool.

- Dozens of scripts that I use daily to automate parts of my desktop, eg detecting where my laptop is plugged in (or not) and change the display setup, backups, grabbing the local weather report from the most reliable source, etc.

- Simple password manager with Google Secret Manager as a backend.

- A whole bunch of user scripts that fix issues on web sites that I use frequently.

- One or two browser extensions that also fixes web sites. Keyboard shortcuts for the HBO video player. Intercepting requests for certain web sites to swap some calls to a different backend.

- Fork that adds some features to a screen locker.

- Random name generator based on Markov chains in combination with user input and randomness.

And many more! It was fun to see what others are doing, thanks for sharing, everyone.


👤 verhovsky
I made a text box that shows the unicode code points that make up the input text.

https://verhovs.ky/unicode-debugger/

https://github.com/verhovsky/unicode-debugger

It's probably not completely correct and there's probably issues stemming from the fact that text in web browsers is UTF-16 not UTF-8, but I've used it to quickly figure out that someone's input wasn't being parsed correctly because the spaces were actually non-breaking spaces for example. It can be used for noticing when some text has a letter that looks the same but is actually a different letter than you think (homoglyph attack) or to see what makes up an emoji.


👤 noufalibrahim
A few.

1. https://github.com/hamon-in/invoice - A command line invoicing system. I wrote this to handle invoicing for my freelancing and later my company. I wanted to build something similar to ledger-cli for invoices and use a single sqlite db for all things including config

2. https://github.com/nibrahim/Calligraphic-Rulings - I use this to generate rulings for my calligraphy practise and wrapped it up as a tiny web app. http://calligraffiti.in/rulings. The logs suggest that a lot of serious calligraphers use it for their day to day work.

3. https://github.com/nibrahim/Hyde - I wrote this to manage my blogs which were on Jekyll/Octopress

4. https://github.com/nibrahim/showkeys - I wrote this to allow display of keys on the screen while recording technical screencasts. I was recording a series on Emacs at the time

5. https://github.com/nibrahim/IOS-config-mode - I wrote this while working for Cisco to make editing of IOS config files easier for me. (abandoned)

6. https://github.com/nibrahim/tomobi - Something to convert websites into kindle files for reading offline (abandoned)

There were a few others that never saw the light of day but these were the ones I wrote and still use/used. There are also several smaller shell scripts, makefiles, elisp snippets etc.


👤 philmcp
I have repetitive strain injury in my hands which made it difficult to play online poker (it's a lot of mouse moving and clicking i.e. folding)

So I created a script which took a screenshot every 100ms, it scanned the image and checked the cards I had.

If the cards were bad (e.g 2h7s), it clicked "fold" for me automatically


👤 gdulli
I used yt-dlp to download the metadata for the whole SNL youtube channel, over 6000 clips. I loaded it into a database and wrote a Flask app to let me browse through each episode quickly and choose which clips to download. Now I have about 500 of my favorite clips available locally on my Plex server.

👤 silexia
I took a year to write an app to manage my stock portfolio... Everything from stock selection based on fundamental value analysis to tax loss harvesting and gains capturing. I used the Interactive Brokers API to manage my funds and get data along with a Schwab scraper to sanity check data. I currently track 36,000 stocks from every major market on earth. My portfolio is balanced primarily between Japan, US, Australia, and European markets. I manually blocked China and Russia to due to governmental risks in those countries. I now can just run this program with no supervision. Returns have been 20-40% a year with very low risks as I am looking at companies with very high revenues and profits compared to their market price with no bad years in the last 5-10 years.

👤 numbers
I have some useful ones for everyday things, converting one thing to another. Renaming things. Moving things around.

But the most interesting ones I have are the ones that do illegal things. Like download things from other countries, store them on a remote box, do everything behind a pseudonym not associated with my personal online profiles. A lot of NFT mining stuff, so everything becoming available and its prices (if guessable), some of this stuff I share with a small circle but I am not stupid so I don’t like sharing any of this code and it’s not even on my primary computer. Just sits in a nondescript raspberry pi. One of the more illegal but traceable ones was with crypto trading (where I was inflating the price of a coin by a few percentage points), I had to stop because it could be tied back to me.


👤 a_chris
I've built several personal projects to be honest; background jobs, tasks automation, telegram bots to find a house to rent or buy, most of them are kept provate.

The two I'm most proud of are a web analytics that, coincidentally, I've made public today after a few weeks of work:

https://github.com/a-chris/faenz

I developed it for collect data for my personal website and it is working well so far, really happy of it.

The other one is a Google Chrome extension to manage bookmark because I think the default one is a mess and very unpratical to use. I haven't worked on it for a while:

https://github.com/a-chris/peffect-bookmarks-manager


👤 pengo
Dozens, at least. Everything from: NAS apps that download television Electronic Programme Guides and automatically schedule recordings; to personal radio stations that integrate text-to-speech, calendar entries, local news headlines and the family Slack channel with the music on my home server. Utilities for managing the books I read and videos I watch, utilities to randomly insert quotes in my email signatures. And that's before we look at any of the work-related software.

Mostly these are written in Object Pascal via Lazarus and compiled natively for the target platforms, or they're web apps written in javascript and/or PHP. Many use SQLite for data storage; some just use an .ini file if the data is simple and not too volatile; a few are written against a MySQL back end.


👤 anotherevan
A few that I've written to scratch my own itch or fill a need. Some of which I ended up sprucing up a bit and publishing publicly.

sitesync - Program that could sync files and folders on local file system and remote (FTP or SFTP). Mainly used to help maintain a web site that other people were also modifying. It allowed me to develop on my local copy and push changes without clobbering anything someone else had changed. (Unpublished)

erudite - [0] - Pull articles from Instapaper or Pocket and add to your ebook library (including Hacker News integration that includes URLs for corresponding posts!)

bday - [1] - The super simple birthday and anniversary reminder program. Wrote for myself but several family members also like it. Originally on Windows and then ported to Linux as well.

moviesschedule - [2] - Tracks Australian movie release dates and can even maintain a Google calendar of the movies you are interested in.

coffeegrinder - Java program to help fold automation of coffeescript compilation to javascript. Included optional GUI for viewing javascript version updates whenever the .coffee file was saved. (Unpublished)

bom - A little web-site and FTP scraper to retrieve local weather info from the Australian Bureau of Meteorology. (Unpublished)

bgdicecalc - Little GUI program to easily figure out probabilities for various dice rolls in Backgammon. Want to convert this to a web-page some time. (Unpublished)

feedme - Web-site scraper to create RSS feeds of various comic strips (e.g. Dilbert) with the image directly in the feed. (Unpublished)

[0] https://github.com/evmcl/erudite

[1] https://github.com/evmcl/bday

[2] https://github.com/evmcl/movieschedule


👤 davvid
I ended up with so many random git repos, shell scripts and other miscellany that I ended up writing a tool to manage that stuff using a yaml file so that it's easy to transport and recreate my setup anywhere.

"garden" is kinda like a mashup of the flexibility/power of shell scripts with the convenience of being able to declare your development environment.

https://github.com/davvid/garden

I was kinda surprised when someone submitted the first issue =)

https://github.com/davvid/garden/issues/1

git-cola was pretty much written for my own personal use but it grew a few more users along the way.


👤 cynik_
Most recently, I've been building a small server for myself to track my day, todos, and just act as a frontend for some easy scripts (eg. just a direct line to running date to get timestamps). It's been a joy to use htmx and flask and just crank out features quickly.

👤 geocrasher
I wrote my own dns lookup tool in bash because most of the online ones are terrible or can't be customized.

I made my own IP finder site because most of the online ones are terrible (https://justyourip.com/)


👤 max10541
I've written many scripts and programs to make my life easier (and just for fun, really). Here are a few of my most used programs: - A service that constantly checks for freelancing/contract jobs that meet my list of criteria, then sends a desktop+phone push notifications for me to take a deeper look. - An automatic backup service that uses Borg and triggers when I connect my external hard drive to my computer. It handles all kinds of failures and knows how to organize my stuff too. - A savings and spending tracking and reporting dashboard, because I just couldn't find one that "clicks" with me.

I think most of my programs are just automating things I use regularly, but isn't that the point of software, really?


👤 ju-st
- a Python script that turns my loudspeakers off when no audio is played by Windows (by toggling a smart plug over Wifi). Saves quite a bit of energy.

- my TV loudspeaker is frequency corrected by a microcontroller (so that the sound is better) and is connected by Bluetooth (using an ESP32)


👤 neogodless
Tracking Finances

I originally wrote a web app to track my finances in 2003 using classic ASP and T-SQL. In early 2017, I rewrote it from scratch, still using T-SQL, but with C#.NET and jQuery. Lets me review my budget, ensure my net worth is heading in the direction I want, make sure all my payments get made, and ensure my account balances never get too low (with a light forecasting element.)

Ideally I'd open source it, focus on the API documentation so anyone could write a back end, and iron out a few more front-end bugs, but since it gets the job done for me, the motivation never quite strikes me.

https://github.com/jcbeck37/fi-retorch


👤 citeguised
I have a hobby-project where I collect stickered Laptop-Lids [1], and since I get most photos from twitter or by mail, they are often not centered and straight, but somehow skewed. I made a small MacOS-App [2] with Swift that allows me to click on the laptops corners, and export a cropped image (using CIPerspectiveCorrection). Photoshop has this exact feature under "perspective crop", but I wanted to do some Mac-Dev and save some time by not having to boot PS.

[1] https://devlids.com [2] https://github.com/niorad/Skewbacca-Native


👤 dusted
Yes, I tend to write small programs like that all the time, it's one of the reasons I like computers, to write programs to do things.

A few I remember: The FinalKey, hardware device that acts like a keyboard, is a password manager.

OSGG, a lander game I actually want to play.

Chromogen, a bash script that generates lovely static image albums.

"sovs" at work, which fetches a fresh source tree because our procedure requires calling multiple programs with multiple parameters.

Lots of one-off things to fetch something out of some file or do some task on a set of files, for example, I made a utility that let me batch cut video files by giving a list of start-end times.

My memory fails me, and I think it means I should probably be better at keeping those utilities around and organized..


👤 wvenable
I had access to flight information through an API that my work pays for and I rarely care exactly what day to arrive or depart. So I created an application that would dump all flights to a destination over a range of leaving and return dates. It dumped all the data into SQL database so I could filter on price, number and duration of layovers, class, etc. It was incredibly useful for really dialing into what I wanted (no layover over 3 hours, less than $X, etc). Using Google flights is painful by comparison.

Unfortunately I no longer have access to that API. The last time I flew I did this process manually and slowly discovered I should leave on a weekday and leave on a weekend for the best flight.


👤 1vuio0pswjnm7
Yes. Programs that read from stdin, like filters, for making HTTP requests, processing HTML and other marked up forms of text, extracting URLs, encoding/decoding HTML or URLs, extracting binary files from HTTP responses, and so on. The programs I write can be linked together through UNIX pipes and and can do things that programs written for other people, such as curl, cannot do. These programs can in turn be used in scripts that perform more specific tasks, such as the energy consumption monitoring example. I generally do not need any help from browsers or "web APIs" because I have programs to process data/information from the web in any format. All I need are URLs.

👤 manifoldgeo
I created a web app for doing personal accounting with GnuCash files [1]. The mobile app for GnuCash was abandoned around 2018 from what I can tell, and it never had synchronization, so you couldn't easily use it on both mobile and desktop at the same time.

I'm one of only two users as far as I know. It's in a public repository, but I doubt anyone has used it. Personally, I use it nearly every day, and it has enough features that I rarely have to use GnuCash anymore.

The app isn't the most beautiful thing in the world, but it works just well enough to be usable.

References

[1] https://github.com/bxbrenden/gnucash-helper


👤 daltont
Right before seeing this, I was using a JavaFX application that I wrote to extract highlights from videos that I shot this past weekend for my daughter's volleyball team.

I wanted tool where I can zoom in using the mouse wheel and have the zoomed clip extracted. Needed the basic features of HUDL (https://www.hudl.com/), but the generated videos are local files and not controlled by HUDL.

Another UI tool I wrote and use is a tool that scans a directory for JPEG files and uses the EXIF data to create a hierarchy of directories in / format and moves the files to the directory corresponding to its creation date.


👤 PaulDavisThe1st
Years ago, I wrote a complicated Perl application designed to address the fairly strange way that my first wife and I thought about finances. We had two orthogonal ways of dividing up our money: purpose and location. So perhaps we had $1000 for some purpose, but it was actually invested in 4 different locations. The Perl script did some early web scraping to get the balances from each of the locations where we had money, then did the math to divide those balances up based on allocations, and finally presented it to us as a "bank statement" broken down by purpose rather than by location.

I haven't used that approach to money in a couple of decades, but it was very useful for a while.


👤 cracrecry
All the time.

I started using python scripts to invest in the stock market when nobody did that and earned some money.

I modified a digital hygrometer and thermometer so I can register the temperature cycles inside and outside my house. I also do it with my plants in the garden.

I reverse engineer all my GPS(garmin) clocks so I can store or upload GPS coordinates and tracks without some stupid and inefficient web app that the manufacturer controls for me.

I reverse engineered and hacked the routers from old Internet providers and posted the instructions on the internet for others to replicate.

I scan and OCR and process every single ticket and receipt... Do the same with books.

I also have friends that do the same kind of things so it is kinda normal to do those things all the time.


👤 RapperWhoMadeIt
I recently developed a command line chat app that I can self-host, to chat with my friends from the terminal and regain control over my chat data and metadata. I self host the back end in Linode and just for the lolz and "Unix portability" I wrote it entirely in C. I don't really expect this to be useful to anybody else than me and the couple of friends that also use it. I can now chat from the terminal during my working hours and my colleagues think that I am doing something mystical in the terminal or developing in Vim.

You can check it out at:

https://github.com/erodrigufer/papayaChat


👤 bodge5000
Loads, but funnily enough they're something I rarely, if ever, use. Most of it has been dev tooling stuff, especially for game dev, but I've also worked on a few projects for my personal life as well (which again, I never ended up using).

👤 PenguinCoder
Yes of course. Multiple programs in various languages. I find it helps to learn a language or concept by coding up a personal project to achieve the goal I set. I've written web applications and desktop applications, working on writing a few mobile apps too.

Static blog generator from markdown to HTML - Golang

Selfhosted HTML LAN dashboard - PHP

GPIO garage door opener on a PI - Golang

CLI Geoip lookup from mmdb to stdout - C

SNMP client - C

Various web sites - python/flask, bare HTML/JS, Golang

User login 'guardian' daemon (time frame for kids login / tracking) - Golang

Spotify listener - Golang

Web scrapping bots - python

Reverse regular expression (regex pattern to strings that should math) - Golang

CTF score keeping/flag tracker - Golang

And many other small snippets in Perl, Python, C, shell, etc just for one offs or scripting needs.


👤 westoncb
I'd been dealing with an RSI issue for about six years and had largely given up programming because of it, seeing no way around—then had an idea for a new kind of code editor that would let me program with motion sensors instead of seated with mouse + keyboard: http://symbolflux.com/projects/tiledtext

Once I was far enough in I saw the tech could be generalized beyond my own personal use case (it is vaporware though, never got the level where others could use it)—but 99% of the drive was just making something so that I personally could code without pain again.


👤 bcrosby95
Yes. Off the top of my head:

I've built a lot of "cheat" programs for games. Ranging from full on bots to something that just gives me information to act upon.

I also built a very rudimentary market analysis program for Eve Online back when I played, to help me play the market and optimize what I would build/mine/etc.

I have a simple chrome plugin that will auto-fill a form for me with random junk. This makes manually testing a UI with forms a lot faster.

Back when I had a lot of DnD books in pdf form, I built a program that would let me create a set of bookmarks across all the PDFs. DnD likes to spread classes and spells across multiple books, so this made it a lot easier to find stuff.


👤 deanmoriarty
Probably it doesn’t count yet but I have a substantial spreadsheet (20+ sheets) that tracks all my financial life: net worth over time, expenses, taxable lots positions and loss harvesting opportunities, RSU vesting, investment returns, 1040 tax approximations, ideal portfolio allocations and rebalance thresholds, taxable equivalent yields for municipal bonds, safe withdrawal rates approximations, …

I built that incrementally over 10+ years out of necessity and one day I’d like to convert it to a little SaaS and see if anyone would pay money for it. Probably not but it would be a fun exercise so I could add automatic scraping of bank/financial accounts.


👤 kamek
I created a simple command line utility [1] to convert between rotation representations. If anyone has ever dealt with 3D rotations (e.g., euler angles, quaternions, rotation matrices) you probably know that it can be frustrating to know what conventions people are using, especially with euler angles (e.g., intrinsic, extrinsic, passive, active, etc.). So I made a tool where you can explicitly set those conventions with explanations on what they all mean.

I regular refer back to the README myself or test out some conventions with the tool.

[1] https://github.com/kam3k/euler


👤 bskrobisz
I'd be surprised if there existed a significant number of software development professionals who could answer a flat 'no' to this (although I'm certain there exist some amount who only do it when it is more direct a solution than anything else, and not for its own sake).

Most of the code I write for personal use is for one-shot scrapers or "query this database and fiddle with that information to give me something interesting"--the only things larger in scale than that which I continue to work on are a Discord bot and... well, I had been working on a Slay the Spire mod and it's been rotting for quite a while.


👤 adityaathalye
Lots! Mostly little scripts. Even a single function is a complete program, like the one I wrote to check for a domain drop, which I then snagged! Of course the dotfiles and dotemacs must be mentioned too.

Currently writing `shite`, the wee static site generator from shell :D https://github.com/adityaathalye/shite

Two days ago I realised it has no if statements! Now that is going to become a design goal ... I need to add 2 or 3 things to make it fit my requirements, but I'm going to keep the if-s out without resorting to weird contortions.


👤 notacoward
The only two programs I've written since my retirement were entirely for personal use: one to help with attribute-point assignments in an RPG, and one to pick apart GPS-data files (Garmin FIT) to show me views that neither Garmin nor Strava will. I'm fortunate that I have the skills to do this, but I think in the future such "personal programming" will be commonplace even for people who have never worked as programmers. Meanwhile, knowledge of programming plus one other field is often a ticket to stable employment with a good work/life balance (unlike tech itself which tends to lack such balance).

👤 nicoburns
I have two that I use on my personal machine:

1. A minimal "docker-compose without docker" tool. That allows me to run a group of backend web services with a single command and multiplex the terminal output.

2. A browser chooser that I set as my default browser, and which pops up a UI that allows me to choose which browser (and if Chrome, which chrome profile) I want to open links in. Super handy for making sure links get opened in the browser (profile) that has the correct cookies for that account. There are other tools that do this, but they are either written in Electron (slow) or don't support chrome profiles, or don't support macs.


👤 devmor
So many that I ended up setting up a k8s cluster across 5 raspberry pis just to host all the little services my home network uses.

And of course hundreds of little command line utilities from 1 liners to hundreds of lines of Rust or Python scripts.


👤 mathgladiator
So, I'm building a SaaS for primarily myself at this point.

https://www.adama-platform.com/

In a few years, I intend to embrace marketing. However, now I am on the pathless path wandering. I'm writing a post about it, and I'm kind of fine if no one uses it. Sure, it would be amazing if others would see the neatness, but I'm not really in a space for responsibility yet.

Perhaps, I'm going slow on building yet another deck builder with it (as I'm looking into which components to buy versus build for the IDE aspect), but I'm basically retired.


👤 BozeWolf
For fun I made a tool to create 3d printable stamps (or tokens). Upload image, download stl, print, have fun.

I will release it one day. The algorithm is super inefficient and can be 10 times faster. But I am the only user.

View result (and save cpu cycles): https://powpowstamp.com/designer/bc807d49-3899-4969-a342-528...

Upload a design (black/white outlines works best, see example) https://powpowstamp.com/designer/


👤 ocdtrekkie
My home automation software is janky and bad but it works the way I want it to. It's technically open source but I wouldn't recommend it to anyone. I actually run the same software in my car, mostly to handle music, but it has some car-specific features. A fun bit of tech debt here: I wrote it solely for myself but I'm married now, so figuring out how my wife will interact with it (other than texting me to send it a command) has been an interesting new problem to consider.

My library website is similarly jank on the level that mostly only I should use it, though I have worked on generalizing it a bit.


👤 saltymimir
Yep, mostly to do with saving articles and replacing my use of Pocket.

I host a simple API that converts web pages to markdown files using headless browsers and save them into my cloud storage. I can now read the pages offline and free from clutter using a simple markdown viewer or use my own personal website to read them online.

I also have an email address that converts the mails received in it and turn them to markdown files using the same headless browser mechanism. Now my local text editor can sort of act as a mail inbox of its own.

I'm pleasantly surprised by the things I could accomplish with Shortcuts (Mac, iOS) + some webhooks.


👤 binkHN
Latest one is written in Kotlin and compiled to a single executable.

While I know many here dislike “crypto,” it’s used to calculate some details on some OpenSea NFTs I’m interested in. The details on each NFT are varied, but two of these NFTs can have their details combined to create a “more powerful” NFT. Don’t think I should bother going into more detail, but the code calculates every permutation of the details for all the NFTs to identify the best combinations. Didn’t take long to write and I did it for fun as I never compiled Kotlin down to a stand-alone executable and I wanted to give it a try.


👤 nudpiedo
A few ones, mostly scripts, a few personal webpages with a blogging platform, webscrappers and plugins for language learning in Anki, and a chatbot. For sure more software as part of software development which would be more likely "for work" than "for myself".

However very few of those pass the test of time, as it is hard and costly to maintain the quality of a comercial product which has invested the time in usability etc.

Software is a lot of work, but getting started is fun and people can achieve a lot within the few hours. The last touches is where the real greatest effort has to be brought in.


👤 thenoblesunfish
Lots! The most fun one recently is a set of Python scripts for getting audio easily onto my iPhone, where it can be played with Decoupled (https://decoupled.app). That app is awesome, but it doesn't support playlists, so the main thing my script does, beyond the logic of sending the files (via FTP), is use ffmpeg to change the "artist" and "album" metadata for all songs in the playlist, so that I can browse by (playlist tag)/playlist where it'd usually be artist/album.

👤 urbandw311er
All the time. Most recent was a little node app to quickly create Google Meet meeting links. For example when using MacOS Calendar and wanting to schedule in a video call. There isn’t an official Google Meet API so you have to create a Google Calendar event via the API and then add the meeting to that.

This was wrapped in a MacOS Automator workflow, which in turn was wrapped by a keyboard trigger in BetterTouchTool. So now, when I hit Cmd Shift M, a Google Meeting link is created and pasted wherever my cursor happens to be!

It makes a little boing noise too when it pastes the URL which never ceases to please me.


👤 MisterBastahrd
Not for myself, but I once developed an app that would export notes from my dad's Bible concordance app to google docs for backup. At the time, I knew how to use the LAMP stack, so that's what I used, LOL.

👤 hypertexthero
Here are two things I use often that I pieced together using code made by people who can actually write good code:

1. HTML Form to File.txt, to quickly create a post for publishing with a static website generator like Hugo or Jekyll: https://www.simongriffee.com/work/form-to-txt/

2. Pasta Clock, for cooking pasta al dente, not al mush: https://www.simongriffee.com/pastaclock/


👤 bradly
I created a program that I could point at any directory and it would copy all the photos to my external backup drive. It would organize them by year and month from either the metadata or the filename. It would ignore duplicates based on file size or timestamp. I had a low-resolution filter to make sure I wasn't getting thumbnails.

I had photos on all sort of old phones, old laptops, and various external drives for both me and my partner that I wanted to organize to make sure nothing is lost. This program allowed my to just run through everything and let to do all the hard work.


👤 hysan
Some of the more useful (to me) scripts that I've hacked together:

- Flash card generator that combines ffmpeg, waifu2x, and other libraries to upscale clipart and turn them into flashcards for use in a classroom. Sizes it for printing on a number of standard paper sizes. It was really useful for when I used to teach children.

- Tunneling script that, in a much less elegant way, did what ngrok does before ngrok was a thing.

- Backup and restore scripts to reprovision my linux computers.

- Pomodoro timer that can warn you (text-to-speech) and optionally set your monitor brightness to 0 for N minutes to force myself to take breaks.


👤 BrandoElFollito
A note taking app that does exactly what I need, and I can expand it. I will soon add sharing of notes with my wife.

A home dashboard that gathers information from family calendars, school timetables, weather. All this readable from distance.

A chores app (that also displays on the dash above) with info about whose turn it is to fold the laundry, get out garbage etc. It worked for some time and then we reverted back to everyone yelling at everyone to do it.

All of these already exist but I wrote them to exactly meet my needs, and nothing more. Plus I learned quite a bit about Go, TS and Vue.


👤 eddywebs
Yes ! A simple todo list that remembers the state no signup required >> https://eddywebs.com/todo

Best software comes from ones own need.


👤 cik
I have tonnes. Sometimes they're applications, sometimes they're libraries. Recently I've been interested in random experiments to push my exposure to ideas in strange ways. Most recently I wrote a redis module for encryption (https://github.com/chayim/redicrypt). My current project asyncronously fetches me status from various services (GitHub, Jira, Travis) so that I can track all sorts of things.

Personal use is the biggest driver of my ongoing learning.


👤 tailspin2019
Definitely.

The magic here is that there is a lot of hidden, intrinsic value that comes from doing this sort of thing, which isn't immediately obvious to others, and often even you at the time.

I have noticed a trend, when creating software and technology projects for myself, which is that a surprisingly percentage of those projects end up being useful in the not too distant future for commercial projects. In ways that always surprise me.

And even without that, the skills I learn tend to end up being as valuable as whatever direct or time-saving value the script/program gives me.


👤 lucasdicioccio
I've recently written my own static-blog generator. On the one hand, I got irritated trying or figured out I would quickly hit limitations with the popular ones. On the other hand, the effort I would have spent searching for and evaluating the hundreds of existing other ones is on par with re-implementing my own.

I've written about the motivations and the architecture here: https://lucasdicioccio.github.io/how-this-blog-works.html .


👤 Matumio
A customized screensaver that displays random static zooms of my art collection. (Modified from one that would only do animated zooms.)

A Python script that grabs a wireless numpad keyboard (using evdev on Linux) to be used as remote control (volume / next / etc.) instead of keyboard.

A command-line tool "t" to translate a single word using my own match heuristics and a textfile-as-dict I got from somewhere (never updated). Wrote it ~15 years ago, still in regular use.

Tons of others (sleep tracker, custom RSS reader) that I used for years, but eventually stopped using.


👤 kuboble
Most recent example:

My kid loves logical puzzles like this one: https://www.smartgames.eu/uk/one-player-games/little-red-rid...

It comes with a booklet of 40 or so problems which she quickly solved so I wrote a program to generate hundreds more e.g. https://i.gyazo.com/329753a6da1feac287bea02ee04a4e1f.jpg


👤 slmjkdbtl
Mainly reinventing all wheels for myself, operating systems, code editors, game engines, programming languages. Nothing really hit a state that actually replaces my current tool yet, but definitely fun.

👤 jinglejelly
I wrote a web app in Django to automatically transcribe audio interviews, annotate the transcriptions and extract audio fragments. I started building it to help my wife with her MA thesis, as an alternative to expensive social sciences software like nvivo. Unfortunately, she finished her thesis before I finished the app! I later used it to make a few radio documentaries and I was going to try marketing it but it was too much work to get it slick enough. In fact, even I was put off by its lack of slickness and eventually stopped using it.

👤 neverartful
Yes, I have created many. However, one stands out far above the rest in terms of how much I've used it and how big of an impact it has. That's my cloud-based music player. I have my music collection stored in Wasabi (S3 compatible) and I have client-side python code that I normally run on shuffle-play. As I move across different laptops and whether I'm at home or away, I always have my music handily available for listening. My monthly payment for Wasabi storage is $6 and I'm not tied into any proprietary system.

👤 sandreas
I created m4b-tool[1] (audiobooks), labelmaker[2] (html/twig to pdf) and graft[3] (file transfer) for my personal use :-)

[1] https://github.com/sandreas/m4b-tool/

[2] https://pilabor.com/projects/labelmaker/

[3] https://github.com/sandreas/graft


👤 dvh
Text editor, RSS reader, electronic schematic simulator, perfboard designer, optics simulator, browser, git GUI client, music player, expenses tracking app, spreadsheet app (I needed to make simple manual edit in many csv files and waiting for office just took too long, so I made just editor and it launches instantly), numerous one time use chrome extensions, calculator, libv8 based shell, video editor, ad blocker, ...

It usually reaches perfect usability for me very quickly, but to make it usable for others or make it publishable would take months.


👤 olivierduval
An SMS sending server on an Android phone, to send me OTP code from my VPS

👤 mrdazm
I created a no-frills guest list management web app for social get togethers. You rsvp via sms and event hosts can broadcast any updates/reminders as needed. I got a little “dissatisfied” seeing group chats light up with “+1!” when plans were shared. Would be cool to enhance it and make it a business but [excuses here].

Here’s an example event: https://addyourself.to/it/c047e279-f5b4-4de8-9456-3fe71a77aa...


👤 ta04122022
I work in accounting & have automated many parts of my job with Python & Javascript.

My Python CLI tool can read data from different sources & do my job. For example, it can read data from excel using Pandas, & then open Chrome, go to a web site, do login, fill forms, submit payments, etc using Pyautogui. In some cases it uses email & cronjobs to start executing automatically.

In another example, it uses Tesseract OCR to convert PDF to text files, & interactively convert them to CSV files that can be imported to any Accounting software.


👤 ffhhj
I made a domain scraping tool that found a nice 3 letter domain, a few graphic editors for game design, html+js+php minifier, file copiers to backup only certain files, and other automation tools.

👤 weakty
I'm always excited at the prospect of building new or better tools that help me learn the way I want to learn. It's the best low-stakes way for me to learn - especially if I'm not being challenge by work or am just curious about how a programming language works or other set of tools.

My latest is a language learning application to help practice reading comprehension and vocabulary development. [1]

[1] https://github.com/theiceshelf/trunk


👤 bradgessler
I created https://www.thingybase.com/ to track my home inventory and https://legiblenews.com/ for unsensational news.

Thing is, when I create a program for personal use, I go ahead and make it available for the rest of the world because why not?

I’m going to be building software to manage my kids schools science fair project for next year that I’ll also share with the rest of the world.


👤 CameronBanga
I needed to hire a Ruby on Rails engineer a few years back, and didn't have much experience with Rails. So took a weekend to scratch an itch and created a web app where I could input a URL to a YouTube video, and the app would then pull the audio from the file and add it to a podcast RSS feed so that I could listen later on my iPhone in Overcast.

It was super useful for a while, and never turned it into anything more. Was handy for just listening to conference talks and other content where the video wasn't very important.


👤 DamnInteresting
I have a few homegrown tools, the most notable is one I use to record narration for an audiobook-like podcast. I paste my script into the software, then it will go through the script one sentence at a time. I record and re-record it until I am happy with the take, then it moves on to the next sentence. When I'm done, I can download the audio as one merged WAV file.

I occasionally think about sprucing it up to offer for public use, but it's the kind of task that never reaches the top of the to-do list.


👤 vollmond
Ignoring one-off bash scripts as needed, the standout examples of mine are a simple site for doing a specific type of date math in a bookmarkable fashion [0], as well as a webapp for my D&D 3.5 characters (pre-DNDBeyond days) [1]. As far as I know I am the sole user of both.

0: https://day1of.com/

1: https://github.com/imnotpete/character-builder


👤 anfractuosity
I switched from Lightroom to Darktable and with Lightroom it stored the images in folders "year/year-month-day/", so I made a little script that copies the .jpg/.cr2 files from my camera to the right directory based on their metadata. And then in Darktable just re-import this current years directory.

I also created a very hacky script that uses the python paramiko library to ssh to different hosts and spawn a python interpreter which runs a python function remotely for things like grabbing uptimes.


👤 turtle-cpt
I live in a city in Canada and it gets really cold waiting for the busses during the winter.

For some reason my city doesnt have an app to track buses, so I made my own (with a lot of help). Wrote it in Python, it tracks the real time location of any bus number you enter. Took a long time, but it works and now I can ping a bus and see how far away it is before leaving the house.

There's usually a handful of busses on a single route, so I sorted them by distance from my current location. It was easily the funnest project I've done


👤 planb
My whole smart home runs on self written software - but only the components that are highly customized, for example the dashboard, the video doorbell (which consists of multiple devices) and presence detection. Everything that can be solved by general purpose software, I don't bother to create my own software for (like your energy consumption report example, grafana does this better then I could ever do). Using mqtt and node-red, it's easy to connect my own software to the 3rd party stuff.

👤 RSchiaffino
Several, for my work as translator: for example a short autoIt program to create and log translation projects, a short autohotkey program to write different types of smart quotes and n and m dashes in the programs I use to write my translations, a Python program to create and log estimates. Nothing major (all my programs are a few hundred lines of code max.) but they are all programs that I use on a daily basis, in fact they are among the programs I use most frequently.

👤 karmakaze
The one that I use daily is hackerer.news for showing the day's posts not mixed up with popular posts from yesterday. I first made it so I could see all the titles while in the subway and load stories to read when stopped at stations along the commute to the office. Now I work from home but still use it as it saves so much time and visits. I think it gets some regular visits from others but that wasn't my motivation. If you click the date heading it does load yesterday's stories.

👤 joshstrange
> A colleague of mine tracks all of his homes energy use through a custom program which disaggregates the energy consumption per device and outputs a report to a tablet.

This might not be in the "spirt" of this post but your colleague might be interested in looking into Home Assistant. Don't worry, there is plenty of space for custom scripts within HA, but it might be a nice foundation for them to build on as it has energy monitoring stuff built in as well as a way to visualize it all.


👤 scythe
One that I use pretty often is `sortedcitations.lua`, which sorts the citations in a LaTeX file according to their appearance in the text. There are lots of fancy tools and bibliography management, BiBTeX, etc, but in the vast majority of cases I just want a single file with the citations in the right order.

https://gist.github.com/scythe/7cea80364bacf1f1ce6a67786bcbc...


👤 pranav7
I created a calendar time blocker based on Cal Newports time block planner: https://www.calnewport.com/blog/2013/12/21/deep-habits-the-i...

Had bought his book to get into the habit, hated wasting so much paper, so decided to build a web based day planner with simple note taking.


👤 difflens
I have! I've always found GitHub's default diff to be annoying to track changes. I needed a way to align the left and right editors right next to each other so I could get context. So I wrote an app and published it on the GitHub marketplace: https://github.com/marketplace/difflens. I use it everyday and have other (regular) users too. It's free to try

👤 flobosg
To name a few:

* A script that emails me every day a list of new articles published by a selection of academic journals. Using an RSS reader for this turned out to be too messy.

* A script that generates Spotify playlists based on my liked songs, optionally according to some criteria. The playlists can be sorted according to specific song features (higher to lower energy, for example).

* A zettelkasten engine, including search, rendering, and backup of entries.

* A system to generate and upload backups of my photos from my cameras’ SD cards.


👤 millzlane
I made a sleep timer for closing tabs. I couldn't find one so I made it. It bothers me that streaming services will keep playing after I fall asleep and wake me up with a blaring action or musical scene. So with this script I can set how tired I am and after I fall sleep, the program will close the current tab and blank the display to keep the light down.

I don't consider it a program nor do I consider myself a programmer. But man, it was so satisfying to have completed it.


👤 crossroadsguy
Yes, two.

- An Android notes app - just the way I wanted - I never implemented sync and it was not really polished but I didn’t feel like using anything else

- An Android app that does the counting and countdown thingie and relaxation time gap between two sets or even repetitions - with voice over of course (I needed when my trainer was no longer available) - I used to set it one and then there was start/pause/finish. I could tweak the presets.

Then I started using iPhone. It was quite sometimes back.


👤 Ocha
I created a program to use locally for testing emails. It creates intermittent latency and errors on SMTP side and helps you catch code that cannot handle SMTP/network issues (no retry, synchronous code). Now I offer it as a hosted solution and use it myself with every project I develop. If interested project name is Mailsnag and it can be found at https://mailsnag.com/

👤 POiNTx
Clockify polybar integration. Clockify is a time tracker tool. Polybar is a UI bar for window managers like i3 or bspwm. I also have a version that works on wayland and interacts with Waybar but I haven't gotten around to cleaning it up and publishing it.

I click on it when I start working and click when I stop working.

https://github.com/woutdp/polybar-clockify


👤 nurettin
I used lazarus to create an sql editor which can query different databases. It has syntax highlighting, connection coloring, resizable panes, supports multiple result tabs and has filterable/exportable/pivotable result grids. It takes around 30mb of ram, is cross platform and really snappy.

It is missing autocomplete, that is a work in progress.

I just don't want to deal with the burden of answering to issues and tickets, so it remains as my personal toy.


👤 julianz
Lots. - A script and small sqlite DB to download all of a large Youtube channel I wanted to keep. It meant I could just run "get-next-video" whenever I had a spare moment and it would go and grab another one. - A generator of sheets of math puzzles that looked like the ones my kid was struggling with at school, so he could practice (it worked!). - Currently working on something to track homebrew fridge fermentation temps.

👤 mark-r
I've done many, but I'll highlight two today.

The first is a background program to monitor my kids time on the PC. As their limit approaches it pops up a window with a timer countdown. When the countdown reaches zero, they're logged off.

The second is for resizing images. I wasn't happy with the way my image editor did it, and I wanted to do a deep dive on some algorithms so I went for it. Gained some great insight while working out all the bugs.


👤 jefc1111
I built a currency trading backtesting and bot monitoring framework [1]. At times I vaguely considered turning it into a product, but for a number of reasons decided not to. However, I am running it successfully, hosted on my own server and am quite proud of what I achieved :)

[1] https://github.com/jefc1111/zenbot-sim-runner


👤 titaniumcranium
I have a few different ones, mainly running on a Raspberry Pi 3B (which is likely overkill) - A monitor for my infant daughter's room temp that communicates with a "smart plug" to thermostatically control a heater - A second process that creates a dashboard to display temp/humidity - A webcam for said infant daughter - An app for logging and displaying health/fitness data

👤 bichiliad
I have pretty garbage short-term memory in addition to (or because of) ADHD. I made a macOS app to let me take screenshots of parts of a screen and keep them around while I work, essentially extending my own short term memory. I call it ScreenHint (it's essentially a reimplementation of a similar app called Snappy that no longer seems to work) and I use it pretty much every day, any time I'm at my computer.

👤 journey_16162
I have created a Node.js program that would scrape comments from a certain blog, look up websites for email address (some commenters had a website attached) and put them into HubSpot. Then I have created a Chrome extension that would extend HubSpot page and show all scraped comments that belong to the profile, in a popup. This was back in my junior years, trying to get leads for my first product attempt. I felt so smart lol

Also, more recently. I created a simple command line program to print a password.

I.e. you enter b003q3gqbba-

and it prints it like:

1: b

2: 0

3: 0

4: 3

5: q

6: 3

7: g

8 q

9: b

10: b

11: a

12: -

What's the reason? The stupid, insecure password masking that some banks use.


👤 shampto3
I mainly have different cronjob web scrapers that email me results. The latest one is for a local auction site that sells returned items. My scraper does a simple search for items that I’m looking for and then emails me if those items are for sell every day. That way I don’t have to waste time going to the site and looking for it manually, and I’m not tempted by other items that I don’t necessarily need right now.

👤 hprotagonist
lots.

many of them live in my emacs config...

also, a TUI noaa weather interface, piles of little bespoke automations, etc. None of it's portable, none of it's really meant to be.


👤 hkt
Lots of small scripts. Probably my biggest thing is a typing program for my son which has videos my son likes as rewards for typing. Just bash scripts and a custom prompt, but it is software someone else uses so I consider it to be worthwhile. It is a form of speech and language therapy.

(I'd release it but the videos are copyrighted - the clips might come under fair use, but I don't know the law well enough to be sure)


👤 joshdotblack
Totally! I wrote a HIIT timer app using ionic to track workouts :) I only released it to the app store so I could get it onto my iPhone/iPad without having to mess around with provisioning profiles every 30 days: https://apps.apple.com/us/app/biig-hiit/id1598826065

👤 distracted_boy
I have written a bunch of applications but the most used application that I have written that I actually use for myself is my bookmarking application. So when I browse the Internet and I find something from the Internet I want to save, I share it with my Telegram bot that will send the link to my application via webhooks. The app will then fetch the website’s contents and save the information to the database.

👤 Bilal_io
I use Tutanota as my email provider. They're horrible with spam management, and that's because they encrypt data and can't see what I am sending/receiving. So I am almost done with a chrome extension that helps me manage those spam emails, it lets me bulk report to Tutanota, add spam rules for the email and domain, and delete. I'll be open sourcing it and sharing it on HN once done.

👤 jmmv
Yes, many. The problem I have is that I always feel the urge to "clean them up" and post them as open source with corresponding blog posts and all, which ends up being a time sink (and limits what I do because I have to "pick my battles").

Recently, two of those programs have been web services, which are still public... but I have kept the code to myself and it's pretty liberating in a strange way.


👤 deadpanPotato
Last week, I wrote an Add-on for GoogleSheets that scrapes a defined list of company job boards for jobs that fit my criteria, adds them to the sheet, and sends me an SMS with Twilio when a new one is added. Runs every hour, and I can be one of the first people to apply for a newly posted job without having to monitor 15 different sites manually. I also use the sheet to track the application status.

👤 Aeolun
Hmm, I have my own Jira client for desktop. I’m sure I’ll get around to publishing it one day, but for now I get to enjoy it myself.

I just cannot deal with enterprise installations of Jira and their forced insanity/slowness. So now I get to define my own fields, categories and icons, query everything locally, and I never have to worry about it again.

Oh, and if I were using atlassian cloud I wouldn’t have lost all my issues :P


👤 beowulfey
I learned C++ specifically to make a tool for creating protein sequence alignments. In my field I often correlate function across proteins from different species. If you know something like, amino acid #136 from protein A is important for its function, you can use alignments to see that amino acid #249 on protein B probably has the same function. I made a tool to quickly make these comparisons.

👤 omoikane
Last utility I wrote draws a calendar in the terminal, and highlights the current date and also the date of the next full moon. The full moon calculation is not accurate but good enough for me. I run this daily.

https://uguu.org/src_aoba_pl.html

I did that because `cal(1)` broke for some reason, and I felt like making some ASCII art.


👤 blunte
For dev-types and general tinker-problemsolver types, that's assumed.

I can't count how many things I've made, most of which I abandoned after I stopped needing them. Sometimes I just make a one line shell script that uses a command line util, and other cases I'll write a bigger "script" (higher level programming language" which often still leverages command line tools.


👤 alhirzel
For sure, I have written tools for photo management (offloading from camera and getting them ranked and ready for a pass with Darktable). I have a financial management system, task management, a system for lecture slides (generating handouts, lectures) and exams (generating keys and blanks and different forms)... I figure half of HN does this! It would be an interesting poll question.

👤 tonfreed
I've written a bunch of stuff that makes it easier for me to connect to cloud resources, pretty much useless for anyone else because it's tailored to my environments.

I've also written a crapload of data processing apps to scrape through or convert various data I've acquired from places.

If I can save 10 minutes of drudgery by spending an hour writing a python or go app, guaranteed I've done it


👤 oblib
Sure... my most recent one is an app for the sport of Boxing. It's what I tinker on when I'm tired of coding on business software stuff.

It's getting to be a pretty cool too. It has a "Scorecard" and database for boxers, and I've taken my first (shallow) dive into "Sports Analytics" to predict a winner of an upcoming bout, and it's working pretty good too.


👤 valcron1000
A PWA for splitting bills among friends. When we get a receipt we usually split the cost based on what each of us actually consumed (ex. Bob got 2 beers, Alice 3, etc.). I couldn't find a simple app that could do that, so I wrote my own: https://github.com/emlautarom1/Billy

👤 generalEvie
Off the top of my head:

* Converting music files dropped into a folder to a format supported by my car (on a USB stick)

* Detecting HDMI connection (connect/disconnect) and switching audio outputs based on this

* Allowing ufw to whitelist by dynamic DNS hosts

* Zero downtime deployments for web projects (written well before Laravel's Envoyer/Forge but with similar functionality)

* Detect backup HDD and prompt for password / auto-mount when connected


👤 mikelevins
Sure. A list and inventory manager (actually for my mom). Several programs for generating and managing parts of fictional languages. Tools for creating and managing characters and teams in multiplayer games. A bunch of versions of a couple of programming languages. A wysiwig emacs-like editor. Several artificial life programs. A simple paint program. Probably others I’m forgetting.

👤 rollcat
I wrote judo[1] because I was frustrated with Ansible. I wanted a very basic tool that could do 80% of the work in 1% of the code. It has one or two bugs, but I've been using it for personal and work stuff since 2016 and I'm not looking back.

[1]: https://github.com/rollcat/judo


👤 soco
A social media client to my and a friend presences: interacting with followers, more with the more important ones, proposing new ones to follow or some to unfollow (and doing that in bulk), and a few other handy shortcuts. It runs serverless crashing maybe once a month for always novel reasons and costs me like 60$ (AWS costs) and a few hours of programming every month.

👤 mbil
Yes, a few bigger than small software development utilities. One I use almost every day is jeo.py, a TUI for scoring Jeopardy! I was initially scoring using a Google sheet, but this is easier to use without looking down at the keyboard. https://github.com/bi1yeu/jeopy

👤 philjohn
When I moved into my current house the VDSL (FTTC) cabinet that serves my road was full, so I could only get DSL.

I wrote a script that checked the OpenReach availability API every few minutes so that when someone ceased their service (because they were moving homes) I would be sent a link to upgrade my service. I think it took about 2 weeks.

I did the same for the second-chance London 2012 tickets.


👤 DwnVoteHoneyPot
I have To Do List web app that I built for myself in python/django. It's has a kanban board feel where, as time passes, items move from Future -> Today -> Overdue. If Today or Overdue has too many items, I reschedule them to a future date. So the app acts as a To Do List, Kanban board and a Calendar. It has minimal javascsript so it's fast.

👤 kcartlidge
I presumed most developers did, until a few years ago I asked some colleagues and not one of them said yes. Here's a handful of mine ...

- Static site generator

- Web server that delivers live-transformed Markdown

- EPUB and/or DOCX generator

- Book library management tool

- Markov-based text generator

- Hex map renderer

- Automatic Go API generator from structs

- Automatic C# API generator from Postgres database

- ORMs for Postgres in C# and Go

- C# migration tool for Postgres and MySQL

- Seneca-style microservices toolkit for C#

- Functions platform for Go

And many more ...


👤 joaomeloplus
- a search result tracker (https://github.com/joaomelo/attache) - script runner to substitute package.json scripts (https://github.com/joaomelo/sqript)

👤 racl101
Yes. Scratching your own itch is one of the funnest parts of scripting.

I made simple script that converts DB ids output per line that you'd get from a query into a comma separated line with a one line bash script.

e.g. converts:

1

2

3

to:

1, 2, 3

Since I do a lot of querying it is very helpful. To achieve the same thing in Excel is a fucking nightmare.

The cool part is when I feed it like 50000 lines of input how relatively quick it does it.

alias onelinify="paste -d, -s -"

example usage (on macos): cat db-ids.txt | onelinify | pbcopy


👤 joseloyaio
I created a "darkmode" pdf reader. It helps a ton with my eyes. Reading long papers on white background is something I don't like so I changed it.

I created it for me but it is somewhat popular on github with hundreds of stars already.

https://github.com/librepgp/NightPDF


👤 scarecrowbob
How complex? I wrote a bash script that mounts my encrypted store and opens my work applications. It's not exactly a big program, but it's a procedure that I execute pretty often :D

I had a diary that I'd written in rails and used it for a couple of years. I'd written a fretboard calculator to visualize playing positions on my pedal steel guitar.


👤 akpa1
Most recently, I built a piece of software to send me digests of RSS feeds at regular intervals, be it daily or weekly. It's an evolution of a little hacky Python script that I had, and I couldn't be happier with it!

https://github.com/codemicro/walrss


👤 justjash
I've wrote a few, more like scripts to do something repetitive.

Wrote a script to scrape pictures off an old website from the Wayback Machine.

Wrote another program that scraped some data from a posted Apple Music playlist then used the data to generate a Spotify playlist with the same songs.

I've written several other smaller things related to Arduino and lighting but nothing too special.


👤 joshstrange
I have a couple but the first that comes to mind is a tiny little mac app I wrote that "jumps" my mouse between monitors. I use it because I have 2 monitors in vertical orientation, one in horizontal between them, and another smaller monitor above the center monitor. Here is some ascii art of it:

                     +----------------+
                     |                |
    +------------+   |                |   +------------+
    |          ! |   | !             !|   | !          |
    |          ! |   | !             !|   | !          |
    |          ! |   +----------------+   |            |
    |            | +-+----------------+-+ |            |
    |            | |                    | |            |
    |            | |                    | |            |
    |            | |                    | |            |
    |            | |                    | |            |
    |            | |                    | |            |
    |            | +--------------------+ |            |
    |          ! |                        | !          |
    |          ! |                        | !          |
    |          ! |                        | !          |
    +------------+                        +------------+

    ! = Where my mouse would get stuck
My little app helps to keep my cursor from getting "caught" on the 2 vertical monitors. By default macOS treats the parts of my vertical monitors that go above/below the middle monitor as hard stops/walls so it's annoying if my mouse is too low/high that I have to stop what I'm doing, drag my cursor up/down, then continue moving across the monitors. Likewise, the only way to get to the top monitor is to first go to the center monitor then go up. I hated feeling like my mouse was running into walls constantly so I wrote this app. If my cursor hits any of the old "walls" then my app moves the cursor up/down until it lines up with the bottom/top edge of the center monitor. Also if I'm hitting a wall at the top of the vertical monitors it will jump me over the "gap" to the to top-center monitor.

I looked for (and paid for) a couple of apps out there that claim to do this or something similar but none of them worked for me. I had never really written any Swift code but I was able to cobble together enough code to make it work and in around 200 lines of code I got exactly what I wanted. I wrote this over 2 years ago and I haven't had to touch it since. In fact the first time I rebooted I got confused at why my mouse was getting stuck because I had grown so used to it (added my little "app" to login items and everything has been smooth sailing ever since).

EDIT: Added "!" to the diagram to show all the places my mouse would get "stuck" previously. I left out the ones on the center monitor since they are harder to explain where I'd get stuck going up (the edges since the bottom monitor is higher resolution that the top one).


👤 tapanjk
Yes, I have. Quite elementary, but I use them daily.

- Terminal based Hacker News reader for the lurker [1]

- Terminal based Google News reader [2]

[1]: https://github.com/tapank/hn

[2]: https://github.com/tapank/gnews


👤 sumitgt
I wanted to record Jeopardy everyday.

A Tivo subscription was too expensive, so I built my own DVR software to record from Locast. Worked like a charm until Locast shut down.

I had to replace it with a bunch of cron jobs + shell scripts which record using a local TV antenna connected to a NUC.

Puts out nice little mp4 files into a NFS which I can access anywhere in the world over Tailscale.


👤 GordonS
Several over the years, but most were "disposable".

One I made and have used for something like 15 years is a Windows tray app - I click it and the cursor turns to a dropper that let's me select any pixel on screen, then it tells me the RGB, HSL and hex code for the colour of the pixel. I'm colour-blind, so this is frequently useful.


👤 frakt0x90
I once wrote a program to scrape the logs from some printers so I could keep track of how much paper and ink was being used. It was just for fun but I showed it to my teammates and we ended up turning it into a leaderboard of who used the least amount of resources. Then they replaced the printers and I didn't feel like redoing it.

👤 robotnikman
A bunch of random things here and there that I needed. The 2 ones that stick out to me:

-A script for downloading and organizing videos from my Youtube Playlists since videos tend to get randomly deleted

-An old Minecraft server plugin which generates custom made structures throughout the world based on .schematic files you provide it and configurable spawning criteria.


👤 healthysurf
Yep. To filter out negativity on Reddit, in YouTube comments, and a couple other places. Needs a lot of work and completely lacks personalization options right now, but haven't had anyone show any interest in it. I don't really market it at all though.

http://healthy.surf


👤 mvkel
https://www.forgeta.com

A SMS-as-cli that reminds me of upcoming birthdays for my friends/family without me having to remember to launch an app, etc.

I'm also adding a way to add gift ideas for folks throughout the year so I'm not scrambling two weeks before to buy something.


👤 nicolaslem
I wrote an expense splitting web app that works with multiple currencies and can export transactions in a format compatible with GNU Cash (that I use) and Excel (that my partner uses). Before that we were using an existing solution (Tricount) but its limitations regarding currencies and export meant that we always made mistakes.

👤 GekkePrutser
Yes, besides the many scripts I built a visual basic program back in 2000 to make packages of photos and text for my travel blog (before blogging was a thing)

This way I could prepare all the content of my laptop and then upload one zip file in an internet café and have it all published. Internet was still scarce back then. It worked very well.


👤 mataherry
https://nba.5ntoro.com - Cause there's no lightweight mobile friendly Live NBA Scores site

https://wordle-js.deno.dev - Cause there are few times when I want to play wordle the whole day


👤 paultannenbaum
I have a few, but the ones I get the most use out of is a scraper that checks two very popular campground in CA right at midnight when new reservations open up, and reports back what is available. I have plans to automate the purchasing of the sites if they meet certain criteria, but alas always busy with paid work.

👤 pacmanche
I created https://www.npmjs.com/package/alpakr-cli for myself but have since made the service public.

I use alpakr a couple times a week for learning about new packages, crates, etc.

Pipe from stdin and output package summaries.


👤 willcate
I wrote a radio station-style audio playback system, because I didn't like the tiny few that existed for Mac OS

👤 spike021
I wrote a Mac utility "app" to display currently playing track notifications using the system notification pop-ups a ways before Spotify or Apple Music had it. People had previously done it with Growl, but I was no longer using that and wanted it to "just work" as part of Mac OS(X).

👤 ZennDogg
Calendar appointment system API Encoder/Decoder Journaling app Units of measure converter Camera downloader and processing Music player Automate display/data mining of weather info for 24 cities every 15 minutes Translator Loan Calculator Onscreen menu system for the above

👤 logbiscuitswave
Oh, sure. All the time. Sometimes if you need some solution to a problem you need to invent it yourself.

Back in the day when I had a Windows phone, I used Microsoft’s Zune player to sync it - but I used iTunes for my actual library management. This was a problem because all my playlists and ratings were in iTunes and there was no clear migration path. I’m pretty obsessive about organizing and cataloging my media files so this was something I couldn’t let stand. Unfortunately while iTunes had a decent SDK, Zune had none (at least not a public one).

I basically had to reverse engineer Zune’s APIs to figure out how to synchronize things like playlists and star ratings between the two platforms. It was all a big ugly hack — on the one side using iTunes’ documented but limited COM APIs, and on the other using Zune’s completely undocumented but thankfully also COM-based APIs so I could at least try to infer some functionality behind them via reflection. It was a precarious hack as well. When it worked, it worked well enough, but any time the Zune client software updated, parts of their API would change or break and I’d have to try to figure out how to hack around them again.

All these years later, iTunes still has a COM SDK but it hasn’t been updated since 2004 so it’s stuck only supporting some of the most basic iTunes features for automation.

I can still use it for some CLI tools that I have where I can use keyboard shortcuts to set star ratings on songs without having to manually go in iTunes while using it. That way if I have a playlist going in the background I can just press one of a set of programmable keys to launch this little CLI tool to rate a song on the fly without otherwise interrupting what I’m doing. Sadly the SDK doesn’t support the newer heart ratings, or things like checking/unchecking songs from playlists.

I guess what I’m discovering from writing this post is I seem to spend a lot of time trying to automate all my weird scenarios around media management.

Lately I’ve been working on a project in my spare time to control a BLE-based robotic cat toy. The company that made it stopped supporting it and delisted their applications. This was a very expensive toy that I didn’t want to stop working because of the whims of the company. It was a big challenge - I had to reverse engineer their protocols, reverse engineer their applications, and write something new to replicate the functionality. Just to amp up the difficulty I also decided to build a standalone ESP32-based device that I can use to control the robot without even needing a phone. It’s been a big challenge working with lots of unfamiliar technology but it’s also been a lot of fun learning and experimenting with these new (to me) things.


👤 xur17
My most useful ones are honestly just spreadsheets. I made a "family debts" google sheet that we can input expenses into, and split amongst ourselves, and then use to optimally resolve debts between each other. It gets a ton of use, and allows us to just settle up every few months.

👤 linseed_213
Some of the popular restaurants in my town use a booking app called Seven Rooms, which does not have a "notify me" feature like Resy & OpenTable if there are cancellations on a date you're looking for.

Made a bot to check for my desired dates and times and ping me if something opens up.


👤 cicko
Absolutely. Too many to number. Apart from the script-level software, most of them are published as open source software (modules, packages, etc.).

The latest example is https://cashier.alensiljak.eu.org/


👤 marssaxman
Oh, certainly. Lots. Most regularly and most personally, I wrote the code editor I used as a daily driver for several years: https://www.github.com/marssaxman/ozette

👤 fjabre
Yes I created http://lazyday.tv to help me find and track things to watch. Ive been making use of it for several years now and it’s available to the general public for free. No sign ups required. No ads displayed.

👤 bitwize
I used to maintain a blog/personal site with a collection of Guile scripts.

These days, mostly I write little Emacs Lisp programs to provide nice (meaning Emacs-compatible) interfaces to tasks I have to do at work, like setting up and managing local Docker containers and running SQL queries.


👤 lukaszkups
#1 I've created a static site generator that maintains my blog & website

#2 I've created some handy excel macros for my timesheets that saves me tons of time I sent to my clients (like auto skipping weekends, auto-filling hours etc.)

#3 I create indie games that I actually like to play :)


👤 earthboundkid
I write CLIs basically all the time. It’s fun. Everyone should do it. https://blog.carlmjohnson.net/post/2018/go-cli-tools/

👤 smm11
I turned a photo gallery thing into an ecommerce site, tied to Paypal, on a Mac maybe 20 years ago. Lot of PHP mucking-about, with little idea what I was doing. No harm or foul, though, other than I could have picked a different gallery app that already did that.

👤 secretsatan
All the time, and hack other our software to do my own things. I do it a lot on my iPhone, I now work full time on an app that started as a hobby project and got moved forward to be a major focus of the company and I'm still trying out mad things with it.

👤 freecodyx
I created a small program using arduino and IR receiver to control PowerPoint slides using any available remote control. I had to create a small go program to interface with arduino-cli so that I don’t need Bluetooth or any other hardware, just the serial port

👤 dirtylowprofile
I wrote a silly Python script https://github.com/lawgimenez/isitmybirthdayyet just for the fun of it. To check if this day is my birthday.

👤 drbojingle
yup, all the time. A simple scripts to make git branches fuzzy searchable, a script to process csv bank statements from my bank and categorize them. todo list, alias management, ELO graphs for Age of Empires II: DE, sublime text plugin to combine csv with textmate snippets, etc. I was submitting a couple just yesterday actually.

A cli todo list in 40 lines of bash https://news.ycombinator.com/item?id=31034532

Creating aliases from bash history with bash https://news.ycombinator.com/item?id=31034185


👤 monroeclinton
I've been building my own window manager. I still need to finish a few things like a status bar/floating window system.

https://github.com/monroeclinton/mwm


👤 IYasha
Lots and lots. Opensourced everything I could (some were made for employers), under different names. Even maintained them for a few years. Won't name any of them, sorry. But mostly 2D/3D CG-related tools, file conversion utilities. C/++.

👤 brentroose
I have, just started using it today actually. It's an RSS reader, but one where people can suggest new content to me as well: https://aggregate.stitcher.io/

👤 smdz
Lots and I think anybody who is passionate about programming, has enough motivation to get it done. Most of my stuff is to reduce complexities in my daily life and/or automate/simplify monotonous work to be done at regular intervals.

👤 raybb
I often write bookmarklets for my own use. For example a bookmarklet to take me from Amazon/Goodreads to the OpenLibrary.org page for the book. It as easy as grabbing the isbn and then navigating but saves me a decent amount of annoyance.

👤 luisbarrera
I made a bill splitting app for my friends and I. Decided to make it into a company. https://www.producthunt.com/posts/splyt-pay

👤 chunqiuyiyu
Of course! I write inkval(https://github.com/chunqiuyiyu/inkval) to build my personal blog. It works well and I fell happy :-)

👤 itsthejb
Also lots. One particularly fun one was a script that scraped fund prices for an old (bad) life insurance policy I had. Dump them to an SQLite db, and then later added plotting graphs which it would telegram to me once a week

👤 msurdi
I've built my own RSS feeds reader. Nothing great to write home about and quite simplistic but I use it daily.

https://github.com/msurdi/feedo



👤 visox
Yes couple. Did some crawler for sports betting sites to find bet arbitrage, was fun

👤 Blackstone4
Yes I created a program to submit VAT tax returns to the UK tax authority. I had to write it and do a live demo to get the authorization to use the API. It was the first time the interviewer had seen a command line tool.

👤 ricardonunez
Several over the years. Most recent one csv reader to work on geojson files. A pomodoro time tracking, I want to make this one a product. Local real estate Data visualizer, stats, charts, also want to make it a product.

👤 dt3ft
I created a kahoot quiz generator. It grabs random questions with 4 answers (one of which is correct) from an open question database and outputs a special kahoot compatible excel sheet ready to be imported into kahoot.

👤 hankdoupe
Yep, I created a time tracking tool that syncs with Freshbooks for my contract work. No one else ever used it and I never tried to market it. But it made tracking my hours 100x easier, and I learned go in the process.

👤 calderwoodra
I created a phone app once to function as an alarm clock I could set for someone else. Kinda like a hotel "wake up call" except this would call, ring for 10 seconds, hang-up and repeat for like 20 minutes.

👤 smarri
I'm so pleased to read all of these responses! What a talented community!!

👤 conroy
Not for me, but I wrote a small program that emails my dad the New York Times crossword every day so that he can print it out. He could just log into the website and print it, but email is so much easier for him.

👤 unrealp
A real time audio spectrum analyzer for vocal practice. It shows spectrogram and pitch/note of the sound. It also creates challenge notes for practice singing and plays the sound of that note for reference.

👤 bo1024
The biggest one by far is an entire email user agent. Next is probably a set of tools for my personal website and blog, almost a static site generator. Finally scripts for things like backups, organizing files.

👤 lisper
I run my own mail server which runs a custom spam filter which I wrote in Common Lisp.

I'm working on building myself a Quicken replacement that does proper double-entry bookkeeping without the horrific UI of Quickbooks.


👤 eslav
Certainly. Wound need to think a bit for a complete list, but two fun ones come to mind:

Wrote an iOS app to help my kids learn to sing harmony (called it HarmonMe)

Wrote a translator from English to phonetic symbols to help teach an ESL class


👤 iambateman
I’m building MoneyHabitsHQ.com out of a desire to use it myself. I felt like the existing budget apps were way too complicated.

(That said, it’s going to be made more widely available eventually, so idk if that counts to OP.)


👤 wesgarrison
Plenty. Most recent was a volleyball rotation generator so I could hand out customized rotation sheets to every player. When I make a change, I can generate all new sheets by updating names & positions.

👤 rrab
I’ve recently made an email testing tool like mailhog. I like mailhog but it didn’t display recipients etc in a way that I liked.

I am considering adding IMAP or POP3 to it to make checking emails in popular clients easier


👤 drzel
Not exactly only for me, but I created a pick-up bot for my Discord server. Goes good. https://discord.fortressone.org

👤 ben-n93
A reading journal named BookBrain! https://github.com/ben-n93/BookBrain

👤 Insanity
Yup, a couple.

Most recently:

A webapp to track my runs, a service which creates backups of my google drive photos to AWS S3, a streaming app to monitor my puppy when we have to leave him at home (with raspberry pi + webcam).


👤 tex0
I used to publish all my stuff on GitHub. But my current employer makes me jump through some hoops before I can do that. So I don't publish the stuff that build for myself anymore.

👤 LennyHenrysNuts
Almost daily.

A text editor, data manipulation and display programs, front ends for various things, an interface to play podcasts and search them using podcastindex.org from within Emacs, all sorts.


👤 alphabettsy
A few. Working on replacing my Pi Zero W based garage door opener with an esp32 for fun. The Pi had a basic service that accepted HMAC signed Webhooks to open or close the door.

👤 knorker

👤 Dedime
I wrote a quick program in Go to move a certain file from my Downloads folder to my Google Drive folder, when the file is detected. It's to help me backup with Tiddlywiki.

👤 _ache_
A front-end to Gammu to send SMS from my PC.

https://git.ache.one/mesms/about/


👤 systems_glitch
Wrote a small ERP system that's effectively for my personal use. Use it every day.

I wrote a small dynamic DNS system that I'm pretty sure no one else uses :P

Lots of scripts and whatnot, of course.


👤 boomeranked
Airbnb won’t open an API for experiences so I created one for myself. Scraping. Once you have four accounts and ten experiences using the UI became impossible to manage.

👤 PatronBernard
As a PhD student, I wrote a script that fetched my Uni’s menu each day, parsed the PDF and displayed a Gnome notification of the main course right before lunch time.

👤 Arubis
Define "program"! I suspect you mean "a persistent thing saved to disk that gets re-used", but a bash one-liner is its own program in a sense.

👤 rep_movsd
All the time

The last one was a script that let me carry over my wordle stats when NYT took it over. I also made an offline copy of wordle to be free of any NYT shenanigans


👤 rhn_mk1
A backup solution. A bank statement scraper. An alarm clock. A GPS track extractor. A time tracker.

More that haven't seen regular use or which are just configuration.


👤 jerrysievert
all the time!

I -

* track my environment, ranging from actual physical to all host metrics and logs

* write my own music software (effects, instruments)

* write esoteric systems that end up being used for interesting use cases locally

* beer boards, because I like to know what's on tap at home

* database engines, because why not?

it's just a matter of whatever tickles my fancy, from utilities I need, things that differentiate from other sound I hear, to reinventing the wheel to better understand why it's round.


👤 DyslexicAtheist
most of what I use is only for me. it's a hobby to tinker. it's mostly workflow tweaks or modules for i3/sway, security relevant things based on netfilter / ebpf ... what all these things have in common is satisfy my curiosity and learn about something new on the way, other times they start out as a tinkering in a new language are a total abomination begging me to be rewritten ...

👤 noisepunk
Not really a program, but I put a script on aws that texts me in the morning if it’s a street sweeping day. Sometimes I forget to move my car anyway…

👤 mascarell
A lot!

The one I like most it's a bash script that order all my local pictures on a folder into year and month folders based on metadata.

Other than that, just small misc programs


👤 phendrenad2
I've created a programming language (similar to Rust or C) which I use to make Android games, which I sell on the app store. Does that count?

👤 robotburrito
I wrote a ridiculously hard version of the NYTime's Spelling Bee game because I didn't want to pay for it. It's not very good lol.

👤 rco8786
A bunch! Budgeting software, fitness tracking, a small CRM for a private preschool that my wife worked at, a command line journaling tool, etc

👤 xiphias2
I’m travelling around the world and writing program to help me categorize hotels / flights, show availability and weather for my trips.

👤 mattlock
I wrote this program for doing my vertigo exercises.

ruby -e '5.times {%w(left center right center).each{`say #{_1}`;sleep 30}};`say exercise over`'


👤 christophilus
Yeah. An app to let me control my 5k monitor’s brightness in Linux. Tons of little utilities, like my blog generator. A Firefox send clone.

👤 guessbest
I made an app for tracking feedings for my baby girl that calculates oz per day. As far as I know, I am the only one that uses it.

👤 runjake
The vast majority of my code and most of my git repos are for my own personal use. Various utilities and glue code and one-offs.

👤 hidroto
a 500 line perl script for image tagging and look up script that opens the results in feh. the program can look up images based on set operations. i would realy like to make the tagging system ai assisted but all of the ML systems i have found are beyond me.

a youtube downloading and playlist system that uses yt-dlp and newsboat rss feeds of my subscriptions.


👤 iostream24
Constantly. I make mini apps for all kinds of thing, but often to modify existing data of some kind in a brutal batch fashion

👤 tabtab
I wrote a graphical music sequencer in FoxPro for Windows in the 90's. I've been kicking the idea of reviving it.

👤 Existenceblinks
No, all my energy is spent at getting out of poverty and for activities that reduce stress; i.e. all kind of entertainment.

👤 syngrog66
yes, tons. this was esp more common before the rise of the whole "everybody must have a GitHub portfolio" culture and handheld/spoonfed coding bootcamps & tutorials etc etc

vast majority of my own code has never been seen anywhere. portion only by clients/employers because done for them. very tiny slice in FOSS projects


👤 skittleson
I tend to do many throw away apps. Stuff I do in 30 mins to 6 hours are considered prototypes or for personal workflows.

👤 iisbum
Yep, do this all the time. Since I build web based I do end up making them public, but really only built for myself.

👤 lcall
I wrote a desktop, text-only personal knowledge organizer that I use and rely on every day, primarily for my own use, hoping to make broadly useful someday but...we'll see. AGPL, scala, postgresql; hoping to move to rust/sqlite in future. Would love if others could find benefit from it, but not currently aware of any. http://onemodel.org

👤 ericfrazier
I write scrapers galore. Who needs APIs?

👤 qwerty456127
Absolutely. That's the way computers are meant to be used: you write programs, they do what you need.

👤 godDLL
All of the time. Isn't this what computers are personal for? Doesn't everyone?

👤 grepfru_it
A web scraper for PII data. You have no idea how much information about yourself is out there

👤 nmasse-itix
Yes, I created a telegram bot that collects and shares photos of my daughter with the family.

👤 cryptocoder88
Heck yes! I built a air quality filter using the raspberry pi. It was a fun project

👤 fxtentacle
Sure, all the time. Like when I automated sorting household and tax paperwork.

👤 mr_o47
I have written a simple script which send me hackernews stories every night

👤 spogbiper
i spent many hours as a kid writing programs for my own use on a trs-80 that we owned exactly zero software for. turn it on and start writing code because that's literally all you could do lol

👤 sambalbadjak
I created a cronjon that automatically signs me up for gym classes.

👤 cable2600
Math programs in C and Python that I use like a calculator.

👤 amitkgupta84
Several, but most recently an app to generate SMART Health Card QR codes to easily put your Covid vaccination info in your Apple Wallet.

App: https://akgupta.ca/smart-health-cards Source: https://github.com/amitkgupta/go-smarthealthcards

I’d be interested in seeing the program that OP’s colleague has to see energy consumption per device. I want this for electricity, gas, and water. The utilities are starting to get into smart metering, but they’re not up to what I’m looking for yet, at least not my providers.


👤 seligman99
A few come to mind:

A command line calculator. While it's on github, is really just made for me because I wanted something to do quick math and convert different units.

A note/todo app. Started it's life as just a text file in a git repo, but now has a web front end, a simple TUI front end, and a little backend so it can add repeating tasks or tasks future days when they come along.

I also have a little python script running to control my exterior Hue lights, turning them on at sunset and such. Just added a thing today that turns on the lights in my office to full brightness when I open Zoom. It's nice, but every time I go down the rabbit hole of home automation, my SO rightly gets annoyed at the silliness of it all.


👤 jgaa
Are there any other reasons for creating programs?

👤 DarrenDev
I wrote a scrabble word generator a few months ago when I was really into playing scrabble online. It's too time consuming to use for a complete game of scrabble, but I use it regularly to help with Wordle:

https://i.imgur.com/f7KuOUy.png

A password storage app and generator I first wrote 15 years ago, then re-wrote 10 years ago.

Various Greasemonkey scripts (not sure if they count) to bypass paywalls on various sites.


👤 abledon
i usually fork open source worktools and tweak the UI so it has snappier hotkey interactions

👤 snicky
Most recent: Wordle solver.

👤 BonoboIO
I HATE the Spotify podcast player.

It is the worst UI for pretty much anything: music, video, podcast, lyrics ...

I selfhost ... i download the spotify exclusive podcasts and host them myself to use the with overcast. They come as OPUS files, but ffmpeg to the rescue.

I pay for premium ... so i want the best experience. Maybe against their api guidelines.


👤 sfmike
specific chrome extensions for frequented websites i visit

👤 jdrc
yes, for my bookmarks. pinplz.com

👤 kragen
To me this question reads like, "Have you made a personal phone call? I'm curious to know if anyone has called someone else on the phone that they personally know," or "Has anyone else ever spent money on something they wanted?" Clearly whoever wrote it lives on a different planet than I do. A better one, maybe, or maybe worse, but at least very different.

My main user interface is bash, so every time I want to view a PDF file, launch a web browser, list the files in a directory, or compile a program, I write a program to do it in bash and then hit "enter" to execute it. For example:

    arm-linux-gnueabi-gcc-10 -mcpu=cortex-m4 -c -Wa,-adhlns=armpapel.lst -g -Wall -Os mpapel.c
Or:

    ls /media/compu/E8D3-C6AF/
Or:

    firefox &
Or:

    bg
In this way I estimate I create about 32 new programs a day for only my own personal use. But in many cases I only use each one once. ^R makes it easy to use them again a few times, but in other cases I save them into a shell script to make them easier to distribute to other machines, parameterize, and maintain. The one I most often use is probably a user interface for YouTube via youtube-dl or yt-dlp that consists of a few such shell scripts.

My main editor is Emacs. If I want to do the same thing repeatedly (e.g., delete a line containing the string .LVL) I create a keyboard macro with F3 and F4 (or C-x ( and C-x )) when I do it once, then run it repeatedly with C-x e. I probably write about 4 programs a day in this way.

Emacs has a M-: command to evaluate Lisp expressions, which are programs. Recent programs I have written in this way include (/ 43.2 1.7), (* 9.3 1.2), and (+ 8 3 2.50 3.50 3 7 3.50 3 1.50 4.50 6 5.50 6.50 6 3 2.50 2.50). Probably I write about 1 program a day in this way but I only use each one once. Longer Lisp programs like this can be written in *scratch* and executed with C-j or in .emacs (or .emacs.d/init.el) and executed with C-x C-e. For example, (global-set-key [f5] 'recompile). I use my .emacs file constantly every day but probably only add something to it about once a month. An outdated version is at https://github.com/kragen/kragen-.emacs.d/blob/master/init.e....

Sometimes I write bigger programs for my own personal use too.

A few years ago I wrote https://github.com/kragen/pytebeat for a livecoding performance of bytebeat in a bar. I finished writing it in the train on the way to the bar.

In https://github.com/kragen/laserboot I wrote a simple parametric 2-D CAD system for laser cutters in PostScript.

For Dercuano http://canonical.org/~kragen/dercuano I wrote a kind of shitty HTML rendering engine that generates a PDF file, as well as a simple CMS for generating a tree of HTML files from a directory of Markdown.

The other night I wrote a bytecode interpreter with a graphical display in C as a sort of mockup for the operating system of a small computer I recently got the parts for; it's in http://canonical.org/~kragen/sw/erika.git.

I've also written compilers, interpreters, ray tracers, database engines, parser generators, graphics libraries, logic circuit optimizers, 2-D game engines, etc., for my own use.

Some of the recent ones are in http://canonical.org/~kragen/sw/dev3. Over the last 9 years, according to a shell script I just wrote, it has accumulated 170 C programs, 254 Python programs, 60 HTML files (mostly JS with a thin shell of JS), 43 Jupyter notebooks, 28 files in assembly language (though some of these are compiler output), 23 programs in OCaml, 17 programs in Golang, 15 programs in Rust, 14 programs in OpenSCAD, 11 standalone JS files, 9 programs in PostScript, 6 programs in Perl, 9 programs in C++, 7 programs in Scheme, 5 programs in Meta5ix, 5 programs in Java, 5 programs in Lua, 5 programs in Forth, a program in Prolog, and a lot of etc. That's 688 programs in all, according to a program I just wrote in the browser console, which is 69 per year or one every 5.3 days. However, there's probably some double-counting there, or counting of things I started but didn't finish, or things like the copy of D3 I checked in there, and the real number might be more like one every two weeks.

Some of the larger ones are https://nbviewer.org/url/canonical.org/~kragen/sw/dev3/fir-v..., which is a vocoder; http://canonical.org/~kragen/sw/dev3/ritmo.c, a stochastic wavetable synth for an Arduino; and http://canonical.org/~kragen/sw/dev3/qfitzah.s, an interpreter for a higher-order programming language with pattern matching, flexible parametrically-polymorphic data containers, and dynamically dispatched method calls with multiple dispatch, that assembles to an executable under 1K. Some other random ones are http://canonical.org/~kragen/sw/dev3/dnsscan.py, which scans random IP addresses for open DNS servers; http://canonical.org/~kragen/sw/dev3/andnot.go, which tests the behavior of the Golang &^ operator; http://canonical.org/~kragen/sw/dev3/weemenumain.cc, which is a test program for a C++ library for an imgui-style menu system I wrote for microcontrollers that only uses a few bytes of RAM; and http://canonical.org/~kragen/sw/dev3/rpncalc.c, a four-function RPN calculator program.

But, like I said, there's nearly 700 of these, and more in http://canonical.org/~kragen/sw/aspmisc, http://canonical.org/~kragen/sw/inexorable-misc, http://canonical.org/~kragen/sw/netbook-misc-devel, and the kragen-hacks archives, so I'm not going to try to describe them all here. They're all git cloneable except kragen-hacks.


👤 mgax
Yes

👤 bspear
Yup most things start as my personal use, and if I like it, maybe I'll share more broadly