Обновить

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

Юзабилити‑тестирование без иллюзий, или почему технических тестов недостаточно?

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

Знакомая история: команда полгода шлифовала функционал, тестировщики уничтожили все баги, а пользователи уходят. Аналитик разводит руками, поддержка задыхается от тикетов, маркетинг угрожает продакту, а продакт – дизайнеру. В это время CFO считает расходы и грустно вздыхает.

Больно видеть, как много появляется на рынке таких продуктов, прошедших технические проверки и проваливших испытание пользовательским опытом. Идеально работающих, но никому не нужных. Что делать, чтобы не войти в их число?

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

Сепаратор для логов. Сжимаем логи для контекста LLM без потери читаемости

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

logzip — утилита для сжатия логов перед анализом в LLM. Вместо того чтобы отправлять в Claude/GPT сырые 10 МБ лога, мы сжимаем его до 3.4 МБ (−58%), сохраняя полную читаемость и видимость ошибок. Статья рассказывает о проблеме (Lost in the Middle, переплата за мусорные токены), архитектуре на Rust, алгоритме Recursive BPE и реальном ROI: −$2,070 в год на API.

Проект open source (MIT), интегрирован с Claude Desktop через MCP.

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

Рефакторинг. Что нужно понять в первую очередь

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

Если начать читать книгу Марина Фаулера «Рефакторинг. Улучшение проекта существующего кода» в первый раз, то для программиста с небольшим опытом можно легко запутаться в том, что же сделать в первую очередь в своей программе чтобы навести там более-менее порядок или чтобы не допустить беспорядка если программа еще не написана. Т. к. рефакторингов там очень много, и чтобы их как следует освоить нужны годы, а программу нужно написать сейчас. Опишу здесь самые главные рефакторинги, без которых не обойтись.

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

Cursor всё сломал, но виноват не Cursor: как сжатие контекста превращает AI-агентов в бюро несчастливых случаев

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

Николай Гусев · 29 апр в 12:00 · Старший инженер внедрения, Группа Астра

«NEVER FUCKING GUESS! - и именно это я и сделал. Я угадал, что удаление staging volume через API будет ограничено staging-окружением. Я не проверил. Я не читал документацию Railway.»

- AI-агент Cursor на Claude Opus 4.6, письменное признание после удаления production-базы PocketOS

Привет, меня зовут Николай, я 23 года в DevOps, последние несколько лет - внедряю продукты Группы Астра. И за последний год я наблюдаю, как индустрия повторяет одну и ту же ошибку снова и снова: она продаёт AI-агентов как решение, а на деле продаёт проблему.

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

Что такое однобитные и тернарные нейросети

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

Итак, только вычислительная часть обучения пятой версии ChatGPT обошлась в $500 миллионов. А вот уже полные затраты с исследованиями, данными и экспериментальными прогонами - от $1.25 до $2.5 млрд по разным оценкам. И речь пока именно о старте новой линейки, которая релизнулась чуть больше года назад. Далее - сервер с восемью H100 стоит от $270K до $450K, и это не считая сети, охлаждения и инфраструктуры. И это все при том, что 90% параметров большинства нейросетей - числа вроде 0.0003 или -0.0007, которые несут минимум полезной информации, но хранятся как полноценные 16-битные числа с плавающей точкой.

Содержать нейросеть - задачка весьма дорогая. Отсюда и вырос целый класс исследований - как сделать нейросеть, которая думает почти так же хорошо, но весит в 10 раз меньше и не требует GPU за $10K? Однобитные и тернарные сети - один из ответов на этот вопрос. 

Привет, дорогой наш ХАБР! Сегодня команда Exnode постарается рассказать, насколько, собственно, реальны однобитные LLM.

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

Я устал от Duolingo и написал себе AI-репетитора. Go, Clean Architecture, 4 LLM-модели — и вот что из этого вышло

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

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

Duolingo учит меня заказывать яблоки, ChatGPT-чат отлично объясняет грамматику - но не помнит, что я разбирал Present Perfect в среду и опять путаю его с Past Simple в пятницу.

Я хотел простую штуку:

написать модели «давай сегодня про багтрекеры»;

