Всем привет! В этой статья я расскажу обобщенно про внутреннее устройство SHA-2, SHA-3, а также про другие примитивы, относящиеся к хеш-функциям: XOF, TupleHash, cSHAKE, Argon2.
Именно SHA-2 и SHA-3 сейчас являются самыми популярными и широко используемыми примитивами, которые используются для реализации безопасных протоколов и других криптографических примитивов.
Читать далееГод я закрывал монитор куском вуали на ночь после перехода на Wayland, т.к. из коробки GNOME, в отличие от KDE, не умеет управлять внешними дисплеями.
Решение нашлось в расширениях для работы с DDC/CI.
В статье я детально сравнил 4 варианта: удобство интерфейса и архитектуру под капотом (почему фоновый сервис отзывчивее вызовов CLI), популярность, активность разработки и прочее.
Также приложил сводную таблицу с плюсами и минусами и рассказал, почему в итоге стал контрибьютором одного из проектов, а не сделал форк.
Сорвать вуаль...За 10 дней мы сделали MVP тренажёра переговоров «Вершина» для Хакатона Мэра Москвы (Задача № 9 от ОЭЗ «Алабуга»). Нас было пятеро, до конкурса мы не были знакомы. В финал мы не вышли. Зато у нас осталось работающее мини‑приложение для Telegram, и я хочу рассказать, как оно устроено. Меня зовут Янина Шкуропат и я отвечала за продукт в команде.
Собеседнику в нашем тренажёре вам можно соврать. Сказать, что у вас есть другое предложение, которого нет. Надавить ультиматумом. Уступить два раза подряд и посмотреть, что будет. В реальных переговорах такие эксперименты стоят денег и отношений. В тренажёре — это один раунд переговоров с ИИ‑персоной.
Модели при этом соврать вам нельзя. Она не может назвать чужое число, раскрыть скрытый факт раньше времени или согласиться с тем, что вы не предлагали. Эта асимметрия заложена в архитектуру.
Читать далееКогда мы говорим о дизайне, часто представляется понятная цепочка: команда дизайна придумала красивый и удобный сценарий, инженеры его реализовали, пользователь получил классный опыт.
В реальности все куда запутаннее и интереснее.
Дизайн автомобиля – это постоянный разговор, а иногда и спор между тем, что хочется дать пользователю, тем, что может «железо», тем, что успевает разработка, и тем, что можно выпустить в рамках бюджета, сроков и сертификационных требований.
С кем и о чем чаще всего спорят дизайнеры и почему это не конфликт, а необходимая часть работы над продуктом, расскажу в этой статье.
Читать далее«Оборот» – карточный рогалик про то, как маленькая команда с агентами доживает до первого большого запуска. Его собрали агенты за четыре дня: 28 выпусков с 13 по 16 октября. Человек в это время ставил задачи и играл руками. На полноценный плейтест каждой версии людей бы не хватило, поэтому баланс держал бот: перед каждой правкой он отыгрывал сотни сезонов.
Ниже – как это было устроено: какое число считали целью, где бот проигрывал и какие правила поменялись по его логам.
Читать далееВы внедрили ИИ-агента в свою работу. Он показывает информацию по счетам, формирует сводки, разбирает входящие сообщения и делает ещё много полезного. Но на каком уровне автоматизации вы находитесь? И что делать дальше?
В этой статье разберём, что такое ИИтизация, как внедрить ИИ-агента в рабочий процесс и почему следующий шаг - не обязательно более умный агент, а движение в сторону AI-Native-подхода к управлению процессами. В своей практике я выделяю 5 уровней ИИтизации (красивая формулировка для обозначения автоматизаций с помощью ИИ), все примеры рассмотрим на одном простом процессе - обработке входящих заявок.
Узнать 5 уровнейПочти каждый наш UI-тест начинался одинаково: старт, email, OTP, пароль, создать пасскод, повторить пасскод. Шесть экранов, около 26 секунд, и ни один из этих тестов не проверял логин. Он был просто предусловием.
Совет «делай предусловия через API, а не через UI» знает каждый, кто писал автотесты. Мы проверили его на трёх кандидатах в Android-сьюте на реальных устройствах. В одном месте API-вариант оказался на 29% медленнее UI. В двух других вышло заметно быстрее: логин ускорился с ~26 до ~7 секунд, а суммарное время 400+ тестов сократилось на 27%.
Дальше расскажу, почему так получилось, как устроен программный логин внутри процесса приложения, как мы мерили (и где ошиблись в замере сами) и по какому правилу теперь решаем, что переводить с UI.
Читать далееМногие специалисты, даже опытные, не умеют просить повышение — просто потому что никто никогда не учил вести переговоры о деньгах. Зато все умеют выполнять свои рабочие задачи: писать код, решать сложные задачи и работать с непонятными требованиями, и медленно, но верно повышать квалификацию.
Но как только дело доходит до разговора с руководителем о зарплате, начинается смятение и ожидание удобного момента. Но само собой ничего не получается, и руководители редко инициируют разговор о повышении первыми.
В статье разберём, как устроены грейды в IT, как понять, что вы готовы к следующему уровню, и как построить продуктивный разговор о повышении.
Читать далееКак попытка пофиксить русификатор для мода к DDLC вылилась в разработку собственного семантического анализатора для Ren'Py со скоростью 77 000 строк за 3.8 секунды, собственным ScopeStack, AST-парсером и LSP-сервером для VS Code.
Рассказываю, почему встроенный renpy lint бесполезен на CI, как неочевидные предиктивные рендеры экранов воруют золото у игроков, почему переменные без default гарантированно убивают сохранения после релизных патчей и как защититься от RCE при распаковке чужих .rpa архивов.
Читать далееЯ сделал бота для Telegram и MAX. Ему пишут обычной фразой: «Египет в ноябре с 10-го ±3 дня на 8 ночей, двое взрослых и ребёнок 7 лет, 4–5 звёзд». Бот находит туры, билеты и отели, а по кнопке следит за ценой и пишет, когда она падает.
В статье — техническая часть: как языковая модель превращает фразу в строгий запрос, как один код обслуживает два мессенджера, как устроено слежение за ценами и какие грабли нашлись в API Слетать.ру и Aviasales. Код на Python 3.12, asyncio, httpx, pydantic, SQLite; живёт в Docker на VPS.
Читать далееВсем привет! Я Дима, Android-разработчик в KTS, и я большой фанат языка Kotlin и библиотеки kotlinx.coroutines.
Здоровый человек может задать справедливый вопрос: зачем нужна очередная статья про корутины, когда есть ИИ? Любая модель моментально расскажет, как написать код с корутинами: где поставить suspend, что передать в launch, какой диспатчер выбрать.
Но чтобы понять, почему корутины устроены именно так, нужна выстроенная последовательность из десятка шагов, где каждый следующий опирается на предыдущий. Не осмыслив их устройство, здоровый человек не сможет понять, почему suspend-функцию нельзя вызвать из обычной.
У меня на это ушло много времени. Я писал рабочий код с корутинами, он работал, и всё это время я не до конца понимал, что происходит под капотом. Понимание пришло, когда я наконец сел и разобрал одну-единственную функцию: suspendCoroutine.
Так что я решил написать цикл статей про корутины, чтобы читателям Хабра было проще прийти к этому пониманию, чем мне. Думаю, он будет полезен и Android-разработчикам, и бэкендерам-котлинистам, и iOS-ерам, причём как начинающим, так и матерым сеньорам.
Читать далееВ прошлый раз я рассказывал, как в одиночку с AI-агентами собрал ERP-платформу на Kubernetes из 30+ сервисов. Эта статья — про её мозг: не «ещё один агентский фреймворк», а продакшн-движок, который год несёт живых клиентов (рекрутинг с AI-интервью, CRM, парсинг-конвейеры, копилот).
Про сам термин «харнесс» на Habr уже писали: это обвязка вокруг модели — цикл, инструменты, память, контекст. Повторять общее не буду, разберу конкретику: как это устроено в коде, какие таблицы, где что ломалось. Лонгрид: сначала единое окно и роутер моделей, потом сам харнесс (определения, прогоны, журнал, инструменты, агенты), в конце — всё вместе на одном живом интервью. Нетекстовые модели (речь, зрение, синтез) — отдельная вторая статья.
Сервис работает на Node, на CPU.
Читать далееДве недели назад я поставил себе инженерную задачу без редакции и без бюджета: сайт должен выпускать по пять материалов в день о том, что произошло в мире LLM, причём каждый материал проверен по первоисточникам, снабжён картинкой, разметкой для поиска и не повторяет предыдущие. Человек в этом конвейере остаётся ровно в одной точке — воротах согласования, где у него десять минут на решение.
Сейчас в журнале конвейера 61 карточка, из них 56 стали страницами на сайте, семь дней подряд собирается вечерняя сводка, а сам прогон от поиска до готовой страницы занимает три минуты, из которых языковая модель работает меньше минуты. Ниже — как это устроено, что пришлось переделывать и на чём PowerShell с LLM мстят друг другу.
Читать далееКогда смотришь на современную LLM, легко решить, что всё сводится к вызову API. Но многие разработчики, которые часто используют LLM в работе или в своих проектах, рано или поздно хотят действительно разобраться, как они работают. К тому же - кто не смотрел «Железного человека»? По сути самый лучший способ реально разобраться это сделать что-то свое. Чаще всего возможности позволяют сделать что-то маленькое, зато свое и работающее.
Так появился jarvis - компактный decoder-only transformer для русского текста и диалогов. В проекте нет готового AutoModelForCausalLM: я сам реализовал архитектуру, обучил токенизатор, собрал пайплайн подготовки данных, добавил претрейн и SFT, KV-cache для генерации, консольный чат, Telegram-бота и простой бенчмарк. Готовый SFT-checkpoint и соответствующий токенизатор опубликованы на Hugging Face.
Читать далееЯ с конца сентября запускал PC‑версии Dark Souls на iPhone Air через эмулятор Madeira. Remastered теперь играется с экранным геймпадом, у Dark Souls III в тяжёлых сценах медиана выросла с примерно 20 до 36,7 FPS на экспериментальной сборке. По дороге набралось 5 принятых и 11 открытых PR в Madeira, Wine, FEX и DXMT и репозиторий со скриптами, который я теперь выкладываю.
Оговорка сразу: у меня один телефон (iPhone Air на бета‑версии iOS 27.2), один тестер, то есть я, и все цифры ниже снимались на этом устройстве. Игры у меня свои, купленные. В репозитории нет ни игровых файлов, ни сейв‑редакторов, ни обхода защиты, и принимать такое я не буду.
Читать далееКак я перешёл с openclaw на DeepSeek Harness, вернул своему VDS load average 0,03 и перестал докупать память.
Вслед за многими читателями этого сайта я в какой-то момент дошёл до стадии, когда тоже установил себе ИИ-ассистента на VDS. Поначалу всё ограничивалось поиском новостей, но время шло, и спектр работ, которые он выполняет, рос.
Не буду писать о своих задачах, для статьи они не особо важны. Скажу лишь, что в основном они здесь именно ассистентные: найти, предупредить, прочитать и т.п.
Но эйфория от того, что я, начитавшись интернетов и насмотревшись видео, поставил себе openclaw, быстро прошла. Да, функциональность у него потрясающая.
Однако...Была мысль: а место ли этой статьи на хабре? Но потом вспомнил, что тут уже была штукатурка… А еще подумал, что тут очень много людей, которые суют свои ручки во все места, до которых могут дотянуться, а значит — стоит! )
Ну а последней каплей стала фото на озоне, в которой покупатель предъявлял претензию к «некачественной» гибкой подводке, которая течет. На фото были гайки подводки, которые закручены на трубы, обмотанные ФУМ лентой… Ну кто в теме понял о чем я. А кто не в теме — дальше будет понятно.
Я не профи в этой теме. Я всего лишь «тыжпрограммист», который чинит водопровод сам. Хотя в моей копилке есть водопровод с нуля в новостройке (с некоторыми ошибками, да). Несмотря на кажущуюся простоту я постоянно встречаю «детские» ошибки вроде подматывания ФУМ ленты под гайку гибкой подводки и подобное.
Тут не будет какого-то углубления в тему. Не будет и рассказа о том, как редуктор давления без обратного клапана после него может загнать стрелку манометра за пределы шкалы в 10 атм при давлении на входе всего 3 атм (да, это мой опыт). Цель статьи — что бы кто-то, кто полез в водопровод сделал меньше ошибок.
Итак, водопровод состоит из соединений труб :) И эта статья о них. Типов соединений довольно много, но большинство встретится только с двумя из них: с накидной гайкой и с обычным резьбовым соединением.
Закрутим!Это продолжение истории про облачное хранилище aroshka.cloud и заказы на Kwork, которые подводили исполнителей к оплате тарифа. Первая часть: https://habr.com/ru/articles/1097776/, вторая: https://habr.com/ru/articles/1098252/. На этот раз речь пойдёт о человеке, который все эти дни защищал сервис в комментариях к нашим статьям. Мы проверили, кто он, и нашли его же заказы на Kwork, только размещённые от имени самого сервиса.
Все скриншоты ниже лежат в открытом репозитории (https://github.com/viktor138irk/aroshka-api-docs/tree/main/evidence), а страницы, с которых они сняты, сохранены в Web Archive. Ссылки на архивные копии стоят рядом с каждым фактом.
Читать далееСвёрточные нейросети умеют находить закономерности в данных, но на финансовых рынках легко принять особенности волатильности за сигнал и получить модель, которая хорошо работает только на исторических котировках. Разберём, как применять CNN к временным рядам и данным ордербука, избегать утечки будущего и проверять качество прогнозов, чтобы понять, когда свёрточные архитектуры действительно полезны в финансовом анализе.
Изучить методИстории о том, как ИИ-агент «натворил дел» на сервере, похожи одна на другую. Модель не злая, она уверенная. Сделать её безошибочной нельзя, а решить заранее, во что обойдётся её ошибка, можно. Семь рамок, которые стоит поставить до первого запроса — независимо от того, какой инструмент вы выберете.
Читать далее