20 random bookmarks

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

2026-06-02

975.

В диджитале любят англицизмы

bureau.ru/soviet/20260602

2026-04-21

Reposted 966.

Push Ifs Up And Fors Down

matklad.github.io/2023/11/15/push-ifs-up-and-fors-down.html

2026-01-17

924.

You can't design software you don't work on

www.seangoedecke.com/you-cant-design-software-you-dont-work-on

2025-10-18

903.

Issuing multiple requests with `curl`

code.mendhak.com/curl-multiple-requests-sequences

2025-05-31

868.

Большой запрос""

grishaev.me/huge-sql

2024-12-22

814.

Пиши, улучшай

grishaev.me/write-and-check

Если код работает, это не значит, что задачу пора закрывать. От двадцати минут, потраченных сверху, вреда не будет — прод не сгорит, менеджер подождет. Зато спасет день коллеги, который вкатывается в проект.

2024-10-24

787.

Explain PostgreSQL

explain.tensor.ru

PostgreSQL Query Plan Visualizer add new plan

2024-07-17

711.

Why doesn’t advice work?

dynomight.net/advice

2024-06-09

674.

Перегибы на местах

spectator.ru/entry/6707

терапевтка принимала на дому, делала записи и вышла, например, в туалет, а клиентка залезла в эти записи и получила — правильно — скандал про«нарушение границ» и чуть ли не отказ работать дальше.

Правильный терапевт, разумеется, не только знал бы, что терапия — это место, где его границы будут нарушаться (и это будет оплачиваться), но и первым делом с интересом обсудил бы мотивы и фантазии клиента, зачем он это сделал и что хотел там найти. И только потом бы с любовью и принятием говорил про нарушение границ.

2024-05-27

668.

Four NOs of a Serious Code Reviewer

www.yegor256.com/2015/02/09/serious-code-reviewer.html

It is very important to conduct regular code reviews within every software team, but it is not so easy to do them right; here are a few typical pitfalls.

2024-05-17

646.

Eight Levels of Communication Maturity

www.yegor256.com/2016/08/23/communication-maturity.html

Chats, emails, phone calls, mailing lists, issue tracking systems, face-to-face meetings, and other communication instruments for a software project.

645.

Stop Chatting, Start Coding

www.yegor256.com/2014/10/07/stop-chatting-start-coding.html

In XDSD everybody is motivated to produce tangible and meaningful results. That's why we don't use emails, Skype, HipChat or phone calls.

2024-05-13

Reposted 638.

Hits-of-Code Instead of SLoC

www.yegor256.com/2014/11/14/hits-of-code.html

How about we measure the amount of times programmers touch the lines. Instead of counting the number of lines we’ll count how many times they were actually modified—we can get this information from Git (or any other SCM). The more you touch that part of the aircraft—the more effort you spent on it, right?

I called it Hits-of-Code (HoC) and created a small tool to help us calculate this number in just one line.

What a nice idea! I installed this program and ran it on Betula and Mycorrhiza codebases. For Betula it's 26350 HoC, for Mycorrhiza it's 137208 HoC. Yeah, Betula is still comparatively young! Hey, what about Mycomarkup? 23443. Oh wow, just a little less than Betula. I expected a small number.

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

514.

Spreadsheets are the best

alexschroeder.ch/view/2024-01-22-spreadsheets

Most people are not autonomous in their use of computers to solve their problems because they cannot use the languages listed. They must hope for an app to solve their problem. But they can use a spreadsheet to solve their problem!
The sad reality is, however, that today we buy computers that essentially boot into the app store.

512.

Some activities are harder than others

alexschroeder.ch/view/2024-01-31-activities

from bouncepaw:

Alex tells us that, for him, baking and cooking are easier than programming and soldering, because the errors there average out. As for me, this is completely inverse.

In programming, an error never fixes itself. You can observe it and fix it, you can write tests. You can run the program multiple times. It's you who fixes it, and you can understand how it's done. It's measurable!

Meanwhile, cooking is a nightmare. Burning something is routine for me. Is that too much or too little oil? For how long do I fry? What do I do with these spices? Do they really affect the taste? And to observe something, I can't rely on symbolic things like text. No, I have to look (is this color good? No idea!), smell (as if I know the difference) and taste (nothing more inaccurate).

I'm happy when something can be cooked with a timer. 15 min for buckwheat? I'm in. I'm more happy when the time is short. 4 min for this thin kind of spaghetti? Already boiling water!

I mean, even boiling water is not simple. My parents told me to wait until the correct bubbles appear. I'm waiting for the scary ones. Also, salt is supposed to make it boil faster. How much salt do I add?

And I didn't even talk about plants, which Alex also considers easy. They're not 😭

Totally agree!

2023-12-21

Reposted 465.

Towards a folk computer

folk.computer/notes/tableshots

The coolest thing I've seen today!

2023-09-02

311.

Ventoy

www.ventoy.net/en/index.html

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

2023-03-27

152.

Как найти место по фотографии — Вастрик

vas3k.blog/blog/388

2023-02-19

9.

Write Plain Text Files

sive.rs/plaintext

I write almost everything important in my life: thoughts, plans, notes, diaries, correspondence, code, articles, and entire books.

They are my extended memory — my noted self — my organized thoughts. I refer to them often. I search them, update them, and learn from them. I convert them into HTML to make websites, or LaTeX to make books.

My written words are my most precious asset. They are also a history of my life. That’s why I only use plain text files. They are the most reliable, flexible, and long-lasting option. Here’s why.