Pull to refresh
3
0,1
Rating
Send message

Помогаем малышке стать сильной: локальная Qwen против облачных флагманов на 16 ГБ видеопамяти

Level of difficultyMedium
Reading time13 min
Reach and readers24K

В двух предыдущих статьях мы проверяли языковые модели на наших повседневных задачах: работе с данными в электронном лабораторном журнале и исправлении ошибок в трёх закрытых проектах на Delphi — от программы рентгеновской рефлектометрии X‑Ray Calc до нашей системы управления лабораторией.

В обоих тестах локальные модели на моей рабочей станции (одна карта RTX 5080 на 16 ГБ и 62 ГБ оперативной памяти) заметно отставали от облачных лидеров. На вопросах по журналу ранняя сборка Qwen 3.8 IQ2_XS набрала жалкие 33% (8 из 24), а gpt‑oss-20b — 40%. На задачах Delphi специализированная Qwen 3.8 Coder IQ1_M взяла 16 задач из 20 (80%). Результат уже вполне рабочий, но до Claude Sonnet 5.5 (19/20) она всё‑таки не дотянула.

Конечно, можно было на этом успокоиться и списать отставание на скромные 16 гигабайт видеопамяти. Но мне не давал покоя вопрос: модель действительно упёрлась в свой потолок или мы сами подрезали ей крылья настройками и капризными инструментами? Сели разбираться — и довольно быстро нашли узкие места. Поменяли урезанную сборку весов на полную, поправили конфигурацию сервера, научили инструменты спокойно относиться к мелким огрехам сериализации — и на том же самом железе локальная Qwen 3.8 взяла реванш!

Читать далее

Почему UFW не спасает от Docker: анатомия сетевой подставы и что ищут боты в открытых портах БД

Level of difficultyMedium
Reading time25 min
Reach and readers115K

Типичная картина при переезде на свежий VPS. Подняли чистую Ubuntu или Debian под новый проект, сразу навели базовый порядок: ufw default deny incoming, снаружи оставили только 22, 80 и 443. Глянули ufw status — всё четко, лишнего не торчит. Дальше ставится Docker, через компоуз взлетает бэкенд с PostgreSQL и Redis. Чтобы удобно ходить в базу с ноута через DBeaver и гонять миграции, на автомате дописываем ports: - "5432:5432". Кажется, что мы в домике: наружу ничего не светит, фаервол же режет всё, кроме веба и SSH.

А через пару дней прилетает абуза от хостера или срабатывает алерт в мониторинге: все ядра в полке, в htop резвится какой‑нибудь kdevtmpfsi или kinsing, а вместо таблиц в базе лежит одна записка README_TO_RECOVER с биткойн‑кошельком. Грабли старые, как сам Docker. Но на них с завидной регулярностью наступают и джуны, и вполне опытные админы, привыкшие доверять выводу ufw status.

Разобрать анатомию подставы

Мощный ИИ агент в 16гб VRAM

Reading time8 min
Reach and readers107K

Недавно я обновил свою видеокарту до RTX-5060-TI 16GB. Получив новую карту я решил исследовать, что можно на ней запустить из нейросетей. Традиционно пишут, что нормальные ИИ модели начинаются с rtx3090 и выше, что ниже 24GB VRAM жизни нет. В этой статье я постараюсь развеять этот миф.

Читать далее

Умные шторы своими руками

Reading time3 min
Reach and readers175K
Однажды, после тяжелого рабочего дня, я пришел домой и понял, что хочу отдохнуть, а не ходить и закрывать шторы. Хочется увидеть их закрытыми вечером и открытыми утром, при этом не выделывать танцы перед окном. Погуглив разные решения, было принято решение сделать все самому.



По многочисленным просьбам, выкладываю все свои наработки по переделке обычных рулонных штор в автоматизированные с удаленным управлением. Осторожно, много фотографий!

Ruthenium: Chromium для Android с поддержкой сертификата Минцифры

Level of difficultyEasy
Reading time8 min
Reach and readers13K

