TGViewer
Channel ✦ Verified Channel
Типичный программист

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

@tproger

Всё самое интересное по программированию

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Subscribers
78.4K
Photos
3.7K
Videos
1.2K
Links
8.4K
Recent Posts 20 shown
Post #14834 2.76K

Forwarded from Data Analysis / Big Data

Мы вернулись из Суздаля с новым взглядом на магазин у дома

Были на tech-туре MAGNIT TECH «Без предела: Исходный код ритейла» и нам понравилось, как сошлись место и тема. Сначала купеческие ряды Суздаля, затем разговор о технологиях современной торговли на ГЭС на Нерли. В программе были и воздушный шар, и общение с инженерами у самовара. Получилась поездка, в которой было время и Суздалем полюбоваться, и познакомиться с людьми, стоящими за проектами.

Из выступлений особенно запомнился доклад Максима Покусенко о прогнозировании спроса. 17 млрд прогнозов ежедневно впечатляют, когда понимаешь связь с совершенно обыденной, казалось бы, вещью: приходишь в магазин, а нужный товар лежит на полке. Доклад помог увидеть, сколько расчётов стоит за этим привычным удобством.

Презентацию советуем посмотреть и тем, кто не работает с ритейлом. На одном понятном примере здесь можно проследить, как результат ML-модели становится решением о поставке.
  • 🔥 2
  • 💯 2
  • 💘 2
  • 🤷‍♀ 1
  • 👏 1
  • 😁 1
  • 😢 1
  • 🎉 1
  • 🕊 1
  • 🫡 1
  • 🎅 1
Post #14833 4.04K
Вопрос на разогрев: что из этого появилось раньше — ICQ, MySpace или Nokia 3310?

Если задумались хотя бы на секунду, анкета к 25-летию SpaceWeb вам понравится. Там внутри вся хронология рунета, а заодно вопросы про любимый спорт, лучшего друга и обои на рабочий стол.
  • 🎄 5
  • 👏 4
  • 😁 4
  • 👍 2
  • 🤯 2
  • 🤣 2
  • 🦄 2
  • ❤‍🔥 1
  • 🗿 1
  • 😘 1
  • 💊 1
Post #14832 4.28K
Почему тип указателя не гарантирует безопасность памяти

Указатель сохраняет тип, даже когда байты по его адресу уже означают другое. В примере на Zig структура с меткой сначала хранит срез байтов. Код берёт указатель на это поле, записывает в ту же структуру 128-битное число, а затем разыменовывает старый указатель. Адрес и тип указателя прежние, но внутри уже число: возникает путаница типов.

Автор называет этот случай самым трудным контрпримером для безопасности памяти. Он не зависит от кучи и деструкторов; похожий сценарий ломает и Ada. Практическую опасность автор не преувеличивает: насколько такой баг пригоден для эксплуатации, неясно. Куда более распространённое переполнение буфера компилятор может закрыть проверкой границ.

В разборе Memory Safety’s Hardest Problem есть код, вывод программы и аргумент, почему встроенные границы массивов в C могли предотвратить немало проблем.
matklad.github.io Memory Safety's Hardest Problem Uplifting a lobsters comment for easier reference.
  • 👌 4
  • 🎉 3
  • 🤩 2
  • 🌚 2
  • 🎃 2
  • 🤝 2
  • 👍 1
  • 😢 1
  • 🙏 1
  • 🎄 1
  • 🦄 1
Post #14831 4.57K

Forwarded from DevOps для ДевоПсов

В Суздаль за DevOps

Недавно мы съездили на «Без предела: Исходный код ритейла» от MAGNIT TECH в Суздаль. Разговор о технологиях начинался с купеческих рядов, продолжился на Demo Day на ГЭС на Нерли, а затем перешёл к самовару. Мы кайфанули от формата.

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

Не важно, сколько раз ты упал – важно, сколько раз ты поднялся. Главное — поднимайся с правильным IP-адресом
  • 🔥 7
  • ❤ 6
  • 🎉 4
  • 🌭 4
  • 😁 3
  • 💯 3
  • 👀 3
  • 😨 3
  • 🥰 2
  • 👨‍💻 2
  • 🤷 2
Post #14829 5.37K
Как Cloudflare освободила 100 ТБ памяти в DNS-кеше 1.1.1.1

Big Pineapple за сервисом 1.1.1.1 хранит больше 250 млрд записей кеша. В таком масштабе лишний байт обходится серверам более чем в 250 ГБ памяти. Пять изменений сократили запись больше чем вдвое и освободили около 100 ТБ. Пропускная способность вставки выросла на 43%, задержка поиска снизилась на 19%.

