Обновить

Разработка

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

Symfony Init — быстрый старт проекта без лишней рутины

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

Каждый раз, когда хотелось быстро попробовать что‑то на Symfony, начиналась одна и та же история: поднять контейнер с PHP‑FPM или FrankenPHP, провалиться в контейнер, поставить symfony/skeleton, настроить Nginx или Caddyfile, прописать переменные окружения... И всё это до того, как написана хоть одна строчка кода.

DI‑контейнер, консольные команды, компонентная архитектура... Ни для кого не секрет, Symfony заметно ориентируется на Java‑экосистему. Почему бы не попробовать сделать что‑то подобии start.spring.io подумал я.

Так появился пет-проект symfony-init.dev

Читать далее

История о том, как государство сделало всех нас бета-тестерами

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

Госпросьюмеризм и цифровой аутизм — отнюдь не медицинские диагнозы, а новая реальность российских госуслуг. Первый термин описывает ситуацию, когда гражданин вынужден выполнять функции системы бесплатно: от установки сертификатов до походов в МФЦ. Второй — неспособность этой системы слышать пользователя и видеть реальность за пределами базы данных. В первой статье цикла разбираем, как мы стали бесплатными бета-тестерами, и предлагаем внедрение принципа Zero User Effort.

Читать далее

Anthropic раскрывает грязный маленький ИИ-секрет Китая

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

...И при этом демонстрирует двойные стандарты

Anthropic, компания, известная своей жесткой позицией по отношению к Китаю, и один из тех игроков, кто массово использовал данные из открытых источников для обучения своих моделей, теперь обвиняет другие ИИ-лаборатории в краже своих разработок. Такое нарочно не придумаешь.

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

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

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

Читать далее

Один endpoint — одна строка. Как мы до этого докатились на Rust

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

Я пишу на Python. В последнее время увлёкся Rust — типы, скорость, предсказуемость. Но когда смотрю, как пишут веб на Расте, по спине холодный пот: десятки строк замыканий на один endpoint, Box::pin, lock контейнера, resolve, clone. Хотелось питонячего подхода — без мишуры. Решил расширить своего Urich до Rust. Пошёл дальше: написал растовое ядро (роутинг, протокол приложения, HTTP), поверх него — две обёртки: для Rust и для Python. Один core, два языка. В ядре — зачатки ASGI (scope, receive, send).

Всё в ветке multi. Пока work in progress, но то, что получается, нравится. Ниже — суть, пример кода, ссылки. Зову помогать: комментарии, контрибьюции, реальные использования — буду рад.

Читать далее

C++: экономим на спичках

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

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

Довольно типичный случай — у вас есть вполне себе нормальная структура, которая хранит информацию об одном объекте. Но самих объектов очень и очень много. Скажем, у вас 1000x1000 клеток террейна. А это уже целый миллион объектов! И вот ваша структура размером с несчастные 32 байта множится миллион раз и разрастается до объемов 30.5 Mб оперативной памяти.

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

Сэкономить на спичках!

CTF от Aclabs? Не, не слышал…

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

Поскольку я только начинаю свой путь в ИБ, учась, в том числе и на платформе TryHackMe, было интересно получить практический опыт. CTF (Capture The Flag) онлайн соревнования отлично для этого подходят.

В январе проходил FIRST SHIFT CTF на THM, но там был уровень Medium. Я до такого уровня еще не дорос, поэтому продолжил обучение и просматривал различные CTF с низким порогом входа.

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

18 декабря я нашел видео "IDOR для новичка. Простая веб уязвимость. Простая машина neighbour на TryHackMe, уровень легкий!" Мне очень понравился формат, я подписался на канал Mister Exploit, стал смотреть и другие видео. В одном из них было упоминание платформы aclabs.pro.

Автор канала вообще скромняга, он не рекламирует этот проект в каждом видео. Лишь в конце и то не каждого видео, он напоминает, что есть такая платформа. Если бы у меня был такой проект, я бы делал как каждый блоггер у которого <=100 подписчиков, просил бы подписаться через каждые 5 минут...

Читать далее

Отражаем атаку на IOMMU

Уровень сложностиСложный
Время на прочтение16 мин
Охват и читатели7.4K

Что вы знаете об атаках на графические процессоры? Наверняка ничего приятного: они крайне распространены на мобильных устройствах, классические «песочницы» от них не защищают, и компрометация лишь одного драйвера может поставить под угрозу все ядро…

