Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Контент, который ест сам себя

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.6K

Да, это хаб про Java и разработку, но в новогодние каникулы его «захватили» маркетологи: решили размять мозги не хардкором, а хайповой темой про ИИ-контент на площадке, которая развивается и зарабатывает благодаря UGC (user generated content) и экспертным текстам - это про Хабр. И разработчикам тут тоже есть что обсудить: мы все пишем статьи, доки и комментарии, а ИИ уже меняет правила игры интересно, как с этим будет жить Хабр и как вы сами к этому относитесь: фильтруете, боретесь или используете в полный рост.

Если вы работаете с контентом, особенно B2B, то вы уже заметили это: привычный поиск в Яндексе или Google перестаёт работать как раньше. ИИ-ассистенты медленно, но уверенно меняют правила игры. Раньше процессы SEO были понятными (с оговорками на постоянное изменение алгоритмов, но все же): написал статью, прокачал ключи, получил трафик. Сегодня этого уже недостаточно. ИИ-ассистенты дают готовый ответ прямо на запрос пользователя, зачастую не приводя к переходу на сайт. А ваша команда потратила часы и недели на подготовку документации и сложного контента, который вместо целевого трафика получил пшик!

Читать далее

Обзор сертификации HTB Certified Web Exploitation Specialist (HTB CWES, бывший CBBH)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4.4K

Вступление

После успешной сдачи OSCP и CRTP, я начал поиск вакансий в сфере пентестинга и заметил, что большинство работодателей ищут веб- и моб-пентестеров. Хваленый и суперпопулярный OSCP очень слабо покрывает направление веб-пентеста, а CRTP - это все про AD.

После неудачного поиска работы я решил дальше учиться, чтобы подтянуть свои навыки в вебе и в будущем заняться баг-хантингом. Несмотря на мой список сертификатов (OSCP, CRTP, PNPT, PJPT, CompTIA A+, Network+, Security+), меня так никуда и не позвали на собеседования :) Без подходящего опыта работы и знакомств пробиться оказалось очень сложно, поэтому я решил делать упор на специализацию в вебе и получить опыт в баг-хантинге.

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

После небольшого исследования мой выбор пал на два сертификата: Certified Web Exploitation Specialist (HTB CWES) от HTB и Burp Suite Certified Practitioner (BSCP) от PortSwigger.

Ранее, во время подготовки к OSCP, я проходил различные обучающие модули от HTB (AD, SQLi и прочее). Мне тогда контент очень сильно зашел, поэтому я решил взяться именно за этот сертификат.

Для получения этого сертификата нужно выполнить три условия:

Читать далее

Как измерили Землю без GPS: дуга Струве длиной 2820 км

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели9.9K

О том, что Земля имеет форму шара, знали задолго до Нового времени. Но одно дело общее представление, и совсем другое — точные измерения размеров и формы планеты.

Для этого нужны были не рассуждения, а масштабные геодезические работы: измерения углов, расстояний и сложные вычисления на тысячах километров. В XIX веке такую «линейку» создал астроном Василий Струве, по��троив величайшую геодезическую дугу своего времени — цепочку из 265 треугольников от Северного Ледовитого океана до Чёрного моря.

В этой статье разберёмся, как работала «Дуга Струве» и почему без неё современная геодезия выглядела бы иначе.

Читать далее

Еще раз о симметрии кубика Рубика. «Зеркало» двусторонних MDSI-паттернов

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели5.7K

Это статья является дополнением к большому материалу Симметрия кубика Рубика, где я рассказывал о своем методе сборки зеркальных двусторонних инверсивных паттернов Mirror Dual-Sided Inverse (MDSI) на кубике Рубика. Я посчитал нужным дополнительно объяснить, как эвристически искал доказательство того, что возможно на противоположных сторонах кубика Рубика собрать любой (2-, 3-, 4-, 5- и 6-цветный) MDSI паттерн. Для этого я ввел понятие «зеркало» для среднего слоя, который отражает противоположные стороны и применил правило четности пермутаций.

Крутить кубик Рубика...

Цифровой рубль: что это такое и как он изменит платёжную систему

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

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

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

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

Читать далее

Вы 100% не знали хотя бы 1 фишку в LaTeX из этой статьи. часть 2/4

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели5.4K

Меня зовут Виталий и я пишу уже который год самую большую книгу по математике для 4 11 классов, а так же автор поста (рекомендую почитать) о ней. Пишу я ее в LaTeX и считаю, что современный учебник не должен быть черно-белым, а так же должен быть удобен для использования и учеником и учителем. Здесь я собрал вторую часть фишек, которые я использую (что-то чаще, что-то реже). Надеюсь, вы найдете что-нибудь полезное для себя:)

