Обновить
1024K+

Open source *

Открытое программное обеспечение

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

Нужно ли использовать Qwen? Качество и цена

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

Китайские модели дешевле западных в разы, и регулярно всплывает вопрос: можно ли просто пересесть на Qwen и не платить за Claude с GPT? Я взял одну реальную задачу — разбор pprof-профиля Go-сервиса с фиксами по файлам — и прогнал её через три модели сразу: Codex (GPT-5.5), Claude Opus 4.8 и Qwen 3.7 Max. Свёл качество (по 10 критериям) с реальной ценой за токены и разбираю, где Qwen работает наравне с дорогими конкурентами, где отстаёт по глубине, где выдал прямо небезопасный совет, и кому он в итоге подойдёт. Спойлер: дело не в «IQ модели», а в том, что одиночная модель — хоть дорогая, хоть дешёвая — слепа к своим ошибкам.

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

Новости

Agent Team в Claude Code: когда одного агента в терминале уже не хватает

Время на прочтение3 мин
Охват и читатели1.2K

Claude Code умеет запускать не одного агента, а целую команду: одна сессия становится координатором (team lead), остальные — независимые тиммейты со своим контекстом, которые сами разбирают задачи из общего списка и переписываются друг с другом. Это экспериментальный режим Agent Team. Разбираю, чем он отличается от субагентов, как его включить (переменная окружения, версия 2.1.32+), какие есть режимы отображения и горячие клавиши, где он реально экономит время — ревью, поиск багов, сравнение архитектур — а где только жжёт токены и мешает. Все команды и флаги сверены с официальной документацией и установленным бинарником.

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

Игра в имитацию: следующий шаг

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

WireGuard довольно быстро стал популярным VPN-протоколом: простой, быстрый, с аккуратной архитектурой и без тяжёлого наследия, он выгодно выделялся на фоне монстров вроде IPsec и OpenVPN. Но, как это часто бывает, сильная сторона со временем стала и слабым местом. Протокол оказался не только удобным и предсказуемым, но и легко узнаваемым, а значит и сравнительно простым для блокировки.

Как только WireGuard начали пытаться блокировать, появились и первые попытки его спрятать. Сначала это были довольно простые приёмы, например, добавить перед хендшейком несколько мусорных UDP-пакетов, чтобы сбить DPI в начале сессии. Потом появилась AmneziaWG, которая пошла дальше и стала менять уже сам внешний вид WireGuard-пакетов: заголовки, размеры, дополнительные junk-данные внутри хендшейка. В AmneziaWG 2.0 пространства для манёвра стало ещё больше: к уже существовавшим S1–S2 добавились S3–S4, и управляемые вставки стало возможно применять не только к хендшейку, но и к другим типам сообщений, включая основной поток данных. Параллельно развивалась и идея имитационных пакетов: перед хендшейком можно было отправлять не просто случайный мусор, а пакеты, похожие на трафик другого протокола, чтобы сбить первичную классификацию.

В этой статье речь пойдёт о следующем шаге в развитии этой идеи. Если раньше имитационные пакеты работали в основном как короткая дымовая завеса перед хендшейком, то теперь имитация переносится в сам поток: транспортные пакеты AmneziaWG на проводе начинают выглядеть как QUIC, DNS, STUN или SIP.

Читать далее

В интернете нет нормальной альтернативы Google AI Studio. Пришлось написать свою

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

Многие смотрят на это спустя рукава, но Google создавал AIStudio не для того, чтобы вы ежедневного пользовались им в качестве основного интерфейса для общения с LLM. Студия была создана с целью дать возможность разработчикам настраивать параметры инференса, тестировать, баловаться. И не нужно быть главным‑по‑aistudio, чтоб это понять — там есть тулинг, граундинг поиска, можно изменить системный промпт. Диалоги сохраняются в виде файлов на гугл диске, чтоб было можно их клонировать, бекапить, итд. Есть отдельная страница с рейт лимитами, с выпуском API токенов. Это — ворота к программному интерфейсу для разработчиков, а не удобный chatgpt‑like веб‑интерфейс.

Подробнее

Ключевые основы автоматического выбора алгоритмов кластеризации мультимодальных данных на основе мета-обучения

Уровень сложностиСредний
Время на прочтение31 мин
Охват и читатели7.8K