Меня зовут Денис Молодяков, и я — лид команды графики в KasperskyOS. Идея этого текста возникла во время одного моего выступления на конференции по системной разработке. Тогда из зала задали вопрос, который касался безопасности работы драйверов GPU. Слушатель ссылался на кейсы с «подламыванием» механизма управления видеопамятью драйверов на Android для интегрированных ускорителей семейства ARM Mali и спросил, как наша ОС сможет этому противостоять.

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

Читать далее

Восхитительный Range Syntax в CSS

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

Помните сказку про мальчика, который кричал «волки»? Примерно так же в 2025 году случилось с «программированием на CSS». Вышла функция if(). Блогеры преждевременно хайпанули: всё, теперь у нас условия в CSS. Разработчики пошли читать спецификации, попробовали — и довольно быстро выяснилось, что внутри условного выражения style() возможностей почти нет. Многие разочаровались и похоронили идею.

В конце 2025 года Chrome выкатил революционный Range Syntax For Style Container Queries. Обновлённый style() научился сравнивать переменные между собой и поддерживать диапазонные выражения. Мы наконец‑то получили мощную условную логику в CSS, но мало кто это заметил.

В этой статье мы попытаемся реанимировать идею программирования на CSS. На примере интерфейсного паттерна — «выделение диапазона дат в календаре» — разберём, как обычная JS‑логика превращается в CSS‑логику (спойлер: очень просто).

Заинтригованы? Поехали

Data-driven корова: как мы строим SaaS для геномной селекции и решаем проблемы «грязных» данных в агротехе

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

Большинство данных на фермах оседает в Excel-таблицах и тетрадках зоотехников. Вместе с командой Genome AI (акселератор Talent Hub ИТМО и Napoleon IT) разбираемся, как машинное обучение превращает генетический «шум» в прогнозы продуктивности. В статье — про гибридные модели (CatBoost + PyTorch), работу с SNP-маркерами, кривые лактации и то, зачем корове цифровой двойник. Без абстракций — только код на R, визуализации и архитектура пайплайна.

Читать далее

Сравнение двух налоговых служб: ФНС России и IRS США

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

12 лет я отработал в ФНС России: начинал в районной инспекции и завершал карьеру в Управлении ФНС по субъекту. И довольно долго жил с ощущением, что «у нас налоги мягче», предпринимателю проще дышать, а где-то «там» всё устроено жестче и формальнее.

Но всё оказалось не так однозначно, как казалось изнутри системы. Теперь, находясь по другую сторону баррикад, я решил сравнить две налоговые системы: российскую ФНС и американскую IRS, и в итоге оказалось, что налоговое бремя, у нас в России, не такое уж низкое как преподносят в СМИ - оно просто иначе спрятано и иначе распределено. В России человек чаще всего видит только НДФЛ, но значительная часть нагрузки живёт «над зарплатой» - в страховых взносах работодателя, а затем догоняет нас в потреблении через НДС, который уже встроен в цену.

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

Так как тема очень большая, в этой статье я начну с фундамента - разберу архитектуру ФНС и IRS: как устроены уровни управления, где сосредоточены контроль и аналитика, а в следующей части сравню налоговую нагрузку двух стран на конкретных расчётах и покажу, где именно «прячется» налоговое бремя в России и США.

Читать далее

Оптимизация Java-приложений для Arm64 в облаке

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

JVM в первую очередь процесс операционной системы. Но важно понимать, что требования к этому процессу на production отличатся от требований на workstation-е разработчика. 

Если для разработчику важно, чтобы IDE работала быстро и не потребляла всю возможную память на машине, то для серверных JVM важно потреблять максимальный предоставленный ресурс и работать предельно быстро.

В новом переводе от команды Spring АйО разберем, какие существуют базовые настройки кучи, GC и CPU помогают синхронизировать JVM с лимитами контейнера и не переплачивать за простаивающие ресурсы.

Читать далее

Введение в отравление данных

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

В 2025 году отравление данных перестало быть академической гипотезой и превратилось в практическую поверхность атаки для LLM-систем. «Яд» может прятаться в репозиториях, веб-контенте, инструментах агентов и синтетических пайплайнах, переживать дообучение и срабатывать спустя месяцы в виде триггеров и бэкдоров. В статье разберём реальные кейсы, исследования и выводы для тех, кто строит или защищает решения на базе GenAI.

