Pull to refresh
0
0
Святослав Панкратов @AquaXP

User

Send message

Как генерировать Flame Graph из выходных данных perf и pt-pmp

Reading time6 min
Views3.9K

Человеческий мозг обычно лучше воспринимает информацию из изображений, чем из текстов. И в инструментах, подобных Flame Graph, этот принцип блестяще реализован. Поэтому в Percona его используют в рамках работы группы поддержки. Чаще всего в тех случаях, когда нужно получить всестороннее представление о том, что и как долго проделывает MySQL. Так можно лучше понять, какие операции стоят за конкретной рабочей нагрузкой и каким образом лучше исправлять возникающие проблемы. И это можно использовать и для оптимизации, и для устранения неполадок.

Давайте воспользуемся их опытом и разберемся, откуда брать и как подготавливать образцы для визуализации данных. А после этого — как из них генерировать Flame Graph и как с этим работать.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments0

Турель из Portal своими руками

Reading time9 min
Views24K

А вы играли в Portal? Даже если нет, сборка личной автоматической турели с детекцией движения и оригинальным голосовым сопровождением наверняка окажется как минимум любопытной, ведь такая диковина может не просто украсить интерьер, но и стать, к примеру, отличным подарком для детей.
Читать дальше →
Total votes 89: ↑88 and ↓1+87
Comments21

Как работает видеокодек. Часть 2. Что, для чего, как

Reading time12 min
Views40K

Первая часть: Основы работы с видео и изображениями




Kodek's History

Что? Видеокодек — это часть программного/аппаратного обеспечения, сжимающая и/или распаковывающая цифровое видео.

Для чего? Невзирая на определённые ограничения как по пропускной способности так
и по количеству места для хранения данных, рынок требует всё более качественного видео. Припоминаете, как в прошлом посте мы подсчитали необходимый минимум для 30 кадров в секунду, 24 бита на пиксель, с разрешение 480x240? Получили 82,944 Мбит/с без сжатия. Сжатие — это пока единственный способ вообще передавать HD/FullHD/4K на телевизионные экраны и в Интернет. Как это достигается? Сейчас кратко рассмотрим основные методы.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments15

Практическое руководство по анонимности в онлайне

Reading time9 min
Views182K

Направленная антенна для удалённого доступа к публичному Wi-Fi

Обеспечить собственную безопасность (анонимность) в онлайне — тяжкий труд, требующий массивного объёма знаний. Даже лучшие профессионалы не всегда справляются.

Но это возможно.

Предупреждение. Для усвоения информации в полном объёме требуется несколько недель.
Читать дальше →
Total votes 115: ↑106 and ↓9+97
Comments125

Как стать модным Android-разработчиком в 2022 году

Reading time4 min
Views9.1K

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

С другой — перечисленные технологии становятся новой реальностью. И теперь просто знать о мультипоточности, ViewModels и LiveData становится недостаточно.

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments29

Анализ теней: 5 примеров использования SunCalc для OSINT расследований

Reading time3 min
Views14K
image

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

На сайте вы задаете точку на карте и в результате видите круг виртуального небосклона. Дугой оранжевого цвета отмечается сегодняшний путь Солнца по небу. Та часть небосвода, где Солнце бывает хоть когда-нибудь, закрашивается светло-желтым. Так же показывается направление на Солнце на восходе, на закате и в текущий момент времени. Вы можете найти местоположение Солнца в непогожий день.

Есть два проекта: SunCalc.org и SunCalc.net. Последний на досуге разработал хабраюзер Mourner в 2010 году и написал пост на Хабре, а через год выложил библиотеку в открытый доступ (а какой-то ушлый немец без упоминания автора её форкнул).

Под катом несколько примеров, как по теням на кадрах видео и фото можно вычислить недостающую информацию: местоположение или время.
Читать дальше →
Total votes 48: ↑42 and ↓6+36
Comments5

О реализации индикатора батареи в устройствах на МК

Reading time5 min
Views13K

В портативном устройстве, работающем от аккумулятора, почти обязательным «удобством» является индикатор уровня его заряда. Казалось бы, если оно собрано на основе любого современного микроконтроллера и имеет графический дисплей, ничего сложного в этом нет: измерять напряжение батарейки с помощью встроенного АЦП и выводить его в виде традиционной батарейки с прямоугольничком внутри, длина которого зависит от напряжения.  Но если так сделать в лоб, есть риск, что индикатор будет вести себя, как в известном перле «она металась, как стрелка осциллографа». В лучшем случае, он будет все время раздражающе подергиваться туда-сюда на один-два пикселя.

