Обновить
25
7

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

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

Мониторинг и анализ производительности бэкенда с помощью ClickHouse и Grafana. Часть 2

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

Всем привет! Я Артём Седых, ведущий разработчик и тимлид проекта банковского сопровождения. Наш сервис — 8-летний монолит на PHP с командой из 39 человек. В цикле статей рассказываю об опыте разработки и внедрения альтернативы pinba: гибкого инструмента мониторинга, который позволяет увидеть живую систему как на ладони и понять, из‑за чего именно проседают определенные экшены. Сегодня, в продолжение первой статьи, закрываем архитектурную часть — поговорим об отправке и хранении метрик. А главное, перейдём к самому интересному: получившимся дашбордам Grafana. На конкретных примерах покажу, какие проблемы удалось обнаружить и какие рекомендации по оптимизации можно извлечь из каждого элемента.

Читать далее

Недооценённые фичи SQL: PIVOT/UNPIVOT, CROSS APPLY/LATERAL и частичные индексы

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

В большинстве материалов по SQL обсуждаются знакомые всем конструкции — SELECT, JOIN, WHERE, группировки, простые индексы. Но когда вы обрабатываете сложные данные, оптимизируете производительность или строите аналитические отчёты, ограничиваться только базовыми операторами — значит добровольно усложнять себе жизнь. В SQL есть мощные, но редко упоминаемые функции, которые помогают решить задачи элегантно и эффективно.

В этой статье, основанной на личных экспериментах и наблюдениях, мы рассмотрим три таких инструмента: PIVOT/UNPIVOT, CROSS APPLY/LATERAL и частичные (filtered) индексы.

Читать далее

Почему Text-to-SQL до сих пор ломается и как это исправить

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

Если вы когда-нибудь пытались получить нужный отчет из базы данных с помощью ИИ — скорее всего, столкнулись с забавной загадкой: почему-то даже продвинутые языковые модели то спотыкаются на связях между таблицами, то забывают ключевую фильтрацию, то просто возвращают не тот ответ. Формально запрос работает, а по сути — совсем не то. Почему так происходит? И можно ли научить ИИ писать правильный SQL, а не гадать до бесконечности?

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

Читать далее

SQL для всех: от новичка до профи. Полный гид по тренажерам, курсам и песочницам

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

Привет, Хабр! Часто ли вам приходилось часами смотреть на сложный JOIN, пытаясь понять, почему он работает не так, как надо? Или, может, вы только начинаете свой путь в IT и слышите со всех сторон, что без SQL никуда? Вы правы, так и есть. SQL – это не просто строчки кода, это ваш ключ к данным, настоящий швейцарский нож для любого тестировщика, аналитика или разработчика.

Все мы знаем, что можно прочитать тонну теории, но без реальной практики она быстро выветривается из головы. Именно поэтому я решил поделиться своей коллекцией проверенных тренажеров и ресурсов. Здесь есть все, чтобы вы могли уверенно «заговорить» на языке данных: от уютных песочниц для новичков до хардкорных задачек с реальных собеседований в ведущих IT-компаниях. Так что устраивайтесь поудобнее, добавляйте в закладки и поехали тренироваться!

Читать далее

Дилемма, которая привела к краху Kodak

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

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

Читать далее

Почти ультимативный гайд по Criteria API с продвинутыми возможностями Hibernate

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

Вам нужно создать сложный запрос к реляционной БД с изменяющимися параметрами?

В этой статье рассмотрим основные возможности Criteria API. Также рассмотрим более продвинутые вещи, например создание CTE и оконных функций, которые есть у Hibernate Criteria API. В статье много примеров, которые смогут помочь при написании запросов Criteria API на практике.

Читать далее

Подсветка колес велосипеда лазерным лучом (или Светопреставление)

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

В этом тексте вы узнаете зачем велосипедисту нужна квантовая механика.

Те кто катаются на велосипеде не раз ездили в темноте. В таких случаях надо как-то предупреждать окружающих пешеходов о приближении велосипеда. Ставить фары - классическое решение. Но фары быстро сажают батарею.

Я решил пойти другим путем. Как-то раз я обратил внимание на фотолюминесцентные наклейки. Фотолюминесцентные вещества - это такие вещества, которые заряжаются светом, а затем источают свет в темноте. У меня была рядом фиолетовая лазерная указка и я заметил, что лазер охотно заряжает такие наклейки.

Читать далее

Геоданные в PostgreSQL: зачем нужен PostGIS и как он работает

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

PostgreSQL известна как надежная и универсальная СУБД. Но если нужно хранить координаты, строить маршруты или анализировать границы районов, ее базовых возможностей уже не хватает. Здесь на помощь приходит PostGIS. Под катом разберемся, что умеет расширение и как его использовать.

Читать далее

Java Agent как инструмент обхода лицензий: этичный анализ и защита

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

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

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

Меня зовут Сергей Капустин, тимлид бэкэнд-команды продукта Data Ocean Cluster Manager вендора Data Sapience.

Код в нашем примере будет максимально обезличен.

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

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

Читать далее

Оператор «NOT IN» и коварный NULL

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

Порой, очевидные вещи таят в себе удивительные сюрпризы. Казалось бы, простые SQL конструкции: «IN» и «NOT IN». Что тут обсуждать-то?

Читать далее

Переезжаем в Firefox. Советы по настройке

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

