Обновить

Разработка

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

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

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

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

Читать далее

Получение несанкционированного выполнения кода (RCE) в XWiki: разбор CVE-2024-31982 и автоматизация эксплуатации

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

Привет! Меня зовут Артур, я специалист по пентестам в компании Xilant. В этой статье разберём одну из наиболее опасных уязвимостей, обнаруженных в XWiki — CVE-2024-31982, которая позволяет добиться удалённого выполнения произвольного кода (RCE) через, казалось бы, безобидную функциональность поиска.

XWiki давно занимает ключевое место среди корпоративных Wiki-платформ благодаря гибкой архитектуре и мощной системе шаблонов. Однако именно эта гибкость сыграла против неё: некорректная обработка пользовательского ввода в механизме рендеринга шаблонов привела к появлению критической SSTI-уязвимости.

В материале я покажу, как устроена брешь, как она эксплуатируется и как выглядит автоматизированный PoC, который я написал на основе анализа опубликованного исследования автора jacaba с портала Vicarius.io.

Читать далее

Чтобы тебя не вычислили рекламщики, нужно быть параноиком

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

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

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

Читать далее

Невидимая рука предубеждений в архитектуре ПО: размышление о влиянии когнитивных искажений на вектор развития компаний

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

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

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

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

Читать далее

MAESTRO — новый фреймворк для построения мультиагентных систем и цифровых ассистентов на основе LLM

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

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

Построением таких систем заняты многие команды по всему миру. Чтобы ускорить прогресс в этом направлении и помочь коллегам, мы в группе «Мультимодальные архитектуры ИИ» AIRI создали новый фреймворк под названием MAESTRO — Multi‑Agent Ecosystem of Task Reasoning and Orchestration. Мы представили его на конференции AI Journey 2025, которая прошла в Москве на прошлой неделе.

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

Читать далее

Как выбраться из гравитации фреймворков

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

Команда JavaScript for Devs подготовила перевод статьи о том, почему веб-команды застревают на орбите фреймворков и забывают о возможностях самой платформы. Автор убеждён: браузеры развиваются быстрее, чем экосистемы вокруг них, а зависимость от React и других инструментов тормозит инновации. Пора снова смотреть на веб как на платформу, а не как на “внутренность” фреймворка.

Читать далее

Как я свой гибридный протокол шифрования за выходные написал

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

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

Автор подробно разбирает архитектуру протокола, который сочетает асимметричную и симметричную криптографию. Описывается трехэтапный процесс «рукопожатия» (handshake) с использованием эллиптических кривых (X25519) для безопасного обмена ключами и обеспечения Perfect Forward Secrecy (PFS). Также объясняется выбор симметричного шифра ChaCha20-Poly1305 для быстрой и безопасной передачи данных и его преимущества перед AES‑GCM на устройствах без аппаратной поддержки.

Статья раскрывает детали реализации, включая структуру зашифрованных пакетов, защиту от replay‑атак с помощью счетчика сообщений и использование KDF для генерации сессионных ключей. Теоретические концепции подкрепляются наглядными примерами кода на C++. Эта статья будет интересна для тех, кто интересуется криптографией и любит создавать «велосипеды» в образовательных целях.

Читать далее

Протоколы для систем реального времени

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

Эта статья написана по итогам разработки геоинформационной платформы «RndFlow.Кругозор» и конкретной прикладной системы на её основе.

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

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

Сама система представляет из себя интеграционную платформу, которая поддерживает

Читать далее

Object Pool коротко: экономим память в C# без лишнего мусора

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

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

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

Читать далее

Новый уровень проектирования в nanoCAD Механика PRO 2.0 — меньше кликов, больше контроля

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

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

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

«Нанософт» выпустила обновление, которое решает ключевые задачи конструкторов. В nanoCAD Механика PRO 2.0 заметно прокачаны модули для проектирования емкостного оборудования и трубопроводов, добавлена поддержка стандартов (ГОСТ, ОСТ, ISO), введен новый мастер соединений и полноценный растровый инструмент для оцифровки архива чертежей. Основная цель – не просто расширить функционал, а принципиально повысить эффективность работы и вернуть фокус туда, где он действительно нужен – в инженерный замысел и контроль модели.

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

Избавиться от рутины!

Максимальный профит от BIM-модели. Автоматическое формирование схем

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

Привет, дорогие BIM/ТИМ-энтузиасты! Меня зовут Сайыына Колесова, я BIM-координатор в компании КРОК. Я в BIM с 2020 года, реализую проекты для корпоративных задач компании, разрабатываю разные семейства оборудования, арматуры и устройств для корпоративной библиотеки. За это время создала ряд полезных скриптов для проектировщиков и координаторов. В статье расскажу про некоторые из скриптов, а именно, как мы из BIM-модели здания формируем схемы и получаем максимальный профит в программном обеспечении Revit.

Читать далее

Почему ComfyUI — это просто: развеиваем миф о недоступности нодового интерфейса

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

Привет! Меня зовут Андрей, я фронтенд-разработчик в Cloud.ru, веду блог о фронтенде и AI в Telegram. За время работы с ComfyUI убедился: страх перед его сложностью — миф, который мешает раскрыть настоящую силу этого инструмента.

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

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

Читать статью

