i386, amd64, crypto

Есть у меня очень удобный Eee PC 1015B. Маленький, живет 6 часов от батарейки, потерять не жалко… Ну точнее как не жалко, сама железка стоила 10 тысяч несколько лет назад или даже дешевле, а сегодня таких почему-то больше не делают, так что, если потерять, то не понятно будет чем заменить. Это с одной стороны. С другой стороны, там есть некоторое количество информации, приватность которой меня волнует. Понятно, что надо всё шифровать и т.п.
В тот момент, когда я эту железку купил, шифрование всего диска требовало каких-то телодвижений, а мне было то ли некогда, то ли лень, то ли всё сразу, поэтому я ограничился тем, что все, что очень надо, шифровал в юзерспейсе. Некоторое время назад, инсталлируя очередной ноутбук, использовал cryptsetup прямо из инсталлятора и обнаружил, что он вообще ничего не требует и нормально работает. Так что подумал о том, чтобы всё-таки зашифровать содержимое EeePC.
Решил не париться, проинсталлировать его с нуля, заодно перейти с i386 на amd64, который теперь уже совсем-совсем дозрел. Но так как в нетбуке стоит слабенький Brazos, были некоторые опасения, не станет ли он совсем тормозить из-за дополнительного шифрования. Поэтому померил его производительность старым добрым бенчмарком “Собери ядро 3.16”.
Тестируемая система:
ASUS EeePC 1015B
AMD Brazos C-50 (1ГГц, 2 ядра (на самом деле что-то вроде HyperThreading), 64bit)
RAM 4GB
SSD 256GB (какой-то A-Data)
Результаты:
i386 без шифрования

$ time make -j2 modules
real 241m20.022s
user 443m10.388s
sys 21m6.952s

i386 (chroot на amd64 хосте) с шифрованием

$ time make -j2 modules
real 244m18.927s
user 445m4.748s
sys 21m45.132s

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

$ time make -j2 modules
real 222m59.369s
user 381m12.240s
sys 29m23.844s

Выигрыш – 10%.
График:

Удаление письма из хранилища dovecot

Отправил случайно в список рассылки письмо на много десятков мегабайт и оно разлетелось по всем разработчикам, что не есть хорошо, потому что у всех почта на нашем сервере и сразу полгига места ушло.
Решил удалить его прямо у пользователей из Maildir’ов. Вначале убедился, что ищутся правильные письма:
doveadm search -A FROM git@lvk.cs.msu.su LARGER 10M HEADER X-Git-Newrev 252417435200cca7d6ac33b8be24018100513527
Вроде, всё Ok, пытаюсь удалить:
doveadm -D expunge -A FROM git@lvk.cs.msu.su LARGER 10M HEADER X-Git-Newrev 252417435200cca7d6ac33b8be24018100513527
Получаю:

To avoid accidents, search query must contain MAILBOX in all search branches

Ну, в принципе, логично и правильно, от греха… Но у меня-то случай особый! =) Понятия не имею кто по каким папкам раскладывает коммит-логи, так что надо всё-таки удалять из всех, а не только из явно перечисленных. Пришлось в изысканиях дойти до исходников, где нашел, что можно указать не конкретную папку, а globe:
doveadm -D expunge -A mailbox '*' FROM git@lvk.cs.msu.su LARGER 10M HEADER X-Git-Newrev 252417435200cca7d6ac33b8be24018100513527
Вот так сработало.

The smallest video monitoring daemon ever

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

Лицензирование ПО в современном мире

Рассказывал сегодня про лицензирование ПО (в первую очередь про свободные лицензии).

Исходник тут.
Очень понравилось как работает libreoffice-presenter-console. (Надо ставить отдельно пакетом.) Must Have.

Три радостные новости