В статье описывается простая реализация индикатора разряда, лишенного этого недостатка.

Читать далее
Total votes 45: ↑44 and ↓1+43
Comments22

Использование пейджера в XXI веке

Reading time9 min
Views34K

Пейджеры были очень популярны в 90-е годы. В то время я был студентом, и пейджер для меня был чем-то вроде коммуникатора из Star Trek, частью передовых технологий. Забавно вспоминать об этом, потому что теперь я знаю, что технологически протокол пейджинга очень прост. С точки зрения кодирования, пейджер не так уж отличается от беспроводных дверных звонков, которые сейчас продаются за 5 долларов на Aliexpress.

Несмотря на то, что повсеместно пейджеры уже не используются, они всё ещё есть в доме у некоторых людей. Можно ли протестировать пейджер сейчас? Безусловно, и я покажу вам, как это сделать. Давайте начнём.

Приятного чтения
Total votes 37: ↑36 and ↓1+35
Comments24

Чини свою Теслу сам, тыжпрограммист

Reading time7 min
Views72K

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

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

Читать далее
Total votes 113: ↑82 and ↓31+51
Comments45

Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым

Reading time54 min
Views124K

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

Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая "разблокировка загрузчика". Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем "подтвердить" и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик. 

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

Интересующихся приглашаю под кат.

Читать далее
Total votes 127: ↑123 and ↓4+119
Comments210

DimDrone20: как я сделал летающую платформу для computer vision исследований

Reading time7 min
Views7.2K

С 2017 года я делаю разный computer vision: начиная от понятных детекций и классификаций, заканчивая чтением по губам.

И вот после череды случайностей, я оказываюсь единственным Computer Vision инженером в стартапе, который делает беспилотные вертолеты. По это причине я решаю ворваться со своей computer vision ноги и сделать какой-нибудь pet project связанный с дронами.

План такой...
Total votes 14: ↑14 and ↓0+14
Comments18

Ещё один поиск Вк по фото

Reading time7 min
Views49K

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

Вдохновиться
Total votes 29: ↑28 and ↓1+27
Comments20

Sourcetrail: инструмент, чтобы разобраться в чужом коде и не выстрелить себе в голову

Reading time5 min
Views12K


I regret to report that I've just recently looked again at my programs for prime factors and tic-tac-toe, and they are entirely free of any sort of comments or documentation.
— Donald E. Knuth

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

Такое случается даже со своими программами и скриптами, написанными на write-only ЯП.

Разработчики, имеющие дар работать с таким кодом высоко ценятся в коллективе.

Такое чудо-лабиринты из кода бывают, когда исходный код имеет:

  • Непоследовательный стиль разработки
  • Чересчур сложную и запутанную структуру программы
  • Очевидные логические ошибки или упущения
  • Запущенность

Надо понимать, что существует большое отличие между живым рабочим кодом и неким учебно образовательным. В первом случае на процесс разработки может влиять целый ряд технических, коммерческих и даже бытовых причин. Под их воздействием даже самый строгий и элегантный дизайн ПО может превратиться в спагетти. Основные причины таких метаморфозов знакомы многим программистам.
Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments7

Реверс-инжиниринг GPU Apple M1

Reading time10 min
Views13K
image

Новая линейка компьютеров Apple Mac содержит в себе разработанную самой компанией SOC (систему на чипе) под названием M1, имеющую специализированный GPU. Это создаёт проблему для тех, кто участвует в проекте Asahi Linux и хочет запускать на своих машинах Linux: у собственного GPU Apple нет ни открытой документации, ни драйверов в open source. Кто-то предполагает, что он может быть потомком GPU PowerVR, которые использовались в старых iPhone, другие думают, что GPU полностью создан с нуля. Но слухи и домыслы неинтересны, если мы можем сами заглянуть за кулисы!

Несколько недель назад я купила Mac Mini с GPU M1, чтобы изучить набор инструкций и поток команд, а также разобраться в архитектуре GPU на том уровне, который ранее не был публично доступен. В конечном итоге я хотела ускорить разработку драйвера Mesa для этого оборудования. Сегодня я достигла своего первого важного этапа: теперь я достаточно понимаю набор команд, чтобы можно было дизассемблировать простые шейдеры при помощи свободного и open-source тулчейна, выложенного на GitHub.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments2

Поговорим с мышами? Или Soft USB HOST на Esp32

Reading time4 min
Views14K

