Обновить

Разработка

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

Вайб-кодим локальный мультимедийный сервер на C++ и Vue.js

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

У каждого из нас на жестких дисках копятся терабайты контента. Фильмы, скачанные «про запас», архивы семейных видео, гигабайты музыки во FLAC, которую жалко удалять, и тысячи фотографий. Но есть проблема: потреблять этот контент локально — неудобно. Когда дома лежит большой медиа‑архив — фотографии за годы, фильмы, музыка, куча видео — начинаешь задумываться, что работать с этим напрямую через файловую систему совсем не удобно. Особенно в эпоху, когда интерфейсы крупных медиа‑сервисов настолько продуманы, что сами по себе стали стандартом UX.

Я поставил перед собой задачу: сделать полноценный мультимедийный сервер, который работает из одного .exe файла, не требует интернета, не требует настройки и предоставляет удобный интерфейс.

Читать далее

Лабораторная работа по тонкой настройке LLM для нестандартных задач классификации

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

Еще со времён школы меня будоражили возможности, которые дают компьютеры. Написать программу — это как создать что-то материальное своими руками. Неделю назад я за один вечер прочитал книгу Себастьяна Рашки «Строим LLM с нуля» (доступна на английском бесплатно), в которой без сложной теории матанализа описывается архитектура современных LLM и как их тюнить. 

Если вы интересовались, как работают LLM, то уже имеете представление, что модели умеют предсказывать следующее слово и что за этим стоит математика. Но на этом объяснение, как правило, заканчивается. Детали того, как они предсказывают следующее слово, часто рассматриваются как черный ящик.. В этой статье предлагаю рассмотреть эту тему подробнее и познакомиться с тонкой настройкой (fine-tuning) LLM для решения условно-практической задачи классификации с помощью примеров кода, приведенных в упомянутой книге. 

Статья устроена так, что все шаги в статье вы можете повторить и в конце получить набор скриптов для выстраивания пайплайна обучения LLM. Я же описал свои шаги, потому что лучший способ что-то понять — это применить теорию на практике и попытаться объяснить результат кому-то. 

Чтобы приступить к лабораторной работе, достаем двойные листочки, расчехляем питон и тиктокен.

Читать далее

Защита от мошенников: как я написал MVP версию сервиса для защиты от скама и мошенничества через Telegram

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

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

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

Читать далее

Автоматически скрываем лишние истории в VK: простой браузерный скрипт

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

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

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

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

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

GitHub

Читать далее

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

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

Приложение тормозит. Это жалоба номер один, которую слышат разработчики и архитекторы. Но "тормозит" — это не диагноз. Это симптом. За этим простым словом может скрываться что угодно: от плохо написанного SQL-запроса до "шумного соседа" в облаке или неправильной настройки сборщика мусора.

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

Читать далее

Искусство выжить. Простое руководство для настоящих программистов

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

Задача Эдсгера Дейкстры о философах – великая задача великого программиста. Уж сколько лет, а она актуальна. Решая ее, прикасаешься к этому величию. И вот, перефразируя известное, «давно не было такого и вот опять», можно познакомиться с ее «новым прочтением» на Хабре[1].

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

Познакомился с проблемой обедающих философов – Dinning Philosopher Problem (DPP), я более двадцати лет тому назад (про DPP см. [2]). Результатом стала статья, в которой философы выполняли поставленную задачу, как минимум, не хуже, чем классические алгоритмы сортировок[3]. Позднее был сделан доклад на конференции по параллельным вычислениям в Саратове, где на суд научной общественности была предъявлена модель автоматных параллельных вычислений и пример ее приложения - задача Дейкстры[4].  

Замечание 1. В рамках обсуждения статьи на Хабре было проигнорировано  предложение поручить сортировку философам. Зря, конечно, т.к. надо же как-то убедиться, что предлагаемое решение работает хотя бы в первом приближении. К примеру, тот же DeepSeek, моментально выдавший свое решение DPP, так и не смог заставить их сортировать.