Хочу поделиться несколькими радостными для меня историями, которые случились за последние дни. Просто потому, что на весьма мрачном информационном фоне человеку (как минимум мне) необходимы какие-то светлые моменты, чтобы не впадать в депрессию.
Во-первых, антивоенное шествие в воскресенье.
Если честно, то меня уже начало несколько угнетать обилие империалистической риторики вокруг. В том числе довольно неплохие в общем люди начинают нести пургу (оценочное суждение) про “Россия встала с колен и погрозила кулаком США”, “Крым – русская земля”, “надо защитить русских от ужасных бендеровцев” и т.п. Это очень угнетает, в голову лезут мысли об эмиграции и массовых расстрелах. Мне в такой ситуации очень помогает вид нескольких десятков тысяч людей, мыслящих адекватно (оценочное суждение) и не боящихся заявить о своей позиции.
В воскресенье всё это было. Спасибо вам, люди, меня немного отпустило, ощущение тотального пиздеца стало менее эмоциональным и гнетущим.
Во-вторых, совершенно случайно, читая какой-то пост в фейсбуке наткнулся на комментарий и залип. У любого человека есть в жизни некие авторитеты, люди чье мнение для него важно и значимо. Очень дискомфортно бывает, когда вдруг узнаешь, что ваши мнения по какому-то острому вопросу кардинально не совпадают.
Так вот, среди комментаторов я увидел очень авторитетного для меня человека, человека, который по сути научил меня мыслить связно, критически, научил меня излагать свои мысли вербально и на бумаге. Это была моя учительница литературы.
Школьные учителя в нашей стране – это очень непростой контингент. Работая в избирательных комиссиях, я насмотрелся на лицемерных лгунов, которые учат детей чему-то хорошему, а сами занимаются грязными фальсификациями. Их сознание – очень тёмный лес.
Каково же было моё удивление, когда я увидел учителя, пожилого в общем-то человека, который внятно и четко высказывает свою позицию в комментариях в фейсбуке, и эта позиция мне понятна и близка.
Очень радостно было встретить Любовь Аркадьевну в этом вашем Интернете.
Ну и последнее.
Несмотря ни на что, хороших людей становится больше. Или нет, не так. Мы стали более лучше собирать деньги на хорошие дела.
Нас приучал к этому Навальный, собиравший на свои проекты, приучал Алешковский, помогающий то пострадавшим от наводнений, то пострадавшим от пожаров, приучали правозащитники и руководители фондов помощи больным. И мы научились.
Есть люди, воссоздавшие исторический парусник “Штандарт”. Они влюблены в свое дело и делятся своей любовью с окружающими, учат желающих ходить на паруснике, участвуют в парадах, праздниках и исторических регатах. Как многие мальчишки, зачитывавшиеся в детстве книгами о море, я с завистью смотрю на участвующих в этом проекте и очень надеюсь когда-нибудь выйти с ними в море. (Например этой зимой они предлагали катать туристов по офигенным маршрутам на Канарах.)
Так к чему я всё это… Команда Штандарта объявила краудфандинговый проект по сбору средств на замену парусного вооружения. Это стоит им 450 тысяч на материал и еще как минимум столько же на работу. Каково же было их удивление, когда первые 450 тысяч они собрали за неполные 4 дня.
Это очень здорово, я считаю, что находятся люди, которые готовы помогать другим делать хорошие и нужные вещи. Это значит, что не смотря ни на что, наше общество развивается в правильном направлении и когда-нибудь у нас всё будет хорошо.
Вот такие вот у меня радостные новости для вас. А теперь сходите сюда и добавьте что-нибудь от себя. Не смотрите, что 450 уже собрано, еще не меньше 600 надо на работу, так что любая помощь будет к месту.

Update Seagate firmware from Linux

Нашел тут вчера пару Seagate Barracuda 7200.12 (ST31000528AS). Тех самых, на которых надо обязательно обновлять прошивку. И задался вопросом как бы ее обновить.
С Виндой и загрузочным CD как-то не задалось, поэтому попытался понять, как сделать это из-под линукса. Почему-то гугл давал много ссылок но ни одной по теме, поэтому пришлось поискать.
Итак, вам понадобятся:

  1. Файл с новой прошивкой
  2. Утилита hdparm
  3. Готовность к тому, что диск в результате будет испорчен

Прошивка:
Скачиваем iso с сайта Seagate (в моем случае это был Barracuda12-ALL-CC49.iso), вытаскиваем из него RAM-образ (у меня он назывался PH-CC49.ima), монтируем его как loop-устройство и находим в нем архив с прошивками LOD.zip
В архиве обнаружилось несколько LOD-файлов с прошивками, что несколько запутывает, но судя по этому файлу это версии прошивок для дисков одного семейства, но с разным числом головок, и в моем случае нужна была прошивка PHCC494H.LOD
А вот для Seagate Barracuda ES.2 история была чуть другая. Я скачал файл ES2SN06C-1D2DMoose.iso, но в нем была только какая-то ненужная ерунда, а прошивка была интегрирована в загрузочный образ. Так что мне потребовалось вначале вытащить загрузочный образ командой geteltorito ES2SN06C-1D2DMoose.iso > boot.img и уже в нем обнаружился 1D2DSN06.LOD.
В ряде мест упоминалось, что прошивку можно залить при помощи утилиты sg_write_buffer, но у меня это не заработало. Зато сработала команда hdparm --fwdownload
Была прошивка:
# smartctl -a /dev/sdb
Model Family:     Seagate Barracuda 7200.12
Device Model:     ST31000528AS
Firmware Version: CC38

