20070926

Интеграция Vim и Subversion (SVN)

Сегодня попробовал плагин svncommand для vim-а. Позволяет выполнять команды SVN не выходя из редактора. Так, раньше я редактировал файлы рабочей копии, потом нажимал Ctrl-Z, набирал в коммандной строке что-нибудь вроде svn diff | vim - чтобы посмотреть, что изменилось, запоминал имена файлов, выходил (:q!) и делал один или несколько раз svn commit и вновь возвращался в редактор (fg).

Теперь можно редактируя файл сразу посмотреть изменения относительно его версии в SVN нажав \sd или набрав :SVNDiff. Чтобы посмотреть изменения для всего каталога — открыть каталог (:e .) и опять \sd. Чтобы отправить изменения текущего файла в репозиторий (закоммитить) — \sc или :SVNCommit. Буфер для ввода комментария открывается автоматически. Точно также добавить новый файл можно с помощью \sa (:SVNAdd), а откатиться к версии из репозитория — с помощью \sr (:SVNRevert). Первое впечатление — это довольно удобно.

Для установки плагина достаточно поместить файл svncommand.vim в ~/.vim/plugins, а svn.vim и svnlog.vim в ~/.vim/syntax.

P.S. Комбинации клавиш svncommand.vim у меня частично совпали с комбинациями клавиш для другого используемого плагина — SpellChecker.vim, который проверяет орфографию. Так что я в конечном итоге подправил свой svncommand.vim, заменив все сочетания вида \sбуква на \vбуква.

P.P.S. Уже написав эту заметку наткнулся на плагин vcscommand.vim. Он, похоже, делает то же самое, поддерживая CVS, SVN и SVK, и судя по всему более свежий.

20070919

OpenID в Blogger

2008-11-26: Данная заметка частично устарела. Поддержка OpenID доступна теперь всем пользователям Blogger и не требует специальной настройки. Просто используйте стандартный шаблон и адрес своего блога в качестве OpenID. И всё.

2010-09-15: Теперь проще всего в качестве OpenID использовать страницу гугло-профиля. Достаточно создать профиль и выбрать ему URL.

Нашёл заметку, как можно использовать OpenID в blogger (ну и, в общем, на любом другом сайте). А с OpenID можно постить и в ЖЖ, и во многих независимых блогах, а также пользоваться другими сервисами, не регистрируясь на каждом из них отдельно (например, RUmarkz и Zooomr поддерживают OpenID).

Инструкция такая:

  1. Получить OpenID, например на одном из бесплатных OpenID-сервисов. Можно, например, воспользоваться pip.versignlabs.com или www.myopenid.com. Или ЖЖ, или moikrug.ru.
  2. Добавить в шаблон блога (или в шаблон сайта), в head
    <link rel="openid.server" href="http://pip.verisignlabs.com/server" />
    <link rel="openid.delegate" href="http://логин.pip.verisignlabs.com/" />
    где логин — логин на pip.versignlabs.com в данном случае. Если у вас уже есть учетная запись пользователь в LiveJournal, то можно вставить вместо этого
    <link rel="openid.server" href="http://www.livejournal.com/openid/server.bml" />
    <link rel="openid.delegate" href="http://пользователь.livejournal.com/" />


  3. Всё, можно пользоваться. И указывать адрес своего блога в качестве OpenID. Запрос будет перенапрявляться выбранному OpenID-сервису (в который, предварительно, конечно нужно залогиниться).


 

Другой способ: использование OpenID самого Blogger
(добавлено 07.02.2008)



В январе Blogger разрешил подписывать комментарии с помощью OpenID, а затем и сам стал полноценным OpenID-провайдером. Это значит, что теперь можно не делегировать аутентификацию стороннему провайдеру (например, ЖЖ), а пользоваться сервисом Google. Вероятно это будет работать лучше, чем делегация, которую не всегда корректно обрабатывают, например, некоторые основанные на Wordpress блоги…

Возможность эта пока экспериментальная, но, вроде, работает. Я следовал вот этой инструкции на английском языке.

Порядок такой:

  1. Идём по вот этой ссылке и редактируем свой профиль, используя экспериментальный интерфейс (в общедоступном интерфейсе этой функции ещё нет). В разделе Privacy включаем «Enable OpenID for blogs»*.
  2. В шаблон блога, в раздел <head> вставляем:
    <link rel="openid.server" href="http://draft.blogger.com/openid-server.g" />

Сделал, попробовал, вроде работает (не везде, не срабатывает во многих wordpress-блогах, буду разбираться; есть подозрение, что это связано с тем, что blogger заменяет двойные кавычки в шаблоне на одиночные, а может быть это просто баг плагина для wordpress).

Дополнение: возможно, кому-то будет интересно узнать, откуда все эти «rel="openid.server"» берутся; вот ссылки на спецификации: Transforming an HTML document Into an Identifier (OpenID 1.1) и HTML-based discovery (OpenID 2.0).

*) Дополнение 2008-10-25: Прошёл год. Похоже, OpenID в Blogger вышел из экспериментальной стадии. Теперь его не надо включать в экспериментальном профиле пользователя, но есть вкладка «OpenID» в найстройках блога, а в шаблонах новосозданных блогов уже есть строчка <link rel="openid.server" href="http://www.blogger.com/openid-server.g" />. Так что если вы начали пользоваться Blogger недавно, то скорее всего всё уже и так работает. Пропробовать работу OpenID можно здесь.

20070912

Как выглядит новая система закладок Firefox

Появились «скриншоты» будущей новой системы закладок Firefox, placesOrganizer. Выглядит многообещающе. В общем, наконец, удобный поиск, возможность присваивать закладкам метки-теги, а в перспективе и будут создаваться и мини-скриншоты страниц, на которые указывают закладки.

Preview of new Firefox3 bookmarking system


Пока же буду дальше пользоваться Epiphany в качестве основного браузера. Организация коллекции закладок с помощью тегов в ней была придумана уже давно, надёжно работает уже сейчас и сделана довольно удобно.

20070907

Учебник: LaTeX, GNU/Linux и русский стиль

На днях попалась ссылка на цикл статей Е. М. Балдина «LaTeX, GNU/Linux и русский стиль». Статьи были написаны им для журнала Linux Format. По соглашению с редакцией, они теперь доступны и онлайн в PDF формате. Фактически, это книга-учебник по LaTeX (автор особо подчёркивает, что это ещё не книга, но по качеству текст близок к ней).

Думаю, этот материал будет полезен и тем, кто только начинает разбираться с LaTeX, и тем, кто уже давно им пользуется. Я, например, нашёл немало интересного в статье, посвящённой написанию компьютерной документации в LaTeX.

А для тех, у кого времени читать длинные тексты нет, а нужно просто писать — я даю ссылку на моё любимое наглядное пособие К. В. Воронцова «LaTeX2ε в примерах». Очень доходчиво.

20070906

Звук во Flash-роликах в Firefox/Iceweasel

Знакомый попросил помочь: чтобы при просмотре Flash-роликов в Iceweasel работал звук и при одновременном включенном и поставленном на паузу музыкальном плеере. Сам я пользуюсь Epiphany, и в ней у меня и так звук работает без проблем. Попробовал запустить Flash-ролик в Iceweasel — и правда нет звука!

Решение такое:
  • использовать звуковые драйвера ALSA
  • устанавить «переходник» alsa-oss
  • в /etc/iceweasel/iceweaselrc (или ~/.mozilla/firefox/rc) указать
    # which /dev/dsp wrapper to use
    ICEWEASEL_DSP="aoss"
После этого звук флэш-роликов в Iceweasel нормально воспроизводится, и другие приложения ему не мешают. Данное поведение документировано в /usr/share/doc/iceweasel/README.Debian. Для firefox, всё, естественно, аналогично с точностью до названия.

20070905

formula2png: как сделать картинку с формулой

Набирать математические формулы в LaTeX легко. Получается в результате документ PDF или PS. А вот что делать, если нужно показать одну-две формулы на веб-странице? Самый простой (и работающий везде) способ: поместить на сайт картинку, на которой и будет формула. Этот пост, рассказывает, как можно быстро делать такие картинки.

Дополнение: несколько ещё более лёгких способов поместить формулу в блоге или на форуме перечислено здесь.


Для этого, кроме LaTeX, Ghostscript и Netpbm потребуется скрипт textogif Джона Уокера. Вот прямая ссылка на textogif_1.1.tar.gz.

К этому скрипту я использую вот такую обвязку, чтобы не создавать файл TeX каждый раз вручную: formula2png. Обвязка создаёт файл LaTeX, в который и помещает нужную формулу, и скармливает этот файл textogif. Использую я её так:
$ formula2png imagename formula
Например:
$ formula2png schröd 'i\hbar\frac{\partial}{\partial t}\psi=-\frac{\hbar^2}{2m}\nabla^2\psi + V\psi'
После этого в текущем каталоге у меня появляется файл schröd.png с прозрачным фоном.

Schrödinger equation: i\hbar\frac{\partial}{\partial t}\psi=-\frac{\hbar^2}{2m}\nabla^2\psi + V\psi

В данном случае формула набрана 12 пунктом, и изображение отрисовано из расчёта на разрешение 120 dpi. Эти параметры, а также уровень серого для фона, на котором предполагается размещать формулу, задаются в параметрах textogif (см. примеры внутри formula2png).

Другой способ размещения формул на веб-страницах — MathML, но он работает не со всеми браузерами и сложнее в использовании. Есть ещё конвертеры, вроде latex2html, но для одной–двух формул — они «тяжеловаты».