Узнать про риски

Claude Sonnet 4.6: обзор, бенчмарки, сравнение

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

Пристегните ремни, коллеги‑разработчики и любители нейросетей. Если вы думали, что битва титанов между GPT-5.3 и Claude 4.6 Opus, вышедшими в один день, — это пик гонки, то спешу вас обрадовать. Это был только прогрев.

Сначала нам представили новый Опус и 5.3, следом Google выкатил обновленный Gemini, который научился переваривать библиотеки размером с Ленинку. Даже Илон Маск решил не стоять в стороне, выкатив в бету свой Grok 4.20. И вот, когда мы только‑только начали привыкать к новым мощностям, Anthropic делает ход конем и выпускает Claude 4.6 Sonnet.

Знаете, что самое дикое в этой ситуации? Рынок LLM превратился в место, где модели устаревают быстрее, чем вы успеваете обновить баланс в API. Раньше Sonnet считался средним братом — быстрым, недорогим, но все‑таки компромиссным. Но версия 4.6...

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

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

Приятного чтения!

Читать далее

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

Почему мы в Профи.ру выбрали монорепозиторий, а не микрофронтенды

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

История о том, как мы в Профи.ру перешли на монорепозиторий. 

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

Читать далее

Инженерия данных: паттерны проектирования

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

Приветствуем вас, Хабр.

В течение минувшего года мы серьёзно прорабатывали тему инженерии данных (Data Engineering), поскольку остались очень довольны читательским интересом к вышедшей у нас книге «Основы инженерии данных: как создавать надёжные системы обработки данных» Джо Риса и Мэтта Хоусли (оригинал — издательство "O'Reilly"). В январе вышла её допечатка.

Кроме того, у нас уже переведена и ушла в редактуру более продвинутая книга, также от O'Reilly, написал которую Бартош Конечны (Bartosz Konieczny); она называется «Data Engineering Design Patterns: Recipes for Solving the Most Common Data Engineering Problems».

Читать далее

1 тест = 1 проверка. Чем хорош принцип атомарности в автотестах в Postman

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

Принцип атомарности (объект или операцию нельзя разделить на части, не нарушив их целостность или смысл) применяется в как в разработке кода ПО, так и в разработке кода автотестов.

И в автотестах Postman он особенно хорош! Давайте разберемся на примерах, почему лучше писать небольшие автотестики, «один тест, одна проверка», чем «много проверок в одном тесте».

Читать далее

Учим Linux: Файлы, навигация и поиск

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

Начинаю серию «Linux Base» из 11 частей — структурированная база для DevOps, DevSecOps и всех, кто работает с Linux.

Часть 1 — Файлы, навигация и поиск: разбираем структуру каталогов (/etc, /proc, /var и др.), навигацию, работу с файлами, просмотр содержимого и поиск через grep, awk, sed.

в конце также вас ждет Linux commands cheatsheet!

Читать

Я научил свою собаку играть в Vibe Code Games

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

Разработчик рассказал о необычной задумке — он решил научить свою собаку создавать игры с помощью инструментов вайб-кодинга. Вот как это было.

Читать далее

RAG vs Fine-tuning: когда что выбирать — опыт 30+ проектов

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

За 30+ проектов я использовал RAG в 80% случаев, Fine-tuning — в 15%, комбинацию — в 5%. В статье — практическая матрица выбора: когда RAG достаточно, когда нужен fine-tuning, а когда гибрид. С примерами кода, реальными сценариями и разбором ошибок.2

Читать далее

У нас есть джун, и мы его учим

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

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

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

Плюс, постепенно изучаем то, из чего состоит само приложение (что можно подключить память, что там можно выбирать различные инструменты для работы), отдельные моды в LangChain для разных задач, для вопросно-ответных систем, для систем, где агент выбирает сам инструменты, где система работает с реактом.

Обучение строится так:
сначала хоть что-то запустить;
потом понять, как это «хоть что-то» работает;
потом усложнить и понять разницу;
далее переходить к практическим задачкам.

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

Тут важно прописывать задачи.
В одной задаче мы подключаем память.
В другой — используем внешние инструменты, которые могут, например, по API дёргать данные по погоде/курсу валют/сводкам новостей/etc.

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

И после выполнения, например, 5 задач, джун уже может технически разбирать их по существу и понимать, а что и как можно улучшить?

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

Читать далее