Постараюсь все подробно описать, но не гарантирую идеального кода. Компиляция в основном с помощью pdflatex, но есть места, где требуется lualatex. Для себя я сделал около 35 стилевых файлов для использования в преамбуле, но тут я написал полный код чтобы в каждом случае можно было запустить "из коробки".

Первая часть тут

Читать далее

От промпта до продакшна за два часа: всё, что нужно знать о Claude Code

Уровень сложностиПростой
Время на прочтение22 мин
Охват и читатели12K

Каждый январь нагрузка на инженерные команды растёт. Больше функций, ускоренные релизные циклы, повышенные требования к надёжности. Ваше новогоднее обещание наверняка звучало как «работать умнее, а не усерднее», но обычно это лишь утешительное клише, которое мы повторяем себе прямо перед тем, как снова засидеться допоздна, чиня сломанный пайплайн.

В 2026 году «работать умнее» наконец-то означает подключить агента к процессу.

Не для автодополнения. Не для подсказок. Для исполнения.

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

Это руководство покажет вам, как строить реальные системы с Claude Code.

Читать далее

Нечёткое тестирование свойств

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели5.1K

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

Я собираюсь рассказать о том, как правильно тестировать код в изоляции (интеграционные тесты — зверь из соседнего вольера, и о нем — в другой раз). Для этого нам потребуется пара определений. Фаззинг (от английского fuzzing) — это способ тестирования, при котором программе скармливают огромные объемы случайных, полуслучайных или вообще намеренно испорченных данных, с надеждой выявить уязвимости или баги. Изначально этот метод применялся в академической среде для поиска дыр в безопасности, но быстро перекочевал в руки здравомыслящих разработчиков. Property-based testing, в свою очередь, представляет собой подход к тестированию, где вместо проверки конкретных примеров типа «дважды два — четыре» мы формулируем общие свойства системы. Например: «если функция принимает список и возвращает список, то длина результата не должна превышать длину входа». А дальше уже инструмент генерирует тысячи, миллионы вариантов входных данных и проверяет, соблюдается ли это условие.

Taste it!

Быстрый старт в мониторинг сервисов с LLM под капотом

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.3K

За прошлый год я запустил 5 сервисов с LLM под капотом. Каждый следующий сервис получался лучше предыдущего: мы оттачивали архитектуру, оптимизировали core микросервиса на FastAPI, быстрее выходили на MVP и ловили меньше багов.

Но довольно быстро стало понятно: LLM‑сервисы сложно интерпретировать. Для бизнес команды они выглядят как black box. Для инженеров — как набор плохо воспроизводимых состояний.

В этой статье я поделюсь практиками, которые:

— упрощают интерпретацию поведения LLM;

— делают работу сервиса прозрачной для Product Owners и SME;

— ускоряют разработку и итерации без передеплоев.

Читать далее

Корпоративный RAG как MCP-сервис: подключаем кодовую базу к IDE

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.3K

В компаниях с несколькими продуктами знания о коде и архитектуре почти неизбежно расползаются. Часть живёт в репозиториях, часть — в статьях с архитектурными решениями, часть — в корпоративной базе знаний (в нашем случае — Confluence). На небольшом масштабе это выглядит как порядок. Но по мере роста начинают проявляться системные эффекты.

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

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

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

Читать далее

А не замахнуться ли нам на Вильяма нашего Аккермана?

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели5.8K

Продолжение статьи о разработке стекового процессора с оригинальной архитектурой.
Здесь мы занимаемся инфраструктурой - ассемблером, компилятором С и эмулятором процессора.

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

Читать далее

By the pricking of my thumbs, something wicked this way comes

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели5.2K

Эту фразу из "Макбета" Шекспира автор осмелится перевести как "благодаря зуду на кончиках моих пальцев может появиться что-то очень странное".

Изначально хотелось всего-лишь ознакомиться с Verilog, но, "опасное это дело, выходить за порог: стои�� ступить на дорогу и, если дашь волю ногам, неизвестно куда тебя занесет".

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

Надеюсь, это окажется кому-то полезным, так же как когда-то автору был полезен игрушечный hoc из книги Кернигана и Пайка "Unix - программное окружение".

Читать далее

TacLibrary открытая библиотека для разработки игр на Unity 3d (идея создания)

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.4K

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

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

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

Читать далее

Ближайшие события

ICNLI: как мы переосмыслили управление инфраструктурой через естественный язык

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели6.6K

