whatgotdone
hacknot
whatgotdone | hacknot | |
---|---|---|
5 | 1 | |
139 | 34 | |
- | - | |
7.6 | 10.0 | |
16 days ago | almost 7 years ago | |
Go | HTML | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
whatgotdone
- What Got Done
- How to monetize an open-source project?
- Any free database for new saas
-
Keep a Knowledge Log
I wrote a tool specifically for this, mostly inspired by the Snippets tool at Google. I've been publishing my weekly log in it every week for almost three years:
https://whatgotdone.com/michael/2021-12-03
The code is all open source if you're interested in playing around with it:
https://github.com/mtlynch/whatgotdone
-
Back to basics: Writing an application using Go and PostgreSQL
I had the same objection to SQLite, and then I heard about Litestream, and it won me over.[0]
Litestream watches your SQLite database and then streams changes to a cloud storage provider (e.g., S3, Backblaze). You get the performance and simplicity of writing SQLite to the local filesystem, but it's syncing to the cloud. And the cool part is that you don't have to change any of your application code to do it - as far as your app is concerned, it's writing to a local SQLite file.
I wrote a little log uploading utility for my business that uses Litestream, and it's been fantastic.[1] It essentially carries around its data with it, so I can deploy my app to Heroku, blow away the instance and then launch it on fly.io, and it pops up with the exact same data.[2]
I'm currently in the process of rewriting an open-source AppEngine app to use SQLite + Litestream instead of Google Firestore.[2] It's such a relief to get away from all the complexity of GCP and Firestore and get back to simple SQLite.
[0] https://litestream.io/
[1] https://mtlynch.io/litestream/
[2] https://asciinema.org/a/I2HcYheYayeh7aHj23QSY9Vyf/embed?size...
[3] https://github.com/mtlynch/whatgotdone/pull/639
hacknot
-
Keep a Knowledge Log
This! This is the way! I envy your coworkers. This practice is also one of the things that help me overcome chronic procrastination. For every project/feature/bugfix/etc.. I start with such a document in which I try to pin down exactly that. The goals (and explicitly calling out non-goals to fight off Feature Creep Frank[1] from the get go), the whys and the hows. The hows should be as detailed as possible. The hows/whys may be getting updated (with history, for this, I just strike through and add a date for the change, nothing fancy like revision history in the storage media). And whenever I feel like slacking off, the detailed tasks in these documents offer me a way out of a rut.
[1] https://github.com/zsoltika/hacknot/blob/master/hacknot.md#f...
What are some alternatives?
go-mockgen-tool - Go/Golang mock generation for interfaces via code generation
codex - Turn a heterogeneous pile of text docs into a single web page with good search.
pgxtutorial - Example of how to build a web service using Go, PostgreSQL, and gRPC
impl - impl generates method stubs for implementing an interface.
litestream - Streaming replication for SQLite.
go - The Go programming language
pgx - PostgreSQL driver and toolkit for Go
faunadb-js - Javascript driver for FaunaDB v4
pq - Pure Go Postgres driver for database/sql
syncthing-android - Wrapper of syncthing for Android.
dockertest - Write better integration tests! Dockertest helps you boot up ephermal docker images for your Go tests with minimal work.
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.