Найти разговор
Все разговоры
3 + 4 * 2 равно 14, и это ещё простая часть
Каждый, кто начинает со Smalltalk, рано встречает 3 + 4 * 2 и слышит, что это 14, потому что бинарные сообщения идут слева на…
Ключи for_each - это адреса, а не ярлыки
Ключ for_each - не ярлык. Это половина адреса ресурса, terraform_data.queue["prod-orders"], и состояние хранит объект именно…
Циклам и условиям не место в build.gradle
Попался build.gradle, где половина логики жила в замыканиях, которым во время выполнения подменяли delegate. Долго разбирался…
Для Коллатца честный ответ - это partial def
Lean должен знать, что рекурсивный def завершается, прежде чем принять его как определение. Структурную рекурсию он находит с…
Цикл, который выделял память на каждый столбец
Срезы в Julia копируют. Это известно, но внутри цикла вылетело из головы. Возьмём функцию, которая идёт по столбцам матрицы и…
Обновляемость значит, что раскладка хранилища останется навсегда
Слышат «прокси» и думают, что проблема неизменяемости исчезла. Она переехала. Прокси хранит состояние и пересылает вызовы чер…
SilentlyContinue как On Error Resume Next с другим написанием
После унаследованных рабочих книг дошло дело до унаследованных скриптов PowerShell, и там нашёлся старый знакомый в новом пал…
Обычный возврат из обработчика в Common Lisp означает отказ
Ловко сокращено. Но хочется видеть, на что эта запись соглашается. Макрос-обёртка ставит обработчик вокруг парсера, а парсер…
tryEval пропустил пакет, который я специально сломал
Мой sweep оборачивает каждую запись реестра в tryEval и выводит те, где success равен false. С tzshift он падает с ошибкой «о…
Почему компилятор удалил мою проверку знакового переполнения?
if (x + 1 < x) для знакового int не защищает от переполнения. Знаковое переполнение в C ведёт к неопределённому поведению, по…
`result.map_error` в каждой строке цепочки use
use вместе с result.try - моя любимая часть Gleam, и я начинаю на неё немного злиться. Каждый шаг вызывает другой модуль, у к…
rows.Next вернул false, а ошибка потерялась
Маленькая утилита на database/sql вернула половину списка. Без ошибки. Код такой. Контекст с дедлайном. Дедлайн истёк посреди…
Покрасил одну полоску здоровья, покраснели все
На этот раз меня укусили общие ресурсы в интерфейсе Godot. У каждого юнита в моём маленьком прототипе есть сцена полоски здор…
Должна ли отклонённая плитка сдвигать палитру?
Если просто создать корутину в Lua, ещё ничего не выполняется. Хост вызывает coroutine.resume, и только тогда генератор работ…
count(*) пришёл строкой, и 12 + 1 дало 121
Экран списка дел. В шапке 12 задач, я добавляю ещё одну и, чтобы поднять число до ответа сервера, делаю total + 1. В шапке те…
Нужен ли пустой палитре отдельный вариант?
В редакторе образцов пустой список цветов означает две разные вещи, и Save должен их различать. Корректность цветов здесь ни…
Массив, о котором никто не просил
CoffeeScript возвращает последнее выражение любой функции, а цикл for - тоже выражение. Поэтому обработчик, который заканчива…
getItem, null и external в ReScript
Проверка типов в ReScript строгая ровно до той строки, где external сообщает ей, что возвращает функция JavaScript. Дальше он…
Ссылка на интерфейс и ссылка на объект для одного экземпляра
Ошибка времени жизни, которую я чаще всего встречаю в старом коде на Delphi, возникает, когда на одном экземпляре смешивают д…
Разворот C-указателя через .? - это утверждение
.? на указателе из C - это утверждение, а не проверка. Оно говорит, что null здесь невозможен. В сборке с проверками безопасн…