Заливаем новую:
# hdparm --fwdownload PHCC494H.LOD /dev/sdb
Выключаем компьютер по питанию (перезагрузки недостаточно), включаем назад:
# smartctl -a /dev/sdb
Model Family:     Seagate Barracuda 7200.12
Device Model:     ST31000528AS
Firmware Version: CC49

Всё получилось!
Еще раз делаем это на свой страх и риск с готовностью потерять диск совсем (ну hdparm у вас это уточнит). И конечно загрузившись не с того диска, который перепрошиваем.
 
And one more time for Google spider =)
You can update Seagate HDD firmware from Linux with hdparm command.
First you should find the propper firmware in LOD format (E.g. dowload iso from vendor site, get .IMA image from it, and extract LOD.ZIP archive with firmwares from that image.)
If you don’t see image file in .iso, you can try to extract it from ElTorito boot, like I did for my Seagate Barracuda ES.2:
geteltorito ES2SN06C-1D2DMoose.iso > boot.img
And inside this boot.img I found 1D2DSN06.LOD.
Then upload firmware into hdd with
# hdparm --fwdownload <firmware.LOD> /dev/<HDD>
That’s it!

Приходите на выборы! Мы посчитаем ВАШ голос!

Друзья.
Так получается, что в это воскресенье произойдет довольно важное в современной истории России событие. В Москве впервые за очень долгое время пройдут выборы мэра. Конечно не стоит обольщаться и думать, что эти выборы честные: мы видели и активное применение административного ресурса, и заказную чернуху в федеральных СМИ, и просто откровенную ложь. Но тем не менее у этих выборов есть 3 очень важных особенности:
1. Впервые за долгое время в выборах принимает участие представитель настоящей, а не “системной” оппозиции и Алексей Навальный сумел создать вокруг себя настоящую избирательную кампанию.
2. В избирательных комиссиях достаточно много независимых членов и им будет помогать внушительный корпус наблюдателей.
3. Власть в лице ИО мэра С.С.Собянина и председателя МГИК В.П.Горбунова сделала довольно много шагов, чтобы с формальной точки зрения количество нарушений было минимально.

Всё это позволяет надеяться на то, что исход выборов будет реально зависеть от того, как поставят галочки избиратели, а фальсификации составят единицы процентов.
При всем при этом, ко дню голосования Москва подошла с уникальной диспозицией: за кандидата от власти согласны отдать свой голос менее половины избирателей (но, возможно и более половины тех, кто обычно ходит на выборы, а не сидит дома).
Я не имею права агитировать вас голосовать за или против того или иного кандидата, да и не думаю, что это осмысленно. Но мне кажется, что вам стоит прийти на эти выборы и проголосовать так, как вам кажется правильным.
Никакие отговорки, что “за нас уже всё решили”, “от моего голоса ничего не зависит” и “да ну ее эту политику” больше не работают.
Я и мои коллеги поступились своим свободным временем именно ради того, чтобы ВАШ голос был посчитан и посчитан правильно. Проявите, пожалуйста, уважение к нам, проявите сознательность перед своими детьми и своей страной.
В конце концов, получается так, что это не просто выборы мэра, а референдум доверия существующей системе: хотите вы и дальше жить в путинской стабильности или желаете видеть в политике новые лица и новые мысли.
Приходите на выборы, голосуйте за того кандидата, который вам нравится, или за того, который наименее отвратителен, хотите голосуйте против всех, перечеркнув бюллетень (да, такой графы нет, но число “испорченных бюллетеней” это тоже показатель, который говорит о мнении части общества), главное чтобы это был наш с вами выбор.
P.S. Конечно, не только Москва выбирает послезавтра. В Московской области и многих других регионах тоже проходят выборы (я, например, буду принимать участие в работе УИК №76 г.о.Балашиха) и жителей этих регионов я тоже призываю не забыть исполнить свой гражданский долг, но так уж получилось, что именно Москва сейчас является тем местом, где решается наше будущее.

Мобильный интернет в роуминге

