Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Статья

withComponentInputBinding: уменьшаем связанность, инвертируем зависимости

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

В Angular проектах часто можно увидеть использование routed-компонентов, выполняющих оркестрирующую роль для своего роута. Они инжектят ActivatedRoute, достают из него параметры и по ним выполняют инициализацию с помощью доменных сервисов. Это кажется естественным и такой компонент принято считать smart container, «умным».

Но действительно ли ему необходимо знать про ActivatedRoute и про конкретный сервис?

В статье рассказываю, как с помощью фичи withComponentInputBinding и резолверов можно инвертировать зависимости для routed-компонентов и уменьшить их связанность.

Читать далее
Пост

В ошалевшую от безделья голову пришла шальная мысль — может ли современный уважающий себя в меру упитанный человек прожить на голом ядре Linux, coreutils, пачке элементарных консольных мастхэв и нескольких консольных же баловст для приятственного времяпрепровождения?

Пораскинув в хорошем смысле мозгами, сделал такую подборку:

  • Основа — linux, linux-firmware, grub, runit, coreutils, util-linux, kmod, shadow, kbd

  • Сеть — iproute2, dhcpcd, ca-certificates

  • Окружение — kmscon/fbterm, tmux, nerd-fonts, mc

  • Мастхэв: sudo, file, procps-ng, neovim, git, wget, openssh, openssl, gcc, make, glibc, tar, zstd, unzip, less, grep, sed, awk, findutils, man-db, man-pages

Если немножко додать жиру, то — yazi, neomutt, lynx/w3m, newsboat, alsa-lib, alsa-utils, mpv.

Наверняка чего-то упустил / чего-то захочется ещё. Но такова природа человека… Иначе до пятидесятого гнома мы бы не дошли.

Вот. На следующих выходных попробую себе устроить GUI-детокс и геморрой на свою соскучившуюся пятую точку (см. начало про безделье). Посмотрю, чего реально не хватает современному в меру упитанному человеку для жизни.

И распивая чаи со спиртом (опционально), буду читать здесь холивары о гноме и кедах 😁

Теги:
+2
Комментарии7
Статья

Пиротерапия от выгорания, или как я стал вайбкодером

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели4.9K

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

Представляю твоему вниманию AcroTab — приложение, которое должно быть у каждого уважающего себя гитариста (у меня, например, есть).

кг/ам tl;dr: https://acrotab.org

Читать далее
Статья

Динозавры, ракоскорпионы, PostgreSQL и меланин: база данных по окраске ископаемых животных

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели4.7K

Начиная с 2010 года в научпопе мелькают заголовки вроде «Какого цвета были динозавры?». При этом в тени часто остаются птерозавры, трилобиты, гигантские палеозойские ракоскорпионы или морские рептилии вроде ихтиозавров. Сейчас науке известно множество мезозойских и более древних животных, чей облик мы можем представить себе вплоть до деталей окраски.

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

Читать далее
Статья

K3s на колёсах: HA‑кластер для автопарка с ARM‑агентами, WireGuard и офлайн‑режимом

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели4.2K

Большинство статей про Kubernetes на границе (edge) описывают более-менее стабильную топологию: несколько узлов в одном или нескольких дата-центрах, предсказуемая сеть между ними, редкие сетевые партиции как исключение, а не норма. У нас всё наоборот: control plane живёт в офисе/датацентре, а agent-узлы физически стоят в транспортных средствах автопарка — едут по городу, паркуются в подземных гаражах без связи, теряют VPN на десятки минут за смену. Разрыв связи с control plane — это не инцидент, это штатный режим работы системы, который нужно было спроектировать с самого начала, а не «подкрутить» постфактум.

В этой статье — то, как устроен наш K3s-кластер для автопарка: HA control plane на kube-vip, транспорт через WireGuard поверх MikroTik, разнородный флот из amd64- и ARM-агентов (включая Jetson), и отдельно — самая интересная часть: как мы подступаемся к вопросу «может ли под на границе продолжать работать, когда control plane временно недостижим».

Читать далее
Статья

Всё о GEO, или как продвигать бренд в нейросетях

Время на прочтение4 мин
Охват и читатели4.3K

Нейросети радикально повлияли на то, как люди ведут себя в поисковиках. 

Например, AI-блок Google Overview на 58% снижает вероятность клика пользователя на первую ссылку [1]. А переход из рекомендации Claude и Chat GPT дает конверсию в покупку в 4,4 раз выше, чем обычный переход из поисковой выдачи [2]. 

