Обновить
26
0

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

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

Redis больше не нужен?! Реализуем реактивный кэш на чистом PostgreSQL и Go

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

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

В современной разработке мы привыкли решать проблемы производительности стандартным набором инструментов. "База не тянет? Поставь Redis!" — это стало почти рефлексом. Но всегда ли оправдано тащить в инфраструктуру лишний сервис, настраивать сетевые хопы и следить за инвалидацией, если ваша задача — это всего лишь быстрый доступ к небольшому справочнику?

В нашем Open Source проекте BMSTU-ITSTECH/SSO мы столкнулись именно с таким кейсом. И решение оказалось элегантнее, чем просто "поднять Redis". Рассказываю, как мы сэкономили на инфраструктуре и получили мгновенный отклик, используя скрытую мощь PostgreSQL LISTEN/NOTIFY.

Читать далее

CDC своими руками: Kafka + Debezium в домашней лаборатории

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

Третья статья цикла о построении CDC-пайплайна с нуля. Сегодня — самое интересное: захватываем изменения из PostgreSQL и отправляем в Kafka. И разбираемся, почему WAL может съесть весь диск, даже если данные не меняются.

Читать далее

Масштабирование PostgreSQL до 800 миллионов пользователей ChatGPT

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

Как известно, компания OpenAI, создавшая ChatGPT, находится на переднем крае развития ИИ и многим небезинтересно, какие технологии и решения работают "под капотом" этой популярной компании. Сотрудник технического отдела OpenAI, Бохан Чжан (Bohan Zhang) приоткрыл небольшую завесу о том, как компания работает с базами данных и с какими вызовами им приходиться сталкиваться и как их приходиться преодолевать. Это статья является вольным переводом оригинальной статьи Scaling PostgreSQL to power 800 million ChatGPT users, опубликованной на официальном сайте OpenAI, с некоторыми пояснениями и умозаключениями от переводчика, с учетом его знаний и опыта.

Читать далее

3 ошибки при работе со Spring Boot, которые просачиваются в прод (и как их исправить)

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

Пишешь на Spring Boot уже пару лет и уверен, что знаешь все подводные камни? Рассмотрим классические ошибки, которые продолжают проникать в прод даже у бывалых разработчиков. Вместе с Mohamed Akthar в новом переводе от команды Java Insider разбираем три распространённые проблемы, которые могут привести к бессонным ночам отладки.

Читать далее

Banana Pi BPI-R3 #2

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

Опять бесчеловечные опыты над Banana BPI‑R3. Надеюсь финальная статья про донастройку «идеального» домашнего роутера.

Читать далее

Выжимаем максимум из опенсорсных моделей и готовим Text2SQL

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

В любой крупной компании есть повторяющийся сценарий. Аналитик сидит над экспериментом или моделью, строит А/В тесты и дашборды, и в этот момент приходит бизнес и просит быстро посмотреть «продажи жвачки за вчера». Аналитик переключается, пишет запрос, отдаёт результат, а через десять минут прилетает почти такой же вопрос. Потом ещё один и ещё. День заканчивается, а свои задачи стоят и покрываются ржавчиной.

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

Мы хотели упростить работу с данными. Чтобы пользователь задавал вопрос, сервис превращал его в SQL, выполнял в хранилище и возвращал аналитический ответ. Чтобы рутина уходила в инструмент, а аналитик переставал быть «бутылочным горлышком».

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

Читать далее

Книга в Markdown: Автоматическая сборка статического сайта mdBook и файла DOCX с оформлением по ГОСТ

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

Markdown — популярный и удобный язык разметки, но это также и очень ограниченный формат. Поэтому задача написания в Markdown сложной технической документации по ГОСТ, научной статьи с автоматической настройкой оформления для заданного издательства или хорошо оформленного онлайн-учебника может показаться неосуществимой. В этой статье рассмотрим способ работы над научно-техническими статьями и книгами в формате Markdown на основе подхода Docs as Code с учётом строгих ограничений на оформление, используемый Петром Советовым и мной при подготовке учебных материалов в РТУ МИРЭА.

