24 января 2013 г.

Blogger пост из Emacs? Markdown + Googlecl script

Побаловался с googlecl. Умудрился случайно наделать множество постов, состоящих всего лишь из одного слова в своем читальном блоге. Сейчас вроде бы все исправил. Постараюсь подобное предотвращать в будущем. Но главное — проверил, что googlecl работает. Далее хочу обсудить варианты публикации сообщений из Emacs.

Ранее для написания заметок я использовал muse-mode. Каждая muse-заметка экспортировалась в html. А далее я ручками копировал в форму Блоггера нужный контент. Долго я пользовался именно этой схемой. Muse в какой-то момент перестал удовлетворять моим требованиям. Были у него некоторые проблемы со вложенными списками и вставками кода. А всякие списки я ой как люблю. Это наверное последствия долгого использования org-mode. Ну а потом я вообще перестал что-либо публиковать в сети.

Также когда-то я пробовал наладить google интерфейс, который шел в поставке с emacsspeak. Но безуспешно. Интересно в каком состоянии он сейчас? Давно не слышал.

Теперь я собираюсь изобрести новый велосипед. В его основе Markdown и Googlecl. Собственно смысл в том, чтобы написать мини скрипт на bash, который переведет md-файл в html (python-markdown). При этом он должен вырезать избыточные поля. Например, заголовок, который в блоггере в отдельное поле вводится. Далее отправить это добро в googlecl, который успешно опубликует новую заметку с правильным заголовком и тегами в нужном месте. То есть из Emacs надо будет дернуть этот скриптик и собственно все.

Как вариант можно написать полностью тоже самое на elisp, но хочется простой возможности публиковать файлы из консоли. Также я пока не совсем понимаю, как настроить раскраску кода при конвертировании md в html, но думаю с этим больших проблем не должно быть.

Как вам такая схема? Не слишком ли я заворачиваю? Сейчас буду реализовывать это добро.

1 октября 2010 г.

Xxkb. Флажок в трее

На домашнем компьютере использую OpenBox вместе с приложениями из kde. На днях обновил кеды до версии 4.5.1 и обнаружил, что куда-то пропал используемый мной индикатор раскладки клавиатуры kxkb. Где-то в блогах натолкнулся на сообщение, что его перенесли в плазмойды. Ну а так как plasma — это именно то, что я в kde-4 невзлюбил, то возникла необходимость в программе, аналогичной kxkb, позволяющей сохранять определенную раскладку для окон и приложений, а не только глобально.

В portage быстренько нашел xxkb. Достаточно простенькое приложение. Настройки находятся в файле /etc/X11/app-defaults/XXkb. Они вроде интуитивно понятны. Изменил только размер флажка и добавил в автозагрузку при старте OpenBox.

Порадовала возможность отображать в заголовке окна текущую раскладку. Но данная функция не работает в некоторых специфических приложениях из-за чего xxkb падает. Подобные программы необходимо добавить в игнор в настройках, используя свойства окон, которые можно узнать с помощью xprop. Кроме того, проигнорировать надо и программы подобные fbpanel. Но к сожалению порой "лишний" флажок на панели все равно появляется.

В общем, программа оставила положительные впечатления. Но был бы рад посмотреть другие аналоги kxkb. Кто чем пользуется для подобных задач?

2 сентября 2010 г.

Отключение поиска по ctrl-e на Nokia N810

Тоже из старых заметок. На N810 интенсивно пользуюсь emacs из консоли. Но при нажатии C-e в таком случае появляется окно поиска maemo. Это естественно не удобно. Для отключения надо сделать следующее:

$ gconftool -s /apps/osso/keybindings/global/osso-global-search --type=string ''

md5sum для паролей

Давно в заметках висело. Надо было когда-то быстро пароли с помощью md5sum зашифровать для сайта. Из консоли это делается так:

echo -n "test" | md5sum

19 августа 2010 г.

mkv2avi для просмотра через xbox

Столкнулся на днях с проблемой. Очень захотелось посмотреть фильм в формате mkv на большом экране телевизора. Я использую ushare для просмотра видео через xbox 360. Но на xbox, как оказалось, проигрывается достаточно малая часть существующих форматов. И естественно mkv в этот список не входит.

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 там тоже прекращает работать.

11 декабря 2008 г.

Portage 2.1.6 и KDE 4.1.3

Решил поставить себе одну из последних тестовых версий portage, а именно 2.1.6. Подобная мысль возникла, так как уже появилось достаточно много ebuld'ов, использующих EAPI2. В том числе и kde-4.1.3, который и хочется наконец-то потестить!

Portage