При этом пересечение ссылок в топе поисковой выдачи и источников, используемых нейросетями, составляет всего 46%[3]. А значит, стандартное SEO сильно отличается от GEO. Мир меняется, и если раньше "вас не было, если не было в интернете", то сейчас "вас нет, если вас не упоминают нейронки".

Давайте обсудим, как добиться того, чтобы нейросети вас рекомендовали.

Читать далее
Статья

Номерные радиостанции: как открыто передать сверхсекретные сигналы на весь мир, чтобы никто ничего не понял? Часть 1

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели6.9K

«НЖТИ 84984 ХРУЩОПЛОБ 5521 2375 МОРФОЖАНР 4424 2375». Примерно так выглядят обычно сообщения «Жужжалки», она же УВБ-76 — самой знаменитой «номерной радиостанции». Их история уходит в середину прошлого века, в основном в связи с деятельностью разведывательных служб, дипломатических и военных ведомств. Обычно номерные радиостанции используют короткие радиоволны, способные при должной мощности передатчика многократно отражаться от ионосферы и распространяться по всей планете. А передаваемые ими наборы цифр, иногда перемежаемые словами, представляют собой зашифрованные данные: либо условные слова и наборы цифр, значение которых известно получателю, либо целые тексты. В последнем случае обычно используют шифр Вернама, который при строгом следовании правилам является абсолютно невзламываемым — что доказано математически. Именно это позволяет пересылать даже сверхсекретные сведения открытым и доступным всем сигналом. В XX столетии номерные радиостанции сыграли важную роль в истории разведслужб, особенно советских, а с конца прошлого века вокруг них возникла целая субкультура. Как возникли номерные радиостанции, какие триумфы и провалы спецслужб были с ними связаны, как вокруг них возникла субкультура... и почему одна из них произносила последовательности цифр криповатым голосом маленькой девочки? Попробуем разобраться — и начнём мы с зарождения союза сверхдальнего коротковолнового радио с методами абсолютного шифрования.

Читать далее
Статья

Миграция Power BI → Apache Superset: что переносится на самом деле

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

На Apache Superset я перенёс один отчёт. Одна таблица, пара графиков, день работы. Это была годовая цель: показать, что умею. Пользуются при этом по-прежнему исходной версией в Power BI.

Перенос в компании идёт всерьёз: есть коллеги, которые публикуют на Superset отчёты десятками. И чем ближе отчёт к одной таблице, тем легче он едет. Мои — не такие.

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

Разбираю, что на самом деле переносится при миграции BI и почему документацию в ландшафте на 800+ отчётов придётся отдавать машине.

Читать далее
Новость

Китайские банки и кафе раздают ИИ‑токены вместо кэшбека и бонусов

Время на прочтение2 мин
Охват и читатели4.3K

Банки, кафе и телеком‑операторы Китая, помимо основных услуг, начали предлагать токены ИИ. Компании продают токены в рамках тарифных планов мобильной связи, предлагают их в качестве кэшбека по кредитным картам или бонуса за заказ еды.

Читать далее
Статья

Свои книжные метаданные: Pivot-архитектура, Spring Boot и бесплатный API для Obsidian

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели4.1K

Как я собрал бесплатный сервис метаданных книг на Java и Spring Boot — с EAV/Pivot-схемой БД вместо ALTER TABLE на каждое новое поле, агрегацией нескольких открытых источников. Плюс обновлённый плагин для Obsidian.

Читать далее
Статья

Беспилотники 2026 (не те, о которых вы подумали). 5 лет спустя

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели4.1K

Прошло уже почти 5 лет с тех пор, как я опубликовал статью «Беспилотники 2021».

Так получилось, что все эти пять лет я не имел прямого отношения к отрасли беспилотных автомобилей. И если и были какие-то громкие новости, то они прошли мимо меня.

Но 3 сентября случилась новость, которая мимо не прошла: Tesla вывела на дороги общего пользования Cybercab и запустила его в реальных сценариях роботакси. За один день интернет заполнили десятки и сотни видео, в которых обычные люди показывают, как работает технология.

Можно сказать, что беспилотные такси мы уже видели — и это правда. Waymo к этому моменту уже несколько лет возит пассажиров без водителя и накопила огромный полностью автономный пробег. Тесла запустила сервис роботакси на базе Model Y с "охранником" на пасажирском сиденье. Но всё-таки автомобиль, в салоне которого вообще нет органов управления человеком, на публичных дорогах, не в режиме очередного «демо», а в реальных сценариях такси — ну потрясающе же, правда?

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

