Pull to refresh
2
0
Send message

Olimex RP2040-PICO-PC на стезе эмуляции ретро-платформ

Level of difficultyEasy
Reading time2 min
Views2.4K

Olimex RP2040-PICO-PC - небольшая платка, типа "материнской", в которую можно воткнуть микроконтроллерную плату форм-фактора Raspberry Pi Pico, которых выпускается достаточно много.

Я много писал про аналогичную плату, разработанную нашими ребятами (см. Мурмулятор), однако, имеются и некоторые альтернативы, включая разработку от Olimex.

Читать далее

Часть 1: Создание пользовательского интерфейса на дисплее Guition с ESPHome и библиотекой LVGL

Level of difficultyMedium
Reading time4 min
Views9.5K

Недавно вышла обновленная версия ESPHome 2024.8.0, в которой появилась библиотека LVGL версии 8.4 для создания графических интерфейсов TFT-экранов. У меня был в наличии такой дисплей, и я решил воспользоваться новыми возможностями для создания интерфейса по управлению умным домом. Моя задача заключалась в том, чтобы наполнить недорогой дисплей необходимой функциональностью.

Читать далее

Один на один с Rust

Level of difficultyMedium
Reading time12 min
Views3.7K

Всем привет! Я Влад Лунин, занимаюсь анализом сложных угроз в экспертном центре безопасности Positive Technologies. В последнее время часто приходится сталкиваться с вредоносным ПО (ВПО), написанном на Rust, поэтому хочу поделиться своим опытом реверса исполняемых файлов, написанном на этом языке. ВПО бывает как очень простое, так и очень сложное в своей реализации, и чаще всего эта сложность обусловлена особенностями Rust. Расскажу, какие подходы применяю для успешного реверса, а также про сложности, с которыми сталкивался, и как их преодолевал.

Начинаем

Интеграция компонентов OpenStack Glance в существующую инфраструктуру oVirt

Level of difficultyHard
Reading time8 min
Views734

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

Читать далее

Ссылки и указатели в C++

Level of difficultyEasy
Reading time6 min
Views9.8K

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

Сегодня разбираем &&* неувядающую классику C++ — ссылки & и указатели *. Казалось бы, два оператора, делов-то, но стгоит нырнуть под крышку — и выясняется: тут и разное время жизни, и несменяемость адреса, и прочие вещички. Разберемся в статье подробнее.

Читать далее

Localhost-атака: как Meta* и Яндекс следят за пользователями Android через localhost

Level of difficultyMedium
Reading time14 min
Views54K

Мы раскрыли новый метод отслеживания, используемый компаниями Meta* и Яндекс, который потенциально затрагивает миллиарды пользователей Android. Мы обнаружили, что нативные приложения Android — включая Facebook, Instagram и несколько приложений Яндекса, таких как Карты и Браузер — незаметно слушают определенные локальные порты в целях отслеживания.

Эти нативные приложения Android получают метаданные браузеров, куки и команды от скриптов Meta* Pixel и Яндекс.Метрики, встроенных на тысячи веб-сайтов. Эти скрипты загружаются в мобильных браузерах пользователей и незаметно связываются с нативными приложениями, работающими на том же устройстве, через локальные сокеты (localhost). Так как нативные приложения программно получают доступ к идентификаторам устройства, таким как рекламный идентификатор Android (AAID), или обрабатывают идентификацию пользователя, как в случае приложений Meta, этот метод позволяет этим организациям связывать сессии мобильного браузера и веб-куки с личностью пользователя, тем самым деанонимизируя посетителей сайтов, на которых размещены их скрипты.

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

Читать далее

Важнейшая модель теории вероятностей

Level of difficultyMedium
Reading time14 min
Views14K

Что объединяет частицу в воде, биржевой курс и кота Барсика, бродящего по району в поисках ларька с рыбой?


