Обновить

Разработка

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

Пандемия «порченой крови»: виртуальная катастрофа с реальным продолжением

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

Привет всем любителям онлайн-игр и истории игровой индустрии! Сегодня хочу вспомнить один инцидент в виртуальном мире, произошедший 20 лет назад. Для абсолютного большинства из нас слово «пандемия» ассоциируется с COVID-19, но подлинные фанаты World of Warcraft наверняка поняли, что речь пойдет о Corrupted Blood incident — первой эпидемии в виртуальном мире, задевшей почти четыре миллиона игровых персонажей. Фанатам WoW предлагаю вспомнить былые времена, а всем остальным — познакомиться с этим интересным и в определенной степени поучительным событием. 

Читать далее

Видеоаналитика в реальном времени: что делать, если нет GPU

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

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

Но что делать, если вы работаете не в IT-гиганте с дата-центрами и парком GPU, а в промышленной компании с изолированными сетями, ограниченными ресурсами и жёсткими требованиями к отказоустойчивости?
Рассказываю:

— почему разработка видеоаналитики в промышленности отличается от БигТеха;

— какие ограничения приходится учитывать: отсутствие GPU, изолированные сети и жёсткие требования к отказоустойчивости;

— как удалось оптимизировать пайплайн и сохранить стабильность его работы;

— какие локальные оптимизации реально работают (а какие дают минимальный прирост);

— как архитектурные изменения увеличили производительность в 28 раз;

— с какими вызовами команда сталкивается сегодня и что предстоит решать дальше.

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

Подробный кейс с деталями

Три пути к 4K: выбираем свой инструмент для нейросетевой реставрации видео

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

Превратить старое видео из 480p в кристально чистое 4K сегодня может каждый. Но какой ценой? Пока одни инструменты подкупают простотой и мощными моделями вроде Starlight, другие предлагают безграничную гибкость open-source, а третьи — ультимативную скорость обработки, требуя взамен технических знаний.

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

Читать далее

Как написать нейросеть для бизнеса на Python

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

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

Читать далее

Издательство Питер. Колонка редактора, октябрь 25 г

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

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

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

Читать далее

Зоопарк фреймворков для AI-агентов: как выбрать подходящий — делаем бенчмарк и большое сравнение

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

Привет! В этой статье я детально разберу основные фреймворки для AI-агентов, попробую их побенчить и детально распишу их плюсы и минусы. Если вы подступались к агентам, то первым вопросом наверняка стало «а на чем их делать?». Отовсюду все говорят про langchain и десяток других фреймворков, звучат аббревиатуры типа MCP и A2A, какие-то Swarmы и CrewAI, мультиагентность и самое всякое разное.

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

Что будем тестировать: LangChain, LangGraph, AutoGen, CrewAI, OpenAI Swarm, LlamaIndex, MetaGPT, ControlFlow, Haystack, Phidata, Pydantic AI, smolagents, DSPy, SuperAGI, Semantic Kernel, Claude Agent SDK

Читать далее

Как я писал свою звонилку для видеозвонков

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

Я написал свою альтернативу звонкам в WhatsApp и Telegram — полноценный Android-клиент на WebRTC с поддержкой P2P-аудио и видео, STUN/TURN, сигналингом и собственным UI.

Забудьте про «корпоративные мессенджеры»: проект JOPA Call (👉 «Just One Peer App») работает напрямую, без лишних посредников.

Реализовано: peer-to-peer соединения, fallback через TURN, мини-preview окна камеры, управление потоками и адаптивное видео.

Макс и его «супераппы» могут курить в сторонке — теперь у меня есть свой звонок-клиент, который не зависит от гигантов.

Читать далее

Архитектура NGFW: опыт использования VPP и DPDK, частые ошибки разработчиков

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

