2008-06-25

Maemo.org logo contest

Смотрю я, народ подтягивается в конкурс.

Хотя, если честно - какое-то безумие местами - вот, например:







Более-менее вменяемые лого, конечно, есть, особенно мне понравилось такое:



т.е. Maemo.org - сборище очкариков! :)

Дался мне этот Diablo...

Прошил я Diablo. Прошилось. Ладно, стал восстанавливать настройки - после этого попытка соединения по WiFi оканчивается для устройства полным провалом - matchbox вроде живой, но вот hildon не на что не реагирует. А по ssh не зайти - ибо он еще не установлен.

Перешивал раза три - в итоге на восстановление настроек плюнул. Но тут меня ждал другой сюрприз: пропала половина приложений, а некоторые репозитории стали говорить при попытке взять список пакетов 404 Not Found. Это потому, блин, что по умолчанию AM лезет в ветку diablo и не находит ее, естественно. Лечится относительно просто - надо в поле "Распространение" (вот такой вот русский перевод) вбить chinook, пока авторы репозитория не снимутся с ручника и не сделают хотя бы линк diablo -> chinook. Именно так поставился FBReader.

Но это еще тоже полбеды. Самый попс начинается с репозиториями, которые пробиты по умолчанию самой Nokia! Созерцаю следующую ошибку:

W: GPG Error: http://catalogue.tableteer.nokia.com diablo Release: Следующие подписи неверные: BADSIG XXXXXX Nokia repository signing key 1v1

Это уже ни в какие ворота... Release.gpg датируется 24.06.2008 12:54. Может конечно это я что-то не так делаю, но что-то мне подсказывает, что я, как тупой пользователь, тут совершенно не при чем. Конечно, можно везде попробивать chinook, но это кажется мне глубоко неправильным и делать я так не буду.

Короче, подожду денек-другой - если не переподпишут, придется искать отвертку и ковырять. А так хочется - чтобы просто все работало!!!....

2008-06-24

Diablo уже можно прошивать

Сегодня опубликовано Feature Upgrade для OS2008: для N800 и для N810.

То бишь, Diablo aka Maemo 4.1 вышло официально. Будем тщательно ковырять ;)

По поводу изменений здесь говорится про следующее:
  • со следующего релиза специально флешиться не придется: будет установка по сети, уведомления об обновлениях будут выскакивать значком на рабочем столе, как
    это и должно быть по уму;
  • добавлены Modest и tinymail, упрощена настройка аккаунтов и есть куча пресетов для разных сервисов;
  • обновили openssl;
  • повысили производительность браузера.
Если взглянуть на изменения по пакетам, то заметна пара приятных вещей: кучу отдельных пакетов с локализацией наконец собрали в один, osso-addressbook сменил major-часть версии (интересно, что это значит?), libbz2 наконец добавили, а также gnupg и gpgv; ну и теперь есть отдельный пакетик adobe-flashplayer.

Прошьюсь - сегодня вечером.... А потом попробую поиграться новым SDK.

2008-06-18

Maemo ищет logo

Сегодня получил рассылку с предложением нарисовать новый логотип для комьюнити maemo.org. Принимать участие могут все желающие, конкурс продлится до 27 июля. Победителю - призы от Nokia, включая N810 WiMAX, приглашение на семинар в Берлине в сентябре и "право всем этим хвастаться".

Сама задача расписана в вики, еще любопытные размышления изложены здесь. В частности, что Internet Tablet OS, как название, устраело еще в прошлом году, и употреблять его не рекомендуется.

Лучше бы нокиевцы открыли некоторые свои исходники, честное слово - пользы было бы больше...

2008-06-16

PIM на maemo

Решил я разведать, как портировать контакты из пальмы в таблетку. Ответ глубоко поразил мою психику - на таблетке нет нормального PIM. Действительно, запускаем встроенные контакты - там есть следующие поля:
  • Имя, Фамилия
  • Псевдоним
  • Фотография
  • Телефон
  • E-mail
  • Jabber
  • Веб-адрес
Причем, телефонов, мыла, jabber-а и www можно добавить сколько угодно много. Но ни слова про почтовый адрес, день рождения, и пр.

В wiki от internettablettalk вычитал, что:

Note that the tablet is not a PDA and, as such, caution should be exercised in migrating from a dedicated PDA to an internet tablet device. Having said that, these options work well for some users.

Дальше ссылки на GPE и... на PalmOS!

Интересное кино получается. А почему бы таблетке не быть нормальным PIM-ом? Обратимся к священным докам: Using Maemo Address Book API. Опуская подробности, вижу, что:

...e_book_query_field_exists uses the EContactField enumeration that contains many common field types, such as E_CONTACT_FULL_NAME, E_CONTACT_HOMEPAGE_URL and E_CONTACT_EMAIL_1 (the full list can be found in the include file libebook/e-contact.h).

А дальше начинается самое интересное: приглядевшись к указанному хидеру уже в SDK, находим в enum EContactField тучу значений, например:

E_CONTACT_ADDRESS_LABEL_HOME
E_CONTACT_ADDRESS_LABEL_WORK
E_CONTACT_ADDRESS_LABEL_OTHER
E_CONTACT_PHONE_BUSINESS
E_CONTACT_PHONE_CAR
E_CONTACT_PHONE_COMPANY
E_CONTACT_PHONE_HOME
E_CONTACT_PHONE_MOBILE
E_CONTACT_BIRTH_DAY


Короче, Evolution Data Server рулит. Конечно, не хватает E_CONTACT_PHONE_TOILET, но я научусь с этим жить. Однако, основной вопрос повисает в воздухе - так есть эти поля или нет?!

Ответ разрешается написанием простейшей программы, которая добавляет контакт с неведомыми приложению Контакты полями. Но есть даже более простой путь: установите Pimlico, и сразу поймете, как должны были выглядеть контакты в maemo.

Кто виноват? Что делать? Как обустроить PIM в maemo? Эти вопросы, наверное, волнуют не только меня. Первый и самый очевидный вывод - подкорректировать библиотеку libosso-abook: это был бы самый правильный метод, т.к. все приложения получат в распоряжение новые диалоговые окна, в которых будут уже новые элементы. Может быть даже, бинарная совместимость не нарушится.

Но, увы, к великому разочарованию, этот исходник Nokia закрыла от посторонних глаз. Вот такая вот грустная концовка истории - как не странно, OSSO расшифровывается Open Source Software voor Overheden... Ну и где тут Open Source?!...

2008-06-14

maemo-uptime-home 0.2.0

Решил зарелизить очередную версию (0.2.0): наконец-то она делает что-то полезное :)

Плагин постоянно наблюдает за состоянием залоченности экрана и кнопок (не путать с блокировкой по pin-коду) и если произошла перезагрузка, восстанавливает это состояние.

Скачать пакет можно из гаража: Uptime home plugin.

Не знаю, как вам, а мне было очень обидно вытащить устройство из кармана и обнаружить, что пока я его там носил, тачскрин постоянно обрабатывал нажатия, девайс что-то делал и жрал при этом батарею. Я вообще удивляюсь, почему Nokia блокировку экрана / кнопок не сделали автоматической, по таймауту... Это было бы логичным решением.

2008-06-08

Rebooter

Допустим, вы - агент 007, проникли на секретную базу, вам надо бесшумно заребутить компьютер, при этом единственный доступный вам интерфейс для подключения - USB? На компьютере установлена самая совершенная ОС от M$ - Windows Vista, со всеми текущими дополнениями, сервиспаками, хотфиксами и прочей байдой. Выдернуть шнур питания или нажать reset возможности нет. Что вы будете делать?

Правильно! Достанете свою боевую Nokia N810, подключите по USB, убедитесь, что Большой Брат подмонтировал внешний сменный носитель, а потом скажете таблетке reboot.

2008-06-04

fsck.vfat

Моя Vista последнее время очень настойчиво стала предлагать проверить новый подмонтированный по USB диск, который есть на самом деле моя N810. Я упорно не давал ей этого делать (мало ли, что оно без спросу сотворить может!), но последнее время она начала трапаться синим экраном и я решил, что дальше так продолжаться не может.

Выяснив имя устройства через mount, я полез смотреть, что там происходит:

# fsck.vfat /dev/mmcblk0p1

There are differences between boot sector and its backup.
Differences: (offset:original/backup)
65:01/00
Copying backup to original...

