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

Бэкенд

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

Создаём личную систему VoIP

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

Я всегда был активным сторонником самохостинга, но ни разу не пробовал ничего, связанного с VoIP. Недавно я приобрёл несколько IP-телефонов и создал личную домашнюю телефонную сеть на основе Asterisk. Это руководство поможет вам настроить собственную телефонную систему при помощи опенсорсных инструментов.

Руководство написано для людей, имеющих опыт самохостинга, но совершенно незнакомых с VoIP, поэтому я ради краткости опущу некоторые неинтересные технические подробности.

Читать далее

Clean Fury: эволюция одного Node.js сервиса

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

Эта статья — история эволюции. Она о том, как простое желание купить билеты в театр прошло путь от однофайлового скрипта на несколько строк до полноценного сервиса с Clean Architecture, CI/CD и деплоем на VPS. Я не стану показывать пошаговый гайд по программированию, а разберу на примерах, какие боли на каждом этапе заставляли меня усложнять архитектуру, и какие архитектурные решения эти боли закрывали. Это практический гайд по принятию решений для ваших пет-проектов.

Читать далее

Как я 1,5 года изучал российские ESB, и что важно знать при выборе платформы

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

Привет! На связи Сергей Скирдин, технический директор ИТ-интегратора «Белый код». Последние полтора года я активно исследовал российский рынок интеграционных решений (ESB). За это время успел встретиться с 20+ вендорами, погрузиться в сотни страниц документации и даже провести батл между разработчиками. В результате получился большой обзор рынка. В статье расскажу, что удалось выяснить и какие советы могу дать тем, кто сейчас выбирает платформу. 

Читать далее

Создаём CLI-приложение прогноза погоды на Go: пошаговое руководство для новичков

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

Команда Go for Devs подготовила перевод пошагового руководства: как написать собственное CLI-приложение прогноза погоды на Go. Проект охватывает всё — от HTTP-запросов и парсинга JSON до удобного интерфейса командной строки. Отличная практика для новичков и хороший повод освежить базовые навыки тем, кто уже работает с Go.

Читать далее

Ваш AI-ассистент уже слил ключи в облако?

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

Команда AI for Devs подготовила перевод статьи о том, как AI-ассистенты для написания кода одновременно ускоряют разработку и умножают риски. Исследование Apiiro показало: 4-кратный рост скорости сопровождается 10-кратным ростом уязвимостей. Вопрос открытый — готовы ли компании масштабировать не только продуктивность, но и риски?

Читать далее

Меньше магии, больше кода: мой способ писать Django views

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

Команда Python for Devs подготовила перевод статьи о том, как автор выбирает способ написания представлений в Django. Он считает, что обобщённые классовые представления (CBV) скрывают слишком много магии, усложняют чтение кода и отладку. Вместо них он использует базовый View, чтобы сохранять контроль, но при этом избегать громоздких if в функциях.

Читать далее

Векторный поиск в Elasticsearch: dense_vector, HNSW и фильтрация по атрибутам

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

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

В современном поиске всё чаще используется поиск «по смыслу» с помощью векторных эмбеддингов. Вместо привычного анализа текста по словам мы представляем документы и запросы в виде многомерных векторов и ищем ближайших соседей по евклидовому или косинусному расстоянию. Это позволяет, например, находить документы, схожие по смыслу, а не только по точному совпадению слов. В Elasticsearch поддержка такого поиска реализована через поле dense_vector и алгоритм HNSW (Hierarchical Navigable Small World) для быстрого приближённого поиска ближайших соседей.

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

Читать далее

Книга «C# Concurrency. Асинхронное программирование и многопоточность» в правильном переводе команды DotNetRu

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

Сообщество DotNetRu совместно с издательством «Питер» завершило перевод книги Нира Добовицки «C# Concurrency». Мы тщательно выверили терминологию, сгладили стиль и сохранили точность оригинала. Это практическое руководство для тех, кто хочет уверенно проектировать конкурентные компоненты на .NET 8/9 — без догадок и шаманства.

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

Читать далее

Многопоточности — да! Как работать с геометрическим ядром C3D в многопоточном приложении

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

Татьяна Митина, руководитель подразделения C3D Labs в Нижнем Новгороде, рассказывает, как устроена многопоточность ядра C3D, какими механизмами обеспечивается потокобезопасность ядра, какие параллельные вычисления происходят в самом ядре. Особое внимание уделяется правилам использования ядра C3D в нескольких потоках.

Многопоточность — отличный повод заглянуть в параллельные миры!

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

Читать далее