Всем привет! Меня зовут Константин. Моя карьера в сетевой разработке началась со времен Symbian OS, когда я участвовал в создании сетевого стека этой платформы. С 2010 года я работаю в «Лаборатории Касперского», разрабатывая мобильные и сетевые продукты, а последний год плотно погружен в проект NGFW. В мои задачи входит как проработка архитектурных решений, так и написание кода ключевых модулей. 

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

- об архитектуре передающего слоя (data plane) нашего продукта, основанной на связке DPDK/VPP;
- о пути сетевого пакета в рамках data plane NGFW;
- о частых ошибках при разработке решений на базе VPP;
- о разработке и сценариях встраивания в высокоскоростной конвейер обработки пакетов VPP некоторых из наших движков безопасности;
- об истории создания наших собственных движков безопасности DPI и IDPS (хочу выразить благодарность за неоценимую помощь в подготовке материала для данного раздела коллегам из команды IDPS и лично Евгению Прусову);
- об интеграции data plane с протоколами динамической маршрутизации.

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

Читать далее

MES-система глазами тестировщика

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

Привет, дорогой читатель! Я, Владимир Зиновьев, ведущий тестировщик в ИТ-команде «Северстали». Если тебя заинтересовала эта статья, то скорее всего ты такой же тестировщик, как и я, и задаёшься вопросом, как эффективно выстроить свою работу. Здесь я поделюсь долгим путём нашей команды со всеми «шишками» и успехами тестирования наших систем в большом MES-проекте. Особенно я бы порекомендовал обратить внимание на раздел с тестированием «Legacy-системы», так как там применялись довольно нестандартные и интересные подходы, по-моему мнению, конечно. Давай погружаться.

Читать далее

PCIe умер, да здравствует CXL

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

Привет, постоянные и не очень читатели!

CXL (Compute Express Link) — свежий стандарт интерконнекта, появившийся в 2019 году. Его главная фича — новый подход для работы с памятью и вычислениями: поддержка когерентного кэша и трафика между процессорами и ускорителями, возможность собирать инфраструктуру как конструктор, гибко распределяя ресурсы, и другой функционал.

В этой статье я подробно расскажу про CXL (и при чём тут PCIe вообще). Кратко пройдёмся по истории этой технологии, посмотрим, что такое интерконнект, разберёмся, как и на чём CXL работает, на каком этапе развития находится и чего ждать в ближайшие годы.

Здесь будет всё, что вы хотели знать про CXL, но лень было искать, так что заваривайте чайничек листового — и приятного чтения! :)

Дропдаун

Amplicode – идеальное дополнение к IntelliJ IDEA Ultimate. Огромный гайд для Spring-разработчика

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

Все уже прекрасно понимают, что Amplicode — неотъемлемая часть тулинга для разработки в OpenIDE, IntelliJ IDEA Community Edition и GigaIDE на Spring Boot. Но стоит установить Amplicode в IntelliJ IDEA Ultimate и ваша, казалось бы, идеальная IDE станет ещё мощнее и удобнее.

Читать далее

Внедрение пуш-уведомлений в React Native: от Firebase до кастомных модулей

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

Привет, Хабр! Меня зовут Георгий, и я тимлид команды платформы в компании Купер. Мы специализируемся на разработке IT-приложений для маркетинга и бизнеса, включая кроссплатформенные мобильные решения на базе React Native. В этой статье я хочу поделиться опытом работы с пуш-уведомлениями. Расскажу, с чего мы начинали, какие проблемы встретили и к чему пришли на текущий момент. Все примеры возьму из свежего проекта, исходники которого доступны на GitHub — ссылку оставлю в конце.

Читать далее

[Пятничное] Я сломал русский язык. Теперь ваша очередь

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

Все вокруг стараются сделать мир лучше, пишут редакторы, используют нейросети. Скука! Я решил пойти другим путём и создал "Лабораторию Абсурда" — которая намеренно и с особым цинизмом превращает любой осмысленный текст в лингвистический бред.

