Библиотека программиста
78K subscribers
4.73K photos
295 videos
98 files
7.87K links
Все самое полезное для программиста в одном канале.

Наши курсы: https://clc.to/Jil6fg

По рекламе: @tproger_sales_bot

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
👩‍💻 SIMD в Go: меньше поводов писать ассемблер

Сложить несколько пар чисел одной инструкцией вместо цикла по одному элементу — именно для этого нужен SIMD.

В Go 1.27 появился экспериментальный платформонезависимый API: векторные операции можно описывать на Go, не переписывая их под каждый процессор.

На поддерживаемом железе используются SIMD-инструкции, а недостающие возможности эмулируются. Пригодится для обработки изображений, численных расчётов и других тяжёлых циклов.

API пока экспериментальный. Насколько он ускорит вашу задачу, лучше проверить бенчмарком.

🔗 Устройство SIMD API

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤5💯5😍4👍3🤩3👾3👏2
📊 Миллион строк в PR. И интерфейс не завис

В GitHub Copilot app открыли PR на 2200 файлов, больше миллиона изменённых строк и 400+ комментариев.

Отрисовывать всё сразу — плохая идея. Поэтому на экране остаются только видимые строки, подсветка работает вне основного потока, а элементы кода переиспользуются при прокрутке.

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

Полезный разбор, если ваш список начинает задумываться уже на тысяче элементов.

🔗 Как устроен просмотр diff

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥7🤔6😁4🙏4👍3
🧠 ИИ-агент берёт на себя рутину фаззинга

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

Taskflow Agent от GitHub Security Lab автоматизирует этот цикл для C/C++: готовит обвязку, запускает AFL, смотрит покрытие и подбирает новые входные данные.

Падения воспроизводит, примеры сокращает, дубли объединяет. Набор тестовых данных сохраняется между запусками.

Запускать стоит в одноразовой VM или Codespace: агент выполняет команды сборки на хосте, встроенной контейнерной изоляции нет.

🔗 Как устроен агент

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11⚡8👾4
💻 Сторонний скрипт больше не сможет ходить куда угодно

В Chrome 152 появился Connection-Allowlist — HTTP-заголовок со списком разрешённых сетевых адресов для страницы или worker.

Браузер проверяет соединения и блокирует всё, что не попало в список. Это дополнение к CSP, в том числе для сетевых механизмов, которые она охватывает не полностью.

Сначала можно включить режим отчётов: увидеть нарушения, а уже потом блокировать запросы.

Для недоверенного кода авторы советуют отдельный cross-origin или sandboxed iframe с собственной политикой.

🔗 Примеры заголовков и настройки

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥8⚡5
⌨️ iframe научился подстраиваться под содержимое

Без привычной цепочки «измерить высоту → отправить postMessage → обновить родительскую страницу».

В Chrome 154 для этого появилось CSS-свойство frame-sizing: content-height. Встроенный документ должен разрешить такое поведение через метатег responsive-embedded-sizing.

Но постоянно следить за всем внутри iframe браузер не будет. Загрузили новые комментарии или раскрыли блок — вызывайте window.requestResize().

Для браузеров без поддержки старый способ можно оставить как запасной.

🔗 Примеры адаптивных iframe

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍8
💻 Сайт работает. Kubernetes говорит, что деплой не удался

Противоречия нет: старые поды ещё отвечают пользователям, а новые так и не запустились.

В лабораторной работе разбирают три причины:

🟡 образ недоступен;
🟡 readiness probe не проходит;
🟡 для пода не нашлось места на узле.

Показывают, где смотреть условия Deployment, проблемный ReplicaSet и события.

Available=True не означает, что обновление прошло: рядом может стоять ProgressDeadlineExceeded.

🔗 Разобраться с зависшим rollout

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17
Собираем первое окружение Docker Compose для Go, MySQL и phpMyAdmin

Если на другом компьютере нет Go или отличается окружение, приложение может не запуститься как у разработчика. Пошаговое руководство для начинающих показывает, как упаковать Go-приложение со средой выполнения и зависимостями: написать Dockerfile, собрать образ и запустить контейнер.

Затем автор переносит пример в Docker Compose: описывает три сервиса, общую сеть, порты, переменные окружения и том MySQL для хранения данных. В результате поднимается учебное окружение с HTTP-эндпоинтом /health и phpMyAdmin, веб-интерфейсом для MySQL.

Это основа для знакомства с контейнерами, а не готовая конфигурация для рабочего сервера. Go-код в примере ещё не подключён к базе данных.
❤20
👀 ORM есть. SQL-инъекция тоже может быть

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

В разборе на Sequelize есть и менее очевидный случай: строку сохранили в базе, потом достали и подставили в новый запрос. От хранения в БД она безопасной не стала.

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

Хороший материал для ревью участков, где ORM заканчивается и начинается склейка строк.

🔗 Уязвимый код и исправления

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩11👍6👾6
📊 Кто кого вызывает в вашем TypeScript-проекте?

Граф вызовов можно собрать прямо через API VS Code: Call Hierarchy отдаёт функции и связи между ними.

Дальше — детали, без которых схема быстро перестанет быть полезной: циклы, устойчивые ID, кэширование и ограничение параллельных запросов.

Автор показывает, как собрать данные и вывести граф в webview расширения.

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

🔗 Руководство с кодом

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7⚡6❤6🤔6
В субботу, 17 октября, Москва станет точкой притяжения для всех специалистов в области RecSys 🔥

Конференция AI Driver & RecSys — главное событие года для тех, кто создаёт, исследует и развивает рекомендательные системы.

