Представьте, что вы построили неприступную крепость. Стены из титана, рвы с акулами, а стража проходит проверку на полиграфе. Звучит надежно? Да. Только чертежи этой крепости были скомпрометированы еще на этапе проектирования, а ключи от ворот выдает стажер по первому требованию всем без разбора.
В безопасной разработке мы часто совершаем похожую ошибку: фокусируемся на защите продукта (кода, его архитектуры и инфраструктуры), совершенно упуская из виду процесс его создания. Да, методологии вроде STRIDE или PASTA отлично отвечают на вопрос «Как взломают нашу систему?». Но что делать, если угроза кроется не в баге, а в том, как этот баг попал в релиз.
Поэтому мы запускаем цикл статей, посвященных моделированию угроз для процессов разработки. В первом материале разберем, почему защиты кода недостаточно, где классический аудит достигает своих границ и как превратить общие рекомендации в точечный план действий. Без воды, с фокусом на системный подход.
Читать далееБилайн.Продвижение - это маркетинговая платформа для В2В на базе BigData телекома. Такие платформы есть у каждого оператора: МТС Маркетолог, Мегафон Таргет. Сегодня разберу Билайн.Продвижение с точки зрения UX и что бы я делала, если была бы продактом. В этой статье я не буду рассматривать этическую сторону вопроса.
Привет! Меня зовут Маша, я Senior Product Manager и разбираю только те продукты, над которыми сама хотела бы поработать, так как ими пользуюсь, люблю и вижу, где есть потенциал роста. Мне драйвово искать для них решения, которые выводят продукт на новый уровень не только по деньгам, но и по UX и любви пользователей. Мои другие разборы: Как я искала точки роста для «Звука»: догонять рынок или создавать новый? и «Рейтинг ни на что не влияет»: Почему Яндекс.такси выбирает газлайтинг вместо честного UX.
Читать далееРазговор с моделью легко создаёт ощущение движения. За полчаса можно получить несколько вариантов архитектуры, таблицу рисков, тест-план и убедительное резюме для встречи.
Но если после разговора в проекте ничего не изменилось, возможно, движения не было.
Я стараюсь заканчивать такую работу одним из конкретных результатов:
вопросом ответственному участнику;
схемой границ модулей;
контрактом входных и выходных данных;
тестовым сценарием;
записью об архитектурном решении;
статусом «не подтверждено»;
измерением на исходных данных.
В проекте пассажиропотока это привело к разделению ответственности. Один контур проверяет видео, строит временную шкалу, связывает её с телематикой и формирует интервалы-кандидаты. Другой выполняет детекцию, трекинг и определение направления движения.
Читать далееОткрыл список своих ИИ-проектов за два года и не смог ответить, готов ли хоть один. Не «работает ли», работают все три, а именно готов: так, чтобы уйти в отпуск на месяц и не думать. Оказалось, проблема не в дисциплине, а в определении: к ИИ-системам мы применяем definition of done от обычного софта, где готово значит работает во всех случаях. Для вероятностной системы это гарантия вечной беты. Внутри: чек-лист готовности из девяти вопросов, разбор трёх моих живых проектов по нему (все три красные, и ни один не сломан), сквозные паттерны провалов и что я после этого поменял у себя.
Читать далееРазбираем на практическом примере, как в Manticore Search выбрать несколько последних элементов из каждой группы и собрать их в одну строку.
Читать далееПервый тег проекта датирован 22 июля, шестого сентября вышла 1.0. Разница между 0.37 и 1.0 не в коде: 1.0 - это список того, что автор больше не имеет права менять. Что именно попало в замороженный контракт, что осталось снаружи и почему об этом тоже надо говорить вслух, во что обошлась заморозка - 31 переменная окружения переименована за три дня до неё - и что нашла репетиция обновления и отката на копии продовых данных, включая откат, который уходил в краш-луп вместо понятной ошибки.
Читать далееПовесть Стругацких "Волны гасят ветер" содержит лакуны, о содержании которых можно догадываться, но точное их содержание вряд ли знали сами авторы. Написал промпт с описанием задания на реконструкцию этих лакун и предложил его нескольким LLM. Ниже проводится полный текст, выбранный мной из нескольких вариантов. Он приводится без какого-либо редактирования с моей стороны и полностью сгенерирован LLM.
Читать далееВ разных сетях находились десятки K8S кластеров, в сутки создавались и удалялись десятки виртуальных машин и все из этого нужно было конфигурировать. А одним из требований к нашей работе, стало использование, так называемого нами, контролируемого периметра. То есть всем приложениям работающие в нем, строжайше запрещалось взаимодействовать с публичными сетями любым образом, начиная DNS и NTP запросами и заканчивая использованием публичных Docker Registry, APT, PyPI, npm, Helm, Maven и других репозиториев.
Читать далееВ этой статье описан агентный конвейер для полностью автоматизированной разработки учетных бизнес-решений (с веб- и мобильными клиентами) на платформе NodaLogic. Это не вайбкодинг и не ассистент написания элементов конфигурации, а автоматизация полного цикла: от формализации ТЗ до написания и прохождения тестов. Используя стандарты и знания методологии предметной области конвейер проводит анкетирование, создает и согласует ТЗ и схему решения, проводит защиту и согласование с использованием интерактивной схемы, опираясь на стандарты и паттерны разрабатывает прототип, проводит семантический анализ соответствия ТЗ, пишет наполнение, придумывает и пишет сквозные runtime тесты, выполняет их и проверяет как ведет себя учетная система и соответствует ли она задачам по функциональности и производительности. При этом, полученный результат в виде конфигурации (для серверной и мобильной платформы одна конфигурация) я называю продуктом, только не тиражными типовыми решениями, а их альтернативой – генерируемыми продуктами. Почему продуктами? Об это детально в статье.
Читать далееДокументация Microsoft говорит, что ассистент работает в границах прав самого пользователя, и порог там - право просмотра. Обещание выполняется буквально, и вся тяжесть переезжает на исходные настройки: общий доступ в SharePoint по умолчанию стоит в положении “the most permissive option”. Предотвращение accidental oversharing вынесено в руководстве “Get ready for Microsoft Copilot with SharePoint Advanced Management” отдельным шагом. Инструменты оттуда в статье разобраны по одному: сто сайтов и окно в 28 дней у отчёта EEEU, выбор между “закрыть доступ” и “убрать из выдачи, права не трогая”. И отдельно - предел того, что подтверждено про метки чувствительности. Цитаты сняты с четырёх страниц learn.microsoft.com живыми запросами 4 сентября 2026 года.
Где границы у инструментов разбора правПроблема любого онлайн-движка исполнения кода в том, что он должен принять чужой код и выполнить его как есть — а этот код может оказаться вредоносным. Поэтому нужно спроектировать всё так, чтобы при запуске кода мы могли свести к минимуму негативные последствия, которые «враждебный» код может вызвать. Например, если кто-то попытается вызвать команду вроде rm -rf /, то это не удалит нам всю систему.
Читать далееЖанр твёрдой научной фантастики — наверное, самый неблагодарный. Нужно собрать колоссальный объём информации, систематизировать, проверить достоверность, а потом наложить на это всё какой-никакой, но хоть сколько-нибудь логичный сюжет. Примерно год назад я решил пройти этот тернистый путь. Уцепился за простую идею: а что если через 400 лет после полномасштабной ядерной войны — как будет выглядеть Россия?
Я инженер-конструктор электроники по образованию и много лет работаю программистом. Поэтому всей полноты научных знаний, необходимых для создания полноценной модели постъядерного мира, у меня не было. Выход один — вооружиться гуглом, ИИ (куда уж без него) и попробовать детально разобрать вопрос. Будучи большим поклонником Fallout, я взялся за работу с большим энтузиазмом. В процессе подготовки материала ухватился за идею выживания в таком сеттинге — это лишь добавило трудностей в проработке мира.
Хочу сразу дать спойлер: суровые радиоактивные пустоши, наполненные ядовитой природой, мутировавшими монстрами, смертельными аномалиями, где выживают уцелевшие остатки человечества (которое тоже местами мутировало) — всё это не более чем красивая (или, наоборот, страшная) сказка. Fallout спустя 400 лет после ядерного апокалипсиса мы не увидим. Выживание человечества — отдельный вопрос, которого я коснусь в следующих постах, но и тут всё гораздо прозаичнее. Не буду упоминать вселенную «Метро-2033» — там о научной твёрдости никогда и не шло речи.
Результат моих исследований вылился в небольшую книгу, абсолютно бесплатную. Ссылка будет дана в конце, если вдруг кому-то станет интересно.
Читать далееЯ взял за основу популярную опенсорсную библиотеку парсеров аниме-плееров, запустил её — и получил от Kodik 500 Internal Server Error. Не «токен протух», не «IP заблокирован», а именно 500 на каждый запрос. Разбор занял вечер, а причина оказалась в одном символе: библиотека отправляла параметр ref пустым, а сервер требует его заполненным и раскодированным.
Дальше выяснилось, что это не единичная поломка, а норма жанра. Один плеер полгода назад переехал на другой формат страницы. Другой отвечает бесконечным редиректом на самого себя. У третьего домен просто увели — сейчас там индонезийский интернет-магазин, а не аниме. Четвёртый прячет ссылки в WebSocket из обфусцированного бандла на 600 КБ, и его я честно не осилил.
Под катом — разбор восьми плееров: как каждый отдаёт видео, где именно ломаются существующие парсеры и что из этого следует, если вы пишете что-то похожее. Библиотека получилась побочным продуктом и лежит в открытом доступе.
Читать далееТри года назад я наткнулся на Zettelkasten — метод ведения заметок, где каждая мысль живёт в отдельной заметке и ссылается на другие связанные записи.
Примерно как Википедия: читаешь одну статью, внутри куча ссылок, по ним переходишь дальше. В итоге получается целая сеть знаний — граф связей.
Наверное, самый известный инструмент для ведения этого в цифре — Obsidian.
Идея меня тогда очень зацепила. Особенно обещание, что со временем Obsidian станет твоим «вторым мозгом». Звучит соблазнительно. Когда постоянно что-то делаешь, читаешь, учишься, работаешь, в какой-то момент начинает казаться, что в голову просто ничего больше не помещается. И идея вынести часть памяти во внешний инструмент выглядит очень привлекательно.
Я попробовал. И, если честно, у меня получилась фигня. Я не считаю, что Зеттелькастен — плохой метод. Он просто подходит далеко не для всего.
Например, когда я проходил курс по работе, такой формат действительно отлично сработал. Материалы в курсах специально разбиты на смысловые блоки, темы продолжают друг друга, термины связаны между собой. Можно открыть одну заметку, перейти в соседнюю и быстро восстановить контекст.
Как способ вести конспект — отлично! Но обещанного эффекта «второго мозга» я не почувствовал. Я не стал лучше запоминать или глубже разбираться в теме.
При этом Obsidian я продолжал использовать ещё несколько лет. И со временем заметил, что от всей сложной системы связей у меня осталась одна привычка: Один день — одна заметка
Читать далееКогда я получил ключи от своей квартиры, было непонятно, будут у меня обои или крашеные стены, мебель на заказ или модульная мебель. Но одно я знал точно - я хочу умный дом. При этом, пока я ждал ключи, почти 1,5 года, мое понимание того, что такое умный дом, очень сильно менялось.
Сейчас проектирование дошло до электрики и автоматизации, поэтому решил зафиксировать текущую версию умного дома и собрать обратную связь до того, как провода окажутся в стенах.
На Хабре много крутых ребят, которые уже строили свои умные дома и успели набить на этом шишки. Поэтому одна из целей статьи - обсудить мои решения и собрать обратную связь. А вторая - показать, насколько далеко вообще можно зайти с автоматизацией за разумные деньги. Когда я только начинал об этом думать, то во многом исходил из привычных сценариев и даже не представлял, сколько всего можно сделать действительно «умным».
Читать далееЯ незрячий и пользуюсь NVDA. После покупки ExeGate LLB-3000 выяснилось, что работать с PowerManagerII с клавиатуры и на слух неудобно. Вместе с Codex я разработал дополнение: разобрали графические кнопки, наладили навигацию, добавили текстовые показания и проверили управление. Рассказываю, как устроено решение и что в этой работе делал я.
Как устроено дополнениеЯ отдал Claude Code свой Reddit и на несколько дней почти перестал участвовать в процессе. Он сам искал треды, писал комментарии, спорил с людьми и набрал больше 1000 кармы.
Результаты меня радуют и пугают одновременно.
Читать далееВ статье рассматривается архитектурная гипотеза-прототип, предлагающая распределение сущностей по разным слоям и реализацию сквозного связывания между элементами различных canvas-пространств. Через призму теории о: компонентных систем управления контентом (CCMS) и баз знаний нового поколения (LLM-wiki), решая проблему масштабирования визуальных связей в интерфейсах.
Читать далееНебольшая ретроспектива: экзамен на права в Грузии, муравьи на моей футболке и странное открытие, что вещь, которую я только что получил, мне больше не нужна.
Фото: Aleksandr Kozlovskii, Unsplash
Я научился водить раньше, чем мне это разрешили.
Отец сажал меня себе на колени и давал держать руль. Машина была на механике, и педали оставались за ним, — но руль был мой. Я не притворялся. Я делал половину работы и прекрасно понимал, какую именно.
К 2013 году у меня появились и педали. Отец давал мне вести на трассе между Мцхетой и Гори — настоящий асфальт, настоящее движение, но никогда не город.
У большей части этих поездок была цель. Отец любил рыбалку и ездил часто, и одним из мест было озеро Надарбазеви, как раз по той дороге. Так что я возил туда его и маму — девятнадцатилетний парень без прав и двое родителей в машине. Это до сих пор та езда, которую я помню отчётливее всего, и дело не в дороге.
Он был очень хорошим водителем. Мне кажется, большинство людей его поколения были такими — так, как трудно объяснить моим ровесникам: они учились на худших дорогах, в худших машинах и с куда меньшим правом на ошибку.
Спустя три года, в 2016-м, я наконец пошёл получать документ, который разрешал мне делать то, что я и так уже делал.
Читать далееПеред сделкой с альткоином мне обычно нужно быстро ответить на два вопроса: есть ли у цены выраженное направление и происходит ли в монете что-то заметное прямо сейчас. Смотреть для этого десяток страниц на разных биржах неудобно, поэтому я собрал небольшой сканер.
Пользователь отправляет тикер и получает три результата: направление активность и итоговый статус.
Читать далее