Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

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

Raspberry Pi, веб‑камера и Python — все, что нужно для создания ИИ‑тренера по фортепиано

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

Здравствуйте! Меня зовут Ада Ло́пес, я студентка первого курса факультета «Креативные технологии и ИИ» в Университете Хауэст в Кортрейке.

Этот проект — моя первая полностью самостоятельная работа по интеграции искусственного интеллекта с «железом». Фортепианный тренер на базе ИИ — интерактивный комплекс для помощи начинающим в обучении игре на фортепиано. Система предоставляет обратную связь в реальном времени и отслеживает исполнение заранее заданной мелодии.

Под катом — весь путь создания проекта. Мы пройдем от обучения ИИ-модели и создания корпуса — до построения контура обратной связи и решения проблем с потоковой передачей данных в реальном времени. Опыт получился отличным! Он был наполнен отладкой, открытиями и множеством ночных тестов.

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

Как девопсы контейнеризацию с виртуализацией дружили

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

А что, если бы виртуалки вели себя как контейнеры — с миграциями, мониторингом, провижингом томов и GitOps? Мы во «Фланте» так и сделали: совместили Kubernetes с KubeVirt, там-сям допилили и получили решение, которое позволяет запускать виртуальные машины рядом с контейнерами и управляется как обычный кластер Kubernetes.

Привет, Хабр! Я — Олег Сапрыкин, технический директор по инфраструктуре компании «Флант». Сегодня я расскажу, как мы создавали виртуализацию в экосистеме Deckhouse от выбора инструмента для управления ВМ в 2023 году до полноценного продукта, готового к использованию в production весной 2025-го. Подробно опишу, с какими подводными камнями мы столкнулись в процессе эксплуатации и какие доработки потребовались.

Читать далее

CPython — бессмертные Immortal объекты

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

Начиная с версии 3.12 Python поддерживает такой тип объектов, как бессмертные (Immortal). Бессмертными объектами являются глобальные константы, такие как None, False, True, а также некоторые другие объекты. Если вам интересно, что это за объекты, как ими становятся обычные смертные, где они используются и как повлияли на CPython — добро пожаловать.

Читать далее

Как я написал покер‑бот за 4 недели, используя Cursor + GPT

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

Мой первый опыт публикации и рассказ о том, как я за четыре недели сделал рабочую альфа-версию покер-бота. В проекте использованы методы Монте-Карло, компьютерное зрение (YOLO), Python и инструменты вроде Cursor и Roboflow.

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

Читать далее

Почтовая корова? Как поднять свой почтовый сервер Mailcow

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

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

В этом руководстве мы пройдем весь путь: от развертывания сервера до отправки первого письма с настроенной и автономной почтовой системы. Никаких «черных ящиков» и компромиссов. Только вы, надежное «железо» и стопроцентный контроль.

Читать далее

.SLN умер. Да здравствует .SLNX

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

Каждый, кто хотя бы раз запускал Visual Studio, имел дело с файлом формата .sln. Это файл решения, который содержит информацию о структуре, конфигурации сборки, настройках платформы и других параметров. Но зачем спустя столько лет вводить новый формат .slnx и чем они друг от друга отличаются? Разберёмся в этой статье.

Читать далее

Как использовать AI-агент Claude Code: советы опытного разработчика

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

Я больше года использовал Cursor. Подробно изучил все его возможности и лучшие практики работы с инструментами и... отказался от всего этого в пользу Claude Code.

Уже несколько недель я полностью работаю в Claude Code вместо Cursor. И, честно говоря, возвращаться совсем не хочется. В этой статье я расскажу, как использую Claude Code и поделюсь своими советами по его максимальному использованию.

Читать далее

Структура файловой иерархии Linux

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

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

Читать далее

Дружеское знакомство с SVG

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

SVG – одна из самых интересных технологий браузера. С его помощью можно делать массу полезных и интересных компонентов. Это неотъемлемая часть моего стека.

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

Для понимания этой статьи не требуется специальных знаний и опыта работы с SVG, но предполагается, что вы знакомы с основами HTML/CSS/JS.

Читать далее

Будущее JavaScript: что нас ждет

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

Недавно прошла 108-я встреча TC39, на которой было продвинуто 9 предложений на разные стадии стандартизации — от сырых идей (Стадия 0) до полностью утвержденных возможностей (Стадия 4).

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

Читать далее

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

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

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

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

Читать далее

Правда ли KAN лучше MLP? Свойство разделения глубины между двумя архитектурами

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

Прошлым летом в свет вышла новая архитектура нейронных сетей под названием Kolmogorov-Arnold Networks (KAN). На момент выхода статьи про KAN эта новость произвела фурор в мире машинного обучение, так как KAN показывала существенный прирост в качестве аппроксимации различных сложных функций. Ошибка новых сетей падает значительно быстрее при увеличении числа параметров. Однако, за все приходится платить, и цена таких маленьких значений функции ошибки - медленное обучение: KAN обучается примерно в 10 раз медленнее, чем старый добрый MLP. Из всего этого возникает вопрос: насколько все же уместно использование новой архитектуры вместо привычных всем MLP?

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

Читать далее

Вкат сразу на мидла: без опыта

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

Сейчас джунам практически невозможно вкатиться в IT — об этом только ленивый не написал. Просто нет стартовых позиций, а на стажировки берут только студентов топовых вузов. Компании хотят «готовых бойцов», желательно с тремя годами опыта.

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

Так на рынке появился новый жанр — вкат в IT как услуга. Эти люди называют себя менторами, но по факту они учат не писать код, не работать в команде и даже не решать задачи. Они учат врать уверенно.

