Типичный программист
✔
78K subscribers
3.83K photos
1.16K videos
14 files
8.48K links
Всё самое интересное по программированию

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

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

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

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

VK: vk.com/tproger

Регистрация в перечне РКН: https://tprg.ru/mJwo
Download Telegram
Карьерный потолок не щадит никого: время идёт, таски закрываются, приходит скука и предел. Можно ли вырваться из «Матрицы»?

https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu
🤣13👏4❤3⚡2☃2👍2🌚2🔥1🎉1💯1🤝1
Mojo добрался до 1.0 и зафиксировал синтаксис

В ветке 1.x обещают в основном аддитивные изменения. Ломающие правки останутся возможны, но проводить их будут по правилам взрослых языков вроде C++. Modular понимает, что язык менялся слишком часто, и сообществу было тяжело вести на нём долгие проекты.

Заодно закончили чистку. Где было несколько способов сказать одно и то же, оставили один: переменные объявляются только через var, замыкания унифицированы, тип указателя ровно один. Появилась диагностика, которая ловит момент, когда List.append перевыделяет память и ссылка внутрь списка становится недействительной.

Пока открыта только стандартная библиотека, куда пришли почти 200 контрибьюторов с 1 100 пул-реквестами. Исходники компилятора и тулчейна закрыты, пользоваться можно, но чинить или форкать сам компилятор может только Modular. Открыть его обещают в 2026 году, то есть срок истекает через несколько месяцев, и следить я бы стал именно за этим.

Пробовали этот язык в деле? Как вам?

#mojo
👍5🎉4🌭3❤2🔥2🤝2💊2⚡1👎1🥰1😍1
Почему учиться в IT стало сложнее?

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

Работает это не так: необходимость разбираться в том, как всё устроено, применять знания и читать код никуда не делась.

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

Почему разбираться теперь приходится глубже и быстрее, и что с этим делать — читайте на Tproger: https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding
👍19❤6🤝4🕊2🤗2⚡1☃1🌚1💯1🤷1
Модель, которая помещается в 14 МБ вместе с весами

Вызов функции по фразе человека обычно уезжает в облако или тянет локальную модель на сотни мегабайт. Cactus Compute выложила под MIT Needle 2: модель на 45 миллионов параметров, которая может делать это и на телефоне и в умном доме, а заодно вынимает из текста структуру по схеме.

Веса вшиты в движок, бинарник занимает 14 МБ, сессия держится в пределах 28 МБ оперативки и не растёт с длиной разговора: контекст обрезан окном в 256 токенов, описания функций закреплены в нём как якоря. На бенчмарках авторов идёт вровень с FunctionGemma 270M, будучи в несколько раз меньше.

Схемы функций компилируются в грамматику, ограничивающую каждый токен, поэтому ответ приходит структурой, а не текстом под парсинг. Ставится через pip install cactus-needle, а посмотреть без установки можно в браузерной песочнице, там же кнопка дообучения.

#ии #опенсорс
❤16👍10💯4🔥3🎉2🐳2🤨2👨‍💻2🦄2🤣1💊1
Как OpenClaw прошёл проверку на прочность среди 50 опенсорс-проектов

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

OpenClaw взяли в четвёртую сессию GitHub Secure Open Source Fund: 50 проектов, 71 мейнтейнер, 22 страны и больше $500 тысяч поддержки. За сессию команда написала план реагирования на инциденты, пересмотрела GitHub Actions и внедрила secret scanning, code scanning, Dependabot и приватные репорты уязвимостей.

Разбор, как это устроено, — в статье на GitHub Blog: цифры, методы и чему научились мейнтейнеры.
👍8🔥5🤷‍♀3🌚2🌭2🤨2🤝2🎉1😍1😨1🙉1
Куда прятать ключи API, когда работает ИИ-ассистент

API-ключ, по сути пароль к сервису, который часто лежит в файле .env, а ИИ-ассистент читает его, чтобы запустить ваш проект. Проблема в том, что ключ попадает в окно диалога: ассистент может случайно вывести его в лог или выполнить чужую инструкцию из стороннего файла.

Автор статьи предлагает выход: не давать ассистенту ключи напрямую. Храните их в менеджере секретов, передавайте через прокси, который подставляет ключ сам, или запускайте команды так, чтобы значение оставалось за пределами контекста. Разбор на dev.to поможет понять, как устроить это на своём первом проекте.
2🤷‍♀10👏7🙉7💯6👍4🔥4🕊2🐳1🦄1💊1👾1
15 MCP-серверов, которые подключают ИИ к вашим инструментам

ИИ-агент может написать код, но без связи с реальными системами он работает вслепую: не видит ваш репозиторий, не читает дизайн и не проверяет ошибки в проде. В обзоре LogRocket собрали 15 серверов: GitHub для кода и пулреквестов, Figma для перевода дизайна в код, Sentry для отладки, Playwright для браузерных тестов, плюс облачные сервисы вроде AWS, Cloudflare и Netlify.

