Все потоки
Поиск
Написать публикацию
Обновить

Разработка

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

Покраска Cтека (Stack Painting)

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

В процессорах ARM Cortex‑M стек растет от большего адреса к меньшему. То есть вниз. В этом тексте я написал как оценивать расходование стековой памяти прямо во время исполнения программы на микроконтроллере. Считать израсходованный стек можно определив соотношение непрерывно прописанных нулей к ненулевым значениям в диапазоне стековой памяти.

Читать далее

Я отклоняю комиты с использованием кучи и прошу коллег переписать такую логику

Время на прочтение11 мин
Количество просмотров58K

Хочу поделиться своим опытом разработки крупных игровых проектов на C++, где производительность и стабильность — это не просто приятные бонусы, а абсолютно естественные требования к разработке. За годы работы над движками и играми я понял, что подход к управлению памятью очень сильно влияет на весь проект. В отличие от многих приложений - игры, особенно большие, часто работают часами без прерываний и должны поддерживать стабильный фреймрейт и отзывчивость. Когда проседание fps или фриз происходит на глазах у сотен тысяч игроков, вам уже никто не поможет — ущерб уже нанесен, а в steam полетели отзывы о кривизне рук разработчиков.

Однажды моя команда закончила работу над довольно интересным проектом, который портировали больше двух лет на плойку. Движок старый, большой и мощный, но работа с памятью была ориентирована на ПК времен конца 2000-х, и что меня поразило, так это насколько сильно большая часть кодовой базы зависела от динамической памяти во время выполнения. На ограниченном железе (далеко не у всех есть PS5 pro) и в условиях жёстких требований к сертификации на консолях такие решения быстро превращаются в проблему.

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

Читать далее

Развитие интеллектуальных помощников в центрах кибербезопасности

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров850

Всем привет! Я работаю инженером-разработчиком в STEP LOGIC. Наша команда создает технологическую платформу для автоматизации анализа данных и расследования инцидентов STEP Security Data Lake (SDL). Мы были первыми на российском рынке, кто смог внедрить AI-ассистента в SIEM/SOAR. Поэтому в этой статье я хотел бы поразмышлять о перспективах развития и особенностях применения интеллектуальных помощников в системах мониторинга кибербезопасности.

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

Читать далее

PHP: Общая память

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.3K

Хочется быстрый кеш или общение между процессами? Хочется использовать фишки long-running PHP, но без long-running?

Давайте разберёмся, как работать прямо с оперативной памятью: от System V до MapViewOfFile; От shmop до FFI.

Расшарить оперативу

Lens Blur Fields: нейросетевая ФРТ на службе улучшения фотографий и идентификации камеры

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1K

Оптическое размытие — обобщающий термин для различных факторов деградации изображения, таких как расфокусировка, дифракция и аберрации. Математически оно описывается функцией рассеяния точки. Форма ФРТ, как правило, пространственно-вариантна и зависит от координат в поле изображения, настройки фокуса, расстояния до объекта (глубины резкости), апертуры и длины волны. Поэтому любые попытки точно описать размытие реальной камеры сталкиваются с необходимостью измерять слишком большое количество параметров, что на практике выполнить почти невозможно.

Метод Lens Blur Fields предлагает новое решение: использовать многослойные перцептроны, которые обучаются представлять ФРТ в виде непрерывной функции высокой размерности (arXiv:2310.11535). Такая модель способна обобщать по всем параметрам сразу и восстанавливать плавные изменения ФРТ вместо того, чтобы хранить её в виде разрозненной таблицы замеров.

В теории это значит, что метод Lens Blur Fields позволит не только сделать очередной красивый фильтр с боке, но и различать экземпляры камер по снимкам с них.

Читать далее

Доверенный open source в российских продуктах: фантазия или рабочая цель?

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров822

Всем привет!

Сегодня представляем нового эксперта в нашей команде: Дмитрий Белков, руководитель консалтинга Application Security ГК «Солар». В своей первой колонке для Habr Дмитрий оценил вероятность появления доверенного open source и поделился своим мнением о процессах в основе безопасной разработки. Поехали!

Open source дал разработчикам главное — скорость и гибкость. Сторонние библиотеки ускоряют вывод релизов, снижают стоимость лицензий, расширяют функциональность. Но вместе с удобством пришли и угрозы: атаки через зависимости, бэкдоры, эксплойты. Мы все помним Log4j и OpenSSL: когда до 80% библиотек остаются не обновленными, отсутствие контроля зависимостей становится системным риском.

