20 random bookmarks

stuff me collect

2025-08-02

244.

Natural Number Game - An introduction to mathematical proof.

adam.math.hhu.de#/g/leanprover-community/nng4

In this game, we will build the basic theory of the natural numbers {0,1,2,3,4,...} from scratch. Our first goal is to prove that 2 + 2 = 4. Next we'll prove that x + y = y + x. And at the end we'll see if we can prove Fermat's Last Theorem. We'll do this by solving levels of a computer puzzle game called Lean.

2025-07-30

243.

Perkeep is your personal storage system for life.

perkeep.org

Things Perkeep believes:

  • Your data is entirely under your control

  • Open Source

  • Paranoid about privacy, everything private by default

  • No SPOF: don't rely on any single party (including yourself)

  • Your data should be alive in 80 years, especially if you are

While Perkeep can store files like a traditional filesystem (think: “directories”, “files”, “filenames”), it’s specialized in storing higher-level objects, which can represent anything. (photos, likes, tweets, measurements etc)

2025-06-23

238.

Oh-My-Backend - Roadmap

github.com/bzick/oh-my-backend

Этот документ содержит список (roadmap) навыков, которые часто требуются backend разработчику web-приложений. Документ разделён на этапы (темы). Каждый этап разделён на пункты. Каждый пункт, в документе, подразумевает что:

  • бекендер знает что это и какую проблему решает.

  • бекендер знает для чего и когда следует применить.

  • бекендер знает как с этим работать или знает где подсмотреть.

  • при разработке или проектировании бекендер помнит про них и учитывает в приложении.

2025-05-07

231.

On Not Carrying a Camera

hedgehogreview.com/issues/after-neoliberalism/articles/on-not-carrying-a-camera

Cultivating memories instead of snapshots.

2025-03-03

207.

SvgPathEditor

yqnn.github.io/svg-path-editor

2025-02-13

Reposted 204.

ntfy.sh | Push notifications to your phone or desktop via PUT/POST

ntfy.sh

ntfy is a simple HTTP-based pub-sub notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, and/or using a REST API.

curl \
  -d "Backup successful 😀" \
  ntfy.sh/mytopic

Free notifications!

2024-12-26

192.

Ask HN: Programmers who don't use autocomplete/LSP, how do you do it?

news.ycombinator.com/item?id=42492508

Really intresting comments

This question reminds me of the first time I met a blind programmer. I asked him how he managed to code, and he replied with something that stayed with me: a good programmer should organize software in such a way that every piece of code has a clear and logical place. The organization should be so intuitive that anyone could build a mental model of the structure and navigate it easily, even without seeing it.

2024-12-09

189.

Tiger Style

github.com/tigerbeetle/tigerbeetle/blob/a43f2205f5335cb8f56d6e8bfcc6b2d99a4fc4a4/docs/TIGER_STYLE.md

Our design goals are safety, performance, and developer experience. In that order.

Contrary to popular belief, simplicity is also not the first attempt but the hardest revision

code, like steel, is less expensive to change while it's hot.

Safety

NASA's Power of Ten — Rules for Developing Safety Critical Code

  • Use only very simple, explicit control flow for clarity.

  • Put a limit on everything. Fail Fast

  • Assertions detect programmer errors. The only correct way to handle corrupt code is to crash.

  • Assertions are a safety net, not a substitute for human understanding.

    • Build a precise mental model of the code first.

    • encode your understanding in the form of assertions,

    • write the code and comments to explain and justify the mental model to your reviewer,

    • and use VOPR as the final line of defense, to find bugs in your and reviewer's understanding of code.

  • No memory may be dynamically allocated (or freed and reallocated) after initialization.

  • Declare variables at the smallest possible scope, and minimize the number of variables in scope.

  • Good function shape is often the inverse of an hourglass: a few parameters, a simple return type, and a lot of meaty logic between the braces.

  • Centralize control flow. When splitting a large function, try to keep all switch/if statements in the "parent" function, and move non-branchy logic fragments to helper functions.

  • Centralize state manipulation. Let the parent function keep all relevant state in local variables, and use helpers to compute what needs to change, rather than applying the change directly.

Developer Experience

  • Add units or qualifiers to variable names, and put the units or qualifiers last, sorted by descending significance. latency_ms_max rather than max_latency_ms.

  • Callbacks go last in the list of parameters.

  • Order matters for readability (even if it doesn't affect semantics). On the first read, a file is read top-down, so put important things near the top. The main function goes first.

  • Don't overload names with multiple meanings that are context-dependent.

2024-12-05

Reposted 187.

This Page is Designed to Last: A Manifesto for Preserving Content on the Web

jeffhuang.com/designed_to_last

2024-11-19

Reposted 174.

FutureRack

futurerack.info/main.php

Server racks as home furniture.

2024-10-12

Reposted 156.

Collection

git.calculate-linux.org/serg-sg/collection

Сборник различных сценариев автоматизации и справочных материалов

Есть инструкция для почтового сервиса в кластере

2024-07-23

Reposted 139.

pwr

muxup.com/pwr

Paced web reader (pwr) - an esoteric feed reader and workflow for keeping up to date online.

2024-07-14

Reposted 130.

Self-care checklist – Thomas Baart's Microblog

micro.thomasbaart.nl/2024/07/13/self-care-checklist

2024-07-08

126.

Ente Auth

ente.io/auth

Open source 2FA authenticator, with end-to-end encrypted backups

2024-07-02

Reposted 118.

Oatmeal - Blogroll

eli.li/blogroll

2024-06-30

109.

Immich - Self-hosted photo and video backup solution

immich.app

2024-06-20

96.

Ускорение роутера в Django в 51 раз

habr.com/ru/companies/tochka/articles/822431

Хитрым и условно бесплатным методом мы ускорили флоу каждого запроса на 150+ мкс. Формально — это малозаметная цифра, однако она является чистейшей CPU-нагрузкой, и на каждые 10000 запросов экономит 1,5 секунды процессорного времени, что для компьютера является десятью вечностями. Мелочь, а приятно.

Немного советов, как это использовать
1. Some coding...
2. Увидеть запрос в БД на 10 секунд и понять, что это всё было зря.
3. Плакать.

2024-03-15

41.

Комнатные растения: подробный гид для новичков

dzen.ru/a/Xrn1GQRu2BR53dnx

2024-03-14

37.

Permacomputing | viznut

viznut.fi/texts-en/permacomputing.html

This is a collection of random thoughts regarding the application of permacultural ideas to the computer world.

32.

An interview with 100 rabbits

sourcehut.org/blog/2021-12-08-100-rabbits-interview

Hundred Rabbits is an artistic duo hacking their way around the Pacific on their sailboat. I invited them to sit down for an interview to talk about about their lifestyle, art, philosophy, and their SourceHut projects.