Обновить
1024K+

Программирование *

Искусство создания компьютерных программ

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

Spring Data. На пути к более строгой типизации

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

В новом переводе от команды Spring АйО разберем, почему stringly-typed API со временем становятся хрупкими, чем помогают метамодели вроде Querydsl и JPA Criteria, и как новый механизм в Spring Data даёт более лёгкую и естественную альтернативу без лишней инфраструктуры сборки.

Читать далее

Новости

Испанский в кармане: Архитектура Telegram-бота с локальным Whisper.cpp, AI-диалогами и оценкой произношения

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

Привет, Хабр! Меня зовут Vlad, я начинающий Python‑разработчик и энтузиаст изучения языков.

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

Я решил закрыть эту боль кодом. Моя цель была амбициозной: создать Telegram‑бота, который:

1. Слушает голосовые сообщения и распознает речь без дорогих облачных API.
2. Оценивает точность произношения в процентах, сравнивая с эталоном.
3. Поддерживает живой диалог через LLM, исправляя ошибки на лету.
4. Работает быстро и экономно на слабом VPS.

В этой статье я подробно разберу архитектуру проекта, покажу, как интегрировать бинарный whisper.cpp в асинхронный aiogram 3.x, реализую алгоритм оценки речи и расскажу про управление состояниями (FSM). Под капотом — Python, нейросети и немного магии.

Читать далее

Как не дать knowledge base устареть

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

Устаревшая документация хуже, чем её отсутствие — она отравляет контекст LLM. Агент доверяет тому, что видит. Garbage in — garbage out, только garbage выглядит как аккуратный markdown.

Это вторая часть серии. Первая часть — «Слепое пятно LLM-разработки: контекст за пределами кода».

Читать далее

Вайбкодинг есть, а вайбрезультатов нет?

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

Поклонники вайбкодинга и агентных инструментов говорят, что стали продуктивнее в 2, в 10, а то и в 100 раз. Кто-то собрал целый браузер с нуля. Впечатляет!

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

Посмотрим на PyPI — центральный репозиторий Python-пакетов. Он большой, публичный и стабильно измеримый, так что AI-эффект должен быть хорошо заметен.

Читать далее

strace: отладка Linux-приложений через системные вызовы

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

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

Читать далее

Релиз Java 26, Xiaomi в топе и сертификация вайбкодеров

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

Шестой выпуск еженедельных IT-новостей от OpenIDE: Java прощается с аплетами навсегда, Cursor не соблюдает лицензию Kimi, а менеджеры придумали новую единицу измерения продуктивности разработчика.

Читать далее

Ursina 3D-игры. Определение расстояния между двумя объектами

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

В этом руководстве мы разберёмся, как в игровом движке Ursina определять расстояние между объектами. Это очень важно для создания интерактивных игр: чтобы враги замечали игрока, предметы можно было подбирать, а интерфейс реагировал на действия пользователя.

Также приведено несколько практических примеров с подробными комментариями для начинающих:
1. Простое обнаружение стены
2. Подбор предмета (альтернатива distance)
3. Пуля и враг
4. Система подбора предметов
5. ИИ врага — зона обнаружения
6. Столкновения в Pong

Читать далее

Что происходит в российском DevOps-ландшафте прямо сейчас: 13 инструментов с продуктовой аллеи

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

На любой DevOps-конференции рано или поздно возникает один и тот же момент. Слушаешь про архитектуру, пайплайны, масштабирование, observability — всё звучит разумно и красиво. А потом в голове появляется простой вопрос: «Окей, а чем вы это всё делаете?». То есть буквально: какие инструменты стоят под капотом, как они внедрялись, где с ними было больно и где они действительно экономят время команде.

Именно для таких бесед на DevOpsConf 2026 будет отдельное пространство — продуктовая аллея!

Читать далее

Интеграция с китайскими картами Baidu — с настройкой полигонов и кластеризацией

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

Baidu Maps — китайский картографический сервис с собственным API. Он активно используется внутри КНР и поддерживает стандартные сценарии: отображение карты, маркеры, полигоны, кластеры.

На первый взгляд интеграция выглядит как обычно. Но при работе с реальными данными появляются отличия. Используется система координат BD-09. Мир не повторяется по долготе. Поведение геометрии отличается от Google Maps и Яндекс Карт.

Привет, я Екатерина Плаксина, фронтенд-разработчик Далее. В этой статье разберу каждую проблему отдельно и поделюсь своими решениями.

Читать далее

AsmX G4 Raptor: Как мы сделали ассемблер нативным токеном и избавились от боли inline asm

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

Системные программисты годами живут в вынужденном компромиссе. Когда вы пишете ОС, гипервизор или драйвер ядра, у вас два пути. Первый — чистый ассемблер (NASM/GAS), где вы имеете 100% контроль над железом, но теряете систему типов и тонете в ручном управлении памятью. Второй — использование inline asm вставок в C/C++, которые превращают ваш код в строковый «черный ящик», ломают пайплайн оптимизатора и могут взорваться в рантайме из-за ошибки в одной букве (Fragile Constraints).

Мы решили исправить эту историческую несправедливость.

Спустя месяцы безумной разработки мы представляем AsmX Raptor Engine — первый в мире конвейер компиляции, где высокоуровневая типизация и машинные инструкции живут в едином, неразрывном абстрактном синтаксическом дереве (AST).

В этой статье мы заглянем под капот нового движка и разберем:

Frontend-Backend Split: Как Pratt Parser (алгоритм сортировочной станции) и логика lookahead навсегда избавили нас от костылей C++.