DNS-ответ в кеше уже не меняется, но Vec хранит ёмкость для роста. Замена восьми векторов и строк на контейнеры фиксированного размера сэкономила 64 байта на запись. Ещё 28 байт убрали, объединив три раздела ответа в один список со смещениями.

В разборе Cloudflare есть остальные шаги. Одних тестов мало: память процесса зависит от трафика, заполнения кеша и состояния распределителя памяти, поэтому её сверяли при внедрении.
  • 🔥 25
  • 🤨 7
  • 💔 4
  • 👌 3
  • 🤩 2
  • 👀 2
  • 😴 1
  • 👻 1
  • 🤝 1
  • 💘 1
  • 😘 1
Post #14828 5.48K
От исходного кода до процессора: разберись, как работает программа 💻

Стартует практический курс YADRO «Системное программирование с использованием языка С» для тех, кто уже знаком с синтаксисом C и хочет разобраться, как программа работает изнутри.

Формат: курс пройдет онлайн с октября 2026 по май 2027 года. Занятия — раз в неделю, где 80% времени будет посвящено практике.

Этот курс для тебя, если ты:

🔵 учишься в вузе;
🔵 уверенно владеешь базовыми конструкциями C;
🔵 понимаешь, как работают указатели, структуры данных и динамическая память;
🔵 знаешь основные алгоритмы и структуры данных.

*️⃣ Будет плюсом опыт разработки под Linux.

Материалы для подготовки и форму регистрации можно найти по ссылке 🔗

18 сентября — приходи на онлайн-трансляцию, где мы расскажем подробнее о практических курсах и ответим на все вопросы. После вебинара пройдет обзорная лекция про системное программирование и роль языка С. Регистрация — здесь.
  • ❤ 10
  • 👍 9
  • 👎 3
  • 😭 3
  • 🥰 2
  • 👌 2
  • 💯 2
  • 👀 2
  • 🤣 1
  • 🤗 1
  • 🗿 1
Post #14827 5.54K
Post #14826 5.55K

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

Как конечные автоматы индексируют миллиарды строк

Обстоятельный разбор Эндрю Галланта показывает, как конечные автоматы хранят упорядоченные множества и словари. Строка становится последовательностью переходов, а общие состояния используются повторно. Проверка ключа требует не больше шагов, чем в нём символов, независимо от размера набора.

Далее библиотека fst на Rust и опыты. Индекс 16 млн заголовков Wikipedia объёмом 384 МБ построился за 18,3 секунды и занял 157 МБ. Поиск по регулярному выражению занял 0,023 секунды, нечёткий поиск с двумя правками: 0,094 секунды. Финал: более 1,6 млрд URL из Common Crawl объёмом 134 ГБ.

В лонгриде Эндрю Галланта разобраны границы: нужен быстрый доступ к произвольному участку файла, а структура не универсальна. Читать разработчикам поиска и словарей, чтобы оценить вариант индекса.
burntsushi.net Index 1,600,000,000 Keys with Automata and Rust - Andrew Gallant's Blog
  • ❤ 7
  • 🤔 5
  • 💯 5
  • 🦄 4
  • 🌭 3
  • 🤷‍♂ 2
  • 🤓 2
  • 🎄 2
  • 👻 1
  • 🎃 1
  • 🤷 1
Post #14825 5.33K
Космический хакатон. Санкт-Петербург, Красноярск или онлайн из любой точки страны.

Старт 18 сентября.

Для разных городов разные задачи, а за выходные участники должны представить рабочие решения.

Санкт-Петербург. К 2035 году над Землёй должен работать топливный узел, у которого заправляются корабли, и откуда он будет получать топливо — с Земли, с Луны или из резерва — пока не решил никто. Команде предстоит собрать схему поставок, посчитать резервы и решить, во что вкладываться сразу. Призовой фонд 1,2 млн ₽.

Красноярск. Спутник видит горящий лес раньше любого наземного поста, но вместе с пожаром ловит нагретые крыши, факелы на месторождениях и блики на воде. Команде предстоит научить сервис отличать настоящий очаг от шума, обвести гарь и выдать площадь в гектарах. Призовой фонд 600 тыс. ₽.

Лучшие забирают приз на площадке и билет в финал в Москве, 25–27 сентября, где разыграют ещё 2,4 млн рублей.

Команда 3–5 человек, недостающих можно найти на платформе.

Регистрация по ссылкекосмохакатон.рф
  • ❤ 7
  • 🎉 6
  • 🤔 5
  • 💯 5
  • 🔥 4
  • 🤣 2
  • 🍌 1
  • 🤨 1
  • 👀 1
  • 🎄 1
  • 🤪 1
