Сохранёнки программиста

Сохранёнки программиста

Заметки и ссылки на будущее, чтобы изучить когда будет время. Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/med

Юзернейм
@prog_stuff
Категория
Технологии
Страна
РоссияРоссия
Создан
, 5 лет
Подписчики6 468−4 за неделю
Просмотров на пост, 7 дн.239−15% к пред. 7 дн.
ERR3,70 %за 7 дней

Подписчики, 30 дней

21 окт. – 4 нояб.−29 (−0,4%)

Показать таблицей
ДатаПодписчики
21 окт. 2026 г.6 497
22 окт. 2026 г.6 492
23 окт. 2026 г.6 491
24 окт. 2026 г.6 486
25 окт. 2026 г.6 482
26 окт. 2026 г.6 481
27 окт. 2026 г.6 476
28 окт. 2026 г.6 472
29 окт. 2026 г.6 470
30 окт. 2026 г.6 469
31 окт. 2026 г.6 468
1 нояб. 2026 г.6 469
2 нояб. 2026 г.6 468
3 нояб. 2026 г.6 467
4 нояб. 2026 г.6 468

Средние просмотры поста по дням

По дню публикации

Показать таблицей
ДатаПросмотров на пост
13 окт. 2026 г.300
14 окт. 2026 г.284
15 окт. 2026 г.321
16 окт. 2026 г.281
17 окт. 2026 г.249
18 окт. 2026 г.239
19 окт. 2026 г.247
20 окт. 2026 г.259
21 окт. 2026 г.248
22 окт. 2026 г.262
23 окт. 2026 г.264
24 окт. 2026 г.265
25 окт. 2026 г.273
26 окт. 2026 г.306
27 окт. 2026 г.294
28 окт. 2026 г.308
29 окт. 2026 г.262
30 окт. 2026 г.278
31 окт. 2026 г.272
1 нояб. 2026 г.272
2 нояб. 2026 г.240
3 нояб. 2026 г.213
4 нояб. 2026 г.139

Самые просматриваемые за месяц

  1. 01

    Как Cloudflare проверяет выводы ИИ-агентов В первом прототипе агент получал всё расследование одним запросом. Он смешивал телеметрию с гипотезами, выходил за область проверки и терял различие между отсутствием данных и неудачным поиском. В инженерном разборе Cloudflare сбор свидетельств вынесен в детерминированный код. До вызова модели система фиксирует область расследования, источники, время и пробелы в данных. Один снимок можно использовать повторно, чтобы сравнивать интерпретации агентов. Четыре специализированных агента исследуют трафик, историю клиента, глобальную телеметрию и сведения об угрозах. Код проверяет ссылки на свидетельства и принадлежность расследованию. Сбои источников сохраняются явно: «не проверено» отличается от «проверено, совпадений нет». Для разработчиков агентных систем это пример разделения сбора данных, анализа и проверки результата. Решение о мерах защиты принимает аналитик. #архитектура #разборы

    Фото
    Просмотры332
    Пересылки3
    Реакции—
    Комментарии0
  2. 02

    Как Uber ограничивает лавину повторных запросов Сервис C вернул ошибку. B повторил запрос к C, а после неудачи сообщил об ошибке A. Если A тоже повторит запрос, вся цепочка запустится заново. Даже небольшой лимит ретраев на каждом уровне усиливает нагрузку. В разборе Uber используется error ownership: инфраструктура сопоставляет входящие и исходящие ошибки, чтобы определить, где сбой возник, а где его только передали дальше. Если C объявил себя источником ошибки, B может повторить обращение к нему в пределах retry budget. Когда ошибка уходит выше, B снимает признак владения: A уже не должен повторять всю цепочку. В статье есть схема передачи x-uber-error-claim и обработка сложных случаев: потерянного контекста и совпавших независимых ошибок. Подход требует понимания зависимостей сервисов — одного общего правила «повторять любой 500» для этого недостаточно. #архитектура #разборы

    Фото
    Просмотры323
    Пересылки2
    Реакции—
    Комментарии0
  3. 03

    Почему реплики для чтения могут замедлять запись В текущем хранилище GitHub полные копии репозитория на файловых серверах обеспечивают и сохранность данных, и обработку запросов. Добавление реплики помогает чтению, но увеличивает работу при каждом push. В разборе новой Git-архитектуры GitHub описывает разделение этих задач. Данные репозиториев планируют хранить в Azure Blob Storage, а запросы обслуживать вычислительными воркерами с кешем. Дополнительная мощность для чтения тогда не требует новой полной реплики. Согласование хотят сосредоточить на обновлении ссылки Git. Хранение объектов и проверки можно выполнять параллельно с другими записями, а compaction и сборку мусора вынести с серверов, обслуживающих запросы. Это развивающаяся архитектура. Заявленное увеличение пропускной способности записи до 35 раз получено во внутренних бенчмарках; такой результат не обещает ускорить каждый пользовательский push в 35 раз. #архитектура #производительность

    Фото
    Просмотры318
    Пересылки2
    Реакции—
    Комментарии1
  4. 04

    Как батчинг меняет производительность OLTP в TigerBeetle Перенос привычной схемы работы с SQL-базой в TigerBeetle может дать слабый результат. Множество клиентов, отправляющих по одной транзакции, не раскрывает возможности движка. В разборе банковской нагрузки авторы меняют модель данных, используют батчи и идентификаторы с временной компонентой. Одна логическая транзакция состоит из двух переводов: флаг Linked связывает их атомарно — фиксируются оба либо ни один. Пока клиент ждёт ответа на текущий запрос, он собирает новые операции в следующий батч. Отдельная искусственная задержка для накопления не нужна. Сетевые и репликационные издержки распределяются на несколько операций. Материал полезен при проектировании транзакционных сервисов: разобраны модель, способ подачи нагрузки и локальность записей. Показанное ускорение относится к конкретному эксперименту; переносить его цифры на любой сервис нельзя. #производительность #разборы

    Фото
    Просмотры314
    Пересылки1
    Реакции—
    Комментарии0
  5. 05
    Просмотры311
    Пересылки1
    Реакции—
    Комментарии0

