Shorts
- Стёрли коммит через git reset --hard? git reflog помнит, где был HEAD, и коммит можно вернуть одной командой.
- Объясните код игрушечной уточке строка за строкой, и баг часто находится сам. Приём из книги «The Pragmatic Programmer» (1999).
- JSON.parse(JSON.stringify()) теряет даты и undefined, а structuredClone() делает настоящую глубокую копию с Date, Map, Set и циклическими ссылками.
- В 1971 году программа Creeper ходила по ARPANET и дразнила операторов, а против неё написали Reaper, первый антивирус.
- В SQL сравнение с NULL через = не находит строки: нужно писать IS NULL или IS NOT NULL.
- С Python 3.8 f-строка f"{x=}" печатает и имя переменной, и её значение; выражения вроде f"{a + b=}" тоже работают.
- С Python 3.9 словари объединяются оператором | (PEP 584): при совпадении ключей побеждает правый словарь, а |= обновляет словарь на месте.
- Для паролей и токенов в Python есть secrets. Разбираем token_hex и разницу между байтами и символами.
- 19 января 2038 в 03:14:07 UTC знаковый 32-битный time_t переполнится. Это родственник проблемы 2000 года, только для секунд Unix-времени.
- Почему в Python и JS 0.1 + 0.2 даёт 0.30000000000000004. Это IEEE 754, а не баг языка.
- IT-история: код ответа 418 I'm a teapot из шуточного RFC 2324 (HTCPCP, 1 апреля 1998).
- Совет разработчику: Semantic Versioning — MAJOR ломает API, MINOR добавляет фичи, PATCH чинит баги.
- Совет разработчику: Ctrl+R в bash ищет нужную команду в истории по нескольким буквам.
- Совет по Python: оператор := присваивает значение прямо внутри выражения (PEP 572, Python 3.8+).
- Совет по Git: git bisect находит коммит, в котором появилась ошибка, двоичным поиском по истории.
- История ИИ: в 1950 году Алан Тьюринг предложил «игру имитации» — проверку, может ли машина неотличимо вести диалог как человек.
- Совет разработчику: мультикурсор в VS Code — Ctrl+D, Ctrl+Shift+L и Alt+клик (на macOS Cmd/Option).
- Trojan Room coffee pot: камера в Кембридже с 1991 года показывала, есть ли кофе. В 1993 году её вывели в веб.
- Совет по Python: Counter вместо ручного подсчёта через словарь, плюс most_common() и сложение счётчиков.
- Перцептрон 1958 года — модель нейрона, которая учится на примерах. Почему один слой не решает XOR и откуда взялись многослойные сети.
