пятница, 18 ноября 2011 г.

Midnight Commander с поддержкой SFTP

Дошли руки собрать и выложить midnight commander с поддержкой протокола SFTP. Реализация еще сырая, но пробовать можно уже сейчас. Скачать бинарный пакет для Debian Squeeze i386 можно тут. Для остальных есть вариант пересобрать пакет.

четверг, 10 ноября 2011 г.

Слава роботам!

Только сейчас оценил полезность встроенных команд в bash. Из-за выставленного ulimit -u (processes) не давало работать в shell'е на shared хостинге. Виной тому php-fcgi, который перетянул "одеяло" на себя и не давал форкнуться. Залив файлик ps.php, дергаю его через браузер и получаю список процессов, которые принадлежат %USER%. После в bash прибиваю часть через встроенный kill.
<pre>
<?php
system('ps w -u %USER%');
Содержимое ps.php

P.S. Уже позже вспомнился случай, описанный в старой книге на админскую тематику, где через встроенные функции чинили систему после rm -rf.

вторник, 1 ноября 2011 г.

Настройка режима DnD (Do Not Disturb) в pidgin

Возможно пригодится кому-нибудь.

Чтобы заставить pidgin не отвлекать внимание всплывающими сообщениями нужно:
  • выставить статус DND ("Do Not Disturb" или "Не беспокоить");
  • в "Средства / Настройки / Интерфейс" выставить значение "Скрывать новые беседы" равным "Во время отсутствия";
  •  в "Средства / Настройки / Звуки" значение "Включить звуки" установить в "Только во время присутствия".
Этого вполне достаточно, чтобы не отвлекаться от важных дел.

воскресенье, 30 октября 2011 г.

Поднакопилось

Поднакопилась пачка изменений, которые хочется упомянуть в своем блоге. Первое из них - я сделал бэкпорт pidgin для squeeze. Сейчас его версия 2.10.0-1~bpo60+1. Поставить его можно из моего репозитария для squeeze в секции backports.

deb http://www.tataranovich.com/debian squeeze backports

Из замеченных мною изменений:
  • более менее адекватно работает аудио/видео связь;
  • починили clientLogin и SSL в ICQ. 
В остальном вроде по-прежнему.

Сборочная среда понемногу развивается. Сейчас ночные сборки переведены на новую схему именования версий. Раньше очередная версия формировалась из внутренней версии апстрима с добавлением суффикса ~gitYYYYMMDD-1. Получалось что-то вроде 3:4.8.0-34-g0035a1d~git20111028-1 что не всегда давало версию старше, чем в предыдущем билде. Сейчас эта версия превратилась в 4:4.8.0~git20111028-1 (префикс 4: гарантирует переход с любой старой версии на новую схему). Плюс ко всему nightly builds допускает несколько сборок в пределах одного дня.

Добавил поддержку новых дистрибутивов. Сейчас полный список выглядит так:
Debian
  • lenny
  • squeeze
  • wheezy
  • sid
Ubuntu:
  • hardy (пакет требует отдельных телодвижений для сборки)
  • lucid
  • maverick
  • natty
  • oneiric
Все с поддержкой i386 и amd64.

вторник, 11 октября 2011 г.

Продолжение первой статьи на хабрахабре

Дописал более подробное описание технической части сборочной среды. Ознакомиться можно здесь. Первая часть статьи тут.

суббота, 8 октября 2011 г.

Синхронизация истории сообщений в pidgin

Довольно часто мне приходится пользоваться pidgin для общения с друзьями и коллегами на разных компьютерах. Поэтому мне важно, чтобы история переписки была всегда в актуальном состоянии и была доступна на любом из компьютеров.

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

Ранее я сталкивался с упоминаниями unison для синхронизации, но насколько я смог разобраться в его фичах, он не поддерживает прозрачную синхронизацию. На данный момент я выбрал dropbox. Посколько dropbox не поддерживает шифрование на стороне клиента, то дополнительно применена encfs (позволяет шифровать не только содержимое файла, но и его имя).

Dropbox настроен на синхронизацию каталога ~/Dropbox. Внутри папки ~/Dropbox создан каталог ~/Dropbox/Safe, который содержит зашифрованную часть EncFS. Расшифрованная часть монтируется в каталог ~/Safe.

После настройки логи pidgin были перенесены из ~/.purple/logs в ~/Safe/.purple-logs и создана символическая ссылка ~/.purple/logs -> ~/Safe/.purple-logs

Уже прошла неделя использования этой схемы. Из замеченного:
  • В один момент времени должен работать клиент только на одном из компьютеров, если работает на нескольких, то возможны дублирования в истории (плотно не тестировал, т.к. у меня таких случаев очень мало)
  • Dropbox плохо переваривает синхронизацию большого количества маленьких файлов (~35000 файлов, общим объемом на ~17MB)
Сейчас подумываю подключить к синхронизации часть общих конфигов и добавить инкрементальную архивацию.

Исходники сборочной среды теперь доступны на code.google.com

Сегодня субботнее утро, но спать как-то не охота. И пока семейство еще спит у меня есть час-другой свободного времени, чтобы разобрать накопившиеся дела.

Когда я писал статью на хабре я обещался выложить код как только приведу его в божеский вид. Похоже причесать код окажется гораздо сложнее, чем мне казалось поначалу. Потому я решил следовать принципу Эрика Раймонда (Release early, release often) и выложил первый рабочий вариант на code.google.com. Проект называется mc-buildbot и доступен по адресу http://code.google.com/p/mc-buildbot/

В процессе освоения хостинга, интеграции mercurial с ним и написанием патча, появилась пара мелочей, которые достойны упоминания здесь.
  • Чтобы каждый раз не вводить свой логин/пароль от googlecode, его можно сохранить в настройках mercurial (вроде работает, начиная с версии 1.3). Для этого в ~/.hgrc добавляется секция [auth] содержащая настройки авторизации, например:
[auth]
googlecode.prefix = https://code.google.com/
googlecode.username = username
googlecode.password = password

  • Проверить ошибки в страницах man, можно выполнив команду:
LANG=en_US.UTF-8 MANWIDTH=80 man --warnings -E UTF-8 -l /path/to/man/page >/dev/null

  • Добавить патч под управлением quilt
$ export QUILT_PATCHES="debian/patches"
$ quilt import -P patchname /path/to/patch

Чтобы проверить, что патч правильно накладывается:
$ quilt push

Отменить все патчи
$ quilt pop

Позже постараюсь найти время, чтобы плотнее поизучать quilt. Неплохая заметка по началу работы есть в Debian New Maintainers' Guide