получить чат на 15 минут;

а в конце - три новых слова, которые она же мне и подобрала по уровню B1.

Чтобы завтра эти слова всплыли в упражнениях.

Через месяц получился Lexis:

Go · Clean Architecture · 4 LLM-модели · SSE-стриминг · JWT rotation + reuse detection

MIT, открытый репозиторий.

В статье - три инженерных якоря, которыми я доволен:

Pluggable AI-провайдеры через интерфейс из трёх методов.

SSE вместо WebSocket для стриминга AI-ответов.

JWT rotation + reuse detection как production-ready стандарт, а не «потом перепишем».

Плюс честный список того, что ещё не готово.

Показать архитектуру
Всего голосов 19: ↑15 и ↓4+14
Комментарии8

Конфигурационный аудит веб-сайта с Termux на android за 15 минут. curl, ssl, dig — без взлома и без root

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

Анализ публично доступных HTTP-ответов и DNS-записей без аутентификации и активного вмешательства. Проверке подвергается только внешняя конфигурация: HTTP-заголовки, TLS/SSL, DNS, открытые порты.

Уязвимости не эксплуатируются, нагрузки на сервер нет.

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

Обзор серверного ускорителя NVIDIA Tesla V100 16 Gb в корпусе от RTX 4090: Часть 1 — Внешний вид, установка и настройка

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

Обзор серверного ускорителя NVIDIA Tesla V100 16 Gb в корпусе от RTX 4090: Часть 1 - Внешний вид, установка и настройка

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

Дерево решений vs граф работ: как я объединила Data Science и JTBD в одном проекте

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

Небольшой мысленный эксперимент на стыке машинного обучения и продуктового менеджмента. О том, почему одна и та же задача «определить, что нужно клиенту» может выглядеть по-разному со стороны product'а и data scientist'а. Разбор на примере корпоративного ДМС, где у одного контракта сразу три стейкхолдера с разными работами.

Вводная: почему эта тема вообще возникла

Я много лет проработала начальником управления аналитики в страховой компании, а сейчас прохожу курс Ивана Замесина по Advanced JTBD. В какой-то момент на воркшопе меня зацепила структура, которую он назвал «графом работ» — и я поймала себя на мысли, что она похожа на знакомую мне из Data Science модель. Только с противоположным назначением.

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

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

Как оценить свою компанию перед разговором с инвесторами

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

В данный период своей жизни я пытаюсь создать свой стартап. Но никакой стартап не будет существовать без инвестиций. Возможно, если бы за душой было несколько лишних миллионов долларов, то, возможно обошелся бы и своими силами. Но имеем что имеем. Сразу хочу рассказать немного о себе. У меня за мою жизнь уже было несколько стартапов, один из которых дошел до третьего раунда инвестиций в миллион долларов. Приятные ощущения, работающая компания, но кризис.com‑ов решил все иначе, к сожалению. Были еще небольшие разные стартапы, на которых получалось тоже немного заработать. Это я к тому, что опыт какой никакой все‑таки есть. И каждый раз, в каждом своем проекте всегда я слышал одни и те же вопросы от программистов в своей команде: «Зачем нам вообще пилить MVP?», «А сколько денег нам дадут?», «И что, а зарплаты не будет что ли?» Когда я им отвечал честно, что первые инвестиции не про заработок, то ответ мой их все время расстраивал, ведь денег хочется прямо здесь и прямо сейчас. Прежде чем продолжить, то думаю, что стоит рассказать вам о том, кто же такой бизнес ангел для стартапа. Зачастую, если вы небольшая молодая и зеленая компания, у которой в лучшем случае есть какой‑то прототип или минимально рабочий продукт, то всяким большим дядям из больших и богатых фондов вы не интересны, они не видят в вас реальную выгоду, не видят реальных клиентов (которых обычно даже и нет на начальных этапах), не видят то, куда все ваши фантазии могут их привести. Но вы можете найти бизнес ангела, который поверит вам и поверит в вашу идею. Он дает вам начальный капитал, с которого вы уже сможете стартовать и начинать развивать свой проект.

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

Почему ни ИИ, ни обычный учитель английского не определит уровень CEFR (от A1 до C2)

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

