Обновить

Бэкенд

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

Arc: Убийца ClickHouse на стероидах из DuckDB и Parquet? Разбираем новый движок для time-series

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

Привет, Хабр! Если последние годы вас не отпускала фантомная боль от вечного выбора между ураганной скоростью ClickHouse, невозмутимой простотой SQLite и порой адской сложностью настройки InfluxDB, — возможно, вы, как и мы, дождались чего-то по-настоящему нового.

На горизонте появился проект Arc от команды Basekick Labs. Это не просто очередная попытка, а дерзкая заявка на соединение всего лучшего из мира time-series и lakehouse-подхода. Забудьте о тяжёлых серверах и мучительной шардированной архитектуре. Arc предлагает:

Читать далее

Балансировка нагрузки: проблемы, решения, практические рекомендации

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

Один сервер — это точка отказа. Рано или поздно он не выдержит. Как только появляется второй, третий, десятый сервер, возникает вопрос: кто будет раздавать им работу? Эту роль и берет на себя балансировщик нагрузки.

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

Читать далее

Swift становится ближе. Разработка в контейнере c IDE для VSCode

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

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

Вы устали иметь дело со сломанными Swift проектами через несколько месяцев после их создания? Каждый раз мучаетесь с настройкой Swift окружения, нюансами под каждую платформу и страдаете от засорения системы кучей устанавливаемых компонентов? Или просто интересуетесь тем как попробовать Swift для разработки за пределами экосистемы Apple? Тогда добро пожаловать под кат, будет интересно!

Читать интересное

Профессия программист С: плюсы, минусы и нужен ли свитер

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

В мире, где абстракции правят бал, а скорость важнее эффективности, говорить о C — значит идти против течения. Для многих это «устаревший» язык с ручным управлением памятью и «опасными» указателями. Но что, если именно эти его особенности — не минусы, а ключи к системному программированию, где нет права на ошибку? Программистом Postgres Professional с 22-летним стажем Максим Орлов убеждён, что C — не про мгновенный дофамин и быстрые прототипы, а про суть, контроль и философское понимание того, как действительно работает железо. Погрузитесь в историю любви к C, которая началась с раздражения на Pascal, и узнайте, почему этот «бастион спокойствия» актуален и сегодня.

Читать далее

Чанковая загрузка артефактов CI/CD: оптимизация передачи файлов

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

Всем привет! Меня зовут Бороздин Филипп, я разработчик платформы GitFlic.

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

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

Читать далее

Двухфакторная аутентификация с fallback-каналами и оптимизацией text-to-speech: сокращаем затраты и повышаем надежность

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

Привет, Хабр! Я Катя Саяпина, менеджер продукта МТС Exolve. В прошлом посте я рассказывала, как подключить второй фактор аутентификации через звонок робота, который диктует код. А еще — как реализовать рабочее решение на Django с использованием API МТС Exolve на примере сайта бронирования.

Сегодня продолжим тему. Покажу, как это решение можно масштабировать и оптимизировать: уменьшить затраты за счет сохранения аудиокодов, повысить надежность доставки с помощью fallback-канала по SMS, автоматически подобрать голос и язык диктовки.

Читать далее

Типовые методы решения задач в 1С при использовании БСП

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

«Вспоминая требования заказчиков на клиентских интервью, я могу сказать, что сейчас все больше внимания клиенты уделяют знаниям БСП у разработчиков, – рассказывает мой коллега Сергей. – Конечно, вопросы сперва очень общие: «А знаешь ли что-то о БСП?, «Может быть, что-то слышал о БСП?» или «а какие задачи решал с помощью механизмов БСП?». Исходя из этих вопросов, я бы хотел, чтобы у читателя сформировался некий базовый задел, на котором мы и будем дальше развиваться.

Мы рассмотрим стандарты разработки 1С, восполним возможные проблемы и посмотрим на варианты типового решения задач в 1С».

Читать далее

Чем ближе Хэллоуин — тем ниже скидка: запасаемся знаниями к зиме

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

Привет, Хабр. Это осенний дайджест для тех, кто откладывал учебу «на потом». В нем мы собрали 49 курсов по ключевым ИТ-направлениям: от разработки, инфраструктуры и QA до аналитики, ИБ и управления. С сегодняшнего дня на них действуют особые условия, подробности — под катом.

Перейти к дайджесту

CCXT + CoinGecko: гибкий сбор рыночных данных для собственного криптотрекера

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

Небольшой практический разбор библиотеки CCXT - как получать рыночные данные, баланс и историю ордеров с криптобиржи, обрабатывать ответы API и использовать их в локальном приложении. Примеры на Bitget, интеграция с CoinGecko, код на Nest.js с SQLite и Prisma.

Читать далее

DBT Proplum: Расширяем возможности DBT для работы с Greenplum и Clickhouse

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