Новые посты

#3116Фото
Просмотры112−58%к среднему
Пересылки2
Реакции1
Комментарии0
#3115Фото
Просмотры165−38%к среднему
Пересылки1
Реакции—
Комментарии0
#3114Фото

WAF может проверить ответ сервера перед отправкой клиенту Запрос пытается открыть служебную страницу без авторизации. Приложение возвращает HTML административной панели. Проверка ответа помогает увидеть, что сервер действительно отдал закрытое содержимое. В Cloudflare WAF добавили сопоставление запроса с ответом. Правило может учитывать путь, состояние авторизации, код ответа и другие доступные признаки. При совпадении WAF подменяет ответ страницей блокировки до отправки клиенту. Начать можно с узкого сценария: проверить обращения к административным адресам и посмотреть, какие ответы получает неавторизованный посетитель. Сначала соберите события в журнал, затем настройте блокировку. Пользовательские правила по содержимому тела ответа пока недоступны. Блокировка ответа также не отменяет действия, которые приложение уже успело выполнить на сервере.

Открыть в Telegram
Просмотры202−24%к среднему
Пересылки1
Реакции—
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
5 ч115
17 ч147
29 ч202
  1. Через 6 часов115
  2. Через 24 часа202
  3. Всего сейчас202
#3113Текст

Два распаковщика могут увидеть разные файлы в одном tar-архиве Сервис проверяет архив и видит безопасный файл. Установщик открывает тот же архив — и находит дополнительный файл с другим содержимым. Такое возможно, когда программы по-разному трактуют записи tar. В разборе tar-codec есть примеры расхождений, из-за которых проверка и последующая распаковка получают разные наборы файлов. Команда Astral столкнулась с этим при работе над uv и написала более строгий парсер. Начиная с uv 0.13 он используется для обработки исходных пакетов Python. Если ваш сервис принимает архивы, проверьте всю цепочку: чем проверяете содержимое, чем распаковываете и какие варианты формата разрешаете. Добавьте в тесты архивы с повторяющимися именами и неоднозначными заголовками. Проверяющая и использующая файл части системы должны одинаково понимать его содержимое.

Открыть в Telegram
Просмотры224−15%к среднему
Пересылки0
Реакции1
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
9 ч168
33 ч224
  1. Всего сейчас224
#3112Фото

GitHub автоматизировал пересмотр доступов внешних участников Подрядчик закончил работу, тестовый проект закрыли, а права на репозиторий остались. Когда таких проектов десятки, ручную проверку легко отложить. В GitHub для общей организации создали приложение Evergreen. Раз в квартал оно открывает задачу со списком внешних участников. Владелец подтверждает тех, кому доступ ещё нужен. По истечении срока неподтверждённые права отзываются. Отдельный процесс ищет репозитории без недавней активности людей: сначала предупреждает владельца, затем архивирует проект. Решения и изменения сохраняются в задачах и JSON-файлах управляющего репозитория. Для своей команды можно начать с одного действия: назначить владельца каждому репозиторию и дату следующего пересмотра доступов. Затем автоматизировать напоминания и журнал решений.

Открыть в Telegram
Просмотры237−10%к среднему
Пересылки1
Реакции—
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
5 ч139
17 ч181
29 ч237
  1. Через 6 часов139
  2. Через 24 часа237
  3. Всего сейчас237
#3111Фото

Общий ключ шардирования помогает оставить JOIN внутри одной базы Таблицы клиентов и заказов распределили по разным серверам: клиентов — по id, заказы — по собственному id. Теперь запросу «клиент и его заказы» приходится собирать данные с нескольких шардов. В разборе групп шардирования показан другой подход: размещать заказы по customer_id, используя то же правило распределения, что и для клиентов. Связанные строки окажутся на одном шарде, где можно выполнить JOIN и транзакцию локально. Перед выбором ключа выпишите основные запросы приложения. Какие таблицы они соединяют? Какие строки меняются вместе? Какой идентификатор известен в начале запроса? Эти ответы помогут выбрать размещение данных. Особенно полезно проверить запросы, в которых будущего ключа шардирования вообще нет: для них может потребоваться обращение к нескольким шардам.

Открыть в Telegram
Просмотры242−9%к среднему
Пересылки2
Реакции—
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
9 ч176
33 ч242
  1. Всего сейчас242
#3110Фото
Просмотры283+7%к среднему
Пересылки2
Реакции—
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
5 ч117
17 ч168
29 ч234
77 ч283
  1. Через 6 часов117
  2. Через 24 часа234
  3. Всего сейчас283
#3109Фото
Просмотры260−2%к среднему
Пересылки2
Реакции0
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
9 ч155
33 ч232
69 ч260
  1. Всего сейчас260
#3108Текст
Просмотры275+4%к среднему
Пересылки0
Реакции—
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
4 ч109
29 ч220
77 ч275
  1. Через 6 часов109
  2. Через 24 часа220
  3. Всего сейчас275
#3107Текст
Просмотры269+2%к среднему
Пересылки2
Реакции—
Комментарии0
Динамика просмотровСкрыть динамику

Рост просмотров

Часов после публикации

Показать таблицей
Часов после публикацииПросмотры
0 ч0
9 ч149
69 ч269
  1. Всего сейчас269

Все посты

Связи