За последний год появилось множество видеороликов и статей по использованию нейросетей для изучения английского языка. Очень часто авторы, среди которых попадаются и «дипломированные» учителя, в очень немногочисленных и расплывчатых промптах‑инструкциях просят ИИ ограничиваться каким‑то уровнем CEFR, от A1 до С2. Как ни странно, никто из этих авторов даже не потрудился изучить, понимают ли ChatGPT, Gemini, Claude, Grok, что входит в конкретный уровень, а что — нет. Как это можно проверить?

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

От Infinispan до Postgres на 1 ТБ: эволюция кэша поиска отелей

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

Всем привет! Хочу рассказать, как мы проектировали кэш поиска отелей и почему за полтора года прошли путь от Infinispan к managed Redis а затем к Postgres. По стеку java-21, spring-boot-3, 1 вендор отелей, расчетная нагрузка 1000 RPS и 10M запросов в сутки.

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

Монорепозиторий — стрем или норм?

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

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

И в этот момент код перестаёт быть инженерной задачей. Он превращается в бесконечное тушение пожаров.

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

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

Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения

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

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

Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно находится за интерфейсом.

В какой-то момент я поймал себя на мысли: я каждый день пользуюсь мессенджерами, но плохо понимаю, как они устроены внутри. Окей, JWT, WebSocket, PostgreSQL, Redis — это понятно. Но что технически означает фраза “end-to-end encryption”? Как сервер доставляет сообщения, если он не должен их читать? Где живут ключи? Что хранится в базе? Что происходит, если у пользователя два устройства?

Решил разобраться через практику. Написал мессенджер с нуля. Назвал Chaos Messenger.

Сразу честно: криптографическую часть я изучал вместе с Claude и ChatGPT — читал спецификации X3DH и Double Ratchet, разбирал примеры, задавал вопросы, пока не сложилась цельная картина. Frontend тоже делался с активной помощью ChatGPT: я backend-разработчик, React для меня не основная среда. Но архитектура, backend, интеграция WebCrypto, модель конвертов, хранение сообщений и принципиальные решения — мои.

Для меня AI здесь был не заменой понимания, а инструментом — примерно как документация, Stack Overflow и ревью коллег. Без понимания threat model и архитектуры такой проект всё равно не собрать.

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

Стек: Spring Boot 3, React 18, WebCrypto API, PostgreSQL, Redis, WebSocket/STOMP, Prometheus, Grafana.

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

Удаленное управление стройкой за 3 500 км: нулевой цикл, смета и ошибки планирования

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

Я готовил участок под модульный дом в тайге, находясь за 3 500 км от объекта. Нулевой цикл занял четыре месяца и стоил около 2,8 млн ₽ еще до первого фундаментного блока. В статье разбираю, как искал землю, делал топосъемку, подводил электричество, организовывал подъезд и контролировал подрядчиков удалённо – с цифрами, ошибками и выводами по планированию. 

Меня зовут Самир. Я не строитель и не инженер, а маркетолог, поэтому подходил к стройке как к своего рода удаленному проекту: с подрядчиками, сроками, бюджетом и рисками. Главным ограничением было сохранить участок в кедровой роще – разместить дом между деревьями и минимально вмешаться в лес. 

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

IaaS без buzzwords: почему технологические компании теряют клиентов из-за собственных текстов

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

Последние несколько лет в рамках своей работы в коммуникационном агентстве «ЛАМПА» я  активно занимаюсь  пиаром  IT-бизнеса: облачные провайдеры, инфраструктурные продукты, ИБ-вендоры, стартапы на разных стадиях. За это время насмотрелась на сотни корпоративных сайтов, пресс-релизов и экспертных статей, могу с уверенностью назвать главный парадокс рынка: компании, которые разрабатывают сложнейшие IT-продукты, нередко оказываются совершенно беспомощны в том, чтобы объяснить, зачем они нужны. Потенциальный клиент заходит на сайт, читает первый абзац, ничего не понимает и уходит. Даже если сам продукт качественный, удобный и решающий бизнес-задачи, текст не объясняет, почему продукт нужен именно ему прямо сейчас.