Не знаю, считается ли данная задача решенной, но то, с чем я знаком, по большей части беглое рассмотрение проблем, которые она отражает. У задачи есть теория, которая представлена монографией Хоара[5], или моделями сетей Петри у Питерсона[6] и В.Е. Котова[7] или другими подобными публикациям. Но, повторюсь, все это по большей части достаточно краткий анализ свойств модели и/или даже конкретного решения. Статья на Хабре из этой же серии. Все это ни как не окончательное решение описываемых ею проблем параллелизма. Правда, может, [авторами] вопрос так и не ставился, но все же ответ на него весьма желательно иметь.

Читать далее

Card DOM на языке Argentum: мы дома

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

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

В предыдущих частях мы разобрали DOM-подобные структуры данных, оценили их поддержку в ряде языков с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript. и С++, Rust и D-lang (а также упомянули Zig, Odin, Jai, Python, V, Cone и Pony).

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

Посмотрим, как с этой задачей справляется Argentum — язык, для которого такие структуры данных являются нативными.

Читать далее

Микрофронтенды: прихоть разработчиков или реальная польза для бизнеса

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

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

Читать далее

Spring Boot 4. Новые модули. Зачем?

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

Это довольно короткая статья, целью которой является пояснение того, что вообще такое "модуляризация" Spring Boot, почему она появилась и откуда, собственно, ноги растут.

Для многих Spring Boot это просто автоконфигурация. Само собой Spring Boot гораздо шире и включает в себя в том числе ещё и

Spring Boot Actuator

Spring Boot DevTools

Spring Boot Tools и т.д.

Читать далее

Немного об электродвигателях

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

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

Тем не менее, иногда даже в такой консервативной сфере случаются серьёзные прорывы и, одному из них, многие из нас, были свидетелями: на рубеже между 1980 и 1990 годами благодаря открытию и широкому внедрению редкоземельных магнитов  NdFeB (неодим-железо-бор) , SmCo (самарий-кобальт) произошла тихая революция в электродвигателях, где, благодаря таким магнитам удалось кардинально улучшить их характеристики: в те годы даже ходила поговорка, что «электродвигатель никогда не будет летать», из-за большого веса старого типа двигателей (особенно это поговорка касалась малой, беспилотной авиации), а повсюду властвовали исключительно двигатели внутреннего сгорания. 

И вот, нынешнее поколение уже даже, наверное, и не представляет, что «а разве когда-то было иначе?», видя, как лавинообразно распространяется беспилотная авиация, дроны. 

В свете всего этого, имеет смысл ещё раз взглянуть на историю электродвигателей, как таковых…

Читать далее

Как в ALD Pro организована миграция с AD, групповые политики, работа с отечественными ОС. Интервью с разработчиками

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

Привет, Хабр! Продолжаю рассказывать про российские аналоги Microsoft Active Directory для построения корпоративных доменов. Идея этих материалов — собрать в одном месте все известные и распространённые отечественные аналоги, и чтобы человек, малознакомый или не знакомый с ними, мог выбрать нужный и сравнить ответы самих разработчиков. Да, тут на Хабре уже полно статей, но я решил сделать серию материалов, от которой можно отталкиваться, выбрать нужное решение и потом искать дальше материалы по теме. Первый материал был про российскую систему централизованного управления IT‑инфраструктурой «Ред Адм». В новом я поговорил с разработчиками ALD Pro.

Итак, встречайте разговор с директором серверного ПО «Группы Астра» Алексеем Фоменко и менеджером продукта ALD Pro «Группы Астра» Анатолием Лысовым. Мы поговорили о том, как был реализован проект, когда начался, какими он обладает фичами на конец 2025 года и можно ли на ALD Pro перейти с Windows‑инфраструктуры безболезненно. Приятного чтения!

Читать далее

Крупнейшая утечка секретных документов DARPA раскрыла неожиданные детали IT сектора США

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

Издание SelaNi опубликовало результат анализа утечки секретных документов DARPA, слитых в сеть в начале недели. В документах в основном финансовые отчёты и перечисления финансируемых программ, но также там оказались планы и отчёты по экспериментам и разработкам проведённым агентством за период с 2009 до 2025 год.

Отчёт 2010 года свидетельствует о том, что основной проблемой военной промышленности США стал найм программистов. Основные критические системы, такие как банки, были написаны на COBOL, а в военной сфере по директиве DoD 3405.2 использовался только язык программирования Ada. Оба языка постепенно потеряли носителей и к 2010 году стало понятно, что им нужно искать замену.

Читать далее

Оптическое радио

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