🔝 Весь день ведущие эксперты индустрии из крупнейших IT-компаний проведут на площадке Сбера, чтобы обсудить:
— главные тренды и вызовы RecSys
— реальные кейсы и новейшие исследования
— передовые IT-решения для рекомендательных систем

Вы сможете сами пообщаться с теми, кто создает рекомендации для миллионов пользователей.

📍Офис Сбер, Москва, Кутузовский проспект, 32.

Участие бесплатное!
Количество мест для очного участия ограничено – успейте оставить заявку по ссылке ⚡️
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9😁9👍4🥰4🤔2
🎓 С Днём учителя!

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

Поэтому на этой неделе дарим скидку 10 000 ₽ на любой курс Proglib по промокоду LastcallAI 📌

➡️ Хотите разобраться с ИИ-агентами? ⁠
➡️ Прокачать Python? ⁠
➡️ Изучить ML, алгоритмы или математику для AI?

🎁 Промокод действует до 09.10.2026

⏬ Выбрать новое направление
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚5👍4💯4🔥3👾3
🦀 Rust научился писать C-функции с переменным числом аргументов

Раньше Rust мог вызвать внешнюю функцию вроде printf, но определить такую же на стабильном языке было нельзя. В Rust 1.99 поддержка C-ABI функций с аргументами через многоточие стала стабильной.

В разборе релиза показывают работу с VaList, новые функции для получения размера и выравнивания по raw pointer и изменения в стандартной библиотеке.

Есть и уточнение для Box::leak: документация теперь советует избегать схемы «утекло — потом освободили». Если память собираетесь возвращать, выбирайте Box::into_raw или Box::into_non_null. Для кода на стыке Rust и C это повод проверить свои обёртки: unsafe по-прежнему требует соблюдения контракта.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👾13👍8🌚8❤6
👀 Как вы смотрите видео?

Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?

Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.

🕰️ Опрос займёт около 3 минут.

В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.

🔗 Поделиться опытом

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20
🖥 Больше реплик — медленнее git push

На GitHub копии репозитория одновременно обеспечивают надёжность хранения и обслуживают чтение. Но каждая дополнительная копия участвует и в записи: расширили возможности для clone — добавили работы при push.

С параллельными ИИ-агентами этот компромисс стал заметнее. Они часто создают коммиты, а CI многократно читает одни и те же ветки. В инженерном разборе GitHub объясняют, почему быстрый clone решает только часть задачи.

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

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👏5⚡3🔥3🤔3
🔐 JWT есть. Проверки прав может не быть

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

В разборе механизмов защиты API сравнивают API keys, JWT и OAuth и показывают, как рабочая на вид схема превращается в уязвимость: токен без срока действия, ключ в репозитории, слишком свободный redirect URI.

Для ревью разделите два вопроса: как сервис проверяет личность и где проверяет право на конкретную операцию. У JWT проверьте подпись, срок действия, издателя и получателя. У эндпоинта — доступ к запрошенному объекту. Успешный вход ещё не означает доступ ко всем данным.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍6👾5
🧠 Агент снова «починил». Баг остался

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

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

Дальше — одна правка за раз и проверка исходного сценария в приложении. Если сбой воспроизводится тестом, сначала зафиксируйте его тестом. Так у следующей попытки появится критерий успеха. Сообщение «готово» в чате агента проверку не заменяет.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8🎉6👍5🌚5
Какими ИИ-ассистентами и агентами вы пользуетесь? Можно выбрать несколько
Anonymous Poll
8%
GitHub Copilot
1%
Codeium
47%
Claude Code
23%
Gemini
48%
ChatGPT
4%
GigaCode (Сбер)
2%
Yandex Code Assistant
29%
DeepSeek
5%
Hermes Agent
12%
Другое (напишу в комментариях)
👍10⚡6👏2
Read. Write. Edit. Bash.

Это базовый набор операций Pi — агента, на котором построен OpenClaw. Дополнительные возможности появляются через расширения: агент может написать их по запросу пользователя, перезагрузить и проверить в работе.

У такого устройства есть полезные детали:
• состояние расширений хранится в сессии;
• беседу можно разветвить для отладки и вернуться с кратким пересказом;
• инструкции и примеры помогают агенту создавать новые функции.

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

#ии #инструменты
❤12👍5🤔2
⌨️ 150 карточек на странице. Видны только пять

Браузер может тратить время на содержимое далеко за пределами экрана. content-visibility: auto позволяет отложить часть этой работы до момента, когда блок понадобится для отображения.

В эксперименте со 150 карточками автор измеряет рендеринг в DevTools и разбирает следующий вопрос: как сохранить геометрию страницы, пока содержимое пропущено. Для этого пригодится contain-intrinsic-size с примерной высотой блока.

Значение auto позволяет повторно использовать уже измеренный размер. Начальную оценку подбирайте по своим карточкам: слишком большая или маленькая меняет положение контента при прокрутке. Проверяйте и загрузку, и скролл — часть работы вы переносите на потом.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤9
🔐 Данные зашифрованы. Как найти нужную запись?

При шифровании со случайностью одно и то же значение каждый раз может выглядеть по-разному. Простое сравнение зашифрованных строк тогда не найдёт все совпадения.

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

Если исходное значение восстанавливать не нужно, рассмотрите HMAC для сопоставления. Если нужно — отдельно продумайте доступ к расшифровке и ключам. Начните с операций, которые нужны потребителям данных: точное совпадение, диапазон и поиск по префиксу требуют разных решений.

🐸 Библиотека программиста
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤩8🔥3