Некоторые банки и государственные сервисы используют TLS-цепочки, которые заканчиваются корнем Russian Trusted Root CA. Яндекс Браузер и Атом умеют работать с такими цепочками. Chrome для Android показывает NET::ERR_CERT_AUTHORITY_INVALID, потому что этого корня нет в хранилище Chromium.

Я пользуюсь Chrome и не хотел заводить второй браузер для нескольких сайтов. Поэтому добавил корень в Chromium, ограничил его зонами .ru и .рф и собрал отдельный APK. Проект получил название Ruthenium.

Читать далее

PostgreSQL для бэкендера: 10 фич, которыми мало пользуются, а зря

Level of difficultyMedium
Reading time16 min
Reach and readers36K

Вы храните в PostgreSQL пользователей, заказы и платежи — а потом проект обрастает Redis для очереди, отдельным поисковиком и самодельными блокировками через таблицу locks. Иногда это оправдано. Но часто типовые бэкенд-задачи закрываются прямо в базе: атомарно, транзакционно, с индексами и без лишней сетевой болтовни.

Привет, Хабр! Меня зовут Тимур Исламгулов. Я преподаватель МФТИ и ведущий вебинаров по PostgreSQL. За годы работы я насмотрелся, как разработчики поднимают лишнюю инфраструктуру там, где хватило бы самой базы, — об этом и поговорим.

Показать рабочий SQL →

C++101

Reading time201 min
Reach and readers46K

Про C++ часто шутят, что любую вещь можно сделать пятью разными путями, четыре из которых компилируются, три работают, а два правильные, но один зависит от фазы луны. Часто такие шутки и идиомы откладываются в коллективной памяти сообщества какой именно из этих путей правильный в каждой конкретной ситуации.

Большинство этих примеров родилось в эпоху до C++11, когда у языка ещё не было ни умных указателей в стандарте, ни move-семантики, ни constexpr, ни концептов, и приходилось руками собирать из шаблонов и перегрузок некоторые конструкции, которые в более поздних стандартах язык даёт почти бесплатно. Многие идиомы, примеры и идеи стоит читать в двух смыслах сразу, как исторический артефакт, объясняющий «почему старый код выглядит вот так», и как живой приём, который всё ещё применяется в движках и играх.

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

Когда я собирал оглавление Game++, раздел про идиомы, идеи, паттерны и механизмы C++ планировался шестым и завершающим, и должен был занять страниц сто, по одной на каждый пункт, но чем дальше я собирал материал, тем яснее становилось, что каждая секция тянет за собой историю, а каждая история требует контекста, а каждый контекст в игрострое никогда не бывает простым. В итоге текст разросся до размеров, при которых он просто сломал бы структуру книги, и мне пришлось выбирать между «урезать до неузнаваемости» и «отпустить жить отдельно». Пришлось выбрать второе.

Перед вами то, что могло бы стать половиной Game++, но стало самостоятельным материалом. Здесь собраны идиомы, идеи, паттерны и механизмы C++, которые сложились в сообществе за несколько десятилетий и продолжают жить в кодовых базах игровых движков, иногда под своими именами, иногда под другими, иногда вообще без имён, потому что их давно перестали объяснять. У большинства имена все же есть, есть и история с ответом почему именно так, а не иначе.

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

Читать далее

Год с Claude Code: главное — не он сам, а то, что в .claude/

Level of difficultyMedium
Reading time9 min
Reach and readers23K

Claude Code у меня появился в марте 2025-го. Точную неделю не помню — в какой-то момент он у меня просто стал инструментом по умолчанию, и я с ним отработал примерно год.

Это не «AI убил программирование» и не «AI = x10 продуктивность». И то и другое — пустое. Реальность скучнее и интереснее одновременно.

Сразу важная оговорка: я использую Claude Code на максимум. Не «иногда», не «когда подходит» — постоянно, на каждой задаче. Если что-то можно сделать через него, я делаю через него. Под него подстроены CLAUDE.md, hooks, skills, slash-команды, два MCP-сервера. Это контекст для всех выводов ниже. Стек: Python, бэкенд, команда маленькая.

