вторник, 22 июля 2014 г.

четверг, 10 июля 2014 г.

Доводим до ума планшет Irbis TD72

На днях я практически случайно прикупил себе такой планшет, как Irbis TD72 - как и многие другие обладатели этого девайса, зашёл в "О'Кей" за продуктами, увидел планшет по весьма сооблазнительной цене, и решил попробовать, что же это вообще такое.



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



среда, 28 мая 2014 г.

Зарисовки о командировке в Новый Порт

Делюсь с Вами впечатлениями о командировке за Полярный круг, на Новопортовское месторождение (Ямал), если интересно - добро пожаловать под кат!

среда, 22 января 2014 г.

Зарабатываем на мощности своего компьютера

В одном из предыдущих сообщений были рассмотрены криптовалюты, типа litecoin и bitcoin, в этом - рассмотрим, как можно получить немного этих самых криптомонет.

четверг, 26 декабря 2013 г.

Медиаплеер из Raspberry Pi

Сегодня у меня, наконец, заработал звук в Raspberry Pi под Gentoo linux, ура!

Раньше сама система работала устойчиво и не зависала, однако попытка проиграть какой-либо звук заканчивалась выводом в dmesg сообщений типа: [AO_ALSA] Playback open error: Operation not permitted, за которыми следовало зависание системы. Порывшись на форумах, я понял, что весь вопрос - в загрузочных файлах (похоже, в файле start.elf), который инициализирует железо при запуске системы. Для устранения проблемы идём на github, скачиваем весь проект firmware в виде zip, распаковываем его, и копируем все файлы, кроме тех, что начинаются с kernel*, в директорию /boot на нашем Pi (вообще, похоже, что играет роль один файл - start.elf, остальные я скопировал только из соображений перестраховки), после чего перезагружаем Pi. Ура, заработало!

Однако, просто рабочий звук - это хорошо, но мало, надо бы добавить функциональности, сделать из Pi медиаплеер, например, для прослушивания интернет-радио. Для этого отлично подойдёт MPD. Устанавливаем его как обычно:

emerge -av mpd

Проверьте USE-флаги, нам потребуются alsa, network, tcpd, остальные - по желанию.
После установки - нужно запустить демона, и добавить его в автозапуск

rc-update add mpd default && /etc/init.d/mpd restart

Теперь у нас есть работающий MPD на Pi, дело за малым - за клиентом.

Клиентов для MPD есть огромное множество. Я для себя выбрал Cantata для ПК, и  MPDroid - для смартфона. Настройки клиентов очень просты, нужно указать только IP-адрес MPD-сервера, и пароль, идентичный указанному в /etc/mpd.conf на сервере.

Интерфейс Cantata

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

вторник, 10 сентября 2013 г.

Немного о криптовалютах (Bitcoin и другие).

Наверное, все уже хотя бы вскользь, да слышали о такой штуке, как Bitcoin. Что это такое? Для чего это нужно? В общих словах, Bitcoin - это виртуальная валюта, виртуальные деньги, имеющие ряд интересных особеннсотей:
  • Bitcoin (и подобные ей валюты) не имеет единого центра управления, единого центра эмиссии валюты и обработки транзакций. Наверное, это основное отличие таких денег от каких-либо других, имевших хождение ранее. У "обычных" валют есть регулятор - Центральный Банк, Казначейство или какое-то подобное заведение, которое регулирует количество валюты в обращении, печатая новые деньги, когда посчитает это нужным. В случае с Bitcoin такого центра нет.
  • Эта валюта потенциально анонимна, кошелёк не привязывается ни к имени, ни к паспорту, ни  к каким-либо другим персональным данным владельца. Ближайшим аналогом являются наличные деньги: Вы можете потерять их, их могут украсть, но и контролировать их для третьих лиц сложнее, чем счёт в банке.
  • Общий объём денег, которые принципиально могут быть в обращении, заранее ограничен на отметке 21 млн единиц, что делает невозможным включение "печатного станка" и перераспределение ресурсов к тем, кто владеет этим станком.
  • В отличие от других валют, Bitcoin требует определённых вычислительных затрат для генерации новых денег (эмиссии), что делает его похожим на золото (которое требует усилий для поиска , и не может быть получено простым включением печатного станка).
