Есть недооценённый приём в отладке: не ковырять огромный вход руками, а автоматически сжимать его до минимального случая, на котором баг всё ещё воспроизводится.
Laurence Tratt написал разбор про test-case reducers — инструменты, которые берут большой файл, программу или набор данных и постепенно выкидывают из него всё лишнее. Остаётся маленький пример, который всё ещё ломает систему. Дальше отлаживать уже гораздо приятнее и легче.
Обычно такие штуки вспоминают рядом с компиляторами, но идея шире. Если у вас парсер падает на большом JSON, генератор кода ломается на странном input или тест фейлится только на огромной фикстуре, reducer может сократить воспроизводимый пример до нескольких строк.
Laurence Tratt написал разбор про test-case reducers — инструменты, которые берут большой файл, программу или набор данных и постепенно выкидывают из него всё лишнее. Остаётся маленький пример, который всё ещё ломает систему. Дальше отлаживать уже гораздо приятнее и легче.
Обычно такие штуки вспоминают рядом с компиляторами, но идея шире. Если у вас парсер падает на большом JSON, генератор кода ломается на странном input или тест фейлится только на огромной фикстуре, reducer может сократить воспроизводимый пример до нескольких строк.
❤13👍7😢2🆒2🤩1🐳1😈1😴1🤗1🤪1💊1
В блоге Альфа-Банка вышла статья о метриках в разработке. Команда перепробовала аж 7 штук и путём проб и ошибок собрала свой минимальный набор, который реально приносит пользу. Основой стала Cycle Time — она показывает, сколько времени задача провела внутри процесса разработки, от старта до релиза.
Метрик часто опасаются: если внедрить их неправильно или использовать как дубинку, цифры начинают подгонять, а толку — ноль. Как этого избежать и подобрать правильный набор показателей под себя — читайте в статье: https://tproger.ru/articles/kak-my-sbezhali-iz-kpi-karaoke-naw-bazovyj-minimum-metrik-kot
Метрик часто опасаются: если внедрить их неправильно или использовать как дубинку, цифры начинают подгонять, а толку — ноль. Как этого избежать и подобрать правильный набор показателей под себя — читайте в статье: https://tproger.ru/articles/kak-my-sbezhali-iz-kpi-karaoke-naw-bazovyj-minimum-metrik-kot
❤29✍23👍9🤔4👎3💅3🙉2🤷2⚡1🤗1🆒1
Кодовую базу можно диагностировать ещё до чтения кода
Обычно новый проект начинают с `src/`, README и попытки понять, где тут вход. Автор предлагает сначала открыть Git и посмотреть на историю как на рентген.
Пять команд показывают файлы с самым высоким churn, bus factor, места, где чаще всего чинят баги, месячную динамику коммитов и частоту hotfix/revert. Это не заменяет ревью кода, зато быстро подсказывает, куда смотреть первым и где команда, возможно, ходит по минному полю.
Материал хорош тем, что превращает `git log` из справки по прошлому в инструмент инженерной диагностики.
Обычно новый проект начинают с `src/`, README и попытки понять, где тут вход. Автор предлагает сначала открыть Git и посмотреть на историю как на рентген.
Пять команд показывают файлы с самым высоким churn, bus factor, места, где чаще всего чинят баги, месячную динамику коммитов и частоту hotfix/revert. Это не заменяет ревью кода, зато быстро подсказывает, куда смотреть первым и где команда, возможно, ходит по минному полю.
Материал хорош тем, что превращает `git log` из справки по прошлому в инструмент инженерной диагностики.
👍26❤🔥5❤2🎉2😍2🤷♂1👏1🌚1🤝1
Clojure пересобрали на Go ради старта за миллисекунды
let-go выглядит как эксперимент из серии “а что, если Lisp можно сделать маленьким, быстрым и удобным для встраивания?”. Автор собрал Clojure-подобный язык на Go: свой байткод, VM, standalone binaries и запуск примерно за несколько миллисекунд.
Это не попытка заменить Clojure целиком. Скорее, хороший инженерный вопрос: какие части языка действительно нужны, если хочется получить REPL-мышление, immutable data и макросы, но без тяжёлого рантайма.
Код интересен как разбор компромиссов между выразительностью языка и ценой его запуска.
let-go выглядит как эксперимент из серии “а что, если Lisp можно сделать маленьким, быстрым и удобным для встраивания?”. Автор собрал Clojure-подобный язык на Go: свой байткод, VM, standalone binaries и запуск примерно за несколько миллисекунд.
Это не попытка заменить Clojure целиком. Скорее, хороший инженерный вопрос: какие части языка действительно нужны, если хочется получить REPL-мышление, immutable data и макросы, но без тяжёлого рантайма.
Код интересен как разбор компромиссов между выразительностью языка и ценой его запуска.
✍11💅4❤3🔥3👍2🤔2😁1🌭1🤪1💘1🤷1
История файлов для моментов, когда git уже поздно
Git спасает, если вы успели сделать коммит. А если агент, скрипт или собственный рефакторинг уже переписал полпроекта до того, как вы поняли масштаб бедствия, начинается ручная археология.
UNF предлагает другой слой страховки: локально версионировать изменения файлов независимо от того, каким инструментом они сделаны. Можно откатить не только осознанный коммит, но и “кажется, я разрешил не той команде править проект”.
Идея особенно актуальна сейчас, когда код всё чаще меняют не только люди, но и ассистенты с очень уверенным курсором.
Git спасает, если вы успели сделать коммит. А если агент, скрипт или собственный рефакторинг уже переписал полпроекта до того, как вы поняли масштаб бедствия, начинается ручная археология.
UNF предлагает другой слой страховки: локально версионировать изменения файлов независимо от того, каким инструментом они сделаны. Можно откатить не только осознанный коммит, но и “кажется, я разрешил не той команде править проект”.
Идея особенно актуальна сейчас, когда код всё чаще меняют не только люди, но и ассистенты с очень уверенным курсором.
🔥17❤6👍5🎉1😍1🤣1
В большинстве компаний 1С и облачная инфраструктура живут в параллельных мирах: DevOps смотрит в Grafana, финдиректор — в 1С, а когда падает оплата, все смотрят друг на друга. На самом деле подружить 1С с современными инструментами мониторинга вполне реально всего за один спринт. В блоге Centicore рассказали, как это сделать.
В статье разбирается, как вытащить метрики из 1С через OData без единой строчки кода, написать Prometheus Exporter на Python и собрать бизнес- и технические метрики на одном дашборде. А заодно — где интеграция обычно ломается и как это пережить.
В статье разбирается, как вытащить метрики из 1С через OData без единой строчки кода, написать Prometheus Exporter на Python и собрать бизнес- и технические метрики на одном дашборде. А заодно — где интеграция обычно ломается и как это пережить.
👎5😴3👍2👏2🤣2🙊2❤1😱1😍1😨1
x86-эмулятор, который работает на одном CSS
Разработчица собрала x86 CPU emulator без JavaScript, без WebAssembly и без привычного runtime — только на CSS.
Это не кандидат на прод и не новая платформа для вычислений. Ценность в другом: CSS здесь используют как странную вычислительную модель с состояниями, селекторами и каскадом, которые внезапно начинают напоминать машину выполнения.
История хороша как инженерный фокус. Подробности по ссылке
Разработчица собрала x86 CPU emulator без JavaScript, без WebAssembly и без привычного runtime — только на CSS.
Это не кандидат на прод и не новая платформа для вычислений. Ценность в другом: CSS здесь используют как странную вычислительную модель с состояниями, селекторами и каскадом, которые внезапно начинают напоминать машину выполнения.
История хороша как инженерный фокус. Подробности по ссылке
👍25😱12❤4👌3❤🔥2🔥2👏2🍾2😢1🤨1🆒1
Язык программирования, который думает на корейском
Большинство языков, даже самых новых, всё равно говорят с разработчиком на английском. Han интересен тем, что здесь не просто переименовали
Проект написан на Rust, использует LLVM, имеет REPL, LSP и примеры реального кода. То есть это уже не мем про ключевые слова, а инженерный эксперимент про то, насколько глубоко английский зашит в привычный способ программировать.
Код стоит смотреть как на языковой дизайн, а не как на экзотику ради экзотики.
Большинство языков, даже самых новых, всё равно говорят с разработчиком на английском. Han интересен тем, что здесь не просто переименовали
if и for, а попытались сделать полноценный компилируемый язык с корейским синтаксисом.Проект написан на Rust, использует LLVM, имеет REPL, LSP и примеры реального кода. То есть это уже не мем про ключевые слова, а инженерный эксперимент про то, насколько глубоко английский зашит в привычный способ программировать.
Код стоит смотреть как на языковой дизайн, а не как на экзотику ради экзотики.
👎21❤6👍5👀3☃2🔥2🎄2💘2⚡1🤣1🗿1
curl на месяц перестаёт принимать отчёты об уязвимостях
Daniel Stenberg объявил «summer of bliss»: в июле 2026 года curl не будет принимать и обрабатывать vulnerability reports. HackerOne-форма закроется 1 июля, security-почта тоже не будет рабочим обходным путём, приём вернётся 3 августа.
Звучит резко, но контекст важный: последние месяцы проект жил под сильным давлением из-за потока отчётов. Релиз 8.22.0 из-за этого сдвинули на 2 сентября, а мейнтейнеры прямо говорят: им нужен реальный отдых.
Daniel Stenberg объявил «summer of bliss»: в июле 2026 года curl не будет принимать и обрабатывать vulnerability reports. HackerOne-форма закроется 1 июля, security-почта тоже не будет рабочим обходным путём, приём вернётся 3 августа.
Звучит резко, но контекст важный: последние месяцы проект жил под сильным давлением из-за потока отчётов. Релиз 8.22.0 из-за этого сдвинули на 2 сентября, а мейнтейнеры прямо говорят: им нужен реальный отдых.
daniel.haxx.se
curl summer of bliss
The curl project will not accept or otherwise handle any vulnerability reports during the month of July 2026. We call it the curl summer of bliss. curl's submission form on Hackerone will be paused starting July 1, 2026. Summer of bliss starts: July 1, 2026.…
👏20❤5👍5🔥4💯2
Интернет, где устройство ищут не по IP, а по ключу? Почему бы и нет
IP-адреса ведут себя как временный пропуск: сегодня есть, завтра поменялся, послезавтра устройство сидит за NAT, firewall или мобильной сетью. Iroh предлагает другой подход — соединяться не с адресом, а с криптографическим ключом устройства. Это фундаментальная технология, призванная коренным образом изменить интернет.
В версии 1.0 у них уже стабильный wire protocol, QUIC, NAT traversal, multipath, локальный поиск устройств без интернета и API для Rust, Python, Node.js, Swift и Kotlin. В идеале это выглядит как «secure localhost», только между любыми устройствами.
Для приложений с синком, IoT, файлами и P2P это очень здравый поворот.
IP-адреса ведут себя как временный пропуск: сегодня есть, завтра поменялся, послезавтра устройство сидит за NAT, firewall или мобильной сетью. Iroh предлагает другой подход — соединяться не с адресом, а с криптографическим ключом устройства. Это фундаментальная технология, призванная коренным образом изменить интернет.
В версии 1.0 у них уже стабильный wire protocol, QUIC, NAT traversal, multipath, локальный поиск устройств без интернета и API для Rust, Python, Node.js, Swift и Kotlin. В идеале это выглядит как «secure localhost», только между любыми устройствами.
Для приложений с синком, IoT, файлами и P2P это очень здравый поворот.
www.iroh.computer
Iroh 1.0 - Dial Keys, not IPs
Iroh 1.0 is out. Now is the time to build.
❤12👍9🔥4🤷2🤓1🎅1
Виртуальная машина, которая стартует быстрее вкладки
Обычно VM воспринимается как тяжёлая штука: образ, загрузка, ожидание. smolvm пробует другой режим — маленькие переносимые машины с cold start меньше секунды.
Идея в том, чтобы упаковать окружение в один артефакт и запускать изолированный код почти как обычный процесс. Это уже интересно для CI, песочниц, временных dev-окружений и задач, где контейнеров мало, а полноценные VM слишком дороги.
Обычно VM воспринимается как тяжёлая штука: образ, загрузка, ожидание. smolvm пробует другой режим — маленькие переносимые машины с cold start меньше секунды.
Идея в том, чтобы упаковать окружение в один артефакт и запускать изолированный код почти как обычный процесс. Это уже интересно для CI, песочниц, временных dev-окружений и задач, где контейнеров мало, а полноценные VM слишком дороги.
👀11👍7🤯3❤1🔥1🤔1🌭1🤗1💅1
Forwarded from Нейроканал
В топе трендов Hugging Face сейчас стоит хобби-проект одного человека под ником yuxinlu1. Это маленькая кодинг-модель на базе Gemma 4 12B в формате GGUF: запускается локально, самый лёгкий вариант весит 4,5 ГБ и влезает почти в любую видеокарту или в общую память Mac. Работает оффлайн, без облака и API, за неделю уже 146 тысяч загрузок.
Самое интересное в том, на чём её учили. Это дистиллят рассуждений двух коммерческих моделей: основным учителем был Composer 2.5 от Cursor, а задачи, где он ошибался, отдавали Fable 5, чтобы тот переписал решение заново. В обучающий набор брали только те цепочки рассуждений, чей итоговый код реально прошёл тесты. Поэтому модель сначала думает над задачей вслух, потом выдаёт решение.
Через несколько дней после релиза доступ к Fable 5 автору закрыли, так что для второй версии он теперь присматривается к GLM-5.2. И ещё момент: модель специально без выравнивания на безопасность, отказывается реже базовой Gemma.
@neuro_channel
Самое интересное в том, на чём её учили. Это дистиллят рассуждений двух коммерческих моделей: основным учителем был Composer 2.5 от Cursor, а задачи, где он ошибался, отдавали Fable 5, чтобы тот переписал решение заново. В обучающий набор брали только те цепочки рассуждений, чей итоговый код реально прошёл тесты. Поэтому модель сначала думает над задачей вслух, потом выдаёт решение.
Через несколько дней после релиза доступ к Fable 5 автору закрыли, так что для второй версии он теперь присматривается к GLM-5.2. И ещё момент: модель специально без выравнивания на безопасность, отказывается реже базовой Gemma.
@neuro_channel
👀29❤9🤔3💋2😇1🗿1
Я тут наткнулся на исследование рынка ПО для ИИ-технологий. И вот как бы мы не шутили про вайбкодеров, а внедрение ИИ-моделей для работы и, в частности, для разработки уже становится «базовым инфраструктурным слоем, доступным большинству компаний». Так во всяком случае говорят эксперты, участвовавшие в исследовании.
Вообще рекомендую почитать вам подробнее. Там интересная информация. Но я вас вот о чем спросить хотел... Как считаете, с учётом развития агентов, не уйдут ли классические разработчики в сторону? Может они уступят место «ИИ-ревьюерам», которые умеют читать код и правильно давать задачи агентам, но недостаточно глубоко знают все нюансы стека, который используют?
Вообще рекомендую почитать вам подробнее. Там интересная информация. Но я вас вот о чем спросить хотел... Как считаете, с учётом развития агентов, не уйдут ли классические разработчики в сторону? Может они уступят место «ИИ-ревьюерам», которые умеют читать код и правильно давать задачи агентам, но недостаточно глубоко знают все нюансы стека, который используют?
🌚14😱5🔥3👏2👍1🤔1
Epic делает Git для репозиториев, где код — не главная проблема
Epic Games показала Lore — open-source VCS для проектов, где рядом с кодом живут гигабайты ассетов, билдов и бинарников.
В обычной разработке Git чаще всего страдает от истории и конфликтов. В геймдеве он ещё и упирается в тяжёлые файлы, partial checkout, хранение чанков и нормальную работу с большими деревьями.
Lore как раз смотрит в эту сторону: Merkle trees, chunked storage, sparse/on-demand hydration и API для C/C++/C#/Rust/Go/Python/JS. Хороший повод посмотреть, как VCS выглядит, если проект начинается не с src/, а с мира, моделей, текстур и билд-артефактов.
Epic Games показала Lore — open-source VCS для проектов, где рядом с кодом живут гигабайты ассетов, билдов и бинарников.
В обычной разработке Git чаще всего страдает от истории и конфликтов. В геймдеве он ещё и упирается в тяжёлые файлы, partial checkout, хранение чанков и нормальную работу с большими деревьями.
Lore как раз смотрит в эту сторону: Merkle trees, chunked storage, sparse/on-demand hydration и API для C/C++/C#/Rust/Go/Python/JS. Хороший повод посмотреть, как VCS выглядит, если проект начинается не с src/, а с мира, моделей, текстур и билд-артефактов.
👍26💊9❤3🎉3⚡1❤🔥1
Команда, которая объясняет, почему процесс вообще запущен
witr пытается закрыть именно этот разрыв. Утилита ищет цепочку причин: сервис, родительский процесс, порт, контейнер, socket activation и другие следы, которые помогают понять происхождение процесса.
Репозиторий я бы держал под рукой.
ps aux показывает, что в системе что-то живёт.есс воопоказывает, что оно ест ресурсы. А вот вопрос “кто это поднял и зачем?” обычно начинается с прогулки по systemd, cron, контейнерам и истории шелла.witr пытается закрыть именно этот разрыв. Утилита ищет цепочку причин: сервис, родительский процесс, порт, контейнер, socket activation и другие следы, которые помогают понять происхождение процесса.
Репозиторий я бы держал под рукой.
👍29👎3😁2👾2❤1🤯1🤣1🏆1🍾1🙈1🙉1
Как мы проскочили путь от первого iPhone и сложной разработки под мобильные устройства до эпохи ИИ? Что случилось и к чему это привело — в третьей части цикла об истории российского IT.
Мобильный бум застал индустрию врасплох: было непонятно, как адаптировать сайты под маленькие экраны и что делать со слабой связью. Решением стали нативные приложения — их начали разрабатывать многие компании. Так мы пришли к эпохе супераппов, где собрано всё и сразу.
Приложений, проектов и стартапов становилось больше — начался расцвет российского IT. Но разработчиков не хватало, и на сцену вышли курсы, школы и онлайн-уроки. Желающих войти в профессию оказалось огромное количество, и рынок быстро перегрелся. Теперь новичков заменяет ИИ, а найти работу — задача со звёздочкой. Сегодня гонка за лучшими программистами превратилась в гонку ИИ-инфраструктур.
Так решения порождали новые проблемы, а российская IT-индустрия вышла на новый уровень сложности. Подробнее — в материале на Tproger.
Мобильный бум застал индустрию врасплох: было непонятно, как адаптировать сайты под маленькие экраны и что делать со слабой связью. Решением стали нативные приложения — их начали разрабатывать многие компании. Так мы пришли к эпохе супераппов, где собрано всё и сразу.
Приложений, проектов и стартапов становилось больше — начался расцвет российского IT. Но разработчиков не хватало, и на сцену вышли курсы, школы и онлайн-уроки. Желающих войти в профессию оказалось огромное количество, и рынок быстро перегрелся. Теперь новичков заменяет ИИ, а найти работу — задача со звёздочкой. Сегодня гонка за лучшими программистами превратилась в гонку ИИ-инфраструктур.
Так решения порождали новые проблемы, а российская IT-индустрия вышла на новый уровень сложности. Подробнее — в материале на Tproger.
👍9😭6❤3😱2🙈2🤔1🤯1🐳1🤨1💊1🙊1
115 тысяч строк BASIC, которые не хотели умирать
Автор Wall Street Raider три года восстанавливал финансовый симулятор, который впервые вышел ещё в 1986 году. Внутри не аккуратный учебный legacy, а огромная живая программа на BASIC, росшая десятилетиями.
Интересно не только то, что игру вернули к жизни. Интересно, как вообще подходить к софту, где бизнес-логика, интерфейс, исторические решения и личная память автора спаяны в один ком.
Разбор хорошо читается как археология кода.
Автор Wall Street Raider три года восстанавливал финансовый симулятор, который впервые вышел ещё в 1986 году. Внутри не аккуратный учебный legacy, а огромная живая программа на BASIC, росшая десятилетиями.
Интересно не только то, что игру вернули к жизни. Интересно, как вообще подходить к софту, где бизнес-логика, интерфейс, исторические решения и личная память автора спаяны в один ком.
Разбор хорошо читается как археология кода.
👍32✍3🤔3🤩2🙏2😇2💊2😢1🍾1🗿1🙉1
Интерпретатор Wasm, который одновременно доказывает свою правоту
Talos не разделяет код, который запускает WebAssembly, и код, который описывает её правила. В одном репозитории на Lean 4 одни и те же определения выполняют Wasm-инструкции и служат основой для рассуждений о них.
Это значит, что спецификацию не нужно синхронизировать с реализацией отдельно: если интерпретатор что-то проглотил, с ним можно рассуждать формально, не подгоняя спецификационный интерпретатор под код. Пока проект в активной разработке, API доказательств может меняться, но сам подход цепляет.
Код лежит на GitHub.
Talos не разделяет код, который запускает WebAssembly, и код, который описывает её правила. В одном репозитории на Lean 4 одни и те же определения выполняют Wasm-инструкции и служат основой для рассуждений о них.
Это значит, что спецификацию не нужно синхронизировать с реализацией отдельно: если интерпретатор что-то проглотил, с ним можно рассуждать формально, не подгоняя спецификационный интерпретатор под код. Пока проект в активной разработке, API доказательств может меняться, но сам подход цепляет.
Код лежит на GitHub.
🤓13❤8🤔4🤩2🍾2😴2🗿2🆒2🤷♀1✍1😈1
Кто-то завернул антидетект-браузер в REST API, чтобы ИИ-агенты ходили в сеть без шума
Camoufox хорошо прячет браузер от автоматических проверок, но запускать его руками из агента — постоянная возня с профилями, проксями и разрешениями. Автор репозитория собрал сервер поверх движка: один запрос, и браузер уже открывает страницу, прикинувшись обычным пользователем.
Ещё один плюс: поддержка OpenClaw plugin. То есть к серверу можно подключать внешние расширения и не городить всю логику в одном скрипте. Пригодится для парсинга, тестирования автоматизации и сбора данных без постоянной войны с антиботами.
Репозиторий на GitHub.
Camoufox хорошо прячет браузер от автоматических проверок, но запускать его руками из агента — постоянная возня с профилями, проксями и разрешениями. Автор репозитория собрал сервер поверх движка: один запрос, и браузер уже открывает страницу, прикинувшись обычным пользователем.
Ещё один плюс: поддержка OpenClaw plugin. То есть к серверу можно подключать внешние расширения и не городить всю логику в одном скрипте. Пригодится для парсинга, тестирования автоматизации и сбора данных без постоянной войны с антиботами.
Репозиторий на GitHub.
GitHub
GitHub - redf0x1/camofox-browser: Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw…
Anti-detection browser server for AI agents — REST API wrapping Camoufox engine with OpenClaw plugin support - redf0x1/camofox-browser
🥰9👏6👍4❤3❤🔥1☃1🔥1🎉1😈1
Почему в больших компаниях пишут плохой код хорошие инженеры
Кажется, в крупном бизнесе у инженеров есть время и деньги делать всё аккуратно. На практике там постоянно работают люди, которые только недавно разобрались в кодовой базе. Средний срок работы в big tech: год-два, а реорганизации случаются ещё чаще, поэтому систему правят те, кто осваивался в ней последние полгода.
Старые кодовые базы живут десятилетиями и меняют владельцев разными командами. Опытные «старые руки» ловят проблемы на ревью, но их знания никак не формализованы, и их могут перекинуть на другой сервис. Экспертиза уйдёт вместе с ними. Автор статьи показывает: плохой код в больших компаниях — это не про квалификацию, а про зарплату и ротацию команд.
Если кодом владеют вечные новички, качество зависит не от найма звёзд, а от того, удержатся ли те, кто знает, где собаки зарыты.
Кажется, в крупном бизнесе у инженеров есть время и деньги делать всё аккуратно. На практике там постоянно работают люди, которые только недавно разобрались в кодовой базе. Средний срок работы в big tech: год-два, а реорганизации случаются ещё чаще, поэтому систему правят те, кто осваивался в ней последние полгода.
Старые кодовые базы живут десятилетиями и меняют владельцев разными командами. Опытные «старые руки» ловят проблемы на ревью, но их знания никак не формализованы, и их могут перекинуть на другой сервис. Экспертиза уйдёт вместе с ними. Автор статьи показывает: плохой код в больших компаниях — это не про квалификацию, а про зарплату и ротацию команд.
Если кодом владеют вечные новички, качество зависит не от найма звёзд, а от того, удержатся ли те, кто знает, где собаки зарыты.
❤32🤔4💯3🎄3🤷♀1🥰1👏1🆒1