Читать далее

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

За неделю от ночных кошмаров до спокойного сна: как я автоматизировал защиту от AI-хакеров

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

Никто не любит быть тем парнем, который говорит «а давайте еще и защиту поставим». Особенно когда речь идет о блестящем новом AI‑продукте, который должен был запуститься «еще вчера». Но когда твой корпоративный чат‑бот начинает выдавать системные промпты направо и налево, а в 2 ночи тебе в Telegram прилетают сообщения «СРОЧНО! Хакеры взломали бота!» — понимаешь, что без брони в бой идти нельзя.

Читать далее

pg_dphyp: учим PostgreSQL соединять таблицы по-другому

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

Большая часть времени планировщика запросов в СУБД тратится на поиск оптимального способа соединения таблиц. В PostgreSQL используется два алгоритма: алгоритм динамического программирования, также называемый DPsize, и генетический — GEQO. В других СУБД реализовано еще множество других алгоритмов. DPhyp — алгоритм соединения на основе гиперграфов — уже используется такими СУБД как MySQL и YDB. Я задался вопросом: можно ли реализовать его в PostgreSQL? Оказывается, можно. Так и зародилось расширение pg_dphyp для PostgreSQL, реализующее альтернативный алгоритм соединения таблиц. В статье я не описываю подробно сам алгоритм, привожу только концептуальное описание его идеи, а рассказываю вот о чем:

-- Какие решения пришлось принять, чтобы добавить алгоритм DPhyp в существующую кодовую базу без изменения ядра;
-- Как GPLv2 помог найти эффективный алгоритм обхода соседей;
-- Как проиндексировали неиндексируемое гиперрёбра;
-- Планирование какого запроса смогли ускорить в 600 раз;
-- Какой изъян в работе существующего планировщика был найден.

Но главный сюжетный поворот — в конце...

Читать далее

Бумажный геймдев: как увлечь ребёнка без интернета и гаджетов

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

Привет, Хабр! Как вы думаете: что общего между написанием сложного кода и игрой с семилетним ребёнком? Отвечу как молодой отец и сотрудник ИТ-компании: оба процесса занимают неопределённо много времени и порой заставляют вас усомниться в своём интеллекте. Если за помощью с кодом всегда можно обратиться к Stack Overflow или (простите!) к ИИ-ассистентам, то ребёнок требует вашего персонального внимания. Считайте, что вы один на один с естественной нейросетью, которая находится в стадии обучения, но уже активно лезет в продакшен. А ещё эта нейронка часто капризничает и требует поиграть, игнорируя ваши дедлайны.

Оставлять ребёнка надолго перед экраном — не лучшая идея (хотя продавцы очков и контактных линз, а также психологи будут вам благодарны). Поэтому ищем другие варианты. Если ваш ребёнок уже освоил азы шантажа («Пап, а я тогда не усну!») и базовые алгоритмы манипуляции («А мама разрешает!»), пора переходить к ассиметричным ответным мерам. Нам помогут не столько старые, сколько добрые игры на бумаге, которые слегка изменились со времён нашего детства.

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

Читать далее

Livepatching для ядра Linux на x86 и RISC-V: как это работает

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

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

Давайте теперь посмотрим, что стоит за этой магией, а после этого разберемся, как все это использовать в продакшене.

В этой части статьи будет и несколько вопросов-заданий для читателя. Ответы и подсказки — в конце.

Читать далее

Пишем агента на Kotlin: KOSMOS

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

Интернет завален реализациями на Питоне, но иногда удобнее разбираться с технологиями на своём основном языке. Для мен;я это Kotlin.

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

Статья обещает соблюдать два принципа, упрощающих восприятие:

‣ Движение от частного к общему, потому что легче воспринимать примеры, чем абстракцию.
‣ Быстрая обратная связь, как с REPL.

Агента реализуем так, чтобы легко было заменить лежащую в основе LLM. Посмотрим, как отличается работа при использовании REST API в сравнении с SDK, пощупаем Гигачат и Anthropic.

Ах да, 🪐 KOSMOS — акроним. Kotlin Open Synthetic Mind Orbiting System.

Читать далее

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

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

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

Меня зовут Александр Елизаров, я работаю в группе аналитики ключевых показателей в бизнес‑группе Поиска и рекламных технологий. В течение нескольких лет нам приходилось прогнозировать большое количество временных рядов разных доменных областей: от поисковой доли Яндекса до DAU определённых сервисов. Чтобы успешно справляться с этой задачей, мы вместе с коллегами разработали собственный прогнозный фреймворк. В этой статье я расскажу, как создать универсальный и гибкий пайплайн для прогнозирования. Под катом рассмотрим:

— правильно выстроенную иерархию данных;

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

— частые проблемы моделей и то, как мы их фиксили;

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

Читать далее

Нейро-дайджест: ключевые события мира AI за 3-ю неделю июля 2025

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

Привет! Это новый выпуск «Нейро-дайджеста» — коротких и полезных обзоров ключевых событий в мире искусственного интеллекта и технологий.

Неделя выдалась насыщенной и интересной: Mistral подвезли глубокий рисёрч и визуальный редактор прямо в Le Chat, OpenAI тестирует мощную программную модель o3 Alpha, а Grok внезапно стал аниме-девочкой. В Дубае откроют первый ресторан с ИИ-шефом, а Netflix уже использует ИИ в создании сериалов.

Всё самое важное — в одном месте. Поехали!

Читать дайджест