2008-05-15

Java и Maemo

Официальной поддержки Java на устройствах maemo нет. И вот теперь понятно, почему.

Со стороны процессора поддержка есть: это т.н. проприетарное расширение "Жазель" (Jazelle), которое обеспечивает две вещи:
  • Jazelle DBX (Direct Bytecode eXecution) прямое исполнение байтовых инструкций Java
  • Jazelle RCT (Runtime Compilation Target) JIT-компиляция (т.е. "на лету") Java-байткодов в инструкции ARM.
Однако, блин, эти фичи заблокированы, пока Nokia не лицензирует ARM Jazelle Technology Enabling Kit (JTEK).

отсюда

Интересно, а чего Nokia тянет? Денег жалко или считают, что JVM пользователям не нужна?

TRENDnet TEW-632BRP

Я начал процесс апгрейда своей домашней беспроводной сети с точки доступа.

Мой старенький 3COM 3CRWDR101A-75, купленный еще во времена пользования ADSL, тянет только 802.11g. А как хочется попробовать 802.11n! Хотя бы даже draft ;)

Офисные решения от 3COM на том же уровне, что и D-Link, но при этом дороже. Да и 802.11n у них нет - только модель g+ (108Mbps). Но мне а) не нужен ADSL б) если уж менять клиентские карты доступа g, то явно не на g+, а сразу на n.

Я долго выбирал между D-Link DIR-615 за 1800 руб. и TRENDnet TEW-632BRP за 2266 руб. Выбор оказался в пользу последнего - в основном, D-Link ругают в буржуйских блогах за плохую чувствительность в режиме n, и даже на нашем www.dlink.ru в спецификациях она опущена (есть чувствительность в режимах b и g, но не для n).

Устройство хорошо походило по обзорам, которые, как обычно, я читал уже после покупки. Если честно, я давно забил на функциональность типа DHCP, NAT, PPTP и даже маршрутизацию в таких устройствах. Ибо во всех домашних роутерах обязательно что-то хромает - то одно, то другое. Естественным путем я пришел к машине на GNU/Linux Debian, которая делает все необходимое и оставил роутеру функции "тупого" свича LAN/WLAN и точки доступа. Главное - чтобы он это делал хорошо, а остальное приложится ;)

Единственная проблема, с которой я столкнулся - переход на WPA2. У меня нет сервера RADIUS и я не использую сертификаты для авторизации. Однако, машинка под Windows XP начала упорно говорить "Системе Windows не удалось обнаружить сертификат для входа в сеть такую-то". Как я не менял настройки безопасности - WPA,WPA2,WPA-AUTO - Vista подцеплялась практически сразу, а XP поднимала физику, но никаких пакетов через это соединение не пропускала (в т.ч. собственные запросы DHCP).


Первым порывом было поставить и настроить RADIUS. Потом я одумался и понял. что надо ставить на XP третий сервиспак или отдельное специальное обновление, которое учит систему поддерживать WPA2. После установки XPSP3 проблема разрешилась.

В следующей серии самое интересное - буду пробовать менять клиентские карточки на 802.11n. Кстати, Nokia N810 подцепилась к сети "на раз", как бы я не менял конфигурацию безопасности (что привело меня в восторг). Яркий пример того, что это устройство вполне подходит для рядового пользователя, с Windows возиться пришлось на несколько порядков больше.

2008-05-13

Maemo repositories

Нашел полезную ссылку на репозитории с приложениями для maemo. Наконец-то всё сложилось в цельную картину.

2008-05-12

Diablo

Чего-то я не пойму: Diablo должно отличаться от Chinook поболе, чем описано здесь. Конечно, быстрый flash-плеер, опция encoding в x-term, два e-mail клиента - здорово, но не верю (с), что на этом отличия заканчиваются.

2008-05-10

Подновляем Panasonic TCD-305/TCA130

Месяц назад я сидел злой, поскольку мне на домашний отзвонился робот и потребовал зарегистрировать АОН. Чтобы хоть как-то себя утешить, я полез искать аксессуары к своему DECT-аппарату и нашел "устройство для развлечений" PE-TCD300 - заливки мелодий, картинок и редактирования записной книги. После долгой опупеи, заказ меня таки посетил.

Устройство выглядит так:



Существенным минусом является то, что на нем COM-порт. И на эмуляторы COM-USB в мануале рассчитывать не советуют. Соответственно, потребуется компьютер с DB9-разъемом на COM и установленной ОС Windows 2000/XP.

Вы меня спросите: а зачем тебе мелодии заливать? А я отвечу - чтобы назначать разные мелодии на разных людей и проигрывать их в зависимости от АОН-а. Ну, тут вы надо мной посмеетесь - русский АОН в таких телефонах, в отличие от CallerID, поддерживается только после снятия трубки ручками - ну и зачем тогда мелодия-то? И так уже трубку в руки взяли, а номер на дисплее отобразится!

А вот и неправда ваша. Берите трубку и делайте:
  • Нажимайте среднюю дислейную кнопку - заходите в меню
  • Выберите "Настройки Базы"
  • Войдите в пункт меню "АОН"
  • Теперь наберите магическое число 255
  • Войдите в появившееся меню "Автополучение"
  • Выберите "ВКЛ"

Теперь попробуйте позвонить на свой телефон: всё будет почти как в наших "советских" АОН-ах: телефон снимает трубочку, считывает и показывает АОН, а сам продолжает слать КПВ в линию ("давать длинные гудки") и проигрывать трель (или проговорит голосом номер, если оно у вас активировано). Настраиваем реквием на номер тещи и наслаждаемся ;)

Так выглядит трубка, когда к ней пристыковывается девайс:



Обратите внимание, как крепление "обнимает" разъем зарядки: в процессе работы с PE-TCD300 трубку на зарядку не поставишь. Да и питается оно от аккумуляторов трубки во время работы. Лично у меня после двух-трех сеансов прошивок даже одно деление на индикаторе зарядки "съелось".

Приложение хочет для работы Microsoft .NET Framework 1.1, очень кстати оно есть тут же, на диске. Инсталлятор без заморочек, запускаем... Сюрприз: разрешение 1024 на 768 просто необходимо, иначе окно программы не помещается на экране. Соответственно, если вы откопали древнюю машинку с СОМ-портом, позаботьтесь и о драйверах видеокарты, иначе вас может постичь жестокое разочарование.

Теперь надо выбрать модель трубки. Вариантов всего два: TCA-130RU (v6.08) и TCA-132RU (v6.08). Так что если у вас другие трубки - тогда ничего не получится. Затем выбираем номер COM-порта и теперь можно выбирать тип операции. Тут все относительно просто, но:
  • перед заливкой записной книжки, войдите в меню телефона, иначе программа напишет, что нет связи с устройством;
  • суммарная длина файлов с мелодиями не должна превышать 64К (а не только длина одного файла с мелодией, как гласит мануал);
  • строго следуйте инструкциям при заливке мелодий и картинок - но не раньше, чем они появятся в виде диалогового окна на экране.