Задача кластеризации относится к классу «обучения без учителя» и является фундаментальным инструментом exploratory data analysis (разведочный анализ данных). В отличие от классификации, здесь отсутствует размеченный набор данных или какая-либо заведомо известная информация о нём. Алгоритм самостоятельно выявляет критерий группировки объектов, и именно в этой самостоятельности кроется ключевая проблема: отсутствие априорной разметки делает оценку результатов крайне субъективной, так как разные алгоритмы обладают уникальным индуктивным смещением (inductive bias), проецируя различные предположения о геометрии и плотности скрытых классов. Универсальный алгоритм, который подходит для всех задач, построить невозможно (теорема Клейнберга, являющаяся следствием более общей теоремы о «бесплатном обеде»), поэтому алгоритмы кластеризации нужно подбирать и настраивать почти для каждой задачи отдельно. Задача выбора и настройки алгоритма машинного обучения является экспертной, что достаточно затратно по времени, поскольку работа выполняется человеком фактически вручную.

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

Читать далее

Хватит дублировать валидацию в Django: как я подружил Pydantic с ORM и перестал страдать

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

Представь: ты пишешь научный сервис. Есть модель исследователя, у которой h_index не может быть отрицательным. Ты, как добросовестный разработчик, описываешь это правило в Pydantic-схеме красиво, строго, типизированно. А потом начинается ад: те же самые «не может быть отрицательным» ты вынужден повторять в DRF-сериализаторе, в Django-форме, а если ещё и админку кастомизируешь то и там. Три, пять, десять мест, где разбросана одна и та же бизнес-логика. Знакомо? У меня эта боль копилась годами, пока я не сказал «хватит» и не написал django-nova  фреймворк, который делает Pydantic единственным источником правды для всей экосистемы Django.

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

Читать далее

sqlh — SQL в Go без boilerplate: пишем CRUD за 50 строк

Время на прочтение8 мин
Охват и читатели6.3K

Если вы пишете на Go и работаете с SQL-базами, вы знаете эту боль. Каждый CRUD-запрос — ручной SQL-строка, rows.Scan для каждого поля, Begin/Commit/Rollback вокруг записи, и постоянная синхронизация DDL-схемы с кодом. Шаблонный код не заканчивается никогда.

Это рассказ о sqlh — библиотеке, которая убирает всё это, оставаясь в «золотой середине» между raw SQL (слишком много работы) и тяжёлыми ORM (слишком много магии).

Читать далее

Как я написал BGP-сервер и не сошёл с ума

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

BGPLite — open-source BGP route-server на C# и .NET 10. Он принимает BGP-сессии, динамически загружает префиксы через RIPE Stat и управляется через HTTP API. В статье разберём архитектуру проекта и реализацию собственного BGP-сервера с нуля.

Читать далее

Промпт — это творчество? Нет, это 10 блоков в жёстком порядке

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

Все знают, как писать промпты правильно: роль, критерии готовности, защита от выдумок, разметка под конкретную модель. Проблема в другом - выписывать все эти пунктыруками для каждого нового промпта утомительно. Да ещё и думать надо :) Поэтому я собрал скилл, который делает рутину за меня: описываешь задачу своими словами, получаешь полноценный промпт под Claude, GPT, Gemini или DeepSeek. Под катом - как он устроен: десять обязательных блоков, Python-проверяльщик, протокол разнообразия из свежей научной работы. Скилл открытый, ссылка внутри.

Читать далее

FastAPI и S3 — строим сервис безопасной генерации временных ссылок

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели7.6K

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

В этой статье я познакомлю вас с реализацией бэкенд-сервиса, который решает эту проблему элегантно: S3 отвечает за хранение и отправку данных, а мое приложение — за проверку прав и генерацию одноразовых, короткоживущих ключей доступа (Pre-signed URL). Я разберу архитектуру решения, покажу, как настроить безопасное разграничение доступа между публичными и приватными объектами, а также продемонстрирую механизм, который позволяет клиентам скачивать файлы напрямую из хранилища, минуя сервер приложения.

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

Читать далее

Шифрование на основе SHA-256/Blake3

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

Можно ли построить шифрование, если под рукой есть только SHA-256 и Blake3? В этой статье разберем рабочую и надежную схему построения такого алгоритма.

Читать далее

Контрольные суммы ИНН, ОГРН и СНИЛС: разбираем алгоритмы и пишем валидатор на Python

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

