20 random bookmarks

2025-09-01

132.

Jujutsu for everyone

jj-for-everyone.github.io

A Jujutsu tutorial that requires no previous experience with Git or other version control systems.

2025-08-21

129.

A Brief Guide to A Few Algebraic Structures

argumatronic.com/posts/2019-06-21-algebra-cheatsheet.html

I started writing this post because, for whatever reason, I keep forgetting what the difference is between a ring and a group, which is funny to me because I never forget the difference between a semiring and a semigroup – although other people do, because it’s quite easy to forget! So, I wanted a fast reference to the kinds of algebraic structures that I am most often dealing with in one way or another, usually because I’m writing Haskell (which has some reliance on terminology and structure from abstract algebra and category theory) or I’m trying to read a book about category theory and they keep talking about “groups.” Wikipedia, of course, defines all these structures, and that’s fine, but what I need in those times is more of a refresher than an in-depth explanation.

2025-06-12

116.

Always do Extra

www.bennorthrop.com/Essays/2021/always-do-extra.php

Extra is different than More. Extra is finishing those two screens, but then researching a new library for form validation that might reduce the boilerplate code. Or it's learning ways to protect against common security vulnerabilities from data entry. These little off-ramps from the main highway of Normal Work could be dead-ends and not have any practical value to the project. But they might also be important contributions. And that's the thing with Extra. While the tangible value to the project is uncertain (it could be nothing this time or it could be something), the value to you is real.

2025-05-28

113.

The Ingredients of a Productive Monorepo

blog.swgillespie.me/posts/monorepo-ingredients

2025-01-09

97.

if got, want: A Simple Way to Write Better Go Tests

mtlynch.io/if-got-want-improve-go-tests

2024-11-07

87.

Proposal for a Django project template

david.guillot.me/en/posts/tech/proposal-for-a-django-project-template

My take on what could be a project template for Django advanced usage, with modern tooling (for Python and UI dependencies, as well as configuration/environment management), but not too opinionated.

2024-09-17

75.

Master hexagonal architecture in Rust

www.howtocodeit.com/articles/master-hexagonal-architecture-rust

Everything you need to write flexible, future-proof Rust applications using hexagonal architecture.

2024-09-16

74.

Wayland: i3 to Sway migration

anarc.at/software/desktop/wayland

2024-07-09

61.

Using use in Gleam

erikarow.land/notes/using-use-gleam

2024-07-03

59.

Announcing wcurl: a curl wrapper to download files

samueloph.dev/blog/announcing-wcurl-a-curl-wrapper-to-download-files

2024-06-26

54.

You probably wrote half a monad by accident

gieseanw.wordpress.com/2024/06/25/you-probably-wrote-half-a-monad-by-accident

2024-06-24

52.

Counting Immutable Beans: Reference Counting Optimized for Purely Functional Programming

arxiv.org/abs/1908.05647

Most functional languages rely on some garbage collection for automatic memory management. They usually eschew reference counting in favor of a tracing garbage collector, which has less bookkeeping overhead at runtime. On the other hand, having an exact reference count of each value can enable optimizations, such as destructive updates. We explore these optimization opportunities in the context of an eager, purely functional programming language. We propose a new mechanism for efficiently reclaiming memory used by nonshared values, reducing stress on the global memory allocator. We describe an approach for minimizing the number of reference counts updates using borrowed references and a heuristic for automatically inferring borrow annotations. We implemented all these techniques in a new compiler for an eager and purely functional programming language with support for multi-threading. Our preliminary experimental results demonstrate our approach is competitive and often outperforms state-of-the-art compilers.

2024-06-20

48.

build2 | C/C++ Build Toolchain

build2.org

build2 is an open source (MIT), cross-platform build toolchain that aims to approximate Rust Cargo's convenience for developing and packaging C/C++ projects while providing more depth and flexibility, especially in the build system.

46.

Why does SQLite (in production) have such a bad rep?

avi.im/blag/2024/sqlite-bad-rep

2024-06-19

45.

Avoiding complexity with systemd

mgdm.net/weblog/systemd

Using systemd to avoid having to write some risky code

2024-06-13

23.

Macaroons Escalated Quickly

fly.io/blog/macaroons-escalated-quickly
21.

Building Go programs with Nix Flakes

xeiaso.net//blog/nix-flakes-go-programs
14.

Optimal SQLite settings for Django

gcollazo.com/optimal-sqlite-settings-for-django

There’s plenty of information out there on how to scale Django to handle numerous requests per second, but most of it…

2024-06-11

8.

gamja: Simple IRC web client

sr.ht/~emersion/gamja

2024-06-10

4.

soju IRC bouncer

soju.im

soju is a user-friendly IRC bouncer. soju connects to upstream IRC servers on behalf of the user to provide extra functionality. soju supports many features such as multiple users, numerous IRCv3 extensions, chat history playback and detached channels. It is well-suited for both small and large deployments.