Может ли на этом фоне появиться доверенный open source — открытые компоненты, которые можно использовать без компромиссов по безопасности? Да. Но важно договориться о критериях и инфраструктуре.

Читать далее

USBODE: самодельный аналог «кармана» IODD / Zalman

Время на прочтение5 мин
Количество просмотров5.1K

Часто ли вам приходится переустанавливать операционную систему? Обычный пользователь на этот вопрос, скорее всего, ответит что-то вроде: «раз в пару лет». Кто-то вообще годами сидит на одной и той же, собирая всяческие глюки. Но есть и те, кто делает эту операцию каждый день. Например, системные администраторы и инженеры ЦОДов.

Именно для этой категории людей южнокорейская компания IODD придумала очень удобные устройства — эмуляторы оптического привода (их еще часто называют «карманами»). Стоит лишь залить нужные ISO-образы дисков в специально выделенную директорию, и девайс сможет прикидываться CD/DVD-приводом, подключенным по USB. Такие гаджеты делает и Zalman, а на Хабре мы уже писали про их особенности.

Во всем этом есть только одна проблема. Цена хорошего «кармана» сейчас от 80 до 100 $. Да и найти его довольно сложно — нишевая штука. Но если вы обладатель Raspberry Pi Zero W, то его можно превратить в такой девайс, к тому же более продвинутый и кастомизируемый.

Читать далее

Часть 1. Rsync: подробное руководство для админов

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

Привет, Хабр! В арсенале системного администратора и разработчика есть множество инструментов для переноса данных. Мы копируем файлы десятки раз в день: cp для локальных копий, scp для удалённых серверов. Но что если задача сложнее? Нужно не просто скопировать, а синхронизировать два дерева файлов, дёргая по сети лишь изменившиеся данные? Или поддерживать в актуальном состоянии зеркало веб‑контента?

О чём эта статья?
— Фундамент: как правильно путями в rsync и почему слеш в конце решает всё;
— Два основных режима работы: локально, с сервером;
— Разбор флага -a: что скрывается под капотом; — Главные опции: как сделать вывод подробным, а работу — безопасной; — Синхронизация поверх SSH: работа с нестандартными портами; — Самые опасные «грабли» и как их избежать.

Читать далее

Квантовые компьютеры: патентный анализ за 20 лет

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

Квантовый компьютер — вычислительное устройство, которое использует явления квантовой механики (квантовая суперпозиция, квантовая запутанность) для хранения, передачи и обработки данных. Квантовый компьютер (в отличие от классического) оперирует не битами (способными принимать значение либо 0, либо 1), а кубитами, значения которых представляют собой вектор — суперпозицию 0 и 1. Теоретически это позволяет обрабатывать все возможные состояния одновременно, достигая существенного преимущества (квантового превосходства) над обычными компьютерами в ряде алгоритмов. В этой статье мы рассмотрим, что творилось с патентами на квантовые компьютеры за последние 20 лет. 

Читать далее

DOOH и RTB: как Russ развивает программатические закупки в наружной рекламе

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров726

Привет, Хабр! С вами команда Russtech. Сегодня мы хотим рассказать о работе Russ Programmatic, нашего подразделения, разработавшего систему продажи рекламного инвентаря с помощью аукционов в реальном времени. Программатик в DOOH имеет ряд отличий от традиционного digital-программатика. В этой статье мы обсудим эти ключевые особенности и поделимся нашим опытом внедрения программатических продаж.

Читать далее

Не LLM едиными: генерируем юнит-тесты из реального исполнения на лету

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

Представьте себе: вы отлаживаете новый баг в сложном многослойном приложении (например, на Spring). Чтобы воспроизвести проблему, приходится взаимодействовать со всей системой end-to-end: отправлять запрос на эндпоинт или что-то кликать в UI. Юнит-теста, который бы изолировал нежелательное поведение до уровня злополучного сервиса или утилиты, нет. А хотелось бы, чтобы он был: во-первых, воспроизводить баг было бы проще (особенно если UI кликает QA, а не вы), а во-вторых, его потом можно было бы легко превратить в регрессионный и улучшить стабильность системы.

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

Сегодня расскажу о пройденном исследовательском пути, о том, как попробовать нашу экспериментальную фичу в плагине для IntelliJ IDEA, и о том, что у неё под капотом (спойлер: не только LLM).

Читать далее

Self-modifying SQL: динамическое изменение SQL-кода в процессе выполнения

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

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

Эта статья предназначена для разработчиков всех уровней: от начинающих, которые хотят понять основы динамического SQL, до продвинутых специалистов, интересующихся нетривиальными приёмами и автоматизацией управления данными.