N8n: (не)реальные возможности и ограничения

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

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

Звучит слишком хорошо, чтобы быть правдой?

Читать далее

Spring Security для начинающих: конспект от аутентификации до JWT

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

На Хабре уже много статей про Spring Security — от кратких заметок до глубоких разборов. В этой статье я решил собрать всё в формате конспект-мануала, который можно читать как пошаговое введение: от базовой аутентификации и фильтров до JWT и OAuth2. Это материал, собранный по официальной документации и дополненный разъяснениями «на простом языке». Я не работал в больших enterprise-командах, поэтому буду рад комментариям и советам от более опытных коллег. Местами я использовал помощь ChatGPT: он помог структурировать материал и сделать стиль более читабельным, ближе к документации.

Читать далее

Локальные LLM модели: обзор и тестирование

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

В ★5УГЛОВ мы часто работаем с языковыми моделями — как облачными, так и локальными. И если про онлайн‑сервисы знают все, то локальные LLM до сих пор остаются недооцененным инструментом. Я решил поделиться личным опытом: какие модели можно запускать прямо на ПК, чем они полезны и зачем их вообще использовать в реальных проектах.

Большие языковые модели (Large Language Model, LLM) уже давно не являются громоздкими программными продуктами, закрытыми от пользовательских доработок и требующими огромных вычислительных мощностей. Многие ИИ можно скачать и запустить на обычном компьютере без интернета. Популярны так называемые «дистиллированные» модели — сжатые версии основных нейросетей, имеющие меньше параметров. Они требуют меньше ресурсов и могут работать даже на не самых мощных настольных ПК или ноутбуках. За последнее время локальные ИИ заметно улучшились: они стали быстрее, стабильнее и качественнее. Если раньше многие из них стремились отвечать по‑китайски (если явно не указать язык), то сегодня выбор значительно шире и работать с ними удобнее. Попробуем оценить самые популярные на разных задачах и выбрать лучшую.

Читать далее

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

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

Если у вас с руководителем полное взаимопонимание, вы киваете друг другу с полуслова и вообще обожаете свою работу — закройте эту статью и идите пить свой раф на кокосовом. Мы с остальными тут немного пострадаем. Расскажу, как мне удалось превратить душного начальника в персонального бустера производительности.

Читать далее

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

Доктор Алан Кей о смысле «объектно-ориентированного программирования»

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

Оригинал

В 2003 году Алан Кей, признанный автор термина «объектно-ориентированное программирование», ответил на вопросы исследователя Штефана Рама. В этом письме он раскрывает первоначальный замысел ООП, который значительно отличается от того, чему большинство из нас учат сегодня. Публикуем перевод этого исторического документа.

Читать далее

espanso — малоизвестный шедерв для повышения личной продуктивности

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

Герой обзора - утилита espanso, позволяющая на лету заменять текстовые фрагменты.
Опять прога на Rust. И опять впечатление "ух ты!", как от ruff и uv.

Читать далее

Polars — «убийца Pandas» на максималках

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

Всем привет! Меня зовут Александр Андреев, я инженер данных. Сегодня я хочу рассказать вам о библиотеке Polars - потенциальной замене Pandas, любимой у большинства дата-инженеров и дата-саентистов библиотеки для работы с данными.

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

Читать далее

Django: почему один settings.py может стоить вашей компании миллионы

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

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

Эти ритуалы жрут месяцы жизни компаний, и об этом мало кто говорит.

Я расскажу историю. Она звучит как анекдот, но на самом деле это кейс.

Читать далее

Java 25, холивары вокруг Spring и PostgreSQL на скоростях: что будет на Java Rock Stars Meetup

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

25 сентября в Москве мы снова собираем участников Java-сообщества вместе. В программе: хардкорные доклады, дискуссия о будущем Spring в России и много живого общения.

Регистрируйтесь на митап по ссылке.

А пока присоединяйтесь к нашему ТГ-каналу и чату Java Rock Stars Meetup, чтобы быть в курсе новостей митапа.

Читать далее

Не одним CRDT едины или P2P vs Authoritative в local-first приложениях

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

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

Примеры таких приложений: Notion-like редакторы, Figma-like вайтборды или Linear-like таск менеджеры.

Основная идея – коллаборация, а коллаборация несет за собой конфликты, разберем очень наглядный пример:

Читать далее

JEP 502 — Stable Values. Новая фича из Java 25

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

Не final едины: StableValue в Java 25.

Stable Values - новая возможность, которая появится в Java 25 — следующем LTS-релизе, намеченном на сентябрь.

Читать далее