В современных реалиях всё чаще встаёт вопрос о переходе с вендорских продуктов на open-source. Компании активно рассматривают DBT как стандарт для управления трансформациями данных, но сталкиваются с проблемами: существующие алгоритмы загрузки оказываются недостаточными, а адаптеры для СУБД - устаревшими.

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

Читать статью

Лучшее время для соло предпринимательства: интеграция платежной системы

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

Вторая часть серии статей "Лучшее время для соло предпринимательства". Описание процесса интеграции платежной системы Paddle с точки зрения юзер-сценариев.

Читать далее

Apache Cloudberry — открытое будущее Greenplum. Сравнение, архитектура, перспективы

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

Если вы работаете с аналитическими базами данных, то наверняка слышали о Greenplum — одном из самых мощных MPP-решений (Massively Parallel Processing) на базе PostgreSQL.
Однако в последние годы в экосистеме PostgreSQL появилось новое имя — Apache Cloudberry.

На первый взгляд, это ещё один форк Greenplum.
Но на деле Cloudberry — переосмысление архитектуры MPP-СУБД, выполненное с уважением к наследию Greenplum, но с современным кодом, ядром PostgreSQL 14+, открытым управлением через Apache Foundation и амбициозной целью стать по-настоящему открытой аналитической платформой уровня DWH.

Читать далее

Хостинг для кода. Сравнение VPS, App Engine и Serverless решений

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

Представьте, что вы написали скрипт, разместили его как serverless-функцию и неожиданно получили счёт на 75 000$ из-за самой простой ошибки обработки исключений. Представить страшно, а ведь это реальная история.

У каждого типа IT-проектов есть свои особенности, определяющие где, и как, их лучше размещать. Сегодня мы сравним несколько вариантов хостинга, для простых скриптов как парсеры, боты, API и Web-приложений.

Читать далее

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

Настоящий тест для языков программирования — как они справляются с DOM-подобными структурами данных

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

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

А вот настоящие приложения — редакторы, движки, интерфейсы, базы данных — живут совсем в другом мире. Они управляют не числами, а сложными структурами объектов. И если присмотреться, почти все эти структуры сводятся к одной универсальной модели: DOM-подобному графу.

Читать далее

Микросервисы — это зло

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

Я PHP-разработчик с восьмилетним коммерческим опытом. Долгое время я не видел смысла в микросервисах — пока не перешёл на Python и не столкнулся с его архитектурными особенностями.

Читать далее

Как я подружил Yandex DB с векторным поиском: end-to-end решение на JavaScript

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

Привет, Хабр! Меня зовут Алексей, и я тот самый программист, который до недавнего времени скептически относился к ИИ. «Очередная мода», — думал я. Но время не стоит на месте, и сейчас я активно изучаю ИИ как со стороны пользователя, так и с позиции разработчика.

Особенно интересной стала задача интеграции нашей внутренней системы управления задачами с ИИ. Типовое решение — использование векторной базы (RAG) в качестве промежуточного хранилища. Саму задачу я стал решать в режиме Vibe Coding (но об этом стоит написать отдельный пост).

С другой стороны весной команда Yandex DB анонсировала поддержку векторных операций, а на недавней конференции Yandex Neuro Scale упоминалось, что теперь YDB можно использовать в качестве RAG. Но вот незадача — я нигде не нашел end-to-end примера реализации. Пришлось разбираться самостоятельно.

Подробности под катом

Телеграмм бот на Python aiogram 3. Часть 2

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

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

Читать далее

Защита MCP серверов со Spring AI

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

Протокол Model Context Protocol (MCP) стремительно развивается, и вопросы его безопасности становятся всё актуальнее. Чтобы упростить реализацию защиты MCP-серверов в проектах на Spring AI, был запущен инкубационный проект spring-ai-community/mcp-security. В новом переводе от команды Spring АйО рассмотрим, как защитить MCP-сервер с помощью OAuth2 или API-ключей, а также как развернуть собственный MCP-совместимый Spring Authorization Server.

Читать далее

Scaled Rank Fusion — объединяет значения из нескольких списков с учётом масштаба

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

Семейство методов Rank Fusion включает различные алгоритмы объединения нескольких ранжированных списков результатов в один улучшенный ранжированный список с целью повышения качества и надежности итогового ранжирования.

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

Rank Fusion широко применяется в информационном поиске, мультимедийном поиске, гибридных системах поиска, системах на основе модели Retrieval Augmented Generation (RAG), а также в задачах ансамблевого обучения.

В статье описан новый алгоритм семейства Rank Fusion, а может и не новый, дайте знать.

Читать далее

Решили не выбирать, а взяли всех: как мы объединили несколько хостеров

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

Я устал вести таблички с серверами и сделал сервис, который теперь помогает другим.

В последние 8 лет я работал над множеством IT проектов и стартапов: от телеграм ботов, до высоконагруженных Web-сервисов. От ТЗ до MVP — в роли разработчика, тимлида, и даже продакта. И для всех этих проектов нужна была инфраструктура, которую, как правило, выбирал и поддерживал я в одиночку.

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

Читать далее