fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

Типичный программист

Типичный программист

رفتن به کانال در Telegram

Всё самое интересное по программированию Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site VK: vk.com/tproger Регистрация в перечне РКН: https://tprg.ru/mJwo

نمایش بیشتر

📈 تحلیل کانال تلگرام Типичный программист

کانال Типичный программист (@tproger) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 77 966 مشترک است و جایگاه 1 640 را در دسته فناوری و برنامه‌ها و رتبه 7 336 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 77 966 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 25 اکتبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -298 و در ۲۴ ساعت گذشته برابر -11 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید شده (به صورت رسمی توسط تلگرام)
  • نرخ تعامل (ER): میانگین تعامل مخاطب 12.16% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 5.82% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 9 485 بازدید دریافت می‌کند. در اولین روز معمولاً 4 542 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 24 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند sql, архитектура, api, docker, github تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
“Всё самое интересное по программированию Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site VK: vk.com/tproger Регистрация в перечне РКН: https://tprg.ru/mJw...”

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 26 اکتبر, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

77 966
مشترکین
-1124 ساعت
-647 روز
-29830 روز

در حال بارگذاری داده‌ها

جذب مشترکین
اکتبر '26
اکتبر '26
+339
در 37 کانال‌ها
سپتامبر '26
+381
در 19 کانال‌ها
Get PRO
اوت '26
+414
در 19 کانال‌ها
Get PRO
ژوئیه '26
+643
در 21 کانال‌ها
Get PRO
ژوئن '26
+354
در 13 کانال‌ها
Get PRO
مه '26
+708
در 17 کانال‌ها
Get PRO
آوریل '26
+394
در 13 کانال‌ها
Get PRO
مارس '26
+646
در 29 کانال‌ها
Get PRO
فوریه '26
+427
در 28 کانال‌ها
Get PRO
ژانویه '26
+349
در 13 کانال‌ها
Get PRO
دسامبر '25
+7 357
در 44 کانال‌ها
Get PRO
نوامبر '25
+370
در 30 کانال‌ها
Get PRO
اکتبر '25
+988
در 25 کانال‌ها
Get PRO
سپتامبر '25
+1 690
در 24 کانال‌ها
Get PRO
اوت '25
+486
در 33 کانال‌ها
Get PRO
ژوئیه '25
+509
در 40 کانال‌ها
Get PRO
ژوئن '25
+307
در 12 کانال‌ها
Get PRO
مه '25
+423
در 24 کانال‌ها
Get PRO
آوریل '25
+447
در 27 کانال‌ها
Get PRO
مارس '25
+809
در 22 کانال‌ها
Get PRO
فوریه '25
+817
در 14 کانال‌ها
Get PRO
ژانویه '25
+904
در 30 کانال‌ها
Get PRO
دسامبر '24
+655
در 16 کانال‌ها
Get PRO
نوامبر '24
+456
در 20 کانال‌ها
Get PRO
اکتبر '24
+614
در 25 کانال‌ها
Get PRO
سپتامبر '24
+601
در 13 کانال‌ها
Get PRO
اوت '24
+635
در 12 کانال‌ها
Get PRO
ژوئیه '24
+541
در 13 کانال‌ها
Get PRO
ژوئن '24
+327
در 9 کانال‌ها
Get PRO
مه '24
+546
در 14 کانال‌ها
Get PRO
آوریل '24
+564
در 11 کانال‌ها
Get PRO
مارس '24
+368
در 3 کانال‌ها
Get PRO
فوریه '24
+339
در 7 کانال‌ها
Get PRO
ژانویه '24
+325
در 7 کانال‌ها
Get PRO
دسامبر '23
+315
در 9 کانال‌ها
Get PRO
نوامبر '23
+3 368
در 30 کانال‌ها
Get PRO
اکتبر '23
+472
در 5 کانال‌ها
Get PRO
سپتامبر '23
+558
در 0 کانال‌ها
Get PRO
اوت '23
+890
در 0 کانال‌ها
Get PRO
ژوئیه '23
+713
در 0 کانال‌ها
Get PRO
ژوئن '23
+688
در 0 کانال‌ها
Get PRO
مه '23
+743
در 0 کانال‌ها
Get PRO
آوریل '23
+725
در 0 کانال‌ها
Get PRO
مارس '23
+748
در 0 کانال‌ها
Get PRO
فوریه '23
+1 887
در 0 کانال‌ها
Get PRO
ژانویه '23
+1 425
در 0 کانال‌ها
Get PRO
دسامبر '22
+2 021
در 0 کانال‌ها
Get PRO
نوامبر '22
+463
در 0 کانال‌ها
Get PRO
اکتبر '22
+854
در 0 کانال‌ها
Get PRO
سپتامبر '22
+599
در 0 کانال‌ها
Get PRO
اوت '22
+720
در 0 کانال‌ها
Get PRO
ژوئیه '22
+810
در 0 کانال‌ها
Get PRO
ژوئن '22
+741
در 0 کانال‌ها
Get PRO
مه '22
+893
در 0 کانال‌ها
Get PRO
آوریل '22
+862
در 0 کانال‌ها
Get PRO
مارس '22
+873
در 0 کانال‌ها
Get PRO
فوریه '22
+457
در 0 کانال‌ها
Get PRO
ژانویه '22
+477
در 0 کانال‌ها
Get PRO
دسامبر '21
+846
در 0 کانال‌ها
Get PRO
نوامبر '21
+932
در 0 کانال‌ها
Get PRO
اکتبر '21
+963
در 0 کانال‌ها
Get PRO
سپتامبر '21
+1 165
در 0 کانال‌ها
Get PRO
اوت '21
+1 052
در 0 کانال‌ها
Get PRO
ژوئیه '21
+1 065
در 0 کانال‌ها
Get PRO
ژوئن '21
+984
در 0 کانال‌ها
Get PRO
مه '21
+933
در 0 کانال‌ها
Get PRO
آوریل '21
+1 188
در 0 کانال‌ها
Get PRO
مارس '21
+1 269
در 0 کانال‌ها
Get PRO
فوریه '21
+1 815
در 0 کانال‌ها
Get PRO
ژانویه '21
+1 521
در 0 کانال‌ها
Get PRO
دسامبر '20
+77 508
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
27 اکتبر0
26 اکتبر+6
25 اکتبر+15
24 اکتبر+10
23 اکتبر+5
22 اکتبر+11
21 اکتبر+17
20 اکتبر+20
19 اکتبر+13
18 اکتبر+14
17 اکتبر+24
16 اکتبر+30
15 اکتبر+19
14 اکتبر+15
13 اکتبر+17
12 اکتبر+20
11 اکتبر+13
10 اکتبر+3
09 اکتبر+17
08 اکتبر+13
07 اکتبر+12
06 اکتبر+11
05 اکتبر+9
04 اکتبر+7
03 اکتبر+5
02 اکتبر+8
01 اکتبر+5
پست‌های کانال
Голое железо и root-доступ, ВМ со снапшотами по расписанию, Kubernetes с GitOps в проде или всё сразу. В фановом тесте от ком
Голое железо и root-доступ, ВМ со снапшотами по расписанию, Kubernetes с GitOps в проде или всё сразу. В фановом тесте от команды Deckhouse из таких ответов складывается один из 10 типов инфраструктуры. Укротитель давно научился жить с ВМ и Kubernetes рядом, но устал от двух центров управления. Соковыжималка запускает базы и ML прямо на железе, чтобы гипервизор не съедал производительность. Антиквар не трогает систему, которая работает с нулевых. А Повелителю облаков уютно до первого кругленького счёта. Грузчик и Коллекционер выпадают реже всех. Если достался один из них, ссылкой на результат точно стоит поделиться с командой. → Пройти тест и узнать свой тип

