20 random bookmarks

stuff me collect

2025-12-02

Reposted 250.

Scripts I wrote that I use all the time

evanhahn.com/scripts-i-wrote-that-i-use-all-the-time

I've written a number of little scripts over the years, many of which I use every day. Here's a little collection.

2025-04-22

223.

Effective Go

go.dev/doc/effective_go

Настольное пособие по тому, как писать в go-way стиле

2025-03-26

Reposted 219.

Play Hive Like a Champion

tesera.ru/images/items/2372481/ingersoll_randy_play_hive_like_a_champion_strategy_tactics_a.pdf

Wow so advanced

via Optozorax

2025-03-03

207.

SvgPathEditor

yqnn.github.io/svg-path-editor

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-02

184.

Пишем плагины для Obsidian

habr.com/ru/articles/861230

Статьи предназначены для максимально легкого вкатывания в плагинописание для Obsidian.
Официально документация Obsidian настоятельно рекомендует использовать TypeScript и npm и использует только такой подход в своем GitHub с примерами. Я же в свою очередь утверждаю, что если вы хотите просто сесть и написать малюсенький плагин, у вас нет необходимости даже в этом стеке.

2024-11-27

180.

How I configure my Git identities

www.benji.dog/articles/git-config

How to use different git identities for different projects

2024-10-20

Reposted 162.

Buckwheat Tea

grimgrains.com/site/buckwheat_tea.html

Из гречки можно чай делать...

2024-07-04

125.

MangaKa - software for easy line art creation

store.steampowered.com/app/2234500/MangaKa
124.

Slverbullet: The hackable notebook

github.com/silverbulletmd/silverbullet

Notes as database. Supports Frontmatter, querying, backlinks, live preview, wiki style linking link, templates.

2024-07-02

Reposted 116.

Kinopio – Thinking Canvas

kinopio.club

One of my favorite tools on the internet. I love the design! The person behind it: https://pketh.org/archives/ seems cool as well. They also worked on Glitch.

Reposted 115.

GitHub - martinvonz/jj: A Git-compatible VCS that is both simple and powerful

github.com/martinvonz/jj

2024-06-21

97.

Tetris Font

erikdemaine.org/fonts/tetris

Website to create animation of your text using falling tetris blocks

2024-06-20

94.

Симметричная индексация в Python

habr.com/ru/articles/818479

По сути, выражение s[~i] эквивалентно выражениям s[-i - 1] и s[len(s) - i - 1], однако является более красивым и компактным вариантом записи.

2024-06-17

Reposted 88.

Банальность в терапии

spectator.ru/entry/6699

2024-06-14

Reposted 84.

interstar/cardigan-bay: A new wiki engine in Clojure ...

github.com/interstar/cardigan-bay

A single-user “wiki” engine powering the ThoughtStorms wiki.

2024-05-07

Reposted 67.

The creepy sound of online trackers

axbom.com/the-creepy-sound-of-online-trackers

I can't get the noise out of my head. People who watch the video express awe and disgust. And that is why Dutch software developer Bert Hubert's experiment is so powerful. It doesn't really uncover something that we shouldn't already know. Something we often choose to ignore. The brilliance is

2024-03-18

Reposted 42.

JPEG DCT text lossifizer

lcamtuf.coredump.cx/lossifizer

Did you ever wake up in the middle of the night wondering what would happen if you applied JPEG-style lossy compression to text?

2024-03-14

33.

Solarpunk

garden.bouncepaw.com/hypha/solarpunk
  • In the wonderful solarpunk future, we do not use telepathy

  • In the wonderful solarpunk future, we have enough time to not do two things at once

2023-03-05

8.

Damn Small Software

warmedal.se/~bjorn/posts/2021-11-27-damn-small-software.html

Blog post about very small linux distribution and small programs