Представьте: вы пишете "перезапусти продакшн-сервер" в Telegram, и система не просто понимает запрос — она знает, какой именно у вас сервер, что на нём запущено, кто будет затронут простоем, и предлагает конкретный план действий. Без панелей управления, без SSH, без поиска в документации.

Это не шизофреническая фантазия. Это ICNLI (Infrastructure Contextual Natural Language Interface) — открытый стандарт, который мы разработали и уже внедрили в production на десятки серверов.

Читать далее

Core i9 vs Apple M2: как честно сравнивать калькуляторы с суперкомпьютерами

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели10K

Представьте ситуацию: вы выбираете между Intel Core i9 и Apple M2 (как пример двух мощных систем). Один потребляет 300 Ватт и греется как печка, другой — 30 Ватт и работает от батареи 20 часов. Один показывает 200 FPS в играх, другой — 90, но в три раза эффективнее. Один стоит $600, другой — встроен в ноутбук за $800. Кого вы выберете?

Читать далее

Встречайте Gas Town

Время на прочтение30 мин
Охват и читатели6.7K

С Новым Годом и добро пожаловать в Gas Town!

Gas Town - это новый взгляд на IDE для 2026 года. Gas Town помогает вам справиться с рутиной запуска множества экземпляров Claude Code. Вещи теряются, трудно отследить, кто чем занимается, и так далее. Gas Town помогает со всей этой рутиной и позволяет вам сосредоточиться на том, над чем работают ваши Claude Code.

В этом посте "Claude Code" означает "Claude Code и все его идентичные конкуренты", то есть Codex, Gemini CLI, Amp, Amazon Q-developer CLI, бла-бла-бла, потому что именно этим они и являются. Клоны. Индустрия - это постыдная детская футбольная команда, гоняющаяся за форм-фактором CLI Claude Code образца 2025 года, вместо того чтобы создавать то, что будет дальше.

Я пошел вперед и создал то, что будет дальше. Сначала я предсказал это еще в марте в статье Месть начинающего разработчика. Я предсказал, что кто-то свяжет верблюдов Claude Code вместе в колесницы, и это именно то, что я сделал с Gas Town. Я приручил их настолько, что вы можете продуктивно использовать 20–30 штук одновременно на п��стоянной основе.

Gas Town имеет свое мнение - во многом как Kubernetes или Temporal, на которые Gas Town похож, по крайней мере, если прищуриться так сильно, что глаза почти полностью закроются. Я включу сравнения как с k8s, так и с Temporal в конце этого поста. Немного удивительно, насколько они похожи, несмотря на радикально разные основы.

Но сравнение должно служить предупреждением: Gas Town сложен. Не потому, что я этого хотел, а потому, что мне приходилось добавлять компоненты до тех пор, пока он не стал самодостаточной машиной. И те части, которые у него теперь есть, ну, они выглядят так, как будто Kubernetes спарился с Temporal, и у них родился очень уродливый ребенок.

Но это работает! Gas Town решает проблему MAKER (Ханойская башня из 20 дисков) вообще элементарно. Просто генерируешь по формуле "цепочку" на миллион шагов - и готово. Вчера ради интереса прогнал 10 дисков за несколько минут: доказал, что тысяча шагов для нас - это не проблема, хотя в статье MAKER говорится, что нейронки ломаются уже через несколько сотен. На 20 дисков закладываю часов 30. На этом мой импровизированный TED Talk окончен.

Все это обретет полный смысл, если вы дочитаете до конца следующих 23 страниц.

Читать далее

Лучшие практики Beads

Время на прочтение8 мин
Охват и читатели4.6K

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

Beads занимает совершенно уникальную нишу. Все сосредоточены на создании инструментов планирования, в то время как Beads - это инструмент исполнения. Это всё равно что поставить вашего ИИ-агента на отлично смазанные лыжи. Возможно, лучшим названием было бы Agents on Rails («Агенты на рельсах»). Но название «Beads» (Бусины) хорошо передает идею того, что инструмент сфокусирован исключительно на отслеживании (трекинге) и ни на чем другом: маленькое имя для маленькой системы.

Сейчас, спустя почти 6 недель своего пути, Beads стал намного, намного стабильнее. Это была безумная гонка, порой менялось по 50 тысяч строк кода в день. И никто из нас, контрибьюторов, даже не просматривает этот код. Он на 100% написан ИИ («vibe coded»), сейчас в нем 130 тысяч строк на Go, и примерно половина - это тесты. Десятки тысяч людей используют его в своих повседневных рабочих процессах. Люди говорят мне, что им это так нравится, что они используют его даже для личных списков дел (TODO). А другие направо и налево встраивают его в более крупные оркестраторы. Это также потрясающий строительный блок.