Способ заключается в применении утилиты pandoc для построения дерева абстрактного синтаксиса (AST) Markdown-документа с последующим переписыванием AST набором фильтров на Lua и трансляцией AST в форматы docx и pdf, соответствующие ГОСТ, а также в диалект markdown, совместимый с mdBook, для генерации онлайн-учебника.

Онлайн-версии книг, написанных с использованием описанного подхода, и репозитории с исходным кодом книг опубликованы на GitHub и GitHub Pages: книга по конфигурационному управлению, книга по разработке кроссплатформенных программмных систем.

Читать далее

Почему большинство корпоративных ИТ-систем устаревают в момент внедрения и как этого избежать

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

Почему большинство корпоративных ИТ-систем устаревают в момент внедрения и как этого избежать

Если вы хотя бы раз сталкивались с документооборотом в компании, то знаете, что это огромная и неповоротливая махина, наладить которую сложно, пустить на самотек нельзя, а выстроить идеально практически невозможно. Или все-таки возможно? Какие проблемы возникают при работе с системами электронного документооборота и как их избежать еще на этапе внедрения, попробуем разобраться в этой статье. 

Привет! Меня зовут Любовь Черкасова. Я больше 13 лет работаю в ИТ и занимаюсь цифровизацией бизнес-процессов в крупных компаниях. За это время я руководила командами аналитиков и отделом внедрения, участвовала в проектах по запуску и развитию корпоративных систем, а также выводила на рынок собственный продукт — LDM.КЭДО.

Последние годы я занимаюсь развитием CSP-платформы и регулярно вижу и исправляю последствия архитектурных решений, принятых на этапе внедрения. Поэтому многие из наших проектов - устранение этих последствий и замена существующих систем. Я ни раз наблюдала проекты, в которых система формально внедрялась успешно, но уже в процессе реализации становилась неактуальной для бизнеса: требования менялись быстрее, чем шёл проект. Именно этот опыт и выводы из него легли в основу статьи. Я расскажу о том, как наша команда изменила подход к реализации систем электронного документооборота (СЭД), и что из этого получилось. Надеюсь, наш опыт будет полезен кому-то еще. 

Все кейсы, описанные в статье, реальные, они действительно из жизни наших клиентов. 

Читать далее

Мультизональный PostgreSQL своими руками: декомпозиция трудозатрат

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

Разговор о собственном PostgreSQL-кластере обычно начинается с фразы: «Да там поставить — день работы». Технически это правда. Установка PostgreSQL на два сервера в разных ЦОДах действительно занимает несколько часов. Проблема в том, что установка — это меньше 10% работы до Production-ready-состояния.

В этой статье мы декомпозируем все задачи, которые стоят между идеей развертывания и работающим кластером с отказоустойчивостью между ЦОДами. Все с оценками в человеко-часах, чтобы можно было собрать для себя TCO и сопоставить свои затраты. Учтите, что если все это вы делаете в первый раз, то по всем шагам время увеличивается втрое.

Параллельно покажем те же временные и трудозатраты при выборе Managed-решения, DBaaS (базы данных как сервис), чтобы вы могли сравнить и выбрать — делать дальше самим или передать это на аутсорс.

Читать далее

Как мы переписали ядро Trino на Rust

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

CedrusData Engine — это lakehouse-движок, основанный на Trino. На реальных нагрузках наш продукт рутинно превосходит по производительности другие технологии (Trino, Doris, Dremio, StarRocks) в 1.5-3 раза, с еще более значительным отрывом от устаревших Greenplum и Impala. Эти результаты — следствие постоянных вложений в разработку новейших техник обработки больших данных. В этой статье я расскажу про проект Oxide — одну из наших ключевых инициатив прошлого года по переписыванию ядра Trino с Java на Rust.

Читать далее

Единый принцип деления в архитектуре

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

Когда я был разработчиком я задавался вопросами: как разделить код на классы? какие модули выделить?

Когда я стал архитектором я задавался вопросами: зачем же мы наплодили 200 микросервисов? стоит ли выделять новый или пора объединять?

Когда я стал руководителем я задавался вопросами: как разделить людей на команды разработки? стоит ли создавать новый отдел или расширить ответственность старого?

И всё это хотелось сделать оптимальным эффективным образом.

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