Такой набор особенностей делает эту валюту как минимум, интересной для рассмотрения.

Децентрализация валюты обеспечивается тем, что клиенты в сети обмениваются между собой информацией о всех производимых транзакциях, т.е. если кто-то потратил деньги (переслал их на счёт продавца пиццы, например) - это видит вся сеть, и после этого, чтобы продавец смог потратить куда-либо эти биткоины, он должен воспользоваться своей парой "публичный ключ"-"открытый ключ", тем самым подтверждая, что именно ему были отосланы эти деньги. При отправке куда-либо продавец указывает нового получателя, и шифрует сообщение его открытым ключом, соответственно теперь потратить деньги может только новый получатель, обладающий соответствующим секретным ключом. Минус такой системы в том, что при утрате ключей воспользоваться деньгами невозможно. Транзакции в системе объединяются в блоки, каждый из которых содержит ссылку на предыдущий блок, что даёт возможность отследить весь путь денег от момента их появления до текущего момента. При этом в блоках есть bitcoin-адреса тех, через кого прошли деньги, но какой-либо другой информации о получателях-отправителях, как, например, фамилия-имя-отчество, номер кредитной карты и прочее, нет, т.е. сами по себе транзакции анонимны.

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

В системе Bitcoin использовается хеш-функция SHA-256 , в основе которой лежит большое количество битовых сдвигов, и число подбирается простым перебором вариантов.
Изначально, пока сложность была совсем небольшой - майнинг вёлся на центральных процессорах обычных компьютеров, но достаточно быстро процессоры уступили место GPGPU - они давали существенный прирост в скорости и энергоэффективности. Для увеличения скорости майнинга собирались системы, содержащие несколько GPU на одной плате, и таких плат было несколько (всё определялось бюджетом майнера).

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

В таблице, приведённой по ссылке выше, кроме CPU и GPU устройств есть ещё ASIC и FPGA. Что это за штуки? Грубо говоря, это специализированные микросхемы, которые умеют только майнить bitcoin'ы, и ни на что больше не годятся. В основе Bitcoin-системы лежит алгоритм хеширования SHA-256, который предполагает большое количество битовых сдвигов и некоторое количество операций сложения. Для реализации этого алгоритма нужно совсем немного быстрой памяти и устройства сложения. Если сделать такой блок достаточно компактным, и разместить на кристалле большое число таких блоков - то в результате получим микросхему, которая способна выдавать фантастическую скорость хеширования при небольшой потребляемой мощности. Такие системы продаются под марками Avalon, Butterfly Labs, BitFury.

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

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

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


пятница, 2 августа 2013 г.

Небыстрый путь к STM32

Почитав в интернете статьи про дешевизну и богатые возможности STM32, я решил, что хочу "пощупать" эти чудесные и недорогие контроллеры на практике. Для начала был прикуплен программатор J-Link, и собрана простенькая схема, только питание и разъём программирования (JTAG).

Тот самый китайский J-link.

Один из вариантов минимальной схемы на отладочной плате.


Однако, схема работать не стала. Подавляющее большинство статей в интернете про самоделки на ST сводилось к миганию светодиодиком на готовой макетной плате типа Discovery, и на вопрос о том, почему не работает самопал, ответа они не давали.
Один из вариантов после многочисленных перепаек.

Ещё одна попытка.


Далее я распаял ещё несколько плат, но уже с использованием паяльной станции, чтобы избежать перегрева кристалла - но и они работать не стали.


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

Discovery, содержащий на борту SWD-программатор.

Путём проб и ошибок я выяснил, что для работы STM32 необходимо подключение питания не только на VCC и на VDD, но и на AVCC и AVDD, даже если Вы не планируете использовать аналоговые устройства (ЦАП, АЦП, компараторы). Без подачи питания на аналоговую часть - микросхема работать не будет. Кроме питания для запуска ничего не требуется, внешние кварцы не нужны. На внутреннем генераторе микросхема неплохо разгоняется, и при заявленых 24 МГц контроллер стабильно работает на 56МГц, и при этом никакого заметного нагрева микросхемы нет.

Заработало!

Теперь, по мере возможностей по времени, я буду продолжать эксперименты, и постепенно делать систему управления светом в доме на STM32.