3 декабря 2009 г.

X.org reboot

После очередного обновления системы случайно обнаружил, что теперь в иксах не работает сочетание клавиш Ctrl-Alt-Backspace, предназначенное для их перезапуска. Зачем эта функция была отключена не особо понимаю. Для восстановления ее работоспособности необходимо подправить конфигурацию клавиатуры. У меня она настраивается через hal в файле /etc/hal/fdi/policy/10-keymap.fdi. Добавляем к строке с опциями (key="input.xkb.options") еще один параметр: terminate:ctrl_alt_bksp. Таким образом, у меня, например, эта строка выглядит так:

<merge key="input.xkb.options" type="string">grp:rwin_toggle,grp_led:scroll,compose:ralt,terminate:ctrl_alt_bksp</merge>

Теперь после перезапуска hal и X.org все будет работать как раньше.

18 октября 2009 г.

mc — смена каталога при выходе

После обновления mc до версии 4.7.0_pre1, было обнаружено, что пропала удобная функция, позволяющая при выходе из программы остаться в последней директории, а не в той, которая была на момент запуска mc. В gentoo это работало благодаря добавлению следующих строк в .bashrc:

if [ -f /usr/share/mc/mc.gentoo ]; then
    . /usr/share/mc/mc.gentoo
fi

Так вот, выяснилось, что файл /usr/share/mc/mc.gentoo отсутствует в новой версии mc. Ну и собственно, для возврата работоспособности описанной функции, необходимо под root'ом создать файл /usr/share/mc/mc.gentoo следующего содержания:

#!/bin/sh

MC_ENV=/usr/libexec/mc/mc.sh

for i in $MC_ENV; do
    if [ -x $i ]; then
        . $i
    fi
done

Также не забываем проверить наличие указанного выше фрагмента в .bashrc. Теперь все должно работать, как раньше.

P.S Как правильно заметил ForeverYoung, все можно настроить без создания дополнительного файла. Начиная с версии 4.7.0_pre3 в gentoo, после установки mc, советуют для включения описанной выше функции добавить нечто вроде следующих строк в ~/bashrc:

if [ -f /usr/libexec/mc/mc.sh ]; then
    . /usr/libexec/mc/mc.sh
fi

22 августа 2009 г.

Org-mode даты?

Возник вопрос с датами в org-mode. Возможно ли настроить сложные повторяющиеся события, такие как, повтор события каждую неделю во вторник, среду и пятницу. Если просто добавить несколько дат, то во время изменения состояния события на DONE, изменятся все даты, а не одна нужная.

Сейчас для подобных событий делаю 3 одинаковые записи с разными датами. Например:

#+STARTUP:showall
* TODO Полить цветы
  SCHEDULED: <2009-08-25 Tue 11:00 +1w>
* TODO Полить цветы
  SCHEDULED: <2009-08-27 Thu 11:00 +1w>
* TODO Полить цветы
  SCHEDULED: <2009-08-29 Sat 11:00 +1w>

P.S. Строка #+STARTUP:showall добавлена для того, чтобы при конвертировании в HTML из muse-mode, фрагмент примера заключенный в тег <src lang="org"></src> отобразился полностью, а не только названия дел.

Баги Amarok 2.1.1

С недавнего времени удалил все приложения kde-3 и qt3. Соответственно обновился на существующие версии программ для kde-4 и qt4. И теперь в качестве оконного менеджера использую OpenBox. Так вот в связи с этим всем обновил и amarok — любимый аудио плеер, подтолкнувший меня давным давно аккуратно каталогизировать коллекцию музыки.

Уже ранее пробывал 2-ой amarok, но тогда сразу же отказался от его использования, в виду малой функциональности по сравнению с ранними версиями. 2.1.1 сначала порадовала. Импортировала старую базу с mysql. Очень хороша показалась на этот раз интеграция с last.fm. Появились поддержка очереди. На этом похоже радости кончились.

Первое, что бросилось в глаза — знаки вопросов вместо русских букв в названиях групп и песен для некоторых русских исполнителей, которые ранее отображались абсолютно нормально, как в amarok-1.4, так и в easytag.

Также было замечено, что 2-ой amarok напрочь отказывается проигрывать некоторые треки и чуть ли не виснет при этом. Например, он не захотел проигрывать ни одну песню группы #####. У меня подозрение что это опять же связано с тегами. Заметил что с amarok идет их собственные библиотеки taglib и taglib-extras. И собственно не совсем понимаю, зачем надо было создавать новые решения существующих рабочих библиотек.