Читать далее

История создания Tarantool DB: реальные проблемы, удачные решения и превращение проекта в продукт

Время на прочтение9 мин
Количество просмотров2.5K

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

Меня зовут Александр Кленов, я тимлид разработки Tarantool DB в команде Tarantool. Я расскажу историю о том, как мы брали зрелый, но очень гибкий Tarantool Enterprise и превращали его в решение, которое можно установить из коробки.

Читать далее

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

Снова в айти или мой опыт обучения на ручного QA

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров855

Здравствуйте, меня зовут Ирина. Я хочу поделиться своим опытом обучения на тестировщика в 3 разных школах.

Зачем я училась в трех разных школах? — спросите Вы. Ответ очень прост. Я закончила первую школу на ручного QA, стала смотреть вакансии, чтобы выделиться среди массы ищущих работу джунов решила выучиться на AutoQA. Пошла на курс с нуля до автоматизатора. Проучилась до начала автоматизации, мне не понравилось, вернула деньги за обучение, устроилась работать ручным тестером. Узнав о бесплатном интенсиве с возможностью дальнейшего трудоустройства в известную компанию решила подать заявку и прошла отбор. Таким образом у меня получилось отучиться в трех разных школах, которые я и хочу сравнить и поделиться своим опытом.

Читать далее

Топ-12 бесплатных нейросетей для создания видео и оживления картинок

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

Когда вы в последний раз поднимали взгляд к звёздам и думали: «А вдруг где-то там действительно есть жизнь?»

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

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

Мы протестируем 12 сервисов и посмотрим, смогут ли они превратить безмолвный космос в оживший пейзаж и заселить его инопланетными героями.

Да пребудет с тобой Сила, нейросеть… и пусть твои звёзды не рендерятся сутками!

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

Читать далее

Спутниковые системы квантовой криптографии: безопасность из космоса

Время на прочтение6 мин
Количество просмотров1.5K

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

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

Читать далее

Подключаем Claude по MCP к базе данных на домашнем компьютере

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

Про протокол MCP (Model Context Protocol) сейчас говорят всё чаще. Этот протокол позволяет нейросетям общаться с внешним миром. С его помощью к LLM можно подключать любые источники данных или системы управления, и всё это через один универсальный стандарт. MCP часто сравнивают с USB — устройство одно, протокол один, а число сценариев применения практически бесконечно.

В статье расскажу про практический сценарий «как связать LLM и базу данных». Это может сделать любой на своём компьютере.

Протокол MCP придумали ребята из Anthropic. Далее будем использовать нейросети Claudе Sonnet и Claude Opus — это LLM от Anthropic.

Зачем это нужно? Такая связка позволит промтами вытаскивать инсайты из данных, создавать отчёты в PDF и строить интерактивные отчёты в HTML. Это работает на моём компьютере последние два месяца и результаты очень обнадёживающие.

Чтобы было интереснее, в качестве данных возьмём все вакансии Habr Career c описаниями.

Читать далее

Как Node.js выжимает максимум из I/O в 2025 году

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

Команда JavaScript for Devs подготовила перевод статьи о том, как Node.js выжимает максимум из I/O в 2025 году. В ней подробно объясняется цикл событий, порядок фаз и то, как правильно писать код, чтобы серверы оставались отзывчивыми даже под нагрузкой.

Читать далее

Интеграционные тесты в Go: как избавиться от флаков и боли

Время на прочтение10 мин
Количество просмотров2.8K

Всем привет! Меня зовут Александр Голубь, и я пишу на Go уже 7 лет. Когда я только начинал, казалось, что юнит-тестов достаточно. Функции проверены, сборка зелёная — можно релизить. Но первый же боевой проект показал, что это иллюзия. В продакшене всё падает, хотя юниты сияют зелёным. Почему? Потому что реальный сервис — это не только код, но и PostgreSQL, Redis, Kafka, внешние API. Данные проходят через цепочку зависимостей, и любая несовместимость ломает систему. Юнит-тесты этого не ловят. Тут нужны интеграционные.

Читать дальше →

Оптимизация функций компьютерного зрения (библиотека OpenCV) для RISC-V

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров2K

OpenCV — популярная библиотека, включающая множество алгоритмов компьютерного зрения и функций для них. Оптимизация их под RISC-V — большая и интересная задача, которой в рамках Зимней школы RISC-V YADRO сезона 2024–2025 занимались студенты Университета Лобачевского (ННГУ). В этой статье они подробно расскажут о своей работе.

Читать далее