Обновить
25
1

Пользователь

Отправить сообщение

AI-ассистент для 15 000 файлов: быстрее, чем спросить у коллег

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

Привет! Я Алексей из команды Fiji, которая занимается внутренним продуктом для хранения и редактирования геоданных. Мы уже немного рассказывали о нем на Хабре: раз, два, три, четыре.

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

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

Так и появилась идея сделать помощника как для новых ребят, так и для старичков, так как весь контекст держать в головах уже проблематично: основной солюшн — это почти 15 тысяч файлов на C# и около 1.5 млн строк кода, плюс утилиты и пара сервисов на Java.  В статье — история о пройденном пути создания командного ассистента, который помогает отвечать на любые вопросы о проекте.

Читать далее

Поиск работы Java-разработчика в 2025 году

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

В статье рассматриваются этапы поиска работы Java-разработчиком в 2025 году. Требования к резюме. Советы по прохождению. Технические вопросы с собеседований. Варианты развития событий. Немножко мемов. Моральная сторона вопроса. В 2025 году вышло много статей про падение рынка айти. Давайте посмотрим, есть ли ещё шанс найти работу или пора на завод.

Читать далее

Mini-NAS на пожилом Orange Pi PC Plus

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

Обычно все сначала ставят задачу, а потом под это покупают железки, подбирают программные решения и проч. У меня всё был наоборот - мой друг из магазина radiodetali.com предложил попробовать их новые направления для продаж - SoC формата Raspberry Pi - Orange Pi. И прямо сейчас у него был Orange Pi PC Plus - довольно старенькая модель, но которая еще может пригодиться и поработать на благо человечества - в умном доме, для обучения будущих питонистов, как какая-то медиа-приблуда (хотя, последнее - вряд ли).

Итак, на столе лежит этот самый апельсин и надо думать, что же с ним сделать.

(Осторожно, трафик)

Читать далее

Мой лог — моя крепость: Как один файл наводит порядок в работе

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

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

Почему общение становится такой проблемой? Потому что его слишком много, оно хаотично и не имеет единого центра. Вас дергают коллеги, сыплются непонятные задачи, начальство ставит задания вскользь на созвонах, а через месяц интересуется результатом. Информация теряется в почте, чатах и в собственной памяти. А ещё фоном мозг напоминает: "Не забудь, надо сделать то-то и то-то!".

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

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

Логи, логи... При чём тут логи???

Как я пытался ускорить анализ 12 000 комментариев с помощью GPU за 50 тысяч, но победил процессор

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

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

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

Хабр — 4 497 комментариев

Т‑Ж — 4 186

Смартлаб — 1 998

Пикабу — 726

Вручную искать в этом массиве текста слова поддержки — долго и нудно, а главное — совершенно не масштабируется. Так родилась идея: поручить всё локальной нейросети для анализа тональности. Заодно я хотел на практике разобраться с моделями на основе BERT.

Для этой цели у меня был, как мне казалось, идеальный инструмент: компьютер с Ubuntu 24 LTS, Docker и мощной NVIDIA GeForce RTX 5060 Ti на 16 ГБ. Казалось, что с RTX 5060 Ti на 16 ГБ анализ пройдёт молниеносно. Но на деле именно GPU стал главной точкой отказа — пришлось всё считать на CPU.

Код на GitHub.

Читать далее

Хранение временных данных в PostgreSQL

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

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

В статье будут рассмотрены основные методы хранения временных данных в PostgreSQL: обычные таблицы, нежурналируемые таблицы, материализованные преставления, временные таблицы и память серверного процесса с использованием расширения pg_variables.

Читать далее

GRIZZLY — портативная игровая консоль‑самоделка

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

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

Ключевая особенность этого руководства — структура. Процесс сборки организован так, что полностью функциональная консоль работает уже на самом раннем этапе. Играть получится с первого дня, постепенно добавляя улучшения и новые компоненты по мере возможности.

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

Читать далее

Собственный ИИ локально, бесплатно и без GPU

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

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

Читать далее

Замена Google Meet в условиях блокировок: Jitsi Meet и другие альтернативы для бизнеса

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

Когда Google Meet внезапно начал «тормозить» в России, мы оказались перед выбором: Zoom, Яндекс Телемост, NextCloud или self-hosted решения. После тестов мы остановились на Jitsi Meet на VPS и проверили его в боевых условиях. Делимся опытом и подводными камнями.

Читать далее

Часть 5. Обзор техник оценки качества систем RAG

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

Продолжаю адаптированный перевод статьи китайских исследователей Retrieval-Augmented Generation for Large Language Models: A Survey (ссылка на первую часть — здесь, на вторую часть — здесь, третью часть — здесь, четвёртую часть — здесь). К некоторым терминам, как и в прошлых частях, добавлены переводы и пояснения для удобства начинающих ИТ-переводчиков.

В этой части мы поговорим про техники оценки качества систем RAG и соответствующие им наборы данных. Основная цель — понять и оптимизировать эффективность моделей RAG в различных прикладных сценариях.

Читать далее

Qwen3-ASR-Toolkit: бесплатный инструмент для транскрипции аудио любой длительности

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

Команда Alibaba Cloud выпустила Qwen3-ASR-Toolkit — открытый инструмент для транскрипции аудио- и видеофайлов любой длительности. Решение построено на базе модели Qwen3-ASR (ранее Qwen3-ASR-Flash) и устраняет ключевую проблему большинства API для распознавания речи — ограничение по длительности файла.

Читать далее

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

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

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

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

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

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

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

Читать далее