Где он реально помог

Массовые рутинные правки. Самое чистое попадание. Когда у тебя задача «во всех 47 эндпоинтах добавь параметр request_id в логи и пробрось его в нижний слой» — это его работа, а не моя. Открываю агента, описываю абзацем, прошу сначала план, смотрю план, говорю «давай» — и через минут десять у меня PR с тестами. По ощущениям часов тридцать-сорок за год сэкономил только на таких задачах.

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

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

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

Читать далее

Выжать больше из локальных LLM. Ollama медленнее llama.cpp в 3 раза. UD_Q4_K_XL лучше чем Q4_K_M, а вес тот же и т.д

Reading time22 min
Reach and readers81K

Самый просто способ запустить локальную LLM - это установить ollama или LM Studio. Это быстро и просто, но вы теряете и в скорости, и в качестве. Почему UD_Q4_K_XL лучше при том же размере, почему квант Q3 может быть медленнее чем Q4. Хорошая ли идея взять REAP для вырезания ненужных экспертов из MoE. Кто быстрее, Linux или Windows. В общем как выжать больше из локальных LLM на домашнем железе.

Читать далее

Счётчик воды для Home Assistant из датчика протечки Tuya

Level of difficultyMedium
Reading time6 min
Reach and readers15K

После реализации в прошлой статье многотарифного учёта электроэнергии в квартире, было решено реализовать и учёт расхода воды.В продаже есть несколько уже готовых решений, которые могут подключаться к Home Assistant, передавать данные сразу в Водоканал и другие компании ЖКХ. Но стоимость устройств начинается от 3000 руб, а если стояки с подачей холодной и горячей воды разнесены далеко, то придётся покупать 2 датчика и бюджет проекта заметно вырастает.

Поэтому в рамках данной статьи расскажу, как реализовать счетчик расхода воды на базе дешевого датчика Tuya (около 450 руб.) и настроить отображение данных в Home Assistant. Также реализуем подсчёт общего объёма водоотведения и сигнализацию о возможном затоплении. Схема применима к счётчикам, которые создают импульсный сигнал по типу Геркон.

Читать далее

Бесплатный вайбкодинг с Qwen Code — установка, возможности

Level of difficultyEasy
Reading time3 min
Reach and readers102K

Alibaba выпустила Qwen Code в 2026 году на базе исходников Google Gemini CLI. Собственно, форкнули, адаптировали под собственные модели Qwen-Coder и открыли под Apache-2.0. По умолчанию работает на Qwen3.6-Plus - самая свежая модель, т.к. вышла 2 апреля 2026. Актуальная версия агента на момент этого текста - 0.14.3.

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

Через MCP-протокол может подключать внешние инструменты. 

Читать далее

Как я искал замену MinIO S3 и написал свой S4 на Rust

Level of difficultyMedium
Reading time6 min
Reach and readers23K

В начале 2025 года компания MinIO в лице сооснователя Harshavardhana начала поэтапно сворачивать свою версию Community Edition. В феврале из open-source версии был вырезан веб-интерфейс администрирования - управление политиками, мониторинг, репликация, IAM - всё это переехало в коммерческий продукт AIStor с ценником от $96 000 в год. Пользователям оставили лишь базовый object browser и CLI-утилиту mc. В мае последовало удаление поддержки OIDC-аутентификации. В октябре MinIO прекратил публикацию Docker-образов и готовых бинарников - причём аккурат в момент раскрытия критической CVE-уязвимости. А в декабре 2025-го проект официально перешёл в режим maintenance mode: никаких новых фич, pull request'ы не принимаются, только точечные security-фиксы по усмотрению компании.

Читать далее

Go 1.26 вышел, пройдемся по всем изменениям…

Level of difficultyMedium
Reading time130 min
Reach and readers14K