Мы сохранили небольшой объем функционала. Прислушиваясь к мнению сообщества, я отвергаю всё, что не должно быть частью ядра Beads. Поэтому у Beads нет пользовательского интерфейса (UI), но есть множество примеров UI, которые люди создали как проекты «для души» (passion projects). У нас их уже как минимум четыре или пять. Мой приятель и соавтор Джин Ким даже создал свой собственный UI для Beads на Java Swing! Он был так взволнован, когда показывал мне его. И это действительно было очень круто.

Итак, никакого UI, и у Beads также нет системы планирования. Он не для этого. Но он отлично интегрируется с любой системой планирования - просто составьте план, а затем попросите агента создать в Beads эпики и задачи (issues) для этой работы. После того как эпики будут готовы, вы можете натравить на них любое количество агентов, чтобы они их «разгребли».

Последняя большая категория, которую люди постоянно пытаются втиснуть в Beads, - это оркестрация. Мы знаем, что оркестрация неизбежна. И есть соблазн сделать Beads более активным; сегодня он довольно пассивен и ожидает, что Агент будет использовать его как инструмент. Но люди хотят большего. И я их понимаю. Однако этому не место в Beads.

Читать далее

Представляем Beads: система памяти для кодинг-агентов

Время на прочтение18 мин
Охват и читатели6K

Я занимался вайб-кодингом (vibe coding) как одержимый сорок дней и сорок ночей. Это долгая история, поэтому я резюмирую её в этих трех картинках.

Слева, 3 недели назад: я вайб-кожу на пляже за ужином в Кабо-Сан-Лукас, Мексика, с неподражаемым Торстеном Боллом, нашим приятелем Мэттом Манелой и другими коллегами из Sourcegraph на корпоративном выезде. Кто-то сделал это фото, потому что я отказывался убрать компьютер.

В центре, 2 недели назад: фотография, на которой я фотографирую сам себя, пока еду на скорости 100 км/ч (60 миль/ч) по шоссе в Беллингем, чтобы забрать гитары, занимаясь голосовым вайб-кодингом всю дорогу туда и обратно. Глупо и чертовски опасно. Мне было плевать. Застрял в пробке на несколько часов. Всё равно плевать. Я упоминал, что это вызывает привыкание? Вайб-кодинг вызывает привыкание.

На последнем кадре: мы с женой в торговом центре на прошлой неделе, наслаждаемся приятным днем с кофе, наблюдаем за людьми и вайб-кодим вместе с Моцартом (на фото он в своей любимой сумке). Лин прячется за компьютером - так я получил разрешение руководства на публикацию снимка.

Я никуда не хожу и не делаю ничего, даже не сплю, без своего ноутбука. Ну, разве что когда бегаю - там я ещё не совсем раскусил, как вайб-кодить. Но я близок. Это тема для отдельного поста, но у меня наконец-то работают агенты на GCP с Terraform и Tailscale. Так что скоро я смогу вайб-кодить и с телефона.

Агенты никогда не должны отдыхать.

Читать далее

Flutter Live Templates (Сниппеты)

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4.6K

Те, кто хоть раз пробовал что-то сделать на Flutter, обычно начинали с того, что создавали новый Dart-файл и писали stfl, что сразу создавало шаблонный StatefulWidget с указанным именем для виджета и его состояния. В среде Flutter это называется Live Templates, но по сути — это сниппеты.

Помимо стандартных сниппетов stfl и stls, существуют и другие базовые шаблоны, которые уже установлены по умолчанию. А именно:

Читать далее

Анимация смены темы в Compose Multiplatform

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.3K

Анимация смены темы в Android-версии Telegram на протяжении долгого времени вдохновляет разработчиков на попытки реверс-инжениринга этого красивого трюка: в сети немало подробных гайдов, как сделать подобную анимацию при помощи традиционных XML View и даже Flutter. Но реализаций этой элегантной (хоть и совершенно бесполезной) анимации на Jetpack Compose мне найти так и не удалось, что привело к созданию маленькой библиотеки для анимирования смены темы.

Вера в будущее KMP также подтолкнула меня к тому, чтобы сделать ее из коробки готовой к установке в Compose-Multiplatform проекты, с поддержкой всех основных платформ (Android, iOS, Desktop JVM, Web WASM+JS).

Хотя сама библиотека вышла крайне компактной, ее реализация оказалась довольно нетривиальной на мой субъективный взгляд и может быть интересна каждому, кто изучает Compose или ищет подобные решения для своего проекта.

На старте написания библиотеки сами собой возникли ряд требований, которым она должна была отвечать:

Читать далее