20090226

Церковно-славянский в Linux

Любопытствовал, как можно на компьютере работать с церковно-славянским текстом. В частности, в линуксе. И немало для себя сделал открытий. В частности,

а. Уникод для записи церковно-славянского текста пока ещё не вполне приспособлен, и вот почему. Хотя в будущем уникод обещает стать лучше.

в. За отстутствием «официальной» кодировки, была предпринята (видимо, удачная) попытка сделать единую кодировку для ЦС. Так и назвали, единой церковно-славянской, UCS. Она достаточно подробно описана здесь.

г. Свободно-распространяемые шрифты для кодировки UCS имеются. Для начала можно поставить Triodion, именно его многие сайты указывают в своих стилях. (В современном линуксе для установки шрифта как правило достаточно поместить все его файлы в ~/.fonts/)

д. Кодировка и шрифты решают проблему представления текста, но не решают проблему набора. А для набора было придумано «инвариантное представление церковно-славянского текста», HIP. Простыми словами: это основаный на простом тексте «легковесный» язык разметки, вроде Markdown, только адаптированный именно под набора ЦС и смешанных текстов. Например, буква «ѣ» набирается как «», «фита» как «f», «от» как «w\т». Разнообразные тексты в разметке HIP общедоступны, но полноценного конвертера для Linux я не нашёл. Зато есть онлайн-конвертер. И спецификации :)

е. Однако конвертер, может быть, и не нужен, если речь идёт о вёрстке текста. Есть как минимум два пакета для LaTeX, позволяющие набирать текст прямо в разметке HIP. Исторически первый из них — hiptex Александра Воинова. Позднее появился CSLTeX Алексея Вихлинина (кстати, он физтех!). Кажется, CSLTeX лучше, чем его предшественник hiptex.

Получается, всё, что нужно, уже есть. И чтобы на экране читать, и чтобы набирать, и чтобы верстать и красиво печатать.

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

20090224

epi2fox: конвертация закладок Epiphany в Firefox 3

Я давно уже использовал Эпифанию (Epiphany) в качестве основного браузера, в основном потому, что её система закладок с тагами мне кажется наиболее удобной. Однако поскольку в FF3 закладки тоже можно метить тагами, то я решил опять попробовать Firefox в качестве основного браузера. Оставалось только перенести свои закладки из Epiphany в Firefox.

Поскольку ничего готового не нашлось, то написал скрипт epi2fox.py. Предполагая, что профиль Firefox практически пуст, использовать так:
$ epi2fox.py ~/.mozilla/firefox/вашпрофиль/places.sqlite
Скрипт не идеален, в частности, есть проблема дублирующихся закладок. Epiphany такие закладки разрешает (несколько разных закладок на один и тот же URL), а FF — нет. Сейчас дубли просто игнорируются, хотя, наверное, правильнее было бы их объединять.

Как бы то ни было, с моей задачей скрипт справился удовлетворительно. Может и кому-нибудь ещё пригодится.

Ссылки:
epi2fox, репозиторий скрипта
схема базы данных закладок в FF3 (PDF)
epi2fox: import Epiphany bookmarks into Firefox 3 (это объявление по-английски)

Для облегчения поиска закладок по тагам, может ещё пригодится расширение TagSifter. С ним гораздо лучше, чем без него.

PS. Да, конечно, перед использованием лучше сделать резервную копию places.sqlite, если там что-то уже есть.

20090206

Карты OpenStreetMap в GPS-навигаторах Garmin

В летней заметке об использовании GPS-навигатора Garmin в Linux я указывал, что полный цикл подготовки и загрузки на устройство карт требует использования хоть и бесплатных, но рассчитанных на использование в Windows программ.

А именно, летом и осенью мной довольно успешно использовался такой технологической цепочкой: gpsmapedit (редактирование карты в формате mp) + cgpsmapper (компиляция карт в гарминовский формат img) + sendmap или MapSetToolKit c MapSource (предварительный просмотр и загрузка карт в прибор). Впрочем, запускать программы в wine не очень-то удобно, да и все эти программы, за исключением MapSetToolKit несвободны. Дополнительные «удовольствия» с использованием sendmap и MapSource в wine встретились и в свежих выпусках Ubuntu (а именно заблокированный по-умолчанию и не вполне рабочий драйвер garmin_gps).

Однако, несмотря на кризис, жизнь налаживается. Сегодня захожу в вики OpenStreetMap и вижу такую страницу: Карты OSM на Garmin (по-английски). И там есть такая табличка. А из таблички этой следует, что уже есть несколько свободных программ, обслуживающих весь цикл редактирования и загрузки в GPS-прибор карт.

Итак, первый этап, редактирование карт: JOSM, позволяющий сохранить карты в формате osm. Можно, конечно, по-прежнему пользоваться gpsmapedit, сохраняя карты в формате mp, см. дальше.

Второй этап, компилируем карты в формат прибора (img): на выбор Mkgmap или GroundTruth. Mkgmap вроде может обрабатывать и файлы mp, и файлы osm. GroundTruth, кажется, только osm. Обе программы умеют довольно многое. В конкретных отличиях предстоит разобраться, но по первому взгляду кажется, что Mkgmap компилирует карты сама, в то время как GroundTruth полагается на несвободный cgpsmapper (или это только опция?). Есть ещё перловый скрипт osm2mp (предполагает последующее использование cgpsmapper).

Третий этап, объединение карт. Есть такая аппаратная особенность приборов Garmin: нужные фрагменты карты должны быть объеденены ещё до загрузки или во время загрузки в прибор. Объединить файлы img могут Mkgmap и QLandkarte GT (преемница старой QLandkarte).

Четвёртый этап, загрузка карт в устройство. На выбор: QLandkarte, GroundTruth или простое сохранение файла с картой (gmapsupp.img) в папку Garmin/ на карточку памяти устройства.

Пока что эти программы я не попробовал, но был очень рад увидеть, что теперь они есть. И загружать в GPS-навигаторы самодельные карты (в т.ч. карты OpenStreetMap) теперь будет проще. О чём и хотел сообщить :-)