Go 1.26 уже вышел! Официальные релизноты довольно скудны на детализацию и приходится изучать глубже. Сделал для тебя большой обзор нововведений, можешь использовать эту статью как шпоргалку. В начале коротко опишу то что лично мне понравилось больше всего. Изменения затрагивают runtime, компилятор, стандартную библиотеку и поддержку платформ. Команда Go сосредоточилась на производительности и удобстве разработки.

Читать далее

Self-hosted связь со своей семьей

Level of difficultyEasy
Reading time7 min
Reach and readers41K

Я сделал видеосвязь для семьи: один бинарник, домен, 200 рублей в месяц — и всё работает

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

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

Читать далее

Почему в Linux «Всё есть файл»? Или почему гениальные абстракции UNIX настолько гениальны

Level of difficultyMedium
Reading time21 min
Reach and readers183K

– Ваш терминал и ваше интернет соединение – это файл!
– Да что вы такое говорите?
– Скажите ещё, что и мышка в моей руке или жёсткий диск – это тоже файл.
– Абсолютно верно!

На самом деле, с точки зрения Linux – это так.

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

Читать далее

Как спроектировать кэш-библиотеку нового поколения и не умереть?

Level of difficultyMedium
Reading time14 min
Reach and readers39K

Всем привет! Меня зовут Алексей Майшев, я работаю Go-инженером в Авито. В этой статье рассказываю, как мы проектировали и разрабатывали кэш-библиотеку следующего поколения для Go — otter. 

Вы узнаете, чем нас не устроили текущие кэш-библиотеки в Go, какие подходы и оптимизации мы рассматривали и на каких остановились, как замеряли производительность и потребление памяти и в чём otter превосходит конкурентов. А ещё тут будет много теории — в процессе работы над библиотекой нам приходилось читать много страшных научных статей на тему кэшей.

Читать далее

Звонки через Jabber в докер-контейнере за 5 минут

Level of difficultyEasy
Reading time8 min
Reach and readers96K

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

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

Звонки идут в зашифрованном режиме, работают p2p. А если у собеседника хитрый NAT, то на помощь автоматически приходит встроенный STUN-сервер.

Клиенты есть под все платформы: Android, iOS, Windows, macOS и Linux.

Читать далее

Мой идеальный компьютер

Reading time7 min
Reach and readers59K

Я сижу под Linux, но иногда нужна винда. До недавнего времени у меня был обычный dual boot, но сейчас я реализовал свой идеальный сетап:

- основная система - Linux

- Windows - на выделенной SSD

- на нее можно загрузиться как из груба, так и из виртуалки

- с пробросом второго GPU (дисплей на отдельный физический выход)

- с качественным удаленным подключением (как RDP, но быстрое) - можно играть в игры

Ниже опишу что и как сделал.

Читать далее

15 минут — и у тебя бесплатная ИИ-модель для генерации кода, текста, чтения иллюстраций

Level of difficultyEasy
Reading time11 min
Reach and readers139K

Я устал платить за GPT и думать, куда уходят данные. Нашёл Gemma 3 12B от Google и LM Studio — установил всё за 15 минут. В статье — подробная инструкция и советы, как запустить свою Gemma даже без опыта в ML.

Читать далее

Go-тесты: путь к надежному коду

Level of difficultyMedium
Reading time9 min
Reach and readers8.5K

Очень часто автотесты воспринимаются как обременение: что-то скучное, унылое и совершенно не нужное. С уверенностью,  что вместо тестов лучше заняться «настоящим»  кодом, некоторые разработчики решают не тратить на них время… и тратят его в два раза больше, когда впоследствии приходится ковырять неожиданно возникшие ошибки. Факт: в долгосрочной перспективе именно тесты становятся фундаментом стабильности, а любое изменение без них превращается в настоящую игру с огнём — особенно в активно развивающемся проекте, когда каждый новый релиз может полностью сломать старую логику.

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

Для создания такой защиты отлично подходит Go. Минимализм его языка и встроенные инструменты делают написание тестов лёгким и естественным процессом. В нём совершенно нет лишней обвязки — только вы, функция и проверка её поведения.

Читать далее

Information

Rating
3,840-th
Registered
Activity