[HN Gopher] Ask HN: Tools you have made for yourself?
       ___________________________________________________________________
        
       Ask HN: Tools you have made for yourself?
        
       I am looking for tools that you might have built to scratch an itch
       or quell a regular annoyance. My main motivation for asking is to
       looking a different things people may have built and a secondary
       motivation is to learn how they went about it. I'm also interested
       in tools which are small scripts or a bunch of commands piped into
       one another that have boosted your quality of life.  Thank you.
        
       Author : themantri
       Score  : 204 points
       Date   : 2021-06-12 07:29 UTC (15 hours ago)
        
       | LightG wrote:
       | Drove / automated a currency trading application using
       | https://www.autohotkey.com/
       | 
       | The amount of error handling probably made it more worthwhile to
       | learn the actual automation language, but it worked.
        
       | linehk wrote:
       | gwebp can recursively convert images in the specified directory
       | into webp of the same name. https://github.com/linehk/gwebp
        
       | thangalin wrote:
       | Here's a shell script template that helps parse command-line
       | options and informs its users of any missing commands that are
       | required to run the script successfully:
       | 
       | https://dave.autonoma.ca/blog/2019/05/22/typesetting-markdow...
       | 
       | Example script that includes the template:
       | 
       | https://github.com/DaveJarvis/keenwrite/blob/master/installe...
       | 
       | A more recent version of the script template is available at:
       | 
       | https://github.com/DaveJarvis/keenwrite/blob/master/scripts/...
        
       | kryptn wrote:
       | Most recently, this websub-listener[1] to subscribe to websub
       | feeds, mostly just to catch spacex launches. just sends a message
       | to some slack channels, but could be extended to do a lot. Still
       | really happy with how it's working out, maybe I'll extend it with
       | RSS later.
       | 
       | I've had some annoyances with Insomnia and wanted to take a shot
       | at making my own tool. so here's http-client[2].
       | 
       | [1] https://github.com/kryptn/websub-listener
       | 
       | [2] https://github.com/kryptn/http-client
        
       | whatsakandr wrote:
       | Almost trivial, but I built a little jig out of sheet metal that
       | came with breadboard to cut hookup wire exactly the length I
       | needed it. Saves tons of time.
        
       | wheatzies wrote:
       | I've been leaning pretty heavily on Discord during COVID to stay
       | in touch with friends. I play D&D with some of them and wrote a
       | Discord bot for dice-rolling since we already used Discord for
       | audio/video during our sessions. It's not very complex, but it
       | was good practice for using the Discord bot API, and I can host
       | it on my Raspberry Pi in my apartment.
       | 
       | https://github.com/micahpress/discord-dice-roller
        
       | zrail wrote:
       | Oh lots. The ones that readily come to mind are my suite of tools
       | for working with ledger-cli data.
       | 
       | The one that I work with most is my reporting tool, which ingests
       | ledger-cli formatted files, dumps the resulting CSV into
       | PostgreSQL and then provides a structure for writing reports.
       | 
       | Most recently I wrote a tool that consumes a spreadsheet
       | generated by Tiller and appends transactions to my ledger files.
       | This has allowed me to automate my ETL process down to just
       | invoking an update command.
       | 
       | https://github.com/peterkeen/ledger-web
       | 
       | https://github.com/peterkeen/ledger_tiller_export
        
       | mrjivraj wrote:
       | Not sure whether this meets your "definition of a tool" but I
       | started tracking my investments publicly a couple of years ago
       | here
       | 
       | https://docs.google.com/spreadsheets/d/1tBrZEMFK9XNWxiqOxE8o...
       | 
       | The GoogleFinance Function has been a great way to help me
       | "visualize progress" in a very different way compared to default
       | visualizations provided by stock brokers
       | 
       | I have also tried to keep track of analytics more manually but
       | hope to find some time to automate later (if you wanna help, lmk
       | :)).
       | 
       | Basic metrics like the following: Hit Rate: % of investments that
       | had a profit / Loss Rate: % of investments that had a loss / Size
       | of Avg Winner / Size of Avg Loser / Expected Value of Investments
       | / Win to Loss Ratio / Avg Holding Period / Opportunity cost
       | analysis (eg: what is the stock price say 12-24 months after I
       | sell?)
       | 
       | These basic things would help the individual investor get a lot
       | more insight than they can easily get today.
        
         | hentrep wrote:
         | This is really neat. Love how you've segmented separate
         | portfolios based on risk/investment hypotheses. Thanks for
         | sharing!
        
           | mrjivraj wrote:
           | Thanks.
           | 
           | Yes, I believe that many investors are in a hurry to
           | concentrate their investments. I prefer taking a large number
           | of bets with high upside potential, thereby getting the
           | benefits of diversification but also a decent expected value.
        
       | eclectus wrote:
       | I made https://eclect.us/ it's basically a collection of scripts
       | ran with jenkins that summarizes SEC 10-Q and 10-Ks as they're
       | published using BERT and decision trees trained on the
       | performance of the underlying stock after a filing.
       | 
       | There are other services that do this better but I just wanted
       | something clean that didn't have a cramped UI, and wasn't a paid
       | service.
        
       | codingclaws wrote:
       | I built up a web dev stack over the years while working on
       | personal projects and client projects. First it was all together,
       | but now it's separate libraries and a template app:
       | 
       | db: https://github.com/ferg1e/pajamaSQL
       | 
       | views: https://github.com/ferg1e/corn-wand
       | 
       | form validation: https://github.com/ferg1e/bouncers-book
       | 
       | misc: https://github.com/ferg1e/paper-cello
       | 
       | template user-based app: https://github.com/ferg1e/screen-name
        
       | UnnoTed wrote:
       | My last tool is WireGUIrd, a wireguard gui client for linux.
       | 
       | https://github.com/UnnoTed/wireguird
        
         | smoldesu wrote:
         | Looks great! It's always awesome to see another GTK developer
         | out there doing their thing in the wild!
        
       | doctordesh wrote:
       | I wrote this (at work) to update versions in our projects from
       | one place, and even partial versions. Saves me some headache and
       | mental space every time. I know there are competitors but none I
       | found was just simple, everything else was bloated with Git-
       | integration or regex search instead.
       | 
       | https://gitlab.com/MaxIV/app-maxiv-semver
        
       | tvst wrote:
       | ttymidi http://www.varal.org/ttymidi/ Written around 2004 to
       | allow me to make custom MIDI devices with Arduinos.
       | 
       | NiftyPlayer http://www.varal.org/niftyplayer/ Made in 2000ish to
       | play mp3s on a friend's website.
       | 
       | Cardapio https://launchpad.net/cardapio Made around 2010 to
       | replace the app menu in Gnome to support search, ability to
       | navigate folders, and plugins.
       | 
       | TomatoInTheSky http://tomatointhesky.com/ Pomodoro timer with the
       | ability to pause (which goes against the technique). Made in 2010
       | for my wife to study for dentistry classes while working in
       | hospice care.
       | 
       | FiveHeadlines http://fiveheadlines.com Reddit reader that pulls 5
       | headlines from my favorite news subreddits, so I don't browse
       | Reddit for too long. Made around 2014.
       | 
       | And now my joint project with some friends is where I work every
       | day! Started in 2018 https://streamlit.io
        
       | pietre wrote:
       | Tool to generate a random order of a popular food delivery
       | service in The Netherlands. Wanted to discover new local
       | restaurants instead of eating the same 3 things always.
       | http://thuisbezorgdroulette.nl/
        
       | jacobmischka wrote:
       | The first one that comes to mind is a super simple (and hideous)
       | app to stick images together in the layout of your multiple
       | monitors in order to create a spanned wallpaper with a different
       | image on each display. I created it ages ago when Electron was
       | relatively new, and I still use it every month or so.
       | 
       | https://github.com/jacobmischka/wallpaper-adhesive
        
       | jjgreen wrote:
       | Sushi: Ruby script which generates a stub for a 1-file C project
       | 
       | https://gitlab.com/jjg/sushi
        
       | travisjungroth wrote:
       | Better habit support for Todoist: https://habitsfortodoist.com/
       | and https://github.com/travisjungroth/habits-for-todoist
       | 
       | Algorithm practice: https://github.com/travisjungroth/algo-drills
       | 
       | A tiny script that adds articles I want to see again onto my todo
       | list:
       | https://github.com/travisjungroth/boomerang/blob/master/boom...
        
       | t0astbread wrote:
       | A few months ago I wrote (and expanded over time) two simple
       | scripts for note-taking and time tracking at work (because our
       | official time tracking tool is kinda lackluster). They're really
       | nothing special, just editing some Markdown files stuck in a Git
       | repo, but they're a vital part of my daily toolbox.
       | 
       | I've pulled them out into a separate repo and published them
       | here: https://github.com/T0astBread/sticky
        
         | oezi wrote:
         | Lol, my little project is scratching the same itch. I also
         | wanted a easy way to get a clean state to start the day / next
         | section of a day.
         | 
         | Since I focus on todos, I wrote a editor which creates a new
         | section (as your daily script) and copies over all unfinished
         | entries.
         | 
         | https://github.com/coezbek/rodo
        
       | rokobobo wrote:
       | Every night at midnight, I have a script that sends me a blank
       | email with a smiley face as subject. It's a nice way to very
       | quickly distinguish emails from today, yesterday etc. and also to
       | stunt my prior that every email I get is going to be stressful.
        
       | modeless wrote:
       | Decoder Ring: https://james.darpinian.com/decoder/ to look up
       | error codes. Started with OpenGL, then added Windows error codes,
       | Linux, HTTP, and Vulkan.
       | 
       | I was a bit frustrated always pasting error codes into Google, as
       | it doesn't always come up with the best result. You often have to
       | extract just the code from a larger message, and potentially
       | convert to/from hex or signed/unsigned, e.g. Windows error codes
       | like "-2005270521". My tool handles all that for you. Just paste
       | an error message containing codes in whatever format and it'll
       | find them, and it's incredibly fast.
       | 
       | I also made https://aqi.today during the California wildfires. I
       | was frustrated by other air quality sites that load way too
       | slowly and don't emphasize the one number that matters.
       | Airnow.gov has improved since I made this, but but I still prefer
       | mine for the simplicity, speed, and much better data sourced from
       | Purpleair. Airnow.gov sensors are typically 5+ miles apart, and
       | data is delayed by an hour or more, while air quality can vary on
       | a block-to-block and minute-to-minute basis. Purpleair has far
       | better sensor coverage and data is delayed only 10-20 minutes.
        
       | jrhawley wrote:
       | I've been learning rust recently and trying to make a few
       | CLIs/TUIs for simple tasks.
       | 
       | I have a simple CLI for handling the `$PATH` environment variable
       | [0].
       | 
       | And I have a simple TUI for keeping track of financial statements
       | for various accounts [1].
       | 
       | [0]: https://github.com/jrhawley/pad-path
       | 
       | [1]: https://github.com/jrhawley/quill
        
       | csbartus wrote:
       | 1. A design system, to create web sites on the fly.
       | 
       | 2. A content-as-code framework, to help me writing complex
       | articles, mini-books. The ideas are visualized as a directed
       | graph, so I'm sure I'm sticking to them, and the result is
       | complete.
       | 
       | 3. A color scheme generator for web sites, to help me creating
       | themes with accessible typography.
       | 
       | 4. Gravity point calculator, to help me localize the focus point
       | of a web page / slide, to make sure the message is delivered.
       | 
       | 5. Art directed images, displaying the same image in
       | portrait/landscape, depending on the device/orientation.
       | 
       | 6. Hand made web decorative elements, to make uniquely looking
       | web sites.
        
       | nickjj wrote:
       | A whole bunch of little things, mainly command line tools.
       | 
       | Most of them are open source and also have extensive
       | documentation and a screencast video going over them.
       | 
       | Here's a few examples:
       | 
       | - https://github.com/nickjj/notes
       | 
       | - https://github.com/nickjj/invoice
       | 
       | - https://github.com/nickjj/wait-until
       | 
       | And a few recent scripts to optimize very specific workflows:
       | 
       | - https://nickjanetakis.com/blog/using-ffmpeg-to-get-an-mp3s-d...
       | 
       | - https://nickjanetakis.com/blog/a-shell-script-to-keep-a-bunc...
       | 
       | - https://nickjanetakis.com/blog/bash-aliases-to-prepare-recor...
        
       | winsbe01 wrote:
       | I build a cli music player that can handle both local mp3s and
       | Spotify tracks in the same playlist, because I wanted that. I
       | also recently built a tool to help me keep track of my books
       | (what I own, what I want to read, what I've borrowed, etc).
        
       | banana_giraffe wrote:
       | A small Todo git repo. Well, it started as a simple git repo with
       | a text file, but now it has a web front end, and a lambda/cron
       | thingie that can automatically add tasks based off a description
       | of frequency. For me, having a todo task list I can use wherever
       | I have a shell or browser means I'll actually use the dang thing.
       | One of these days I'll clean up the code and put it somewhere
       | public, I suspect others might find it useful.
       | 
       | The other thing I've done that I'm sure lots of people have done:
       | A small git repo that has some random tools I've made from time
       | to time. I put it in my path on any machine I use frequently, so
       | I have my little toolbox handy. One of the tools in my toolbox
       | spits out a command line to download and run any other tool
       | without writing it to disk, or needing any credentials locally,
       | so I can paste the runner on a machine I'm on, but don't want to
       | copy all the tools or otherwise setup. That can be handy, and
       | prevents me from polluting any machine I touch.
        
       | linkdd wrote:
       | In the category of old unmaintained tools:                 -
       | https://github.com/linkdd/manyssh : Before discovering
       | ansible/puppet/etc...       - https://github.com/linkdd/i3tools :
       | For when I was using i3wm       -
       | https://github.com/linkdd/xautostart : Also for when I was using
       | i3wm without a Display Manager
       | 
       | For more recent projects:                 -
       | https://klifter.datapio.co : Easy GitOps       -
       | https://klander.datapio.co : Kubernetes Compliance as Code
        
       | mmastrac wrote:
       | I made stylus to manage my home network with a Raspberry Pi. It
       | requires barely and resources [!] any can manage anything that
       | can be talked with via a shell script (including SNMP).
       | 
       | https://github.com/mmastrac/stylus
       | 
       | [!] I run it on a Pi0 and it takes negligible resources on that.
        
       | garyfirestorm wrote:
       | I along with 50ish colleagues use a software that has ole object
       | which can be pasted in PowerPoint. The object contains plots
       | which can be modified for axis and zoom etc. Our reports mostly
       | contain these plots which explain acoustic/vibration events in a
       | car. Making a complex presentation is a difficult task
       | considering when you paste these they don't exactly occupy the
       | space you want them to occupy. I made a neat ribbon toolbar using
       | VB.net (vsto addin) that even updates over network path after
       | PowerPoint bootsup. The toolbar let's you resize an object and
       | place it on the slide in a click. It also 'activates' the object
       | at certain zoom level, so that they are look better.
       | 
       | P.s. I'm not comp sci guy so forgive me if im not using the right
       | words here.
        
       | samanator wrote:
       | I wrote a program to help me archive my google mail. You can
       | query it like a database (group by senders, subjects, etc.) and
       | perform the archive operation.
       | 
       | Useful for when the inbox gets to 1k unread messages.
        
       | tormeh wrote:
       | Wrote this for diagnosing OOMs on our Hadoop cluster at work:
       | https://github.com/mbrtargeting/oom-monitor
        
       | nicolashahn wrote:
       | I built this image differentiation tool to automate comparison of
       | images generated by two different (one legacy, one replacement)
       | image processing services: https://github.com/nicolashahn/diffimg
       | 
       | Seems to have become useful for a lot of other people, which I
       | didn't really expect.
        
         | lucasmelin wrote:
         | I came across this library just the other week when looking to
         | do some basic screenshot diffing as part of some automated
         | regression testing. Super useful, thanks for your work!
        
       | DarrenDev wrote:
       | I built a tiny Windows desktop app to hide files on my lap top
       | from anyone who might be using the lap top briefly - visiting in-
       | laws, friends who wanted to check email, etc. Building it was
       | triggered by a nosy but technically un-savy sister who was always
       | poking around.
       | 
       | This was about 8 years ago and I use it on all my machines since,
       | even work ones. It 'hides' files by randomly renaming a folder's
       | contents and removing the file extension. Simple, but
       | surprisingly effective.
       | 
       | I called it Cloak My Stuff.
       | 
       | https://badwolfsoftware.com/cloakmystuff.html
        
       | jonseager wrote:
       | I have a couple of projects that I've used over the years. My
       | favourite is probably Architect, which is yet another Arch
       | installer configured with a little bit of YAML and all in bash
       | 
       | https://github.com/jnsgruk/architect
       | 
       | It supports a couple of different options for partitioning,
       | encryption, flicker free boot and some other nice bits :)
        
       | snisarenko wrote:
       | emailmynotes.com (the backend is down right now, working on
       | moving to cheaper hosting)
       | 
       | Send yourself notes from an untrusted computer, without entering
       | passwords.
        
       | philovivero wrote:
       | I wrote an in-terminal histogram tool[0] because... that's
       | when/where I always need histograms.
       | 
       | [0] https://github.com/wizzat/distribution
        
         | asdw wrote:
         | Wow, I didn't know I needed this but after looking at it I
         | realized I do.
        
         | tasuki wrote:
         | This is the best thing since sliced bread, but it doesn't work
         | for me on a recent Ubuntu. Tried with both Python 2 and 3.
         | 
         | Compare:                 $ sudo du -sb /etc/* | sort | uniq |
         | sort -rn | head -10       2897355 /etc/brltty       436966
         | /etc/java-11-openjdk       402728  /etc/ssl       251196
         | /etc/apparmor.d       244732  /etc/ImageMagick-6       219185
         | /etc/X11       170093  /etc/fonts       144084
         | /etc/java-8-openjdk       131407  /etc/init.d       117524
         | /etc/systemd
         | 
         | With:                 $ sudo du -sb /etc/* | distribution
         | Key|Ct (Pct)   Histogram                      9795
         | /etc/ssh|1 (0.40%) -----------------------------------------
         | 97442   /etc/speech-dispatcher|1 (0.40%)
         | -----------------------------------------                 9592
         | /etc/sysctl.d|1 (0.40%)
         | -----------------------------------------           9461
         | /etc/update-manager|1 (0.40%)
         | -----------------------------------------               9438
         | /etc/locale.gen|1 (0.40%)
         | -----------------------------------------              9376
         | /etc/libreoffice|1 (0.40%)
         | -----------------------------------------                  92
         | /etc/host.conf|1 (0.40%)
         | -----------------------------------------                   91
         | /etc/networks|1 (0.40%)
         | -----------------------------------------              9077
         | /etc/libblockdev|1 (0.40%)
         | -----------------------------------------
         | 9074    /etc/pm|1 (0.40%)
         | -----------------------------------------                9013
         | /etc/bluetooth|1 (0.40%)
         | -----------------------------------------                  890
         | /etc/gshadow-|1 (0.40%)
         | -----------------------------------------                   890
         | /etc/gshadow|1 (0.40%)
         | -----------------------------------------
         | 8894      /etc/skel|1 (0.40%)
         | -----------------------------------------
         | 887     /etc/rpc|1 (0.40%)
         | -----------------------------------------
         | 
         | The indentation is all janky. And it's not sorted how I'd like.
        
       | scriptnull wrote:
       | I wrote a small utility that helps me to kickstart writing blog
       | posts.
       | 
       | https://github.com/scriptnull/sblog
       | 
       | (Been saving me a few minutes ever since)
        
         | dcminter wrote:
         | That's neat. I love ideas like this that remove small amounts
         | of friction from useful behaviour.
        
       | axarydax wrote:
       | Back in 2006 I had a side job as an IT journalist. I wanted to
       | draft my articles while away from the computer on the Pocket PC,
       | as laptops were really out of my reach, and back in the day the
       | localized input methods (touchscreen keyboards) were paid and
       | expensive apps.
       | 
       | I ended up with a text editor supporting various formats and
       | inpit languages, implemented in quite dreadful verbose C#, as I
       | didn't know any better.
       | 
       | https://sourceforge.net/projects/ppc-edit/
        
       | hashamali wrote:
       | I made https://paymewith.xyz to share my social payments faster.
       | Got tired of the "do you have Venmo/Square Cash/Paypal" dance.
        
         | app4soft wrote:
         | It seems like an alternative to https://linktr.ee
        
       | irthomasthomas wrote:
       | I made this for fun after watching some breathless microsoft
       | video about AI in VS code which amounted to autocomplete sorted
       | by popularity. I told a friend I could knock out something more
       | useful (at the time) in half an hour. It's a ahk wrapper of
       | howdoi designed to find code snippets from stack exchange and put
       | them right into the code file you are editing. It is so simple
       | but I actually found it pretty useful for learning new languages
       | or for getting a quick reminder how to do that thing you don't
       | use often. https://github.com/irthomasthomas/helpmecode
        
         | oezi wrote:
         | Can you explain what it searches for? Is it the 'I feel lucky'
         | first code block from the first match of the search term?
         | 
         | How does it know the language? Window title?
        
       | epakai wrote:
       | I wrote hbr (handbrake runner) [0]. It takes a global config, a
       | per-file config, and individual outfile sections then calls
       | HandBrakeCLI to encode video. I use it to encode movies/series
       | from optical media.
       | 
       | Additionally there is hbscan.py to generate a list of potential
       | outfiles from handbrake's --scan argument. One day I'd like to
       | integrate it with hbr (in C) using peg/leg [1]. Currently using
       | pyparsing.
       | 
       | This is still a lot of manual work, but it saves doing it twice.
       | When you find a mistake in an encode there's a log with the file,
       | and it's easy to go back and modify the keyfile and re-encode it.
       | 
       | [0] https://github.com/epakai/hbr
       | 
       | [1] https://www.piumarta.com/software/peg/ (not mine)
        
       | iteratorx wrote:
       | I wanted a way to keep track of my expenses so I built a mobile
       | app in Flutter to do just that. App data is stored on device, no
       | cloud, no tracking, no third parties, and I use SQLite files for
       | storage and export. I made it available for free:
       | 
       | - for Android
       | (https://play.google.com/store/apps/details?id=ro.lansator.ba...)
       | 
       | - iOS (https://apps.apple.com/us/app/banii-mei/id1436417739)
       | 
       | Great experience learning Flutter and publishing the app in both
       | stores.
        
         | foepys wrote:
         | Looking at the Android app in the play store and it says it's
         | not available in my country (Germany).
        
           | iteratorx wrote:
           | Thanks for letting me know!
           | 
           | I hadn't published it for Germany, so I did it now, should be
           | available.
        
       | saimiam wrote:
       | I hate blogging using markdown/wordpress so I built myself a
       | blogging platform which lets me post via gmail. I've [Show HN]-ed
       | it a few times now that I decided to productize it but it didn't
       | get too many eyeballs.
        
         | fatboy93 wrote:
         | Can you share the link?
        
           | saimiam wrote:
           | https://moogle.cc/ - thanks for asking.
        
       | username91 wrote:
       | Made something really similar to apple's recently unveiled
       | "universal control," but from Windows -> Mac. Lets me have the
       | mouse wander off the side of the screen if "pushed hard" and it
       | "pops out" on the mac. It has some issues with modifiers sticking
       | and it's hard-coded to my network IPs and screen resolutions,
       | PLUS it requires an unrelated tool I made to actually build the
       | thing; it's on my "open source someday" list but it's not very
       | other-programmer-friendly.
       | 
       | Made lots of other things but that's probably my fave and the
       | strongest one for productivity.
        
         | fraetor wrote:
         | Synergy does this really well https://symless.com/synergy
        
           | username91 wrote:
           | Nice! I can feel less guilty about not trying to finish mine.
           | :j
        
           | smw wrote:
           | And barrier is a fork of synergy before it went quasi-open
           | source that actually works!
           | 
           | https://github.com/debauchee/barrier
        
       | davchana wrote:
       | https://apps.bydav.in
       | 
       | ssl is sketchy working on some of these because of gitlab and or
       | cloudflare settings.
       | 
       | The one I use everyday is a html javascript form hosted on gutlab
       | pages and sending data to google sheet via apps script, to record
       | my timesheet data.
       | 
       | Since coding, I have used the gotp app, which is Google TOTP
       | impory export & backup before Google Auth itself implemented.
       | Still, their way is to start from scratch only, whereas mine one
       | can be used to add accounts. https://spa.bydav.in/otp.html
       | 
       | I used a mix of gmail filters, app script & sheets to download
       | every email I received as eml file & save it in drive folder
       | named as year, & eml named as yyyy mm dd hh mm ss ttt nn
       | subject.eml
        
       | maxrev17 wrote:
       | I have an augmentation of clickup via their api which lets me
       | report in different ways on subcontractors and
       | tasks/projects/clients over different time periods and calculate
       | overall/historical profitability. Works quite nice :)
        
       | nergal wrote:
       | When wunderlist was shutdown i had to find an alternative. I only
       | used basic features of wunderlist and wanted something similar.
       | But all options was just too much. So I built it myself. I've
       | used it every day since. For shoppinglists and work tasks and any
       | household tasks. It's perfect for what I want. It even looks a
       | bit like wunderlist. Https://github.com/lallassu/doit
       | 
       | Then I also wanted to read my news from the shell in a simple
       | manner. And I knew what I wanted but no existing rss client had
       | the feeling I wanted. So I built Gorss. I use that every day as
       | well. Https://github.com/lallassu/gorss
        
       | mrami wrote:
       | A tool that will read your Java REST endpoints, and make
       | TypeScript interfaces and invocation functions, so you can
       | pretend your React front-end is using DCE again like it's 1999.
       | 
       | https://github.com/BlueCircleSoftware/bluecircle-json-interf...
        
       | mathgladiator wrote:
       | Not small, but myopic in a way.
       | 
       | I've been tinkering on and off with my own programming language
       | for the last couple of years: http://www.adama-lang.org/
       | 
       | The key motivation is dealing with the complexities of managing
       | all the state between people as they play a game with a strong
       | boundary for privacy.
       | 
       | I am debating what my next steps are with what I've learned. Do I
       | focus on growing things around it, or do I abandon yet another
       | project and do something that might actually achieve success.
        
         | xpe wrote:
         | Do you have a community of people to bounce ideas off of?
         | BoardGameGeek perhaps? Other niche language developers? Sounds
         | cool. Feel free to ping me if I can help. I've made a few board
         | games and computer games. (Contact info in my profile)
        
       | jazzychad wrote:
       | I made https://xbm.jazzychad.net as a simple online XBM image
       | editor for use in various Arduino projects that use those little
       | oled displays. It was also an excuse to learn React a few years
       | ago.
        
       | brundolf wrote:
       | I made Strainer, a CLI utility for finding duplicate lines in one
       | or more files: https://github.com/brundonsmith/strainer/
       | 
       | My original use-case was looking for copypasta across a CSS
       | project, but more recently I dug it back out to strip duplicate
       | entries from a set of enormous EasyList (https://easylist.to/)
       | files I was working with
        
       | verdverm wrote:
       | Code generator based on CUE
       | 
       | https://github.com/hofstadter-io/hof
        
       | rcurry wrote:
       | Sounds dumb but I go camping a lot and still want to access
       | various informational APIs when I'm in limited cell reception
       | areas so I built a bridge that allows me to hook my APIs up to
       | text messaging. I just send a text like "news" and get the latest
       | headlines over sms. It works pretty well even when I don't have
       | data access I can still usually get the text messages back.
        
         | RileyJames wrote:
         | Very cool. When I was travelling around Canada I also wanted a
         | sms 2 api gateway.
         | 
         | 3G/4g data was expensive and reception limited. But sms was
         | free and unlimited, and more widely available.
        
           | rcurry wrote:
           | I'm working on turning it into an online service - shoot me
           | an email to recurry@outlook.com and I'll give you a free
           | unlimited account if you'd still like something like that.
        
       | fb13 wrote:
       | I always bookmark these idea mining threads, has anyone ever made
       | use of them?
       | 
       | My though, because I haven't, is that if you want to essentially
       | work on someone else's idea then go be an employee, otherwise the
       | first actually passionate person will steal the show as soon as
       | they show up.
        
       | ondrek wrote:
       | https://www.npmjs.com/package/bebusy
       | 
       | Seven years ago I needed time for finishing a school project and
       | wanted to look busy at work. The packages prints random messages
       | to terminal, so you look like you are are in middle of some
       | deployment job or npm install.
       | 
       | Still works as far as I know.
        
       | InputUsername wrote:
       | I built a music "scrobbling" program called rescrobbled to submit
       | music I listen to Last.fm. I was sharing a Spotify account so I
       | couldn't use Last.fm's Spotify integration -- which is pretty bad
       | anyway, in my experience. Rescrobbled has served me well (and a
       | few other people too, apparently).
       | 
       | https://github.com/InputUsername/rescrobbled
        
       | simonbarker87 wrote:
       | Oooh, so many: - finance tracker for my wife and I when saving
       | for our first house. JQuery and PHP, my first "real project" -
       | had a great domain name: spentby.me - stock/production management
       | script in Python for my business that I eventually rewrote and
       | released as my first iPhone app (StockControllerapp.com - still
       | sells a few copies a week after 5 years) - stocks/shares analyser
       | script in NodeJS to show industry and company weighting's to show
       | if we are over indexed on a holding/sector - Instagram post
       | creator in React so I can make educational coding carousels in
       | the style my account has without having to faff about in figma
       | 
       | Pretty much everything I build is to solve a problem I have for
       | myself and I just don't like the existing options (I always looks
       | first and if I find something I like I use that, if not I roll my
       | own)
        
       | ficklepickle wrote:
       | I have so many of these things that I use daily.
       | 
       | I made a CLI password manager in Bash. It grabs random bytes from
       | /dev/urandom, filters out the non-ASCII, then GPG encrypts with
       | my key. Months later I realized I had reinvented the common
       | utility 'pass'.
       | 
       | I made a utility to type accented characters on Linux. I learned
       | to type French on an English keyboard under windows as a kid
       | using Alt + 0NNN where NNN is the decimal character code. I made
       | a delightfully hacky solution: when I press Alt+0 a tiny window
       | is popped for a fraction of a second to capture the next
       | keystrokes. If they are 3 digits, it spits out the relevant
       | character into the active window. This one is also in bash.
       | 
       | The car share service I use got rid of their web interface. I
       | reverse engineered their android app and created my own
       | unauthorized web app so I can find available cars.(evofinder.ca)
       | 
       | I built an embedded device that connects to the door buzzer in my
       | apartment so I can let myself into the building. It's built with
       | a cheap esp8266 dev board and programmed with the arduino IDE,
       | yet it has been running reliably for years.
       | 
       | I built a mobile trivia game web app that is simple and
       | lightweight with no ads or tracking. I made it pre-COVID to kill
       | time when I was out and about. (Justtrivia.fun)
       | 
       | If you want more info about any of these, check out
       | https://jeremypoole.ca/posts
        
       | mkaic wrote:
       | I'm in the middle of building an ML model to make it so I don't
       | have to use green screen anymore when making my short films! It's
       | based off of some recent research at the University of
       | Washington, pretty fun stuff. Maybe 75% complete, starting to get
       | semi-reasonable results finally.
        
       | aloisdg wrote:
       | Recently I released a webapp to fix a problem I faced. I can
       | paste any image from my clipboard (mostly screenshot in my case)
       | to get its base64 version so I can integrate it directly in any
       | markdown: https://paste64.vercel.app/
       | 
       | It was also an excuse to try out Svelte with TypeScript:
       | https://github.com/aloisdg/paste64
        
         | bool3max wrote:
         | Seems like a fun learning project, but in the real world it's
         | very counterproductive. You can obtain the base64
         | representation of the current clipboard contents very quickly
         | using a single terminal shell command.
        
           | jacobmischka wrote:
           | This is an incredibly weird reply. "Very counterproductive"?
           | 
           | You hit ctrl+v and click a button using the app, that is
           | roughly equally, if not more, convenient than switching to a
           | terminal and entering a command.
        
           | jlkuester7 wrote:
           | We must have very different definitions of
           | "counterproductive". Sure, if you have mental space to
           | remember the commands to generate the base64 via a terminal
           | then more power to you. For the rest of us that would rather
           | store a bookmark and/or might not always have access to a
           | *nix environment for running shell commands this seems like a
           | great solution. Either way it is far from
           | "counterproductive".
        
       | tonyjstark wrote:
       | https://codingfriends.github.io/Tincta/
       | 
       | While studying a friend and I used a text editor called Smultron
       | for all our VHDL and HTML/JS scripting. The developer stopped
       | supporting it for a while and we got annoyed by unfixed bugs. In
       | the end we missed having this little, easy to use tool so much
       | that we wrote Tincta. It was heavily inspired by it. It doesn't
       | get enough love nowadays but I still use it for short notes.
        
       | pretzell wrote:
       | I set up wifi on 130 acres on a mix of solar and grid, wired
       | Ethernet, "wireless" Ethernet, and mesh wifi. We have two shakey
       | ISPs. I ping all network devices every ten minutes and plot the
       | results over time. Has helped me tremendously when
       | troubleshooting
        
       | jatins wrote:
       | During last lockdown in March, it became really hard to get
       | grocery delivery slots online. And everything offline was, well,
       | mostly shut.
       | 
       | The delivery slots would run out within 15 minutes of being open.
       | So I hacked together a script that'd poll for delivery slots and
       | notify me on whatsapp whenever there were slots.
       | 
       | This year I had to do the same for vaccine slots. In fact,
       | getting a vaccine slot became a bit of a hackathon in India due
       | to limited slots with multiple GitHub repos and hosted tools
       | coming up to notify you of available slots.
        
       | otagekki wrote:
       | As a Wikimedian who used to spend sleepless nights editing on the
       | Malagasy language Wikipedia and Wiktionary, I have been
       | developing botjagwar (https://github.com/radomd92/botjagwar) on
       | and off for the last 10 years. More details at
       | https://github.com/radomd92/botjagwar/wiki/Backstory
       | 
       | It's mostly bot scripts written in Python. Data is stored in a
       | self-hosted PostgreSQL. In addition to a backend I'd written
       | myself, I also use PostgREST. A rather rustic front-end was
       | written in 2020 (https://github.com/radomd92/botjagwar-frontend)
       | as a COVID lockdown side-project. Other scripts also use Redis as
       | a page cache to speed up operations involving a large number of
       | page reads.
        
       | acj wrote:
       | A tool for visualizing log file volume over time in your terminal
       | [1]. Useful for quickly getting a handle on traffic patterns
       | during a production incident. This began as a scratch-the-itch
       | project and was also the first useful thing I made in Rust. Two
       | itches scratched :)
       | 
       | A tool for visualizing ping latency as a heatmap [2]. My
       | Macbook's wifi had developed a severe latency stutter every
       | ~500ms that was driving me nuts when using interactive tools like
       | SSH. It was very satisfying to visualize it and see the pattern,
       | and it helped to narrow the list of possible causes.
       | 
       | [1] https://github.com/acj/krapslog-rs
       | 
       | [2] https://github.com/acj/pingrok
        
       | cturtle wrote:
       | Just yesterday I wrote a command line tool I called "slice" that
       | acts like Python list slicing for lines in a file. It's a bit
       | simpler than piping head to tail, and I've needed it enough times
       | this week that I went ahead and wrote it in Zig. Haven't used it
       | yet in practice, but I'm excited to!
        
       | maxwells-daemon wrote:
       | I often want to run small "experiment code" many times with
       | different inputs, but don't like wrapping everything in a big
       | framework to do it. So I wrote a little tool that calls any
       | command-line program multiple times with different inputs
       | according to a template and a search strategy [1].
       | 
       | Another upside is that most parameter search programs seem to
       | assume you want either grid search (which is hideously
       | inefficient for large search spaces) or bayesian optimization
       | (which can be overkill and comes with its own caveats). I wanted
       | to make it easy to use quasirandom search [2], which is basically
       | always the right choice for small searches where you just want to
       | understand the parameter space better.
       | 
       | [1] https://github.com/maxwells-daemons/argsearch [2]
       | https://en.wikipedia.org/wiki/Low-discrepancy_sequence
        
       | EthOptimist wrote:
       | I made a command line tool in Golang to get your current IP
       | address along with the Google Maps link to the exact GPS
       | 
       | https://github.com/claytonblythe/myip
        
       | nethunters wrote:
       | Whilst learning classical Arabic it was a pain when reading to
       | search through the Hans Wehr dictionary by first extracting the
       | root letters of the word and then looking up the root and then
       | finding the correct form.
       | 
       | So I put together a frontend [1] to search a scanned version I
       | found of it. It has now evolved in to an offline PWA, which you
       | can search from Arabic to English and English to Arabic, convert
       | numbers in both classical or modern Arabic form, stem words etc.
       | When searching in Arabic it removes affixes, prefixes, suffixes
       | and also uses multiple stemming algorithms to obtain the root if
       | an exact match is not found.
       | 
       | It's pretty neat and makes reading so much easier no matter what
       | device I'm on. It's also used by other professors, teachers,
       | students and friends who are also in the classical Arabic field.
       | 
       | [1] - https://dictionary.ilmwaa.ml/
        
         | ammar_x wrote:
         | Great! Adding it to my favorite dictionaries.
        
           | nethunters wrote:
           | Let me know if you've got any feedback, suggestions or
           | feature requests.
        
             | ammar_x wrote:
             | I couldn't find results for the Arabic verb: y`yb or its
             | past form `b. It means something like criticize. Any tips?
        
               | nethunters wrote:
               | Well you've found an `yb in the dictionary! Currently it
               | uses a single dictionary, Hans Wehr, which doesn't
               | contain that word (I've checked in my physical copy
               | also).
               | 
               | In my backlog is adding additional dictionaries to fill
               | in where Hans Wher is lacking, with next in line Lane's
               | Lexicon. Hans Wehr is a good dictionary for students and
               | contains approximately 90% of the words they will
               | encounter in their first few years of studying. The issue
               | I'm having at the moment is that both dictionaries are
               | structured differently and it requires some manual work
               | to unify their structures.
               | 
               | When searching a verb you can either search the root
               | letters, or any other form even with affixes attached and
               | the stemming algorithms should get the right root word.
        
               | ammar_x wrote:
               | :)
               | 
               | Great. Good luck with adding new dictionaries and thank
               | you for your efforts.
               | 
               | By the way, have you seen the work of Taha Zerrouki. He
               | has produced many open source tools to deal with Arabic
               | language [1]. Thought you might be interested.
               | 
               | [1]: https://github.com/linuxscout?tab=repositories
        
               | nethunters wrote:
               | jzkm llh
               | 
               | My website was originally a Flask web app which used his
               | Arabic number converter, Arabic stemmer, Arabic
               | normaliser and other modules. But in order to use offline
               | as a PWA I end up porting these to JavaScript. I will
               | release the source code once tested properly and porting
               | is completed.
               | 
               | Also just going through your blog, enjoying the summary
               | of Abul Hasan Nadwis book. Keep up the good work!
        
         | Anonymous4272 wrote:
         | That will definitely be useful for students, especially some of
         | my classmates.
         | 
         | Is this open source? If so i may contribute where possible
         | Also, a feature request (if your taking them) is a vocabulary
         | learner and a way to test yourself and mark your progress.
        
           | nethunters wrote:
           | Not open source at the moment but may do in the future.
           | 
           | That definitely would be useful and something I'll hopefully
           | add.
           | 
           | You can email me at dev [at] dictionary ilmwaa ml
        
       | rognjen wrote:
       | I made an editor for markdown front matter. Useful if you're
       | building sites using Jekyll and similar.
       | 
       | https://github.com/ognjenio/front-matter-editor
        
       | iso1210 wrote:
       | == killUnusedTerminalsAndBC.sh ==
       | 
       | This kills off any open bc instances I have, and then any open
       | rxvts I have which aren't running another program
       | 
       | After a day or so I can easilly have 100+ rxvts in the
       | background, some of which are running vim, some sshed into other
       | servers, but many of which are just old windows I ran to do
       | something briefly but never killed off
       | 
       | == another config differ == Someone else on the team had a nodejs
       | based config checker (a script which every 10 minutes logs into
       | -- like rancid, but looking nice). It broke after some minor
       | change in one of the 456,914 imported scripts, so I bashed
       | together my own and dragged in a visual diff tool.
       | 
       | I looked at rancid but it felt rather cumbersome, and I didn't
       | want to store stuff in an VCS, it was quicker and easier just to
       | do it myself
       | 
       | == vlc multiviewer == I wrote a VLC wrapper in python using a VLC
       | Gtk widgit to give me a multiviewer so I could monitor multicast
       | RTP streams and easilly mute/unmute from a touchscreen
       | 
       | == continuous pinger == Just a program to sit in the background
       | pinging a list of servers continuously, traceroutes every 10
       | minutes, and storing them, then a webpage to show the results and
       | summarise them (highlighting any losses and pinpointing the exact
       | second, etc)
       | 
       | == multicast test tools == A couple of quite python multicast
       | send/receive tools to check connectivity. The receiver can also
       | dump out an output and generate a jpeg from the contents (using
       | ffmpeg), and ties into monitoring to ensure that the streams are
       | all working and we haven't had something like pim dying on a
       | router (which has happened in the past)
       | 
       | == cheese.sh == Loads up mplayer to cheesefm and logs what's
       | played (ICY Info lines) to a text file (having first rotated the
       | last one)
       | 
       | == sshold == To ssh into old cisco switches. Barely a script
       | ssh -oHostKeyAlgorithms=+ssh-dss -oKexAlgorithms=diffie-hellman-
       | group14-sha1 $@
        
         | tasuki wrote:
         | > killUnusedTerminalsAndBC.sh
         | 
         | How do you ever _find_ anything if you have 100+ rxvts open? Do
         | you just open new terminals all the time and never go back to
         | the old ones? (Have you heard about terminal multiplexers?)
        
         | barrkel wrote:
         | At least rxvt can run in daemon mode so you don't pay a full
         | penalty for each instance, but it's still a bit OTT. Why not
         | tmux for your ad-hoc terminals. Less likely to forget about
         | them and they're easily managed.
        
       | yabones wrote:
       | I made a little script for quickly spinning up KVM virtual
       | machines on my testing rig. It just grabs a minimal Ubuntu image,
       | preseeds it with a ssh key, clones a VM on the default NAT
       | network, and sets up the disk size/CPUs/memory allocation. It's
       | not meant to replace orchestration or config management tools,
       | just for quick and dirty VMs.
       | 
       | https://github.com/noahbailey/kvmgr
        
       | rootdevelop wrote:
       | When tasked to do some e-mail template development at work
       | without access to a mail server I developed a small cli tool[1]
       | that converts HTML to EML so I could send it as an attachment to
       | the test devices.
       | 
       | [1]: https://github.com/rootdevelop/html2eml
        
       | 627467 wrote:
       | Not my tools, but been following 100r long enough to know why
       | they build their own tools: https://100r.co/site/home.html
        
       | rcarmo wrote:
       | I wrote Piku (https://github.com/piku) to do all of my
       | deployments. Easily the most bang for LOC I ever did.
        
       | destructionator wrote:
       | I wrote my own terminal emulator stack. I was annoyed that the
       | colors were often unreadable on others and that shift+page up
       | wouldn't work to scroll from inside gnu screen that I used to
       | use. So I rewrote the whole thing from scratch, my own terminal
       | emulator and my own replacement for gnu screen. The terminal has
       | both a custom palette and refuses to display certain combinations
       | (if you ask it to do white on white, for example, it will do grey
       | on white instead) and forwards various things like the shift+page
       | up keys all the way down (and on the other side, commands like
       | clipboard paste request all the way too), so when I ssh to the
       | desktop and attach the session, all my habits still work.
       | 
       | I know it sounds like overkill but it just really bugged me to
       | strain my eyes and have to hit different weird keys depending on
       | where I was.
        
       | phreack wrote:
       | A friend and I always develop small scripts to generate stuff
       | that's really boilerplatey in Android, basically writing text to
       | files with node.
       | 
       | I've also made my own autoclicker for grindy Android games that
       | otherwise detect in-OS clickers by basically using batch and adb
       | to click certain spots randomly in a while loop.
       | 
       | Also a few batch scripts for a musician friend who's 0% technical
       | to separate mp3 songs into instrument tracks (to rehearse and
       | have fun) with spleeter by just dragging the file into the .bat.
       | 
       | Oh and a bunch of mini scripts to pull and merge stuff from one
       | git branch to another and push it all (like dev to staging) to
       | trigger a CI flow.
        
       | amar-laksh wrote:
       | Got tired of having to pause/resume media while watching food,
       | made a script to automatically pause/resume media if I'm not
       | focusing on the screen. https://github.com/amar-laksh/focusTV
       | (the code was not great but it works)
        
       | greenyouse wrote:
       | I wanted frontend debugging in prod so I've been halfway through
       | building a source map injection browser extension for a while.
       | The problem is that source map comments don't work well when the
       | same artifact is deployed across prod and multiple staging
       | environments. For each env at work we have different asset paths
       | which need to be generated. Each server already serves up its
       | source maps behind a firewall (for other reasons). The main work
       | of the browser extension is to inject the source map dynamically
       | at runtime when the page is loaded in the browser.
       | 
       | It can do this by taking a mapping of regex asset paths for each
       | server in each env and the url of the source map location. Then
       | it fetches the source maps internally, injects them using a
       | SourceMap header with the chrome devtools network api, and that
       | attaches the source maps in chrome's sources panel.
       | 
       | We used to get hit with production issues during oncall shifts
       | more often. This came out of thinking about ways I could make
       | debugging under pressure a bit easier for myself. If it helps I
       | also automate common debugging steps with chrome snippets to save
       | time.
       | 
       | We haven't been dealing with prod issues that need debugging for
       | most of the last year so I haven't really needed it. It's not
       | super hard to build though. If anyone wants to you should go for
       | it!
        
         | compacct27 wrote:
         | Oh hey, I've been thinking of doing this too. Do you have a
         | repo or anything?
         | 
         | I took frontend bugging in a new direction for me as well--
         | decided to add the file name as a prop to every element on the
         | page (in dev only, just takes adding a Babel loader for it).
         | Helps with unfamiliar areas
        
       | dcminter wrote:
       | Despite its numerous shortcomings this dictionary bash script was
       | pretty useful to me at a recent abbreviation-heavy gig:
       | 
       | https://github.com/dcminter/define/blob/master/define
       | 
       | I am pleased with the utility:simplicity ratio but slightly
       | ashamed of its limitations.
        
       | HKH2 wrote:
       | I have an unorthodox system of things which is all quite
       | interdependent. I prefer to just adjust things as I go. I know
       | I'm reinventing the wheel at times, but I would rather a more
       | personal UX than a UX for the lowest common denominator.
       | 
       | I have a variable loader that I can use in scripts/programs so
       | that I don't have to hardcode filepaths and so I can change
       | settings quickly. Variables can refer to other variables, even in
       | parts of them. I can quickly insert references to those variables
       | into scripts/programs with a shortcut key.
       | 
       | There is a note taker: a shortcut key immediately opens a blank
       | file (which is named the date + time + a short unique ID to avoid
       | any clashes).
       | 
       | There is also a note reviewer: It shows the next note to refine.
       | I can postpone any that are uninteresting yet incomplete for
       | whatever duration, and archive any which are complete and can
       | show up as relevant matches elsewhere in my system. This stage
       | allows me to deal with bits and pieces at a time, and review
       | things I'm still working on. It avoids hierarchical constraints
       | on purpose, and it breaks things down into tags instead.
       | 
       | I have a sort of data representation in which I can note how
       | things/concepts are linked, and also express doubt, references,
       | references to references and so on, to allow expressive
       | representations of thoughts including incompleteness or
       | ambiguity.
       | 
       | I have a music player that devalues a track every time it is not
       | played in its entirety. The faster it gets skipped the more it
       | gets devalued (and there are meta keys to add more weight). If a
       | track's rank doesn't meet a random threshold then it gets
       | skipped. It basically stops the listener getting too used to a
       | track even though they may like it.
        
       | fdw wrote:
       | I missed an emoji picker for Linux. I couldn't find anything that
       | was not integrated into Gnome/KDE or maintained. So I set out to
       | write one myself, just a simple Python script with rofi. I
       | uploaded it to Github, because maybe someone else also wanted
       | that. That was several years ago, and now [rofimoji] can do all
       | UTF-8 characters (and custom ones), works on Wayland and is
       | packaged for some distros. I'm so happy how my tiny project
       | turned out and how many people helped with PRs and issues.
       | 
       | [rofimoji]: https://github.com/fdw/rofimoji
       | 
       | Professionally, I (and the whole team) lost track of our deployed
       | artifacts, as we're not on a release schedule but also not really
       | on continuous deployment. Mainly, we released when someone
       | noticed that a release has been running stably on staging for a
       | while. We also needed a way to ensure our configurations were
       | correct and to track API versions. So I started hacking together
       | a small React app (new for me at the time) to collect and display
       | all that information. It had a good welcome in our team, and so a
       | colleague and I improved it a lot, added an actual backend and,
       | for example, integrated it into our CI so that you can now see
       | which commits happened since the last deployment and deploy
       | through it, with just two clicks. We also automated a lot of our
       | previously manual checks for larger deployments. It's become the
       | main tool for that stuff, even for our not-so-technical PO.
        
       | gravypod wrote:
       | I have not found a good ebook reader that keeps my state on edge
       | devices and syncs to a server my position. When I had more time
       | to read manga I built this:
       | https://github.com/gravypod/ComicReader
       | 
       | It takes a folder of webp files and remembers your page on local
       | storage. It's not perfect but it's ok. It also prefetches the
       | next 10 or so pages which is fine for reading on a train.
       | 
       | Another, tool that sends wake-on-lan packets and shutdown packets
       | to a windows machine that allowed me to steam stream from a
       | dedicated windows machine:
       | https://github.com/gravypod/SteamStreamScripts
        
       | bckr wrote:
       | I have thousands of images of journal entries & notes about
       | things I want to make (music, stories, software) collected over
       | the last 8 years. I'm currently organizing it all with tags and
       | metadata using a Django web app. It's fun, even addictive, and
       | I'm finally getting the insight from my own personal records that
       | I've been hoping for.
       | 
       | What this looks like is gathering my data, spinning up different
       | views and templates based on what I want to do next, using and
       | iterating on the page while I use it, getting a new idea, rinse &
       | repeat.
        
       | motyar wrote:
       | https://mark.show so I can present ideas quickly.
        
         | porter wrote:
         | This is really great!
        
         | asdw wrote:
         | amazing.
        
       | mxstbr wrote:
       | I write Raycast[0] scripts to automate small, common tasks I do
       | daily, for example:
       | 
       | - Connect my AirPods to my Mac - Count the characters in some
       | text - Create a new text expansion shortcut with Espanso[1] -
       | Start/stop a Focus[2] session - etc.
       | 
       | Because they're in Raycast, they're super accessible to me -- I
       | simply hit CMD + Space, type the first word of what I need and
       | hit Enter. Loving it!
       | 
       | [0]: https://raycast.com [1]: https://espanso.org/ [2]:
       | https://heyfocus.com/
        
       | zdwolfe wrote:
       | I wrote a tool that reads numbers from stdin and outputs the
       | percentile statistics of those numbers.
       | 
       | https://github.com/zdwolfe/zstat
       | 
       | https://pypi.org/project/zstat-cli/                   $ cat
       | nums.txt         456         366         695         773
       | ...              $ cat nums.txt | zstat         p0      =
       | 56         p50     =       366         p90     =       773
       | p95     =       773         p99     =       826         p99.9   =
       | 826         p100    =       826
        
       | spoiler wrote:
       | A basic resume/CV generator out of JSON resume, it also supports
       | inline SCSS: https://github.com/omninonsense/resume-stylist
       | 
       | I'd generally "print to PDF".it before sending it out. I was in
       | the process of automating PDF generation when 1) I got hired and
       | 2) Chrome was changing up the API in the next release so I just
       | kinda... Lost motivation I guess, especially since I didn't need
       | it anymore either.
       | 
       | https://github.com/omninonsense/spotlight-thief
       | 
       | This saves the windows spotlight images (on lock screen) to a
       | folder that I use for randomised background images. I manually
       | filter out the ones I dislike. It runs automatically on Linux
       | (it's wrapped though).
       | 
       | Interesting that they're both in Ruby. I guess Ruby is my go-to
       | scripting language, even though I usually never write Ruby. Maybe
       | it's the language's ergonomics or something.
        
       | rognjen wrote:
       | 1. I wrote a thing that logs the currently active window
       | primarily for Ubuntu. Useful if you bill hourly and want to track
       | total time spent.
       | 
       | http://sentried.ognjen.io/
       | 
       | 2. I use markdown files to keep notes. So i made a couple of
       | scripts to keep that organized. It can quick add new notes and
       | create indexes.
       | 
       | https://ognjen.io/markdown-notes-improvements/
       | 
       | 3. No longer live: I made a printable forms builder. In a
       | previous company we had to make custom paper forms for
       | registration for every client so I made a thing that made nice
       | printable forms.
       | 
       | 4. A thing for estimating Trello cards. You would import a board.
       | Then invite people. Then everyone could estimate all the cards
       | without seeing other estimates. The owner would then see
       | everyone's estimates and could accept an average and
       | automatically tag all the cards with something like "effort: 3".
       | 
       | If you're interested in 3 or 4 email me and I can dig them out.
       | 
       | 5. I made a few customizations to Jekyll including being able to
       | publish posts from external folders.
       | 
       | https://ognjen.io/categories/jekyll
        
       | diimdeep wrote:
       | calculate movie rating from imdb review votes, I would like to
       | think that is more sane than blackbox rating [1]
       | 
       | [1]: https://github.com/diimdeep/sane_imdb_rating
       | 
       | > diim
        
       | sokoloff wrote:
       | I built a small (borderline trivial) script that I put at
       | ~/bin/update on my regular user account on every server. Its
       | purpose is to do whatever I've decided is most appropriate to
       | keep that server up-to-date.
       | 
       | For most Debian-based servers, it's approximately:
       | sudo apt update       sudo apt upgrade       uname -a
       | prompt me to hit y if I want to reboot that server now. (This is
       | what uname is for: to orient me to where that window is connected
       | to prevent downing a server I don't want to.)
       | 
       | This pattern means I can customize it for any given server
       | without having to remember what/why for each. (This context is
       | for my home network; I don't claim that this is a great practice
       | for production workloads, but it's nice and handy for my home
       | network.)
        
       | romes wrote:
       | I did a calculator TUI to visualize binary and hex while
       | developing an emulator :) https://github.com/alt-
       | romes/programmer-calculator
        
       | sentinel wrote:
       | http://www.micktagger.app
       | 
       | I have a lot of Spotify playlists and I wanted an Alfred like
       | tool to quickly add songs to my Spotify playlists, mostly using
       | my keyboard. There was none out there that I was happy with, so I
       | built it myself.
       | 
       | Fast forward to today, I've added a few more features I wanted
       | for myself - auto removal of songs I skip often, auto like of
       | songs I listen 100% and a smart playlist feature that gathers new
       | songs from playlists I select into one separate playlist, every
       | Monday.
        
       | m12k wrote:
       | I made a handful of ruby scripts to automate exporting
       | subscription transaction data for my SaaS from Stripe, piping it
       | into my accounting tool and reporting to the authorities. There's
       | a script to validate that all paying customers are assigned a
       | "VAT zone" (same country as me, EU or "rest of the world") and
       | help me assign one if they don't (it's a command line tool that
       | provides links to their email domain and Stripe customer data, to
       | help me figure out where they are located). Then there's one to
       | make sure I have a verified VAT number for everyone in a zone
       | where that is a requirement (and warn me if I got a payment where
       | the tax wasn't set up accordingly). One to pull all transactions
       | from a given quarter, by default the last finished one. One to
       | download invoice PDF's for all these transaction and upload them
       | to my accounting tool. One to upload the rest of the transaction
       | data to the accounting tool, categorizing things correctly by vat
       | zone and linking up with the already uploaded PDFs. And finally
       | one to generate a CSV of EU "reverse charge vat" customer
       | transactions to be uploaded to the gov't for reporting purposes.
       | 
       | It started as a single script and has grown into a little suite
       | of related scripts that function a bit like a pipeline, each
       | operating on the same list of transaction data one after the
       | other. All told I've probably spent a week coding and improving
       | them, and they've certainly saved me several months of manual
       | work in the last couple years.
        
         | d1str0 wrote:
         | You may have already seen this, but Stripe is now offering
         | "Stripe Tax" as a beta and it might be up your alley.
        
       | MarcelOlsz wrote:
       | I am building a remote job listing aggregator and have been
       | working on it this entire year so far. I want one central place
       | where I can view all listings by a certain company across all
       | aggregators, or disable certain aggregators, etc.
       | 
       | I found it annoying to be browsing like 10 different top remote
       | sites, but having no real way to filter out duplicates, keep
       | track of the listing, save listings and progress them to custom
       | stages a la kanban etc. I've put wayyyyy too much time into this
       | but I'm excited to launch soon. Manually using excel is a PITA
       | too.
       | 
       | I'm focusing really hard on accessibility, mobile UX, and in
       | general usability. The backend is pretty beefy in that it
       | essentially runs itself without any manual work on my part.
       | 
       | Some screenshots:
       | 
       | [0] https://i.imgur.com/PZMtTkq.png
       | 
       | [1] https://i.imgur.com/qfKAaZG.png
       | 
       | [2] https://i.imgur.com/ZDwEzS8.png
       | 
       | [3] https://i.imgur.com/NSreYUN.png
       | 
       | [4] https://i.imgur.com/XbFMQC0.png
       | 
       | [5] https://i.imgur.com/hcVSFSz.png
       | 
       | [6] https://i.imgur.com/tEoDukn.png
       | 
       | Another app I'm working on after this is one to introduce the git
       | branching model to other types of work. Instead of
       | commits/pr's+issues/branches, its tasks/conversations/topics. The
       | idea is to get a birds eye view of what your team is working on
       | and an easy way to publish your events to your team. Opening a
       | PR, or an issue, or anything really takes many clicks and
       | interactions and greatly disrupts my process so I built a native
       | tool like spotlight where you can log a task, conversation, or
       | start a new topic, in only two interactions.
       | 
       | Even as a developer there are many side things I'm doing in a
       | given day that are not accurately reflected by git, and using
       | slack/discord to publish "yesterday / today / tomorrow" is
       | something that can definitely be easily automated.
       | 
       | I'm focusing on productivity tools that solve pains I've had at
       | various points in my career.
        
       | lukaszkups wrote:
       | https://www.npmjs.com/package/tavuelo - I've created own Vue.js
       | table plugin because I was so annoyed with customizing another
       | table from UI library for the 100th time to achieve similar
       | result so I've created a dedicated solution that will cover most
       | common problems/requirements I need to develop at work.
       | 
       | https://github.com/writteli/writteli - I've created static site
       | generator because I've wanted something that suits my needs for
       | 100% and I won't need to "fight" with the 3rd party solutions to
       | achieve what I want. Also I've wanted to learn something during
       | the process. I'm using it on daily basis to maintain my website
       | (https://lukaszkups.net) and also now I'm working on a desktop
       | app that will be compatible with it.
       | 
       | https://github.com/mrmnmly/scaffolder - I was sick of creating
       | boilerplate code over and over again when I was doing my baby
       | steps with Meteor.js so I've created a stupid simple bash script
       | that will generate it for me.
        
       | lostintangent wrote:
       | I wrote a GitHub Gist management experience for VS Code, since I
       | wanted an extremely easy way to capture notes, docs and code
       | snippets throughout the day: http://aka.ms/gistpad.
       | 
       | It completely transformed my behavior of writing and sharing, and
       | I ended up expanding the experience to support GitHub repos as
       | well, so that I could access and edit any of my "knowledge
       | bases", regardless how they're stored in GitHub.
        
       | maccard wrote:
       | I have a widget on my home screen that powers on my PC, syncs to
       | latest, compiles my work code base and sends me a push
       | notification when it's done (10-15 minutes most mornings). I use
       | that time to make coffee and breakfast.
       | 
       | It's a flutter app using Firesbae for state and push
       | notifications. I have a smart power strip, and my PC powers on
       | when it received power, and logs in if the yubikey is attached to
       | it (which I leave in at night). I have a golang service on my PC
       | that runs in the background and listens to firebase for certain
       | events and runs the commands and posts results back
        
       | _Understated_ wrote:
       | I built a kanban board with two goals:
       | 
       | 1. Dark mode by default
       | 
       | 2. Dead simple
       | 
       | I am looking to make a couple of WPF projects over the next
       | couple of years and wanted to track them but found all the online
       | Kanban tools missed the mark by miles in one way or another: in
       | particular, they were all far, far too complicated.
       | 
       | So I built my own: https://allthetasks.com
       | 
       | It's not long up and missing a bunch but it works and scratches
       | my itch :)
       | 
       | Edit: Oh, almost forgot. It was also to use some of the stuff I
       | don't get to use in my day job... we tend to just build something
       | and ship it as fast as possible (development speed, not
       | application speed) so I wanted to make something as small as
       | possible and fast as possible too!
        
       | tofukid wrote:
       | I built https://sumi.news so I could read RSS, Twitter, and
       | newsletters peacefully. It started as a local app to fetch RSS,
       | and transitioned to a web app to enable reading newsletters. It's
       | written in Haskell and hosted on Linode.
       | 
       | I also wrote my own classless UI library. I can drop in a single
       | style sheet and write plain HTML, no classes or anything, and get
       | beautiful cross-platform UI that is accessible and functional
       | out-of-the-box. I use this for a lot of my projects. I plan on
       | polishing it, open-sourcing it, and selling it in the future.
        
       | Jiro wrote:
       | The Perry Rhodan series was translated into English in the 1970s,
       | but the series is very long and the translation stopped very
       | soon. I can find Perry Rhodan ebooks and upload to Google
       | Translate. However, converting the ebooks to text does not put
       | them in a format useful for translating--the sentences are broken
       | by newlines and there are specific problems like page numbers and
       | the letter M embedded at a page break.
       | 
       | Thus, wrote a tool to convert such converted ebooks to have full
       | sentences and to do a couple of other odd things so Google
       | Translate and the particular ebook reader I am using handle them
       | better.
        
       | dumbfoundded wrote:
       | I run an e-commerce site with our own manufacturing and
       | fulfillment. I created a small program to sort shipping labels
       | into piles based on our needs. We used to do this sorting by
       | hand. It's not much but saves 30min a day, 6 days a week.
        
       | bootlooped wrote:
       | Scraper to check for covid 19 vaccination appointments for my
       | dad. Never had to use it as his health care provider proactively
       | got him signed up.
       | 
       | Scraper to check Target for PS5 stock every 90 seconds. Never
       | returned any hits in a week, which I believe reflected reality,
       | then I found one at Best Buy.
       | 
       | Daemon to repeatedly check internet speed and spit out a cab,
       | which I then graphed. Point was to see if I was getting sub par
       | speed and ask for a credit; turns out the speeds were fine.
       | 
       | Just for fun daemon that spammed my friends' WordPress blog
       | message form. Involved using OCR to break the (very weak)
       | captcha, which was fun. Sent over 100k snippets of various
       | garbage fan fics. I don't think they ever checked wherever the
       | messages go.
       | 
       | Scraper which looked for chair massage appointment openings and
       | emailed me when it found them. We used to get massages at work,
       | but the slots went quick. Worked great.
       | 
       | TODO: I found out some of my photos in Google Photos are of
       | interior quality. I want to write something to compare my local
       | copies to their internet counterparts and indicate which are sub
       | par. I'll then upload the higher quality versions somehow.
       | 
       | TODO: scraper to enter all my financial account balances in a
       | spreadsheet daily. I currently do this manually twice a month.
        
       | ttctciyf wrote:
       | Firefox udpate script based around:
       | /usr/bin/wget -nc --trust-server-names \
       | 'https://download.mozilla.org/?product=firefox-latest-
       | ssl&os=linux64&lang=en-US'
       | 
       | which retrieves the latest release. After downloading, it's
       | unpacked to a new directory named after the firefox version,
       | under opt:                   FFFILE=`ls -tr ./firefox-*bz2 | tail
       | -n 1`         NEWFFDIR="/opt/"`echo $FFFILE | perl -pe
       | 's/.*firefox-([0-9\.]+[0-9]).*/ff-$1/'`
       | 
       | and then linked to a standard place (/opt/firefox)
       | /usr/bin/sudo /bin/ln -s $NEWFFDIR/firefox /opt/firefox-new
       | /usr/bin/sudo /bin/mv -T /opt/firefox-new /opt/firefox
       | 
       | /usr/bin/firefox is already a link to /opt/firefox/firefox.
       | 
       | Old /opt/ff-XYZ dirs are culled manually.
       | 
       | This is easier for me than manual update from the browser, or
       | relying on the distro's firefox updates. It also allows me a
       | backout option while I acclimatise to new Firefox "features."
       | 
       | It took me about 30-40 manual updates before I got around to
       | writing the script :)
        
       | TT-392 wrote:
       | Wrote some tools to convert a bunch of kanji (japanese,
       | originally chinese characters) stroke diagram (diagram on how to
       | write the character) csv's I got from some open github database
       | into png's with nice colors per stroke. Which I then added to a
       | kanji anki deck for learning japanese. Maybe not quite the kind
       | of thing you were asking for since it is not a tool I run
       | regularly, cause you only run it once. But I use the results on a
       | daily basis.
        
       | raggi wrote:
       | A lot of the tools now in fuchsias fx started life as personal
       | standalone scripts later exported to the team. Nowadays contrib
       | contains tons more, some of which also started similarly. These
       | all now have a long history from many contributors. You may be
       | able to glean the historical process stuff from the git history.
       | 
       | https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/de...
        
       | udia wrote:
       | I wrote a small Python script that will SSH into my remarkable
       | paper tablet, copy all of the raw files to my desktop, and then
       | convert the binaries to pdf. I use this tool on a daily basis to
       | offline backup my handwritten notes.
       | 
       | https://github.com/awwong1/remarkable-cli
        
         | edoceo wrote:
         | Thank you!
        
       | rakshazi wrote:
       | I built entire service [0], because I wanted to chat in matrix
       | (protocol [1]). It's quite hard to selfhost it properly, so I
       | ended with lots of automatization, based on open source stack.
       | 
       | Now I can setup a homeserver in ~20 minutes with lots of
       | additions and customizations.
       | 
       | [0] https://etke.cc
       | 
       | [1] https://matrix.org
        
       | bradleyjkemp wrote:
       | As part of my job, I report a lot of phishing sites. This gets
       | very annoying very quickly.
       | 
       | As well as reporting to SafeBrowsing, etc. for each site you also
       | need to look up the domain registrar and hosting provider (via
       | WHOIS) and email them.
       | 
       | Rather than do this manually every time, I wrote a small CLI to
       | automate the lookups and even open pre-templated emails:
       | https://github.com/bradleyjkemp/abwhose
       | 
       | I'm now redoing this as a web app so that I can do the entire
       | reporting process without leaving the browser:
       | https://phish.report
       | 
       | Kinda fun trying to "speedrun" the process down to as few clicks
       | as possible.
        
       | sandreas wrote:
       | _m4b-tool_ - merge, split and edit audio books
       | (https://github.com/sandreas/m4b-tool/)
       | 
       | This one has become pretty popular in the meantime - did not
       | expect that :-)                 ---
       | 
       | _graft_ - file transfer utility with regex, mdns and sftp server
       | (https://github.com/sandreas/graft/)
       | 
       | Designed to have tools like find and copy also on Windows - not
       | maintained any more, since I found sfk, rclone and others...
       | ---
       | 
       | _look_ - a log file watcher (https://github.com/sandreas/look)
       | 
       | Designed to have tail on windows, not maintained any more,
       | because its ready for my use case.                 ---
       | 
       | _pilabor_ - a hugo blog to manage my personal notes
       | (https://pilabor.com)
       | 
       | Started as an experiment a few month ago for organizing my
       | personal notes in a hugo project. Worked out pretty well so far.
        
       | cube2222 wrote:
       | I've built jql[0] as a much more uniform and simple to use
       | alternative to jq, with a lispy syntax.
       | 
       | It may seem dead, but it's not. It's just finished, and I'm using
       | it daily.
       | 
       | [0]: https://github.com/cube2222/jql
        
       | dusted wrote:
       | I like to make my own things when I can, for me, that's a big
       | part of being a computer user.
       | 
       | Hadware+Software - I built finalkey.net to manage my passwords,
       | at the time I made, the mooltipass and other solutions were not
       | yet available, and didn't fit my idea of what a hardware password
       | manager should be.
       | 
       | Software - I made a tool for catching the video and audio coming
       | out of my Ultimate64 Commodore 64.
       | https://github.com/DusteDdk/u64view because none was available
       | for Linux at the time.
       | 
       | Software - I wrote SDL-Ball because DX-Ball didn't work well in
       | WINE.
       | 
       | Hardwaer+Software - I made a
       | https://github.com/DusteDdk/RacingGpsTracker because I wanted to
       | make GPS overlay for my dads road-racing videos. I later updated
       | it to use the GPS data from the GoPro cameras when their GPS got
       | fast enough.
       | 
       | Harware+Software - I made a controller for my wood-burning boiler
       | because I disliked having to wait for it to heat up before I
       | could set the "out of fuel" temperature limit.
       | https://github.com/DusteDdk/boilerController
       | 
       | Software - I wrote a static image gallery generator for quickly
       | making picture galleries for sharing with friends and family.
       | https://github.com/DusteDdk/chromogen
       | 
       | I've made lots of other things, but then they're usually scripts
       | or programs used once or twice for something specific and then
       | thrown away.. Like the console-based ticker client I wrote for
       | krakens api, to show me how poor dogecoin is making me.
        
       | L0g4n wrote:
       | Approximately a year ago I wrote my first program in Rust as an
       | introductory project to extract assets from Renpy archive files
       | [1]. Basically it's for ripping assets [2].
       | 
       | [1]: https://gitlab.com/L0g4n/unrpa_rs [2]:
       | https://blog.l0g4n.me/unrpa-rs/
        
       | smaon wrote:
       | Hope this fits the request, I created two simple tools recently:
       | 
       | - The Simple Password Manager (https://www.tspm.ch), a "password
       | manager" that generates a password from an easy to remember
       | passphrase. I created that for myself and to make my friends stop
       | using the same password everywhere.
       | 
       | - Pokerplan (https://www.pokerplan.ch/), a scrum Poker tool that
       | I made for me and my co-workers for our scrum pokers during the
       | pandemic.
        
         | nicolasrusso wrote:
         | tspm might be useful as a chrome extension, wherever you type a
         | specific password it converts it. Although maybe that comes w/
         | other security issues
        
       | krysp wrote:
       | Near our work there is a single public tennis court that in
       | normal (pre pandemic) summers is heavily contested for bookings.
       | So I wrote a script to book in whatever set of sessions me and my
       | colleagues wanted to play for the following week. It was pretty
       | consistent, would still miss a few though - other people were
       | either staying up to midnight, or they'd written their own bot!
        
       | arbuge wrote:
       | Built https://addue.com for conversion tracking and traffic
       | routing purposes for my ad agency. Later decided to make it into
       | a SaaS tool.
       | 
       | Similarly I built https://Classient.com to take class bookings
       | online for some classes my wife was teaching at the time. Made it
       | into a SaaS tool this year.
        
       | thescriptninja wrote:
       | Wrote a VS Code extension to solve a very minor inconvenience.
       | All it does is that it adds a shortcut to add the current date.
       | Needed this as I use VS Code for journals, notes. Midway, I found
       | another tool that already did the same, but was too excited to
       | build my first extension, so did it anyways :)
       | https://github.com/parth-paradkar/ClipDate
        
       | donohoe wrote:
       | I work in media and have been pushing to improve web page
       | performance for a variety of reasons (better UX, lower bounce
       | rate, load ads faster, higher ad CPMs, etc.)
       | 
       | I created a tool to show how my org (at the time) was doing
       | relative to others, and also to apply a bit of friendly
       | competition to motivate for improvement's:
       | 
       | https://webperf.xyz/
       | 
       | At the time I started, I was at The New Yorker and we were in the
       | top 20, with a Speed Index closer to 8,000. Now its in the 40-50
       | rank with a Speed Index around 25,000 :(
        
       | kontxt wrote:
       | I made https://kontxt.io to highlight, share, organize, and
       | discover the best parts of the World Wide Web.
       | 
       | People I share articles with now know the exact parts that are
       | relevant and they can quickly skip between the highlights and we
       | can discuss inline to maintain context. It lets me and other
       | people publicly share what we highlight in an easily searchable
       | way so you can find quality content from trusted sources. Want to
       | see what resources other people like you, in this case
       | programmers, found useful and shared. Boom! Now you can. Starting
       | to look into something new that you're unfamiliar with, say
       | investing, wouldn't it be great to see what resources other
       | investors previously found useful? Boom! Now you can. Now imagine
       | having this tool at work with all your super smart go-workers?
       | Boom! Now you can. It works for PDFs, too. It's just a wonderful
       | research and planning tool to save, share, organize, and discuss
       | digital information, which is a huge time saver and productivity
       | booster. Step 1: Google, Step 2: Kontxt, Step 3: Success. :)
       | 
       | It's really a multi-purpose overlay for the entire World Wide Web
       | with unlimited use-cases. And I've recently gained access To
       | OpenAI and have some cool AI stuff coming for preemptive
       | highlights and auto generated reading lists based on interests
       | and past reading history.
       | 
       | I built this tool for myself. I'm an avid reader always looking
       | to grow my skills. If this is you, too, sign up and let's learn
       | and grow together.
        
       | jjjbokma wrote:
       | A static blog generator [0] which generates https://plurrrr.com/
       | for me.
       | 
       | [0]https://github.com/john-bokma/tumblelog
        
       | axelf4 wrote:
       | Spotify playlists are great but I would like to be able to
       | shuffle from a combination of them. Playlist folders do not cut
       | it because then all combinations must form a tree. So I made a
       | shell script to create those combined playlists [1]!
       | 
       | [1]: https://github.com/axelf4/nixos-
       | config/blob/da60a70680984769...
        
       | indiantinker wrote:
       | I usually print books I buy as PDFs and then bind them myself as
       | well. The process is very nice and meditative. So, I wrote this
       | script[0] that converts a pdf in seams of 16 pages that can be
       | printed directly in correct order on a normal printer. So, I can
       | just send the PDF to a printer without worrying about anything
       | and fold and bind them later by hand.
       | 
       | [0] : http://rohitg.in/2018/05/30/Spreadmaker/
        
       | k2enemy wrote:
       | Probably not the kind of tool you are asking about, but I made a
       | pair of woodworking planes that cut a quarter inch wide, quarter
       | inch deep groove a quarter of an inch from the edge of a board.
       | This operation is commonly needed for drawer bottoms and raised
       | paneling. Two symmetric planes are needed so that you can always
       | work with the rising grain of the wood.
       | 
       | You can buy adjustable grooving planes and old molding planes
       | that will do this, but it was fun (and much cheaper) to make my
       | own pair.
        
         | Kaibeezy wrote:
         | I made an extra long wrench socket for field repairs of a heavy
         | duty pivoting contraption by cutting a normal 1-1/4" socket in
         | half and welding the wrench and handle sections to either end
         | of a 6" length of steel pipe. The pipe had a smaller outside
         | diameter than the socket halves, but big enough for the
         | threaded rod.
         | 
         | Imagine the hijinks the first time I put that through an
         | airport scanner. Good thing it was 2000 and not 2002.
        
         | deckard1 wrote:
         | The amount of woodworking jigs and tools people develop on
         | their own is fascinating. Some of these woodworkers on youtube
         | spend more time creating jigs than actually building things.
         | Matthias Wandel for example is a wizard. It's really similar to
         | programming tools. Often, tinkering is more fun than finishing
         | large projects.
        
           | vsto wrote:
           | The guy from "Aging Wheels" at YouTube, who by the way is a
           | former software engineer, has a second woodworking channel
           | channel called "Under Dunn". The last video was about a DIY
           | Centrifugal Dust Separator [1]. It was a pretty cool video.
           | 
           | [1] https://www.youtube.com/watch?v=n2OStvRteRE.
        
         | glaberficken wrote:
         | Was going to post something of the same type as you =)
         | 
         | Also made a wooden tool to check bicycle wheel dish that is
         | used when lacing my own wheels by hand.
         | 
         | I don't have photos of mine right now, but it is inspired on
         | this template:
         | 
         | https://www.wheelpro.co.uk/support/dishing-tool.php
        
       | scambier wrote:
       | SIM Notes, a wysiwyg markdown notes taking tool, based on
       | Notational Velocity. It's a tool I literally tailored to my
       | needs: 100% flat markdown files, in-place rendering, no
       | structure, no tags, but a powerful and fast search. It's my own
       | perfect zettelkasten.
       | 
       | Unfortunately I had to stop working on it when I had a burnout,
       | so it's still buggy but good enough for me to use it every day.
       | 
       | I'm very slowly working on a v2, with a simple localhost daemon
       | and no Electron.
       | 
       | https://github.com/scambier/SIM-Notes
        
       | SinghCoder wrote:
       | I keep on bookmarking things and those get lost in the huge pile
       | I already have. So I ended up doing this: Created a Google form
       | which takes two inputs: URL I want to save, and a comma separated
       | list of tags. Then when it's submitted, an apps script gets
       | triggered which inserts the URL+list of tags as array into mongo
       | dB. Then I query for URLs containing atleast one of the tag of
       | form submission, and email myself those URLs saying hey you
       | previously have saved these related links, check if you wanna
       | read them. It helps me to easily query whenever I want to see
       | things I've saved for a particular topic/tag
        
       | snwfog wrote:
       | I built a Reddit desktop client called `rdddeck`. It is compact
       | like Tweetdecks, and supports multi-accounts. It gives me an
       | overview of all my subs at a glance.
       | 
       | It also works on mobile device, and looks amazing on an iPad.
       | 
       | - https://rdddeck.com
       | 
       | Motivation: I dislike Reddit's modern UX. It is difficult to
       | navigate, large negative spaces (wasteful), pop-up like behavior
       | when opening a discussion, etc.
        
       | corny wrote:
       | I wrote a command line journal called 'did' that shows me what I
       | did on this day over the last five years (like a 5 year diary). I
       | enter a ton of items every day which all end up in text files.
       | Only items including an asterisk will be repeated back to me in
       | future years.
       | 
       | Inspired by: https://news.ycombinator.com/item?id=17538697
        
         | oezi wrote:
         | Do you have it public somewhere?
        
       | tjchear wrote:
       | I made a webapp (sheetUI) that turns a simple google sheet into a
       | beautiful webpage. I used it when I was apartment hunting,
       | amongst other things. I tabulated the data of each apartment I
       | found (fb marketplace, craigslist, etc), along with images, into
       | a google sheet. Then I used my tool to display them as a grid of
       | cards. There were auto generated filters on the top of the
       | webpage that I could use to filter the cards by whatever criteria
       | I choose.
       | 
       | I made it public last year and it's quite enlightening to see
       | what people have been using it for. E-commerce, contacts, work
       | check-ins, image gallery, inventory, workshop listing, etc.
       | 
       | It's not the best tool, and I don't make a lot of money from it,
       | but I'm happy I'm providing value to others. I still keep the
       | free version around since plenty of people are relying on it.
       | 
       | I'm working on a new version catering to business's internal use
       | cases now, with read/edit/permission control capabilities. Hoping
       | to get it out soon :)
       | 
       | https://sheetui.com if you're interested.
        
         | spcebar wrote:
         | That's extremely impressive.
        
       | drummojg wrote:
       | I have never contributed much to open source, but my high water
       | mark was writing reportdhcp, the first available tool to report
       | the status of DHCP pools. I wrote it because I needed it and none
       | existed that I could find anywhere. It got packed into a few
       | distros. After only a few years it was replaced by better tools
       | (and in fact, I was even proud of the fact that the author of one
       | specifically called out that it was better than reportdhcp). Got
       | written up in Linux Magazine and one other publication at the
       | time. I'm no superstar like many of you luminaries, and in fact I
       | wrote it with the Llama Book sitting in my lap, but it was great
       | to contribute the open source ecosystem to which I owe a large
       | chunk of my career.
        
       | atum47 wrote:
       | I wrote a dictionary generator so I can get WiFi from business:
       | back then I was too poor to pay for it.
       | 
       | I know now that there are many options out there, but I think my
       | tool addressed my needs more efficiently.
       | 
       | I've noted that business in the town I lived back then used some
       | sort of telephone number + name of their business combination for
       | their wifi password.
       | 
       | The script actually gave me a 60% rate of success. Went through 4
       | years of college without contracting a ISP.
        
       | smoldesu wrote:
       | I wrote qlip [0], a stupid-simple shell utility written in 5
       | lines of Rust that prints your clipboard as a QR code to stdout.
       | I used it as a clipboard sharing utility before KDE Connect fixed
       | their universal clipboard feature. It should compile for any
       | platform that supports Rust, and you can install it to your
       | system in a few seconds using `cargo install`.
       | 
       | [0] https://github.com/toasterrepairman/qlip
        
       | franze wrote:
       | My SEO Live Test Framework
       | 
       | https://chrome.google.com/webstore/detail/franz-enzenhofer-s...
       | 
       | Runs a lot of SEO checks (including Google Search Console Data)
       | over your websites Static,Rendered and Idle DOM
       | 
       | Built it cause I can and put lots of my technical SEO edge cases
       | knowledge in there.
        
         | walshemj wrote:
         | Nice I will have to have a proper look at this when i get back
         | to work on Monday
        
       | alhirzel wrote:
       | I built a program that lets me parse the saved files from my
       | camera (an old Nikon), including the read-only file attribute set
       | using the camera UI, into Darktable. This also lets me assign
       | ratings and manage files accordingly (i.e. 1 = delete both, 2 =
       | keep jpg, 3/4/5 = keep both files and organize into folders
       | according to priority). It's just a simple Python script but it
       | has saved me so much time!
        
       | frankohn wrote:
       | I made the "little library helper", lhelper[1] in short to help
       | me compile C/C++ libraries on Windows for my applications, using
       | gcc or clang. Later it turned out so nice and useful that I got
       | it working also on macOS and linux.
       | 
       | I made it out of despair because compiling stuff on Windows was
       | so painful. Now with lhelper it is a pleasure.
       | 
       | It contains recipes for downloading and building libraries and
       | install them in a virtual environment with only a few, useful,
       | options.
       | 
       | In some way the fact that people love and use for header-only
       | libraries is because they don't have lhelper.
       | 
       | [1] https://github.com/franko/lhelper
        
       | svilen_dobrev wrote:
       | "tell me what tools you've made and i'll tell you who you are."
       | Really.
       | 
       | Probably i make one sw tool per month - whatever annoys me enough
       | to go over the lazyness treshold.
       | 
       | Most of my toys (made last 25+ years) stay at
       | https://github.com/svilendobrev/svd_bin
       | 
       | https://github.com/svilendobrev/svd_util (python stuff)
       | 
       | apart of the bigger ones there with own repos
       | 
       | most used stuff seems:
       | 
       | * shell wrappers/configs to make using terminals a more
       | humane+repeatable thing. A system (="language") of plenty of
       | aliases and shortcut keys, for many combinations of
       | x-terms/shells, so regardless of which one it is, it gets same
       | human interface. Remember 4dos? there. F2 is dir/ls..
       | 
       | * similar thing for vim. F2 for save. ctrl-f for find. etc..
       | 
       | * vcs.sh - similar thing for 5-6 revision control systems
       | 
       | ...
       | 
       | * sound files searching/cutting/diffing - searching one record
       | within another - think recognizing start and end signals of some
       | radio show, cutting it out from several alternative recording
       | sessions - e.g. digitized analog vs http/rtmp streams; and
       | diff'ing the results ; the timeline can be warped a lot (Wow and
       | flutter, yes, with some charts out)
       | 
       | * hundreds of others.. some of them i dont remember anymore what
       | they were for :/
       | 
       | have fun
        
       | bostonsre wrote:
       | I wrote a tool to copy stdout from a remote machine to my windows
       | clipboard. I alias ssh to ssh with port forwarding to a static
       | port that isnt used anywhere, run a flask site locally on my
       | laptop that has an endpoint for accepting base 64 encoded posts
       | for copied data and an endpoint that has some bash function
       | definitions for doing a curl post of base64 encoded piped data to
       | the port that was forwarded over ssh. I have a terminal hot key
       | which does a curl get of the bash functions and imports them.
       | 
       | so this on a remote machine:
       | 
       | some_remote_machine> echo hello | cb
       | 
       | Will base64 encode hello, post that to localhost:1234 on the
       | remote machine which gets forwarded to my laptop flask site, it
       | base64 decodes the text, then since im in wsl, the flask site
       | runs powershell to write it to my windows clipboard.
       | 
       | It's good for note taking and sharing output in slack easily. I
       | also have an alias for cbc or clipboard with command which
       | prefixes the text with the command used to generate the output.
        
       | shawnaxsom wrote:
       | I've been working on a todo app built on todo.txt. It's a fork of
       | another app, Todour, which I've heavily enhanced. It's a work in
       | progress, it is ugly but very functional.
       | 
       | https://github.com/shawnaxsom/inizio
       | 
       | Being an engineering manager, a good todo system is a must. I
       | need to be able to write to it quickly in an organized manner. I
       | need it to filter quickly, being able to tell it "Show me all of
       | my highest priority tasks that don't have anything to do with
       | person XYZ who is out-of-office, hide learning tasks".
        
       | justhw wrote:
       | I got tired of firing up an image editor every time to create a
       | simple open-graph/social image for my blog posts and built
       | https://thumbnail.ai
       | 
       | It's been a great time saver and a handful of people use it
       | daily.
        
       | instance wrote:
       | I was annoyed by the seemingly over-engineered tools for screen
       | tracking, so I wrote one myself in ~50 LOC, which simply uses
       | ffmpeg to create a screenshot every X seconds in a very low
       | resolution:
       | 
       | https://github.com/instance01/mac-screenshot-tracker
       | 
       | It's super hackable and gets the job done.
        
       | LazyGrizzly wrote:
       | - Emacs mode for compilation bookmarks - A rss2maildir python
       | script, that one never worked satisfactory due to atom/rss being
       | shitty standards - A discord bot that gives daily reddit updates
       | - Concerning bash a bookmark system for common directories, so I
       | can do 'j dir' to jump to said dir.
        
       | sagarpatil wrote:
       | Got tired of paying for SSL certificates on WordPress. Built a
       | plugin that generated free SSL from Let's Encrypt: SSL Zen
       | <https://wordpress.org/plugins/ssl-zen/> It's now used by 50,000+
       | websites.
        
       | Spidler wrote:
       | I wrote a bot for GitLab that can do a few different things:
       | 
       | * Nag (Comment) on Merge Requests to tie it to proper release
       | milestones and labels, something that is easily forgotten, or
       | simply ignored by their UI due to the "never consistency" method
       | of Javascript frontend.
       | 
       | * Create ChangeLogs from a Milestone, by traversing all the MR's
       | merged during the time window, or associated with the milestone.
       | 
       | * Generate Wiki pages with above ChangeLog, as well as generating
       | markdown templates with release notes as well
       | 
       | * Tag projects for release, automatically using above ChangeLog
       | to generate a correct list of changes that has happened.
       | 
       | All this assumes a certain workflow, in our case time-based
       | releases where multiple projects get tagged regularly for
       | release, and development for a release is tracked in a milestone.
       | 
       | The tool is FLOSS, but it's fairly specific to my usecase.
        
       | ______- wrote:
       | Not really a computer program, but a list of all the best sites
       | to visit that all spawn from a single folder in Firefox. It's
       | opinionated, and one of the links is of course Hackernews, but
       | also other sites like lobste.rs and old.reddit.com/r/programming
       | etc Firefox lets you spawn a bunch of tabs and it saves me from
       | having to manually click each link's URL. I use it very heavily.
       | I am very thankful for the `Open all in tabs` feature.
        
       | huydotnet wrote:
       | A web based code editor [1] that supported a small set of
       | languages (C++, JS, Go, Python and Rust), it also supported Vim-
       | key binding (thanks to CodeMirror), came with a localStorage
       | based "file system", so you can save multiple file in your
       | browser. You can get the source on GitHub [2]. To host it on your
       | server, you'll need Docker for the runtime btw. It's pretty
       | helpful to code when I only have access to the iPad during the
       | weekend.
       | 
       | [1]: https://kodes.app [2]: https://github.com/huytd/code-
       | playground
        
       | milkbikis wrote:
       | I wrote https://github.com/banga/git-split-diffs mainly to
       | scratch an itch about not having side by side git diffs in the
       | terminal, then ended up adding more fancy features like syntax
       | highlighting and it got somewhat popular.
        
         | gizdan wrote:
         | Looks awesome! Also worth looking at is Delta diff.
        
       | c0l0 wrote:
       | I have several networking devices around the country with OpenWrt
       | on them (for example, at my mom's house). They serve different
       | needs, with different selections of packages installed, and are
       | not of the same hardware, so keeping them up to date proved a
       | hassle eventually. I chose to wrap some primitive Python around
       | OpenWrt's excellent ImageBuilder that helps me keep a declarative
       | build configuration around in an INI-style file, and (most of the
       | time, when point releases are released) only dial up a single
       | version number variable to rebuild all images in parallel. The
       | flashing afterwards I haven't automated, but that might be too
       | much of a footgun anyway.
       | 
       | If you feel like taking a look, here's the source:
       | https://johannes.truschnigg.info/code/openwrt_autobuild/
       | 
       | ---
       | 
       | While I was responsible for running the internal CAs at $prevjob,
       | I wanted to give (human) users a convenient and secure means to
       | generate and submit CSRs. I implemented a browser-based CSR
       | generator based on the great work if https://pkijs.org - a demo
       | variant of this internal portal is online at
       | https://johannes.truschnigg.info/csr/ and might actually be of
       | use to someone else :)
       | 
       | ---
       | 
       | Several years ago also at $prevjob, I was looking for a reliable
       | way to do PostgreSQL WAL archiving without the clunky
       | shellscripts floating around in documentation and on Wikis, and
       | implemented a little C program to do that job. While today you're
       | probably using something like wal-g or other advanced tools that
       | consume the WAL for replication and DR purposes, you may still
       | want to have a program that does one thing, and one thing well,
       | and that is making sure WAL segments get copied from location A
       | to location B, without much overhead, period.
       | 
       | That would be it:
       | https://johannes.truschnigg.info/code/pg_archive_wal_segment...
        
       | gdiegel wrote:
       | I used to write Java tests for of asynchronous operations such as
       | sending emails and waiting for them to arrive in a mailbox. In
       | order to poll the mailbox I wrote a small routine that would
       | support retrying actions with configurable intervals. At some
       | point I extracted it into a separate project called retryJ and
       | recently released it as open source on Maven Central [1].
       | 
       | [1] https://github.com/gdiegel/retryJ
        
       | agency wrote:
       | A couple years ago I moved somewhere where my only internet
       | option is satellite (HughesNet). The data caps are pretty low (50
       | GB per month) but if you use data on the "bonus zone" (midnight
       | to 8am IIRC) you get an additional 50GB quota, so I wrote a tool
       | that lets me queue up YouTube videos to download in the middle of
       | the night. It's a pretty simple collection of scripts that shell
       | out to youtube-dl. I wrote it in TypeScript just because that's
       | what I was writing at work at the time:
       | https://github.com/dylanscott/downlater
       | 
       | I'm still using it often a couple years later, though I'm hoping
       | my Starlink pre-order will come through soon and render it
       | obsolete.
        
         | cheschire wrote:
         | There's a lot of anecdotal evidence that starlink isn't ready
         | for prime time. If you have trees, forget about it.
        
       | montenegrohugo wrote:
       | I'm super forgetful - so i made a simple website [1] to remind
       | myself of stuff. It's useful! I plan to open source it soon too
       | 
       | The other thing I've built for myself is a tool to find domain
       | names [2] (all the obvious ones are taken). It uses a ML model in
       | the background that I trained to generate suggestions, scores
       | them on a few metrics and calls the whois api to check if they're
       | available. I also want to put this one online, for fun & profit.
       | 
       | Hope you like these little projects!
       | 
       | [1] https://www.remindy.me
       | 
       | [2] https://www.namehunt.dev
       | 
       | Edit: ah, i actually found the remindy.me domain name with the ml
       | model, thought it was cute and that's how the website was born
        
       | gmac wrote:
       | Really simple mouse gestures for macOS (after xGestures became
       | unreliable for me). Right-drag to the left to go back, or to the
       | right to go forward. Only a few hundred lines of Objective-C.
       | 
       | Then I cleaned it up a bit and submitted it to the Mac App Store,
       | and was pleasantly surprised it was approved. I think it's the
       | only mouse gestures app on there.
        
       | mattkevan wrote:
       | This isn't anywhere near as impressive as some of the examples
       | here, but anyway:
       | 
       | I run an Etsy store that sells artwork. One of the most time-
       | consuming tasks was creating the mock-ups for product listings,
       | so I wrote a shell script that used Imagemagick to automatically
       | generate all the images.
       | 
       | I was pretty pleased as I'd never written a Bash script before
       | and it saves hours and hours of work.
       | 
       | I also wrote a Ruby script that uses the Etsy API to generate a
       | fully-working Jekyll e-commerce site from my Etsy store's
       | listings. Much better that paying Shopify plus a bunch of other
       | apps for pretty much the same thing.
        
       | bharani_m wrote:
       | I wrote a simple app to send interesting articles and web pages
       | to my email inbox - https://www.emailthis.me
        
       | psacawa wrote:
       | I wrote a 10-line script to interactively query JSON documents
       | using jq from vim in a tmux pane. Like jid[1], but better. Here
       | it is:                 jq-repl () {        local query_file
       | json_file new_pane_height nodemon_cmd change_aucmd jq_args
       | query_file=$(mktemp)         json_file=${query_file}.json
       | cat /dev/stdin > $json_file        new_pane_height=5
       | jq_args="$@ -C -f $query_file $json_file"
       | nodemon_cmd="clear; jq $jq_args | less"         change_aucmd="au
       | TextChanged,TextChangedI <buffer> write"         tmux split-
       | window -l$new_pane_height $EDITOR -c "$change_aucmd" -c "set
       | ft=jq" $query_file        nodemon -q -d 0.3 -w $query_file -x
       | "$nodemon_cmd"       }
       | 
       | dependencies: vim, tmux, jq, nodemon
       | 
       | [1] https://github.com/simeji/jid
        
       | oezi wrote:
       | I have recently developed my own terminal-based UI for todo/task
       | tracking [1] in markdown files because I was sick of rearranging
       | todos in other tools.
       | 
       | The main advantage is that you can "migrate" all unfinished todos
       | to a new page/day and thus get a clean start each day. This idea
       | comes from bullet journalling.
       | 
       | To get it done I had to dig a bit into ncurses, which turned out
       | more interesting than I thought. For instance, Windows Terminal
       | just gained support for bracketed paste a couple of months ago
       | and my tool supports it.
       | 
       | [1] https://github.com/coezbek/rodo
       | 
       | Stack: Ruby, Curses, Markdown
        
       | riekus wrote:
       | On a different note. I made my own laptop stand out of carbon
       | fiber because I wanted specific things that I couldn't get out of
       | the store. I am a digital nomad and finally build the thing after
       | 4.5 years of country hopping. Got lots of interest and now
       | working on a production run: https://www.fiberstand.com :)
       | 
       | Software wise, mostly scrapers for classified ads ect.
        
       | jffry wrote:
       | I wrote a small script, executed with a cron job, which adjusts
       | the color temperature of all my Philips Hue light bulbs
       | throughout the day.
       | 
       | The Hue device bridges have a simple HTTP api available over the
       | local network, and with a combination of curl and jq it was easy
       | to retrieve the IDs of lights that are currently on, and then set
       | their color temperature.
       | 
       | I've since moved the functionality into a small service I wrote
       | in Clojure that runs on a Raspberry Pi, as part of an effort to
       | consolidate a few different things under one roof.
        
       | ammar_x wrote:
       | I wanted a way to compare fonts easily and quickly so I built
       | Pair & Compare [1].
       | 
       | [1]: https://www.pairandcompare.net/
        
       | version_five wrote:
       | I have a lot of poorly engineered                   curl | grep |
       | tr | awk
       | 
       | pipes written into a loop in a bash script to scrape web pages
       | and pull out text or data. I find if I'm just doing a one of, I
       | can usually identify some feature of the html to pattern match
       | one that lets me strip out the data in a very simple script and
       | not have to use beautifulsoup etc.
        
       | js2 wrote:
       | About 18 months ago I started using Letterboxd. Also, I like
       | Roger Ebert's reviews. I wanted both in one place.
       | 
       | So I wrote some code to scrape his nearly 8000 reviews from
       | rogerebert.com and then import them to letterboxd:
       | 
       | https://letterboxd.com/re2/
       | 
       | (I only put the first two paragraphs of his review on letterboxd
       | then link to his full review on his site.)
       | 
       | The hard parts of this were:
       | 
       | - Extracting the text of his reviews correctly from his site's
       | HTML. That wasn't too terrible though.
       | 
       | - Matching his reviews to the correct movies on TMDB. This just
       | required a bunch of trial and error and about 20-30 manual
       | corrections. I employed various strategies to match by using
       | movie title, year of review, year of movie release (if on his
       | review, but often off by a year or two), director, producer, cast
       | if on his review.
       | 
       | I also built this for myself:
       | 
       | https://github.com/jaysoffian/eap_proxy
       | 
       | I should put my bin directory full of random scripts up on
       | GitHub. I tend to build them as I need them. They're often very
       | simple things like:
       | 
       | - jqpaste -- which is just "pbaste | jq"
       | 
       | - jsonl [jq|gron --stream] which takes it input and if it isn'v
       | valid JSON, converts it to a JSON string so that I can paste
       | random log output which is sometimes a mix of JSON and not into
       | jq or gron.
       | 
       | Those are just a couple off the top of my head.
        
       | DamnInteresting wrote:
       | I operate a long-form nonfiction website, and back in 2012 we
       | wanted to introduce a podcast episode version for each of our
       | articles. I started tinkering with making recordings, but I
       | suffered from the cringe of hearing my own voice, which was
       | amplified by hearing every mistake and retake.
       | 
       | I finally got past this problem by rolling my own audio recording
       | software. I paste in the script, and the software highlights one
       | sentence at a time. I tap a key to start recording that sentence.
       | If I make a mistake or I'm not happy with how it sounded, one key
       | press discards the audio and restarts the recording. When
       | satisfied, one key press moves it to the next sentence.
       | 
       | When I'm done, I can download all of the recordings into one
       | merged WAV, and I never have to hear any bad takes (it also trims
       | 0.1 seconds from both ends of each sentence's audio so the key
       | press noise is removed).
       | 
       | It's a little clunky, being home-grown and all, but it works
       | great. Recording stuff is pretty easy now. I keep thinking about
       | making it available to the public, but it's not yet polished
       | enough for that.
        
         | serjester wrote:
         | Agreed this is really neat! A couple months ago I had to make a
         | product demo and it took way too long because I kept having to
         | re-record bits.
         | 
         | Really hope you opensource it.
        
         | rcurry wrote:
         | This is a fantastic idea. I've found that nothing is more
         | annoying than to get through like five minutes of a take when
         | recording a video and then having to redo it because I slipped
         | up. I would love to be able to write a script, be prompted a
         | few sentences at a time and then have it stitched together
         | seamlessly. You need to refine and market this. If you could do
         | this with video you'd kill it.
        
         | toast0 wrote:
         | > it also trims 0.1 seconds from both ends of each sentence's
         | audio so the key press noise is removed
         | 
         | If you wanted to, you could probably use something to wait for
         | sound level to drop, and then cut until the silence ended.
         | Although a fixed cut probably works fine, too.
        
           | OJFord wrote:
           | Or trigger on key up? Though I suppose maybe there's a slight
           | sound still when the cap hits it's maximum travel if it
           | releases the switch before that?
        
         | dlivingston wrote:
         | That's so cool. Any chance you'd be okay sharing the script?
        
           | DamnInteresting wrote:
           | This is a little embarrassing, but the tool is actually
           | browser-based, powered by Javascript and PHP. I know that's
           | not the ideal foundation, but those were the skills I had at
           | the time. I do have a copy of it online that I used to demo
           | it for a friend.
           | 
           | Being browser-based is not really a problem for me, because I
           | run it on my local dev server and everything is instant. But
           | over the web it has to upload each wav file to the server,
           | which can be slow depending on bandwidth. It does however
           | indicate when uploads are in progress so you can avoid
           | interrupting it.
           | 
           | One of the ways the tool is unsophisticated is that it's
           | designed for a single user. So anyone with the login can
           | see/hear others' recordings, overwrite them, etc.
           | 
           | Anyway, if you're still interested in seeing it, just email
           | me at: alan at [my HN username] dot com. I can send you the
           | URL, username, and password.
        
       | mraza007 wrote:
       | I created this tool for fun to experiment with my raspberry pi
       | 
       | Its a tool that allows you to run server commands via text
       | messages
       | 
       | https://github.com/mtdevss/server-text
       | 
       | Its a fun program to play around with
        
         | deepserket wrote:
         | the sms number can be easily spoofed, so don't use this for
         | serious stuff.
         | 
         | I created a similar tool, it works over telegram, but the code
         | is old and bad... you can see an example here
         | https://www.youtube.com/watch?v=NZiuGb-x3RQ
        
           | mraza007 wrote:
           | Yup I totally agree with you As I clarified this is only for
           | fun/educational purposes Definitely not intended to run in
           | production and for serious stuff
        
       | shadycuz wrote:
       | https://github.com/DontShaveTheYak/jenkins-std-lib A Jenkins
       | shared library with a couple cool things like running GitHub
       | Actions on Jenkins.
       | 
       | https://github.com/DontShaveTheYak/cloud-radar Unit and
       | Functional testing of AWS Cloudformation templates. The unit
       | testing part allows you to test locally without needing AWS
       | creds.
       | 
       | https://github.com/DontShaveTheYak/sebs Stateful Elastic Block
       | Storage was created so that you could make sure that a AWS ec2
       | instance always had the same EBS volume mounted to it. Really
       | handy for a Ec2 instance in an ASG with a count of 1.
        
         | gizdan wrote:
         | > A Jenkins shared library with a couple cool things like
         | running GitHub Actions on Jenkins.
         | 
         | Super cool, this can probably be turned into a plugin akin
         | multibranch pipelines and that way it would just be automatic
         | as opposed to having to invoke it from a Jenkins pipeline.
        
       | kakadzhun wrote:
       | Script to filter out records of a .jsonl file based on some
       | property (e.g. only want records w/ a timestamp greater than
       | 163623...):                   import sys         import orjson
       | import argparse              if __name__ == '__main__':
       | parser = argparse.ArgumentParser()
       | parser.add_argument('expr')
       | parser.add_argument('file', nargs='?')             args =
       | parser.parse_args()             expression = compile(args.expr,
       | '<string>', 'eval', optimize=0)                  if args.file:
       | stream = open(args.file, 'f')             else:
       | stream = sys.stdin                  try:                 for line
       | in stream:                     json = orjson.loads(line)
       | if eval(expression, {}, json):
       | print(line.strip())             finally:                 if
       | args.file:                     stream.close()
        
       | benfrancom wrote:
       | A window sill-desk/laptop stand. I could place my laptop on this
       | and look out the window at the same time whilst working. At the
       | place I used to work we had some awesome views of the mountains,
       | especially on the upper floors. I couldn't stand staring at
       | cubicle walls, so I would take breaks to walk around and see the
       | amazing views. Eventually, I made the sweet desk. I could have my
       | laptop on top with a wireless keyboard, or put the laptop below.
       | I cut it to the dimensions of my height and where I like to rest
       | my hands. There were some silicone strips/bumpers underneath to
       | keep it from slipping or sliding or scratching the wall. Pics:
       | https://photos.app.goo.gl/VJLQqUhzHjPt4uCB8
        
       | devinmcafee wrote:
       | I built a weightlifting workout tracker. I did this because at
       | the time I wrote it (2014) none of the current tools fit my use
       | cases due to the fact that I compete in the sport of Olympic
       | weightlifting and this was still pretty rare back then. I also
       | wanted to be in control of my data and be able to run analysis on
       | it as I saw fit.
       | 
       | I began by writing a django app deployed via heroku. I then
       | decided I wanted to rewrite it in ruby on rails because I had
       | never worked with rails in my career and was already working on
       | django professionally. I then wrote a react/redux SPA frontend,
       | not for any other reason than to practice and learn those
       | libraries. Finally, I decided to buy a VPS and manage deployments
       | myself because I wanted to learn some basic devops stuff myself.
       | 
       | Building and maintaining this project I got first hand experience
       | on building a web application from scratch, designing UX and
       | product requirements, maintaining my own infrastructure (Linux
       | server hardening, supporting SSL, managing my own domain, etc)
       | and got experience in languages I didn't work in professionally.
       | Also I got a few friends to begin using my app and immediately
       | found where my poor UX choices were, which was pretty
       | enlightening.
       | 
       | I think the experience really boosted my confidence as an
       | engineer. I had to learn a whole bunch of new skills and become
       | my own one person startup. In the end it helped me appreciate all
       | that goes into building a software product and highly recommend
       | the experience. I still track my workouts using the app and now
       | have 7 years of data.
        
         | jacobmischka wrote:
         | I did something very similar using via a flutter mobile app
         | when that was pretty new, and I also still use it every time I
         | lift multiple times per week. Well done!
        
         | culopatin wrote:
         | I'm on the same boat. I'm building a library website for
         | biologists after seeing my girlfriend's struggles. I have never
         | built anything like this before, or anything at all really.
         | 
         | I decided to use Spring boot because I want to boost my resume
         | and my company hires Java devs. But I'm thinking I should've
         | used something more trendy lol.
         | 
         | I'm basically at the point of designing the REST API and I'll
         | have to go through the same process you went through with the
         | front end and everything else.
         | 
         | It's a lot of work and the more I progress the more I realize I
         | don't know, feels like running in a forever elongating hallway
         | but it's rewarding.
         | 
         | How long did it take you?
        
       | vollmond wrote:
       | https://day1of.com
       | 
       | I got tired of having to think with date math, specifically
       | determining the difference between "how many days between these
       | dates" and "this is day x of span y", so I just made a tool
       | specifically for that 2nd case.
       | 
       | Eg, in my journal entries I make a note of which day of covid
       | lockdown it is, by bookmarking this on my phone home screen:
       | 
       | https://day1of.com/?startDate=2020-03-12&condition=COVID19+L...
        
       | dcz_self wrote:
       | I had enough of mounting and decrypting devices before and after
       | doing offline backups, so I ended up writing a tool to automate
       | "acquire and release" tasks that I'm a bit too proud of:
       | 
       | https://dcz_self.gitlab.io/posts/blossom/
        
       | geuis wrote:
       | I needed some calipers that were large enough for a human head.
       | Fairly expensive online, especially for a one use item. So I
       | reviewed some classic manual types and designed my own 3D model
       | and printed them out for cents vs lots of dollars.
        
       | carapace wrote:
       | It seems like a toy compared to most of the other tools in this
       | thread, but FWIW I have a little script I call "did":
       | grep "$1" ~/.bash_history | tail
       | 
       | It just shows me the last ten commands that include a search
       | term. E.g. "did foo" shows the last ten commands that include
       | "foo".
        
         | sirwitti wrote:
         | This is going straight into my bash_aliases. Thanks!
        
       | stonecharioteer wrote:
       | I've made a lot of things for myself. Of the things that come to
       | mind:
       | 
       | 1. An Alexa Skill that allows me to ask my bookshelf for the
       | position of a book. I've spoken at PyCon India 2019 about this.
       | (https://stonecharioteer.com/2019/10/12/pycon.html) 2. A Discord
       | bot (https://stonecharioteer.com/sarathi.html) to update my
       | blog's TIL page. (https://stonecharioteer.com/til.html) 3. A
       | shell script to connect to the right Wi-Fi at my office (useless
       | now) 4. A script to set/unset proxies on my work laptop so I
       | could download packages from external registries. 5. A script
       | that would collect weather information to correlate with my
       | migraines. This eventually ended up being a correlation is not
       | causation situation. 6. A NAS using a Raspberry Pi 4 so that all
       | TVs at home can stream from my movie/anime collection.
       | 
       | I am in the process of building more things, as a way to learn
       | Rust, and as a way to scratch the programming itch that I have.
       | Do reach out if you want to discuss any of my projects. I will
       | blog more stuff eventually. I use the same handle on Twitter.
        
       | sirwitti wrote:
       | I love this thread! Here's my list of tools that I actually
       | use(d). I guess I have quite some itches that need scratching :-P
       | 
       | Project-cmd [1] (current itch):
       | 
       | A cli tool to standardize working on projects in different
       | technologies. Think of package.json but for
       | declaring/starting/stopping containers, creating db dumps,
       | declaring data files (archives) to back up and restore and
       | pushing db dumps + archives to a server via ssh and pulling them.
       | Also editing the hosts file and jumping to a project's directory
       | with a single command.
       | 
       | TouchOsc Generator [2]:
       | 
       | If you have tried to create complex TouchOsc [3] files things get
       | repetitive and ugly very quickly. Touchosc-generator is a
       | templating engine for TouchOsc files. You can create and reuse
       | components and repeat + place them in grids via simple json
       | files.
       | 
       | Emailed invoices
       | 
       | A simple node script checking my inbox for emails containing
       | invoices simply regexing the sender and subject and automatically
       | uploads them to the correct month's folder on my nextcloud
       | server. Highly useful for accounting.
       | 
       | Accounting
       | 
       | A terrible meteor spa I wrote in 2015 for creating invoices and
       | giving a simple accounting overview for my consulting business.
       | It's quite crappy in some respects, but I created every single
       | invoice since 2015 with it, so who knows...
       | 
       | D39r
       | 
       | My last flat had 2 levels and opening the door for the mailman
       | meant running as fast as I could to the other end of other level
       | of the flat. After opening up the intercom and finding that
       | pushing the door button simply closed a circuit between 2 cables
       | which in turn opened the door of the apartment building. An
       | arduino relais, raspberry pi and a little bit of hacking later I
       | could open the door via my smartphone. I used this as long as I
       | lived there.
       | 
       | Mushrooms
       | 
       | I digitized a book about mushrooms with ~1200 pages by taking the
       | book apart, scanning all the pages, writing a script to restore
       | the pages order, using opencv to automatically detect blocks of
       | text and images in the scans and mapping each image to the
       | corresponding text blocks. Then used tesseract for ocr, manually
       | corrected ~3000 paragraphs of texts with my girlfriend and
       | developed several scripts to extract mushroom features for easily
       | indexing/finding with a web app. Wouldn't/couldn't publish due to
       | obvious copyright issues. This was a _lot_ of work and I loved
       | it!
       | 
       | [1] https://github.com/martinwittmann/project-cmd
       | 
       | [2] https://github.com/martinwittmann/touchosc-generator
       | 
       | [3] https://hexler.net/touchosc
        
       | jetrink wrote:
       | This is pretty trivial compared to some of the others, but I made
       | a personal TV Guide for myself and my girlfriend using Trello and
       | TVDB. (Screenshot below.) The purpose is to help keep track of
       | what we're currently watching, since it's usually 5-10 things at
       | once, and what we want to watch in the future, since that is
       | almost infinite. Also, it helps keep track of shows that we set
       | aside between seasons, but want to come back to (On Break).
       | 
       | The part I built (the part that isn't just Trello) is not
       | strictly necessary, but it was fun to make and it makes the guide
       | more fun to browse. When you drop a new title on the board, a
       | script grabs the description and cover image from TVDB and adds
       | them to the card. Searching by title isn't foolproof, so in case
       | it gets it wrong, the script temporarily embeds the other search
       | results in the description. Marking one with an asterisk will
       | trigger a fix.
       | 
       | 1. https://imgur.com/a/hZlg7Rl
        
       | antonkar wrote:
       | I was frustrated with how slow the Apple Notes app was, so I made
       | k for myself (https://getk.com). k launches instantly to your
       | keyboard and camera, so you can take notes and photos in no time.
       | I use it instead of Notes and Camera.
       | 
       | It's 100% Swift and collects no data at all. k is my 3rd app and
       | it took me 2 month to build
        
       | fish45 wrote:
       | My favorite is https://calcula.tech which I made to help with my
       | physics and chemistry homework. I have a few other users, mostly
       | friends from school AFAIK, but I'm hoping that it can become more
       | useful for more people. I wrote the main interpreter in Rust
       | mostly from scratch, and the site is built with elixir Phoenix
       | and alpineJS.
        
       | anonymouse008 wrote:
       | This should be a monthly thread in the middle of the month -- to
       | avoid overlap with the hiring/who's
       | 
       | I've loved getting to know our community this way
        
       | adrianmonk wrote:
       | A few years back, my car was one of the millions with an airbag
       | recall. For months, they sent letters saying it was my turn, but
       | if I called to book an appointment, they'd say they didn't have
       | the part in _for me_ yet, and I had to check a web site to see if
       | it was _really_ my turn.
       | 
       | So I wrote a script that would poll the web site using curl and
       | notify me via Slack if the status had changed. I put that in
       | cron, and every day it would give me the airbag report.
       | 
       | One day it told me that status had changed, so I called and they
       | booked the appointment.
        
         | jacobmischka wrote:
         | I did something similar for the Walgreens website for my mother
         | when vaccines were new and appointments were hard to come by,
         | it worked pretty perfectly and we were able to schedule her an
         | appointment shortly after she was eligible.
         | 
         | Though, somewhat humorously, very soon afterward eligibility
         | was expanded to everyone in my state and vaccination
         | appointments were much easier to find.
        
       | JazzXP wrote:
       | I had one a number of years back when I was writing an iPhone app
       | to be whitelabeled for various clients, that would overlay a
       | "Beta" banner on their icons for beta releases. I wrote it for
       | fun (and so I could easily differentiate between beta and full
       | release versions on my own device), and right as I was finished,
       | it ended becoming a client request anyway.
        
       | shafkathullah wrote:
       | I made HackerCards(https://chrome.google.com/webstore/detail/hack
       | ercards/ncblkm...) to easily skim over HackerNews on chrome new
       | tab page.
       | 
       | Another one is Hijri for
       | Chrome(https://chrome.google.com/webstore/detail/hijri-for-
       | chrome/m...), a Hijri date viewer that too made for myself for
       | tracking ramadan fasting count.
       | 
       | And yes my own Chrome theme 'Space
       | Grey'(https://chrome.google.com/webstore/detail/space-
       | grey/cohabkm...)
        
       | tapvt wrote:
       | I wrote `redis-del` [0] years ago while prototyping a queue for a
       | web app forever ago. Wildcard redis delete. Still use it.
       | 
       | [0] https://github.com/e9labs/redis-del
        
       | eevahr wrote:
       | A service i made to track my working time https://time-
       | tracker.ivarlovlie.no
        
       | eyelidlessness wrote:
       | I had a major bike accident, shoulder dislocation that took weeks
       | to recover and broken pinky.
       | 
       | I couldn't type with my left hand, but I couldn't afford not to
       | work. I looked into one-handed keyboards, found a variety of
       | half-keyboards that mirrored the other half while holding the
       | spacebar. These are patented, and I also couldn't afford them.
       | 
       | Being patented, I was also unable to find software offering the
       | same. So I learned enough Objective C to build it for myself. It
       | was a hacky, crashy mess but I never intended it to be production
       | quality... so I also built a monitoring app to relaunch it when
       | it crashed.
       | 
       | It wasn't anything special but it got me through that recovery!
        
         | sturza wrote:
         | why was Objective C the solution for the tool you built? can
         | you explain more what the product/output is and how you use it?
        
           | eyelidlessness wrote:
           | Objective C because that was the most viable option for
           | native Mac development at the time, and I needed access to
           | keyboard events system wide for it to be useful.
           | 
           | What it did was listen for keydown/up events on the spacebar,
           | and swap the system keyboard layout to a horizontally
           | reversed qwerty layout while the spacebar was held for some
           | (arbitrary based on what felt right to me) duration. When
           | released it would restore the normal qwerty layout.
           | 
           | This made it relatively cognitively easy to treat my right
           | hand as a reversed "left" hand and use my touch typing muscle
           | memory while I was unable to type with my actual left hand.
           | If I remember correctly, I took a typing speed test and it
           | was ~70% my normal two handed touch typing speed, which was
           | good enough to keep working while I recovered.
        
       | TheCyberBasics wrote:
       | Last year I was learning Node/React, and built a Certification
       | tracker with the MERN framework to track certification renewal
       | dates
        
       | ssddanbrown wrote:
       | I built a documentation platform [1] for work since I didn't want
       | to worry about licensing costs (With something like Confluence)
       | being a factor, limiting potential access, when it comes to
       | documenting and sharing knowledge.
       | 
       | I also wrote a simple little PHP script [2] to check HTTPS
       | certificates (And email results) to help keep on top of things.
       | 
       | [1]: https://github.com/BookStackApp/BookStack [2]:
       | https://github.com/ssddanbrown/sslcheck
        
       | wazoox wrote:
       | A couple of tools that may be useful:
       | 
       | Macs use a different UTF8 encoding for file names, that causes
       | all sort of weirdness when sharing files with Linux / Windows
       | machines, so I've made a tool to convert these:
       | https://github.com/wazoox/utfmacmv
       | 
       | I was constantly in need of cleaning my ssh known hosts list, so
       | I've made a small script around "ssh-keygen -R" that removes both
       | the lines for the hostname and its IP:
       | https://github.com/wazoox/khc/blob/master/khc
       | 
       | Also I've made a small CGI script running on my PC to scan the
       | local network and identifying newly connected machines (because
       | I'm building and testing servers):
       | https://github.com/wazoox/PingScan
        
       | Osmose wrote:
       | I built a music player for videogame music formats because the
       | only other player on MacOS that supported them had a terrible UI
       | and didn't support all the formats I wanted. I consider it a tool
       | because I use it a ton during work to play infinitely-looping
       | songs to help me focus.
       | 
       | https://www.mkelly.me/moseamp/
       | 
       | The progression of me building the app was (over a span of maybe
       | 7 years):
       | 
       | - Prototype compiling GME[1] into asm.js, generating sound
       | samples on a webpage, and piping them into the Web Audio API.
       | 
       | - Turning that prototype into a desktop app in order to learn
       | Electron.
       | 
       | - Giving the desktop app a proper UI in order to learn React +
       | Redux.
       | 
       | - Switching to a native node.js addon to fix slowdown/memory use
       | during playback.
       | 
       | - Switching to musicplayer[2] so that I could play Playstation
       | music.
       | 
       | - Adding a Windows build so I could listen to music while coding
       | on my Windows computer with the same UI as on MacOS that I had by
       | now grown accustomed to.
       | 
       | - Adding a visualizer to learn how, well, visualizers work.
       | 
       | - Adding a piano-roll visualizer for NES music and rendering-to-
       | video because my friends who make chiptune videos on Youtube use
       | an old, inflexible program to make their videos.
       | 
       | I would say the number one driving force is that I made a tool I
       | use pretty much every day; tools I've made that are only
       | occasionally used never really motivate me enough to bother
       | fixing them up, but with Moseamp every fix is an _immediate_
       | improvement in my day-to-day.
       | 
       | [1] https://bitbucket.org/mpyne/game-music-emu/wiki/Home [2]
       | https://github.com/sasq64/musicplayer/
        
         | sogen wrote:
         | Nice, any music suggestions to help focus?
         | 
         | Something like EDM, but open to suggestions. Thanks!
        
       | madduci wrote:
       | A PCD to E57 file converter for 3D pointclouds
        
       | dorkwood wrote:
       | In an attempt to gamify my own fitness, I wrote a simple workout
       | tracking app that used energy bars which depleted and refilled
       | over time. If I hit a particular muscle group that day, the
       | energy bar for that muscle group would deplete and take a couple
       | of days to recharge. The idea was to keep all the muscle groups
       | on cool-down. It was actually quite fun for a while. Kind of like
       | looking at a simulated representation of your body recovering
       | over time.
        
       | jcelerier wrote:
       | cninja, to enforce better CMake defaults, manage various
       | configurations for CMake buildsystems and easily generate
       | toolchains with a set of configurations / linker options / etc.
       | 
       | => https://github.com/jcelerier/cninja
        
       | seanwilson wrote:
       | I built this web best practices checker (e.g. looks for broken
       | links, missing titles, bad cache settings, insecure forms) that
       | checks multiple pages at a time:
       | 
       | https://www.checkbot.io
       | 
       | I built it to scratch my own itch while doing web development
       | work and spun it into a paid product.
        
       | asicsp wrote:
       | https://github.com/learnbyexample/command_help so that I can
       | quickly get documentation for command options. Inspired by
       | http://explainshell.com/ but wanted a cli tool.
       | 
       | Fails for lot of corner cases, but still useful most of the time.
       | Here's an example:                   $ ch ls -Gv
       | ls - list directory contents                     -G, --no-group
       | in a long listing, don't print group names                     -v
       | natural sort of (version) numbers within text
        
         | neolog wrote:
         | https://github.com/tldr-pages/tldr
        
       | d1str0 wrote:
       | At my company we used to pass around a single wildcard cert for
       | our corporate domain. All servers, including many internal
       | servers, all had the same long lived cert.
       | 
       | I made a tool to make it easy for us to deploy Let's Encrypt
       | certs for internal only servers that would normally not be able
       | to do an http challenge against LE.
       | 
       | https://github.com/Imageware/TLSential
       | 
       | One of the projects im most proud of. :)
        
       | fishywang wrote:
       | I wrote a tool that forwards selective Android notifications to a
       | Telegram bot: https://github.com/fishy/notifbot
       | 
       | I wrote two blog posts to explain the background context and the
       | motivation: [1] & [2]. The tl;dr is that I have some home
       | automations around the garage door that is not 100% reliable, so
       | I'd like some notification on Android Auto that could give me
       | some confirmation. The app sending those notifications doesn't
       | support Android Auto, but Telegram's android app supports that
       | pretty good.
       | 
       | While that's the original motivation, after years of using it I
       | also found other good uses of it: to convert notifications from
       | some super annoying apps into something less annoying.
       | 
       | [1]: https://wang.yuxuan.org/blog/item/2017/03/smartthings-myq-
       | an... [2]: https://wang.yuxuan.org/blog/item/2017/05/notifbot-
       | android-a...
        
       | gandalfgeek wrote:
       | I have a small YT channel [1] and I used to spend 30-40 mins
       | recording and then 2-4 hrs editing to get a final 10-15 min
       | video.
       | 
       | Then I fully scripted my video editing using Python+MoviePy [2].
       | The time savings are sweet. I just feed it my raw video and get
       | the finished video a few minutes later. It cuts out all the dead
       | air as well as the parts I don't want (which I indicate in-
       | video).
       | 
       | In general scripting video editing is faster and more scalable
       | compared to mousing around and making tiny cuts in a graphical
       | video editor.
       | 
       | [1]: http://youtube.com/c/VivekHaldar [2]:
       | https://youtu.be/Bdoi7BDhrWc
        
         | flexd wrote:
         | This is very cool!
        
           | [deleted]
        
         | cosmodisk wrote:
         | I personally know a few people who could very likely be your
         | customer,so I second other commenter: do release it as a
         | product.
        
           | gandalfgeek wrote:
           | Thanks for the kind words.
           | 
           | Script is open for anyone to use or adapt. Credit and link
           | back would be nice :-)
           | 
           | https://gist.github.com/vivekhaldar/92368f35da2d8bb8f12734d8.
           | ..
        
         | kmstout wrote:
         | As an oldies station DJ from back home would say, this is good
         | stuff! The use of screen color as an in-band indicator for what
         | segments to keep or toss is especially elegant.
         | 
         | One question: If you find yourself silent for some period that
         | you want to keep (maybe while something happens on the screen),
         | how do/would you inhibit the dead air filtering?
        
           | gandalfgeek wrote:
           | I've never thought about keeping silent parts in since that's
           | just not my use case, but conceptually you could do that if
           | you introduced a third marker (color other than red or green)
           | to indicate "keep with silent parts".
        
         | tumidpandora wrote:
         | Nice! I built something similar with automating a movie making
         | process by pulling gifs from Giphy, convert them to mp4 with
         | ffmpeg, stitch, add a sound track, opening sequence and credits
         | and produce a movie, all with just a keyword. Check out my code
         | here
         | 
         | https://github.com/mohapsat/auto-giphy-movie
        
         | bradbatt wrote:
         | "as well as the parts I don't want (which I indicate in-video)"
         | 
         | How do you indicate that in the video?
        
           | gandalfgeek wrote:
           | Well, https://youtu.be/Bdoi7BDhrWc explains that with a demo.
           | 
           | But tl;dr-- after a segment I want to keep, I switch my
           | background to solid green; after a segment I want to drop,
           | solid red. (Segment == clip between two solid red or green
           | backgrounds)
        
             | jacobmischka wrote:
             | That's a really interesting and clever idea, well done.
        
         | pm wrote:
         | Have you used a ffmpeg wrapper like ffmpeg-python for dealing
         | with video? If so, how does it compare? I remember seeing
         | MoviePy briefly in my research but found there wasn't a lot of
         | documentation.
        
           | gandalfgeek wrote:
           | I believe MoviePy uses ffmpeg underneath. Have not used
           | ffmpeg-python, but MoviePy has nice higher-level abstractions
           | like clips (both audio and video), time functions,
           | transitions etc that you can then compose pretty elegantly.
           | See some of the examples on their site:
           | 
           | https://zulko.github.io/moviepy/gallery.html
        
         | blamazon wrote:
         | That is amazing. I have wanted such a thing for recording
         | videos at work but had no idea how to articulate the idea that
         | was so clearly laid out for me in this 4 minute video.
        
         | ajonit wrote:
         | Great idea! Develop this as a standalone solution. There is a
         | huge market open for you.
        
       | spcebar wrote:
       | I was too lazy to learn how to use a packager so I built one in
       | Node. It's dead simple and lacks features but works great.
       | 
       | On my website: https://benergize.com/software/pyleon/ On
       | git:https://github.com/benergize/pyleon
        
         | phreack wrote:
         | I love the disclaimer at the end of your Readme. It really
         | symbolizes the spirit of it all!
        
           | spcebar wrote:
           | Thank you! I love reinventing the wheel but I'm very
           | conscious that I'm doing it.
        
       | hughrr wrote:
       | I built a redis AOF rewriting toolchain to undelete keys at
       | specific points in time because I was working with people who
       | picked a storage engine without consistency guarantees without
       | understanding the consequences. The tool will trace the lifecycle
       | of a key through the AOF and all events attached to it so you can
       | pick an event to "undo". The output is a bunch of commands to
       | recreate the key in the state you need it in.
       | 
       | I'm not publishing the source because it's extremely dangerous
       | and not very well tested. In the wrong (or right but with
       | misunderstood intention) hands it can make your day worse.
       | 
       | It works by iterating through the AOF, filtering all commands
       | related to the interesting key and replaying all commands except
       | matching ones into a standalone instance of redis. Then it dumps
       | the key that is left.
        
       | SuperCuber wrote:
       | I made my own dotfile manager:
       | https://github.com/SuperCuber/dotter . With time, at least a
       | couple other people started using it :D
        
       | w4rh4wk5 wrote:
       | I've built a tiny dependency installer targeted at old systems /
       | clusters where you need to bootstrap modern libraries and tools
       | from an old GCC.
       | 
       | It's very small, just a few lines of Bash.
       | 
       | https://github.com/W4RH4WK/DIFAS
        
       | lbutler wrote:
       | A webapp to help me calibrate hydraulic models of water networks.
       | 
       | The original concept was in excel and VBA.
       | 
       | I ended up pulling out the engine as a separate open source
       | library which I've used on a few other projects.
       | 
       | https://github.com/modelcreate/epanet-js#model-calibrate
        
       | mikub wrote:
       | I am currently learning SQL/Python, I often just wanted to know
       | the headers and how many rows are in a CSV file, so I just wrote
       | a small Python script for it.                 import csv
       | import readline            readline.set_completer_delims('
       | \t\n=')       readline.parse_and_bind("tab: complete")
       | def csvOpen(file):                with open(file, "r",
       | newline='', encoding='utf-8-sig')  as csvfile:
       | reader = csv.reader(csvfile)               i = next(reader)
       | dRows = sum(1 for line in reader)               print(f"You have
       | {dRows} rows in the CSV file:\n" f"Your headers are:\n {i}")
       | file = input("Please enter the filename to show the CSV
       | headers: ")            csvOpen(file)
       | 
       | I also have an alias for it in my .bash_aliases.
       | alias sqhead='python /home/user/Coding/Py-Code/sqlHead.py'
        
         | Madeindjs wrote:
         | This can be done using two lines of Bash
         | 
         | - `head -n 1 <file>` to get headers - `wc -l <file>` to count
         | number of rows
        
           | gnomewascool wrote:
           | Not really, not if the CSV contains quoted newlines.
        
         | asdw wrote:
         | what does sq in sqhead mean?
        
           | softblush wrote:
           | I guess the CSV files are SQL table dumps
        
       | dahjkol wrote:
       | My IT guys at work somehow keep disabling the show hidden files
       | and folders feature in windows 10. So I wrote a program that
       | checks every 5minutes and turns it back on lol
        
         | mod wrote:
         | You could update it to report when it had to actually switch it
         | back, and perhaps find the source of the problem.
        
           | foepys wrote:
           | 99% sure it's just a group policy that somebody switched on
           | because "I don't want users to delete config files by
           | accident and call me".
        
         | ekzy wrote:
         | Your script could send your IT guys an email too, that might
         | eventually fix the source of the problem...
        
           | dahjkol wrote:
           | Oh I have. It's a standard policy for everyone in my
           | organization
           | 
           | I don't work exclusively with programmers and it's a rather
           | large bearucratic nightmare
           | 
           | Try not to infer more than what is presented please.
        
       | mfontani wrote:
       | A bunch of shell scripts I've written over the years are
       | available from https://git.marcofontani.it/mfontani/scripts
       | 
       | Very useful ones:
       | 
       | - h, to take the first line of output and output it as is, then
       | running the command that got passed. Example: ps faxuww | h grep
       | foo to show the "ps" first line (the header) then running "grep"
       | on the rest
       | 
       | - evenodd, to colorize the background of lines of text so it's
       | easier to see which start of text corresponds to which end of
       | text
       | 
       | - time-rollup, to time the time it takes to run a given command
       | and provide percentage-based statistics on the execution
       | 
       | - a wrapper around "jq" to make it DWIM w/regards to gzipped,
       | bzipped, and zstd-compressed files
       | 
       | I've also put some full-fledged binaries on github:
       | 
       | - https://github.com/mfontani/prettycrontab which is a crontab
       | pretty-printer which parses a possibly specially commented
       | crontab to give you an overview of what's coming up next
       | 
       | - https://github.com/mfontani/tstdin to timestamp your stdin, and
       | provide when the line was received, how long it was since the
       | start of the command, and how long it was since the last line was
       | received. Useful to add at the end of a pipe to both log and
       | perform analysis on the output and time it took to do stuff
       | 
       | - https://github.com/mfontani/rofixec to "sorta template" a rofi
       | (a X11 runner) runner so it picks commands from a given list
       | (provided as yaml or json configuration) and executes the picked
       | item in a background job
       | 
       | - https://github.com/mfontani/git-recent which helps you pick the
       | most recent branches you've worked on, very useful when paired
       | with fzf for picking
       | 
       | - https://github.com/mfontani/los-opinionated-git-tools instead
       | contains a ton of useful little git-related scripts, from one
       | which DWIMs the master/main/blead branch name to one which helps
       | you reauthor the last commit, to one (git-rr) which helps you
       | perform a git rebase with context info about the commits you're
       | rebasing: which files they touched, etc - to make it easier to
       | fixup together commits which touched the same file... which is an
       | operation I do so often I've created a "git-fixup" script, which
       | automates fixing up the currently committed file to the last
       | commit which touched that file in the branch
        
       | weakty wrote:
       | I built Firn[1] a static site generator for my org-mode oriented
       | wiki[2]. I needed a system that could nicely handle publishing
       | public information, and keeping private information private. In
       | addition, I wanted something that accumulated my clocked time in
       | org mode so that I could see how much I have worked on each
       | project.
       | 
       | [1] https://firn.theiceshelf.com/ [2] https://weakty.com/
        
       | shajid wrote:
       | Brandon Sanderson, my favorite writer, keeps some progress bars
       | in his website to let the fan know what he's working on.
       | Unfortunately, those progress bars aren't visible in mobile
       | devices. So I made a website for myself to keep tabs on them. And
       | also for the other fans. Link: https://bransan.vercel.app
        
         | cturtle wrote:
         | Thanks for this! That limitation of the mobile site always
         | annoyed me. Slightly coincidental that I just finished
         | rereading the Well of Ascension minutes ago.
        
       | kevindong wrote:
       | I use NYC's bike share system (Citibike) quite a bit.
       | Unfortunately the app's map of bike/dock availability [0]
       | requires a lot of scrolling and tapping to get info, in my
       | opinion. It definitely looks pretty, but it's not so functional.
       | So, I built my own version [1] that is far more information
       | dense, but much uglier.
       | 
       | [0]: https://apps.apple.com/us/app/citi-bike/id641194843
       | 
       | [1]: https://github.com/kevindong/bbam
        
       | fumblebee wrote:
       | I once wrote a script to record the Tinder profiles I swiped left
       | and right on, then fine tuned a CNN using the data and integrated
       | it into an automatic swiper. It swiped right on my now partner!
        
         | jgauth wrote:
         | That's awesome, is the source available?
        
         | neural_thing wrote:
         | I am both impressed and horrified.
        
         | sofixa wrote:
         | Next step:
         | https://www.removeddit.com/r/AskReddit/comments/1f607z/comme...
        
       | ellis0n wrote:
       | drive.py
       | 
       | Disc comare tool
       | 
       | https://github.com/web3cryptowallet/drive-py
       | 
       | I made it to work with unstructured data with any amount of size
        
       | bool3max wrote:
       | I recently wrote a shell script bound to a keyboard shortcut,
       | that pops up a window with a text input field that accepts LaTeX
       | input, and immediately converts it to a JPG that is then copied
       | to the clipboard. Super useful.
        
         | fikama wrote:
         | Sounds cool, but do you use it for anything other than math
         | equations? I am just curious
        
           | bool3max wrote:
           | Not really, though I can provide any valid LaTeX input and
           | get the appropriate result back. To be honest the setup is
           | not ideal, as the input is first converted to a PDF file
           | (that has to be saved in a temporary directory, along with
           | other residual files, as "pdflatex" doesn't support
           | stdout/stdin, for some reason), and only then to an image.
           | Still though, it's much snappier than relying on online
           | "latex to image" converters that basically do the same thing
           | on a server somewhere.
        
       | hbbio wrote:
       | That would be https://github.com/hbbio/build
       | 
       | The idea of build is not having to remember each command line to
       | build some files.
       | 
       | Just put in comment inside each file how to build it (including
       | all options and specifics) and run
       | 
       | build file.ext
       | 
       | It does not pollute directories as it does not require any file,
       | unlike Makefiles.
        
         | jatins wrote:
         | I really like this idea of build command living _inside_ the
         | code it builds. Rather than a separate readme. I wish this were
         | more common.
        
       | nathell wrote:
       | Skyscraper, my scraping and restructuring framework:
       | https://github.com/nathell/skyscraper
       | 
       | I've used it to build datasets for various research purposes, and
       | also an archive tool for the now-extinct soup.io:
       | https://github.com/nathell/soupscraper
        
       | hnarayanan wrote:
       | A long time ago, before Spotify had support for multiple devices
       | where one could act as a remote and control the other, I wrote a
       | tool called Shpotify: https://github.com/hnarayanan/shpotify . It
       | is a simple Bash/AppleScript.
       | 
       | The primary usecase for me was to SSH tunnel into a media centre
       | Mac in my living room and control music on Spotify. I released it
       | on GitHub and it has grown a lot in popularity amongst people who
       | like to do a lot of their computing in the shell.
        
         | ascales wrote:
         | I use Shpotify to shuffle and play a playlist of
         | eurotrash/techno during especially long builds. Pretty nifty
         | thing you made!
        
           | hnarayanan wrote:
           | You're very welcome.
        
       | lelandbatey wrote:
       | I made a tool that takes a list of timestamps as input and
       | outputs a histogram of the count of those timestamps grouped into
       | bins of any size (default is 1 hour):
       | 
       | https://gist.github.com/lelandbatey/58330f13a02e7b5a0af179d5...
       | 
       | I've found this to be a HUGE help, as I frequently have data from
       | all kinds of sources and I want to be able to ask questions like:
       | 
       | "When did records matching this query start getting created over
       | the last month?"
       | 
       | "Have there been any big fluctuations in the trends of when these
       | records are deleted?"
       | 
       | On and on. It's an incredibly versatile tool to have access to
       | and I was SHOCKED that there weren't existing tools for this
       | case.
        
       | edmundsauto wrote:
       | I bought a Remarkable2 tablet, and love it. Unfortunately, there
       | is no way to easily consume email on it (email newsletters, which
       | don't require any responses). I built a service that gives me a
       | unique email I can sign up with, which then packages the email
       | body into an epub that I can read.
        
       | moasda wrote:
       | I wrote a wiki server to store important notes:
       | 
       | https://gitlab.com/moasdawiki/moasdawiki-server
       | 
       | I also wrote a Kanban tool to organize my personal tasks at work:
       | 
       | https://gitlab.com/moasda/task-organizer
        
       | stevekemp wrote:
       | I bundled together a small collection of sysadmin/scripting-tools
       | here:
       | 
       | https://github.com/skx/sysbox
       | 
       | Those are probably amongst the things that I use most often which
       | are non-standard.
        
       ___________________________________________________________________
       (page generated 2021-06-12 23:01 UTC)