2
Git умеет запоминать ваши решения конфликтов Долгоживущая ветка, очередной rebase и знакомый конфликт в том же участке файла. Кажется, это решение уже набирали. Git умеет его запомнить: механизм rerere сохраняет исходный конфликт и результат ручной правки, если включён rerere.enabled. При следующем подходящем конфликте он пытается применить прежнее решение через трёхстороннее слияние. Это полезно, когда ветку приходится несколько раз сверять с изменяющейся основной веткой. Записывать решение вручную отдельной командой при каждом шаге обычно не нужно: merge, commit и rebase сами вызывают rerere в нужных местах. Но память Git не заменяет проверку смысла. Старый ответ может чисто примениться к коду и всё равно оказаться неверным. В базовом режиме без autoupdate результат остаётся в рабочем дереве, а индекс не меняется. Перед git add остаются просмотр diff и тесты. Экономится повторное редактирование, а ответственность за решение остаётся у разработчика.
4 186
3
SQLite может завершить коммит удалением файла Транзакция меняет несколько страниц базы, а питание может пропасть между двумя записями. Как после перезапуска получить «всё или ничего»? В разборе атомарного коммита SQLite важнейший момент выглядит буднично: удаляется файл журнала. Речь о rollback journal в режиме DELETE. Сначала SQLite сохраняет исходные страницы в журнал и сбрасывает его на устойчивый носитель. Затем записывает изменённые страницы базы и тоже синхронизирует их. Только после этого удаляет журнал. Пока он пригоден для восстановления, прерванные изменения можно откатить. После удаления транзакция считается завершённой. При открытии базы SQLite проверяет не просто наличие файла, а признаки «горячего» журнала, включая заголовок и блокировки. Всё это опирается на корректную работу синхронизации и хранилища. У WAL другой протокол. Здесь же эффект «всё или ничего» получается из строгого порядка действий и чёткой границы завершения.
5 080
4
Option в Rust не обязательно занимает дополнительное место У значения есть два состояния: оно присутствует или его нет. Кажется, для Option<T> к самому значению придётся добавить отдельный флаг. Но тип NonZeroU32 уже оставляет свободное состояние: число ноль в нём запрещено. Именно ноль можно использовать для None, а остальные значения остаются для Some. Поэтому Option<NonZeroU32> имеет тот же размер и выравнивание, что и NonZeroU32. Это гарантия документации Rust, а не удачное совпадение в одном эксперименте с компилятором. Такой приём называют null pointer optimization, хотя работает он и с числами NonZero. Гарантия распространяется на конкретный список типов, в том числе ссылки и некоторые указатели. Переносить её на любой Option<T> нельзя. Здесь ограничение типа даёт полезный бонус: отсутствие значения помещается в уже свободную комбинацию битов.
5 548
5
Кто испортил это поле? В объекте уже лежит неправильное значение. Где его записали, неизвестно, а при следующем запуске ошибка может исчезнуть. Отладчик rr предлагает сначала поймать сбой под записью, а потом сколько угодно раз разбирать один и тот же запуск в gdb. В примере проекта у объекта Firefox неверная ширина. Разработчик ставит watch -l mRect.width и выполняет reverse-cont. Отладчик идёт назад и останавливается на присваивании, которое изменило поле. Адреса объектов и порядок событий при повторном воспроизведении сохраняются, поэтому найденные зацепки не теряются после перезапуска отладки. Это работа с сохранённым исполнением. Для rr нужны Linux и совместимый процессор, в виртуальной машине ещё и доступ к аппаратным счётчикам. Есть ощутимая цена для параллельного кода: rr эмулирует одноядерную машину. Зато пойманный редкий баг больше не приходится ловить заново.
5 715
6
Один зашифрованный архив, несколько получателей и никакого общего пароля Нужно передать архив нескольким коллегам. Можно завести общий пароль и потом разбираться, кому его уже переслали. У утилиты age есть другой вариант: один файл шифруется на несколько публичных ключей, и каждый получатель открывает его своим секретным ключом. Список адресатов задаётся повторением -r или файлом с ключами через -R recipients.txt. Сами секретные ключи друг другу передавать не нужно. А благодаря обычным потокам Unix вывод tar можно сразу направить в age, без промежуточного незашифрованного архива на диске. Есть важная граница: шифрование само по себе не подтверждает личность отправителя. Принадлежность публичных ключей тоже нужно проверить отдельно. Удобство здесь вполне конкретное: несколько человек читают один архив, а передавать друг другу личные секретные ключи не приходится.
5 871
7
Как поймать причину торможения, которое уже закончилось Запрос иногда зависает, но к моменту включения трассировки всё снова работает. Тут полезен flight recorder из Go 1.25: он заранее собирает недавние события runtime в буфер в памяти. Когда программа замечает проблему, из буфера можно сохранить предшествующий ей фрагмент. В примере команды Go снимок запускается после первого ответа дольше 100 мс. Трасса приводит к неожиданному виновнику: defer b.mu.Unlock() внутри цикла. Блокировки снимаются только при выходе из функции, а та ещё успевает отправить HTTP-запрос. Всё это время другие горутины ждут. Самописец здесь помогает сохранить именно момент ожидания, который иначе легко пропустить. Порог в 100 мс относится к примеру, а буфер и сбор событий расходуют ресурсы. Зато не нужно копить трассу за несколько дней работы сервера ради одного редкого сбоя.
6 026
8
Сколько ключей придётся помнить ради дедупликации потока? Найти повторное событие по ключу легко, пока можно помнить все ключ
Сколько ключей придётся помнить ради дедупликации потока? Найти повторное событие по ключу легко, пока можно помнить все ключи за всё время. В непрерывном потоке такое состояние растёт без конца. В разборе дедупликации через Flink SQL автор сравнивает варианты с разными ограничениями. Срок хранения состояния, TTL, ограничивает память, но меняет поведение: после удаления ключа старый дубль снова может пройти как новое событие. Важен и результат запроса. Один вариант сразу выдаёт строку, а позже присылает её обновление. Другой ждёт, чтобы учесть запоздавшие события. Получатель должен уметь работать с выбранным режимом. Даже настройка TTL требует проверки: в рассмотренной версии подсказка STATE_TTL не применяется к оператору дедупликации. До запуска стоит прогнать поздний дубль, истечение срока хранения и обновление результата — именно на них короткий SQL начинает вести себя неожиданно.
6 200
9
Проверенный бот тоже может перегрузить сайт Известный поисковый робот может ходить только по разрешённым страницам и всё равн
Проверенный бот тоже может перегрузить сайт Известный поисковый робот может ходить только по разрешённым страницам и всё равно создавать слишком большую нагрузку. Проверка владельца бота сама по себе этого не предотвращает. Cloudflare описала подход к постоянной оценке проверенных ботов. Среди сигналов — соблюдение robots.txt и реакция на HTTP 429: снижает ли робот частоту запросов, учитывает ли указание подождать. Так доверие к боту должно зависеть от наблюдаемого поведения после проверки его личности. Владельцу сайта нужна возможность понять, за что робот получил определённую оценку. Публичные оценки в Cloudflare Radar пока заявлены как следующий шаг. Уже сейчас при разборе нагрузки полезно смотреть, что происходит после ответа «слишком много запросов»: клиент действительно отступает или немедленно приходит снова.
6 185
10
Маршрутизатору базы не обязательно понимать каждую колонку Результат запроса проходит через промежуточный сервис. Тот превращ
Маршрутизатору базы не обязательно понимать каждую колонку Результат запроса проходит через промежуточный сервис. Тот превращает каждую строку в объекты, разбирает значения, а потом собирает те же байты для клиента. Даже когда менять ничего не требовалось. В маршрутизаторе Neki PlanetScale сохраняет ответы PostgreSQL в исходном формате протокола. Если результат можно передать дальше, значения колонок остаются байтами. Появился LIMIT — нужно найти границы строк и выбрать нужные. Появилась общая сортировка результатов с нескольких шардов — понадобится разобрать ключ сортировки. Остальные колонки можно по-прежнему не преобразовывать в типизированные значения. Для вычисления агрегатов разбор всё же потребуется. Neki переходит к более подробному представлению данных по мере необходимости: отдельный сетевой переход остаётся, но часть промежуточных объектов создавать больше не нужно.
6 190
11
Профилировщик Python 3.15 подключается к живому процессу В Python 3.15 появился Tachyon — статистический профилировщик из pro
Профилировщик Python 3.15 подключается к живому процессу В Python 3.15 появился Tachyon — статистический профилировщик из profiling.sampling. Он снимает образцы стеков и помогает увидеть, где программа проводит время. Подключиться можно без изменения её кода. В разборе Astral профилируют обработку молекул через RDKit. Заметная доля образцов стека приходится на функцию, которая объединяет вложенные списки через sum(symbols, []). Такая запись многократно создаёт и копирует промежуточные списки. По мере роста входа работа становится квадратичной. В статье её заменяют разворачиванием списков с новым синтаксисом Python 3.15. Отчёт помогает добраться до конкретной функции, хотя внешне задача выглядит как вычисления химической библиотеки. При подключении к рабочему сервису всё равно стоит измерить издержки профилирования на своей нагрузке.
6 690
12
GitHub автоматизировал проверку доступов и репозиториев В общей организации остаются доступы подрядчиков и репозитории, владе
GitHub автоматизировал проверку доступов и репозиториев В общей организации остаются доступы подрядчиков и репозитории, владельцы которых давно заняты другим. Ручная ревизия быстро превращается в задачу «когда-нибудь потом». GitHub собрал для этого приложение Evergreen. Раз в квартал оно просит подтвердить доступ внешних участников. Неактивные репозитории проходят отдельную проверку перед архивированием. Обсуждение идёт в issues, задачи запускаются через GitHub Actions, состояние хранится в JSON в Git. У решения остаётся история: кто получил предупреждение, что подтвердили и почему доступ отозвали. Молчание тоже имеет последствия, но после срока на ответ. Неподтверждённый доступ снимают, заброшенный репозиторий архивируют. Архивирование сохраняет код и историю — это не удаление проекта.
6 702
13
С LZ4 PostgreSQL прочитал весь текст ради первых 200 символов Нужны первые 200 символов большого текста. Кажется, для этого д
С LZ4 PostgreSQL прочитал весь текст ради первых 200 символов Нужны первые 200 символов большого текста. Кажется, для этого достаточно прочитать небольшой кусок. Но способ сжатия меняет объём работы. В эксперименте PlanetScale сравнили pglz и LZ4 на PostgreSQL 18. Для pglz база умеет оценить, сколько сжатых данных нужно для начала строки. Для LZ4 такой оценки нет: сначала приходится забирать значение целиком. На ста значениях примерно по 1 МБ получение начала текста заняло около 1 мс с pglz и 16 мс с LZ4. Обращений к страницам получилось 301 против 6234. Данные уже находились в памяти. LZ4 при этом быстрее загружал другой набор данных — JSON-документы. Выбирать сжатие только по скорости записи рискованно: для списка превью, полного документа и чтения диапазона байтов база выполняет разную работу.
7 077
14
Почему remove не удаляет число из Set В цикле добавляем short в Set, затем вызываем remove(i - 1). Кажется, пре
Почему remove не удаляет число из Set<Short> В цикле добавляем short в Set<Short>, затем вызываем remove(i - 1). Кажется, предыдущий элемент должен исчезнуть. Но результат i - 1 имеет тип int и упаковывается в Integer. В коллекции лежат Short, поэтому ничего не удаляется. Компилятор доволен: метод remove(Object) принимает такой аргумент. В разборе Error Prone показано, как поймать эту ошибку ещё при сборке. Инструмент встраивается в javac и проверяет подозрительные конструкции с учётом типов. Другой пример — YYYY в формате даты. Это год по нумерации недель, поэтому на границе декабря и января имя отчёта может получить неожиданный год. К встроенным проверкам можно добавить свои правила через BugChecker. Например, запрещать характерные для проекта ошибки, пока они ещё не попали на ревью.
7 552
15
Больше CSS — меньше работы при открытии страницы Стили тоже могут тормозить React: JavaScript вычисляет их во время выполнени
Больше CSS — меньше работы при открытии страницы Стили тоже могут тормозить React: JavaScript вычисляет их во время выполнения, создаёт классы и вставляет правила. Цена появляется и на сервере, и при запуске компонентов в браузере. GitHub описал переход от CSS-in-JS к CSS Modules. Стили готовят заранее, а компоненты получают имена классов. В браузер отправляется больше обычного CSS, зато исчезает часть работы JavaScript. После миграции компонентов Primer время серверного рендеринга страницы сократилось на 55%, инициализации компонентов — на 25%. Это результат конкретного этапа, а не обещание такого ускорения любому проекту. Миграцию проводили постепенно, с флагами и визуальными проверками. Удалить библиотеку стилей оказалось проще, чем убедиться, что после этого не съехала ни одна кнопка.
7 742
16
Кеш занимал 800 МБ. Большая часть переводов просто лежала без дела Uber обслуживает миллионы переводов в секунду. Держать всё
Кеш занимал 800 МБ. Большая часть переводов просто лежала без дела Uber обслуживает миллионы переводов в секунду. Держать всё в памяти удобно, пока очередное обновление не создаёт рядом вторую копию кеша и не заканчивается память. Команда перенесла редко используемые переводы на диск. В RAM оставили индекс ключей и кеш востребованных значений. Хранилище разделили на 256 частей, чтобы запросы меньше мешали друг другу при блокировках. В приведённом примере расход памяти снизился с 800 до 80–120 МБ. При обновлении нужны ещё около 40 МБ метаданных вместо второй копии на 800 МБ. Чтобы после обновления не получать волну чтений с диска, новый кеш заранее заполняют переводами, которые запрашивали за последние 15 минут. Экономия памяти здесь потребовала учесть и то, что произойдёт при следующей перезагрузке данных.
7 607
17
Всем привет, админ на связи! По моим наблюдениям сегодня резко выросла скорость развития многих технологических проектов. Нес
Всем привет, админ на связи! По моим наблюдениям сегодня резко выросла скорость развития многих технологических проектов. Несложно догадаться, что за этим стоит активное внедрение ИИ во всех процессы бизнеса. То же самое с digital направлением, где агенты позволяют как нарастить темпы работы, так и предлагают новые форматы. Чтобы не отстать от рынка, я иду на конференцию AI BOOST’26. Хочу там познакомиться с владельцами таких агентств и бизнеса, узнать из первых уст, чем дышит рынок и набраться полезных инсайтов для собственных проектов. Программа рассчитана на 22 и 23 октября. Я там планирую быть с момента открытия. Приглашаю вас с собой! Можем даже там пересечься между докладами или на афтепати.
7 958
18
Изменений стало вдвое больше. Проверки не успели за разработкой В августе Spotify влил около 17 тысяч изменений против 8100 г
Изменений стало вдвое больше. Проверки не успели за разработкой В августе Spotify влил около 17 тысяч изменений против 8100 годом ранее. Компания рассказала, что меняет в контроле качества на фоне роста автоматизации и работы с ИИ. Один автоматический апдейт зависимости прошёл проверки, но сломался в продакшене. Теперь компания усиливает защитные проверки и откат, а такие обновления планирует на рабочие часы команд-владельцев. В обработке контента были другие пробелы: ошибки могли долго оставаться незамеченными, а пакетные задания конкурировали с новыми загрузками. Добавили сквозной мониторинг, изменили приоритеты и расширили мощности. В рассмотренных инцидентах Spotify не нашла существенного прямого вклада кода, написанного ИИ. Зато увидела, что объём изменений рос быстрее возможностей их проверки. Вывод относится к данным и разбору самой компании.
8 023
19
Больше реплик Git — медленнее push. GitHub меняет эту связку В нынешней архитектуре GitHub репозиторий обычно хранится на пят
Больше реплик Git — медленнее push. GitHub меняет эту связку В нынешней архитектуре GitHub репозиторий обычно хранится на пяти файловых серверах. Дополнительные копии помогают обслуживать чтение, но каждая участвует и в записи. Поэтому масштабирование чтения увеличивает работу при push. Когда тысячи агентов и CI-задач обращаются к одному репозиторию, эта связь становится ограничением. В плане новой Git-инфраструктуры GitHub разделяет надёжное хранение и масштабирование обслуживания. Согласование хотят сосредоточить на обновлении ссылки на коммит; работу с объектами, проверки и обслуживание распараллеливать там, где это допускает корректность. Уплотнение данных и сборку мусора выносят с серверов, отвечающих на живые запросы. Это описание текущей перестройки: статья не утверждает, что весь GitHub уже переведён на новую архитектуру.
8 177
20
Старый токен Docker Hub получал права нового владельца При превращении личного аккаунта в организацию Docker Hub переносил ег
Старый токен Docker Hub получал права нового владельца При превращении личного аккаунта в организацию Docker Hub переносил его PAT-токены указанному владельцу. Сам секрет токена оставался прежним, а согласия нового владельца не требовалось. Поэтому известный создателю аккаунта токен мог начать работать в реестре от имени другого пользователя. В пределах разрешений он позволял обращаться к образам, включая их публикацию или удаление. Docker опубликовал разбор CVE-2026-105445. Ошибку исправили 30 сентября: перенос PAT убрали. Проверка примерно 304 тысяч публикаций образов с перенесёнными токенами не выявила признаков эксплуатации. Доступ к веб-интерфейсу и смене пароля ошибка не давала. Урок для проектирования доступа: смена владельца объекта требует отдельной проверки того, что происходит с уже выданными учётными данными.
7 631