Search
Write a publication
Pull to refresh
1
0
Константин @Lord_Prizrak

Программер

Send message

Сжатие данных алгоритмом Хаффмана

Reading time15 min
Views67K

Вступление


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

Да-да, об этом уже была статья на Хабре, но без практической реализации. Здесь же мы сфокусируемся как на теоретической части, так и на программерской. Итак, все под кат!
Читать дальше →

Защита микросхем от реверс-инжиниринга и несанкционированного проникновения

Reading time20 min
Views86K

“CVAX — когда вы забатите довольно воровать настоящий лучший”.
Надпись, оставленная американскими инженерами для советских коллег в топологии микропроцессора.

Реверс-инжиниринг микросхем — головная боль производителей с самых первых лет существования микроэлектроники. Вся советская электроника в какой-то момент была построена на нем, а сейчас с гораздо большим размахом тем же самым занимаются в Поднебесной, да и не только в ней. На самом деле, реверс-инжиниринг абсолютно легален в США, Евросоюзе и многих других местах, с целью (цитирую американский закон) “teaching, analyzing, or evaluating the concepts or techniques embodied in the mask work or circuitry”.

Самое частое легальное применение реверс-инжиниринга — патентные и лицензионные суды. Промышленный шпионаж тоже распространен, особенно с учетом того, что электрические схемы (особенно аналоговые) часто являются ключевой интеллектуальной собственностью и редко патентуются — как раз для того, чтобы избежать раскрытия IP и участия в патентных судах в качестве обвиняющей стороны. Разумеется, оказавшись в ситуации, когда нужно защитить свою интеллектуальную собственность, не патентуя ее, разработчики и производители стараются придумать способы предотвращения копирования своих разработок.

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

ARM-ы для самых маленьких: тонкости компиляции и компоновщик

Reading time14 min
Views90K

Продолжая серию статей про разработку с нуля для ARM, сегодня я затрону тему написания скриптов компоновщика для GNU ld. Эта тема может пригодиться не только тем, кто работает со встраиваемыми системами, но и тем, кто хочет лучше понять строение исполняемых файлов. Хотя примеры так или иначе основаны на тулчейне arm-none-eabi, суть компоновки та же и у компоновщика Visual Studio, например.

Предыдущие статьи:


Примеры кода из статьи: https://github.com/farcaller/arm-demos

Читать дальше →

Выбираем, наконец, бюджетный мультиметр с хорошим функционалом

Reading time4 min
Views104K
Два года назад был опубликован пост с тестированием мультиметров. Цена протестированной модели Fluke 87-V начинается от 40 тысяч рублей, что для рядового пользователя находится за пределами разумного, за что автора закономерно отругали. Более того, часть пользователей разумно заметила, что для проверки батареек хватит и DT 838 за 300 рублей. Таким образом, были охвачены два полюса цен, а есть ли что-то за промежуточные деньги, но с хорошей точностью, осталось неясным. Если интересно — давайте посмотрим.

image
Читать дальше →

Собственное исследование, что нам могут рассказать открытые источники?

Reading time9 min
Views27K
image

Вдохновившись статьей Group-IB о масштабной хакерской атаке на банки и предприятия от лица госучреждений решил разузнать про RTM немного больше.

Цель – не только найти причастных к данной атаке, но и показать насколько доступно проведение такого расследования при наличии хороших инструментов и некоторого технического бэкграунда.
Читать дальше →

Йода из Кремниевой долины

Reading time9 min
Views46K

Дональд Кнут, мастер алгоритмов, размышляет над 50 годами работы над своим главным творением, книгой «Искусство программирования», которую не прекращает дополнять



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

Уже полвека стэнфордский специалист по информатике Дональд Кнут, немного напоминающий Йоду – хотя ростом он 193 см и носит очки – занимает доминирующее положение духовного учителя в области алгоритмов.

STM32 и USB-HID — это просто

Reading time14 min
Views384K
На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?

Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.

У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее

Заставим ее работать

DIY тепловизор на Raspberry PI или «Кажется теперь я знаю, чем займусь этим летом»

Reading time6 min
Views105K
image

Всем привет!

Пришла зима, а с ней и задача проверить теплоизолирующие свойства построек загородной резиденции дачи. А тут ещё оказалось, что на известном китайском сайте появились вполне доступные тепловизионные модули. Не собрать ли себе экзотическую и, возможно, даже полезную вещь — самодельный тепловизор? Почему бы и нет, вроде и Raspberry где-то валялась… Что из этого вышло — расскажу под катом.
Читать дальше →

Геймпад от Sega Mega Drive и Raspberry Pi Часть 1 (подготовительная и трёхкнопочная)

Reading time4 min
Views13K
Осень наступила, отцвела капуста, Уже почти середина зимы, а я только закончил с этим возиться. Но всё равно наступило время когда хочется поиграть во, что-нибудь старенькое, под шум метели за окном, например в Соника или червяка Джима. Внизу статьи видос с предварительными результатами.


Ностальгируем далее

С новым годом, с новым MQTT/UDP

Reading time4 min
Views18K
Привет.

Как я уже писал недавно (Первая краткая статья о MQTT/UDP), MQTT/UDP — протокол на базе MQTT, но:

  • Ходит поверх UDP broadcast (не нужен брокер, почти не нужна конфигурация)
  • До неприличия простой в реализации (10 строк на си + UDP/IP стек — и вы отправляете данные с сенсора)
  • Все слышат всех

В некотором смысле это CAN, но поверх Ethernet-а.

Зачем.
Читать дальше →

Суперскалярный стековый процессор: продолжаем скрещивать ужа и ежа