Всё это — примеры случайного блуждания. Эта простая модель из теории вероятностей помогает описывать самые разные явления: от диффузии молекул до принятия решений и работы алгоритмов. Она кажется интуитивной — но за ней скрывается множество нетривиальных и красивых свойств.

Мы начнём с истории открытия броуновского движения — от наблюдений Роберта Броуна до формулы Альберта Эйнштейна, которая связала наблюдаемое явление с атомной гипотезой. Покажем, как идея случайного движения превратилась из гипотезы в надёжный инструмент научного анализа.

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

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

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

Читать далее

SRE у штурвала, хаос — за бортом: курс на стабильность

Reading time1 min
Views20K

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

Этот комикс — об инженерной миссии без паники, но с вызовом. Про то, как DevOps и SRE-специалисты справляются с аномалиями не на адреналине, а на архитектуре, процессе и взаимопонимании в команде. Про реальность, где высоконагруженные проекты — не просто строчка в описании вакансии, а зона личного влияния: ты действительно управляешь, решаешь, отстраиваешь.

Читать далее

Как мессенджеры шифруют сообщения (end-to-end) на самом деле

Level of difficultyMedium
Reading time9 min
Views15K

В этой статье мы углубимся в реализацию шифрования (end-to-end) сообщений на стороне клиента с использованием JavaScript и Web Crypto API, разобрав практический пример, который будет в самом конце статьи.

Начнём с того, что если вы полный ноль в криптографии, то понять написанное здесь может быть непросто. Мне самому, несмотря на 10 лет опыта в разработке, пришлось поломать голову — всё, что здесь происходит, это чистая математика, о которой мы в этой статье говорить не будем :) Особо впечатлительные могут подумать, что это магия :)

Если вкратце, без сложных слов и терминов, попробую объяснить суть сквозного (end-to-end) шифрования

Читать далее

Направленная ультразвуковая панель

Level of difficultyMedium
Reading time4 min
Views10K


Приветствую, Хабр!

В далеком (или не очень) 2021 году я узнал, что звук можно передавать не только с помощью классических динамических головок (колонок). Существует так называемый направленный звук. Данная технология довольно распространена, просто я был не в курсе. Применяется, в основном, для локализации звука в узком луче. Хороший пример — это музеи, выставки, картинные галереи и т. д. Подошли к экспонату, над вами установлен такой излучатель, вы слушаете информацию, отошли на метр — ничего не слышно. А можно ли передать звук на десятки метров? Спойлер: можно.
Читать дальше →

Великие игры: Blizzard и Warcraft (1994)

Level of difficultyEasy
Reading time17 min
Views3.2K

Франшиза Warcraft — это обширная экосистема интерактивных развлечений, охватывающая видеоигры, книги и разнообразные медийные проекты, созданные компанией Blizzard Entertainment.

Предлагаю сегодня вспомнить историю создания легендарной серии, начиная с далекого 1994 года. В помощь привлечем воспоминания Патрика Уайатта (Patrick Wyatt), который руководил командами разработчиков первых двух частей Warcraft и первого Starcraft, Джона Стаатса (John Staats) – дизайнера WoW, а также многих ярких представителей команды создателей этой замечательной игры!

Orcs? Humans?

Контейнер с нуля

Level of difficultyHard
Reading time9 min
Views3.6K

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

Читать далее

Docker на каждый день: Ключевые команды в одной статье-шпаргалке

Level of difficultyMedium
Reading time9 min
Views17K

Забудьте о том, что Docker — это некий таинственный инструмент исключительно для DevOps-инженеров. В современном мире разработки Docker стал таким же незаменимым швейцарским ножом, как Git или ваш любимый редактор кода. Он позволяет любому разработчику писать код, который будет одинаково работать на машине коллеги, на тестовом стенде и в продакшене, забыв о кошмаре "а у меня на машине все работает". Если вы еще не погрузились в мир контейнеризации или вам нужен удобный источник команд, эта статья — ваш экспресс-билет.