Откуда берется облако из buzzwords (модных слов и сложных терминов) 

Посмотрите на главные страницы большинства российских облачных провайдеров, и вы увидите удивительное единообразие: «надежная масштабируемая инфраструктура», «высокая доступность», «гибкое ценообразование», «инновационные решения для цифровой трансформации вашего бизнеса». Если убрать логотипы, вы, скорее всего, не отличите один провайдер от другого. Дело не в случайности и не в лени конкретного копирайтера. Это системная болезнь отрасли, у которой есть понятная причина: технические специалисты, которые пишут или согласовывают тексты, говорят на языке архитектур и стандартов, им кажется, что «IaaS с SLA 99,982%» уже достаточно понятно и убедительно. В то же время маркетинговые команды, насмотревшись на западные тексты корпоративных ИБ-вендоров, копируют их интонацию и специфический новояз, в котором каждое слово звучит внушительно, но не несет конкретного смысла. А у многих PR-специалистов, занимающихся коммуникациями таких компаний, существует страх сказать что-то конкретное и ошибиться, поэтому им кажется, что гораздо безопаснее писать расплывчато. Но расплывчатые тексты не запоминаются.

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

Celery Autoscale: что в лоб — то по лбу?

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

Celery популярен. Модель prefork работает по умолчанию. Autoscale смотрится неплохим вариантом для любого воркера.

Идея посмотреть, как выглядит механизм изнутри родилась давно, когда по работе сталкивался с проблемами у клиентов в отложенных задачах, но никаких артефактов или задокументированного аномального поведения не было. Это стартовая статья об архитектуре, моделях и масштабировании Celery.

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

Моки без боли

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

Моки — достаточно крутой инструмент, если использовать его правильно.

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

И я не буду здесь спорить о терминологии — в этой статье я буду называть все тестовые дублёры «моками». Примеры будут на Scala, но моки в других языках работают похожим образом, так что боль универсальная. Как и решение — об этом в статье.

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

Как я собрал Telegram-бота и игру с Codex

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

Я поставил себе два челленджа.

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

Второй — попробовать сделать полноценную игровую механику, причем не просто UI-игрушку, а что-то с 3D, сценой, камерой, эффектами и состояниями персонажей. Я не разработчик в классическом смысле, поэтому для меня это был хороший способ проверить, насколько далеко можно уехать с Codex, если у тебя есть продуктовая голова, дизайн-насмотренность и нормальное понимание, что именно ты хочешь получить.

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

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

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

Гибридные цифровые двойники: почему производство обогнало проектирование

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

Автор: Александр Никулин, архитектор цифровых двойников ГК "ПЛМ Урал"

Статья посвящена анализу причин отставания проектирования от производства во внедрении гибридных цифровых двойников (ГЦД). Приведена реализация ГЦД электродвигателя на единой платформе. Отмечено, что ключевым барьером является отсутствие нормативной базы и экономических стимулов для использования ГЦД как доказательной базы при сертификации. Сделан вывод о риске потери конкурентоспособности российских разработчиков сложной техники.

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

Факт 1.  Максимально циничная и максимально честная фраза, услышанная мною от одного из топ-менеджеров компании Siemens. В переводе на русский она звучит как «Деньги все расставляют по своим местам».

Факт 2.  Более 25 лет на просторах всемирной сети существует шутка, потрясающе точно отражающая реальный мир. В споре двух ученых, один воскликнул: «Вспомни историю человечества! Первая обезьяна, которая взяла в руки палку и начала работать, стала человеком!». Второй же ученый сочувственно взглянул на своего коллегу и сказал: «Не хочу обижать старика Дарвина, но, когда первая обезьяна взяла в руки палку, работать начала вторая».

Теперь вернемся к цифровым двойникам. Четвертая промышленная революция (Индустрия 4.0) постулирует цифровой двойник как основу жизненного цикла изделия. Причем в качестве изделия может выступать как физический объект, так и технологический процесс, логистический процесс и даже конкретный индивид. (да-да, цифровой двойник клиента уже реальность: имитация поведения, предпочтений и реакций на внешние воздействия в реальном времени. Все уже используется для вашего… разумеется удобства).

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