Или как один лотерейный билет превратился в несколько сотен требований, десятки интеграций и пять месяцев Discovery.
Когда мне предложили заняться разработкой с нуля цифрового сервиса Альфа‑Мании, я была уверена, что понимаю задачу. Что может быть проще? Клиент открывает мобильное приложение банка, выбирает лотерейный билет, оплачивает его, ждет розыгрыш и, если цифры в лотерейном билете совпали — получает выигрыш. На первый взгляд всё выглядело как вполне стандартный цифровой продукт: несколько экранов мобильного приложения, интеграция с партнером, немного аналитики, немного CRM‑коммуникаций и привычная продуктовая работа.
Я никогда так не ошибалась.
Через несколько месяцев я уже обсуждала особенности прогрессивной шкалы НДФЛ, разбиралась в требованиях к онлайн‑кассам, участвовала в проработке процессов идентификации победителей и спорила с коллегами о трактовке отдельных пунктов законодательства о лотереях.
При этом ТЗ всё ещё не было.
Наверное, это первый проект в моей карьере, где мы сознательно не писали бизнес‑требования почти пять месяцев. Но не потому что не успевали или не хватало ресурсов, и уж точно не потому что не умели писать BRD. Просто довольно быстро стало понятно, что писать требования к тому, чего ты сам пока не понимаешь — самый быстрый способ построить неправильный продукт. Поэтому вместо того, чтобы открывать шаблон BRD, мы начали исследования.
Именно тогда я поняла, что самые сложные продукты начинаются не тогда, когда команда не знает решения, а тогда, когда она практически ничего не знает про предметную область. Об этом я и расскажу. Эта статья про discovery. Про исследования, важность которых часто недооценивается.
Читать далееБывает так: есть фулстек проект, и в нём всё хорошо. Откуда-то есть сквозные типы (tRPC, генерация из OpenAPI), есть авторизация, есть основной функционал. А потом вы решаете добавить реалтайм: уведомление о новом посте в ленте, чат между пользователями, интерактивную доску. И появляется целый новый слой абстракций, в котором надо заново изобрести всё, что в проекте уже есть, только на новый лад. И дальше поддерживать две разные системы.
В своём фреймворке Point0 я добавил четыре новых реалтайм-поинта (структурные единицы наравне со страницами, лэйаутами, квери, мутациями): канал, спейс, клиентский хэндлер, серверный хэндлер. На них собирается практически любая реалтайм-функциональность, кода получается мало, и читается он интуитивно. Эти поинты несут те же свойства, что и все остальные:
код сервера и клиента живут в одном файле, компилятор вырезает клиентский код из серверной сборки, а серверный из клиентской
типизация сквозная и выводится из дженериков самого фреймворка, без генерации типов
Под катом покажу на примерах, как это работает, и объясню суть парадигмы, чтобы вы могли собрать любое реалтайм-приложение.
Читать далееМаск анонсировал проект орбитальных ИИ-дата-центров под скромным названием AI Sat Mini. Заявленная цель — вывод 100 ГВт компьюта (вычислительной мощности) в год, что потребует вывода на орбиту тысяч тяжелых спутников. Это крайне затратный процесс, поэтому предлагается перенести сборку на Луну и отправлять аппараты на орбиту с помощью электромагнитной катапульты: низкая гравитация и отсутствие атмосферы кратно упрощают запуск.
Однако производство современных чипов на Луне невозможно. Нанолитография требует сверхчистых стерильных сред, бесперебойных поставок редких химических реагентов и колоссальных объемов очищенной воды. Производственная цепочка распределена по миру и жизнеспособна только когда миллиардный глобальный спрос окупает триллионные затраты на полупроводниковые фабрики. Попытка перенести процесс на Луну приведет к экономическому коллапсу.
Однако для всей идеи это не приговор. Да, вычислительные чипы важны, но они составляют малую часть от общей массы. Основной вес аппарата приходится на силовые каркасы, радиаторы охлаждения и солнечные панели. Их конструкция относительно проста, а значит, плавить лунный реголит для отливки корпусов и раскатывать подложки панелей можно прямо на месте, доставляя остальные компоненты с Земли для финальной сборки.
Здесь возникает главный вопрос: насколько вообще реалистичен такой подход и есть ли в нем практический смысл, если разделить производство на лунную и земную части?
Этому вопросу и посвящен цикл статей. В нем мы последовательно разберем ключевые узлы спутниковой платформы. Начнем с солнечных панелей — основного источника энергии. Затем рассмотрим радиаторы охлаждения, силовой корпус, гиродины для ориентации, двигательную установку и другие системы.
Читать далееJ1939 это высокоуровневый проприетарный протокол используемый поверх CAN. Появился в середине 198х годов. Этот протокол работает в груpовых автомобилях: автобусы, грузовики, самосвалы, фуры, БелАЗы и прочее. Протокол J1939 принципиально не применяется в легковых автомобилях.
В автомобилях много датчиков: напряжения, температуры, давления масла, датчики дальномеры для помощи парковки, радары круиз конторля, давление в шинах. Все эти данные передаются в блок управления двигателем по протоколу J1939.
По J1939 происходит управление трансмиссией, генератором, двигатели, форсунками, тормозами и прочим.
Читать далееВ предыдущих постах мы подробно разбирали каждый слой: CPU, арифметику, скриптовый интерпретатор, оборудование. Вот, что окончательный отчёт о синтезе Quartus сообщает обо всех них: в готовой архитектуре используется 1593 логические ячейки из доступных в EP2C5 4608 (35% чипа) с 594 выделенными логическими регистрами и 17 блоками памяти M4K. Сам модуль CPU занимает 1173 из этих логических ячеек и 400 регистров. Остальная логика отдана периферии: драйверу ЖК‑дисплея (154 логические ячейки), сканеру клавиатуры (97), интерфейсу термопринтера (64), таймеру CTC (49) и аппаратному PRNG (20). 12 блоков памяти M4K занимает ROM микрокода (49152 бит: это полная программа калькулятора), 2 блока — ROM скриптинга (8192 бита), 1 — ROM BCD‑констант, 1 — таблица поиска для BCD‑умножения внутри CPU и 1 блок — ОЗУ. Меня это очень радует: полнофункциональный научный калькулятор уместился в 35% небольшой дешёвой FPGA.
Читать далееВместо обычной команды разработки над проектами работают 10+ ИИ-агентов: они сами создают карточки, спорят друг с другом и двигают задачи по доске. Вот как директор компании всем этим управляет.
Читать далееКомпании годами ищут «золотой стандарт» тестирования, один набор правил для любого проекта. Такого стандарта нет и не появится. Одинаковые правила либо задушат лёгкий проект дорогой инфраструктурой, либо оставят критическую систему с серьёзными уязвимостями.
Как выстраивать процессы контроля качества под конкретный продукт, рассказала Светлана Иванова, ведущий инженер по автоматизации тестирования в М.Тех (технологическое подразделение М.Видео).
Читать далееЯ представляю, насколько поверхностным может казаться такой текст на Хабре, но по личному опыту могу сказать: огромное количество суперпрофессиональных, талантливых IT-бизнесменов, программистов и даже дизайнеров, не знают, как снимать скриншоты, и мучаются, пользуясь неподходящими инструментами.
Поэтому — гайд по тому, как делать скриншоты, от самых простых, универсальных способов, до сложных, заточенных под специфические задачи инструментов.
Не стесняйтесь его читать.
ДалееВ детстве я учился программированию на старом IBM PC с монохромным зелёным монитором, поэтому давно хотел создать программу для этой системы. За последние пятнадцать лет я написал более чем сотню небольших интро. В последнее время я был не так активен, но потрясающее интро «Rainbow Surf» автора Plex размером всего 16 байт мотивировало меня снова вернуться к старым наброскам и взяться за работу.
Создание этой программы сопровождалось привычными экспериментами. Я развлекался с клеточными автоматами в графике и звуке, а также исследовал трюки sizecoding. В частности: а) полиморфные ассемблерные команды (наподобие add [bx+si],al, имеющую машинный код 0x0000) б) переход в середины команд для экономии байт и многократного использования опкодов. Из сотен мелких экспериментов мне приглянулся один, интересный одним только своим названием.
Когда я дополнял всё это и избавился от лишнего, мне трудно было понять, что же происходит. Я чесал в затылке, глядя на простую формулу, оставшуюся после удаления код‑гольфингом кучи байт. Я и сам не ожидал, что объяснение этих считанных байт окажется настолько глубоким.
В моём интро «M8trix» 2014 года по экрану уже бегали псевдослучайные буквы (в 8 байтах, а потом и в 7), но мне всегда было интересно, как добавить к ним красивый звук. Но хронологически в разработке «wakeup» я сначала занимался звуком. Хорошим подзаголовком к статье мог бы быть «16 байт, превращающие звук треугольника Серпинского в дождь символов из „Матрицы“».
Примечание: на каждом такте времени новая строка треугольника Серпинского а) воспроизводится через динамик б) отрисовывается на экране с шагом 56. Можно ощутить движение, но не увидеть его, потому что оно имеет «ширину» 8192 пикселей, но одна строка символов состоит всего из 80 байт. Если бы экран был гораздо больше, то можно было бы увидеть треугольник. Или если не пропускать пиксели и рисовать и все одновременно, он тоже был бы виден.
Читать далееВ прошлых двух частях (1, 2) было рассказано про найденные с помощью ИИ уязвимости, бэкдоры и недокументированные возможности для свитчей SNR и Huawei. В этой части пойдёт речь о бэкдоре в оборудовании OLT C-Data - операторском оборудовании для подключения абонентов по технологии EPON/GPON. В начале статьи будет описан сам бэкдор, а затем рассказано об особенностях использования ИИ для его поиска.
Читать далееЯ сшил разрозненные карты MMO в один бесшовный мир: игрок выходит из города в пустыню и не замечает, что под ним уже работает другой сервер. А всю рутину картографа — импорт, разметку препятствий, разрезание карт и проверку связей — отдаю ИИ. Заодно проверил, что происходит, если доверить ему игровую графику
Читать далееНапомню что MTProxy — это прокси-сервер для Telegram, который передаёт трафик через выделенный сервер.
Проект MTProxy от lingeniare - не форк, а скрипт автоустановки и настройки. Его цель - упростить жизнь пользователю и предоставить решение - рабочий прокси для Telegram, а не подкинуть задачи - установка, компиляция, настройка.
Читать далее11 августа состоялся выпуск QEMU 11.1.0, свободного эмулятора процессорных архитектур и платформы виртуализации. По данным официального объявления в списке рассылки qemu-devel, в релиз вошло более 3200 коммитов от 285 разработчиков. Это второй функциональный выпуск QEMU в 2026 году после QEMU 11.0, опубликованного в апреле.
Одним из основных направлений развития стала архитектура RISC-V. В QEMU появилась поддержка big-endian для доступа RISC-V к данным: состояние порядка байтов контролируется битами MBE, SBE и UBE, а для моделирования процессоров, работающих только в big-endian, предусмотрено свойство big-endian. При этом выборка инструкций RISC-V по-прежнему остаётся little-endian.
Кроме того, для RISC-V в QEMU 11.1 реализованы:
( читать дальше... )
Держите открытыми две вкладки. В одной — интернет-банк, куда вы залогинены и где на экране висит ваш баланс. В другой — какой-то сайт, на который вы забрели по ссылке из выдачи, ничего особенного. Теперь вопрос, который на первый взгляд кажется надуманным, а на деле упирается в фундамент всей веб-безопасности: что мешает скрипту со второго сайта взять и прочитать ваш баланс из первого?
Читать далее5 августа состоялся выпуск 2.13. 0 консольной утилиты GCLI, поддерживающей API нескольких популярных сервисов хостинга Git-проектов, и позволяет создавать, просматривать и взаимодействовать с проблемами, запросами на слияние, метками и комментариями к ним, проверять состояние CI и конвейеров, искать репозитории и многое другое.
В отличие от GitHub CLI, GCLI поддерживает не только API GitHub, но и API Codeberg, Forgejo, Gitea, GitLab и Bugzilla.
Утилита написана на языке C и распространяется по лицензии BSD-2.
( читать дальше... )
Наверное уже многие знают, что в силу недавно вступивших в ЕС законов, регулирующих использование ИИ, провайдеры LLM обязаны помечать ИИ-сгенерированные тексты. Та же Claude недавно обновила справочную информацию о работе своей помечалки сгенерированного ИИ контента, в том числе и текста. Но в подробности его работы почему-то вдаваться не стала, как и размещать в публичном доступе средства добавления и обнаружения этих самых вотермарок.
Не то чтобы я часто балуюсь текстовым нейрослопом, но сама идея того, что твой текст могут им объявить чисто случайно или в следствии того, что ты отредактировал иишкой его часть, меня не сильно радует. Поэтому в этой статье мы разберемся, как собственно эти метки работают, и как с ними бороться.
Читать далееEncore зародился как фреймворк на Go, и на Go там были написаны среда выполнения, интерфейс командной строки (CLI), парсер и компилятор. Когда мы решили поддерживать TypeScript, логичнее всего было бы написать на TypeScript и среду выполнения тоже, либо достроить к среде выполнения Go какой‑нибудь мостик. Но в итоге пришли к тому, что написали новую среду выполнения с нуля на Rust.
Читать далееСервис жив, CPU в норме, паники нет — а часть запросов зависает на минуты. В async‑Rust привычный стек часто мало помогает: задача могла застрять на блокирующем вызове, мьютексе или просто перестать получать пробуждения.
Разбираем, как отличать эти сценарии в Tokio и куда смотреть, когда отладчик молчит.
Читать далееКогда я говорю руководителям слово «политика», многие отвечают: «Я в эти игры не играю». Я прекрасно их понимаю. Хочется заниматься продуктом, архитектурой, людьми и сроками. Хочется верить, что решения принимаются на основании фактов, а ресурсы получают объективно важные задачи.
Желание понятное, но есть один нюанс. Компания живет по формальным и неформальным правилам независимо от того, замечаем мы их или нет. Если руководитель не понимает, в какой игре оказалась его команда, последствия все равно наступят: у него заберут людей, ему дадут задачи без реального заказчика, команду не позовут на важные встречи. Результат работы, скорее всего, присвоит тот, кто первым о нем расскажет.
Меня зовут Татьяна Костенкова. Я предприниматель, ментор руководителей и ex-CEO IT- и маркетинговой компании. Эта статья о том, как видеть политические процессы в компании и уменьшать ущерб для себя и команды. Я не предлагаю превращать офис в «Карточный домик». Моя цель проще и практичнее: дать тимлиду понимание и приемы, которые помогут не быть съеденным первым.
Читать далее