Последнее, что добило окончательно — amarok по своим непонятным причинам переставал играть следующую композицию в списке. Тут я не выдержал и удал его. Сейчас поставил пока себе Exaile, но он меня все же также не особо радует. Не хватает функций работы с коллекциями. Жду с надеждой новых релизов amarok. Да и подумал — пора уже сделать качественный upgrade компьютеру. Производительности Celeron 2100 Hz на современные программы порой уже не хватает.

14 августа 2009 г.

Работа с Emacs --daemon

С выходом Emacs-23.1 сразу же перешел на указанную версию любимой программы. Как известно одной из новых функций является возможность запуска Emacs в режиме демона. Дальнейшая работа производится с помощью emacsclient позволяющего подключаться к демону как в иксах, так и из консоли.

Теперь для полного выхода из Emacs (убийство демона) использую функцию kill-emacs. Но в таком случае не сохраняются открытые буферы и сессия (desktop). Поэтому добавил в файл инициализации далее описанную функцию и назначил на нее клавиши C-x c:

(defun my-kill-emacs ()
  (interactive)
  (save-some-buffers)
  (desktop-save-in-desktop-dir)
  (kill-emacs))

(global-set-key (kbd "C-x c") 'my-kill-emacs)

Для запуска Emacs в меню OpenBox добавил пункт выполняющий следующее:

emacsclient -c -a emacsdc

Где emacsdc - скрипт следующего содержания лежащий в папке ~/bin, которая добавлена в PATH:

#!/bin/bash

emacs --daemon && emacsclient -c

Таким образом при вызове Emacs из меню, в момент когда не включен демон, запускается собственно демон и сразу же открывается новый фрейм. Если же демон уже запущен, просто открывается фрейм, подключенный к демону. Из консоли же теперь можно запустить так:

emacsclient -t

P.S. Оказывается все намного проще! Не надо никаких скриптов придумывать. Запускать Emacs надо так:

emacsclient -c -a ""

P.P.S. Спасибо тов. Juev'у.

19 марта 2009 г.

Большой расход памяти imagemagick!

Никак не могу разобраться, как это происходит. И из-за чего!

Первоначальная задача была конвертировать около 200 jpeg файлов в pdf. Использовал imagemagick:

convert *.jpg converted.pdf

При этом convert затратил память около 2-х Гб и повесил комп (т.к. у меня оперативка + swap = 2 Гб). При этом общий объем изображений не превышает 50 Мб. Думал сначала, что вся проблема связанна именно с конвертацией в pdf. Но аналогичная ситуация возникает при попытке конвертирования достаточно большого количества любых файлов.

При конвертировании 20 jpg файлов convert занимает 400 Мб! Это вообще нормально?

8 марта 2009 г.

Оптимизация компиляции для нескольких компьютеров (distcc и ccache)

Решил провести небольшое исследование о влиянии программ distcc и ccache на скорость компиляции. Поводом стала небольшая заметка о ускорении компиляции и собственно наличие 2-х компьютеров, работающих под gentoo в одной сети с почти одинаковыми процессорами (Celeron 2100 и Celeron 1800).

Настройка данных программ достаточно подробно описана в handbook'е и на сайте gentoo. На них останавливаться не буду.

Скорость компиляции проверялась при сборке pidgin версии 2.5.3. Процесс сборки представляет собой разархивацию исходников, конфигурацию, компиляцию, составление бинарного пакета и его установку в систему. Представленные программы направлены только на ускорение компиляции.

  • Время сборки без distcc и ccache: 13:12;
  • Время сборки с distcc: 10:14;
  • Время сборки с distcc и ccache: 7:08;

Как видно плюсы использования рассматриваемых программ есть. Особенно хороша ccache, но она сокращает время компиляции только при повторном процессе. distcc же возможно лучше себя проявит при большем количестве компьютеров в сети, но провести подобные эксперименты на данный момент не могу.

С ccache за довольно большое время использования при сборке различных программ проблем замечено не было. А вот с distcc были некоторые трудности. Например, возникали ситуации, когда 2-ой компьютер не успевал выполнить посланную задачу из-за некоторых перегрузок или нехватки свободной памяти, что замедляло или вешало процесс. Также для некоторых программ действие distcc вообще нулевое из-за принудительной компиляции в один поток (make -j1). Ну и также встретились программы, которые вообще отказались собираться с distcc.

В итоге на данный момент из-за указанных недостатков я distcc не пользуюсь. ccache же успешно работает.

12 января 2009 г.

Отказать SCIM!

Намучился тут с утрица с настройкой scim. В результате отказался от этого дела! Основная причина недовольства этой программой — отсутствие нормальное поддержки compose. Во-первых, scim не поддерживает настройки из ~/.XCompose. А, во-вторых, так и не удалось мне добиться хоть какого-нибудь результата работы compose в Qt.

Кстати, если для emacs, как советуют, отключать использование xim, то compose там тоже прекращает работать.