Обновить

Как стать автором

Введение в Xray

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

Документ для тех, кто совсем не знает, что такое Vless, Xray и прочие штуки, связанные с «ВПН», но кому это нужно для планирования организации доступа через данные инструменты. Или если кому-то просто интересен принцип работы «на пальцах».

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

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

Читать далее
Всего голосов 44: ↑42 и ↓2+48
Комментарии27

Работа с аудио в Rust: от записи до сжатия

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

🦀 Практическое руководство по работе с аудио в Rust: от захвата с микрофона через CPAL до эффективного сжатия в Opus. Реализация системы с задержкой <50 мс и сжатием 42:1. Исходный код, тесты и метрики производительности.

Материал отлично подходит для использования AI-агентами: поставил задачу ИИ-ассистенту и он написал работающий диктофон всего с одной правкой.

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии10

Робот-слесарь идеальнее человека

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

Цех по сборке металлоконструкций. Зал для производственных совещаний. Только что завершилась презентация новых роботов-слесарей. В зале повисла гнетущая тишина. Все ждут уже неотвратимого решения Генерального.

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии26

Как я собрал AI-ассистента для отца с больным сердцем: Tool-Calling RAG Pipeline на GPT-4o-mini без LangChain

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

Мой отец — человек, переживший несколько сложнейших операций на сердце. Жизнь с хроническим заболеванием — это бесконечный поток анализов, заключений и схем приёма лекарств. Находясь далеко (я живу во Вьетнаме), я постоянно волновался: не забудет ли он про дозу, правильно ли понял назначение, задал ли все нужные вопросы врачу?

Мне нужен был не просто бот-напоминалка, а второй пилот — умный, конфиденциальный и мультимодальный AI-Кардиолог. Ассистент, который знает его анамнез наизусть, понимает голосовые команды и может «прочитать» фотографию свежего анализа.

Я решил собрать полноценный автономный агент с возможностью вызова внешних инструментов (Tool‑Calling) и локальной базой знаний (RAG), но без использования громоздких фреймворков вроде LangChain или LlamaIndex.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии6

Fullstack monorepo: как перестать дублировать код между фронтом и бэком

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

Сколько раз вы меняли поле в API, обновляли тип на бэкенде, а потом вспоминали, что надо поправить ещё и фронтенд? А если есть мобилка? А если схемы валидации тоже дублируются? Я устал от этого и создал шаблон монорепозитория, где TypeScript типы, Zod схемы и константы живут в одном месте и используются везде.

Читать далее
Всего голосов 5: ↑3 и ↓2+1
Комментарии6

По следам CPython. Часть 1. Настройка VS Code и первые шаги

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

Привет, читатель! Меня зовут Александр Щербанюк, и я Python-разработчик. Это первая статья цикла, который посвящен разбору внутреннего устройства CPython.

Читать далее
Всего голосов 8: ↑8 и ↓0+12
Комментарии0

conway-errors: порядок в ошибках как часть архитектуры проекта

Время на прочтение5 мин

Однажды при работе с крупной кодовой базой одного фронтенд-приложения я заметил, что функционал постепенно группируется относительно команд (доменов). Каждая из таких групп функционала постепенно накладывает собственные ограничения на архитектуру. Как оказалось, обработка ошибок при сравнении кода двух разных команд неоднородна. В одном случае разработчики структурировали ошибки стандартным наследованием JS/TS, в другом были использованы перехваты возникающих ошибок и логирование.

Стало ясно, что нам требуется обобщить подход к тому, как мы структурируем (называем, наследуем) и выбрасываем ошибки. Как показала практика, соглашений о кодировании недостаточно.

Что мы хотели получить?

Читать далее
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

Чувство вины, размытые ТЗ и страх говорить: о чём молчит ваша команда

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

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

Читать далее
Рейтинг0
Комментарии0

Токенизированные акции внутри Telegram — прорыв и реальный выход для российских инвесторов или ловушка для капитала?

Время на прочтение6 мин

Вчера в Wallet внутри Telegram открылся раздел Stocks & ETFs. Там можно покупать, продавать и дарить токенизированные акции и фонды прямо в мессенджере. Сумма входа начинается от 1 доллара. На первый взгляд, на данный момент для участников рынка из РФ это один из самых простых способов получить доступ к иностранным активам и диверсифицировать портфель.

Но так ли все просто и чисто, как звучит? Или есть какие-то подводные камни?

Давайте разбираться.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии9

Уровни изоляции транзакций: практическая механика и сравнение PostgreSQL, MySQL, Oracle, SQL Server и DB2

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

Транзакции — не про «магическое ACID», а про конкретную механику согласованного доступа к данным под нагрузкой.

Эта статья объясняет как реально работают уровни изоляции и чем отличаются популярные СУБД на практике.