Забавно, что в 2021 году, строя гипотезы и прогнозы о будущем беспилотного вождения, сложно было даже представить, что настоящая революция в ИИ случится совсем скоро — и что уже через несколько лет статьи, программы, документы и много чего ещё в большинстве случаев не будут создаваться исключительно человеком. Появится инструмент, который довольно сильно перевернёт и профессиональные, и бытовые процессы.

Читать далее
Статья

Артефакты рендеринга в Chromium, Electron и Qt на ноутбуках с гибридной графикой: диагностика и решение

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

Если у вас ноутбук с Intel iGPU и дискретной видеокартой, а в мессенджерах, редакторах кода и браузерах по краям интерфейса тянутся странные полосы и блочный мусор, который исчезает под курсором мыши — эта статья про вашу проблему.

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

Читать далее
Статья

Как я сделал и запустил ГрузоБот: Python, MAX API, SQLite и первые пользователи

Время на прочтение5 мин
Охват и читатели5K

Несколько месяцев назад я начал делать небольшой сервис для контейнерной логистики.

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

Так появился ГрузоБот это сервис для грузоотправителей, экспедиторов и перевозчиков, работающий через мессенджер MAX.

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

Читать далее

Ближайшие события

Статья

All your data belongs to you: как я вытащил Honor Band 10 из облака Huawei (часть вторая)

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

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

Задача этой части: доставлять базу домой, на свой сервер, ежедневно.

Читать далее
Статья

All your data belongs to you: как я вытащил Honor Band 10 из облака Huawei

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

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

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

Читать далее
Статья

Рынок «лимонов» в мире данных: почему современные исследования теряют контакт с реальностью

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели5.1K

Размышления, вдохновленные статьей Марка Хау «Towards ‘augmented sociology’? A practice-oriented framework for using large language model-powered chatbots» (Hau, 2025)

Недавно в одном из чатов коллег-исследователей я обратил внимание на обсуждение темы использования синтетических выборок. Будучи по своему профилю академическим, да ещё и политическим социологом, я в своей работе с подобными методами не сталкивался, однако же в мире продуктовых исследований это стремительно нарастающий тренд последних лет.

В связи с этим меня крайне заинтересовал вопрос: а как исследователям вообще относиться к подобным методам и насколько они, если так можно выразиться, академичны? Так я и погрузился в исследование применения синтетических выборок и в целом LLM в рамках социологических исследований, однако, как всегда оказывается, всё гораздо глубже и тревожнее. 

Читать далее
Статья

Мой опыт перехода на Grafana для самописного веб‑сервера Интернета вещей

Время на прочтение10 мин
Охват и читатели4K

Есть у меня сервис собственной разработки по визуализации данных из базы: сенсоры упорядочены, я могу посмотреть, какие значения были на том или ином датчике за определенный промежуток времени. Лично я считаю, что у меня интереснее реализованы некоторые функции, которые в пользовательском интерфейсе Grafana или ESPHome сделаны исходя из совсем других удобств.

Так, несмотря на появление принципов ООП еще в 1960 годах, о нем многие из нас начали слышать лишь в году так 2010. Многие программисты писали методы и функции без разделения кода, но оказалось, что намного интереснее ориентироваться на живой мир, когда с разработкой четко видишь и осознаешь, что вот этот текст в программе – код человека как законченного объекта исследований с его инкапсулированными методами, например, а вот тот фрагмент – это тот же человек, но с наследованием родительского класса… Он уже не просто человек, но специалист, например, в программировании.

Итак, в интерфейсе своего приложения стало интересно оттолкнуться от реального объекта в моем окружении – от фермы на балконе, где выращиваются клубника и микрозелень. И первым вопросом было явно не то, а как и каким инструментом визуализировать данные с датчиков на этом мини-огороде. Ну окей, самым первым  вопросом было, конечно, это. Но когда я накидал график и get-запросом начал переключаться между датчиками, понял, что мне не очень понятно среди этого множества графиков, как вообще управлять всем этим делом и не запутаться.

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

Читать далее
Пост

Как перестать сливать ПДн в ChatGPT и Claude: On-Prem AI-Gateway на чистом Python

