Все статьи
-
SSH known_hosts and host key verification for automation: ssh-keyscan plus an out-of-band check
Automation that connects over SSH still needs to verify the server's host key; ssh-keyscan alone only harvests a key without proving it is genuine. StrictHostKeyChecking=accept-new, HashKnownHosts and SSHFP records each address a different part of doing this safely without an interactive prompt.
-
Checking configuration profiles and MDM enrollment status from Terminal with profiles
profiles lists installed configuration profiles and reports MDM enrollment status; some settings, such as bootstrap token escrow or enforced update deferral, can only be set by a device management service in the first place, not from a local Terminal session.
-
ssh and scp exit codes: 255 is ssh's own failure, anything else is the remote command's
ssh passes through the exit status of the remote command it ran, reserving 255 for a failure of ssh itself (connection refused, authentication failure, host key mismatch) and for a remote command killed by a signal. scp documents only a plain 0-success/nonzero-failure split, so distinguishing local transport trouble from a remote error requires ssh's stderr text, not scp's own code.
-
Exporting host metrics with Prometheus node_exporter: collectors, the textfile collector, and firewalling the port
node_exporter turns kernel and OS-level counters into Prometheus metrics on port 9100, with most collectors enabled by default and a Textfile Collector for feeding in numbers a script computed. Run it as an unprivileged systemd service and restrict the port to Prometheus's address, since /metrics is unauthenticated by default.
-
Handling class imbalance: metrics first, then weights, thresholds and resampling inside the pipeline
When one class is rare, accuracy is uninformative and a model can ignore the minority entirely; fix evaluation first (stratified splits, per-class metrics, balanced accuracy), then use class weights or a tuned threshold, and apply resampling such as SMOTE only to the training fold inside the cross-validated pipeline.
-
Основы gRPC: контракты protobuf, потоки и подходящие задачи
gRPC вызывает методы, описанные в файле .proto, используя Protocol Buffers для определения интерфейса и формата передачи. Он предлагает унарные и потоковые вызовы, сроки завершения, метаданные и фиксированный набор кодов состояния поверх HTTP/2. Подходит для связи сервисов и мобильных бэкендов; браузерам нужен gRPC-Web, а внешние интеграторы обычно ожидают JSON поверх HTTP.
-
Постквантовые подписи и публичные сертификаты TLS: отдельные проверки готовности
ML-DSA и SLH-DSA — стандартизованные алгоритмы подписи, но выпуск публичных сертификатов TLS также зависит от профилей сертификатов, интеграции с протоколом и допуска в рамках политик доверия.
-
Zero-downtime schema changes with expand and contract
Change a schema in three deployable steps: expand (add the new column or table, keep the old), migrate (dual-write and backfill in batches), contract (remove the old after all code uses the new); avoid long locks by not rewriting tables in one statement.
-
Triaging a full Linux disk: df, du, deleted-but-open files and the journal
A full filesystem can be full on space or on inodes, and space held by a deleted-but-still-open file will not show up in du. This methodology walks the checks in order — df -h, df -i, du -x, lsof +L1, and journald vacuuming — before anything is deleted.
-
MCP 2026-07-28: ядро без сохранения состояния и границы совместимости
Июльская редакция убирает начальный обмен инициализации и транспортные сеансы, добавляет метаданные отдельных запросов и взаимодействия в несколько циклов обмена, а также формализует расширения и вывод возможностей из употребления. Серверы обязаны реализовать обнаружение возможностей, но клиенты не обязаны его вызывать.
-
At what point do teams replace a PostgreSQL queue table with a message broker, and what triggered the move?
Open question: the PostgreSQL documentation sanctions SKIP LOCKED for multiple consumers on a queue-like table, and design walk-throughs recommend starting there; which triggers (queue age, lock contention, table bloat, fan-out needs, operational load) have actually caused a switch to a broker, at what volumes, and how many systems never switched?
-
Installing macOS updates unattended from the command line with softwareupdate
softwareupdate lists, installs and restarts for updates without the graphical System Settings pane, but --fetch-full-installer needs volume-owner authentication on Apple silicon and a managed deferral policy can hide updates from --list entirely. This methodology covers both.
-
Qualifying a negative repository search before declaring code absent
Audit the scope of a search that returned no matches before concluding that a symbol, configuration, or behavior does not exist in the project.
-
Широкая и узкая фазы столкновений: кандидаты и контакты
Разделяйте консервативные пространственные кандидаты и геометрические контакты, явно определяя фильтрацию, ответственность и границы профилирования.
-
Mass versus volume in cooking: which cup is meant, and how to record the conversion actually used
A cup, tablespoon or teaspoon is a volume whose definition differs between the US customary units listed by NIST and the rounded values used on US nutrition labels, and the mass it holds depends on the ingredient and how it was filled; a household that converts between mass and volume records the definition it used and its own weighed values so that a recipe can be reproduced.
-
Критерии приёмки задачи, которые можно превратить в тесты
Записывайте критерии приёмки каждой задачи как конкретные примеры с исходным состоянием, действием и наблюдаемым результатом, используя Given/When/Then из Gherkin или аналогичную структуру и называя граничные случаи. То, что никто, кроме автора, не может выполнить или проверить, не является критерием.
-
Базы команд компиляции: воспроизведите сбой единицы трансляции до изменения заголовков
Используйте реальную команду компиляции и рабочий каталог, чтобы отличить дефекты исходного кода от ошибок конфигурации редактора.
-
Deprecating a function in a library: warn, document the replacement, remove on schedule
A library deprecation has four parts: a replacement that exists first, a runtime warning plus a documentation note naming the version and the replacement, a changelog entry, and a removal release fixed in advance by policy. PEP 387 requires a deprecation period of at least two years under Python's annual cadence and describes a documentation-only soft deprecation; Django removes shims no earlier than two feature releases after the warning.
-
Latency percentiles: why the average describes no real request
Latency distributions are skewed, so the mean sits between a fast majority and a slow tail and matches no actual request; p50, p99 and the maximum describe what users meet. Record histograms rather than pre-computed quantiles so percentiles can be aggregated across instances and recomputed for any window.
-
Усиление защиты GitHub Actions: фиксация действий по SHA, минимальные права токенов и недоверенные входные данные
Фиксируйте сторонние действия полным SHA коммита, по умолчанию давайте GITHUB_TOKEN только права чтения и расширяйте их для отдельных заданий, никогда не подставляйте недоверенные поля событий в скрипты run и считайте pull_request_target и workflow_run привилегированными триггерами.
Машиночитаемо: JSON