Не спорю, существуют и другие генераторы бреда, но я дарю вам 50 (или что-то около того) разных способов издевательства над текстом и здравым смыслом! Никаких рекламных баннеров, только ванильный JS и словари на тысячи слов, только хардкор!

Читать далее

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

Безопасные операции zero-copy на C#

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

C# — гибкий язык. На нём можно писать мобильные и десктопные приложения, игры, веб-сайты, сервисы и API. Можно писать на нём, как на Java, со всеми абстракциями и AbstractionFactoryClassProvider. Но, в отличие от Java, на нём также можно писать низкоуровневый и небезопасный код. И когда я говорю о низкоуровневом, то имею в виду отсутствие сборщика мусора и сырые указатели.

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

Для безопасности доступ к элементам массивов выполняется в C# с проверкой границ. Но из-за этого страдает производительность, если только, конечно, компилятор не сможет избавиться от операции проверки границ. Логика устранения проверок границ должна гарантировать, что проверка границ индекса массива уже выполнялась раньше или что во время компиляции индекс точно будет находиться в границах. Для примера возьмём простую функцию:

Читать далее

Просто о сложном: архитектура фронта для техлида

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

Привет, Хабр! Меня зовут Максим Вишневский, я архитектор (в основном фронтенда) и автор небольшого Telegram-канала Вишнёвые истории. Эта статья основана на моём докладе с TeamLead Conf++ 2024.

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

Читать далее

VEF ТА-12. Оживляем раритетный телефон с АОН

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

Приветствую всех!
Пожалуй, этот девайс стал одним из самых запоминающихся артефактов проводной телефонии. Именно на базе этого телефона было создано немалое количество определителей номера на процессорах КР580ВМ80А и Z80.

Так уж получилось, что ко мне в руки попал такой АОН. Как насчёт посмотреть, как он устроен, и вернуть его к жизни? Именно этим мы сейчас и займёмся.

РУСЬ - 6с.

Redis Streams в PHP с backpressure: устойчивые consumer-группы + повторная доставка

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

Привет, Хабр!

Redis Streams давно перестали быть экзотикой для любителей CLI и стали нормальным способом гонять события между сервисами. Но у PHP есть своя специфика: один код — два способа конкурентности. Либо Amp с неблокирующим I/O и семафорами, либо Swoole с корутинами. В обоих случаях хочется одного и того же: устойчивые consumer-группы, ручной ack, автоматический claim зависших сообщений, backpressure, экспоненциальные ретраи и внятный дед-леттер.

Перейти к материалу

Как инженерная боль вдохновила на создание мобильного приложения — клиента Modbus TCP

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

Практические сложности настройки устройств Modbus TCP/RTU в промышленной среде и легкое решение через мобильное приложение.

Читать далее

Переезжаем в Firefox. Советы по настройке. Продолжение

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

Хочу поделиться своим опытом перехода с Chrome браузеров на Firefox.
Изначально я хотел добавить комментарий к одноименной статье, но в процессе написания понял, что комментарий будет слишком длинным и его увидит мало людей. Отдельная статья лишней не будет в продвижении остатков свободы в виде браузера от Mozilla Corporation.

Долгого предисловия не будет, в телеграм не приглашаю. Идём сразу к делу.

Читать далее

Движок для Arcanum: Ретро-кодинг на ПК 1995 года как акт цифровой археологии. Глава 01 — Синопсис

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

Недавно сообщество фанатов классической RPG Arcanum: Of Steamworks and Magick Obscura потрясла новость: разработчик по имени Alex завершил титанический труд по реверс-инжинирингу оригинального движка игры. Теперь у нас есть его полнофункциональные исходные коды, которые можно компилировать под Windows, Linux и macOS с использованием современной библиотеки SDL3.

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

Так родился этот личный эксперимент. Я не буду переделывать готовый движок. Я попытаюсь с нуля написать свой движок для Arcanum так, как если бы на дворе был 1995 год.

Егог