Сотрудники компании (разработчики, поддержка, юристы) активно используют ChatGPT, Claude и Cursor. В промпты летят ФИО клиентов, ИИН/ИНН, карты, API-ключи и бизнес-логика. С точки зрения RegTech (152-ФЗ, Закон РК № 94-V, GDPR) — это прямая утечка данных.

Обычный DLP просто заблокирует доступ, снижая продуктивность[cite: 1]. Мы сделали AI-Gateway — open-source шлюз с обратимой токенизацией (Reversible Tokenization), который маскирует ПДн до отправки в LLM, восстанавливает их в ответе и ведет защищенный лог.

Как это работает

1. Исходный промпт от пользователя/приложения:

«Клиент Ержан Нурсултанулы, ИИН 900715300005, оспаривает транзакцию по карте 4400 1234 5678 9101…»

2. Уходит во внешнюю LLM (ChatGPT/Claude/Gemini):

«Клиент [PERSON_1], ИИН [NATIONAL_ID_1], оспаривает транзакцию по карте [PAN_1]…»

3. Возвращается в приложение / браузер:

«…для Ержан Нурсултанулы (ИИН 900715300005) по карте 4400 1234 5678 9101 возврат…»

Модель помогает решить задачу, пользователь получает полный ответ, а вендор не получает ни одной персональной записи[cite: 1].

Ключевая архитектура

  1. Обратимая токенизация, а не удаление. Замена сущностей на [PERSON_1] сохраняет связность текста для LLM[cite: 1]. Соответствия хранятся только в OAM (Mapping Store) в зашифрованном виде (PRF-CTR + HMAC) и автоматически удаляются после ответа[cite: 1].

  2. Проверка по контрольным суммам. ИИН/БИН проверяются двухпроходным весовым алгоритмом, карты — по алгоритму Луна (Luhn), IBAN — ISO 13616[cite: 1]. Секреты (AWS, OpenAI, JWT, PEM) детектируются по формату и энтропии Шеннона[cite: 1].

  3. Zero-Dependency Core (Python 3.11+ stdlib). Поверхность атаки на Supply Chain инструмента, видящего все промпты — ровно ноль[cite: 1]. Устанавливается в Air-Gapped контур без pip install[cite: 1].

  4. Принцип Fail-Closed. Любая ошибка распарсинга или сбой детекции блокирует запрос[cite: 1].

  5. Tamper-Evident Audit Log. Append-only JSONL с цепочкой хешей SHA-256[cite: 1]. Любое редактирование записи нарушает целостность лога[cite: 1].

Три канала перехвата

  • Egress Proxy: Меняем base_url в OpenAI SDK (http://aigate.internal:8080/v1)[cite: 1]. Код приложений менять не требуется[cite: 1].

  • Browser Extension (Manifest V3): Перехватывает ввод в ChatGPT/Claude/Gemini прямо в браузере до отправки на сервер[cite: 1].

  • Endpoint Agent: Отслеживает буфер обмена (clipboard) для вставки в IDE (Cursor, Claude Desktop)[cite: 1].

Маршрутизация в локальные LLM

Можно настроить правило: промпты без ПДн идут в ChatGPT/Claude, а промпты с найденными чувствительными данными автоматически перенаправляются на локальный Ollama / vLLM (Llama 3.1)[cite: 1].

Быстрый запуск

git clone [https://github.com/oleg-vdv/AI-Gateway.git](https://github.com/oleg-vdv/AI-Gateway.git)
cd AI-Gateway
cp .env.example .env
docker compose up -d
Теги:
+5
Комментарии1
Статья

Тело помнит все: теория соматических маркеров Дамасио

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

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

Этому исследованию уже больше тридцати лет, и многие современные работы отталкиваются или дополняют его.

В этом материале я разберу, на чем Дамасио строил свою гипотезу, какую видел роль интероцепции и вегетативной нервной системы и что показали эксперименты со знаменитой игровой задачей Айова (Iowa Gambling Task, IGT). Отдельно постараюсь ответить на вопрос, когда телесным сигналам стоит уделить внимание, а когда они отражают тревогу, усталость или ошибочно закрепленный опыт.

Читать далее
Пост

LLM знают, где культура находится, — но не куда она движется.

Четыре передовые модели сравнили с данными World Values Survey: 40 стран, четыре волны.

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

Культура как портрет, а не как история.

Если вы используете LLM вместо людей — персоны, синтетические респонденты, чутьё рынка, — вы берёте снимок, который уже мог устареть.

Accurate in space, unreliable in time: how LLMs represent national cultural change

Теги:
0
Комментарии0