20 random bookmarks

stuff me collect

2025-05-14

233.

Delimiter-first code

arogozhnikov.github.io/2022/11/29/delimiter-comes-first.html

I argue for wider usage of delimiter-first in the code. three friends [tic, tac, toe] becomes three friends ・tic ・tac ・toe.

2025-03-23

217.

use pc using without mouse

mouseless.click

Splits whole screen by named squares and moves cursor there.
Note: Windows and Linux support are still in development.
explanation: https://youtu.be/FYV4HbW2XCI

2025-03-04

208.

How Core Git Developers Configure Git

blog.gitbutler.com/how-git-core-devs-configure-git

What git config settings should be defaults by now? Here are some settings that even the core developers change.

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

Reposted 181.

Make It Ephemeral: Software Should Decay and Lose Data

lucumr.pocoo.org/2024/10/30/make-it-ephemeral

So true

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-11-05

Reposted 170.

Database Remote-Copy Tool For SQLite

sqlite.org/rsync.html

2024-11-03

168.

Jujutsu — новая система контроля версий

habr.com/ru/articles/853416
  • Отмена любого действия.

  • Поддерживает чтение и запись в Git remote

  • Легко переписывать историю коммитов, rebase становится тривиальным, коммиты (патчи) можно спокойно перемещать между ветками, конфликтов меньше

2024-10-12

Reposted 156.

Collection

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

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

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

2024-08-30

148.

«Бобер выдыхай»: Go, WinAPI и ассемблер

habr.com/ru/articles/837454

Desktop-приложение с настоящим интерфейсом, с учетом реалий Windows

2024-08-09

147.

Man pages

alexschroeder.ch/view/2024-08-08-man-pages

Why you should use and write man pages.

Local documentation that is easy to find is so much better. And man pages are powerful.

2024-07-08

128.

Self Hosted для домашнего сервера

habr.com/ru/articles/826832

Эту статью я пишу во многом для нескольких друзей, которые решили приобщиться к этому тренду, и здесь будет обзор моего личного self hosted - про всякие разные штуки, которые показались полезны лично мне, и плотно заняли своё место на моём домашнем сервере.

2024-07-02

Reposted 115.

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

github.com/martinvonz/jj

2024-06-21

98.

Home-Cooked Software and Barefoot Developers

maggieappleton.com/home-cooked-software

The emerging golden age of home-cooked software, barefoot developers, and why the local-first community should help build it

2024-06-20

94.

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

habr.com/ru/articles/818479

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

2024-04-08

53.

Эффект Монреаля: почему языкам программирования нужен Царь стилей

habr.com/ru/companies/ruvds/articles/805235

2024-03-13

Reposted 25.

How to Feel 20 Percent Better

www.raptitude.com/2024/02/how-to-feel-20-percent-better
24.

GUIdebook: Graphical User Interface gallery

guidebookgallery.org/index

2023-03-05

2.

I3wm Documentation

i3wm.org/docs/userguide.html