Передача информации с помощью электромагнитного излучения происходит двумя основными способами – оптическим (в видимой части спектра с включением соседних областей – УФ и ИК) и радио (в длинноволновой части спектра). Эти способы принципиально отличаются друг от друга и это связано не только с длиной волны используемого излучения.

Оптический способ

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

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

Читать далее

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

Чистая правда: как компьютерное зрение помогает делать мир чище

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

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

Всем привет! Меня зовут Алина, я инженер‑исследователь в Центре искусственного интеллекта СФУ. В этой статье расскажу, как мы применяем методы компьютерного зрения для анализа фотографий уборок в проекте «Чистые игры», как подошли к задаче автоматической оценки качества уборок и какие технические решения легли в основу MVP. В конце поделюсь выводами и тем, что удалось сделать, а что ещё предстоит улучшить.

Читать далее

Per aspera ad astra. Как построить космолет, не привлекая внимания санитаров

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

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

Читать далее

GigaChat 3 Ultra Preview — тяжёлый open source

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

Салют, Хабр!
В этот раз мы хотим поделиться с вами чем-то большим... буквально большим — 712
миллиардами параметров! И всё это под открытой лицензией MIT!

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

Скачать 712 миллиардов весов без СМС и...

Как не надо писать код на C++

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

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

Читать далее

От идеи до сертификации: как мы делали устройство, которое должно спасать людей при ДТП

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

Меня зовут Владимир Радченко, я инженер-программист в компании Taiga IoT. В 2022 году мне довелось принять участие в проекте, который оказался значительно сложнее, чем можно было представить по описанию стандарта: разработке Устройства Вызова Экстренных Оперативных Служб (УВЭОС) в формате дополнительного оборудования для системы ЭРА-ГЛОНАСС.

В обиходе это устройство называют «SOS-кнопкой», «тревожной кнопкой» или «кнопкой спасения». На момент начала проекта в России не существовало ни одного УВЭОС в такой конфигурации, которое прошло бы полный цикл — от разработки до сертификации. Поэтому нам пришлось буквально прокладывать путь: разбираться с нюансами ГОСТов, собирать прототипы, ездить на испытания и устранять проблемы, которые всплывали в самых неожиданных местах.

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

Читать далее

Nano Banana Pro — почему это прорывная модель генерации и редактирования изображений? Проверяем на реальных примерах

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

20 ноября состоялся официальный запуск Nano Banana Pro (Gemini-3-Pro-Image-Preview) с мощной базой Gemini 3 Pro. Это уже более взрослый инструмент для дизайна, инфографики и контента. Мы с вами не только рассмотрим нововведения, почему именно модель стала прорывной, но и на реальных примерах наглядно в этом убедимся.

Читать далее

Как я «взломал» адресную книгу Radmin, чтобы не вводить 1000 IP-адресов вручную

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

Конечно же, взломать – громко сказано, но заголовок рождён эмоциями :-)

Эта история о том, как лень, заставила меня окунуться в реверс-инжиниринг бинарного файла адресной книги Radmin (.rpb).

Внутри – странные заполнители, контрольные суммы, таинственные временные метки и структуры данных, где папки и компьютеры имеют одинаковый размер и бескрайние просторы нулей, о мои глаза!

Результат – opensource утилита для конвертации между RPB и JSON, возможно кому-то пригодится.

Представьте: вы – ответственный за парк из сотен компьютеров. Вам нужно актуализировать таблицу имен и IP-адресов компьютеров или адресную книгу Radmin, или, как в моём случае, использовать список этих записей в другом ПО. Работа трудоёмкая, но я – человек не ленивый, но оптимизированный. Вводить вручную имя, IP, порт, настройки для каждого компьютера – рутина, однообразное щёлканье кнопок! Кажется, жизнь пролетает впустую, так я подумал, когда представил, что мне предстоит это сделать.

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

«Эврика! – подумал я. – У меня же есть Radmin, а там есть все адреса! Я экспортирую их и использую себе во благо!».

Эврика длилась ровно до момента, когда я обнаружил, что Radmin экспортирует адресную книгу только в свой собственный формат - rpb, добавили бы csv, с моей точки зрения логично, «Спасибо, разработчики». Документации? Конечно, нет, это же не api и не опенсорс.

Интересное дальше