В заключение, на диске есть список "хитовых" мелодий. Эдакая гремучая смесь из попсы, шансона и русского народного. Предлагаю заценить этот список:
  • Hi-Fi "Школа"
  • Агутин + Отпетые Мошенники "Граница"
  • Агутин "Оле оле"
  • Алсу "Зимний сон"
  • Алсу "Иногда"
  • Анофриев "Есть только миг"
  • Орбакайте "Мой мир"
  • "Ах, Самара, городок..."
  • Блестящие "А я все летала"
  • Блестящие "Ча-ча-ча"
  • Боярский "Городские цветы"
  • Виа-Гра + Меладзе "Океан и три реки"
  • Валерия "Часики"
  • Варум "Ля-ля-фа"
  • "Выйду на улицу..."
  • Глюкоза "Невеста"
  • Губин "Девушки, как звезды"
  • Дискотека Авария "Новогодняя"
  • Дискотека Авария "Песня про яйца"
  • Дискотека Авария "ХХХИРНР"
  • Жасмин "Дольче вита"
  • "Живет моя отрада..."
  • Запрещенные барабанщики "Убили негра"
  • Иван Купала "Кострома"
  • Иванов "Боже, какой пустяк"
  • "Из-за острова на стрежень"
  • "Калинка"
  • "Коробейники"
  • Круг "Владимирский централ"
  • Лада Дэнс "Аромат любви"
  • Катя Лель "Мармеладный"
  • Лицей "Паровозик-облачко"
  • Ляпис-Трубецкой "Ты кинула"
  • "Мурка"
  • "Ой при лужку при лужке..."
  • "Очи черные"
  • "Под окном черемуха"
  • Премьер-Министр "Девочка с севера"
  • Пропаганда "Холодно"
  • Пьер Нарцисс "Шоколадный заяц"
  • Ржевская "Когда я стану кошкой"
  • "Семь-сорок"
  • Сюткин "42 минуты под землей"
  • "Ты ж мене пiдманула"
  • "Хас-булат удалой"
  • Чичерина "Блюдца"
  • Чичерина "Ту лу ла"
  • "Я встретил Вас"
Я немного подредактировал этот список, потому что даже я знаю, что Орбакайте пишется через "О" , а не через "А". Интересно, они хоть платят авторские отчисления-то?

2008-05-08

FreeBSD 7

Инсталлирую FreeBSD в VirtualBox-е. Дохожу до... ну короче как tasksel в Debian. А там пункт:
  • [4] Developer: Full sources, binaries and docs but no games
Всю жизнь мечтал о таком варианте!

2008-05-04

Perl на N810

Secondly, there is no Perl in the system. It has been left out from the standard maemo environment to save space but can be installed separately by the user.

Отсюда.

Простите, а кто тогда мне пишет на perl --version:

This is perl, v5.8.3 built for arm-linux-gnueabi-thread-multi

BusyBox, что ли?!...

2008-05-03

mediaserv

У меня дома живет Debian GNU/Linux, я там держу HDD с фильмами. Как только у меня появилась N810, я сразу задался вопросом - а как бы мне смотреть фильмы прямо с сервера, не затевая муторное копирование и перекодирование? Ответ мне подсказали достаточно быстро: mediaserv.

В основе этого решения лежит MPlayer, который запускается из-под скрипта tablet-encode для перекодирования видео. Данные в сеть раздает другой перловый скрипт - mediaserv. Вся эта связка уже натаскана на maemo, осталось только запустить и насладиться. Решение годится скорее для домашней сети, чем для вещания в инет, хотя некие наметки для многопользовательского режима все-таки есть.

Итак, последовательные шаги.

1. Установка MPlayer.

Качаем исходники MPlayer, распаковываем. Качаем оттуда же бинарные кодеки, распаковываем и копируем в /usr/local/lib/codecs.

Поскольку мы будем собирать пакет .deb, нам потребуются fakeroot и debhelper, установите их, если только вы уже не занимаетесь сборкой пакетов debian на этой машине. Также для MPlayer потребуется libconfhelper-perl и liblogfile-rotate-perl:

sudo apt-get install fakeroot debhelper \
libconfhelper-perl \
liblogfile-rotate-perl
Только после всего этого заходим в распакованный MPlayer и говорим:

DEB_BUILD_OPTIONS="--enable-largefiles --disable-tv" fakeroot debian/rules binary


Полный список опций скажет ./configure --help, с другой стороны можно не пижонить и набирать просто fakeroot debian/rules binary. Результат, как всегда, лежит каталогом выше, устанавливаем его в систему:

sudo dpkg -i ../mplayer_1.0svn_i386.deb

2. Качаем и распаковываем tablet-encoder. Его можно закинуть в PATH, но это необязательно, главное помнить путь.