Reading time6 min
Views8.3K

Продолжение статьи, где удалось продемонстрировать, что фронтенд стековой машины вполне позволяет спрятать за ним суперскалярный процессор с OoO.
Тема данной статьи — вызов функций.
Читать дальше →

Сергей и научный метод

Reading time7 min
Views19K
Все совпадения случайны.
Кто не спрятался, я не виноват.
— Проходи, что стоишь как не родной?

Сергей огляделся — в квартире своего учителя-профессора он еще не бывал. Обыкновенная московская, в старом доме — видимо, еще с тех времен, когда их выдавали… или не выдавали, черт его знает, он-то эти времена уже не застал. Бардак конечно, но рабочий — повсюду книги и распечатки каких-то статей. Похоже, профессор продолжает вести активную научную работу, несмотря на свой возраст…
Читать дальше →

Это вы можете (ЭВМ). Рассказ о забытой телепередаче

Reading time8 min
Views29K

В очередной раз ловлю себя на мысли о том, что "опять нечего посмотреть". Потому что хочется не слащавого и натянутого, а технического, эмоционального, заставляющего подумать и поискать после просмотра дополнительную информацию. Да, конечно, есть такие штуки как MR.ROBOT, но они настолько редки и фрагментарны, что практически полностью теряются на фоне океана откровенно дешевого ширпотреба (да и вообще, хакеры эти вездесущие уже порядком поднадоели ). Вроде бы можно попробовать Discovery или National Geographic, но учиться мне довелось в школе советского образца с советскими преподавателями, поэтому вся эта манная каша «просто о сложном» не лезет совершенно. В общем, по описанным выше причинам, висел у меня в сознании этакий watchdog на заполнение вакантного места на "видео-полке".


И вот недавно, занимаясь по долгу службы инерционными накопителями и просматривая статьи широко известного в узких кругах профессора Гулиа, я вдруг натолкнулся на его рассказ о невероятно популярной в советское время программе "Это вы можете". Удивительно, но о такой программе я не слышал, как не слышали и мои друзья и знакомые. Беглый просмотр пары-тройки найденных на youtube выпусков заставил потирать руки в предвкушении отличного материала. Если интересно, что из этого получилось, — прошу под cut.


Читать дальше →

Pylint изнутри. Как он это делает

Reading time15 min
Views24K
Разные помощники в написании классного кода нас просто окружают, линтеры, тайпчекеры, утилиты для поиска уязвимостей, всё с нами. Мы привыкли и используем не вдаваясь в детали, как «черный ящик». Например, мало кто разбирается в принципах работы Pylint — одного из таких незаменимых инструментов для оптимизации и улучшения кода на Python.

А вот Максим Мазаев знает, насколько важно понимать свои инструменты, и нам рассказал на Moscow Python Conf++. На реальных примерах показал, как знание внутреннего устройства Pylint и его плагинов помогло уменьшить время code review, улучшить качество кода и вообще повысить эффективность разработки. Ниже расшифровка-инструкция.


Красивая и познавательная анимация: случаи кругового движения и колебаний

Reading time4 min
Views14K
Здравствуйте.

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



Для отрисовки я использовал javascript и canvas. Для каждого примера дана ссылка, где вы можете всё внимательно посмотреть. Можно заглядывать в исходный код, можно копировать себе — я не буду возражать. Материал вполне может пригодиться на занятиях и факультативах по физике, математике или информатике.

Итак, поехали.
Читать дальше →

Как подружить Алису и HomeBridge

Reading time3 min
Views19K
image

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

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

Спутник — это очень просто — 2

Reading time2 min
Views17K
В публикации «Спутник — это очень просто» было рассказано о том, как просто сейчас услышать спутники на околоземных орбитах и о возможности расшифровывать принятые сигналы некоторых спутников. К сожалению эта телеметрическая информация остается недоступной для заинтересованных лиц.

И хотя космические корабли бороздят просторы большого театра спутники успешно выводятся на орбиту и передают информацию о проводимых экспериментах, но «услышать» их собственники могут всего несколько минут. Потому собственники различных CubeSat публикуют инструкции и софт для приема своих спутников, надеясь получить как можно больше телеметрической информации от энтузиастов. Например для Manfred Memorial Moon Mission (4M) был проведен конкурс среди энтузиастов приславших наибольшее количество принятой телеметрии.

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

image


Читать дальше →

Развёртывание встраиваемой системы на базе Windows и Linux

Reading time14 min
Views22K
В статье описаны методы быстрого развёртывания встраиваемой системы на базе Windows 10 и Debian Linux. Приведены примеры сборки защищённого интерфейса.
Читать дальше →

Обзор основных методов математической оптимизации для задач с ограничениями

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

P. S. Статья содержит математические формулы, добавленные макросами хабраредактора. Говорят, что они иногда не отображаются. Также есть много анимаций в формате gif.
Читать дальше →

Как конструкторы влияют на детский мозг. И что делать, когда вы выросли

Reading time6 min
Views83K
Их давали нам, чтобы не мешали старшим чтобы котелок и мелкая моторика шли рука об руку. Но фишка конструкторов не только в этом.

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



Для начала, что называть конструктором? Например, пирамидки, паззлы, сортеры (когда детальке надо найти формочку), матрешки — это не конструкторы. Они называются «дидактическими игрушками» и учат работать по шаблону. Это, конечно, полезно и важно, но как тренировка. Поэтому иногда так хочется дать по рукам подтолкнуть ребенка, чтобы «закончили упражнение».

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

Вот отличный пример

Information

Rating
Does not participate
Location
Сахалин, Россия
Date of birth
Registered
Activity