Esp32 весьма мощный контроллер, подходящий для эмуляции различных ретро систем, таких как Spectrum, Commodore, NES, IBM PC-XT и т.д. Есть возможность сгенегировать VGA или AV - TV композитный сигнал, подключить различные компактные LCD дисплеи. Он умеет разговаривать с SD картами по SPI & SD протоколу. Вот только с USB клавиатурами, мышами и джойстиками - не умеет. Попробуем научить его говорить с ними. Есть конечно новый вариант ESP32-S3 с одним USB host контроллером, а мне нужно подключить хотя бы 3 девайса и без хаба...

Нам понадобится:
Total votes 33: ↑33 and ↓0+33
Comments6

Ветрогенератор на заднем дворе

Reading time7 min
Views143K
Настоящий ветрогенератор — это слишком дорого в том случае, если его планируется использовать для решения простых домашних задач, не требующих большой мощности. Если всё, что нужно — это немного энергии для LED-освещения или для проекта, основанного на Raspberry Pi Zero, это как-то несоразмерно довольно серьёзным деньгам, которые придётся заплатить даже за небольшой ветряк. То же касается и школьных экспериментов, время и деньги, уходящие на организацию которых, обычно стараются свести к минимуму. Школы часто стеснены в средствах.

В этом материале мы расскажем о том, как создать собственный маленький ветрогенератор. Делать мы его будем из велосипедных запчастей и из того, что можно купить в строительном магазине. Стоимость проекта находится где-то в районе $80-150. На создание генератора уйдёт 8-16 часов. При ветре, который чуть сильнее «слабого ветра» по шкале Бофорта, наш генератор способен дать около 1 ватта мощности. Этого достаточно для того чтобы зарядить небольшую батарею, а значит, энергия у нас будет и в безветренную погоду.


Домашний ветрогенератор

Описываемая здесь маленькая ветряная турбина — это, по сути, экспериментальный проект, в ходе работы над которым можно освоить основы ветроэнергетики. Эту турбину нельзя назвать абсолютно надёжным источником энергии. Не стоит ждать от неё чудес! Кроме того, учитывайте, что сильный ветер опасен для нашей турбины. Эта машина не рассчитана на нормальную работу при таком ветре. Он её, скорее всего, разрушит. Поэтому турбину стоит убирать в плохую погоду. В частности, нужно учитывать то, что её обломки, носимые ветром, могут кого-нибудь поранить.
Читать дальше →
Total votes 57: ↑52 and ↓5+47
Comments105

Шпаргалка полезных команд GDB

Reading time3 min
Views43K

Для кого она нужна?


1) начинающих реверсеров, знающих особенности обратного проектирования, и желающих изучить такой отладчик как GDB


2) как подсказка тем кто постоянно работает с IDA, Ghidra или любым другим мощным и надежным инструментом, но в силу тех или иных обстоятельств решить задачу проще и быстрее с помощью GDB, и не очень хочется залезать в официальную документацию и снова все вспоминать

Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments11

Radxa sata hat для raspberry pi 4: домашний сервер с НАС, облаком и торрентокачалкой через впн в докере

Reading time12 min
Views22K
Подходил к концу календарный год, к праздникам правительство ужесточило локдаун и ввело комендантский час. Впереди было дней 10 выходных, и я решил, что наступает самое то время, чтобы занять себя настройкой домашнего сервера, идею которого я вынашивал уже некоторое время.

Часть 1. Выбор ЭВМ и компонентов


Основные требования к домашнему серверу были компактность и низкое энергопотребление. В качестве ЭВМ я рассматривал разные одноплатники, даже раздумывал насчёт одноплатников на х64 архитектуре. Основными критериями поиска были избыточное ОЗУ от 8 Гб, современные порты: усб3.0 и гигабитный лан. Идея была заколхозить всё это на болтах в какой-нибудь коробке типа миниАТХ, используя усб-сата интерфейсы для жёстких дисков. Мне такая реализация совершенно не импонировала эстетически, и я не торопился её воплощать. Как вдруг я наткнулся на НАС кит для 4ой малины от китайцев из Радха.
Total votes 9: ↑9 and ↓0+9
Comments34

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

Reading time6 min
Views17K

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

Например, для всех кардиомониторов, систем вентиляции легких и прочих жизненно важных штук есть стандарт по звукам. На странице ISO/IEC 60601-1-8 можно послушать сигналы (но вы, наверное, и так примерно их представляете, если смотрели хоть один медицинский сериал). 

Анестезиолог Доктор Блок, входивший в комитет, принявший этот стандарт, потом сказал: «Мы сделали все, что могли, но звуки в основном были ужасными». Оказалось, что мелодии не тестировались перед применением. 

Читать дальше
Total votes 41: ↑41 and ↓0+41
Comments39
1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity