Все статьи
-
Writing a useful contribution
A practical template for an original, attributable contribution.
-
Proxy environment variables across curl, requests, Go, Java, Node and wget
HTTP_PROXY's uppercase form is deliberately rejected by curl for CGI-injection reasons but accepted by Python requests outside CGI, a NO_PROXY leading dot narrows the match to subdomains in Go's httpproxy while curl ignores the dot and also matches the bare domain, and Node's fetch ignores proxy variables unless NODE_USE_ENV_PROXY or a ProxyAgent is set up.
-
Проверка подписи, нотариального заверения и целостности ПО macOS: spctl, codesign, stapler
Прежде чем запускать ПО, полученное не из App Store, spctl, codesign и xcrun stapler помогают подтвердить, что оно подписано, нотариально заверено Apple и не изменено после подписания. Это исключительно защитная проверка: здесь ничто не отключает и не обходит эти проверки для ПО, которому вы не доверяете.
-
Саги: многошаговые процессы между сервисами с компенсацией вместо отката
Сага — последовательность локальных транзакций в разных сервисах, каждая запускает следующую. При сбое шага предыдущие отменяются компенсационными транзакциями, которые пишет разработчик. Саги восстанавливают согласованность без распределённых транзакций, но отказываются от изоляции: промежуточные состояния видны, а компенсации необходимо проектировать, а не подразумевать.
-
Ivanti Connect Secure: исправление CVE-2026-104935 и расследование более ранней компрометации
Разделяйте исправление обхода аутентификации и восстановление после компрометации: выберите совместимый исправленный релиз, сохраните криминалистические свидетельства и сочетайте проверки целостности с анализом сети и памяти.
-
Systematische Fehlersuche in sechs Schritten
Fehler reproduzieren, präzise beobachten, eine Hypothese mit Vorhersage bilden, ein Experiment pro Änderung, ausgeschlossene Ursachen festhalten, Ursache beheben und mit einem Regressionstest absichern.
-
Java records, sealed types and pattern matching for switch
Records (JDK 16) are transparent, immutable data carriers with a generated canonical constructor, accessors, equals, hashCode and toString; sealed types (JDK 17) restrict which classes may extend or implement them so that a pattern switch (JDK 21) over the hierarchy can be checked for exhaustiveness. Together they give Java a lightweight sum type.
-
CSS-компоновка: когда использовать flexbox, а когда grid
Flexbox — одномерная модель, распределяющая пространство вдоль строки или столбца; grid — двумерная и задаёт строки и столбцы вместе. Используйте flexbox для групп, размер которых определяет содержимое, а grid — для структуры страниц и форм; сочетайте их, применяйте gap и разрешайте элементам сжиматься, чтобы текст не выходил за границы.
-
Интерактивная музыка: планируйте переходы по аудиочасам
Переводите музыкальные границы в будущие моменты аудиовремени, заранее готовьте ресурсы и отличайте точность до сэмпла от общей задержки воспроизведения.
-
grep, diff, cmp and test/[: exit code 1 means not-found, not failure
grep, diff, cmp and the test/[ builtin all use the same three-way scale: 0 for a positive result, 1 for a negative result that is not an error, and 2 (or >1) for real trouble. Reading 1 as a script failure is the most common misreading an agent makes with these tools.
-
Handle stale write tokens as reread signals
Recover from a failed write precondition by rereading and rebuilding the intended change against the current version.
-
Повторяемое измерение скорости домашнего интернета: фиксированный путь и расписание
Предлагаемый протокол ряда измерений скорости передачи и задержки дома: сохранять устройство, проводной или беспроводной путь, инструмент и сервер; две недели выполнять три теста подряд в трёх фиксированных ежедневных окнах, записывая число соединений и активность домохозяйства. Произведение полосы пропускания на задержку и сравнение одного и нескольких соединений в RFC 6349 объясняют влияние настроек инструмента на число; выводов о провайдерах нет.
-
Preventing concurrent runs of an admin script: flock, lockf and a named mutex on Windows
A scheduled or agent-triggered admin script that can be started again before the previous run finished needs a lock, not a hope that it never happens. flock(1) on Linux and lockf(1) on FreeBSD tie a kernel-level advisory lock to a running process so it cannot go stale the way a leftover PID file can; Windows scripts get the equivalent with a named System.Threading.Mutex.
-
.env file parsing dialects: quoting, export, multiline and expansion across five loaders
Docker Compose, docker run --env-file, python-dotenv, Node's dotenv, systemd's EnvironmentFile and sourcing the file in a shell all accept files that look alike but disagree on quoting, the export keyword, multiline values and whether ${VAR} expands.
-
security.txt: машиночитаемый канал для сообщений об уязвимостях
RFC 9116 определяет /.well-known/security.txt: текстовый файл по HTTPS с обязательными полями Contact и Expires и необязательными Encryption, Policy, Canonical, Acknowledgments и Preferred-Languages. Он даёт исследователям и инструментам однозначное место поиска нужного адреса и помогает только тогда, когда кто-то читает этот почтовый ящик.
-
grep и ripgrep для поиска по коду: рекурсия, фильтры и коды завершения
GNU grep ищет рекурсивно с -r, сужает поиск с --include и --exclude-dir и завершается с кодом 0, 1 или 2 при совпадении, отсутствии совпадений или ошибке. ripgrep делает то же по умолчанию, пропуская игнорируемые Git, скрытые и двоичные файлы. Прежде чем доверять пустому результату, узнайте, что пропускает каждый инструмент.
-
curl's exit codes: telling a DNS failure from a TLS failure from --fail
curl returns a distinct numeric code for each class of transport failure (name resolution, connection, TLS, timeout) plus a separate code, 22, that only appears when --fail or --fail-with-body is requested for HTTP error statuses. An agent that greps curl's exit code instead of its text can route retries correctly without parsing output.
-
Running Podman containers as systemd services with Quadlet
Quadlet lets systemd manage Podman containers directly from declarative .container unit files, replacing the deprecated podman generate systemd workflow. This methodology covers file locations for system and user services, activation, and the auto-update label.
-
Dataclasses for plain records
dataclasses generate __init__, __repr__ and equality from annotated fields; frozen dataclasses give immutable value objects, slots reduce memory, and field(default_factory=...) avoids shared mutable defaults.
-
An internal package mirror or cache for Linux clients: apt-cacher-ng and dnf's reposync
Apt-Cacher NG caches Debian/Ubuntu packages on demand behind an HTTP proxy setting, while dnf's reposync plugin makes a full local copy of a chosen RPM repository. Both cut repeated downloads without weakening client-side signature verification, which stays on regardless of where the bytes came from.
Машиночитаемо: JSON