3. Качаем и распаковываем mediaserv. Распакуйте и запустите install.sh: он создаст в каталог ~/.mediaserv и поместит туда файл config. Пробегитесь по настройкам и установите как минимум путь к tablet-encoder.

Кроме того, надо позаботиться об установке пакетов, от которых зависит mediaserv:


sudo apt-get install libdatetime-format-mail-perl \
libdatetime-format-w3cdtf-perl \
libdatetime-perl \
libtest-manifest-perl


Для отдачи наружу RSS-ленты, потребуются перловые модули XML::RSS и XML::Parser. Автор рекомендует ставить их через CPAN, но в Debian уже есть пакеты:

sudo apt-get install libxml-rss-perl libxml-parser-perl

4. Запускайте mediaserv, он напишет конфигурацию и форкнется, повиснув сервером.

5. Идите в браузере по адресу и порту, который вы пробили в ~/.mediaserv/config, выбирайте нужное видео. Далее, запускается встроенный медиапроигрыватель и... можно смотреть.

Нюансы (а как же без них?)

1. Перекодированные файлы не проигрываются

У меня замечательно генерировались страницы с тумбалисами в браузере, но при тычке на картинку, перекодированные файлы решительно отказывались проигрываться. Почти сразу я выяснил, что перекодированный видеофайл имеет нулевую длину. Причиной этого оказалось нежелание tablet-encode работать с ключами -p smallest и -p small: отредактируйте config и выставьте качество в average - все должно заработать.

2. Русский язык в наименованиях файлов

(если вы - фанатик транслитерационного наименования файлов, можете смело пропускать)

Поскольку HTTP-страницы mediaserv генерирует, считывая имена файлов "как есть", а Contnet-Type выставляет как "text/html; charset=utf-8", это может породить проблемы. Возьмем мой случай: локаль ru_RU.CP1251, скрипт считывает и выводит имена файлов в файловой системе, но браузер пытается истрактовать их как UTF-8. Получается нечитаемо по определению.

Казалось бы, нет ничего проще: поменять Content-Type с utf-8 на windows-1251, и дело с концом! Но в браузере-то все будет ОК, а вот медиа-плеер на таблетке будет решительно промахиваться и не находить фильм для просмотра, если в нем были русские буквы. Обратно получается ерудна.

На свою беду, я не поклонник правильных решений. Мой рецепт: перед выводом страниц и RSS-лент, перекодировать из текущей кодировки в UTF-8. Для этого надо подредактировать скрипт: в начале загрузить модуль Encoding:

use Encode qw(from_to);

а в процессе формирования текстовых строк использовать функцию form_to, например:


sub doBrowse {
...
$response->header( 'Content-Type' =>
'text/html; charset=utf-8' );
from_to($content, "cp1251", "utf8");
$response->content($content);
}
(и точно так же в других местах, например функция doRSS).

3. Рассинхронизация видео и звука

Получил такое на некоторых медиа-файлах. Как бороться - пока не понял...

2008-04-21

Kill maemo-launcher

Немного поосвоившись с таблеткой, я задумался: почему она время от времени, совершенно по собственному желанию, делает reboot? Добрый человек aboris на форуме посоветовал мне перешиться - типа, stability update специально для таких, как я. Я перешился. Тем не менее, ребуты не прекратились. Мало того, устройство стало впадать в неуправляемое состояние, когда отклик на дисплейный тап составляет минуты.

Терпение мое лопнуло. Я поставил sshd, прикрутил симпатичные поделки Benoit Hervier-а для показа свободной памяти в виде апплета на hildon-овский рабочий стол. Немного повозившись, я вычислил рецепт приведения устройства в рабочее состояние, если оно перестало откликаться. Посто до безобразия.
  1. Ломитесь рутом через sshd
  2. Смотрите в top, сортируете по памяти
  3. kill самый жирный maemo-launcher
Вуаля, maemo-launcher перезапустился, таблетка снова жива и ваш uptime не пострадал!

Кстати, может написать uptime-апплет? По типу homenet-плагинов...