Ask HN: What are some tools / libraries you built yourself?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • lowdefy

    The config web stack for business apps - build internal tools, client portals, web apps, admin panels, dashboards, web sites, and CRUD apps with YAML or JSON.

    We’ve created https://lowdefy.com and open-sourced it.

    Over the past 5 years we’ve been building custom B2B and back office web applications. Nothing in the market had the level of customization we required both from a technical and commercial angle. So decided to standardize how we “configure” apps into a platform.

    We did this by designing a schema by which to define web apps which is easy to read, write and understand, and works well with normal developer tools like editors, git and CI. While keeping it self hosted and even server-less.

    Lowdefy has enabled us to rapidly deploy custom business apps like BI, CRM to MRPs.

    Check it out :) https://github.com/lowdefy/lowdefy

  • rupy

    HTTP App. Server and JSON DB - Shared Parallel (Atomic) & Distributed

    I made my own HTTP app. server and distributed JSON database: https://github.com/tinspin/rupy

    On top of this I have made many projects and I still use all of them today even 10 years later, some favourite:

    http://fuse.rupy.se (multiplayer system)

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • snipp.in

    Fast, Light-weight, Notes, Snippet manager and code editor directly inside your browser

    I built https://snipp.in because I was top frustrated about the loading times of notion. I am a developer and I take notes quite often, most of us spend a lot of time on an IDE and when we need format a quick json or copy a tiny snippet we often find ourselves in opening another instance of an editor with a txt file or random website to formate json. Snipp.in is a tiny jn browser editor, note taking app and a snippet manager all in one which looks like an Editor but really fast without any bs of signin/signups or cloud. It just stores everything in your browser using IndexedDB. It's also open-sourced at https://github.com/haxzie/snipp.in

  • SerilogSinksInMemory

    In-memory sink for Serilog to use for testing

    Two things that I use daily:

    Serilog.Sinks.InMemory for help with unit testing log messages etc: https://github.com/sandermvanvliet/SerilogSinksInMemory

    TestableHttpClient to make testing API calls easier by providing a simple way to configure responses and behaviour as well as asserting actual calls: https://github.com/sandermvanvliet/TestableHttpClient

    Both I think equal parts not invented here, “how hard is this really?”, not finding something at the time and just doing it for the fun of it

  • TestableHttpClient

    Test helpers for unit testing HttpClient

    Two things that I use daily:

    Serilog.Sinks.InMemory for help with unit testing log messages etc: https://github.com/sandermvanvliet/SerilogSinksInMemory

    TestableHttpClient to make testing API calls easier by providing a simple way to configure responses and behaviour as well as asserting actual calls: https://github.com/sandermvanvliet/TestableHttpClient

    Both I think equal parts not invented here, “how hard is this really?”, not finding something at the time and just doing it for the fun of it

  • dither

    A fast, correct image dithering library in Go.

    I created dither, a library for image dithering in Go. And then I created didder, a CLI tool for the library. I had become interested in the aesthetic effect of dithering, but realized that there aren't many tools that do the math correctly, and also provide many different algorithms to explore.

    https://github.com/makeworld-the-better-one/dither

    https://github.com/makeworld-the-better-one/didder

  • didder

    An extensive, fast, and accurate command-line image dithering tool.

    I created dither, a library for image dithering in Go. And then I created didder, a CLI tool for the library. I had become interested in the aesthetic effect of dithering, but realized that there aren't many tools that do the math correctly, and also provide many different algorithms to explore.

    https://github.com/makeworld-the-better-one/dither

    https://github.com/makeworld-the-better-one/didder

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • intercooler-js

    Making AJAX as easy as anchor tags

    I created intercooler.js in 2013 so I could do AJAX in HTML:

    https://intercoolerjs.org

    Last year I removed the jquery dependency and cleaned it up based on a lot of lessons that I learned, renaming it to hmtx:

    https://htmx.org

    Same idea: extends/complete HTML as a hypertext so you can build more advanced UI within the original hypermedia web model, and cleaner implementation.

    Part of that cleanup involved me pulling out some functionality around events and a proto-scripting language (ic-action), and I enjoy programming languages, so I created a front end scripting language to fill that need:

    https://hyperscript.org

    It's based on HyperTalk and has a lot of domain specific features for lightweight front end scripting, kind of a jQuery or AlpineJS alternative.

  • htmx

    </> htmx - high power tools for HTML

    I created intercooler.js in 2013 so I could do AJAX in HTML:

    https://intercoolerjs.org

    Last year I removed the jquery dependency and cleaned it up based on a lot of lessons that I learned, renaming it to hmtx:

    https://htmx.org

    Same idea: extends/complete HTML as a hypertext so you can build more advanced UI within the original hypermedia web model, and cleaner implementation.

    Part of that cleanup involved me pulling out some functionality around events and a proto-scripting language (ic-action), and I enjoy programming languages, so I created a front end scripting language to fill that need:

    https://hyperscript.org

    It's based on HyperTalk and has a lot of domain specific features for lightweight front end scripting, kind of a jQuery or AlpineJS alternative.

  • package-json-upgrade

    I've built several extensions to vscode. My best one has to be a tool to help you upgrade dependencies in your package.json: https://github.com/pgsandstrom/package-json-upgrade

    I just felt that other extensions lacked polish. The UX wasn't very good, or they didn't read all npm config properly.

  • Legacy-ParticlePlay

    A legacy work on cross-platform game engine

    I wrote my own game engine that support an adaptive music system (some called dynamic music system), built using OpenGL (by SDL2), OpenAL, Physics powered by Box2D.

    Pretty old projects, built during my years in the university. But also one of the proudest projects I achieved.

    https://github.com/spywhere/Legacy-ParticlePlay

  • fselect

    Find files with SQL-like queries

    https://github.com/jhspetersson/fselect

    A tiny tool I wrote to search within file piles (mostly unsorted downloads, torrents, and such). I could never remember `find` options, and more advanced queries are a pain. Now one can use some kind of SQL flavor to get the job done.

  • Scrawl-canvas

    Responsive, interactive and more accessible HTML5 canvas elements. Scrawl-canvas is a JavaScript library designed to make using the HTML5 canvas element easier, and more fun

    I started building Scrawl-canvas[1] - my Javascript canvas library - back in 2013 because I was trying to land my first full-time job in the industry and a recruiter told me it would be a really good idea if I had a portfolio of sites and projects to show prospective employers - including one on GitHub to prove that I knew what GitHub was.

    I'm still developing the library because ... I don't know why. I've lived with it for so long now it's become a bad habit I can't shake. I'm also quite proud of it because it can do things that other libraries can't do[2][3].

    [1] - website - https://scrawl-v8.rikweb.org.uk/

    [2] - Shape, and animate, an image between two paths - https://codepen.io/kaliedarik/pen/ExyZKbY

    [3] - Filter over a live media stream - https://codepen.io/kaliedarik/pen/OJNVaEX

  • mate-i3-applet

    Discontinued i3 workspace applet for MATE (unsupported, see top of README)

    I created mate-i3-applet as it was the missing piece in a perfect MATE/i3 integration: https://github.com/city41/mate-i3-applet

  • gh-token

    Manage installation access tokens for GitHub apps from your terminal 💻

    I recently built this: (https://github.com/Link-/github-app-bash) as a quick way to generate access tokens to use with GitHub's APIs. Now I can use tokens with a limited scope, and lifetime when I test which is safer than using a personal access token that never expires. It's fully written in bash and does not have many dependencies. It's quick does the job.

  • OwnTime.jl

    A Julia profiling package that provides an "own time" and "total time" view of profiling data

    OwnTime.jl - A Julia profiling library [1].

    It reports the time spent on each line of your project, and you can filter which files are included. For example, you might do a complicated map operation which calls a function in another library, if you filter out the library then it will report that all the time was spent in your code on the line that performed the map. However, if you don't filter out the library then it will report that all the time was spent on the line inside the library.

    I couldn't figure out how to get what I wanted from the existing profiling libraries so wrote this. It was quite easy once I figured it out. Julia has a built in sampling profiler you can turn on, and from there you can process the sampled frames however you'd like and display them however you'd like.

    [1]: https://github.com/DevJac/OwnTime.jl

  • tuc

    When cut doesn't cut it

    I wrote "tuc", an alternative to the "cut" Unix tool, for those situations where I need something more (mostly the ability to collapse the separator or negative indexing)

    https://github.com/riquito/tuc

  • singyeong

    Discontinued 신경 - Cloud-native messaging/pubsub with powerful routing

    - I wrote my own message queue because of dissatisfaction with existing solutions; it's like a very smart gateway: https://github.com/queer/singyeong

    - My own key-value store that versions values by default: https://github.com/queer/crush

    - A Spring-inspired web app 'framework' for fun: https://github.com/queer/autumn

    - Slowly building my own k8s-inspired container scheduler: https://github.com/queer/mahou

  • crush

    A time-traveling distributed key-value store (by queer)

    - I wrote my own message queue because of dissatisfaction with existing solutions; it's like a very smart gateway: https://github.com/queer/singyeong

    - My own key-value store that versions values by default: https://github.com/queer/crush

    - A Spring-inspired web app 'framework' for fun: https://github.com/queer/autumn

    - Slowly building my own k8s-inspired container scheduler: https://github.com/queer/mahou

  • autumn

    Discontinued Experimental Netty-based Java 16 application/web framework (by queer)

    - I wrote my own message queue because of dissatisfaction with existing solutions; it's like a very smart gateway: https://github.com/queer/singyeong

    - My own key-value store that versions values by default: https://github.com/queer/crush

    - A Spring-inspired web app 'framework' for fun: https://github.com/queer/autumn

    - Slowly building my own k8s-inspired container scheduler: https://github.com/queer/mahou

  • mahou

    魔法 - Mahō is a highly-opinionated yet quite magical research project into microservice-oriented application infrastructure. (by queer)

    - I wrote my own message queue because of dissatisfaction with existing solutions; it's like a very smart gateway: https://github.com/queer/singyeong

    - My own key-value store that versions values by default: https://github.com/queer/crush

    - A Spring-inspired web app 'framework' for fun: https://github.com/queer/autumn

    - Slowly building my own k8s-inspired container scheduler: https://github.com/queer/mahou

  • spayd-js

    An implementation of Short-Payment-Descriptor library in JavaScript/TypeScipt. Primarily used for generating QR-Payments.

    I've created a simple typescript library for generating QR payment strings, which can then be encoded into an actual QR payment. The actual standard for such payments is called SPAYD and it's accepted in most of our contry's bank apps.

    Initially, I needed to create such QR and hadn't found any publicly available web tool, so I created one by myself.

    https://github.com/Tajnymag/spayd-js

  • AlphaZero.jl

    A generic, simple and fast implementation of Deepmind's AlphaZero algorithm.

    As a researcher in machine learning, I wanted to explore applications of Deepmind’s AlphaZero algorithm beyond board games (such as in automated theorem proving or chemical synthesis).

    However, I noticed that existing open-source implementations of AlphaZero mostly consisted in complex C++ codebases that are highly specialized for specific games (eg. Leela Zero and LC0). Accessible Python implementations could be found but they were usually too slow to do anything useful on limited computing power.

    Seeing this, I built AlphaZero.jl: https://github.com/jonathan-laurent/AlphaZero.jl

    AlphaZero.jl is written in Julia and it is consistently one to two orders of magnitude faster than competing Python alternatives, while being equally simple and flexible. I just released a new version a few days ago with many new features (support for distributed computing, support for arbitrary MDPs...).

    If you are a student, a researcher or a hacker curious about AlphaZero, please consider having a look!

  • Pass-for-macOS

    macOS wrapper for pass, the standard UNIX password manager

    In an attempt to move everything out of iCloud (I only use Apple products), I missed a compelling, FOSS password manager. After some time, I found passwordstore.org. Unfortunately, there was no Safari extension, so I built it myself: https://github.com/adur1990/Pass-for-macOS

  • goflow

    Simple but powerful DAG scheduler and dashboard (by fieldryand)

    I'm building a simple replacement for Apache Airflow to manage some small data pipeline projects: https://github.com/fieldryand/goflow. Airflow started to feel too heavyweight for these projects where all the computation was offloaded to independent services. I wanted a solution with minimal memory requirements to save costs and avoid the occasional high memory usage/leak issues I was facing with Airflow. I know there are tons of existing solutions in this space, but nothing I found seem to match the Airflow features I needed, so I decided to build it myself. It's been a great way to learn Go.

  • java-utils

    Discontinued Open Source Java utility modules for building web services

    Lead Engineer at PAX Labs, we just open-sourced some Java utilities i wrote in the early days building service oriented architecture on dropwizard: https://github.com/PaxLabs/java-utils

    A few things in there:

    * `HibernateQuery` - wrapper around hibernate jpa implementation, because using the jpa criteria api is verbose as hell (seriously, even for java). Coming from having written Django, I wanted the ease of using Querysets in java

    * Makemigrations - this seemed to be a missing hole in the java ecosystem. Our contractors were hand-writing sql migrations and using some framework that just ran them. Liquibase exists for managing migrations, hibernate can generate the schemas. This library is a dropwizard command to generate yml to migrate the old schema to the new one.

    * generic pagination bundle

  • slb

    A unix-friendly map-reduce parallelization alternative

  • svm2csr

    fast Rust-based SVMlight parser

  • fdd

    Bikeshed's gone don't even think about it / Yes, as I'm going to my work, I see... fast failures!

  • DungeonBuilder

    A 2-dimensional dungeon builder for a RPG

    I build a Swift library to generate 2d dungeon maps, based on Perl and Javascript code from Donjon [0].

    The code is kinda ugly but it works and I think it's one of the nicer dungeon generators: https://github.com/wolf81/DungeonBuilder

    I also wrote a small library to deal with AD&D dates & times, also in Swift, quite clean code I think:

  • Harptos

    A small library for handling AD&D dates & times with regards to the Calendar of Harptos

  • panel

    Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.

    I made a platform for hosting game servers at scale. All of the options previously on the market at the time were highly limited, didn't really put a lot of effort into security, or had existed for 10+ years and didn't feel much need to innovate.

    https://github.com/pterodactyl/panel

    Kind of took off after posting here about it a few years back, and now it just kind of sustains itself with some bug fix inputs every now and then.

  • helium-css

    Helium - javascript tool to scan your site and show unused CSS

    I wrote Helium https://github.com/geuis/helium-css a while back to help find unused css on a site. The process of building sites has changed a lot since then so it’s not as universally useful as it used to be. (...Glares at React...). Joking aside, it’s had a good run. I’ve had some ideas for a few years about an updated version but it would really be an entire new project.

    Also created https://jsonip.com. Get your IP address in a json object. I created it a decade ago to solve some problem I had and have been running it ever since. Last I checked it’s supporting 4-6 million requests per day from a pretty wide group of users.

  • paperoni

    Search for scientific papers on the command line (by mila-iqia)

    I made a CLI interface for the Microsoft Academic API so you can search for papers, download them, and generate HTML from a collection: https://github.com/mila-iqia/paperoni

    I'm using it to automatically collect papers published by members of the research institute I work for, it's working pretty well.

    I also made a small utility to sync folders on-demand on my different machines: https://github.com/breuleux/synecure

    Most of the work is done by a library called bsync that someone else had written, which itself uses rsync, but I'm quite happy about the interface I made. By default it syncs home-to-home, so you don't have to specify both the source and destination directories. You can just type "sy -r remote" in ~/whatever to sync it to ~/whatever on the remote.

  • synecure

    Simple rsync-based synchronization CLI program

    I made a CLI interface for the Microsoft Academic API so you can search for papers, download them, and generate HTML from a collection: https://github.com/mila-iqia/paperoni

    I'm using it to automatically collect papers published by members of the research institute I work for, it's working pretty well.

    I also made a small utility to sync folders on-demand on my different machines: https://github.com/breuleux/synecure

    Most of the work is done by a library called bsync that someone else had written, which itself uses rsync, but I'm quite happy about the interface I made. By default it syncs home-to-home, so you don't have to specify both the source and destination directories. You can just type "sy -r remote" in ~/whatever to sync it to ~/whatever on the remote.

  • mobi

    This Go package implements writing KF8-style formatted MOBI and AZW3 books. (by leotaku)

    I've made a library[1] to generate MOBI books for Amazon Kindle devices. It is relatively low level (you have to manage XHTML generation yourself), but it works and does exactly what I need it too.

    [1]: https://github.com/leotaku/mobi

  • crossref-rs

    A rust client for the Crossref-API

    paperoni is awesome!

    I once implemented the crossref api in rust in order to search for publications from the command line https://github.com/mattsse/crossref-rs

  • gisteam

    ⚡️ Fast server side rendering code beautifier, minifier, pastebin, encoder/decoder and hash generator ⚡️

  • xstate

    Actor-based state management & orchestration for complex app logic.

    I built XState because I wanted a way for developers to integrate state machines & statecharts into web applications in a way that could be automatically visualized: https://github.com/davidkpiano/xstate

  • simplelocalize-cli

    SimpleLocalize CLI is a developer-friendly command-line tool for uploading and downloading translation files

  • fixture-riveter

    A fixtures generation library for Typescript

    I was dissatisfied with the available fixture/test data generation tooling for Obection.js and Knex, so I ported factory_bot from Ruby to Typescript. I’ve called it Fixture Riveter [0]. It’s more verbose than the other similar tools (factory_girl for javascript, Fishery for typescript), but it’s extremely versatile and supports factory_bot’s full api.

    [0]: https://github.com/Batterii/fixture-riveter

  • vscode-jq

    jq LiveView Extension for VS Code

  • react-tech-tree

    React visual tree components. Demo: https://ldd.github.io/react-tech-tree/

  • cakephp-swagger-bake

    Automatically generate OpenAPI, Swagger, and Redoc documentation from your existing CakePHP code.

    https://github.com/cnizzardini/cakephp-swagger-bake which builds out openapi from your cakephp applications meta data. One of many projects I took up to occupy myself during covid lockdowns.

  • Tabula

    Extract tables from PDF files

    tabula-java [0], a library for extracting tables from PDF files. It started as a monolithic webapp written in JRuby, and we later extracted the table detection and segmentation logic into a Java library.

    [0] https://github.com/tabulapdf/tabula-java

  • testfixtures

    Ruby on Rails like test fixtures for Go. Write tests against a real database

    I built an alternative to Make written in Go that is simpler to use and cross-platform: https://taskfile.dev/

    Also, a library to write tests with databases for Go: https://github.com/go-testfixtures/testfixtures

  • Task

    A task runner / simpler Make alternative written in Go

    I built an alternative to Make written in Go that is simpler to use and cross-platform: https://taskfile.dev/

    Also, a library to write tests with databases for Go: https://github.com/go-testfixtures/testfixtures

  • emlearn

    Machine Learning inference engine for Microcontrollers and Embedded devices

    I built emlearn, a Machine Learning inference engine for microcontrollers and embedded systems. It allows converting traditional ML models to simple and portable C99, following best practices in embedded software (no dynamic allocations etc). https://github.com/emlearn/emlearn

  • absentee

    A C-to-C transformation tool

    I made a small tool to script source-to-source transformations and apply them on C programs: https://github.com/lou1306/absentee

    I used it during my PhD to automatically instrument benchmark programs for several different software verification tools (there is some form of standardization going on, but there are still a lot of corner cases where the same program will be interpreted, and thus verified, differently by two tools).

    It's written in Python 3 and uses pycparser to do most of the heavy lifting. Currently it's a bit on the back burner, but I hope to come back to it soon-ish. Some desiderata:

    * pycparser's AST API is not terribly efficient when you have to rewrite large subtrees, but I don't know if there are any nice alternatives.

  • tinydiamond-timer

    There was a time in my team where we were taking just too much time and derailing in our daily standups, and the manager wanted to have a way to control how much time each one of us took during our standup and leave any further discussion for the 16nth minute. I created a [DSU timer][0] for the team which we used for quite some time and it served it's purpose. We later switched to another approach for our standups. It's currently [hosted][1] on github pages.

    [0]: https://github.com/deathwebo/tinydiamond-timer

  • subject-extractor

    I built this Subject/Topic Extractor[1] in NodeJS to quickly extract topics/nouns/subjects from a String. My Use-Case was to determine what is trending, given a number of news article titles in a day

    [1]: https://github.com/mudulo/subject-extractor

  • confboy

    Discontinued Better configs with TOML support

    I built a configuration tool for Python apps: https://github.com/Euromance/confboy

    Supports dynamic values, TOML configs, runtime mutations, merging and stuff.

  • yadm

    Yet Another Dotfiles Manager

    I created a dotfiles management tool, yadm https://yadm.io

    I'm a huge fan of Git, and the Git mental model just makes sense to me. I wanted to manage my dotfiles in the same way. At the time I had tried several other solutions, mostly similar tools like homeschick and vcsh.

    I wanted a solution that was very portable, which both of those existing tools were. However, homeschick became a bit clunky to use because each time I wanted to do most operations I had to first "cd" into my "castle". In addition, that tool used symlinks, which doesn't work out well to manage a file that may get overwritten by a tool.

    vcsh was the other main tool I tried. This tool adopts the bare repo technique, allowing files to be used instead of symlinks. The major drawback it had was that it was designed to work with multiple repos, and forces you to specify the repo with every command. Some simple aliasing helped mitigate that though. But by that time I also started writing some custom code to encrypt private data and was struggling to maintain different branches for different systems which had slight tweaks to configurations. It just became all fragmented and difficult to manage.

    That is what lead me to create my own tool. The important features I wanted: portability, seamless interaction with Git, alternate files for different hosts, encryption for private data. I shared it as open source back in 2015 and it has grown in popularity some. It's been improved a lot over time including contributions from others. I'm glad so many others have found it useful.

  • milkman

    An Extensible Request/Response Workbench

    I built milkman[1], an alternative to postman because I wanted one tool to integrate with the whole web development stack. One tool that contains my SQL, rest and grpc calls to easily debug issues. Also nearly none of those kind of tools that existed supported SSE which I also use in my day to day work.

    [1] https://github.com/warmuuh/milkman

  • lambdapuppets

    Deploy your Puppeteer scripts to AWS lambda and run them using a URL or CRON job.

    I wanted to easily deploy chrome's puppeteer scripts on AWS lambda. The goal was to alert me when a delivery slot was available on Bigbasket during peak covid.

    Now I use the same to check if my websites are running properly :)

    I call this project little lambda puppets and it deploys puppeteer script on aws lamba in one click and comes with inbuilt telegram api integration to send out alerts. It has served me well for almost over an year now.

    (1) https://github.com/san-kumar/lambdapuppets

  • react-native-styleman

    Responsive styling library for react native

    I created React Native styling library that support media queries and it even lets you create your own style rule.

    https://github.com/anubhavgupta/react-native-styleman

  • fromable

    A Swiss Army Knife for working with JavaScript iterables.

    Fromable[1] allows you take any Javascript iterable, transform it using .map and .filter, and then output it into a collection, without creating intermediate values.

    [1] https://github.com/baron816/fromable

  • ljs

    Lua with C/C++/Java/Javascript syntax

    I created Lua with C/C++/Java/Javascript syntax https://github.com/mingodad/ljs

    Also forked a scripting language https://github.com/mingodad/squilu and extended it to accept a pseudo C++/Java/CSharp/Typescript syntax to make easy to reuse code and have fast iteration when creating new functions (with it and minor changes I could get https://ssw.jku.at/Research/Projects/Coco/ parser to work for easy grammar development).

    Create a tool for create, document and prototype database applications at "user level" in near realtime (live) https://github.com/mingodad/db-api-server.

    Extended GLPK to accept a bigger subset of AMPL and made some performance improvements in the GMPL interpreter https://github.com/mingodad/GLPK

  • squilu

    A scripting language that accepts a subset of javascript and C/C++

    I created Lua with C/C++/Java/Javascript syntax https://github.com/mingodad/ljs

    Also forked a scripting language https://github.com/mingodad/squilu and extended it to accept a pseudo C++/Java/CSharp/Typescript syntax to make easy to reuse code and have fast iteration when creating new functions (with it and minor changes I could get https://ssw.jku.at/Research/Projects/Coco/ parser to work for easy grammar development).

    Create a tool for create, document and prototype database applications at "user level" in near realtime (live) https://github.com/mingodad/db-api-server.

    Extended GLPK to accept a bigger subset of AMPL and made some performance improvements in the GMPL interpreter https://github.com/mingodad/GLPK

  • lucid.fish

    Minimalist, high-performance fish prompt

    Currently:

    AudioWrangler: https://apps.apple.com/us/app/audiowrangler/id1565701763

    Got sick of my Mac using the wrong audio device when waking up, so I wrote a little utility that lets me prioritize which devices to use based on what's connected. It's my first app on the App Store. I'm enjoying learning Swift and using it to write desktop apps!

    In the past:

    * Lucid: https://github.com/mattgreen/lucid.fish

    A pure-style prompt for fish shell that pioneered truly async fish prompts. Still use it daily.

    * Fogeybot: https://github.com/mattgreen/fogeybot

    A Discord bot for Heroes of the Storm that creates teams for pickup games using player ratings.

  • libmodule

    C simple and elegant implementation of an actor library

    I built a C actor-like event library: https://github.com/FedeDP/libmodule

    It actually has lots of improvements in the 6.0.0 pull request that i am delaying because i am too lazy (and haven't got much time) to fully rewrite doc.

  • db-api-server

    Create, document and prototype applications at "user level" in near realtime (live).

    I created Lua with C/C++/Java/Javascript syntax https://github.com/mingodad/ljs

    Also forked a scripting language https://github.com/mingodad/squilu and extended it to accept a pseudo C++/Java/CSharp/Typescript syntax to make easy to reuse code and have fast iteration when creating new functions (with it and minor changes I could get https://ssw.jku.at/Research/Projects/Coco/ parser to work for easy grammar development).

    Create a tool for create, document and prototype database applications at "user level" in near realtime (live) https://github.com/mingodad/db-api-server.

    Extended GLPK to accept a bigger subset of AMPL and made some performance improvements in the GMPL interpreter https://github.com/mingodad/GLPK

  • fogeybot

    A Discord bot for Heroes of the Storm

    Currently:

    AudioWrangler: https://apps.apple.com/us/app/audiowrangler/id1565701763

    Got sick of my Mac using the wrong audio device when waking up, so I wrote a little utility that lets me prioritize which devices to use based on what's connected. It's my first app on the App Store. I'm enjoying learning Swift and using it to write desktop apps!

    In the past:

    * Lucid: https://github.com/mattgreen/lucid.fish

    A pure-style prompt for fish shell that pioneered truly async fish prompts. Still use it daily.

    * Fogeybot: https://github.com/mattgreen/fogeybot

    A Discord bot for Heroes of the Storm that creates teams for pickup games using player ratings.

  • GLPK

    Mirror of GLPK versions and changes made by me and by others elsewhere

    I created Lua with C/C++/Java/Javascript syntax https://github.com/mingodad/ljs

    Also forked a scripting language https://github.com/mingodad/squilu and extended it to accept a pseudo C++/Java/CSharp/Typescript syntax to make easy to reuse code and have fast iteration when creating new functions (with it and minor changes I could get https://ssw.jku.at/Research/Projects/Coco/ parser to work for easy grammar development).

    Create a tool for create, document and prototype database applications at "user level" in near realtime (live) https://github.com/mingodad/db-api-server.

    Extended GLPK to accept a bigger subset of AMPL and made some performance improvements in the GMPL interpreter https://github.com/mingodad/GLPK

  • video-input-js

    video-input field to make video recording easy via client-side JS

    I made a video input form: https://github.com/wgryc/video-input-js

    The idea is that you have a form field-like object that you can record a response with. You can then submit the video via a regular POST request.

    I couldn't find any simple tools like this for rapid prototyping different survey responses and experiences. It was fun to build and nice that some people have starred this on GitHub!

  • elderjs

    Elder.js is an opinionated static site generator and web framework for Svelte built with SEO in mind.

    Elder.js, an SEO first, Svelte framework and Static Site Generator. [0]

    Lots of SSGs existed but none supported Svelte and I wanted partial hydration when people said it was impossible.

    [0]: https://elderguide.com/tech/elderjs/

  • september

    Ink to JavaScript compiler and toolchain, written in Ink itself

    At this point I've made a habit out of building homebrew tools and languages. Very few of these are purely because I was dissatisfied with off-the-shelf solutions; many of these just exist because I thought it would be fun/educational/challenging to build an X for myself from scratch.

    I've made

    - A dynamic programming language, Ink (https://dotink.co), which runs in "production" (for whatever that means for side projects) for around a dozen projects written in it.

    - A compiler to compile that to JavaScript (https://github.com/thesephist/september)

    - A bunch of language tooling around that language, like syntax highlighters, editor plugins, code formatters (for example, the code formatter https://github.com/thesephist/inkfmt)

    - A small UI library (https://github.com/thesephist/torus)

    - A suite of productivity tools (https://thesephist.com/posts/tools/) like notes, todos, shared whiteboard, contacts/CRM

    - Twitter client (https://github.com/thesephist/lucerne/)

    - Theres a few dozen more at (https://thesephist.com/projects/) :)

    Many of these end up building on top of each other, so across the few dozen projects built on top of these tools they form a nice dependency graph -> https://twitter.com/thesephist/status/1367675987354251265

  • inkfmt

    Code formatter for the Ink programming language

    At this point I've made a habit out of building homebrew tools and languages. Very few of these are purely because I was dissatisfied with off-the-shelf solutions; many of these just exist because I thought it would be fun/educational/challenging to build an X for myself from scratch.

    I've made

    - A dynamic programming language, Ink (https://dotink.co), which runs in "production" (for whatever that means for side projects) for around a dozen projects written in it.

    - A compiler to compile that to JavaScript (https://github.com/thesephist/september)

    - A bunch of language tooling around that language, like syntax highlighters, editor plugins, code formatters (for example, the code formatter https://github.com/thesephist/inkfmt)

    - A small UI library (https://github.com/thesephist/torus)

    - A suite of productivity tools (https://thesephist.com/posts/tools/) like notes, todos, shared whiteboard, contacts/CRM

    - Twitter client (https://github.com/thesephist/lucerne/)

    - Theres a few dozen more at (https://thesephist.com/projects/) :)

    Many of these end up building on top of each other, so across the few dozen projects built on top of these tools they form a nice dependency graph -> https://twitter.com/thesephist/status/1367675987354251265

  • torus

    Torus is an event-driven model-view UI framework for the web, focused on being tiny, efficient, and free of dependencies. (by thesephist)

    At this point I've made a habit out of building homebrew tools and languages. Very few of these are purely because I was dissatisfied with off-the-shelf solutions; many of these just exist because I thought it would be fun/educational/challenging to build an X for myself from scratch.

    I've made

    - A dynamic programming language, Ink (https://dotink.co), which runs in "production" (for whatever that means for side projects) for around a dozen projects written in it.

    - A compiler to compile that to JavaScript (https://github.com/thesephist/september)

    - A bunch of language tooling around that language, like syntax highlighters, editor plugins, code formatters (for example, the code formatter https://github.com/thesephist/inkfmt)

    - A small UI library (https://github.com/thesephist/torus)

    - A suite of productivity tools (https://thesephist.com/posts/tools/) like notes, todos, shared whiteboard, contacts/CRM

    - Twitter client (https://github.com/thesephist/lucerne/)

    - Theres a few dozen more at (https://thesephist.com/projects/) :)

    Many of these end up building on top of each other, so across the few dozen projects built on top of these tools they form a nice dependency graph -> https://twitter.com/thesephist/status/1367675987354251265

  • lucerne

    A Twitter reader designed for learning from the Twittersphere, built with Ink and Torus

    At this point I've made a habit out of building homebrew tools and languages. Very few of these are purely because I was dissatisfied with off-the-shelf solutions; many of these just exist because I thought it would be fun/educational/challenging to build an X for myself from scratch.

    I've made

    - A dynamic programming language, Ink (https://dotink.co), which runs in "production" (for whatever that means for side projects) for around a dozen projects written in it.

    - A compiler to compile that to JavaScript (https://github.com/thesephist/september)

    - A bunch of language tooling around that language, like syntax highlighters, editor plugins, code formatters (for example, the code formatter https://github.com/thesephist/inkfmt)

    - A small UI library (https://github.com/thesephist/torus)

    - A suite of productivity tools (https://thesephist.com/posts/tools/) like notes, todos, shared whiteboard, contacts/CRM

    - Twitter client (https://github.com/thesephist/lucerne/)

    - Theres a few dozen more at (https://thesephist.com/projects/) :)

    Many of these end up building on top of each other, so across the few dozen projects built on top of these tools they form a nice dependency graph -> https://twitter.com/thesephist/status/1367675987354251265

  • spring-testcontainer

    spring-testcontainer provides integration between the Spring (Data JPA) testing framework and Testcontainer library

    I wrote a small library https://github.com/paulbares/spring-testcontainer that provides integration between the Spring (Data JPA) testing framework and Testcontainer library to easily test my application with different containerized database instances.

  • wayland-explorer

    Easily browse and read Wayland protocols documentation

    I built a website for making it easier to read Wayland protocols documentation (which are originally published as XML): https://wayland.app/protocols/

  • pandas2numpy

    Dataframe to tensor converter for deep learning.

    I wrote pandas2numpy [0] it helps you turn a pandas dataframe into one (or two if you have categorical variables) numpy tensors ready to be pushed into a deep learning framework.

    It can deal with continuous data, categorical data, normalisation of the data, log scale and NA.

    I found it really useful to work on tabular data and, since it uses numpy, it is agnostic to the deep-learning framework used.

    [0]: https://github.com/nestordemeure/pandas2numpy

  • ideogram

    Chromosome visualization for the web

    I created Ideogram.js, a JavaScript library for chromosome visualization [1]. Ideogram supports drawing and animating genome-wide datasets, enabling a variety of genomic views [3].

    [1] https://github.com/eweitz/ideogram

    [2] https://eweitz.github.io/ideogram

  • Shynet

    Modern, privacy-friendly, and detailed web analytics that works without cookies or JS.

    I built Shynet [0], a modern, privacy-friendly, and detailed web analytics tool that works without cookies or JS.

    I also built a17t [1], an atomic web design toolkit that makes using Tailwind CSS a bit easier from the start.

    [0] https://github.com/milesmcc/shynet

    [1] https://github.com/milesmcc/a17t

  • a17t

    An atomic design toolkit for pragmatists

    I built Shynet [0], a modern, privacy-friendly, and detailed web analytics tool that works without cookies or JS.

    I also built a17t [1], an atomic web design toolkit that makes using Tailwind CSS a bit easier from the start.

    [0] https://github.com/milesmcc/shynet

    [1] https://github.com/milesmcc/a17t

  • gutenberg

    A fast static site generator in a single binary with everything built-in. https://www.getzola.org

    I've made a few things:

    - Zola (https://github.com/getzola/zola) a SSG that works like I wanted and had a template engine close to Jinja2. I was using Hugo at the time but can't stand Golang template engine (imagine my sadness recently when I realised what Helm Charts are using...)

  • tera

    A template engine for Rust based on Jinja2/Django

    - Tera (https://github.com/keats/tera): a template engine pretty close to Jinja2/Django templates - at the time it was made only Handlebars existed in Rust and it was not enough for what I needed in Zola

  • validator

    Simple validation for Rust structs (by Keats)

    - validator (https://github.com/Keats/validator): my take on Python marshmallow validations, nothing existed at the time.

    So yeah, most of my open-source is re-creating libraries I use with Python in Rust.

  • fuego

    Fuego is a command line client for the firestore database (https://firebase.google.com/docs/firestore). (by sgarciac)

    A command line client for the firestore DB, because there was none:

    https://github.com/sgarciac/fuego

  • service-engine

    Generalized service engine that auto provisions REST, GraphQL & gRPC services that support CRUD operations with full validation to tables, views and materialized views of several popular databases.

    I spent a much of 2020 developing a project that auto provisions REST, GraphQL & gRPC services that support CRUD operations (with full validation) to tables, views and materialized views of several popular databases (postgres, postgis, mysql, sqlite).

    Features include: Full CRUD, geoquery support (bbox, radius, custom wkt polygon) complex_resources (aggregate & sub queries), middleware (access the query before db execution), permissions (table/view level CRUD configs), field redaction (enable query support -- without publication), schema migrations, auto generated openapi3/swagger docs, auto generated proto file, full validation.

    GitHub https://github.com/sudowing/service-engine

    YouTube Overview https://www.youtube.com/playlist?list=PLxiODQNSQfKOVmNZ1ZPXb...

  • gplot

    Use gnuplot to plot one or more files directly from the command line.

  • c99sh

    A shebang-friendly script for "interpreting" single C99, C11, and C++ files, including rcfile support.

  • watchdog-email

    A Watchdog timer that can be set using HTTP GET requests and sends alerts via SendGrid, implemented for easy Heroku deployment.

    I built a really simple cloud watchdog using only free-tier services:

    http://www.watchdog.email/

    https://github.com/jareklupinski/watchdog-email

    planning on adding a timeout parameter soon!

  • GoJS, a JavaScript Library for HTML Diagrams

    JavaScript diagramming library for interactive flowcharts, org charts, design tools, planning tools, visual languages.

    I'm not the only developer but I made (and still make) GoJS, an interactive diagramming library for the web.

    https://gojs.net

    Most of its popularity is with large companies building their own internal tools where they need diagramming visualization capabilities (layouts, save/load, undo/redo, data binding, etc). So you won't see it too often in the wild, but under the surface it's used in every industry.

    I love it, and I love HTML Canvas, which I wish was more popular.

  • SkLite-dart

    Transpile scikit-learn models to Flutter

  • spectrust

    Spectrust - blazing fast spectrogram generator for Python in Rust.

  • rorigami

    Rorigami - Static pages made simple(and self-contained).

  • remix-rss

    RSS Reader helping me relive the days of google reader

  • graphql-code-generator-react-form

    Graphql Code Form Generator

  • rebalance-calc

    A Portfolio Rebalancing and Tax Optimization Calculator

    I used to maintain a sprawling spreadsheet to manage my retirement investments. I would use it to compute the trades I'd need to do to rebalance (so I can stay on-target with my desired asset allocation).

    I ended up making https://github.com/cjjeakle/rebalance-calc to do the same thing, but with a slicker user experience. I use it quarterly, so it definitely fits the bill for my use case, and I occasionally show the tool to friends to help explain what rebalancing is and how to do it.

  • dnswhisperer

    DNS proxy for filtering out unwanted domains

  • Nullboard

    Nullboard is a minimalist kanban board, focused on compactness and readability.

  • stat-archiver

    File attribute archiver utility

  • name-needed

    🕹 A one man effort to produce an intuitive and high performance Dwarf Fortress-esque game. Needs a name.

    I've written some pretty low-level OpenGL bindings in Rust, because the existing solutions are either too high level or over the top complexity wise.

    At the time I only had experience with the OpenGL C api and didn't want to learn a totally different Rust abstraction or mix C/C++ libraries into a pure Rust project.

    https://github.com/DomWilliams0/name-needed/tree/develop/ren...

  • exiftool-vendored.js

    Fast, cross-platform Node.js access to ExifTool

    I needed a good Node wrapper for ExifTool and wrote https://github.com/photostructure/exiftool-vendored.js

    When I saw how slow it is to fork child processes in Windows, I then realized I wanted to run ExifTool in "stay-open" mode, which meant I needed to manage 1 or more long-lived child processes that communicate via stdin/stdout, so I wrote https://github.com/photostructure/batch-cluster.js

    I also really missed scala's `lazy` operator, so I built that (and several other small, helpful functions/classes) that I documented here: https://photostructure.com/coding/uncertain-lazy-forgetful-a...

  • batch-cluster.js

    Parallelized and efficient Node.js support for batch-mode child processes

    I needed a good Node wrapper for ExifTool and wrote https://github.com/photostructure/exiftool-vendored.js

    When I saw how slow it is to fork child processes in Windows, I then realized I wanted to run ExifTool in "stay-open" mode, which meant I needed to manage 1 or more long-lived child processes that communicate via stdin/stdout, so I wrote https://github.com/photostructure/batch-cluster.js

    I also really missed scala's `lazy` operator, so I built that (and several other small, helpful functions/classes) that I documented here: https://photostructure.com/coding/uncertain-lazy-forgetful-a...

  • matrixTests

    R package for computing multiple hypothesis tests on rows/columns of a matrix or a data.frame

    I often have to perform statistical tests on genomic data. Which in practice means running the same test on every gene (row of a matrix). Running it separately on each row is often slow, specially in R. So to speed it up I started an R package "matrixTests": https://github.com/karoliskoncevicius/matrixTests which is a lot faster and deals nicely with edge case scenarios (missing values, infinities, empty matrices, etc).

    Another notable mention is maybe vim plugin "sendtowindow": https://github.com/karoliskoncevicius/vim-sendtowindow which implements an operator for sending text to another window. Handy for sending code in a REPL within vim ":terminal" buffer.

  • vim-sendtowindow

    Small vim plugin implementing a send-to-window operator.

    I often have to perform statistical tests on genomic data. Which in practice means running the same test on every gene (row of a matrix). Running it separately on each row is often slow, specially in R. So to speed it up I started an R package "matrixTests": https://github.com/karoliskoncevicius/matrixTests which is a lot faster and deals nicely with edge case scenarios (missing values, infinities, empty matrices, etc).

    Another notable mention is maybe vim plugin "sendtowindow": https://github.com/karoliskoncevicius/vim-sendtowindow which implements an operator for sending text to another window. Handy for sending code in a REPL within vim ":terminal" buffer.

  • transient

    A wrapper for QEMU allowing the creation of virtual machines with shared folder, ssh, and disk creation support. (by alschwalm)

    https://github.com/alschwalm/transient - A tool for quickly creating short-lived virtual machines for doing kernel or hypervisor testing

  • Zip Foundation

    Effortless ZIP Handling in Swift

    Wrote an implementation of the ZIP specification in Swift: https://github.com/weichsel/ZIPFoundation

  • fuse

    Multiplayer Online Standard (by tinspin)

    I made my own HTTP app. server and distributed JSON database: https://github.com/tinspin/rupy

    On top of this I have made many projects and I still use all of them today even 10 years later, some favourite:

    http://fuse.rupy.se (multiplayer system)

  • dupfiletree

    Find duplicate files and folders

    https://github.com/GuB-42/dupfiletree

    A tool to find identical files.

    Compared to other tools that do similar things, it can also find identical directories, handles archives and is designed to work with millions of files efficiently.

    It works is two steps: first make a list of files and checksums with xmd5 and analyze it with dupfiletree.

    Made for personal use, not documented, designed for performance first, stable enough for me but use at your own risk.

  • Pion WebRTC

    Pure Go implementation of the WebRTC API

    I started (but many many others contributed) to the Go implementation of WebRTC Pion WebRTC https://github.com/pion/webrtc

    Along the way I worked on a Go implemenation of DTLS that gets used on its own a bit https://github.com/pion/dtls

    In another life I wrote Therac https://github.com/sean-der/therac. A PHP debugger that was viewable from a browser. I was a remote at the time (2015) and it was a great tool to use with others.

    I also wrote fail2web https://github.com/sean-der/fail2web a web frontend to fail2ban

  • dtls

    DTLS 1.2 Server/Client implementation for Go

    I started (but many many others contributed) to the Go implementation of WebRTC Pion WebRTC https://github.com/pion/webrtc

    Along the way I worked on a Go implemenation of DTLS that gets used on its own a bit https://github.com/pion/dtls

    In another life I wrote Therac https://github.com/sean-der/therac. A PHP debugger that was viewable from a browser. I was a remote at the time (2015) and it was a great tool to use with others.

    I also wrote fail2web https://github.com/sean-der/fail2web a web frontend to fail2ban

  • therac

    A Simple PHP Pair Debugger

    I started (but many many others contributed) to the Go implementation of WebRTC Pion WebRTC https://github.com/pion/webrtc

    Along the way I worked on a Go implemenation of DTLS that gets used on its own a bit https://github.com/pion/dtls

    In another life I wrote Therac https://github.com/sean-der/therac. A PHP debugger that was viewable from a browser. I was a remote at the time (2015) and it was a great tool to use with others.

    I also wrote fail2web https://github.com/sean-der/fail2web a web frontend to fail2ban

  • fail2web

    a fail2ban GUI powered by fail2rest

    I started (but many many others contributed) to the Go implementation of WebRTC Pion WebRTC https://github.com/pion/webrtc

    Along the way I worked on a Go implemenation of DTLS that gets used on its own a bit https://github.com/pion/dtls

    In another life I wrote Therac https://github.com/sean-der/therac. A PHP debugger that was viewable from a browser. I was a remote at the time (2015) and it was a great tool to use with others.

    I also wrote fail2web https://github.com/sean-der/fail2web a web frontend to fail2ban

  • til

    ✨ Keep track of things you learn each day 💡 (by kamyar)

    Recently started working on a command line tool to easily record things I learnt.

    https://github.com/kamyar/til

  • sqs_clipboard

    Use AWS SQS as a clipboard to copy and paste across different systems and platforms

  • gofwd

    A cross-platform TCP port forwarder with Duo 2FA and Geo-IP integration

  • spotprice

    Quickly get AWS spot instance pricing

  • ipinfo

    Return IP address info including geographic location and distance when given IP address, email address, host name or URL

  • photo_id_resizer

    Resize photo ID images using face recognition technology

  • tcpscan

    A fast, simple, multi-threaded cross-platform IPv4 TCP port scanner

  • date_gap_finder

    detect date gaps in a CSV file

  • nics

    Display information about Network Interface Cards (NICs)

  • deidentify

    Deidentify people's names along with pronoun substitution

  • quautomatrics

    Command-line automation of Qualtrics™ surveys

  • timeit

    A cross-platform CLI tool used to time the duration of the given command

  • dcmp

    Compare files within two directory trees for equivalency

  • file-watcher

    Monitors a given file location for create, change, rename and delete file events

  • compinfo

    Display basic computer info

  • less-Windows

    GNU less compiled for Windows 10 & 11. Stand-alone version with no dependencies.

  • repoint

    A manager for checkouts of third-party source code dependencies.

    Repoint, a thingy for checking out and versioning your source code dependencies - for situations where you don't have a good language-specific source package manager to hand.

    https://thebreakfastpost.com/2018/05/18/repoint-a-manager-fo...

    https://github.com/cannam/repoint

    I wrote this, as you do, because I was slightly dissatisfied with all the options I could find that would work with the language and hosting combination I happened to be using. I use it for quite a number of projects now.

    It's written in Standard ML, which might tickle a few HN readers.

  • postgres

    Postgres.js - The Fastest full featured PostgreSQL client for Node.js, Deno, Bun and CloudFlare (by porsager)

  • simonw

    https://simonwillison.net/2020/Jul/10/self-updating-profile-readme/

    I have 112 mostly-maintained released project listed on https://github.com/simonw/simonw/blob/main/releases.md now - most of which are tools for loading data into SQLite database files (a surprisingly under-served use-case given how ubiquitous SQLite is) and plugins for my https://datasette.io/ project for reading data back out of SQLite again.

    I realized a few years ago that SQLite was the perfect tool for doing data analysis at the small-data scale, where small data is less that 10GB which is pretty much everything you might want to analyze - especially for personal projects.

    So I've been building tools to fill that niche!

  • datasette

    An open source multi-tool for exploring and publishing data

    I have 112 mostly-maintained released project listed on https://github.com/simonw/simonw/blob/main/releases.md now - most of which are tools for loading data into SQLite database files (a surprisingly under-served use-case given how ubiquitous SQLite is) and plugins for my https://datasette.io/ project for reading data back out of SQLite again.

    I realized a few years ago that SQLite was the perfect tool for doing data analysis at the small-data scale, where small data is less that 10GB which is pretty much everything you might want to analyze - especially for personal projects.

    So I've been building tools to fill that niche!

  • logbuch

    Simple Go logging library with support for different output channels (io.Writer) for each log level.

    I build a logging library for Go, because I couldn't find one that logs to stdout AND stderr. If you used a logging lib on GCP for example, all log output went into the same pile of junk and it was hard to find "real" errors: https://github.com/emvi/logbuch

    Then there is "null", also because I couldn't find one that got both, marshalling to JSON and be able to store null values in db: https://github.com/emvi/null

    And finally, our "flagship" open-source project Pirsch, an embedded library for web analytics: https://github.com/pirsch-analytics/pirsch

  • null

    Nullable Go types that can be marshalled/unmarshalled to/from JSON. (by emvi)

    I build a logging library for Go, because I couldn't find one that logs to stdout AND stderr. If you used a logging lib on GCP for example, all log output went into the same pile of junk and it was hard to find "real" errors: https://github.com/emvi/logbuch

    Then there is "null", also because I couldn't find one that got both, marshalling to JSON and be able to store null values in db: https://github.com/emvi/null

    And finally, our "flagship" open-source project Pirsch, an embedded library for web analytics: https://github.com/pirsch-analytics/pirsch

  • pirsch

    Pirsch is a drop-in, server-side, no-cookie, and privacy-focused analytics solution for Go.

    I build a logging library for Go, because I couldn't find one that logs to stdout AND stderr. If you used a logging lib on GCP for example, all log output went into the same pile of junk and it was hard to find "real" errors: https://github.com/emvi/logbuch

    Then there is "null", also because I couldn't find one that got both, marshalling to JSON and be able to store null values in db: https://github.com/emvi/null

    And finally, our "flagship" open-source project Pirsch, an embedded library for web analytics: https://github.com/pirsch-analytics/pirsch

  • dbmate

    :rocket: A lightweight, framework-agnostic database migration tool.

    Dbmate: https://github.com/amacneil/dbmate

    I found most database migration tools tried to be too smart (I'm not a fan of automatic migrations), were too tightly integrated with specific languages or frameworks, or didn't support basic developer workflow pleasantries such as dropping and recreating the database. Dbmate works with any language or framework, and generally tries to be useful while staying out of your way.

    I created a simple single binary migration tool that runs migrations (sql files), and keeps track of applied migrations in a table (inspired by Active Record migrations).

    Comparison against other tools here: https://github.com/amacneil/dbmate#alternatives

  • wallpaper-adhesive

    Sticks images together to create wallpapers with different images on each display.

    I made a few things for my personal use that are used often that I'm quite pleased with, in no particular order:

    1. Wallpaper adhesive (https://github.com/jacobmischka/wallpaper-adhesive), an electron app I made ages ago when electron was still relatively new that creates spanned wallpapers for multimonitor setups based on your displays' resolutions. I use it every time I change my wallpapers, every month or so.

    2. ics-merger (https://github.com/jacobmischka/ics-merger), a suite of tools including a webapp to merge separate calendar feeds together into a grouped feed, with possible subgroups. One can navigate through the subgroups, see event details, and subscribe to a merged feed, among other similar things. I made it for work, where it's used as the master departmental calendar feed.

    3. Tea whistle (https://github.com/jacobmischka/tea-whistle), my second simple microcontroller project I made for my mother for her birthday because her teapot doesn't have a whistle so she kept accidentally boiling it over. It just polls the attached thermometer and beeps when the temperature is over boiling. She uses it every day and says she hasn't boiled it over once since!

    4. inmytime.zone (https://github.com/jacobmischka/inmytime.zone), a simple webapp that allows you to create a URL that converts the time you give it into the local timezone of whoever is viewing it. It's effectively just a clone of https://everytimezone.com/ or one of the many other similar tools, but much less busy and without ads. I let the domain expire a few months ago, so it's not currently available, but I just renewed it so it should be again once the domain servers propagate.

    5. Gym notebook (https://github.com/jacobmischka/gym_notebook), a flutter app I made when flutter was still quite new to track my workouts using firebase for storage. It's quite rough around the edges, fetches data from the network way more often than necessary, and needs a few bugfixes and could use a bit of work, but it's still good enough for me to use it 4-5 times per week.

  • ics-merger

    Package, cli tool, server, and web app to merge calendars together.

    I made a few things for my personal use that are used often that I'm quite pleased with, in no particular order:

    1. Wallpaper adhesive (https://github.com/jacobmischka/wallpaper-adhesive), an electron app I made ages ago when electron was still relatively new that creates spanned wallpapers for multimonitor setups based on your displays' resolutions. I use it every time I change my wallpapers, every month or so.

    2. ics-merger (https://github.com/jacobmischka/ics-merger), a suite of tools including a webapp to merge separate calendar feeds together into a grouped feed, with possible subgroups. One can navigate through the subgroups, see event details, and subscribe to a merged feed, among other similar things. I made it for work, where it's used as the master departmental calendar feed.

    3. Tea whistle (https://github.com/jacobmischka/tea-whistle), my second simple microcontroller project I made for my mother for her birthday because her teapot doesn't have a whistle so she kept accidentally boiling it over. It just polls the attached thermometer and beeps when the temperature is over boiling. She uses it every day and says she hasn't boiled it over once since!

    4. inmytime.zone (https://github.com/jacobmischka/inmytime.zone), a simple webapp that allows you to create a URL that converts the time you give it into the local timezone of whoever is viewing it. It's effectively just a clone of https://everytimezone.com/ or one of the many other similar tools, but much less busy and without ads. I let the domain expire a few months ago, so it's not currently available, but I just renewed it so it should be again once the domain servers propagate.

    5. Gym notebook (https://github.com/jacobmischka/gym_notebook), a flutter app I made when flutter was still quite new to track my workouts using firebase for storage. It's quite rough around the edges, fetches data from the network way more often than necessary, and needs a few bugfixes and could use a bit of work, but it's still good enough for me to use it 4-5 times per week.

  • tea-whistle

    A simple microcontroller project to make an annoying sound when water is boiling

    I made a few things for my personal use that are used often that I'm quite pleased with, in no particular order:

    1. Wallpaper adhesive (https://github.com/jacobmischka/wallpaper-adhesive), an electron app I made ages ago when electron was still relatively new that creates spanned wallpapers for multimonitor setups based on your displays' resolutions. I use it every time I change my wallpapers, every month or so.

    2. ics-merger (https://github.com/jacobmischka/ics-merger), a suite of tools including a webapp to merge separate calendar feeds together into a grouped feed, with possible subgroups. One can navigate through the subgroups, see event details, and subscribe to a merged feed, among other similar things. I made it for work, where it's used as the master departmental calendar feed.

    3. Tea whistle (https://github.com/jacobmischka/tea-whistle), my second simple microcontroller project I made for my mother for her birthday because her teapot doesn't have a whistle so she kept accidentally boiling it over. It just polls the attached thermometer and beeps when the temperature is over boiling. She uses it every day and says she hasn't boiled it over once since!

    4. inmytime.zone (https://github.com/jacobmischka/inmytime.zone), a simple webapp that allows you to create a URL that converts the time you give it into the local timezone of whoever is viewing it. It's effectively just a clone of https://everytimezone.com/ or one of the many other similar tools, but much less busy and without ads. I let the domain expire a few months ago, so it's not currently available, but I just renewed it so it should be again once the domain servers propagate.

    5. Gym notebook (https://github.com/jacobmischka/gym_notebook), a flutter app I made when flutter was still quite new to track my workouts using firebase for storage. It's quite rough around the edges, fetches data from the network way more often than necessary, and needs a few bugfixes and could use a bit of work, but it's still good enough for me to use it 4-5 times per week.

  • inmytime.zone

    Be explicit about what time you're referring to with a quick link.

    I made a few things for my personal use that are used often that I'm quite pleased with, in no particular order:

    1. Wallpaper adhesive (https://github.com/jacobmischka/wallpaper-adhesive), an electron app I made ages ago when electron was still relatively new that creates spanned wallpapers for multimonitor setups based on your displays' resolutions. I use it every time I change my wallpapers, every month or so.

    2. ics-merger (https://github.com/jacobmischka/ics-merger), a suite of tools including a webapp to merge separate calendar feeds together into a grouped feed, with possible subgroups. One can navigate through the subgroups, see event details, and subscribe to a merged feed, among other similar things. I made it for work, where it's used as the master departmental calendar feed.

    3. Tea whistle (https://github.com/jacobmischka/tea-whistle), my second simple microcontroller project I made for my mother for her birthday because her teapot doesn't have a whistle so she kept accidentally boiling it over. It just polls the attached thermometer and beeps when the temperature is over boiling. She uses it every day and says she hasn't boiled it over once since!

    4. inmytime.zone (https://github.com/jacobmischka/inmytime.zone), a simple webapp that allows you to create a URL that converts the time you give it into the local timezone of whoever is viewing it. It's effectively just a clone of https://everytimezone.com/ or one of the many other similar tools, but much less busy and without ads. I let the domain expire a few months ago, so it's not currently available, but I just renewed it so it should be again once the domain servers propagate.

    5. Gym notebook (https://github.com/jacobmischka/gym_notebook), a flutter app I made when flutter was still quite new to track my workouts using firebase for storage. It's quite rough around the edges, fetches data from the network way more often than necessary, and needs a few bugfixes and could use a bit of work, but it's still good enough for me to use it 4-5 times per week.

  • gym_notebook

    Simple app to track your workouts in the gym

    I made a few things for my personal use that are used often that I'm quite pleased with, in no particular order:

    1. Wallpaper adhesive (https://github.com/jacobmischka/wallpaper-adhesive), an electron app I made ages ago when electron was still relatively new that creates spanned wallpapers for multimonitor setups based on your displays' resolutions. I use it every time I change my wallpapers, every month or so.

    2. ics-merger (https://github.com/jacobmischka/ics-merger), a suite of tools including a webapp to merge separate calendar feeds together into a grouped feed, with possible subgroups. One can navigate through the subgroups, see event details, and subscribe to a merged feed, among other similar things. I made it for work, where it's used as the master departmental calendar feed.

    3. Tea whistle (https://github.com/jacobmischka/tea-whistle), my second simple microcontroller project I made for my mother for her birthday because her teapot doesn't have a whistle so she kept accidentally boiling it over. It just polls the attached thermometer and beeps when the temperature is over boiling. She uses it every day and says she hasn't boiled it over once since!

    4. inmytime.zone (https://github.com/jacobmischka/inmytime.zone), a simple webapp that allows you to create a URL that converts the time you give it into the local timezone of whoever is viewing it. It's effectively just a clone of https://everytimezone.com/ or one of the many other similar tools, but much less busy and without ads. I let the domain expire a few months ago, so it's not currently available, but I just renewed it so it should be again once the domain servers propagate.

    5. Gym notebook (https://github.com/jacobmischka/gym_notebook), a flutter app I made when flutter was still quite new to track my workouts using firebase for storage. It's quite rough around the edges, fetches data from the network way more often than necessary, and needs a few bugfixes and could use a bit of work, but it's still good enough for me to use it 4-5 times per week.

  • git-get

    A better way to clone, organize and manage multiple git repositories

  • py-hprof

    Analyse and explore .hprof heap dumps.

    https://github.com/SonyMobile/py-hprof is a Python library that exposes a Java heap dump's objects as Python objects, allowing convenient interactive and/or scripted analysis.

    IIRC, I started out with Android Studio's dump viewer, but I wanted to check a "nested" attribute (.x.y.z) for all instances of a class -- and there were several thousand instances. I quickly tired of expanding and scrolling the nested attribute lists.

    I think I also tried MAT's OQL, but still missed the ability to add whatever logic I needed on-the-fly.

    My "Show HN" post got no traction, and I don't think very many people have used it, but I'm still proud of it.

  • expressPython

    🚄🐍 expressPython - A small Python editor for learning and competitive programming.

    https://github.com/JaDogg/expressPython - goal was to learn some C++ and Python, I wanted to work on text input and wanted a UI.

    https://github.com/JaDogg/sbx - flashcards console app (not sure if there are similar applications)

    https://github.com/JaDogg/pydoro - pomodoro timer console app (I couldn't find such application)

  • sbx

    📚📦 StudyBox (SBX) - Terminal Flashcards & Library (by JaDogg)

    https://github.com/JaDogg/expressPython - goal was to learn some C++ and Python, I wanted to work on text input and wanted a UI.

    https://github.com/JaDogg/sbx - flashcards console app (not sure if there are similar applications)

    https://github.com/JaDogg/pydoro - pomodoro timer console app (I couldn't find such application)

  • pydoro

    🍅 pydoro - Terminal Pomodoro Timer

    https://github.com/JaDogg/expressPython - goal was to learn some C++ and Python, I wanted to work on text input and wanted a UI.

    https://github.com/JaDogg/sbx - flashcards console app (not sure if there are similar applications)

    https://github.com/JaDogg/pydoro - pomodoro timer console app (I couldn't find such application)

  • noa

    Experimental voxel game engine.

    Would a browser-based voxel game engine count?

    https://github.com/andyhall/noa

    The reason for not using an existing library is just that there weren't any usable alternatives at the time!

  • Flyway

    Flyway by Redgate • Database Migrations Made Easy.

    Curious about the lack of comparison to https://flywaydb.org/ , which I've seen a ton of support for in the past and people seem to really enjoy

  • bbmp_interop

    Python extension module generator for pybind11

    I created a CMake package that autogenerates Python bindings for annotated C++ functions.

    If you have a C++ static lib in CMake, it takes two more lines of CMake to generate a Python extension module, and a single line of annotation per C++ function that you want to export.

    https://github.com/bebump/bbmp_interop

    I use it mostly for testing numerical C++ code using Numpy and Scipy.

  • userscript-youtube-playlist-organizer

    Drag and drop interface to organize playlists on YouTube

    A silly userscript [1] that uses jQuery selectors to interact with YouTube's DOM to help me move videos around my playlists. Sadly it breaks every few months whenever YouTube updates their DOM. AFIK this is the only way to "programmatically" move videos out of my Watch Later list since they removed the functionality from the API

    [1] https://github.com/Trinovantes/userscript-youtube-playlist-o...

  • A silly userscript [1] that uses jQuery selectors to interact with YouTube's DOM to help me move videos around my playlists. Sadly it breaks every few months whenever YouTube updates their DOM. AFIK this is the only way to "programmatically" move videos out of my Watch Later list since they removed the functionality from the API

    [1] https://github.com/Trinovantes/userscript-youtube-playlist-o...

  • jsrlib

    A tool for querying and downloading JSR specifications

    A CLI tool for downloading the Java Specification Request (JSR) of a given Java package:

    https://github.com/silb/jsrlib

    I found downloading the JSRs manually too cumbersome.

    It is acompanied by an Eclipse plugin that i never got around to publish on GitHub. It lets me right click a Java type in Eclipse and open its JSR PDF file.

  • sqldb-logger

    A logger for Go SQL database driver without modifying existing *sql.DB stdlib usage.

    sqldb-logger: https://github.com/simukti/sqldb-logger

    It's a thin layer that wrap Go (Golang) SQL database driver, it does not change sql.DB usage in any existing Go app.

    It is because I prefer to use vanilla Go sql.DB in my web service and I could not find any SQL logger for Go SQL database standard library that can use structured JSON logging.

  • Showkase

    🔦 Showkase is an annotation-processor based Android library that helps you organize, discover, search and visualize Jetpack Compose UI elements

    I built an open source library for Android called Showkase [1]. Showkase autogenerates a UI component browser for your Jetpack Compose components on Android and allows you to search, visualize and organize your UI elements. Think Storybook but for Android development.

    [1] https://github.com/airbnb/Showkase

  • night-patrol

    Discontinued Interactive Test Tunner for Nightwatch. Run individual tests, re-run failures, switch environments, autocompletion, and more.

    Night Patrol - https://github.com/jahed/night-patrol

    I got tired of passing flags to Nightwatch to filter tests and looking through results to re-run failures. So I made an interactive CLI for all of that. I stopped using this once I moved to Cypress but even with Cypress' web interface, I feel something like Night Patrol would be a lot more productive.

    Firebase Rules - https://github.com/jahed/firebase-rules

    I didn't like how Firebase's RTDB rules were expressions in JSON strings so I built a library to build them using a lisp-like syntax to compose and re-use rules. Firebase also has its own rules language (Bolt) but I'd rather not learn and maintain yet another tool-specific language.

    Promises - https://github.com/jahed/promises

    This isn't a complete solution yet, I didn't get time to refine the API. But I really prefer using Promises as result types (a.k.a. either, left/right) rather than using async/await/try/catch. It's so much more powerful to write code in a way that doesn't care if your functions are async or sync. Again, kind of like a lisp, there's also power in not being tied to a language's keywords and being able to provide a more tailored vocabulary.

  • firebase-rules

    A type-safe Firebase Real-time Database Security Rules builder. Compose and re-use common rules. Reference constants used throughout the project. Catch any errors and typos. Auto-completion.

    Night Patrol - https://github.com/jahed/night-patrol

    I got tired of passing flags to Nightwatch to filter tests and looking through results to re-run failures. So I made an interactive CLI for all of that. I stopped using this once I moved to Cypress but even with Cypress' web interface, I feel something like Night Patrol would be a lot more productive.

    Firebase Rules - https://github.com/jahed/firebase-rules

    I didn't like how Firebase's RTDB rules were expressions in JSON strings so I built a library to build them using a lisp-like syntax to compose and re-use rules. Firebase also has its own rules language (Bolt) but I'd rather not learn and maintain yet another tool-specific language.

    Promises - https://github.com/jahed/promises

    This isn't a complete solution yet, I didn't get time to refine the API. But I really prefer using Promises as result types (a.k.a. either, left/right) rather than using async/await/try/catch. It's so much more powerful to write code in a way that doesn't care if your functions are async or sync. Again, kind of like a lisp, there's also power in not being tied to a language's keywords and being able to provide a more tailored vocabulary.

  • promises

    Composable Functions for Promises (by jahed)

    Night Patrol - https://github.com/jahed/night-patrol

    I got tired of passing flags to Nightwatch to filter tests and looking through results to re-run failures. So I made an interactive CLI for all of that. I stopped using this once I moved to Cypress but even with Cypress' web interface, I feel something like Night Patrol would be a lot more productive.

    Firebase Rules - https://github.com/jahed/firebase-rules

    I didn't like how Firebase's RTDB rules were expressions in JSON strings so I built a library to build them using a lisp-like syntax to compose and re-use rules. Firebase also has its own rules language (Bolt) but I'd rather not learn and maintain yet another tool-specific language.

    Promises - https://github.com/jahed/promises

    This isn't a complete solution yet, I didn't get time to refine the API. But I really prefer using Promises as result types (a.k.a. either, left/right) rather than using async/await/try/catch. It's so much more powerful to write code in a way that doesn't care if your functions are async or sync. Again, kind of like a lisp, there's also power in not being tied to a language's keywords and being able to provide a more tailored vocabulary.

  • Carlo

    Monte Carlo Tree Search Library

    I'm building a turn-based strategy game for iOS (in Swift).

    Just extracted the Monte Carlo Search Tree logic into a package called Carlo [1]!

    [1] https://github.com/maxhumber/Carlo

  • gazpacho

    🥫 The simple, fast, and modern web scraping library

    I've been working on gazpacho [1] for last two years.

    It's a general purpose web scraping library for Python that replaces BeautifulSoup + requests for most projects.

    Just surpassed ~2K downloads every week!

    [1] https://github.com/maxhumber/gazpacho

  • job-board

    Golang Cafe - Go job board with no recruiters and clear salary ranges

    I struggled to find a job board that was not filled with shabby recruitment agencies, that had clear high quality job postings and clear salary ranges in each job opening. I therefore created the job board and it now includes a directory for Go developers, Companies using Go and a salary trends section. It's all been written in pure Go, basic HTML/JS/CSS and PostgreSQL and it's open source :)

    - Golang Cafe

    - https://golang.cafe

    - https://github.com/golang-cafe/golang.cafe

  • vaku

    vaku extends the vault api & cli

    Vaku - A CLI for Vault that lets you operate on folders instead of just paths. Search, copy, move, read vault folders easily.

    https://github.com/lingrino/vaku

  • topshell

    TopShell - a purely functional, reactive scripting language

    I created TopShell - a purely functional, reactive scripting language for fetch/process/visualize style tasks: https://github.com/topshell-language/topshell

  • pdfvuer

    A PDF viewer for Vue using Mozilla's PDF.js that supports both Vue2 and Vue3

    PDFVUER - https://github.com/arkokoley/pdfvuer

    I also built a time tracker library that tracks how much time was spent on the current open tab. It also detects when the user moves away from the page or comes back.

    Actively - https://github.com/arkokoley/actively

    For a GIS project, I needed to extract county level data from NASA's MODIS dataset. Wrote a bash utility to do that:

  • actively

    Actively track user engagement and know when they move away from your page.

    PDFVUER - https://github.com/arkokoley/pdfvuer

    I also built a time tracker library that tracks how much time was spent on the current open tab. It also detects when the user moves away from the page or comes back.

    Actively - https://github.com/arkokoley/actively

    For a GIS project, I needed to extract county level data from NASA's MODIS dataset. Wrote a bash utility to do that:

  • modis_county_cropper

    Download and extract USA County specific data from NASA MODIS Remote Sensing Dataset

  • latex-homework-boilerplate

    A simple LaTeX paper boilerplate for academic homework.

  • njk

    Discontinued Render nunjucks templates with markdown and front-matter

    njk - https://github.com/mohitsinghs/njk

    Annoyed by amount of tooling required to render markdown, nunjucks and front-matter, I wrote this cli and used for all of my static sites. Since then, I’ve mostly migrated my sites to nextjs.

  • dndice

    Code to interpret roll expressions in D&D syntax

    I have a python library that performs dice rolls: https://github.com/the-nick-of-time/dndice

    Basically just made for fun.

  • AutoMunge

    Tabular feature encoding pipelines for machine learning with options for string parsing, missing data infill, and stochastic perturbations.

    I've created the Automunge python library to automate tabular data cleaning for ML, including preprocessing transformations, missing data infill, etc. It's very useful!

    https://github.com/Automunge/AutoMunge

  • knut

    knut is an efficient plain text accounting tool with support for multiple currencies and valuation.

  • iOSLocalizationEditor

    Simple macOS editor app to help you manage iOS and macOS app localizations by allowing you to edit all the translations side by side

  • MobDebug

    Remote debugger for Lua.

  • serpent

    Lua serializer and pretty printer.

  • wxlua

    wxlua: Lua bindings for wxWidgets cross-platform GUI toolkit; supports Lua 5.1, 5.2, 5.3, 5.4, LuaJIT and wxWidgets 3.x

  • postgresql-replicant

    A streaming PostgreSQL logical replication client library for Haskell

    https://github.com/agentultra/postgresql-replicant — stream delta changes from a PostgreSQL database. Not a novel concept or implementation but this library doesn’t exist in Haskell and that’s a shame because Haskell has lots of great libraries for working with streams.

    https://github.com/agent ultra/DataVersion — type-directed data migration library. I needed to migrate some data in a document database that had no schema with years of data in it to a format that had a schema. I leveraged some other stuff to achieve it but this library was a key piece to being confident that the transformations were correct and complete. Migrated the database and backfill it with a Lambda function using this library.

    Those are just the most recent ones.

  • markdown-blog

    Simple PHP blog that renders markdown posts. No installation or database needed.

    Working on building userTrack[0] I always encountered the need of various auxiliary tools. I had to implement a custom deploy system to build different variants of the product, to create a licensing server (to create and verify license codes and to allow downloads for valid license owners), a blogging platform[1], some JS snippets [2], etc.

    Most of the times, the libraries/tools that you build yourself are either to connect and interact with a specific external service OR to have a simpler (only the features you need) or cheaper version of an existing product/platform.

    [0]: https://www.usertrack.net/

    [1]: https://github.com/Cristy94/markdown-blog

    [2]: https://github.com/Cristy94/dynamic-listener

  • jssm

    Fast, easy Javascript finite state machines with visualizations; enjoy a one liner FSM instead of pages. MIT; Typescripted; 100% test coverage. Implements the FSL language.

  • simplecd

    Simple Continuous Delivery system running in your bash shell

    I find most Continuous Delivery tools/services overkill most of the time, so I wrote (and heavily use, even in enterprise setups) my own tool „SimpleCD“, which is just a single Bash script, but is extremely powerful and flexible: https://github.com/manuelkiessling/simplecd

  • Postcodes

    Find the distance between two North American post codes

    I needed a simple command line tool that could tell me how far apart two post codes in North America are, so I built one. You could in theory load it as a library too.

    https://github.com/jedberg/Postcodes

  • arping

    ARP Ping

    A curious question. Aside from my day job, this seems like a thing I do all day. :-)

    I'm not sure what the motivation for your question is. Do you feel like everything's been invented and built already, and it's just a matter of (at most) plugging the things together?

    I find myself constantly thinking "this should exist". I don't have time to make them all exist.

    https://github.com/ThomasHabets/arping

    Nothing like it existed at the time, and I wanted to send ARP requests as easily as sending ICMP ping.

    https://github.com/ThomasHabets/simple-tpm-pk11

    I wanted to use a TPM chip for SSH client keys, and couldn't find anything like it.

    https://github.com/ThomasHabets/tlssh

    I wanted to explore what it would be like to have SSH, but with identities not based on providing username, but an x509 cert. (and TPM chip protecting the key)

  • simple-tpm-pk11

    Simple PKCS11 provider for TPM chips

    A curious question. Aside from my day job, this seems like a thing I do all day. :-)

    I'm not sure what the motivation for your question is. Do you feel like everything's been invented and built already, and it's just a matter of (at most) plugging the things together?

    I find myself constantly thinking "this should exist". I don't have time to make them all exist.

    https://github.com/ThomasHabets/arping

    Nothing like it existed at the time, and I wanted to send ARP requests as easily as sending ICMP ping.

    https://github.com/ThomasHabets/simple-tpm-pk11

    I wanted to use a TPM chip for SSH client keys, and couldn't find anything like it.

    https://github.com/ThomasHabets/tlssh

    I wanted to explore what it would be like to have SSH, but with identities not based on providing username, but an x509 cert. (and TPM chip protecting the key)

  • tlssh

    TLS Shell

    A curious question. Aside from my day job, this seems like a thing I do all day. :-)

    I'm not sure what the motivation for your question is. Do you feel like everything's been invented and built already, and it's just a matter of (at most) plugging the things together?

    I find myself constantly thinking "this should exist". I don't have time to make them all exist.

    https://github.com/ThomasHabets/arping

    Nothing like it existed at the time, and I wanted to send ARP requests as easily as sending ICMP ping.

    https://github.com/ThomasHabets/simple-tpm-pk11

    I wanted to use a TPM chip for SSH client keys, and couldn't find anything like it.

    https://github.com/ThomasHabets/tlssh

    I wanted to explore what it would be like to have SSH, but with identities not based on providing username, but an x509 cert. (and TPM chip protecting the key)

  • cmdg

    Command line Gmail client

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • rslurp

    slurp down a whole HTTP directory, with parallel goodness

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • sim

    Multi Party Authorization version of sudo/doas (by ThomasHabets)

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • monotonic_clock

    Portable C library for getting monotonic time

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • gtping

    GTP Ping

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • ind

    Indent output from subprocess

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • tlscheck

    Quickly check TLS certificates of frontends and backends

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • huproxy

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • keymaster

    Short term certificate based identity system (ssh/x509 ca + openidc) (by Cloud-Foundations)

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • tcpauth

    Also became a fun learning experience about terminals.

    https://github.com/ThomasHabets/cmdg

    I wanted to use GMail from a fast cli that used the native gmail API.

    https://github.com/ThomasHabets/rslurp

    I wanted to download concurrently and according to patterns. Ok, so honestly this one probably exists somewhere in a form that I would like, but I couldn't find it.

    https://github.com/ThomasHabets/sim

    I wanted multi-party authorization for sudo, and couldn't find one.

    https://github.com/ThomasHabets/monotonic_clock

    People kept using gettimeofday, so this is part of my compaign against it. (see https://blog.habets.se/2010/09/gettimeofday-should-never-be-...)

    https://github.com/ThomasHabets/gtping

    I worked in mobile core networks, and wanted a "ping" that used the GTP protocol since that won't be firewalled.

    https://github.com/ThomasHabets/ind

    I wanted my bash scripts to have automatic indentation, while not sacrificing buffering latency and such.

    https://github.com/ThomasHabets/tlscheck

    I wanted a simple tool to audit my TLS certificates for expiry.

    https://github.com/google/huproxy

    I was travelling to China on vacation and wanted a VPN out that would be unlikely to be blocked by the great firewall. Ok, so there are many VPN-like tools for getting through the GFW. Maybe it was just an excuse for me to write it. Honestly ssh -D would have likely worked just fine. It's being used by the keymaster project now though, so maybe it did something right: https://github.com/Cloud-Foundations/keymaster/blob/master/d...

    https://github.com/google/tcpauth

    I wanted to lock down SSH to anyone who doesn't have a secret key (and portknocking is usually ridiculous). Why not use TCP MD5 for it? https://github.com/google/tcpauth

  • spark-daria

    Essential Spark extensions and helper methods ✨😲

    I built daria (https://github.com/MrPowers/spark-daria) to make it easier to write Spark and spark-fast-tests (https://github.com/MrPowers/spark-fast-tests) to provide a good testing workflow.

    quinn (https://github.com/MrPowers/quinn) and chispa (https://github.com/MrPowers/chispa) are the PySpark equivalents.

    Built bebe (https://github.com/MrPowers/bebe) to expose the Spark Catalyst expressions that aren't exposed to the Scala / Python APIs.

    Also build spark-sbt.g8 to create a Spark project with a single command: https://github.com/MrPowers/spark-sbt.g8

  • spark-fast-tests

    Apache Spark testing helpers (dependency free & works with Scalatest, uTest, and MUnit)

    I built daria (https://github.com/MrPowers/spark-daria) to make it easier to write Spark and spark-fast-tests (https://github.com/MrPowers/spark-fast-tests) to provide a good testing workflow.

    quinn (https://github.com/MrPowers/quinn) and chispa (https://github.com/MrPowers/chispa) are the PySpark equivalents.

    Built bebe (https://github.com/MrPowers/bebe) to expose the Spark Catalyst expressions that aren't exposed to the Scala / Python APIs.

    Also build spark-sbt.g8 to create a Spark project with a single command: https://github.com/MrPowers/spark-sbt.g8

  • quinn

    pyspark methods to enhance developer productivity 📣 👯 🎉 (by MrPowers)

    I built daria (https://github.com/MrPowers/spark-daria) to make it easier to write Spark and spark-fast-tests (https://github.com/MrPowers/spark-fast-tests) to provide a good testing workflow.

    quinn (https://github.com/MrPowers/quinn) and chispa (https://github.com/MrPowers/chispa) are the PySpark equivalents.

    Built bebe (https://github.com/MrPowers/bebe) to expose the Spark Catalyst expressions that aren't exposed to the Scala / Python APIs.

    Also build spark-sbt.g8 to create a Spark project with a single command: https://github.com/MrPowers/spark-sbt.g8

  • chispa

    PySpark test helper methods with beautiful error messages

    I built daria (https://github.com/MrPowers/spark-daria) to make it easier to write Spark and spark-fast-tests (https://github.com/MrPowers/spark-fast-tests) to provide a good testing workflow.

    quinn (https://github.com/MrPowers/quinn) and chispa (https://github.com/MrPowers/chispa) are the PySpark equivalents.

    Built bebe (https://github.com/MrPowers/bebe) to expose the Spark Catalyst expressions that aren't exposed to the Scala / Python APIs.

    Also build spark-sbt.g8 to create a Spark project with a single command: https://github.com/MrPowers/spark-sbt.g8

  • bebe

    Filling in the Spark function gaps across APIs

    I built daria (https://github.com/MrPowers/spark-daria) to make it easier to write Spark and spark-fast-tests (https://github.com/MrPowers/spark-fast-tests) to provide a good testing workflow.

    quinn (https://github.com/MrPowers/quinn) and chispa (https://github.com/MrPowers/chispa) are the PySpark equivalents.

    Built bebe (https://github.com/MrPowers/bebe) to expose the Spark Catalyst expressions that aren't exposed to the Scala / Python APIs.

    Also build spark-sbt.g8 to create a Spark project with a single command: https://github.com/MrPowers/spark-sbt.g8

  • spark-sbt.g8

    A giter8 template for Spark SBT projects

    I built daria (https://github.com/MrPowers/spark-daria) to make it easier to write Spark and spark-fast-tests (https://github.com/MrPowers/spark-fast-tests) to provide a good testing workflow.

    quinn (https://github.com/MrPowers/quinn) and chispa (https://github.com/MrPowers/chispa) are the PySpark equivalents.

    Built bebe (https://github.com/MrPowers/bebe) to expose the Spark Catalyst expressions that aren't exposed to the Scala / Python APIs.

    Also build spark-sbt.g8 to create a Spark project with a single command: https://github.com/MrPowers/spark-sbt.g8

  • set-state-is-great

    A global store, and good ol' fashion setState

  • mysql-to-google-bigquery

    MySQL to Google BigQuery Sync Tool

    Dumping mysql to bigquery (gcp). The current tool doesn't handle large files. It was accepted after a year.

    https://github.com/james-ransom/mysql-to-google-bigquery

  • ruby_nano_rpc

    RPC wrapper for Nano digital currency nodes written in Ruby

  • continuum

    A clean and simple data loading library for Continual Learning (by Continvvm)

    I've built with a collegue Continuum: https://github.com/Continvvm/continuum

    It's a library giving utilities to handle data in Continual Learning, a subfield of Machine/Deep-learning where data comes incrementally.

    There are others actors in the field that came atfer us and do more ads about their slightly similar library, but we manage to produce something useful to many PhD students, so that's a win for me.

  • LinearTimer

    A custom view for circular progress animation on Android.

    Years back I made a circular progress bar library for Android. Nothing special but it was something that was missing at that time. Surprisingly, 1000+ downloads monthly (according to JitPack) and I still get occasional issues reported on GitHub.

    The lib - https://github.com/krtkush/LinearTimer

  • imgy

    Discontinued Image hosting website

  • TDSToPDB

    Tool to generate a PDB from TDS information embedded within an executable

    My company does most of our development in Delphi, but unfortunately that means that crash dumps are very difficult or impossible to utilize with the embedded Borland/Embarcadero TDS debugging information. I wrote a utility that extracts the TDS info from a Delphi executable and uses an LLVM debug info library to write out a PDB and also modify the executable to point to that PDB.

    The source can be found here: https://github.com/powerworld/TDSToPDB

  • react-leaflet-canvas-overlay

    React Leaflet component similar to ImageOverlay and VideoOverlay

    1. React Leaflet canvas overlay. Leaflet is a popular mapping library and React Leaflet brings the declarative nature of React to the Leaflet api. I needed to display some 3D rendered shadows on a map and needed to overlay a canvas at specific lat/lng bounds so I made a React component to plug into React Leaflet.

    2. I needed a solution for recording Twilio live video and hosting it myself in S3. I made a docker container that launches Chrome headless, points it at any website (including a Twilio video conference) and uses and Chrome extension to record the screen and stream it to S3. In theory it could be used to record any website on the internet.

    [1] https://github.com/ted-piotrowski/react-leaflet-canvas-overl...

  • 1. React Leaflet canvas overlay. Leaflet is a popular mapping library and React Leaflet brings the declarative nature of React to the Leaflet api. I needed to display some 3D rendered shadows on a map and needed to overlay a canvas at specific lat/lng bounds so I made a React component to plug into React Leaflet.

    2. I needed a solution for recording Twilio live video and hosting it myself in S3. I made a docker container that launches Chrome headless, points it at any website (including a Twilio video conference) and uses and Chrome extension to record the screen and stream it to S3. In theory it could be used to record any website on the internet.

    [1] https://github.com/ted-piotrowski/react-leaflet-canvas-overl...

  • puppeteer-camera

    Dockerized API for recording websites

  • dud

    A lightweight CLI tool for versioning data alongside source code and building data pipelines.

    I built Dud[1] because I wanted a simpler, faster DVC[2]. If DVC is Django, I set out to build Flask. In using Dud myself, I think I've succeeded thus far. But the only way to know for sure is to publicize the project and get it in other people's hands. Here's to that.

    [1]: https://github.com/kevin-hanselman/dud

    [2]: https://dvc.org/

  • dvc

    🦉 ML Experiments Management with Git

    I built Dud[1] because I wanted a simpler, faster DVC[2]. If DVC is Django, I set out to build Flask. In using Dud myself, I think I've succeeded thus far. But the only way to know for sure is to publicize the project and get it in other people's hands. Here's to that.

    [1]: https://github.com/kevin-hanselman/dud

    [2]: https://dvc.org/

  • catj

    Displays JSON files in a flat format.

    - https://github.com/soheilpro/zsh-vi-search - Adds support for searching the current line (in normal vi - https://github.com/soheilpro/catj - A better way to display JSON files

  • mann

    With mann you will never forget command line options again.

  • pgcmd

    Non-interactive PostgreSQL query tool.

  • sqlmon

    Discontinued Collects events from SQL Server and saves them to Elasticsearch for further analysis.

    - https://github.com/soheilpro/sqlmon - Collect events from SQL Server and save them to Elasticsearch

  • sqltop

    Discontinued Find the most resource consuming SQL Server queries.

  • mon

    Discontinued Painless performance monitoring for Windows.

  • Ledger

    Interactive CLI double-entry accounting application. (by soheilpro)

  • validryad

    Tinkering with a different Ruby data validation tool, built to lean on dry-rb.

  • battstat

    🔋 CLI battery status indicator for macOS, Linux, and OpenBSD ⚡

  • untweet

    Destroy tweets and likes.

  • linkview

    Terminal HTML link menu.

  • pin

    Simple command line pinboard client. (by imwally)

  • s3chunkuploader

    A multi threaded S3 file chunk uploader which bypasses local file system and pipes the file directly to S3

  • metatron

    A Python 3.x HTML Meta tag parser, with emphasis on OpenGraph and complex meta tag schemes

  • strudelpy

    Easy going emails with Python for easy going people, who email

  • QR-Code-generator

    High-quality QR Code generator library in Java, TypeScript/JavaScript, Python, Rust, C++, C.

    In 2016 I was unsatisfied with the QR Code generator libraries available in the wild, especially for C, C++, and JavaScript. Hence I wrote my own: https://www.nayuki.io/page/qr-code-generator-library ; https://github.com/nayuki/QR-Code-generator

    I also made some visualizations into the internals of QR Codes: https://www.nayuki.io/page/creating-a-qr-code-step-by-step ; https://www.nayuki.io/page/optimal-text-segmentation-for-qr-...

  • kondo

    Cleans dependencies and build artifacts from your projects.

    Last year I made Kondo, to clean up all the dependencies files from software projects you're not actively working on (eg node_modules). Awesome if you about to Zip up a bunch of old projects for archiving, or just want to reclaim disk space without deleting anything of value.

    It was an experiment in Rust, and I even made a little GUI too!

    https://github.com/tbillington/kondo

  • ddt

    Golang Dynamic Decision Tree (by sgrodriguez)

    DDT allows building custom decision trees based in a set of defined rules, programmatically or from json.

    When making a decision, it allows adding a pre-processing stage to the input before comparing it with the following possible branches of the tree.

    https://github.com/sgrodriguez/ddt

  • liblifthttp

    Safe and easy to use C++17 HTTP client library.

    https://github.com/jbaldwin/liblifthttp

    I created a C++17 HTTP client which is backed by curl and libuv (linux only! sorry windows). I think a lot of people have done this or something similar but almost all of the ones I looked at either exposed the curl api directly in some fashion or had extremely weak async support. So my main motivation was extremely easy asynchronous queries for high throughput with a very modern C++ API that has as good as you can get memory safety, or at least as good as modern C++ will let you get. No raw curl calls or api exposed at all. I used to find it extremely difficult to make C++ HTTP calls, now its a real breeze.

    My next project is a bit more ambitious: https://github.com/jbaldwin/libcoro/ -- I'd like to make a C++20 HTTP client from the ground up with first class coroutine support, and I'll be using lift as a benchmark to beat performance wise.

  • libcoro

    C++20 coroutine library

    https://github.com/jbaldwin/liblifthttp

    I created a C++17 HTTP client which is backed by curl and libuv (linux only! sorry windows). I think a lot of people have done this or something similar but almost all of the ones I looked at either exposed the curl api directly in some fashion or had extremely weak async support. So my main motivation was extremely easy asynchronous queries for high throughput with a very modern C++ API that has as good as you can get memory safety, or at least as good as modern C++ will let you get. No raw curl calls or api exposed at all. I used to find it extremely difficult to make C++ HTTP calls, now its a real breeze.

    My next project is a bit more ambitious: https://github.com/jbaldwin/libcoro/ -- I'd like to make a C++20 HTTP client from the ground up with first class coroutine support, and I'll be using lift as a benchmark to beat performance wise.

  • container-per-ip

    Some thing so you can spin up a container per client ip

    I built a tool https://github.com/simmsb/container-per-ip that manages spinning up containers such that each source IP gets it's own container, and automates shutting down containers after a period of inactivity.

    It's main purpose is for running challenges of jeopardy style ctfs.

  • cli

    Lock-free interface and function mocks for Go (by moqueries)

    I've been working on a lock-free mock library for Go called Moqueries (https://github.com/myshkin5/moqueries). Having a lock inside of your mock can cover up subtle bugs. The tool mocks interfaces which is fairly common but it also will mock a function type.

  • protofact

    At my last company we had a gRPC pipeline using Uber’s prototool that generated code but it was still a pain to get that code into projects so I wrote https://github.com/gospotcheck/protofact to package up the code into Gems and Jars, etc, for installation and publish them to a repository like Artifactory or any other. There wasn’t an existing solution I could find.

    Also convinced the company to make it the first and only OSS project there.

  • rules_jooq_flyway_codegen

    Bazel rule for generating jOOQ classes from a set of Flyway migrations as part of a Bazel build

    Definitely not as cool as some of the other stuff here, but I'm quite proud of this Bazel ruleset I put together for using the jOOQ database library from Bazel: https://github.com/richardstephens/rules_jooq_flyway_codegen

  • check-all-the-things

    check all of the things!

    Myself and someone else built check-all-the-things, a tool that makes it easier to run various static analysis tools and other checks on a directory.

    https://github.com/collab-qa/check-all-the-things

  • humanlog

    Logs for humans to read.

  • datagen

    Generate datastructures for your types. (by aybabtme)

  • go-concise-encoding

    Golang implementation of Concise Binary and Text Encoding

    I'm building a general-purpose data format for the modern age. The old ones are too bulky, too insecure, and too limiting.

    * Secure: As a tightly specified format, Concise Encoding doesn't suffer from the security problems that the more loosely defined formats do. Everything is done one way only, leaving less of an attack surface.

    * Efficient: As a twin binary/text format, Concise Encoding retains the text-based ease-of-use of the old text formats, but is stored and transmitted in the simpler and smaller binary form, making it more secure, easier on the energy bill, and easier on the planet.

    * Versatile: Supports all common types natively. 90% of users won't need any form of customization.

    * Future-proof: As a versioned format, Concise Encoding can respond to a changing world without degenerating into deprecations and awkward encodings or painting itself into a corner.

    * Plug and play: No extra compilation steps or special description formats or crazy boilerplate.

    https://concise-encoding.org

    Reference implementation (golang): https://github.com/kstenerud/go-concise-encoding

  • secure-electron-template

    The best way to build Electron apps with security in mind.

  • wfc

    Wave Function Collapse library in C, plus a command-line tool

    I recently wrote a single-file library in C for Wave Function Collapse: https://github.com/krychu/wfc

    It’s a procgen algorithm that takes small image as input and generates a larger one with similar local features. I hope to add tiled method to the library some time.

  • leapp

    Leapp is the DevTool to access your cloud

    Last year I built Leapp: a Cross-Platform Cloud access App, built on top of Electron.

    As a consultant, I was looking for an excellent way to access the cloud in a standard way programmatically, so I build up an app that manages short-lived credentials, credentials rotation, and access to many Cloud providers: AWS and Azure now.

    I built the app for a personal need and then i decided to open-source it, in order to add more cloud access strategies as possible and to help as many DevOps as possible in accessing the Cloud

    https://github.com/Noovolari/leapp

  • enctool

    A tool for manipulating data in various encoding formats.

    Yes, that is exactly the aim of the binary format. It has a few basic concepts like being byte-oriented, 1-byte headers for most things, ULEB128 encoding for large values, same chunking mechanism for all arrays and string-likes, same "open/close" mechanism for all container types, etc.

    The binary codec is VERY simple, and can be trivially implemented for an async-safe or otherwise constrained environment. In fact, I expect that many implementations will only build the binary codec, since you could just pass any recorded binary data through enctool [1] or whatever to see or manipulate its contents as a human. An embedded system would have no need to process the text format.

    [1]https://github.com/kstenerud/enctool

  • openpad

    An open notepad.

    It also provides a PWA, so it can also be downloaded.

    Existing tools require logging in. But this just does the job.

    The code is open sourced at https://github.com/theankurkedia/openpad

  • SkyFM

    Once I wanted to listen internet radio on my windows phone: https://github.com/Const-me/SkyFM

  • ipython_memory_usage

    IPython tool to report memory usage deltas for every command you type

    Years back I built IPython Memory Usage[0] which shows how much RAM and time was used per cell in Jupyter Notebooks (and originally the IPython shell). This is very useful for diagnosing why some Pandas and NumPy operations use a lot of RAM [1] which can also point at slow-downs, so you can compare different approaches to find more efficient solutions rather than randomly trying stuff until something no longer breaks.

    0: https://github.com/ianozsvald/ipython_memory_usage

    1: https://github.com/ianozsvald/ipython_memory_usage/blob/mast...

  • Twitark

    Archive the Twitter sample firehose and daily trends

  • joebear

    Joebear is a cute small serial queue job manager

  • ecstatic

    Very basic static site generator written in Python. (by RonitRay)

    I wrote a basic static site generator [1] using Python (and Jinja) to spit out pages for my personal site [2].

    1: https://github.com/RonitRay/ecstatic

  • MiBand3

    Library to work with Xiaomi MiBand 3

  • Grassmann.jl

    ⟨Grassmann-Clifford-Hodge⟩ multilinear differential geometric algebra

  • deep-translator

    A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators.

    Last year I built deep-translator https://github.com/nidhaloff/deep-translator

    I wanted a tool where multiple translators are integrated and where I can get translations from different sources but only using one tool. I then tried to build a cross platform mobile app using python (which is not the best language for this, I know) https://github.com/nidhaloff/Translator-pp

    Probably the best project I built/started last year is the machine learning package igel: https://github.com/nidhaloff/igel

  • Translator-pp

    A cross platform all in one translator app

    Last year I built deep-translator https://github.com/nidhaloff/deep-translator

    I wanted a tool where multiple translators are integrated and where I can get translations from different sources but only using one tool. I then tried to build a cross platform mobile app using python (which is not the best language for this, I know) https://github.com/nidhaloff/Translator-pp

    Probably the best project I built/started last year is the machine learning package igel: https://github.com/nidhaloff/igel

  • igel

    a delightful machine learning tool that allows you to train, test, and use models without writing code

    Last year I built deep-translator https://github.com/nidhaloff/deep-translator

    I wanted a tool where multiple translators are integrated and where I can get translations from different sources but only using one tool. I then tried to build a cross platform mobile app using python (which is not the best language for this, I know) https://github.com/nidhaloff/Translator-pp

    Probably the best project I built/started last year is the machine learning package igel: https://github.com/nidhaloff/igel

  • worker_pool

    Erlang worker pool

    All of them for Erlang, but still…

    https://github.com/inaka/worker_pool

  • elvis_core

    The core of an Erlang linter

  • rebar3_format

    Erlang Formatter for Rebar3

  • rebar3_hank

    The Erlang Dead Code Cleaner

  • sysend.js

    Web application synchronization between different tabs

  • tagger

    Zero Dependency, Vanilla JavaScript Tag Editor

  • LIPS

    Scheme based powerful lisp interpreter in JavaScript

  • favloader

    Vanilla JavaScript library for loading animation in favicon

  • lily

    Simple JavaScript options parser inspired by yargs (by jcubic)

  • r_freeze

    Pipreqs for R

    I wrote a small python package call r_Freeze: https://github.com/chinmayshah99/r_freeze.

    It essentially scanned all the R files in a given directory and generates a file with all external packages that are used by the program.

    Its super useful when the R code/ directory doesn't have requirements.txt or basically list of packages that need to be installed.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts