вторник, 10 апреля 2012 г.

migrate custom GNOME3 keybindings from GConf to dconf

Quite natural need but was not implemented by GNOME team. Ok, can do it on our own!
1. Get em' from GConf:
cd `mktemp -d`
gconftool-2 --dump /desktop/gnome/keybindings | sed -n '/<key>custom/,/<key>[^c]/ p' > 1
2. Next, cut off xml garbage:
cat 1 | grep '<string' | sed 's|^.*<string>||;s|</string.*$||; s|&quot;|"|g; s|&lt;|<|g;s|&gt;|>|g' > 2
3. Now take these command/binding/name triplets into the dconf-compatible form:
i=0 ; while read v; do echo "[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$i]" ; echo command=\'$v\' ; read v ; echo binding=\'$v\' ; read v ; echo name=\'$v\' ; i=$(($i+1)); echo ; done < 2 > 3
4. Yau! Get it into the dconf!
dconf load / < 3
5. Now fix the custom-keybindings key in org/gnome/settings-daemon/plugins/media-keys
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings `egrep '^\[' 3 | sed "s|\[|'/|;s|\]|/'|" | tr '\n' , | sed 's|^|[|;s|,$|]|'`
That's it!

среда, 14 марта 2012 г.

ad-hoc wifi на Android

Как это водится в любом не-опенсорс продукте, в Андроиде есть вещи, которые невозможно понять и объяснить логически. Один из самых раздражающих примеров: отсутствие поддержки ad-hoc wifi (например, у меня дома для доступа в интернет через Wi-Fi используется ноутбук, подключённый к Beeline).
Впрочем, в таких случаях народ не сидит на месте, а пытается решить проблему своими силами. Гугль даст вам немало рецептов на эту тему, но ИМХО самым действенным и безопасным методом является правка конфигурационного файла wpa_supplicant.conf:
  1. скачиваем файл к себе на компьютер:
    adb pull /data/misc/wifi/wpa_supplicant.conf
  2. Правим файл: добавляем такие строки:
    eapol_version=2
    ap_scan=2

    network={
        ssid="ADHOCnet"
        scan_ssid=1
        key_mgmt=NONE
        priority=1
        mode=1
    # использовать, если установлен WEP-пароль
        wep_key0="use this param if needed"
    }
  3. сгружаем файл назад:
    adb push wpa_supplicant.conf /data/misc/wifi/
  4. поправляем права:
    adb shell chmod 666 /data/misc/wifi/wpa_supplicant.conf
(Трёх шестёрок бояться не нужно. Это всего лишь восьмеричное число.)
Ну а если Ваш кунг-фу как никогда силён, можете зайти на андроид и сделать всё прямо там, например, редактором vi.

Добавлено Чт дек 27 11:49:13 ALMT 2012:
Действительно, практика показала, что этот рецепт работает не всегда. Кроме диверсии с неподдержкой Ad-hoc в пользовательском интерфейсе (что обходится приведённым выше рецептом), бывает ещё "вырезанние" поддержки Ad-hoc из бинарника wpa_supplicant.

Конечно, если обойдётся только правкой wpa_supplicant.conf, это можно считать везением. Мне повезло дважды: на Samsung i5500 и RoverPad 3WT70 (на прошивке 2.3beta).
Cлучай с дефектным wpa_supplicant тяжёлый, и тут надо либо
  1. искать исправленные бинари wpa_supplicant в форумах
  2. брать патчи, и перекомпилировать самому
по пункту первому могу дать некоторые рекомендации (НЕКОТОРЫЕ ИЗ НИХ ОЧЕНЬ ОПАСНЫЕ!):
  1. Конечно, идеально взять файл, который сделан или проверен для Вашего гаджета и именно той прошивки, которая у Вас стоит. Вот очень правильный, "наш" ресурс.
  2. Если "готовенького" нет, то можно попробовать подобрать из того, что найдёт для Вас Google (типа такого запроса)
  3. перед установкой можно проверить:
    adb push wpa_supplicant /data/local
    adb shell chmod 755 /data/local/wpa_supplicant
    adb shell /data/local/wpa_supplicant -v
  4. И, таки, установить (примерно так, но если не знаете точно, что делают эти команды, НЕ ДЕЛАЙТЕ ТАК!):
    adb remount
    adb shell
    cd /system/bin
    cp wpa_supplicant wpa_supplicant.ORIG
    cat /data/local/wpa_supplicant > wpa_supplicant
удачи!

Добавлено Пт дек 28 17:15:34 ALMT 2012:
И, наконец, решение OVERKILL, если ничего больше не помогает, а Ad-hoc нужен любыми средствами, то можно обойти этого гадкого wpa_supplicant-а:
  1. добавить точку доступа в wpa_supplicant.conf, как написано выше
  2. adb shell iwconfig wlan0 mode Ad-hoc key "s:use this param if needed" essid "ADHOCnet"
Чуть погодя dhcp должен сам получить адрес и всё заработает!

вторник, 6 марта 2012 г.

h3970

(... ну что ж, манжеты заскучали без работы, и пора бы их использовать)

Есть у меня гаджет, один из любимых, т.к. мы провели с ним много приятных часов. Это iPaq H3970. К нему мне подарил один знакомый "пиджачок" с слотом PCMCIA и доп. батареей. В общем, он, конечно, морально устарел, но вполне боеспособен (64М RAM) и приятен в работе.
Родной для него WinCE продержался на нём не больше недели, после чего главной ОС для наладонника стал Familiar Linux, ныне почивший.
На нынешний момент главной проблемой этого наладонника является неполный порт последней серии ядер (2.6 и 3.0). То есть 2.4 на нём неплохо живёт, а в 2.6+ не хватает драйверов. Собственно этой проблемой я и хотел позаниматься в меру свободного времени, ещё начиная с отпуска прошлым летом. За прошедшее время я делал несколько подходов к нему. И всё полезное надо бы зафиксировать ... тут.

четверг, 1 марта 2012 г.

видео-кодек для Nokia N900

Путём экспериментирования установлено, что для видео-просмотра на n900 лучший результат даёт vcodec libx264 pre baseline.
На языке свежего ffmpeg это выглядит примерно так:
avconv -i in.mkv -c:a copy -c:v libx264 -pre baseline out.avi
best codec for n900

среда, 22 февраля 2012 г.

"ушная радость"

"... мои бедные ушки!"
(Кролик из "Алисы в Стране чудес" Л.Кэррола)
Совершенно неожиданно для себя купил новые наушники типа "капельки" (aka "тычки"). При том, что KOSS Sporta PRO у меня пережили очередной ремонт, и вполне живы!
Обычно этот тип наушников выдаёт настолько плохой звук, что долгое время я даже не надеялся встретить что-нибудь стоящее. Но друзья посоветовали и дали послушать Sony MDR-EX10LP, и они меня несказанно удивили!
На следующий день я уже приобрёл экземпляр белого цвета за 2390 тенге (это ещё один повод удивляться), частоты 8-22k Hz. Cool!
--- bottom line ---
Отличные наушники "капельки" за 2390 тенге, ношу каждый день, а Koss пока отложил на полочку.


Добавлено Чт дек 27 11:45:06 ALMT 2012:
на морозе начало трещать левое ухо: проблема контакта в левом наушнике. "Повторим?!", сказал я себе, и купил точно такие же, только другого цвета. ))

среда, 2 ноября 2011 г.

appliance, appliance, appliance, appliance!

Все знают, что наше время время быстрых решений. Решение, которое внедряется больше недели-двух в IT — уже "большой проект".
Для поддержания IT-инфраструктуры компании нужны всякие серверы: шлюз, DNS, файл-сервер, почта, домен и т.п. Много всего. Традиционный админский подход: разворачиваем сервер на любимой ОС (юниксоид "венду" поставит только в крайнем случае), после чего настраиваем нужный сервис в этой ОС.
Важнейшие недостатки таких решений:
  1. Неочевидность администрирования, особенно для слабо подготовленных  администраторов. Лучшее, что тут может помочь — инструкция, написанная человеком, который разобрался (то есть нужно заставить человека задокументировать этот сервер).
  2. Как правило, в этом случае бывает непросто сохранить конфигурацию этого сервера. А уж вычленить, что конкретно настраивалось — почти нереально. (конечно можно сделать tar cf etc.tar /etc , но это далеко не всегда является решением: например, сервисы, запускающиеся в chroot живут по другому адресу. Пример: /var/lib/bind/etc ) .
Пришёл технический прогресс и принёс, на нашу радость:
  • Виртуализацию. Об этом нет нужды говорить отдельно. Один из плюсов виртуализации набор типовых конфигураций виртуального оборудования, что позволило появиться...
  • Virtual Appliances. Проще говоря, это образ "виртуалки", который можно просто залить в имеющуюся виртуальную инфраструктуру и тут же запустить в рабочем режиме.
Теперь нужное ПО (или нужный сервис, или "серверное приложение") можно получить в виде этого самого Virtual Appliance с временем установки и развёртывания ненамного больше времени копирования файла по сети.

Вывод: современные сервисы стали немного ближе к неподготовленным людям. Нужен сервис xyz? Устанавливаем образ в гипервизор, запускаем, и заходим через веб-интерфейс. xyz с человеческим лицом. Никаких creepy commandline для тех, кто к этому не готов.
У этих appliance есть ещё один плюс: его тонкой настройкой на уровне ОС занимается тот, кто лучше всего знает, как это сделать: разработчик, и делает это ... до того, как appliance попадёт к вам.
  + (часто) встроенный мониторинг системы
  + (часто) продуманное резервное копирование
  + ещё много чего

вторник, 1 ноября 2011 г.

не-howto

"Google it!" "Прогугли это!" эти фразы уже прочно вошли в лексикон.
Частенько, когда человек идёт что-то "гуглить", он идёт за рецептом. Вбивает проблему (или задачку) в строку поиска, и пытается выудить ответ в виде пошагового руководства. В линуксовом мире подобные рецепты известны под термином "howto".
Реже случается, когда человек идёт за знаниями. То есть не за ответом на вопрос "как это сделать", а за ответом "как это работает".
Я пришёл к выводу, что не очень настроен выдавать рецепты. Мне интереснее рассказать, "как это работает", и посмотреть, как это понял слушатель.