SymWiki — еще одно приложение для Symbian

SymWiki Main Window Я уже много лет, как использую вики для организации и структурирования собственной информации (т.е. в качестве того, что на аглицком зовется PIM). На Заурусе я долго использовал Emacs Wiki Mode, пока не перешел на более “продвинутый” Emacs Muse.

Поэтому с самого начала мне на телефоне не хватало возможности связывать свои доки при помощи перекрестных ссылок. Я поначалу использовал приложение Active Notes, но при всей его продвинутости, в нем невозможно вставить в текст ссылку, по которой приложение откроет другую заметку.

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

И вот, спустя четыре дня, первая версия приложения готова: SymWiki 1.0 можно скачать с сайта Google Code и установить на телефон.

При первом запуске программа создаст на SD-карточке каталог E:\Wiki, где сразу будет создана главная страница вики — Home. SymWiki использует подмножество разметки, совместимое с Emacs Muse, чтобы можно было таскать файлы из-под Emacs’а на телефон и обратно.

В программе использован тот же текстовый редактор, что и в S60 HTML Editor, поэтому работает и быстрое перемещение по тексту, и поиск. Чтобы вставить в текст ссылку, нужно нажать Options, выбрать пункт Insert link и ввести название страницы. Чтобы перейти по ссылке, надо поместить курсор внутрь двойных квадратных скобок, задающих ссылку, и нажать кнопку выбора. Также можно вернуться назад, на предыдущую страницу, или выбрать страницу из списка (Options -> All pages).

Пока это, в общем-то, и все. Но это ведь еще только первая версия… ;)

S60 HTML Editor Version 0.7

S60HTMLEd

Сделал новую, “ноль-седьмую”, версию редактора. Теперь можно устанавливать его как независимое приложение (со своей иконкой в меню). Также кардинально поменялась работа с тегами: тег теперь вставляется одновременно с закрывающим, а также атрибутами (запрашиваемыми у пользователя, если нужно). Можно выделить текст и вставить тег — выделенный текст окажется окруженным выбранным тегом. Еще можно стало просматривать редактируемый текст во встроенном Симбиановском браузере.

Сильно переделаны “внутренности” — вся “базовая” функциональность редактора вынесена в отдельный класс, который можно будет использовать в других приложениях (я уже знаю в каких ;).

Собственно, если кому интересно, скачиваем отсюда, мануал тут. Юзаем, находим баги, пишем мне… :)

S60 HTML Editor Version 0.4

Версия 0.4 HTML-редактора для Симбиана готова.

Из нового: использование зеленой трубки в качестве Func (или Ctrl, если кому так лучше понятно): Func+стрелки листают постранично и перемещают в начало/конец строки; меню тегов теперь на правой софтклавише (с Func вызывается меню entities), есть поиск взад-вперед, простая замена, Func+Select открывает меню быстрого перехода (в начало/конец файла и на строку по номеру).

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

Правда, для его работы теперь используется appuifw2, который нужно ставить отдельно.

Сама программа все еще в виде простого файла, который нужно закинуть в соответствующий каталог на флешке телефона.

Пара скриншотов:
Главное меню Окно редактора с нажатой клавишей Func

Программирование под Symbian

Занялся я тут программированием для своего смарта. Пишу, разумеется, на Питоне. :)

Вот первый результат: редактор HTML для телефона (и не говорите мне, что это извращение — сам знаю ;).

А здесь я буду собирать разные полезные штучки, ссылки и приемы программирования на Питоне под Симбиан.

О плясках с бубном и ошибках в коде

Сегодня наконец перепрошил свой Заурус на Cacko ROM 1.23 (Nastya). Завров(о|е)ды, не бейте ногами — Антон Масловский давно мне говорил, но как-то без нужды было, чесное слово!

К перепрошивке подвигло то, что модуль PySqlite, который я использую в программе на Питоне для Жениного диссера, стал выдавать segmentation fault на самом тривиальном запросе из БД (мы используем SQLite в качестве базы данных о корнях и моделях управления глаголов). То есть, на десктопе (что под виндой, что под линуксом) все работает, а на Завре — падает. Для меня это критично, поскольку в основном работаю над этим кодом по дороге на работу и с работы. Проанализировав все и покопавшись во внутренностях Завтра, я решил, что проблема в каких-то внутренних повреждениях на машинке (повреждения в самом деле были, поскольку LAN карточка давно перестала работать на Завре, а последнее время по-черному заглючил ipkg).

После перепрошивки и установки всего, что мне было нужно (Emacs, CVS, Python, SQLite, SdiQt и еще несколько программ и библиотек), я попробовал запустить программу. Она, как ни в чем не бывало, упала на том же месте… Поиск по Инету результатов не дал. Правда, я обнаружил еще один новый порт Питона, но он мне не подошел.

Наконец, я обратился к документации SQLite, а именно к описанию типов данных. После замены “некошерного” STRING на “кошерный” TEXT все, как ни странно, заработало! Бага однозначно в коде PySqlite (ибо версии под Windows и Linux, как и консольная программка sqlite3 на самом Завре отрабатывали без проблем). Откуда я взял этот STRING я сейчас и не вспомню…

Зато зарабоала LAN-карточка, да и новая (м-да…) прошивка порадовала наличием разных “вкусняшек”. Но, как говорится, не без ложки дегтя: DevImage не хочет монтироваться… С этим еще предстоит разбираться. :)