Мы разберём:

Читать далее
Всего голосов 14: ↑13 и ↓1+15
Комментарии3

Когда база устала искать: архитектура OpenSearch для больших данных

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

БигДата всегда звучит красиво — пока не нужно по ним искать и за нее платить.

Когда данные перестают влезать в индекс, а поиск тормозит — дело не в БД, а в архитектуре.Рассказываю, как мы перестроили систему на связке PostGIS + OpenSearch и добились отклика в десятки миллисекунд.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Как я нашел криптографический бэкдор в крупнейшем даркнет-рынке: разбираем кражу $12 миллионов через уязвимость ECDSA

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

Криптографическая уязвимость Evolution Marketplace: Анализ кражи Исследование безопасности ECDSA подписей крупнейшего даркнет-рынка

Читать далее
Всего голосов 30: ↑29 и ↓1+34
Комментарии22

Как мы перестали хранить Pydantic в JSON и в 7 раз сократили расход памяти в Redis

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

У нас был большой продакшен-сервис с ~10M MAU, где Redis использовался как основное хранилище состояния пользователей. Все данные лежали в нём в виде JSON-сериализованных Pydantic-моделей. Это выглядело удобно, пока не стало больно.

На определённом этапе мы выросли до Redis Cluster из пяти нод – и он всё равно задыхался по памяти. JSON-объекты раздувались в разы относительно полезных данных, и мы платили за тонны пустоты — буквально деньгами и деградацией.

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

Читать далее
Всего голосов 21: ↑20 и ↓1+21
Комментарии34

«Манускрипт. Распознать нельзя забыть: как мы научили нейросеть читать рукописи XIX века»

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

Manuscript OCR — открытая нейросеть для чтения рукописей XIX века

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

Открыть рукопись
Всего голосов 17: ↑17 и ↓0+21
Комментарии34

Что еще могёт курсор

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

Началось все весьма прозаично, клиент позвонить к нам в техподдержку и спросил «а как бы мне поставить ваш софт но в другую схему БД». Собственно вопрос проще некуда — мы писали на спринге, а значит лезем в application.yml и ставим схему. Но, клиент не из тупых и уже это попробовал — не сработало.

Начинаем разбираться что сломалось и кто виноват. Первым делом ДевОпс повторяет кульбиты клиента и выдает простой вердикт: «В 151 миграции лажа». Я открываю и: «батюшки родный, да это же лосенок явное указание схемы!»

Читать далее
Всего голосов 12: ↑7 и ↓5+4
Комментарии4

Концепт: региональный портал записи на прием к врачу

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

Привет!

Меня зовут Андрей и я хочу поделиться своим опытом создания концепта для регионального поратала записи на прием к врачу.

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии9

Чужой среди своих: как аналитику войти в уже сработавшуюся команду

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

Привет! Меня зовут Инесса. Я — аналитик в компании fuse8. Предлагаю сегодня поговорить о том, как встроиться в уже сработавшуюся команду. По моему опыту, это всегда испытание. Почти как игра в русскую рулетку: не знаешь, как команда примет новичка и как быстро он подстроится под общий ритм. Новому человеку нужно время на адаптацию, обучение и погружение в процессы. И только потом можно по-настоящему оценить его вклад.

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии1

Как я проектировал инженерные коммуникации в старом деревенском доме: мой опыт

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

Привет, Habr!

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

Живем с женой, т. к сын уже вырос и отправился в самостоятельное плавание. Мы завели лабрадора и стали всерьез подумывать о даче — видимо возраст, потянуло на природу. А еще три года назад мы стали владельцами одной прелести — одноэтажного домика с верандой. То ли 60-х, то ли 80-х годов постройки. Такие дома выглядят однотипно.

Читать далее
Всего голосов 9: ↑9 и ↓0+11
Комментарии19

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

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

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

Читать далее
Рейтинг0
Комментарии4

Хватит бороться с ошибками CORS: разберемся, как они работают раз и навсегда

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

Вы когда-нибудь видели в консоли сообщение вроде: «Access to fetch at '…' from origin '…' has been blocked by CORS policy»? Это как в том фильме: «Суслика видишь? — А он есть». CORS не бросается в глаза, пока все работает, но в нужный момент пресекает недопустимые действия. Например, чтение ответа на кросс-запрос без разрешения сервера.

Меня зовут Баир, я разработчик в команде fuse8. В этой статье я отвечу на вопросы о том, зачем была создана CORS политика, как она устроена под капотом, почему простого действия типа «поставить заголовок на бэке» может быть мало, и какие безопасные паттерны стоит выбирать во фронтенде.

Читать далее
Всего голосов 16: ↑15 и ↓1+15
Комментарии4