Первое, что сразу каким-то образом бросилось в глаза: portage качает в фоне! Супер! Пока происходит сборка одного пакета, в фоне подкачиваются исходники следующих. При этом обнаружил это я по неожиданной интернет активности компьютера, а не по надписи в начала работы emerge:

>>> Starting parallel fetch

Мелочь, но тоже заметная: сборка, установка и удаление пакета отделены друга от друга. Точнее говоря изменено их текстовое оформление. Но тогда уже странно следующее: если обрыв установки пакета происходит на этапе Installing, то логичнее, на мой взгляд, было бы продолжить с него после emerge --resume. Но этого не происходит, пакет хочет пересобираться заново. Так что проще установить сначала собранный пакет, а потом заново перезапустить emerge.

Также новый portage похоже научился разрешать конфликт, связанные с блокировками одним пакетом других, которые были установлены. В общем приглючило, или действительно он сам удалил, что надо, и установил, что надо.

Также раньше на сколько помню перекрытия пакетов (collisions) приводили к перезаписи новыми файлами и сообщению об этом, если не установлена опция collision-protect. Сейчас же по-умолчанию процесс установки прекращается!

Чувствую, что замечено будет еще куча различных нововведений. И вообще надо документацию полистать.

KDE 4

Ну и пара слов о kde4. Интересно, что он устанавливается теперь по FHS стандарту, а не в /usr/kde/${SLOT}, как раньше. За то куда устанавливать отвечает USE-флаг kdeprefix. Только вот не понимаю: как лучше-то? Собственно из-за этого и произошло несколько проблем с перекрытием пакетов (collisions) во время установки.

Второй раз уже смотрю на 4-е кеды… Но никак они меня не впечатляют. Подтормаживают на моем компьютере. Многие вещи не удобны и не доделаны. Многих привычных по 3-им кедам вещей нет. Настройки немного сократились такое ощущение. Плюсом у меня все это дело криво собралось, и почти все меню во всех kde-приложениях назывались No Text.

Поразил amorok в плане своей нефункциональности! Может быть что-то там и красиво, но не хватает нормальной работы с плеерами, очереди и еще чего-то. Коме того, он упал через 5 минут его использования. Что есть совсем не хорошо! Также нету настройки БД. Не смог импортировать БД со старого amarok'а.

В итоге откатился на kde 3.5.10. Но вот последнее время все чаще в голову приходит мысль перейти на что-нибудь легковесное. в планах попробовать на fluxbox пересесть. Какие еще хорошие варианты?

23 ноября 2008 г.

Tramp и root на сервере

Задача

С помощью emacs tramp-2.1.14 редактировать файлы под root'ом на сервере, на котором запрещен прямой логин root'а через ssh.

Решение

Добавляем в файлы настроек emacs'a:

(add-to-list 'tramp-default-proxies-alist
             '("\\`server\\'" "\\`root\\'" "/ssh:user@%h:"))

Здесь server — это сервер на котором надо изменить файлы, user — пользователь под которым вам разрешен доступ на server.

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

/su:server:/path/to/file

Или, если у вас на сервере настроен sudo, делаем так:

/sudo:server:/path/to/file

22 ноября 2008 г.

Tramp и Screen

Как-то раз решил, что мне удобно, чтобы при подключении к серверу через ssh включался screen. Для этого в .bashrc пользователя на сервере было добавлено следующее:

if [ -z "$STY" ]; then
   exec screen -dR
fi

Но оказалось, что при таком раскладе не возможно редактировать файлы через emacs tramp, так как он не может работать через screen. Было найдено следующее решение. Изменить выше представленные настройки вот так:

if [ -z "$STY" ] && [ "$TERM" != "dumb" ]; then
   exec screen -dR
fi

Теперь все отлично работает! Заходим через ssh и сразу же открывается screen. И с редактированием файлов через tramp никаких проблем.

Krusader не показывыает русские буквы через fish

Обнаружил такую вот, ранее не замечаемую, ошибку. Оказывается, что krusader отображает файлы с русскими именами через ssh, используя неверную кодировку. И соответственно он их неправильно записывает. Из консоли ssh отлично все показывает и копирует.

P.S. Все оказалось более интереснее... Konqueror тоже показывает подобную фигню! Значит дело в Кедах?

P.P.S. Уря! Решилась проблема! Нашел все таки меню Select Remote Charset!

25 октября 2008 г.

Как узнать какой процесс использует мои файлы? lsof!

Вот случайно наткнулся в книжке на программку, которая позволяет узнать, какие процессы в данное время используют указанные файлы. Это программка lsof! Странно, что она не входит в system-набор программ, которые устанавливаются по умолчанию. Очень удобно, например, узнать какие процессы мешают нормальному отмонтированию диска или флешки.

5 октября 2008 г.

Science and Linux

Решил написать о том где я видел лично применение линукса и где бы это хотел видеть в научных и высокотехнологичных заведениях.

Как-то раз посетил выставку, посвященную атомной энергетике. Был приятно удивлен, когда узнал qt'шные линуксовые окошки на экране Пульта Управления Машины Перегрузки Топлива. Тогда я впервые понял, что люди действительно пишут специфические программы под линуксом и применяют их в очень важных сферах.

Также очень порадовало, что в НИИИСе (НИИ Измерительных Систем) в отделе, в котором был полгода назад на экскурсии, для проектирования микросхем и микропроцессоров используют ПО для линукса. Что несколько меня удивило, так как везде пишут, что CAD-системы для него не шибко развиты.

Сам лично для обработки SPM-изображений (SPM=СЗМ=Сканирующая зондовая микроскопия) использовал великолепную программу Gwyddion. Она на мой взгляд во многих вопросах превосходит ПО, с которым нас учили работать на Windows'e. Я даже продвинул ее на кафедру и какое-то время ее даже устанавливали на многие компьютеры. Но что-то дело видимо загнулось, кому-то что-то не понравилось… и тому подобное.

Кроме того, также приятные впечатления оставила программка для обработки графиков Qtiplot. Например, простая и понятная много-пиковая обработка на мой взгляд в ней реализована несколько лучше чем в Origin, в программе часто используемой для подобных задач у нас на кафедре.

Существенным плюсом приведенных здесь программ считаю расширяемость за счет плагинов. Есть возможность написать собственное решение необходимой задачи на Python'е. Это на мой взгляд должно особо привлекать научных деятелей, которые в любом случае должны быть знакомы с программированием (без этого по-моему никуда).

Сейчас почти на всех факультетах есть специальность информационные технологии. Но у нас на подобной кафедре насколько я знаю (может и ошибаюсь) не особо любят Open Source и подобные вещи! А для развития науки это самое оно! Но все тащутся за бабосом. Возможность переписать программу на собственные нужды, исправить самому ошибки и при этом помочь людям, занимающимся подобными вопросами — это просто супер! Плюс считаю, что такая ИТ кафедра должна бы постоянно сотрудничать с остальными кафедрами, писать для них необходимое ПО. Но что-то такого сотрудничества не замечал! Наоборот периодически видна борьба кафедр друг с другом! Что за глупость!

В общем на кафедре у нас сплошные виндусятники ). И преимуществом Open Source не пользуются!

17 сентября 2008 г.

Почему мне нравится именно gentoo?

В раздумьях, что же ответить на комментарий kan'а, решил написать данную заметку! Итак, мне нравится в gentoo:

  • Быстрое обновление программ.

    Система portage построена так, что очень легко добавить обновление программы в данный дистрибутив. Это делается путем написание очередного ebuild'a. При этом делают это очень быстро и оперативно. В этом дистрибутиве самый свежий софт!

  • Хочешь экспериментальный софт или свои патчи — напиши ebuild.

    У меня есть такая маленькая мания: я стремлюсь постоянно обновлять софт, смотреть, что там нового в новой версии, тестировать ее и т.п. Благодаря gentoo я могу не беспокоится, что очередная ручная установка последней версии программы из исходников засорит мою систему. Я просто пишу ebuild для данной программы и устанавливаю ее. Ну или просто качаю их из каких-нибудь overlay'ев или с bugs.gentoo.org.

  • Отличная система контроля пакетов portage.

    За 2 года использования gentoo ни разу не было проблем с зависимостями. Все настраивается и пашет как надо! Если мне не нужна поддержка какой-либо хитрой фичи в программе, я просто отключаю ее с помощью use-флагов. Кроме того, в системе легко избавится от неиспользуемых программ и библиотек. Так что засоряемость компьютера также снижается.

  • Нравится компиляция. И бегущие строчки.

    Как ни странно так оно и есть ))) Люблю смотреть на компиляцию какой-нибудь программы и пытаться допереть что там сейчас происходит. Интересно )

  • Менее дружелюбная, не напоминает виндовс в отличии от других дистрибутивов.

    Именно такой дистрибутив я и искал. Хотелось уйти от GUI и более глубоко опустится в мир линукса. Первые 2-3 месяца жил в консоли. И очень меня это радовало! За это время я узнал о линуксе больше, чем за предыдущие опыты общения с другими дистрибутивами: mandriva, debian, fedora core.

  • Широкие возможности настройки.

    С помощью gentoo можно собрать систему пригодную для любого. Оптимизировать ее под любые нужды. Есть overlay'и для работы с музыкой, видео, а также, что особо актуально для меня как физика-нанотехнолога, science-overlay.

В общем очень доволен этим дистрибутивом и не намереваюсь его менять.