Читать далее

От скриншота до PostgreSQL: парсим банковские операции через Claude Vision

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

Это первая статья из цикла о построении CDC-пайплайна в домашней лаборатории.
Полный путь: Telegram → PostgreSQL → Debezium → Kafka → HDFS → DWH.
Но любой пайплайн начинается с данных — и эта статья про их получение.

Читать далее

Ну, LLM, погоди…

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

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

Для тех, кто не готов погружаться в цепочку событий, сразу зафиксирую итог...

Читать далее

Рабочие станции для ML и Data Science — как собрать сервер под столом

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели19K

Внимание: опасный эксперимент! Когда я впервые решил собрать домашний ML-сервер, всё казалось простым: взять мощный ПК, всунуть две RTX 4090 – и вперед, нейросетки летят. Реальность быстро заставила меня попотеть. Оказалось, что сборка AI-фермы под столом – это совсем не то же самое, что собрать игровой ПК. Это отдельное приключение со своими подводными камнями. У меня до сих пор сохранился лёгкий тик от слова «TDP», а шрам на пальце напоминает о сгоревшем проводе. Но обо всём по порядку.

Читать далее

pg-status — легковесный микросервис для определения статуса PostgreSQL хостов

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

Привет! Хочу рассказать о своем новом небольшом проекте - pg-status. Это очень легкий и производительный микросервис, который помогает определять статус хостов postgresql. В первую очередь его задача - помочь вашему backend найти живого мастера и достаточно синхронную реплику.

Читать далее

Настройка Linux после установки: терминал, GNOME и расширения на примере Ubuntu

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

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

Настроить свой Linux

Планировщики задач для Android: 10 приложений для командной работы и личных дел

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

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

По моим наблюдениям, сегодня большинство людей управляют задачами с телефона, поэтому Android-приложение больше не «дополнение к вебу», а основной рабочий инструмент. На практике многие планировщики к этому не готовы: 

Читать далее

Очарованные Hibernate: проблемы, которые ведут разработчика странствовать по production

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

Hibernate часто работает как надо ровно до того момента, пока не приходит настоящая нагрузка. И тогда выясняется, что безобидные на вид решения отключают batching, ломают пагинацию, умножают число запросов и даже незаметно открывают дополнительные транзакции — ровно там, где вы рассчитывали на один аккуратный запрос в рамках одного unit of work.

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

поехали ...

Стек начинающего дата-сайентиста в 2026: инструменты для роста

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

Привет! Я Максим Катрушенко, главный специалист по анализу данных и машинному обучению в ПГК Диджитал. В свое предыдущей статье я разбирал ошибки в резюме джунов (и не только), которые снижают шансы попасть в ML. Сегодня расскажу, как упорядочить инструменты data scientist'а, чтобы легко адаптироваться в специальности.

Введение

Недавно мне показали проект по прогнозированию ремонта вагонов. Несколько десятков параметров, миллионы записей. Всё решение — один файл Jupyter Notebook и пара скриптов.

Я открыл этот файл. Две тысячи строк кода. Названия переменных вроде df_tmp_final_v3. Комментарии на смеси русского и английского. Сохранённые модели назывались model_good.pkl и model_production_maybe.pkl. Некоторые ячейки кода было страшно запускать. Ни документации, ни записи о проведённых тестах.

Узнаёте? Это частая реальность в области данных.

Вы не одиноки

Многие начинающие специалисты задают похожие вопросы:

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

Как внедрить модель? В Notebook всё работает, но как превратить её в сервис, который сможет использовать ваше приложение?

Хорошая новость: для этих проблем уже есть решения.

На курсах об этом часто не говорят...

Подробный обзор Sipeed NanoKVM — IP KVM в любой компьютер

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

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

Sipeed делает свою версию такого устройства — компактную, открытую и недорогую. Она позволяет подключиться к компьютеру или серверу, даже если тот не загружается в операционную систему, и полностью им управлять, например, войти в BIOS, установить систему или просто перезапустить. По сути, это свой iLO или iDRAC, только без лишнего корпоративного веса и по доступной цене.

Протестируем эту железку далее в статье
1
23 ...

Информация

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