Все потоки
Поиск
Написать публикацию
Обновить

Бэкенд

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

Как быстро сделать Low-Code RAG для своей компании?

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

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

Если вы руководитель отдела или ведете собственный бизнес, вы наверняка подумаете «наверное, это дорогая технология, которая требует больших затрат и найма техспециалистов для разработки». Когда-то это было так, но теперь нет.

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

Читать дальше

Пять возможностей PostgreSQL, о которых редко вспоминают

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

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

Постгрес – не просто реляционная БД, а настоящий кладезь фич, о которых начинающий разработчик может и не догадываться. Всё началось с того, что PostgreSQL изначально писался на С/C++ и всегда тянуло к расширению стандартного SQL набора возможностей. Так однажды разработчики решили добавить в него JSONB, логику на уровне запросов и многое другое – что в итоге сделало его не хуже NoSQL-систем. Но вернёмся к малоизвестным фичам. Ниже – пять приёмов и возможностей, которые неожиданно полезны в повседневной работе.

Читать далее

Как обеспечить отказоустойчивость почтового сервера Exim под нагрузкой 1 000 000 писем/мин. с помощью FUSE и Tarantool

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

Привет, Хабр! Меня зовут Максим Уймин, в этой статье я расскажу про почту, про распределенные очереди, немножко про FUSE и файловые системы.

Читать далее

Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод

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

Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки.

Первая часть — Assembler для Windows в Visual Studio.

Читать далее

SAML vs OpenID Connect под капотом SSO

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

Важно не прогадать с выбором протокола для SSO. Ведь от протокола зависит буквально всё: безопасность, удобство, возможности.

Протокол OIDC (OpenID Connect) является лучшей альтернативой протокола SAML.

Читать далее

io_uring: высокопроизводительный асинхронный ввод/вывод в Linux

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

В этой статье мы разбираем, как использовать io_uring для высокопроизводительного асинхронного ввода-вывода в Linux, изучаем его архитектуру, ключевые флаги и расширения, приводим пример простого эхо-сервера на liburing, говорим о профилировании, отладке и лучших практиках для системных разработчиков.

Читать далее

Жизненный цикл API. Статистика и нюансы

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

В наши дни в мире разработки программного обеспечения, где взаимодействие между различными сервисами и системами является одним из самых важных моментов, глубокое понимание жизненного цикла API (Application Programming Interface) играет ведущую роль в успешном создании, поддержке и продвижении цифровых продуктов.

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

В данной публикации я хотел бы рассказать про самые важные стадии жизненного цикла API, а также по каждому этапу добавить интересные статистические данные, проведя анализ основных международных отчётов, таких как Postman State of Api , NordicAPIs и многих других.

Читать далее

Почему генеративные ИИ-агенты в программировании — не для меня

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

Команда AI for Devs подготовила перевод статьи Miguel Grinberg. Его позиция проста: генеративный ИИ в программировании не даёт реального ускорения, а лишь создаёт новые риски. А что думаете вы?

Читать далее

Техническая внутренняя кухня StarRocks: оптимизация JOIN — от логики до распределённого выполнения

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

Как StarRocks добивается высокой производительности JOIN-запросов в аналитических нагрузках. В материале — практическая кухня оптимизатора: какие типы JOIN эффективнее и когда их стоит конвертировать (например, CROSS→INNER, OUTER→INNER при NULL‑отвергающих предикатах), как работает predicate pushdown, извлечение предикатов из OR, вывод эквивалентностей и pushdown LIMIT. Разбираем Join Reorder для многотабличных запросов (Left‑Deep, Exhaustive, Greedy, DPsub), модель стоимости (CPU*(Row(L)+Row(R))+Memory*Row(R)) и выбор лучшего плана.

На уровне распределённого исполнения — MPP‑архитектура, свойства распределения (Distribution Property) и узлы Exchange; пять базовых планов: Shuffle, Broadcast, Bucket Shuffle, Colocate и экспериментальный Replicate Join. Плюс Global Runtime Filter (Min/Max, IN, Bloom) для ранней фильтрации на Scan. Даем практические принципы: используйте более быстрые типы JOIN, стройте хеш по малой таблице, в многоJOINовых запросах сперва выполняйте высокоселективные соединения, сокращайте объём данных и сетевой трафик. Материал для инженеров данных, DBA, разработчиков OLAP и всех, кто проектирует производительные SQL‑планы.

Читать далее

Быстрый Django: всё, что нужно знать о производительности

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

Команда Python for Devs подготовила перевод статьи о том, как сделать Django-сайты быстрее. Автор разбирает два пути — «делать больше» (масштабирование инфраструктуры) и «делать меньше» (уменьшение задержек через оптимизацию кода и запросов). В статье — практические примеры, баг N+1, кэширование и инструменты вроде Django Debug Toolbar, Locust и APM.

Читать далее

RabbitMQ как инструмент «деградации с честью»

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

Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена

Читать далее

Что нового в GoLand 2025.2?

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

