This is sort of a follow up to this post:
I am curious to what tools people have built that you use either locally or in production that helps you be more efficient. From automating, to building, code generation, scheduling/reminders, or anything else.
Even if you never released it (you should!) I would be interested in knowing what non well-known tools people have made to make their own developer lives easier
Top comments (13)
Oh Boy. My Time To Shine:
Ctrl + Pon order invoices and then closes the page, counts days since order date, click to copy order numbers, etc.
I've found I'm pretty good at identifying inefficient processes and then learning what I need to do to make them better.
Edited to add: I'm also super lazy and hate doing repetitive things over and over. Take out as many steps as possible and it'll save you boat loads of time.
Color book - A one stop resource for UI color schemes, material design color palettes and gradient color generator.
Feel free to contribute here github.com/liyasthomas/colorbook
Marcdown - A lightweight realtime markdown viewer and editor. Create, open, view, edit and save markdown files on the go.
Feel free to contribute here github.com/liyasthomas/marcdown
Banner - A simple and clean banner generator for blogging sites such as DEV.to, Medium, etc.
Feel free to contribute here github.com/liyasthomas/banner
I deal daily with many projects, and even the things I authored are more than what my poor memory can hold, which is why I built broot which helps me make sense of a project structure and find the file(s) I'm interested in.
Random trick for vi users: making
:ean alias to your editor,
exit, etc. This reduces the cognitive load when you deal with a lot of terminals and editors.
aws-creds: Makes it easier to use multiple AWS accounts when you don't have SSO available. You can easily save multiple profiles, and then log into them with an simple set of commands.
I built it after being sick of modifying my ~/.aws/credentials file constantly and working with environment variables.
This is a bit different: I once wrote a static analyser in Java, that took apart another Java binary (yay for the ASM framework!), to build a call dependency tree and detect unreferenced methods (nothing statically calls them), then instrument those methods, so that we could catch sneaky code using reflection to run things...needless to say this was in a security context! Target Java binaries were typically 10-100MB JARs.
I love this post idea!
I've made myself a tool to run tests for my SPA because I had a hard time with jest-puppeteer, and mine works fine for my use cases. I've abstracted the maximum to only specify what I want to test (the title of the tab, a click navigation, ...). It only uses puppeteer, assertions are done by test type (title, expected url, ...). I am thinking of remaking it to be more robust, and publish it for the community.
Another tool I launched recently, still for my web apps, is browser-worker, to work easier with service workers. It is still in development, I try to keep up with the maximum of use case.
What about you Shawn? :)
I'll toss my hat in this ring!
When I started with my new employer, one of my first tasks was to develop some new style guidelines for writing JS. For documents like this, I'm a huge fan of writing Markdown right into plain text editors, but not many people like to read Markdown right from a plain text editor. I wanted to be able to export the file to HTML so that it would look all purrrrrrrty when opened up in a browser.
There are a handful of Markdown editors / publishers out there, but where I had just started a position in which I was going to be working with C#, I figured I would take a crack at baking my own tool specifically for writing documentation in Markdown.
It's nothing fancy -- just a Markdown editor with a live-preview of how the HTML will render in a panel to the right. The application allows me to save and open Markdown files, as well as export the Markdown directly to HTML. I also included a few themes which allow me to change the look of the exported HTML using some CSS.
It was a fun little experiment, and honestly, I use it pretty frequently when I need to take some quick notes.
A long time ago I wrote the original version of Latexmk which is still used out in the world to automagically produce your latex documents.
Erudite pulls articles from Instapaper or Pocket and add to your ebook library.
Clementinemonitor is a small python script to monitor what is currently playing in your Clementine music player, by hooking into the relevant dbus signals to detect state change.
Movieschedule to track Australian movie release dates. Sends emails if dates change, and keeps a google calendar up to date.
Sitesync which can mirror folders that are either on local file system, FTP or SFTP. It keeps track of file modified times and sizes to detect changes on either side and allows you to rationalise. Originally wrote it to help me maintain some web-sites without clobbering changes that other contributors were making at the same time. Think of it as unison that doesn't need the program running at each end (but hence, isn't as robust).
Well, I have built two tools that I used while developing my first game ever published.
The first tool was a localization editor. Since I made the game on a budget of basically zero dollars, I couldn't afford a fancy localization tool from Unity's asset store, so I made my own which works with key/value pairs. Although I don't have a link for it, I made a tweet about it right here: twitter.com/CharlExMachina/status/...
My other tool was a pattern editor. Since my game uses patterns to spawn elements in a match, hard-coding those patterns was VERY cumbersome and resulted in a code file of almost 2,000 lines. So I made a custom editor where I could add patterns with a graphical interface and that's how I've been working with patterns ever since then. I never tweeted about it but it's such an integral part of the game that made the development feasible and ended up in a published game.
These are some older ones, but probably worth mentioning:
Web app for converting svg images to all Android and iOS png sizes with correct naming and folder structure. Downloadable as zip.
Web app for removing margins from images.
API solution for replacing placeholders in Word documents and returning the result file as pdf.
node-ftpsync: Does incremental file sync to a FTP (ex shared hosting).
Wrote a static site generator that generator that uses GoogleAppEngine for templating.
A tool to generate clean install VMs of Windows, OSX, Linux for VirtualBox
A tool that generates PDF documentstion from a fillable PDF form and GoogleSheet as a data source.
A scraper that crawls a site and locates all broken links.
And probably a dozen others I can't think of off the top of my head.
I do a lot of automation/integration in my work. So I write a lot of Python or PHP (cli) code.
I wrote a tool in bash that sets up a simple no-framework web page file structure. It gives the option to start a git repo, a package.json and launches VS Code and Live-Server right off the bat.