Post #14824 6K
Как инженер радиосвязи перенёс опыт в тестирование

Инженер Алексей десять лет работал с радиосетями: ездил по городу с измерительным комплексом, строил карты покрытия, проектировал связь на стадионах и после монтажа возвращался с рюкзаком телефонов, чтобы сравнить расчёты с реальной сетью.

Когда он стал тестировщиком телеком-оборудования, рабочий цикл сохранился: собрать данные, проверить качество, найти причину сбоя и повторить тест после исправления. Добавились Python, тест-планы и спецификации связи. Сейчас Алексей тестирует базовую станцию YADRO, которую компания разрабатывала с нуля.

В статье на Tproger Алексей рассказывает про этот переход и советует искать следующую роль на пересечении прежней специализации с разработкой. Если думаете о переходе в IT, разложите прежнюю работу на конкретные навыки и найдите задачи, где они уже нужны.
  • ❤ 9
  • 👍 9
  • 💊 5
  • 👌 4
  • 🌚 4
  • 💯 4
  • 🔥 3
  • 🤷‍♂ 1
  • 👎 1
  • 🌭 1
  • 😭 1
Post #14823 7.36K
Delta делает вывод Git, diff и grep удобнее для чтения

Delta — настраиваемая программа для просмотра вывода в терминале. Она подсвечивает синтаксис и изменения внутри строк, показывает версии рядом, добавляет номера строк и позволяет переходить между файлами клавишами n и N. Работает с Git, diff, grep и ripgrep.

Для Git установите пакет git-delta и настройте delta как программу просмотра. Delta определяет светлый или тёмный фон; темы подсветки берёт из набора bat. Можно улучшить отображение конфликтов слияния и превратить хеши коммитов в ссылки на GitHub, GitLab, SourceHut или Codeberg.

В репозитории Delta есть начальная конфигурация и полное руководство. Попробуйте инструмент, если в больших diff сложно быстро найти нужный файл и изменённую строку.
  • ❤ 13
  • 👍 9
  • 🤔 5
  • 🎉 4
  • 😁 3
  • 😎 3
  • 🦄 2
  • 😱 1
  • 🫡 1
  • 🆒 1
  • 🤷 1
Post #14822 7.09K
GitHub принимает 2,9 млрд коммитов в месяц и уже не справляется

Ваши ревью и сборки стоят в очереди не только из-за вашей команды. За четыре месяца месячный объём коммитов на GitHub удвоился: 1,4 млрд в апреле, 2,9 млрд в августе. 17 августа платформа лежала 7 часов 47 минут: компонент инфраструктуры в дата-центре Central US не выдержал трафик. В ответ GitHub добирает больше 3 млн процессорных ядер и 120 петабайт хранилища и ускоряет переезд в Azure, куда уже ушло 58% нагрузки.

Мощности на приём кода выросли, мощности на проверку остались прежними. Каждый из 2,9 млрд коммитов несёт обещание, что изменение работает, и почти ничто между генерацией и попаданием кода в основную ветку не сверяет его с запущенной системой.

Узкое место переезжает из редактора в прогон тестов и статический анализ: закладывайте под них машинное время заранее. Цифры собрал The New Stack.

#аналитика
  • 🔥 12
  • 🙉 9
  • 💔 8
  • 😁 3
  • 🤔 3
  • ⚡ 2
  • 💯 2
  • 🤝 2
  • ✍ 1
  • 👀 1
  • 😘 1
Post #14821 6.58K
⚡️ 24 сентября Yandex Cloud проведёт флагманскую технологическую конференцию Yandex Scale 2026.

В программе пять треков: AI, Data, Security и Hybrid Infrastructure & DevOps, и углублённый трек DeepTech, который пройдёт только онлайн.

Что будет:
🔘Hybrid Infrastructure+DevOps - расскажем о развитии инфраструктуры и инструментов для разработчиков: от создания внутренних платформ и кластеров на 1000-нод и ИИ-разработки с SourceCraft
🔘AI, где разберем, как развиваются платформы для создания ИИ-агентов и рынок GenAI. Расскажем, как SpeechSense позволяет получать быстрые бизнес-инсайты, а также о новых возможностях Yandex AI Studio
🔘Data, как аналитика становится единой средой от загрузки данных до инсайтов с ИИ. Развитие YDB для рекомендательных и поисковых систем, ИИ-ассистентов и потоковой обработки. Миграция продакшн-среды «Додо Пиццы» на Managed MySQL®️
🔘Security, где разберем, как экосистема продуктов защищает облачные, гибридные и локальные контуры. От безопасного внедрения ИИ и развития фундамента защиты, до SecOps и управления уязвимостями.
🔘DeepTech (online only) - впервые на Scale разработчики расскажут как решаются нетривиальные технические задачи — от LuaJIT в Valkey™ и API-инференса SOTA-моделей в Yandex AI Studio до распределённого векторного поиска.