Полный список с примерами — хорошая старт для начала любого проекта.
👍12🔥8👀5😁4☃1👎1🌭1🍌1🍾1😇1🙉1
— Зачем ты залил код сразу в прод?
— Кто я такой, чтобы идти против божественных методов?
— Ты уволен.
😁81🕊6🍓3🌚2🤨2😈2🙈2🤷‍♂1👏1🤣1🎄1
Обычный Wi-Fi превратили в камеру

Исследователи показали, что по сигналу обычного Wi-Fi можно строить изображения находящихся рядом людей и их окружения. Без специального оборудования — достаточно стандартной Wi-Fi-сети и алгоритмов обработки отражённого сигнала.

Технология ещё в стадии исследований, но сам факт, что для этого хватает домашнего роутера, уже меняет ощущение приватности.

Пока это лабораторный результат, а не функция в вашем роутере. Но контур понятен: железо умеет больше, чем разрешено и как от этого обезопасить себя, пока непонятно. Подробнее в материале Slashdot.
⚡8🤔8❤6😱4🍓2👨‍💻2🙉2😘2☃1🤷‍♂1🙈1
Forwarded from Zen of Python
Почему str.lower() иногда ломает проверку имён доменов

Регистр символа в Python зависит от версии Unicode интерпретатора. Сейчас unicodedata.unidata_version — 17.0.0, а протокол подготовки строк stringprep, который лежит в основе международных доменных имён, зафиксирован на Unicode 3.2.

Поэтому str.lower() и str.encode('idna') в разных версиях Python могут считать разные строки одинаковыми. В обычном коде это проходит незамеченным, а в проверке доменов или авторизации получается обход валидации.

В контексте безопасности не зовите str.lower() напрямую. Берите пакет idna: он реализует стандарт IDNA 2008 и не использует встроенные таблицы Unicode.

Seth Larson разбирает уязвимость и показывает, как это выглядит на практике.
👍13🎉4🌚4❤3👎3🤔3🆒3🤷‍♂2🤷‍♀1💔1🤝1
Ваши варианты?
😁48❤8💯7🎉5👾3🤓2👎1🐳1🍾1🎅1😘1
Разработчик заставил печатать HP Laser 1008a на macOS с помощью Claude Code

У HP Laser 1008a нет родного драйвера и AirPrint. Кубера Мехта из PolyThink это не остановило. Он взял Claude Code и за 30–40 промптов, потратив 4% месячного лимита, собрал патч к открытому драйверу SpliX.

Мехт говорит, что не разбирался в macOS-драйверах, но учился по ходу. Claude Code делал уверенные заявления, которые приходилось проверять и поправлять, и снял рутину, позволив одному человеку закрыть задачу, которая раньше требовала узкой специализации.

Разбор на The Register.
😁36👍29❤14🔥7✍3🤗2😍1🌚1😨1🫡1💘1
Делаем из плоского фото 3D-сцену со светом и тенями

В новом туториале Codrops Dominik Fojcik показывает, как обычное 2D-изображение начинает отбрасывать настоящие тени: без 3D-модели, одной текстурой. Берёте картинку, генерируете карту глубины и пропускаете свет через WebGPU-шейдер в Three.js.

Фишка в том, что готовые карты глубины обычно 8-битные, всего 256 градаций, и на гладких поверхностях свет ловит ступеньки. Автор же разбирает, как конвертировать карту в float, слегка размыть и сохранить в half-float, чтобы шум исчез.

Работает пока только где есть WebGPU. Пошаговый туториал на Codrops.
🔥9❤2🎉1🤣1
Водяной знак Claude: как статистика выдаёт машинный текст

Если вы гоняете через Claude черновики, переводы или правки, знайте: в сгенерированных текстах новых моделей появится скрытый след. Не невидимые символы, а смещение выбора между близкими по смыслу словами по секретному ключу.

Anthropic объяснила: на «равноправных» шагах модель получает лёгкий толчок к одним кандидатам и от других. Отдельный выбор незаметен, но на дистанции складывается в узнаваемую подпись, которую проверит только сама компания.

Спорная деталь — асимметрия: вы не убедитесь, что текст чист, а вот Anthropic может. Переводы и переписывания проходят через Claude целиком, поэтому маркируются сильнее. Если пишете важный текст, берите черновик у Claude и переписывайте своими словами.
🤣31❤7👾3🔥2🤨2👍1👏1🎉1🙏1👌1😴1
Заражённый arrayref запускал чужой код на cargo build

Build-скрипт в Rust выполняется, когда вы собираете проект. Этим и воспользовались: 20 августа команде безопасности сообщили про пакет proc-macro1, чей build-скрипт тянул вредоносную нагрузку с чужого сервера. Запускать ничего не надо, хватает сборки.

В то же утро кто-то перевыпустил популярный arrayref и добавил ему зависимость на этот пакет. Обновили зависимости, сказали cargo build — и чужой код уже отработал у вас на машине. Следом досталось internment и append-only-vec того же автора. Владельца аккаунта никто не винит: похоже, увели машину или ключи.