Читать далее

Шпаргалка по установке драйверов NVIDIA на ML сервер

Level of difficultyEasy
Reading time4 min
Views1.5K

Данный материал предназначен для быстрой и последовательной установки драйверов NVIDIA, в том числе для видеокарт 50xx серии, а также настройки NVIDIA Container Toolkit. Эта инструкция актуальна для Linux-систем на базе Ubuntu и других Debian-совместимых дистрибутивов.

Читать далее

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

Level of difficultyEasy
Reading time7 min
Views2.6K

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

Как же оно получилось?

Итак, я приехал, что дальше?

Level of difficultyEasy
Reading time19 min
Views49K

Digital nomad - это человек, который добровольно решил сняться с якоря и жить свободно. Я к этой категории не отношусь. Меня скорее обстоятельства заставили сняться с большого тяжёлого якоря и двинуть куда подальше. Этим "куда подальше" оказались Штаты. Пока я жил во Владивостоке, я умудрился несколько раз отказаться от предложений с релокацией в Корею (Южную, на всякий случай уточняю), в Сингапур, в Канаду и США. Поэтому довольно иронично, что спустя 5 лет я оказался здесь.

В этой статье я больше хочу поделиться не тем как и почему я решил переехать, а скорее историей "оседания" там, куда приехал. Конкретно, я хочу затронуть три важных темы: культура и язык, быт, поиск работы. Это мой опыт, мой путь, конкретно про США (Калифорния). Кому-то он будет полезен - класс! Если кого-то это заденет за живое - сочувствую вам. Итак, пристегните ремни, мы...

садимся.

K8s как основа: строим инфраструктурную платформу

Reading time9 min
Views3.3K

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

Читать далее

Разработка NFT-приложений с помощью Magic Eden API: от идеи до реализации

Level of difficultyMedium
Reading time5 min
Views594

Привет, Хабр! В этой статье я расскажу о возможностях API Magic Eden - одного из крупнейших NFT-маркетплейсов на Solana, и покажу, как с его помощью можно создавать интересные проекты.

Читать далее

Постквантовые криптостандарты США на алгоритмы электронной подписи на основе хеш-функций с сохранением состояния

Level of difficultyHard
Reading time22 min
Views1.3K

Приветствую, Хабр! В моей предыдущей статье были описаны принятые в прошлом году стандарты США FIPS (Federal Information Processing Standard — Федеральный стандарт обработки информации — аналог стандартов ГОСТ Р в России) на постквантовые алгоритмы электронной подписи (FIPS 204 и FIPS 205) и инкапсуляции ключей (FIPS 203). Данные криптостандарты были приняты в результате тщательного анализа и отбора алгоритмов в рамках открытого конкурса, проводимого Институтом стандартов и технологий США NIST; данный конкурс также был описан в предыдущей статье.

Стандарты FIPS 203 [1] и FIPS 204 [2] описывают алгоритмы, основанные на применении структурированных алгебраических решеток, тогда как алгоритм, стандартизованный в FIPS 205 [3], базируется на стойкости нижележащих хеш‑функций; данный алгоритм называется Stateless Hash‑Based Digital Signature Algorithm (SLH‑DSA) — алгоритм электронной подписи на основе хеширования без сохранения состояния. Стоит сказать, что данные алгоритмы стали не первыми постквантовыми криптоалгоритмами, стандартизованными в США, — еще в 2020 году в США был издана «специальная публикация» (SP — Special Publication — аналог рекомендаций по стандартизации в России) NIST SP 800–208 [4], описывающая несколько алгоритмов электронной подписи с сохранением состояния, также основанных на хеш‑функциях.

Далее в статье — описание и схемы алгоритмов, описанных в NIST SP 800–208, а также небольшой анализ особенностей алгоритмов данного класса.

Читать далее

Information

Rating
Does not participate
Registered
Activity