Команда Go for Devs подготовила перевод статьи о новых возможностях GoLand 2025.2. В этом релизе — умное выявление ошибок с помощью анализа потоков данных, неблокирующий экран приветствия, улучшенный поиск HTTP-эндпоинтов и ускоренный AI-агент Junie. А ещё — апгрейд JetBrains AI Assistant и свежие функции, унаследованные от IntelliJ IDEA, WebStorm и DataGrip.

Читать далее

Подключаем Centrifugo в laravel

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

В этой статье мы рассмотрим интеграцию сервера реального времени Centrifugo с фреймворком Laravel, основные настройки и нюансы работы

Centrifugo – это сервер для работы в реальном времени, который поддерживает различные транспорты для подключения клиентов, включая WebSocket, HTTP-streaming, Server-Sent Events (SSE) и другие. Он использует publish-subscribe паттерн для обмена сообщениями

Читать далее

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

Случаи из разработки на асинхронных фреймворках в Python. Часть 1. FastAPI

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

Асинхронность в Python кажется простой — добавил async/await, и всё летает. Но на практике синхронные вызовы внутри асинхронного кода превращаются в «бутылочное горлышко», блокируя event loop и приводя к непредсказуемым последствиям: от подвисших запросов до деградации производительности. Как разбираться в таком случае и почему важно знать особенности фреймворков в подкате...

Читать далее

cursor_tuple_fraction в pgJDBC

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

В планах выполнения запросов PostgreSQL рассчитывается два числа, которые показывает команда EXPLAIN:cost=A..B Без использования курсора, планировщик выбирает план с наименьшим значением B, а при использовании курсора: A + cursor_tuple_fraction * (B − A), где cursor_tuple_fraction - параметр конфигурации, который можно установить на уровне сессии и других уровнях.

Читать далее

Как локально и бесплатно распознать текст лекции или совещания и делать это регулярно

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

В новостях всё чаще говорят об «ИИ‑диктофонах» — гаджетах, которые записывают каждый ваш разговор в течение дня, отправляют аудио в облако, превращают его в текст и даже готовят краткую сводку по итогам. Звучит футуристично, но такие решения стоят дорого, требуют постоянной подписки и вызывают вопросы о приватности.

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

В этой статье я покажу, как построить такую систему без платных подписок и полностью под вашим контролем. Всё, что нужно — обычный диктофон за 1–3 тыс. рублей или даже просто приложение на телефоне — тогда затраты вообще равны нулю, и набор бесплатных, открытых программ, которые работают на вашем компьютере. Я купил диктофон для теста и поделюсь результатами.

Сердцем решения станет OpenAI Whisper — мощная технология распознавания речи от создателей ChatGPT. Главное её преимущество — она может работать полностью автономно на вашем ПК, не отправляя никуда ваши данные. К тому же Whisper распространяется как open‑source: исходный код и модели доступны бесплатно — вы можете скачать, использовать и при необходимости даже модифицировать.

Мои скрипты выложены на GitHub.

Кто что сказал

Обзор UDTF в PySpark

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

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

Сегодня разберём фичу из PySpark — UDTF. Если раньше мы писали UDF и UDAF, то UDTF — это про функцию, которая запускается в секции FROM запроса и возвращает как бы несколько строк для каждой входной записи. Звучит круто.

UDTFs пригодятся, когда на один входной объект нужно получить множество выходных строк. Простой пример: у нас есть строка текста и мы хотим разделить её на слова так, чтобы каждое слово вышло отдельной строкой. Со стандартным UDF такое не сделать (он возвращает одно значение, например конкатенацию или длину). Но UDTF может делать цикл yield внутри и выдавать сколько угодно строк. Итак, приступим к делу.

Читать далее

Демистификация unaligned access undefined behavior в C

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

Неопределённое поведение (Undefined Behavior, UB) в C и C++ — одна из причин, по которым разработчики всё чаще ищут языки с полностью определённой семантикой. Одним из самых коварных UB является unaligned access, с точки зрения стандарта C это, например, когда происходит попытка разыменовать указатель как uint32_t, а значение указателя (адрес) не кратно четырём. Один из частых сценариев использования, приводящих к такому UB - получение данных по сети и их интерпретация как чисел.

Читать далее

Ivory — удобный инструмент для работы с кластерами PostgreSQL

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

Ivory — это бесплатный open-source инструмент с веб-интерфейсом, созданный для управления кластерами PostgreSQL, которые работают под контролем Patroni. Если раньше для таких задач приходилось использовать командную строку или Patroni API, то с Ivory всё можно делать через удобный браузерный интерфейс.

Цель проекта — упростить жизнь администраторам баз данных (DBA) и разработчикам:

Читать далее

С чего начать изучение ИИ: лучшие языки программирования в 2025 году

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

Команда AI for Devs подготовила перевод статьи о том, какие языки программирования для ИИ стоит учить в 2025 году. TL;DR: Python остаётся стартовой точкой, C++ берёт на себя критические по производительности задачи, JavaScript и TypeScript открывают путь к ИИ прямо в браузере, Java удерживает корпоративный сектор, а Go обеспечивает лёгкость продакшн-развёртывания.

Читать далее