В недавней поездке (надеюсь про нее еще написать) в Прибалтику столкнулся с забавным ощущением:
Не хватает мобильного интернета, так чтобы всегда и везде. Вот такая вредная привычка.
В качестве решения была куплена местная симка. Про это отдельный разговор, если коротко, надо искать брендированные магазины в моллах, чтобы там были адекватные консультанты, которые переведут на правильный тарифный план и включат нужную опцию. Потому что в комплектной документации многих опций просто нет, а на сайтах операторов черт ногу сломит. В итоге пакет трафика 300МБ на неделю стоит в этих европах вместе с симкой меньше двух евро.
В общем симку я купил, но тут встала другая проблема: очень не хотелось выключать свой домашний номер. Да и даже переставлять домашнюю симку в другой телефон не хотелось, потому что записная книжка, удобный способ набирать СМС и т.п. Из проблемы выкрутился воткнув местную симку в андроид жены (да я тиран) и расшарив оттуда интернет по WiFi. У данного решения несомненный минус в том, что андроид в режиме роутера разряжается ну очень быстро. Да и не всегда есть второй телефон с андроидом, на котором можно такое провернуть.
Поэтому, приехав домой, озадачился поиском устройства, которое работало бы от аккумулятора, принимало 3G и раздавало бы его по WiFi на несколько абонентов. Конечно же такие устройства существуют. Называются у маркетологов “3G роутеры” или “3G WiFi роутеры” или еще WiMi роутеры. Результатами небольшого изучения рынка и хочется поделиться.
В основном продаются устройства произведенные ZTE и Huawei. При выборе стоит отдавать предпочтение именно Huawei. Они вроде как более стабильно работают, дольше живут и их проще бывает разлочить, если покупается брендированное устройство от провайдера.
Собственно с покупкой и ценами дела обстоят так же как и с USB 3G модемами. У провайдеров (Beeline, МТС, Мегафон) они продаются по довольно неплохим ценам. Может даже по себестоимости. Проблемы:

  • Продаются старые модели (двух-летней давности и больше).
  • В продаже их не всегда бывает (по крайней мере месяц назад ни у кого из провайдеров на сайте их не было в наличии, в салонах не искал).
  • Они продаются залоченные под конкретного оператора.
  • Никогда не ясно какая именно модель будет в коробке в надписью “Билайн 3G-роутер”.

Решения этих последних двух проблем существуют:

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

Но вот тот факт, что продаются только старые устройсва несколько меня опечалил, потому что новые поддерживают более быстрые модификации 3G, всякие там 3,5G 3,75G и что там еще бывает =). Новые модели живут дольше от батарей. У новых моделей есть гламурный OLED экранчик с информацией, а не просто 4 бездушных диода.
В итоге, изучив варианты я заказал себе незалоченный не брендированный Huawei E586 (по факту E586Bs) на aliexpress.com за $110 с доставкой. В Москву он добрался за две недели. Теперь жду следующей поездки, чтобы оценить его в полевых условиях.
Ну а на будущее может иметь смысл обратить внимание на Huawei E589, который умеет 4G aka LTE в дополнение к HSPA+/HSPA/UMTS (3G) и EDGE/GPRS/GSM (2G). Но пока он слишком дорог и не понятно, продаётся ли вообще.

Ремонт Sigma EF-500 DG ST

Как-то я решил купить себе внешнюю вспышку для зеркалки. В то время Nikon SB-600 стоил около 6 тысяч, а аналогичная по мощности (но попроще по электронике) Sigma EF-500 DG ST стоила 3,5.
Так как мне в общем не так и надо было дистанционное управление, умные настройки и т.п., а денег в то время лишних совсем не было, то купил я Сигму. И очень зря.

  • Во-первых, iTTL в ней довольно посредственный. То есть она вроде как управляется с камеры, но переодически ошибается (чаще всего недосвечивает, хотя изредка и наоборот).
  • Во-вторых, в ней нет режима iTTL-BL, приходится в ручную выставлять бОльшую мощность на камере.
  • Ну и в-третьих, она у меня сдохла меньше чем через год.

В общем купил я себе тогда Nikon SB-600 и не пожалел.
С тех пор года 3 прошло, нашел вчера Сигму в ящике и решил-таки глянуть что с ней. Оказалось оторвался проводок между платой и двигащейся лампой. Судя по обилию сообщений в интернетах про “оторванный белый проводок” это у них родовая болезнь. Ну в общем вот краткая инструкция по разборке и ремонту этой вспышки.
Для ремонта понадобятся:

  • часовая крестовая отвертка;
  • часовая (или просто небольшая) плоская отвертка;
  • паяльник;
  • небольшой гибкий проводок (многопроволочная жила, лучше медный);
  • руки.

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


Половина корпуса снимается, и можно посмотреть, что же там внутри:

У меня оторвался вот этот белый проводок от красной катушки:

Судя по всему это просчет разработчиков, потому что проводок очень тонкий и явно не выдерживает постоянного передвижения платформы с лампой.
Его можно просто зачистить и подпаять на место, но он все равно опять отвалится через какое-то время. Так что я его нарастил чуть более толстым проводком с медной многопроволочной жилой так чтобы при сгибании-разгибании основная нагрузка приходилась на него.
Собираем вспышку в обратном порядке.
PS Никому вспышка не нужна? Sigma EF-500 DG ST for Nikon. Состояние – почти новая =)