Нормализация vs Денормализация: Mongo, Postgres и реальная жизнь

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

Нормализация vs Денормализация: Mongo, Postgres и реальная жизнь. Почему у нас вырастает 160 таблиц там, где мог быть один jsonb? И как понять, когда денормализация — это костыль, а когда осознанный выбор?

Если при слове «нормализация» у тебя начинается зевота, а менеджер с порога предлагает «спроектировать базу» — этот текст для тебя.

Читать далее

Как дорожные знаки попадают на карты Яндекса: применяем ML в картографии

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

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

Меня зовут Владимир Быстрицкий, я руковожу группой AI-картографирования. В этой статье расскажу о процессе детектирования дорожных знаков в картопроизводстве Яндекса: с чего всё началось, как развивалось, какие технологии использовались. Ну и попробую ответить на самый, на мой взгляд, главный вопрос в любой ML-задаче: как собрать датасет и не разориться?

Читать далее

Логирование (аудит) сессий в PostgreSQL

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

В статье рассматривается логирование соединений с базами данных кластера PostgreSQL. Системы мониторинга создают сессии для сбора метрик и проверки доступности экземпляра. Это создаёт большое число записей в диагностическом журнале кластера, затрудняя его анализ. Администраторы ищут возможность отключения логирования для сессий мониторинга. Такая возможность есть только у параметра log_disconnections. Приводится пример, как с его помощью отключить логирование при создании сессии. Также рассматриваются особенности использования расширений pgaudit и pgaudittofile, которые позволяют выводить логирование соединений в отдельный файл аудита.

Читать далее

Superset deep-linking: как Rison и Jinja превращают сводный дашборд в инструмент фокус-анализа

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

За один клик из сводного дашборда — на «дочерний» с уже выставленными фильтрами. Разберём, как в Apache Superset прокидывать выбранные значения через URL-параметр native_filters в формате Rison и собирать ссылку Jinja-макросами.

Читать далее

Умное зеркало на Raspberry Pi: пошаговое руководство

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

А давайте соберем умное зеркало на базе одноплатного компьютера Raspberry Pi и программной экосистемы MagicMirror! Оно нам будет показывать погоду, время, записи из календаря и любую другую информацию — для платформы доступны сотни бесплатных модулей с открытым исходным кодом.

По сути, это не гаджет, а динамичная и гибкая платформа для творчества. Ее можно настроить так, чтобы она идеально соответствовала желаниям и отображала все — от новостных заголовков до расписания общественного транспорта.

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

Читать далее

С новым годом: GPT в 500 строках на SQL

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

В минувшем году все только и говорили об ИИ и о том, как он может всё за вас сделать.

Мне нравится, когда кто-то или что-то работает за меня. Поэтому решил: попрошу-ка ChatGPT написать за меня новогодний пост:

«Эй, ChatGPT. А ты можешь реализовать большую языковую модель на SQL?»
«Нет, SQL не подходит для реализации больших языковых моделей. Язык SQL предназначен для выполнения запросов к данным, хранящимся в РСУБД и для управления этими запросами. Для реализации большой языковой модели требуются сложные алгоритмы, обширные датасеты, а зачастую — и фреймворки для глубокого обучения. SQL всеми этими возможностями не обладает.»

Что ж, лишний раз убеждаешься, что, если хочешь что‑то сделать хорошо – сделай это сам.

Давайте же воодушевимся этим оптимистическим планом и реализуем большую языковую модель на языке SQL.

Читать далее

Работает даже на парковке: как развернуть свой узел связи на базе Matrix Synapse, Coturn и Element

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

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

Этот текст — не про аренду. Он о том, как выковать ключи, возвести стены и поднять флаг над своей собственной, неприступной цифровой цитаделью. Мы развернем на сервере Selectel полноценный узел связи: Matrix Synapse, сервер звонков Coturn и веб-клиент Element. Никаких контейнеров, никакой магии. Только чистая система, командная строка и стопроцентный контроль.

Читать далее

Поднимаем свой Jabber/XMPP сервер в 2025 году

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

WhatsApp в России депутаты обещают заблокировать уже в очень скором времени. Доверие к Telegram у многих довольно сильно было подорвано после публикации расследования одного издания об особенностях их протокола вкупе с подробностями о том, кто владеет их сетевой инфраструктурой и с кем он связан, да и недавнее появление Telegram в реестре РКН тоже оптимизма в их отношении не добавляет. Max - оставим для сумасшедших и безвыходных, учитывая, кто и зачем его создал. Signal - отличный мессенджер и всем хорош, но в России его тоже периодически пытаются заблокировать.

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

В наше время как self-hosted альтернативу популярным мессенджерам часто упоминают Matrix, например, с клиентом Element. На Хабре есть подробные инструкции, например вот эта: https://habr.com/ru/articles/837904/. Я попробовал, и мне не понравилось. Клиенты тормозные, через нестабильный интернет-канал все работает просто отвратительно, а сам сервер просто неповоротливый и укладывает не слишком богатый на процессор и память VPS даже всего с парой клиентов.

И тут мне вспомнилось про XMPP, он же Jabber. Он родом еще из тех времен, когда люди пользовались процессорами на 200-300 мегагерц и подключались к интернету через dial-up модемы - то есть он изначально очень нетребовательный к ресурсам. Между тем, развитие его не замерло на месте, а на сегодняшний день он умеет почти все то что требуется от современного мессенджера: хранение истории, передача файлов, аудио-видео звонки, end-to-end шифрование, и другое.

Читать далее

Информация

В рейтинге
1 636-й
Работает в
Зарегистрирован
Активность