Reference Collapsing и CV-квалификаторы: Почему наш тайпчекер ударит вас по рукам, если вы попытаетесь перезаписать const или неправильно примените reinterpret_cast<T>.

Kernel-Mode Orchestration: Как мы научили компилятор быть Version-Agnostic и собирать модули ядра (.ko) под любую версию Linux на лету через вытягивание метаданных из dmesg.

Operand Bridge: Трансляция абстракций в интеллектуальные инструкции железа.

Мы не пытаемся заменить C++. Мы возвращаем инженерам абсолютный контроль над каждым байтом, не лишая их мощи статического анализа. Добро пожаловать в манифест эффективности AsmX Raptor.

Читать полную статью

Go и искусство ставить подножку разработчику: разоблачение

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

Язык проектировался простым, лёгким в освоении, готовым для написания сервисов с первого дня. Он мог бы таким и остаться, если бы не одна проблема. Проблема отбора.

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

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

Узнай тайны

Поиск в коллекциях или когда O(N) быстрее O(1)

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

На собеседованиях мы слышим или говорим сами, что поиск в массиве медленнее, чем в хеш-таблице. Кто-то даже вспоминает, что поиск в массиве имеет линейную сложность или O(n), а в хеш-таблице — константную O(1). Но работает ли это на практике? Что, если есть ситуации, когда поиск в массиве оказывается быстрее? Давайте не будем торопиться с выводами.

Читать далее

Можно и не клонировать: зачем GitVerse сделал новый веб-редактор кода

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

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

Сначала переехали почта и офисные приложения. Потом пришли трекеры задач, инструменты для дизайна. Даже обработка видео и трёхмерная графика теперь доступна онлайн. И вот, казалось бы, последний бастион — полноценные IDE — тоже дрогнул.
Настройки окружений, специфичные для ОС зависимости, вечные «оно работает у меня» — всё это становится анахронизмом. Удобнее открыть вкладку и просто начать работать без установки, обновлений и потерянных на настройку выходных.

Если вы тимлид, DevOps или поддерживаете живой репозиторий, то наверняка знаете эту ситуацию: нужно быстро поправить README, обновить контент для Pages или внести небольшую правку по итогам рецензирования. Изменений на несколько минут, а дальше стандартный сценарий: клонировать репозиторий, открыть IDE, дождаться индексации, вспомнить, в какой ветке вообще планировалась правка. Сам код при этом простой, а контекст задачи давно понятен.

Мы в GitVerse регулярно сталкивались с такими случаями — и как пользователи, и как команда продукта. Поэтому решили не «делать ещё одну IDE», а упростить именно этот класс задач. Об этом и расскажем в статье.

Читать далее

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

Агентная разработка в VS Code: Глубокая настройка RooCode для максимальной эффективности

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

RooCode — расширение для VS Code с многоагентной системой (встроено 5 Модов: Orchestrator, Ask, Architect, Code, Debug)
Ключевые преимущества: синхронное выполнение задач (предсказуемость), гибкая настройка модов, MCP-серверы для снижения ошибок и количества запросов к LLM
Основная идея настройки: каждый Мод отвечает за свою задачу, Оркестратор распределяет работу между ними
Настройка идёт по спирали: от базовых настроек → скиллы → моды → провайдеры → итеративное улучшение

Читать далее

Фронтендеры, хватит покрывать тестами каждую строчку кода – это безумие

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

Я ненавижу писать фронтовые тесты. Не потому что я против тестирования, а потому что в какой-то момент они превращаются в бессмысленный ритуал. Особенно когда от тебя требуют покрыть ими вообще всё.

Читать далее

Voters в Symfony

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

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

В каждом проекте рано или поздно появляется логика вида «этот пользователь может редактировать этот пост, а тот нет». И начинается: if ($post->getAuthor() === $currentUser) в контроллерах, в сервисах, в шаблонах. Копипаста расползается, а потом приходит новое требование — «модератор тоже может редактировать, но только в своей категории» — и вы бегаете по двадцати файлам, молясь, что ничего не забыли.

Symfony Voters — механизм, который выносит всю логику авторизации в одно место. Не аутентификации (тип кто ты?), а именно авторизации (что тебе можно?). Разберём, как это работает.

Разобраться в Voter

Stable Diffusion 3.5 medium на Apple M1 16Gb

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

В этой статье, про ИИ, написанной не полностью ИИ, про генерацию изображений - не будет изображений.

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

Первая проблема с которой я столкнулся - это потребление памяти. Поиски в интернете, описание самой модели говорили о том что она должна помещаться в ~10GB VRAM. Чего должно с запасом хватать для Apple M1 16GB. Однако фактическое зафиксированное потребление памяти составило 21 GB, не зафиксированное 28 GB (после чего я и начал исследование).

Читать далее

Пайплайны, bounce-back и cron для ИИ-агентов на одной подписке Google AI

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

Важный момент: agent-pool - это MCP-сервер, который работает и в IDE, и внутри самого Gemini CLI. Воркер может сам делегировать задачи дальше - создавать подгруппы и запускать своих воркеров. На этом строится вся фрактальная оркестрация.

Читать далее

JavaScript считает все данные датами

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

Excel не единственный, кто любит превращать любые данные в даты.

Если вы работаете с датами в JavaScript, то, вероятно, рано или поздно пользовались new Date(someString). Это удобно: передаём строку, получаем объект Date. Но привыкнув к Python, я был удивлён тем, насколько свободно JavaScript обращается с форматами дат. Позвольте мне проиллюстрировать это примерами.

Читать далее

Развиваем проект: фильтрация, поиск и экспорт данных

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

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

Читать далее