Зарегистрироваться и посмотреть полную программу можно на сайте. Участие бесплатное!

Это #партнёрский пост
  • 💊 17
  • 👏 9
  • ❤ 3
  • 👌 2
  • 💯 2
  • 👨‍💻 2
  • 🤷‍♂ 1
  • 🙏 1
  • 🎃 1
  • 😇 1
  • 🙊 1
Post #14820 6.1K

Forwarded from Инструменты программиста

hexyl: цветной просмотр байтов в терминале

hexyl показывает содержимое файла в шестнадцатеричном виде и окрашивает разные категории байтов. Отдельные цвета получают нулевые байты, печатные ASCII-символы, пробелы и переносы строк, прочие ASCII-символы и байты вне ASCII. Так категории можно различать прямо в выводе терминала.

В Ubuntu и Debian утилита ставится командой sudo apt install hexyl, в Fedora через sudo dnf install hexyl, а в macOS через brew install hexyl. Сборка из исходников доступна через Cargo при Rust 1.56 или новее.

Цвета категорий и смещения настраиваются переменными окружения: можно выбрать стандартные цвета терминала, их яркие варианты или значение RGB. Команды для других систем и список настроек собраны в репозитории hexyl на GitHub.
  • 👍 12
  • ❤ 5
  • 🤣 5
  • 🔥 4
  • 👏 2
  • 🎉 2
  • 🌭 2
  • ❤‍🔥 1
  • 😁 1
  • 🦄 1
  • 🤷 1
Post #14819 6.89K
WeatherNext 3 выпускает прогнозы каждый час

Google выпустила третью версию погодной ИИ-модели WeatherNext. Теперь она принимает спутниковые данные вместе с переанализом, который объединяет метеонаблюдения в согласованный глобальный снимок атмосферы.

Такие снимки обычно формируют раз в шесть часов. Сырые данные со спутников сокращают задержку между текущей погодой и новым расчётом, поэтому WeatherNext 3 может строить прогноз ежечасно. Пространственное разрешение тоже выросло, хотя сама модель стала крупнее.

Google также обучила отдельную модель на спутниковых оценках осадков, поэтому система выдаёт несколько вариантов прогноза осадков. В разборе Ars Technica: какие изменения процесса ограничили рост вычислительной нагрузки и зачем модели несколько прогнозов осадков.
  • 🎉 14
  • ❤ 9
  • 👍 7
  • ❤‍🔥 3
  • 🔥 3
  • 😁 2
  • 😱 1
  • 💯 1
  • 👀 1
  • 🙈 1
  • 🎄 1
Post #14818 6.95K

Forwarded from Веб-страница

Bun на 2000 параллельных сборках стал есть 609 МБ вместо 6,7 ГБ

Если вы упирались в память, когда Bun собирает много всего разом, в версии 1.4.0 потолок сдвинулся: на том же бенчмарке расход упал с 6,7 ГБ до 609 МБ. Заодно порт закрыл 128 старых багов и примерно на 20% ужал бинарник на Linux и Windows.

Ядро рантайма переписали с Zig на Rust, чтобы обращения к освобождённой памяти ловил компилятор. Переписывала не команда: 64 агента в параллельных git-worktree за 11 дней перевели 535 496 строк Zig и разгребли 16 000 ошибок компиляции. API обошёлся примерно в $165 000, а Turborepo с Go на Rust переводили 3–5 инженеров 14 месяцев.

Цифры порта собраны на dev.to.

#javascript #ии
  • 👍 16
  • ❤ 7
  • 💯 5
  • 💊 5
  • 🤷‍♂ 3
  • 🔥 3
  • 👏 3
  • 😁 3
  • ✍ 1
  • 🎄 1
  • 👾 1
Post #14816 6.95K
Одно новое значение статуса заказа переписало всю таблицу, а расплачивались за это годами

Правка в спецификации на одно слово: добавить статус partially_refunded рядом с refunded, а не в конец, потому что список читают по порядку. В MySQL члены enum хранятся по позиции, и вставка в середину перенумеровывает соседей: вместо правки метаданных база копирует таблицу целиком, с блокировкой и запасом диска в размер самой таблицы.

