Pull to refresh
25
6
Send message

Я оплачиваю квартиру за счет Python-инструмента, который собрал за выходные

Level of difficultyMedium
Reading time6 min
Views66K

Я создал этот инструмент, потому что устал от одних и тех же скучных кликов каждую неделю. Мне нужен был инструмент, который: отслеживает папку, извлекает данные из PDF, обогащает их, отправляет отчеты и, в идеале, позволяет выставлять кому-то счет за сэкономленное время. Два выходных, несколько библиотек и пачка кофе – и у меня был продукт, за который люди действительно платили.

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

1. Выбирайте маленькую, но болезненную задачу

Большинство проектов по автоматизации умирают, потому что пытаются решить слишком много. Вместо этого выберите одну повторяющуюся «боль» с измеримым ROI. Моя проблема была такой:

Читать далее

Еще одна история построения домашнего NAS

Level of difficultyEasy
Reading time7 min
Views13K

Хотел бы поделиться еще одной историей сборки домашнего сетевого хранилища (NAS). Мысли о сборке в голове крутились последние пару лет, однако останавливало отсутствие знаний, опыта, да и вообще некоторый страх — никогда дел не имел с подобным оборудованием. Поэтому и хочется поделиться опытом для таких как я — ничего страшного в подобной сборке нет.

Читать далее

Ни одного лишнего блюра: хардкорная оптика IDE для тех, кто пишет код десятилетия подряд

Level of difficultyMedium
Reading time3 min
Views14K

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

Читать далее

От техлида до IT-директора: как растут лидеры в корпорациях

Reading time18 min
Views10K

Привет! На связи Андрей Ефремов из МТС Web Services. Стать крупным IT-руководителем было моей мечтой — мне было интересно, как и за счёт чего люди становятся директорами, вице-президентами, и я нащупывал собственный путь. В 2009 году я стал IT-менеджером, а сегодня руковожу крупным кластером «Развитие инфраструктуры», и мне по-прежнему интересно расти. За это время я понял: универсального маршрута нет, но есть общие вехи, узкие места и рабочие принципы.

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

Читать далее

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

Reading time13 min
Views5.6K

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

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

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

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

Читать далее

Мой промпт для ChatGPT-5 превратит конспекты лекций (в тексте ИЛИ НА ФОТО) в структурированный учебный материал

Level of difficultyEasy
Reading time3 min
Views17K

Предлагаю на ваш суд мой промпт, который я разработала специально для ChatGPT-5. Вы можете загрузить свои конспекты или даже фото конспектов и получите материал: с логичной структурой, подзаголовками, списками, выделением ключевых понятий, вводной частью и резюме. Не выдумывает от себя, если что-то написано неразборчиво, пометит в отдельный блок. Cохраняет авторский стиль, поясняет термины, формирует обзор, основную часть, резюме и список вопросов. Результат оформляется в Markdown: удобно читать, редактировать и публиковать.

Сам промпт ниже:

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

Reading time8 min
Views27K

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

Читать далее

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

Reading time3 min
Views27K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Views4.4K

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

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

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

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

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

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

Reading time4 min
Views12K

История о том, как я хотел провести анализ комментариев, а в итоге получил неожиданный, но полезный опыт с локальным 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

Level of difficultyMedium
Reading time14 min
Views8.7K

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

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

Читать далее

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

Level of difficultyEasy
Reading time6 min
Views5.5K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Views31K

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Views12K

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

Читать далее

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

Level of difficultyEasy
Reading time10 min
Views3.4K

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

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

Читать далее

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

Level of difficultyMedium
Reading time3 min
Views7.3K

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

Читать далее

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

Level of difficultyMedium
Reading time8 min
Views6K

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

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

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time19 min
Views9.2K

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

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

Читать далее

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

Reading time11 min
Views7.2K

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

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

Читать далее

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

Level of difficultyMedium
Reading time10 min
Views2.9K

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

Читать далее
1
23 ...

Information

Rating
917-th
Works in
Registered
Activity