Как «Спортивный помощник» на NLU закрывает более 80% обращений в чате

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

Привет! Меня зовут Екатерина Морозова и я менеджер продукта «Спортивный помощник». В этой статье я расскажу, как работает наш чат-бот и как мы подняли процент закрытия чатов ботом до более, чем 80%.

Все говорят LLM, а я скажу NLU. А может ли бот без LLM обеспечить высокий процент автоматизации? Да, но…

Путь Спортивного помощника начался в далеком 2022 году. О генеративных моделях тогда было мало известно, и мы стояли перед выбором решения для автоматизации обработки вопросов клиентов в службу поддержки. Кнопочные боты показывали низкую эффективность, поэтому выбор был очевиден - использовать технологии распознавания естественного языка (NLU - Natural-language understanding) для определения намерения клиента.

Читать далее

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

Антипаттерн LLM-приложений: Когда модель игнорирует контекст. Часть 1

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

Всем привет! Бездумно соглашаться с любыми хотелками заказчика или начальства в технических вопросах — почти то же самое, что саботировать проект: всё это быстро превращается в тяжёлый технический долг. Да, жёсткие сроки, ограниченный бюджет и нехватка «свободных рук» — реальность, с которой приходится считаться. Но это не отменяет простой вещи: свои опасения и архитектурные риски нужно озвучивать, выносить на обсуждение и предлагать не только «работающие на сейчас», но и масштабируемые решения.

Как разработчикам нам обычно говорят: «давайте максимально быстро и топорно соберём proof‑of‑concept (PoC)». Мы собираем PoC на костылях, а дальше слышим: «отлично, теперь давайте из этого сделаем MVP». Времени на переорганизацию и реинжиниринг архитектуры никто не даёт. В итоге недели и месяцы работы превращают проект в тупиковую поделку — груду классов, методов и промптов, к которой страшно прикасаться.

С LLM эта история становится ещё болезненнее. В работе у меня было несколько показательных проектов с LLM в роли основного движка (RAG, Q&A‑системы), на которых я очень наглядно увидел, как делать не стоит. Эти «шишки» превратились в набор антипаттернов проектирования LLM‑приложений, о которых я хочу поговорить в серии статей.

В этой части — антипаттерн взаимодействия с LLM, когда модель игнорирует контекст: важные детали промпта, куски документов и даже прямые инструкции.

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

Читать далее

Почему агенты НЕ пишут основную часть нашего кода

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

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

У нас есть веские причины на то, чтобы пока не присоединяться к таким компаниям, как Anthropic (генерируется 80%)Microsoft (30%) и Google (25%).  

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

Читать далее

Чип, который умеет говорить (SI4703)

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

В этом тексте я хотел бы рассказать про свой опыт работы с однокристальным радио приёмникои SI4703 от компании Silicon Laboratories.

SI4703 - это миниатюрный настраиваемый FM радио приемник c DSP обработкой, управляемый по I2C, с возможностью принимать бинарные данные от радиостанций по протоколу RDS .

Чип производит демодуляцию частотно модулированного сигнала, пропускает его через цифровой гетеродин и выдает на наушники аналоговый сигнал. Тут есть два смесителя: первый аналоговый, второй цифровой. Аналоговый смеситель снимает FM сигнал с несущей. Цифровой смеситель подстраивает цифровой гетеродин на конкретную радиостанцию. Это классический гетеродинный приемник.

Читать далее

This is JavaScript: методы объектов и контекст «this»

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

Привет, Хабр. Я Саша, разработчик, пишу на JS. Ранее я рассказывал о callback-функциях, деструктуризации, операторах и многом другом. Если вы уже успели познакомиться с основами JavaScript, то наверняка вам знакомы такие понятия, как объекты и функции.

В этой статье мы двинемся дальше и соберем эти знания воедино. Я расскажу вам о методах объектов и загадочном слове this. Разберемся, для чего они нужны, как сделать объекты по-настоящему живыми и как избежать частых ошибок. Ну что, начнем. 

Читать далее

Серия книг «Грокаем» от издательства «Питер»

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

Привет, Хаброжители!

Сейчас отличное время, чтобы погрузиться в серию книг «Грокаем»!

Серия книг «Грокаем» ориентирована на разработчиков и содержит доступные руководства по сложным технологиям, используя визуальный подход и реальные примеры для лучшего понимания.

Читать далее

DevSecOps для всех: как развернуть стенд за 15 минут

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

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

Поэтому мы собрали DevSecOps-песочницу, которая разворачивается одной кнопкой: подождал 15 минут — готово. Всё крутится на одной виртуальной машине с K3s, управляется через Terraform и Cloud-init, а главное — воспроизводится с гарантированным результатом.

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

Над проектом работала команда из К2 Кибербезопасность: я, Максим Гусев, инженер по защите ИТ-инфраструктуры, и мои коллеги — Максим Виноградов и Александр Лысенко.

Читать далее

10 приёмов профессионала для ускорения кода на Python

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

Команда Python for Devs подготовила перевод статьи о том, как делать код на Python быстрее без переписывания проектов с нуля. В статье 10 практичных приёмов — от sets и bisect до локальных функций и предвыделения памяти — которые дают реальный прирост скорости в типовых сценариях.

Читать далее