У нас есть форма, куда пользователь вводит ИНН контрагента, а мы по нему идём за данными в ЕГРЮЛ. Если заглянуть в логи этой формы, видно сколько туда прилетает мусора. ИНН из одиннадцати цифр (кто‑то добавил лишнюю), номера со срезанными ведущими нулями, ОГРН в поле для ИНН, и классика жанра — две соседние цифры переставлены местами. Каждый такой ввод это поход в чужой API, таймаут, ожидание, и в конце честное «ничего не найдено». А пользователь в этот момент уверен, что сломались мы.

Разобраться, кто сломался

Делаем автоматизацию для Spotify, которая создаёт плейлисты из избранного

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

Когда-то музыку слушали на пластинках, затем на кассетах, CD-дисках, потом пришёл Winamp и mp3-плееры.

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

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

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

Так и я недавно сорвался, засел на выходных с Codex и начал пилить свой собственный Spotify-улучшайзер.

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

Читать далее

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

Kubernetes дома? Ты не в себе? Как с Cursor и без DevOps-опыта поднять приватный кластер для личных проектов

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

Я реализовал свою первую задачу по замене «Яндекс Диска», довёл скорость до 1,1 ГБ/с и пошёл дальше — установил Kubernetes дома. Я не инженер DevOps, но на своём кластере из старых Mac mini я запустил полноценный K8s с Managed Services.

Читать далее

Спутниковая связь в симуляторе NS-3. Часть 4

Время на прочтение35 мин
Охват и читатели6.2K

Эта статья является продолжением цикла статей. В предыдущей статье мы узнали как организован модуль спутниковой связи Satellite и как его установить в симулятор NS-3. В этой же статье мы познакомимся с наиболее употребляемыми классами симулятора NS-3, без знания которых в моделировании не обойтись

Читать далее

Путь к ошибке: зачем нужны «Breadcrumbs» во frontend-мониторинге

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

Пользователь столкнулся с ошибкой в вашей программе. Трекер ошибок ее зафиксировал. Стек-трейс показывает место сбоя. Но что делал пользователь за несколько секунд до этого? Какие запросы выполнялись? На каком шаге сценарий пошёл не так?

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

Читать далее

Дело о молчаливой JVM: мониторинг Spring Boot с Prometheus и Grafana. Production-нуар

Уровень сложностиСредний
Время на прочтение44 мин
Охват и читатели6.7K

Она умерла в воскресенье вечером, и никто не услышал ни звука. Детективная история о том, как поставить прослушку на собственное приложение: Prometheus, Grafana, Micrometer, алерты, SLO. Все улики в комплекте, демо-проект прилагается. Совпадения с вашим продакшеном не случайны.

Открыть дело

Как я прикрутил GigaChat к OpenCode и что из этого понял

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

Мне было интересно проверить GigaChat/GigaCode не в обычном чате, а в нормальной агентной среде разработки. То есть не “ответь на вопрос”, а вот это всё: tools, function calling, streaming, MCP-инструменты, история диалога и работа внутри реального проекта.

Для проверки я подключил GigaChat к OpenCode через TypeScript-плагин. Простой текстовый запрос завёлся быстро, а дальше началось самое интересное: OpenAI-like API оказался похожим на совместимый агентный протокол только снаружи. Внутри пришлось собирать отдельный слой совместимости.

Читать далее

Токен-оптимизация агентов: на что уходит контекстное окно MCP

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

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

Читать далее

Острова вместо серверов: как сделать мессенджер, который переживёт изъятие своего сервера

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

Если вы хоть раз обсуждали «правильную» архитектуру мессенджера, вы знаете, что разговор всегда скатывается в два полюса, и оба плохие.

Полюс первый: чистый P2P. Никаких серверов, клиенты говорят напрямую. Звучит красиво ровно до первого практического вопроса. Собеседник офлайн, а вы хотите написать ему сейчас. Куда уйдёт сообщение? В никуда, ждите, пока он включит телефон одновременно с вами. NAT, симметричные файрволы, спящий Android, который убивает фоновые сокеты. P2P горит на неудобстве.

Полюс второй: сервер. Удобно, офлайн-доставка есть, пуши есть. И ровно одна коробка, в которой лежат личности всех, граф контактов всех, очереди всех. Эту коробку можно заблокировать по сети, можно изъять физически, можно прийти к оператору с предписанием. Серверные мессенджеры горят на сервере.

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

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

Читать далее
1
23 ...