...

Free cluster summary wrong (482177 vs. really 482119)
Correct?


Вот так оно бывает.... к сожалению...

Uptime теперь живет в гараже

Продолжая тему про maemo-uptime-home: выложил его в гараж - Uptime home plugin.

Хочется преобразовать этот плагин из чисто познавательного в практический: чтобы после непредвиденного ребута он снова лочил дисплей. Буду думать...

2008-06-03

Лезем в garage.maemo.org

Посмотрел на организацию "гаража". Честно говоря, бардак, конечно. Для начала можно глянуть статью MaemoGarageStartUp, там есть некая попытка донести основные принципы. Как я понял, в общих чертах, надо действовать так:

1. Завести себе аккаунт на garage.maemo.org. Например, пусть будет coolhacker.

2. Залезть в меню Register Progect. Откроется формочка, в которой надо ввести начальные данные о проекте:
  • Project Full Name: полное имя проекта, типа "My cool project"

  • Project Purpose And Summarization: тут надо подробно описать что это за проект и какое он отношение имеет к maemo. По идее от того, насколько грамотно здесь составлен текст, зависит решение модератора о принятии проекта в гараж. Следует избегать слов "test", "testing", "porn" и т.п. Это описание не выставляется на публичное обозрение, его прочтет только модератор гаража.

  • License: под какой лицензией выпускается. Истинный простор для фантазии, но помните о пункте 3.3 в Terms Of Use. Можете сразу поставить BSD, и не надо ломать голову.

  • Project Public Description: то, что пользователи будут видеть в описании на домашней странице проекта. Этот текст можно составить попроще и подоходчивее, кроме того, его можно потом поменять. Кстати, по этому тексту работает поиск, но проект не будет находиться сразу после создания, пока вы не позаботитесь о присвоении ему правильной категории (см. ниже)

  • Project Unix Name: это такое уникальное имя (3-15 символов), которое потом будет фигурировать в настройках сервара, да и везде, где только можно. И в качестве имени репозитория в SVN, и в качестве части доменного имени перед garage.maemo.org (домашняя страница проекта). Пусть это будет cool-appy (надо сразу заметить, что имя пакета все равно может от него отличаться)

Дальше надо все это заsubmitить администратору, который должен вынести решение в течение 3х суток. На практике, можете получить "добро" уже через 10 минут. Еще вам напишут, что созданы списки рассылки под ваш новый проект, а также, куда идти для администрирования проекта.

3. Теперь надо грамотно импортировать исходник в SVN. Делаем темповый каталог в файловой системе, создаем там подкаталоги: mkdir trunk tags branches. Идем в trunk, туда кладем только необходимые для сборки файлы. Возвращаемся на уровень выше и говорим:

svn import --username coolhacker https://garage.maemo.org/svn/cool-appy


У вас спросят пароль пользователя coolhacker и это правильно, т.к. кому попало, слава Аллаху, коммитить в ваш новоиспеченный проект нельзя. Также вас наверняка обложит "post-commit"-скрипт по поводу невозможности копирования файлов куда-то в /var/www. Это нормально: если бы на одном уровне с trunk, branches и tags вы еще бы создали www, то это был бы web-корень вашего проекта по адресу cool-appy.garage.maemo.org. По дефолту работает перенаправление на резюме проекта, но со временем, когда будет что сказать людям, можно обзавестись чем-то более презентабельным.

Дальше этот темповый каталог.... можно спокойно убить! Да, таковы реалии жизни в cvs/svn - вести разработку надо в рабочей копии. Иначе запутаетесь, насмерть. Ну хорошо, не убивайте, сделайте tgz и спрячьте на черный день на сменный носитель. Мало ли что ;)

4. Получаем рабочую копию.

mkdir work && cd work
svn co --username coolhacker https://garage.maemo.org/svn/cool-appy/trunk


Теперь надо бы убедиться, что мы ничего не забыли положить в SVN, дабы скачивающий исходники народ не обломался на компиляции. Последовательность действий по сборке стандартного пакета обычно такая:

./autogen.sh && ./configure && make deb

Нестандартные шаги стоит описать в README или, если это того заслуживает, в отдельном файле INSTALL.