Заражённые версии сняли за 86–107 минут. Кажется, что мало, но ночная сборка в CI попадает в такое окно легко. Загляните в ~/.cargo/registry/cache: если одна из версий там лежит, чистите кэш и пересобирайтесь, в реестре уже безопасные.

Список удалённых пакетов и готовая команда для поиска — в блоге Rust.
❤7🔥6👾4👏3🎉3🤝3👍2🤔1🤩1😈1🙊1
ИИ оставляет в коде уязвимости, потому что решает поставленную задачу самым коротким путём. Если в промпте явно не заданы требования к безопасности, проверок прав доступа и валидации ввода в коде просто не будет, при этом результат выглядит рабочим и проходит тесты. В итоге на прод попадают IDOR и ошибки бизнес-логики, которые никто не заметил на ревью.

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

Собрали пять уязвимостей, которые системно воспроизводятся в сгенерированном коде:
https://tproger.ru/articles/vajb-koding-kak-mechta-hakera-kakie-uyazvimosti-plodit-kod-sgene

И пять атак, которые превращают ИИ-помощника в канал утечки данных:
https://tproger.ru/articles/manual-yunogo-hakera-kak-vzlomat-svoego-rag-bota-do-togo-kak-e
❤9👏6🔥5😁5👍3🤩3🕊3🫡2💋1👻1👨‍💻1
void в C меняет смысл в зависимости от места

Вы видите void в объявлении функции, в скобках после её имени и рядом со звёздочкой у указателя. Выглядит одинаково, а ведёт себя каждый раз по-своему, и в чужом коде легко прочитать одно вместо другого.

У нас вышла статья о том, как одно короткое слово набрало столько ролей. Заодно там история появления слова: его предложил Стивен Борн, тот самый автор Bourne Shell, и придумали его совсем не ради читаемости кода.

Если пишете на C, дочитайте хотя бы до места про функции без параметров: многие узнают там, что объявляли их не так, как думали. Разобрали в статье.

#основы
👍19❤7👏3👎2🔥2🥰2🎉2💯2🎅2🤯1🤝1
Куда расти разработчику, который не хочет в менеджеры?

Вариантов минимум три, и один из них разработчики традиционно недооценивают. QA многие держат в голове как стартовую площадку для входа в отрасль, поэтому переход туда после нескольких лет разработки выглядит понижением.

На практике автоматизатор разрабатывает отдельный продукт со своей архитектурой, паттернами и собственным легаси. Опыт разработки конвертируется напрямую, а грейды проходятся быстрее: до мидла год-полтора. Минус тоже есть: поначалу заработок просядет.

Ещё два трека — тимлидство и архитектура. Рассматриваем все опции в новом материале.

https://tproger.ru/articles/timlid-arhitektor-ili-qa-kuda-rasti-razrabotchiku-kotoryj-ne-h
💊21👍8🤣6❤5👏4🔥3😁2🤩2🥰1👌1🤝1
Разраб нашёл остров по фотографии, перебрав 80 миллионов кандидатов на видеокарте

Можно было бы закинуть снимок в Google Lens. Но автор решил, что это скучно, и пошёл считать.

EXIF пустой, высота съёмки неизвестна, зато в кадре три клочка суши. Угол между ними и отношение расстояний дают отпечаток из трёх координат, который можно искать по всей планете. С помощью OpenStreetMap он отобрал возможных кандидатов. Каждому достался один поток CUDA. На RTX 3050 ядро отработало за 204,1 мс и сузило до 158 784 совпадений.

А вот как из 158 784 вариантов он смог выбрать то самое место в Микронезии, можно узнать в блоге автора.

#osint
💊36❤9😭4👍3🔥3🌚2🤪2🙏1🍌1💔1💋1
Пулреквестов стало вдвое больше, а релизы быстрее не поехали

Faros AI летом 2025 года разобрала работу больше 10 000 разработчиков. Там, где прижились ИИ-инструменты, смерженных пулреквестов стало на 98% больше. При этом время ревью выросло на 91%, багов на 9%, а метрики поставки на уровне организации не сдвинулись вовсе.

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

Второй отвечает, что мерить надо аккуратнее. Так, METR сажает опытных разработчиков за их же задачи и засекает время с ассистентом и без. В июле 2025 вышло, что с ИИ задачи занимали на 19% больше времени, хотя сами участники считали, что ускорились на 20%. В феврале 2026 METR признал, что в выборку не шли те, кто не готов работать без ИИ, перезапустил замер и получил отставание уже в 4%, в пределах погрешности.

Обе позиции можно подробнее прочитать здесь. А вы поделитесь своими ощущениями — как повлияло использование ИИ на вас и вашу команду — ускорились, замедлились или остались на том же месте?

#обсуждение
😁10❤8👍6👏5🎉2🥰1🤔1💯1💔1🤨1😭1