Как стать автором
Обновить
16
0
Гудин Владимир @Gudin

Пользователь

Отправить сообщение

Оптимизация кода: процессор

Время на прочтение18 мин
Количество просмотров115K
Все программы должны быть правильными, но некоторые программы должны быть быстрыми. Если программа обрабатывает видео-фреймы или сетевые пакеты в реальном времени, производительность является ключевым фактором. Недостаточно использовать эффективные алгоритмы и структуры данных. Нужно писать такой код, который компилятор легко оптимизирует и транслирует в быстрый исполняемый код.

image

В этой статье мы рассмотрим базовые техники оптимизации кода, которые могут увеличить производительность вашей программы во много раз. Мы также коснёмся устройства процессора. Понимание как работает процессор необходимо для написания эффективных программ.
Читать дальше →
Всего голосов 107: ↑102 и ↓5+97
Комментарии142

Расшифровка базы данных KeePass: пошаговое руководство

Время на прочтение9 мин
Количество просмотров92K

image


На днях мне нужно было реализовать расшифровку базы данных KeePass. Меня поразило то, что нет ни одного документа и ни одной статьи с исчерпывающей информацией об алгоритме расшифровки файлов .kdb и .kdbx с учетом всех нюансов. Это и побудило меня написать данную статью.


На данный момент существует 2 версии KeePass:


  • KeePass 1.x (генерирует файлы .kdb);
  • KeePass 2.x (генерирует файлы .kdbx).

Структура файла с базой данных KeePass (.kdb, .kdbx) состоит из 3 частей:


  • Подпись (не зашифрована);
  • Заголовок (не зашифрован);
  • Данные (зашифрованы).

Далее я подробно расскажу о том, как дешифровать базу данных KeePass 1.x и KeePass 2.x.

Читать дальше →
Всего голосов 67: ↑67 и ↓0+67
Комментарии39

Немного о WSPR, или как далеко можно передать сигнал мощностью 1Вт?

Время на прочтение5 мин
Количество просмотров44K
В настоящее время заметен подъем интереса к беспроводным технологиям, что становится особенно актуальным в эпоху “интернета вещей”, “умных домов”, смарт-гаджетов, различных датчиков и устройств. Действительно, мало кто захочет сверлить стену и тянуть провод к датчику температуры за окном, куда проще, если данные будут передаваться по радио. Решений тут много, например одной из последних разработок является LoRa, трансмиттеры этой системы способны передавать данные на несколько километров при мощности в 10-100мВт.

Как далеко можно передать радиосигнал? Это, пожалуй, наиболее интересный вопрос, который поднимался задолго до появления термина IoT как такового. Наиболее комплексно на этот вопрос попытался ответить Joseph Hooton Taylor, американский астрофизик и лауреат Нобелевской премии, создав в 2008 году программу Weak Signal Propagation Reporter (WSPR). Идея программы проста — передать сигнал, несущий минимум информации, который за счет этого может быть декодирован на максимально большом расстоянии.

Как это работает? Подробности под катом. Как оказалось, WSPR ни разу не описывался на geektimes, пора восполнить этот пробел.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии97

Это маленькое чудо — алгоритм Кнута-Морриса-Пратта (КМП)

Время на прочтение9 мин
Количество просмотров180K
Алгоритм Кнута-Морриса-Пратта используется для поиска подстроки (образца) в строке. Кажется, что может быть проще: двигаемся по строке и сравниваем последовательно символы с образцом. Не совпало, перемещаем начало сравнения на один шаг и снова сравниваем. И так до тех пор, пока не найдем образец или не достигнем конца строки.
Читать дальше →
Всего голосов 69: ↑67 и ↓2+65
Комментарии57

Два в одном: USB хост и составное USB устройство

Время на прочтение12 мин
Количество просмотров34K

image



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

Основная суть Пастильды заключается в том, что она является своеобразным переходником между клавиатурой и ПК. Таким образом, она должна уметь:
  • быть USB хостом для клавиатуры, которая к ней подключается,
  • быть клавиатурой для ПК, чтобы либо перенаправлять сообщения от реальной клавиатуры, либо самой быть клавиатурой,
  • быть дисковым накопителем, чтобы можно было редактировать базу данных паролей в удобном для человека виде.

Данный функционал является скелетом нашего проекта, поэтому первая заметка будет посвящена именно ему.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии63

Почему, ну почему, эти #?@! придурки используют vi?