5. Можете с интересом походить по веб-интерфейсу гаража, поизучать, что получилось. Самое главное, что бросается в глаза - это грустная надпись This project has not released any files. С вероятностью 90% прочтя такое, пользователь уйдет со страницы, и даже не заглянет в svn, хоть там и есть все необходимое. Вывод - надо релизить!

Если вы успешно исполнили make deb, то наверняка образовался каталог debian-build, а там лежат два важных файла - cool-appy_0.0.1.tar.gz и cool-appy_0.0.1_armel.deb. Их-то и надо выложить в публичный доступ тем, у которого под руками нет framework-а для превращения исходника в бинарный пакет.

Файл cool-appy_0.0.1_i386.deb, который, например, получился при сборке пакета в окружении X86, особенно никому кроме вас не нужен, поэтому выкладывая его в публичный доступ - сначала трижды подумайте, зачем вы это собрались делать.

Тыкаем на ссылку [View All Project Files] и попадаем на страницу с одним только названием пакета cool-appy. Но это не беда: жмем на To create a new release click here. Попадаем в форму релиза:


  • Package ID: тут по умолчанию показывается unix-name проекта, его можно поменять или добавить вообще несколько пакетов в проект - почему бы и нет?

  • Release Name: пишем гордое 0.0.1, именно так и будет называться наш релиз на странице скачивания файлов

  • Release Date: дата и время создания релиза, для истории. Интересно, а задним числом можно? ;)

  • File Name: здесь надо указать имя готового файла с пакетом для загрузки, для начала cool-appy_0.0.1_armel.deb

  • File Type: ясно дело, .deb!

  • Processor Type: полагаю, что если оно должно работать на таблетке - то ARM

  • Release Notes & ChangeLog: считается хорошим тоном их указывать, хотя бы со второго релиза (чтобы можно было понять, в чем отличие от предыдущего). Но можно и нагло оставить их пустыми: все равно дотошный пользователь докопается до debian/changelog.

Ну и... собственно всё! После загрузки, файл появится в общем доступе. Можно еще добавить в релиз cool-appy_0.0.1.tar.gz, пометив, что File Type = tar.gz, а Processor Type - any.

6. Из административного меню выберите ссылку Trove Categorization. Настало время расставить все по местам: написать про то, для кого этот пакет (разработчик, юзер или админ), статус разработки (обдумываю, пре-альфа, альфа, бета, стабильный, устарел) и т.д. Главное - в конце все-таки пояснить, с какой версией Internet Tablet он скомпилирован, чтобы не было попыток совместить несовместимое.

7. Дайте новость, путем административного меню News Admin: пусть о вашем проекте узнают все!

Ну вот, вроде бы и всё. Возвращаясь к вопросу о бардаке: вся его прелесть в том, что никто не мешает написать про GPL и не выложить исходников, или, наоборот - выложить исходники, но не зарелизить не одного файла. Хранить в SVN файлы можно как попало: например, не использовать каталог trunk вообще. Все это не прибавляет порядка, конечно... Но такова жизнь!

2008-06-02

alarmd & hildon

Вот так и используй alarmd в home-апплетах... Сразу после старта таблетки он недоступен, надо обождать секунд 15-20 для начала, пока он запустится.

2008-06-01

Garnet VM beta 2 для N810

Недавно Access разослал письмо с приглашением потестить новую GVM (об этом не написал только ленивый). Скачал и я, дабы насладиться...

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

Запустил через ярлык gvmlauncher. Фига там! Can't connect to GVM. (error 0x30040000).

Расстроился, полез в консоль из-под рута и говорю уже там: /usr/bin/gvm/gvmlauncher. Запустилось! Но ненадолго. Стоит слазать в Preferences и поменять там настройки, связанные со звуком, и...

+++++ PrvSegVHandler(): Addr: 0x40069000: SIGSEGV forwarded
*** Segmentation fault

Повторный запуск обнаружил, что звук больше из пальмы в таблетку не добирается (то есть, gvm работает молча). К сожалению, это лечится только перезагрузкой таблетки.

В принципе, помогла деинсталляция пакета garnet-vm "под корень" (то есть dpkg --purge garnet-vm) - полностью исправило ситуацию с запуском, но баг с потерей трансляции звука - остается.

Так что, ждем в скором будущем Beta 3.

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