Разработчики Chrome, наконец, урезали поддержку лучшего блокировщика рекламы, uBlock Origin, и теперь популярность моего любимчика Firefox снова растёт1. Так что здесь я постараюсь убедить вас перейти на этот браузер и покажу, как его использовать.

Читать далее

Вайб-кодинг сэкономил мне миллионы рублей — делюсь лучшими практиками

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

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

Читать далее

Мы научились переносить базу данных с Oracle на Postgres Pro со скоростью 41 ТБ/сутки

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

41 ТБ/сутки по маршруту Oracle → Postgres Pro без остановки исходной системы — это не теория, а цифры последних тестов. Мы разложили миграцию на три этапа: быструю начальную загрузку, CDC из redo-логов и валидацию, и собрали их в ProGate. Как устроен конвейер, почему Go и где прячутся узкие места — расскажем в статье.

Читать далее

Гайд по использованию Spring GraphQL. Часть 1

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

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

Меня зовут Дмитрий, и я бэкенд-разработчик в SENSE с 10-летним опытом. За это время я успел поработать с финтех-проектами, автоматизировал обработку заказов для интернет-магазинов, но GraphQL долгое время оставался для меня загадочной технологией — я просто не сталкивался с ним в работе. А когда он мне понадобился, то обнаружил, что толковых материалов по Spring-реализации GraphQL очень мало. Поэтому, я решил не только разобраться самостоятельно в теме, но и написать гайд для тех, кто, как и я, только начинает погружаться в эту тему. 

Разбираться будем постепенно: в первой статье покажу, как создать проект с GraphQL с нуля. Поехали!

Читать далее

Вышла 12 версия русского опенсорс голосового помощника Ирина (900+ звезд Гитхаб)

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

Всем привет! Я уже писал про своего голосового помощника Ирину статьи на Хабре: раз, два и три; первый раз был аж 3.5 года назад.

Самое главное — опенсорс проект жив. А если опенсорс жив в течение 3.5 лет — значит, он дошел до какой‑то точки зрелости. А если у него 900 звезд на Гитхабе — значит, им кто‑то пользуется, и даже успешно :)

TL;DR> Python с простой архитектурой. Работает оффлайн, полностью локально и приватно. Можно дописывать свои скиллы через плагины. Плагинов много, есть от комьюнити. Поддержка Home Assistant. Поддержка кучи TTS. Поддержка LLM по OpenAI‑совместимому API, можно сделать онлайн или оффлайн. Есть клиент‑сервер.

Читать далее

Поиск человека по фото: как найти информацию о человеке по одной фотографии

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

Приветствуем дорогих читателей! В этой статье мы детально рассмотрим все аспекты поиска информации о человеке по фотографии, уделив особое внимание трем основным направлениям. Речь пойдет о возможностях поисковых систем, которые многие недооценивают, хотя они могут дать неожиданно точные данные при правильном использовании. Мы разберем специализированные онлайн‑сервисы, работающие на основе нейросетей и сложных алгоритмов распознавания лиц. Отдельное внимание уделим Telegram‑ботам, которые сочетают в себе удобство мобильного использования с мощными поисковыми технологиями. Эти инструменты помогут вам получить данные о персоне, включая имя, телефон и другую полезную информацию.

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

Читать далее

Экологичное расставание с Алисой: строим полностью локальный и приватный голосовой ассистент

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

Идея отказаться от использования Яндекс Алисы в системе умного дома возникла у меня после новости о принятии Госдумой законопроекта, касающегося штрафов за поиск и доступ к экстремистским материалам в интернете. Казалось бы, при чём тут голосовой помощник? Однако Яндекс входит в реестр организаторов распространения информации, что означает определённые юридические и технические обязательства по хранению и передаче данных.

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

Тем более что сейчас единственным слабым звеном в моём умном доме остается Яндекс Алиса — которая требует постоянного интернет‑соединения даже для выполнения простейших команд управления локальными устройствами.

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

Алиса, извини

Как я написал современный GUI для yt-dlp на Python

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

Надоело каждый раз лезть в терминал, чтобы скачать видео с YouTube? Мне тоже. Поэтому я сделал нормальный GUI для yt-dlp - без лишних кнопок, с современным интерфейсом и чтобы просто работал. Код на GitHub, готовая сборка тоже есть.

Зачем вообще это делать?

Да, yt-dlp крутой - качает с кучи сайтов, быстрый, надёжный. Но блин, каждый раз набирать команды в консоли - это не для всех. Особенно когда нужно быстро скачать что-то и не париться с параметрами.

Посмотрел на существующие GUI - одни выглядят как из 2005 года, другие напичканы настройками, которые 99% пользователей никогда не трогают. Захотелось сделать что-то простое: вставил ссылку, выбрал качество, скачал. Всё.

Что хотел получить:

Простоту - минимум кликов от ссылки до файла

Нормальный вид - тёмная тема, без уродских кнопок из 90-х

Скорость - никаких тормозов и зависаний

Работает везде - Windows точно, остальные ОС в планах

Не требует установки - скачал exe и пользуешься

Читать далее

Как мы научили PostgreSQL автоматически создавать партиции: опыт Nexign Nord

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

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

Читать далее

15 лучших библиотек для визуализации данных, о которых должен знать каждый разработчик

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

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

Читать далее

Информация

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