Время на прочтение12 мин
Количество просмотров120K

Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

Читать дальше →
Всего голосов 172: ↑143 и ↓29+114
Комментарии769

STM32F405: прошить 400кб за 10 секунд или быстрый UART-загрузчик заточенный под USB-UART, размером менее 4 килобайт

Время на прочтение19 мин
Количество просмотров34K

C утилитой для ПК и платой — программатором,
с использованием SPL,
с полноценной системой команд и проверкой CRC32,
с гарантией доставки и переотправки сбойной или потерянной команды,
с проверками ошибок, отладочными сообщениями и урезанным printf'ом.
Оптимизирован под современные USB-UART преобразователи и потоковую передачу.



Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии63

VIM: зачем, если есть IDE, и как?

Время на прочтение4 мин
Количество просмотров127K

Сегодня вышел текст о том, как человек перешёл с Sublime на VIM. В комментариях, как обычно это бывает, появились сообщения в духе "Зачем мне тратить время на Vim, если есть IDE, где всё работает?" (люди даже статьи на эти темы пишут). Хотел внести свои пять копеек, но объём написанного плавно перевёл текст из разряда "комментарий" в разряд небольшой статьи.


В целом, всё, что ниже — это вкусовщина, конечно. Нравится вам ваша IDE (или ваш текущий инструмент), да и пожалуйста. Используйте для текущих задач то, чем вы владеете лучше всего, это аксиома эффективной работы. Но если у вас вдруг появилось немного времени на повышение вашей эффективности в целом, то попробую вас заинтересовать именно Vim'ом, сравнивая его с некой обобщенной IDE.


Узнать зачем и как начать
Всего голосов 100: ↑75 и ↓25+50
Комментарии401

PCB Ruler. Линейка радиолюбителя и краудфандинг во Вконтакте

Время на прочтение6 мин
Количество просмотров43K
Привет всем!
Я хочу поделиться с вами историей одного своего неожиданно очень успешного проекта. Наверняка вы уже видели в интернетах мою линейку радиолюбителя и речь пойдет именно о ней. Сегодня я изложу всю череду случайных событий, которая позволила мне собрать на него деньги с пользователей Вконтакте и выпустить этот продукт.


Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии131

ТВ-таймер обратного отсчета на микроконтроллере AVR

Время на прочтение10 мин
Количество просмотров14K
Первый результат

Однажды один мой друг спросил, на чем бы я сделал таймер обратного отсчета, чтобы на телевизоре показывал большие цифры. Понятно, что можно подключить ноутбук / iPad / Android и написать приложение, только ноутбук — громоздко, а написанием мобильных приложений ни друг, ни я никогда не занимались.

И тут я вспомнил, что видел в сети проекты тв-терминалов на микроконтроллере AVR. В голове сразу появилась идея объединить маленькие символы в большие и мы решили попробовать. Как-то само собой получилось, что основную работу пришлось делать мне.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии21

Исследование защищенности карты Тройка

Время на прочтение18 мин
Количество просмотров203K
Карта тройка

Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.

Цель данного исследования — выяснить защищенность системы электронного кошелька от подделки баланса, оценить безопасность инфраструктуры, работающей с картой. Вся работа была выполнена без использования специальных технических средств. Использовался дешевый смартфон на платформе Android и персональный компьютер. Общее время, затраченное на исследование, составило 15 дней.

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

Итогом исследования стала разработка приложения TroikaDumper, позволяющего эксплуатировать уязвимости системы электронного кошелька.

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.

Читать дальше →
Всего голосов 380: ↑374 и ↓6+368
Комментарии348

Легендарный Роберт Видлар. Параноик и отшельник

Время на прочтение12 мин
Количество просмотров21K
Имя Роберта Видлара стало известным еще во времена так называемого первого полупроводникового бума, он принимал активное участие во многих исследовательских работах, связанных с операционными усилителями. Уверенно можно сказать, что он был одной из важных фигур в ранних стартапах Кремниевой долины. Такие стартапы как Fairchild и National Semiconductor не остались без его прорывных идей и разработок. Параноик и отшельник, временами просто невыносимый тип, любитель побаловаться спиртными напитками… и гениальный инженер — Боб Видлар! Со слов коллег, Боб мог вывести из себя и раздраконить любого, но они должны были терпеть его выходки, так как электроника в те времена представляла собой область «творческих одиночек», одной такой одиночкой и был Роберт.



Кто не слышал о таком процессе как «видларизация»? Процесс представляет собой уничтожение бракованных деталей и неработающих прототипов не чем иным, как молотком. Видлар был очень нетерпим к такого рода «неполадкам», поэтому, вооружившись молотком, беспощадно отправлял их на свалку: "… топор висел в его кабинете на видном месте и по совместительству служил антистеплером: Видлар отрубал им сшитые уголки бумаг. Вероятно, таких бумаг было очень много: Видлар делал копии всего, что ему довелось прочитать". Интересным способом Боб боролся «с громкими звуками», которые просто-напросто не переносил. Лично у себя в рабочем кабинете инженер установил устройство, которое в случае, если посетитель поднимал голос или начинал кричать на Видлара, издавало пронзительный свист. «The Hassler» — так коллеги обозвали данный прибор (от англ.- донимать).
читать дальше
Всего голосов 34: ↑31 и ↓3+28
Комментарии16

Junior FPGA Design Engineer: как стать?

Время на прочтение11 мин
Количество просмотров144K
Всем привет!

Иногда начинающие разработчики не очень хорошо представляют, какую литературу надо читать для серьезного изучения того или иного языка.

Разработка под FPGA (ПЛИС) — это не просто какой-то язык. Это очень объемная область, с огромным количеством подводных камней и нюансов.

В этой статье вы найдете:
  • список тем, которые должен освоить начинающий разработчик под FPGA
  • рекомендуемую литературу по каждой из тем
  • набор тестовых вопросов и лабораторных работ
  • классические ошибки новичков (и советы по исправлению)

Добро пожаловать под кат!
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии58

Программирование и отладка микроконтроллеров ARM Cortex-M4 фирмы Atmel в среде операционной системы Linux. Часть 1

Время на прочтение10 мин
Количество просмотров30K
Представляем электронную версию статьи из номера №2 за 2016 год журнала Компоненты и технологии. Автор Курниц Андрей.

В статье описан процесс развертывания экосистемы разработки приложений для микроконтроллеров Atmel серии SAM4S в среде операционной системы Linux. Читатель познакомится также с оценочной платой SAM4S-EK и семейством ARM Cortex-M4 микроконтроллеров фирмы Atmel. Приведены рекомендации по работе с адаптером отладки SAM-ICE (он же J-LINK) и программой OpenOCD.

Введение


Выбор операционной системы Linux в качестве среды для программирования микроконтроллеров ARM Cortex-M4 фирмы Atmel сложно назвать общепринятой практикой. Напротив, для разработки под свои микроконтроллеры Atmel свободно распространяет среду Atmel Studio 7, предназначенную исключительно для операционных систем Windows. Не будет секретом и тот факт, что разворачивание и настройка среды Atmel Studio 7 для новичка окажется куда проще, чем выбранный автором путь.
Автор предлагает использовать среду разработки Qt Creator в связке с инструментарием для кросс-компиляции GCC и с пакетом OpenOCD для отладки. В качестве операционной системы автор выбрал Linux Lubuntu 14.04 LTS (выполняющуюся на виртуальной машине, но это не существенно). Такой подход позволяет с легкостью переходить на другие ARM (и не только) микроконтроллеры, не меняя при этом привычный комплект инструментов. Например, в [1] приводится пример разработки для микроконтроллеров STM32F4 фирмы ST microelectronics с применением такого же комплекта инструментов.
Несколько слов об используемой терминологии. Аппаратное устройство, которое подключается к целевому микроконтроллеру и к рабочей станции, далее называется отладочным адаптером. Отладчиком же будет называться компьютерная программа, служащая для пошагового выполнения программы, просмотра значений ячеек памяти и т.д.

Аппаратная платформа



Рис. 1. Внешний вид платы SAM4S-EK с подключенным отладочным адаптером.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии15

Более чем 80 средств мониторинга системы Linux

Время на прочтение12 мин
Количество просмотров320K
Ниже будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.



1. первый инструмент — top

Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
читать дальше
Всего голосов 94: ↑82 и ↓12+70
Комментарии68

Сравнение компиляторов для разработки на микроконтроллерах с ядром ARM Cortex-M

Время на прочтение18 мин
Количество просмотров23K

В этой статье протестируем 3-и компилятора для микроконтроллеров Kinetis с ядром ARM Cortex-M4.
Запустим тесты CoreMark, Whetstone, Dhrystone.
Исследуем алгоритмы сжатия с минимальным потреблением ОЗУ и выясним как влияют на их быстродействие разные компиляторы.
И даже попытаемся узнать насколько отстает Kinetis по быстродействию от Intel Core I7.




Предыдущие статьи о разработке на микроконтроллерах Kinetis:

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии8

Рудольф Сворень — человек легенда (автор классики — «Электроника шаг за шагом»)

Время на прочтение7 мин
Количество просмотров44K
Сегодня день Космонавтики — в такие дни мы всегда испытываем гордость за страну, за людей, благодаря кому наша страна (в то время Советский Союз) достигла таких высот. Каждое достижение — это результат работы многих людей, работы энтузиастов — людей влюбленных в своё дело. И человек о котором мы сегодня хотим рассказать — так же внес свой вклад в развитие просвещения, знаний и зарождение любви к техническому творчеству среди молодежи.

Книга “Электроника шаг за шагом” — возможно знакома многим, кто увлекся электроникой в детстве, многие отмечают простоту и доступность материала. Её автор — Рудольф Сворень, человек знаменательный, но мало известный современниками. И мы хотели бы опубликовать его воспоминания.

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

Этот человек чьи книги по основам радио-электроники выпускались миллионными тиражами в СССР, и внесли вклад в появление увлеченных электроникой людей.

Материалы публикуются впервые. Руслан — это tirus — благодаря его усилиям, удалось установить контакт с Рудольфом Анатольевичем (в США).


Дорогой Руслан! Я обещал Вам рассказать о том, как из радиоинженера получился профессиональный журналист и сейчас попробую это сделать. Начну с конца – в январе 1950 года (в возрасте 23 года) я окончил Одесский электротехнический институт связи (ОЭИС) с профессией «Инженер-электрик радиосвязи». По законам того времени получил назначение на работу в городе Фрунзе (ныне Бишкек) в Министерстве связи Киргизии. Перед отъездом из Одессы я поженился с пианисткой Екатериной Заславской, которая жила с братом, матерью и отчимом (отец погиб на фронте) в одной комнате на первом этаже старого одноэтажного дома недалеко от одесского вокзала. Мы с Катей прожили вместе более 50 лет.

Первое время во Фрунзе я работал дежурным инженером на местном средневолновом радиовещательном передатчике. Довольно быстро привык к непривычному – к совершенно непонятным мне радиопередачам на киргизском языке, к мощным усилительным лампам метровых размеров с водяным охлаждением, к высокой передающей антенне (высотой метров двести), к жестким правилам техники безопасности. Скажем к тому, что определенный тип объявлений (например, «На антенне работают люди») имеет право снять только лично тот человек, который объявление повесил. Я запомнил это на всю жизнь.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии36

Поддержание положения в сервоприводе: подчинённое регулирование vs шаговый режим

Время на прочтение22 мин
Количество просмотров78K

После выхода предыдущих статьей о векторном управлении электродвигателями поступило много вопросов о позиционном приводе – как приводом отрабатывать заданное положение? Как работает сервопривод в современных станках, как использовать сигнал с датчика положения, чем отличается шаговый привод от сервопривода с подчиненным регулированием? Давайте всё покажу в виде картинок и видео.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии63

Функциональный DDS rенератор на ПЛИС

Время на прочтение11 мин
Количество просмотров74K
Недавно я увидел проект генератора сигналов на микроконтроллере AVR. Принцип генерации — DDS, на базе библиотеки Jesper максимальная частота — 65534 Гц (и до 8 МГц HS выход с меандром). И тут я подумал, что генератор — отличная задача, где ПЛИС сможет показать себя в лучшем виде. В качестве спортивного интереса я решил повторить проект на ПЛИС, при этом по срокам уложиться в два выходных дня, а параметры получить не строго определенные, а максимально возможные. Что из этого получилось, можно узнать под катом

Что получилось?
Всего голосов 26: ↑26 и ↓0+26
Комментарии36

Реверс-инжиниринг лазерного датчика расстояния

Время на прочтение11 мин
Количество просмотров41K
image
Однажды ко мне попал нерабочий лазерный датчик расстояния Keyence LK-G407. Мало того, что он был нерабочий, так его еще и нельзя было использовать без специального управляющего блока. Но ведь у датчика такие интересные характеристики: измерение расстояния с точностью до единиц микрон, и скорость работы — 50 килоизмерений/с. Так что, чтобы запустить его, придется заметно поковыряться в самом датчике, заодно и ценный опыт получить.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии22

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность