Линуксоид и электронщик
Контроллер для аквариума без Arduino

Отец попросил меня сделать автоматическую кормушку для аквариума. Не хотелось ему летом ездить каждый день с дачи домой, чтобы только покормить рыбок. Сначала я отправился с ним по китайским магазинам, там такую штуку можно за $10 купить, но он ничего не выбрал и пришлось кормушку делать самому.
Что и зачем ищут на сайтах «боты тёмной стороны силы»
Удивительное устройство USB-флешки Kingston DataTraveler DT6000 и восстановление информации, утраченной в результате сбоя
Несмотря на то, что перевидать всяких девайсов довелось огромную кучу, с задачей, подобно описываемой далее, раньше мне сталкиваться не приходилось.
Искусственный рассвет

— А, что ж так темно-то, Господи? © День радио.
Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
Чтобы распознавать картинки, не нужно распознавать картинки

Это совершенно обычная фотография, найденная в Гугле по запросу «железная дорога». И сама дорога тоже ничем особенным не отличается.
Что будет, если убрать это фото и попросить вас нарисовать железную дорогу по памяти?
Если вы ребенок лет семи, и никогда раньше не учились рисовать, то очень может быть, что у вас получится что-то такое:
Визуализация и декодирование данных с магнитных АТМ-карт
Для начала приведу сухие теоретические знания. Если теория не интересует — можно пропустить.
Ethernet поверх USB на STM32F4
Недавно возникла идея заставить плату на базе МК STM32F4 работать по сети. Поскольку на борту отсутствовал Ethernet PHY контроллер, то единственным вариантом было использовать USB FullSpeed интерфейс для эмуляции Ethernet устройства. Распространённый стандарт USB-класса, реализующий данную функцию, называется RNDIS.
К своему огорчению, поиск RNDIS драйвера для STM32 не увенчался успехом. Впрочем, это не удивило, т.к. открытые примеры использования USB порта у STM32 ограничиваются только теми, что предоставил нам производитель.
Захотелось исправить сию несправедливость. А заодно и поиметь нужные исходники, благо в будущем они пригодятся.
Сейчас, когда демонстрационная версия библиотеки готова, выкладываю её в свет на правах MIT-лицензии. Поэтому, все кому библиотека интересна — пользуйтесь «на здоровье». Библиотека имеет название LRNDIS, первая буква которого означает использование сетевого стека для встраиваемых систем «LwIP».
Для демонстрации возможностей библиотеки был создан пример на плате stm32f4discovery. Его работа заключается в поддержке основных сервисов (DHCP и DNS сервера) и передаче usb-хосту запрашиваемых WEB-страниц. Таким образом, наш discovery превратился в почти полноценный WEB-сервер, работающий по порту USB!
Пару слов о том, где это применимо.
В быту RNDIS устройства обычно являются USB-модемами для доступа в Интернет. Возможно, такое применение, действительно, окажется полезным, если разработчик выберет STM32 в роли связующей цепочки между ПК и радиочастотным (или другим) трансивером. Или, может быть, захочет расширить собственную сеть на Ethernet-сегмент?
Другое применение, в котором нахожу основную пользу для себя, — это интерфейс управления сложными устройствами. Типовое решение в этой области — создание терминального ПО. При этом приходится заниматься его поддержкой вместе с поддержкой устройства, что бывает неудобным. Собственно, в отказе от такой схемы в пользу управляющего Web-интерфейса и заключается смысл возможного применения библиотеки. Вспомните Web-интерфейсы настройки роутеров. Удобно. Красиво. Без лишнего ПО.
Итак, если Вы заинтересовались, читайте далее…
Продолжаем оптимизировать затраты с Yota
Как взломать двухфакторную аутентификацию Яндекса
Как работает двухфакторная аутентификация Яндекса?
В браузере отображается QR-код, юзер сканирует его специальным приложением, браузер сразу это чувствует и авторизует пользователя.
QR-код расшифровывается в ссылку вот такого вида:
yandex.ru/promo/2fa?track_id=38e701d0bb5abaf50d381c3f95e0f341a8
Внутри всего этого веб-страничка с QR-кодом постоянно опрашивает сервер в ожидании авторизации:
POST /auth/magic/status/ HTTP/1.1
Host: passport.yandex.ru
track_id=38e701d0bb5abaf50d381c3f95e0f341a8
Как только пользователь отсканирует приложением Яндекса QR-код, следующий такой запрос отдаст браузеру куку.
В чем здесь проблема?
Исследование механизма блокировки сайтов «Ростелекомом» и способы ее обхода
Управление «умной» BLE лампой без смартфона
Прошлым летом, когда началась неразбериха с рублём, я решил купить себе что-нибудь забавное, чего в нормальных ценовых условиях никогда не купил бы. Выбор пал на умную управляемую светодиодную лампу "Luminous BT Smart Bulb", про которую, собственно, прочитал до этого здесь же. По-хорошему, для начала нужно было бы купить смартфон с BLE, но на тот момент я не беспокоился о таких мелочах. Лампа приехала, мы немного поигрались с ней на работе, она оказалась довольно прикольной. Но я не мог управлять ею дома, поэтому она отправилась на полку. Один раз, правда, я одолжил лампу коллеге на день рождения маленького ребёнка.
Так продолжалось пока я случайно не узнал, что на моём ноутбуке как раз установлен чип Bluetooth 4.0. Я решил использовать этот факт как-нибудь для управления лампочкой. Программа-минимум — научиться включать/выключать лампочку, устанавливать произвольный цвет или выбирать один из заданных режимов. Что из этого вышло — читайте под катом.
PostgreSQL vs MySQL

В преддверии своего доклада на конференции PGCONF.RUSSIA 2015 я поделюсь некоторыми наблюдениями о важных различиях между СУБД MySQL и PostgreSQL. Этот материал будет полезен всем тем, кого уже не устраивают возможности и особенности MySQL, а также тем, кто делает первые шаги в Postgres. Конечно, не стоит рассматривать этот пост как исчерпывающий список различий, но для принятия решения в пользу той или иной СУБД его будет вполне достаточно.
STM32 и FreeRTOS. 2. Семафорим по-черному
В реальной жизни часто случается так, что некоторые события происходят с разной переодичностью (а могут и вообще не происходить). Скажем, заказ сока в «Макдональдсе», нажатие кнопки пользователем или заказ лыж в прокате. А наш могучий микроконтроллер должен все это обрабатывать. Но как это сделать наиболее удобно?
STM32 и FreeRTOS. 1. Развлечение с потоками
Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…

Raspberry и Telegram: предпосылки создания умного дома

Один итальянский магазинчик нащупал новые способы использования Телеграма (и ранее WhatsApp'а), установив его на одноплатный миниатюрный компьютер Raspberry Pi. Как выясняется, мессенджер можно использовать для удалённого общения с собственной техникой. Ниже – перевод статей (1, 2) с сайта Instructables.com. Если есть уточнения по переводу, напишите об этом в комментариях.
Как вернуть подчиненным интерес к работе
Зачем сытому медведю лезть в ледяную воду за рыбой, ведь для него есть много пищи на берегу. Кстати говоря, рацион медведя на 75% состоит из растительной пищи. Но мишка прыгает в реку и ловит лосося. Эта рыба поможет ему накопить жир к зиме и, в итоге, выжить.
Откуда медведь знает, что впереди зима, и ему нужно копить жир для спячки? Вряд ли он вообще знает, что такое жир. Он просто следует каким-то своим инстинктам и ныряет в воду.
Долгое время мне не давал покоя вопрос. Почему школьники готовы изучать характеристики сотен героев их любимой MMORPG, просчитывать сложнейшие стратегии и часами выполнять квест «собери 1000 волчьих шкур и получи достижение», но с огромным трудом заставляют себя решить несколько несложных примеров из домашнего задания, хотя знания принесут им больше пользы, чем цифры на экране.
Почему офисные работники готовы сутками собирать горох на веселой ферме, но постоянно откладывают выполнение своих рабочих заданий, за которые им платят зарплату и премии.
Казалось бы, поощрения в реальном мире должны мотивировать сильнее, чем эфемерные «ачивки» компьютерных игр. Человеку должно быть выгоднее тратить свое время на повышение своих профессиональных навыков и выполнение рабочих задач, ведь от этого напрямую зависит его материальный выигрыш. А выращенные кабачки на «ферме» не могут принести ничего, кроме ощущения потраченного впустую времени. Что заставляет людей переселяться из реального мира в виртуальный?
Природа хорошо постаралась, чтобы живые существа получали удовольствие не только от процесса еды, но и от ее добычи, иногда в не самых приятных условиях. Иначе медведь никогда бы не узнал вкус свежей рыбы, кошка не выжидала бы мышку часами, белка не собирала бы орехи (большую часть которых она никогда не съест).
Для этого природа придумала дофамин — гормон удовольствия при ожидании награды.
Задача «Надёжность логических схем»

Встраиваем бэкдор в Bitcoin (ECDSA) или еще раз о клептографии

Пользуешься неофициальными bitcoin клиентами? Есть повод присмотреться к ним повнимательней.
После реализации бэкдора для RSA мне стало интересно, как обстоят дела с остальными криптографическими примитивами. Оказывается, целая наука под названием клептография занимается передачей информации в так называемых «подсознательных» каналах. Таких, о которых никому не известно кроме отправителя и получателя. Вроде стеганографии, только внутри криптоалгоритмов.
Микроэлектроника для космоса и военных

На эти вопросы я и попробую ответить в этой статье.
Disclaimer: Сведения получены из открытых источников и могут быть не вполне точными. Я лично с военной электроникой не работаю, а кто работает — те статьи писать не могут. Буду рад дополнить и исправить статью.