20 random bookmarks

Тут будут ссылки на всё-всё, что я найду интересным

2026-07-12

997.

Betula Logo Devlog

garden.bouncepaw.com/hypha/betula_logo_devlog

For the NLNet Betula grant, I had to redesign the logo. The old one was not very recognisable at small sizes, barely looked like a birch, etc. June 2026, I spent several days working on the new one. Turned out, logo design and vector graphics are so much more complicated than I anticipated! Went through multiple approaches until I settled on the final logo. It's live on https://joinbetula.org or instances running newer versions, such as https://links.bouncepaw.com.

2026-04-20

964.

You Never Have Time, Only Intentions

www.raptitude.com/2017/05/you-never-have-time-only-intentions

Whenever I remember to stop trying to have time, and instead focus on having worthwhile intentions, time seems more abundant. It seems to show up as needed when I’ve got a good intention going.

This makes sense, because the feeling of not having enough time doesn’t come from not having enough time. It can’t, because you always have zero time. It comes from the pain of valuing wishes and hopes over intentions, and what happens to you over who you are.

963.

Wise People Have Rules For Themselves

www.raptitude.com/2017/07/wise-people-have-rules-for-themselves

Every time I post a new behavioral experiment, or share a personal resolution of some kind, I get a few emails telling me not to be so strict with myself.

They always say something like “It’s not good to be so hard on yourself!” or “We shouldn’t be forcing ourselves to do things!”

This is a common thing to hear in our improvement-focused culture. I used to think it was a reasonable caution, but now I think it’s generally bad advice.

It seems well-meaning in most cases—people sometimes do go overboard with exercise, frugality, and personal efficiency. But I think it’s much more common for people to go under-board in some or all of those areas, and you can bet the person giving you a hard time is one of them.

We often hear about the importance of “balance” in our self-improvement efforts. But what exactly are we balancing? Good behaviors and bad ones? Are we looking for lives that are equal parts wisdom and recklessness?

Can you imagine someone saying “I don’t think we should force ourselves to brush our teeth every day. You have to live a little!”

2026-03-31

950.

It's not your codebase

www.seangoedecke.com/not-your-codebase

Some degree of ownership over the code you write is inevitable and probably healthy. You should care about the things you build! But that doesn’t mean you have any actual ownership. The codebase you spend time on at work is the company’s codebase, and they can do whatever they want with it. You should communicate the risks and consequences of decisions, but ultimately it’s not your call.

2026-02-13

930.

On screwing up

www.seangoedecke.com/screwing-up

2025-12-23

919.

Backing up Spotify

annas-archive.li/blog/backing-up-spotify.html

We backed up Spotify (metadata and music files). It’s distributed in bulk torrents (~300TB). It’s the world’s first “preservation archive” for music which is fully open (meaning it can easily be mirrored by anyone with enough disk space), with 86 million music files, representing around 99.6% of listens.

2024-08-23

747.

НА БАЗЕ Кримсон: позитивные последствия СВО и будущее России

www.youtube.com/watch?v=7u5d-Ygdm4k

2024-07-27

725.

Как наполнить базу сгенерированными джейсонами

grishaev.me/json-sql

2024-03-09

556.

К тебе или ко мне?

podcast.ru/1494552672

Кристина и Егор обсуждают знакомства и отношения.

2024-03-06

547.

Dysfunctional options pattern in Go

rednafi.com/go/dysfunctional_options_pattern
package src

type config struct {
    // Required
    foo, bar string

    // Optional
    fizz, bazz int
}

// Each optional configuration attribute will have its own public method
func (c *config) WithFizz(fizz int) *config {
    c.fizz = fizz
    return c
}

func (c *config) WithBazz(bazz int) *config {
    c.bazz = bazz
    return c
}

// This only accepts the required options as params
func NewConfig(foo, bar string) *config {
    // First fill in the options with default values
    return &config{foo, bar, 10, 100}
}

func Do(c *config) {}

You’d use the API as follows:

package main

import ".../src"

func main() {
    // Initialize the struct with only the required options and then chain
    // the option methods to update the optional configuration attributes
    c := src.NewConfig("hello", "world").WithFizz(0).WithBazz(42)
    src.Do(c)
}

2024-01-06

481.

О наращении окончаний числительных

ilyabirman.ru/meanwhile/all/o-naraschenii-okonchaniy-chislitelnyh

Количественным числительным наращение не положено, но все его упорно пихают, меняя смысл.

2023-11-09

399.

Pagefind

pagefind.app

Pagefind is a fully static search library that aims to perform well on large sites, while using as little of your users’ bandwidth as possible, and without hosting any infrastructure.

2023-11-06

398.

OpenSwitchMaps

addons.mozilla.org/ru/firefox/addon/openswitchmaps

Расширение, которое позволяет открыть текущее место в соответствующем сервисе карт.

2023-09-27

341.

Objective-See: LuLu

objective-see.org/products/lulu.html

LuLu is the free, open-source firewall that aims to block unknown outgoing connections, protecting your privacy and your Mac!

2023-09-02

311.

Ventoy

www.ventoy.net/en/index.html

Утилита для создания загрузочной флешки сразу с несколькими образами

2023-08-26

304.

Monorepo Explained

monorepo.tools

Everything you need to know about monorepos, and the tools to build them.

2023-07-08

229.

Красные ночные палитры интерфейсов

protraktor.design/ru/2023/07/05/red-night-palettes

repost from bouncepaw:
Если делать дизайн только из красного света, то глаза не будут терять ночное видение, потому что ночные палочки не замечают красный свет. Так-то толку от этого мало, но в некоторых случаях супер-полезно. Например, морякам и астрономам.

2023-06-06

191.

Can We Make Bicycles Sustainable Again?

solar.lowtechmagazine.com/2023/02/can-we-make-bicycles-sustainable-again

Cycling is the most sustainable form of transportation, but the bicycle is becoming increasingly damaging to the environment. The energy and material used for its production go up while its life expectancy decreases.

2023-04-07

173.

Фотографии транспорта со всего света

transphoto.org

2023-03-28

157.

Bartosz Ciechanowski

ciechanow.ski

Интерактивные статьи, объясняющие сложные вещи.
Мега круто!