Дороже обходится вывод, который делают наутро: выкинуть enum и хранить tinyint с картой кодов в приложении. В базе лежит 3, и что это partially_refunded, знает только код: в консоли, в аналитике и в дампе значение читать нечем.

Антон Бриллиантов разбирает, чем на это отвечает Postgres и где ограничения уже у постгресовых enum.

#postgresql #sql
  • ❤ 12
  • 🔥 5
  • 👍 3
  • 👏 3
  • 😁 2
  • 🕊 1
  • 💯 1
  • 🤝 1
Post #14815 6.66K

Forwarded from Инструменты программиста

Metalterm: терминал для macOS на Rust и Metal весом 10 МБ

Metalterm — нативный эмулятор терминала для macOS: состояние сессии и разбор вывода живут в Rust, а картинку рисует собственный рендерер поверх Metal, без Electron и веб-движка. Приложение занимает около 10 МБ; в замерах автора Ghostty 1.3.1 весит 40 МиБ, а Rio 0.5.24 добирается до 41,2 МиБ.

На кадр уходит 0,22 мс работы видеокарты. На экране со 120 Гц кадр длится 8,33 мс, то есть терминал забирает 2,6% этого времени. Остаток автор тратит на плавную прокрутку и фоновые шейдеры.

Где пригодится: если вы на macOS и держите терминал открытым весь день, а вес и отзывчивость важнее кроссплатформенности. Сборка лежит на metalterm.dev.

Замеры сняты на одной машине и одной конфигурации, так что за методикой и полной таблицей идите в пост автора на dev.to и перепроверяйте у себя.

#инструменты
  • ❤ 6
  • 🤔 6
  • 👍 3
  • 👌 3
  • 💊 2
  • ⚡ 1
  • 😐 1
  • 👨‍💻 1
  • 🤗 1
  • 💅 1
  • 🦄 1
Post #14814 7.01K
NeoMME сжимает индекс страниц в 255 раз при сохранении более 95% качества поиска

Авторы представили в блоге Hugging Face мультимодальные энкодеры NeoMME на 260 и 800 млн параметров. Один двунаправленный Transformer обрабатывает текст и фрагменты изображений без отдельной зрительной модели и генеративного декодера. Контекст обеих версий: 16 384 токена, максимум два изображения 4K.

NeoMME-Retriever ищет по снимкам страниц PDF без распознавания текста, сохраняя таблицы, диаграммы и вёрстку. Версия на 260 млн параметров кодирует около 51 страницы в секунду на NVIDIA L40S при разрешении 2048×2048 против 26 у ColModernVBERT. Пулинг токенов и квантование сокращают индекс с примерно 1,5 МБ до 6 КБ на страницу, сохраняя более 95% исходного nDCG@10.

Контрольные точки доступны в Hugging Face Transformers под Apache 2.0. Модель можно использовать как первый этап визуального RAG.

@neuro_channel
  • 👍 11
  • ❤ 6
  • 👏 4
  • 🎉 4
  • 💯 4
  • 🔥 3
  • 👻 3
  • 👀 2
  • 👎 1
  • 👌 1
  • 🎃 1
Post #14813 7.06K

Forwarded from Zen of Python

Как найти хеш пароля в 37 ГБ меньше чем за миллисекунду

Офлайн-проверка пароля по списку утечек выглядит как обычный поиск, пока Pwned Passwords не распаковывается в текстовый файл на 37 ГБ. Минимальный вариант на Python работает, но оказывается слишком медленным.

Автор профилирует код, пробует пропускать части файла, применяет двоичный поиск, строит отдельный индекс и переводит его в двоичный формат. Вполне по дзену: сначала измерить, потом усложнять. Результат: поиск занимает меньше миллисекунды.

В разборе оптимизации можно проследить, почему первые ускорения не уложились в цель, как генерируется и читается индекс и какие структуры данных автор рассматривает в финале.
death and gravity Has your password been pwned? Or, how I almost failed to search a 37 GB text file in under 1 millisecond (in Python) ... in which we check if your password has been compromised in many inconvenient ways, in a tale of destruction, obsession, and self-discovery.
  • 👍 10
  • ❤ 4
  • 👌 3
  • 😁 2
  • 🎉 2
  • 🙏 2
  • ⚡ 1
  • 🔥 1
  • 😴 1
  • 👨‍💻 1
  • 💊 1
Older posts →

About this channel

How can I read @tproger without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Типичный программист: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Типичный программист have?
Типичный программист (@tproger) has 78.4K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Типичный программист know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →