[Перейти к основному содержимому]

Ссылки

Ccze: хорошее модульное средство подсветки логов

Автор: Arno.

Оригинал: «ccze: A robust, modular log coloriser», 31 января 2007 г.

Ccze — программа для подсветки логов. Файлы обрабатываются регулярными выражениями и отображаются с приятным форматированием. Так становится проще высматривать в журналах важную информацию.

Чтобы работать с разными видами логов, Ccze использует подключаемые модули. Сейчас программа поддерживает 19 форматов: exim, httpd, procmail и множество других. Если строка не распознается модулем, включается обработка и подсветка по умолчанию. Вы можете добавить поддержку нового типа файла, написав расширение и поместив его в /usr/lib/ccze или ~/.ccze.

По умолчанию, Ccze использует Ncurses, но вы можете использовать стандартный вывод или создавать отчеты в HTML. Czze основан на более старом инструменте — Colorizer. На деле, Ccze был переносом Colorizer с Perl на C для ускорения работы.

Похожие средства

Среди других средств подсветки логов в Debian и Ubuntu — Lwatch и Loco. Loco хорош, но использует только общий парсер, так что вывод часто менее аккуратен, чем у Ccze. С Lwatch вы можете задавать в файле настроек свои регулярные выражения, так что там проще добавить новый тип файла. Lwatch читает данные из именованного потока, так что не очень подходит для командной строки.

Целевая аудитория

Дополнительная информация

Смотрите список литературы о логах на Loganalysis.Org: http://www.loganalysis.org/frames/left-navbar-library.html

Ссылки

Последняя версия Ccze есть и в Debian, и в Ubuntu.

Agave: простая подборка цветовых палитр

Автор: Фил Булл.

Оригинал: «agave: Design colour schemes the easy way», 28 января 2007 г.

Agave (бывшая Gnome Colorscheme) — простая утилита для создания цветовых палитр.

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

Вы можете выбрать любой цвет на экране в качестве базового при помощи диалога выбора. Дается три различных представления цветов: шестнадцатеричная запись, RGB и HSV, а в графические приложения цвета можно перенести перетаскиванием. Если вы оформляете сайты и редактируете CSS, Agave придет на помощь, особенно если подводит воображение. Соответствующей кнопкой можно создать случайную палитру; повторяющееся нажатие вскоре даст подходящее сочетание.

Несколько раздражает ограниченное число цветов в палитре. Хотя для отделки комнаты подойдут 2–3 цвета, сайты и графический дизайн требуют много больше. Зато в Agave, вроде бы, нет серьезных багов, и большинство замечаний к проекту являются предложениями добавить новые возможности. Также есть несколько переводов. KColorEdit (аналог из KDE) может работать с палитрами, что сейчас делает его более полезным для графических дизайнеров. Однако Agave — еще молодой проект, и он предлагает некоторые новые возможности, которые оценят все, кто работает с цветом.

Agave есть в Ubuntu Edgy и Debian Etch.

Ссылки

Apt-file: поиск файлов в пакетах

Автор: Пол Сандвалл.

Оригинал: «apt-file: search for files in packages, installed or not», 24 января 2007 г.

Пробовали когда-нибудь собрать что-то из исходников, для чего приходилось загружать недостающие пакеты? Если так, то вам приходилось определять, что именно требуется для удовлетворения зависимостей. Иногда в файле «README» упоминается, что нужно при сборке, но иногда это не помогает.

Для поиска пакетов, которые нужно установить, подойдет http://packages.debian.org/.

Другой подход — использовать Apt-file. Он работает как локальная поисковая машина, опираясь на исходники APT в /etc/apt/sources.list.

Чтобы использовать Apt-file, как root запустите

apt-file update

Потом, как обычный пользователь, ищите файл с

apt-file search file

И вы получите имена пакетов, в которых есть нужный файл. Установите их с apt-get, и ваши упущенные зависимости улетучатся! Apt-file есть в пакете apt-file в Debian и Ubuntu. После установки соберите базу данных (apt-file update).

Наример, я решил собрать простой пример pam, а получил такой вывод:

pauls@voltaire:~/code/eget/all/pam$ make
gcc pamexample.c -o pamexample -lpam -lpam_misc
pamexample.c:12:31: error: security/pam_appl.h: Filen eller katalogen
finns inte
pamexample.c:13:31: error: security/pam_misc.h: Filen eller katalogen
finns inte
[...]

Похоже, не достает какого-то pam_appl.h. Время использовать Apt-file!

pauls@voltaire:~/code/eget/all/pam$ apt-file search pam_appl.h
libpam-doc: usr/share/doc/libpam-doc/html/pam_appl.html
libpam0g-dev: usr/include/security/pam_appl.h
lsb-build-base2: usr/include/lsb2/security/pam_appl.h
lsb-build-base3: usr/include/lsb3/security/pam_appl.h
pauls@voltaire:~/code/eget/all/pam$

Кажется, нужно установить libpam0g-dev

pauls@voltaire:~/code/eget/all/pam$ su -
voltaire:~# apt-get install libpam0g-dev
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed
libpam0g-dev
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 118kB of archives.
After unpacking 365kB of additional disk space will be used.
Get: 1 http://merkel.debian.org unstable/main libpam0g-dev 0.79-4 [118kB]
Fetched 118kB in 2s (47.9kB/s)
Selecting previously deselected package libpam0g-dev.
(Reading database ... 123647 files and directories currently installed.)
Unpacking libpam0g-dev (from .../libpam0g-dev_0.79-4_i386.deb) ...
Setting up libpam0g-dev (0.79-4) ...
voltaire:~#logout

Попробуем собрать снова:

pauls@voltaire:~/code/eget/all/pam$ make
gcc pamexample.c -o pamexample -lpam -lpam_misc
pauls@voltaire:~/code/eget/all/pam$

Работает!

PyPar2: графическая оболочка Par2

Автор: Франсуа Ингелрест.

Оригинал: «pypar2: a par2 graphical frontend», 21 января 2007 г.

Часто загружаете бинарные данные с серверов Usenet? Тогда вы знаете, зачем нужны файлы .par2, и что для работы с ними нет хороших графических интерфейсов.

Объясню для тех, кто не знает, что такое par2: это утилита для защиты файлов от потери данных. Защита сводится к добавлению избыточной информации. Например, если вы создадите файлы с избыточностью в 5%, можно будет восстановить их, если потеряно менее 5% (поврежденные данные могут могут содержаться в любых файлах). Это можно использовать везде, где ожидаются потери: на серверах Usenet, дешевых CD- и DVD-ROM.

Для проверки и восстановления файлов или создания избыточных файлов вам нужно открыть терминал и использовать командную строку. Это работает безупречно, но не очень дружелюбно в отношении пользователя. Есть замена Gpar2, но она использует некоторые особые библиотеки, и, я уверен, многие из вас не хотят устанавливать лишние модули, если они на самом деле не нужны.

PyPar2 — простая графическая оболочка, написанная на Python (так что, даже если пакет не доступен для вашей системы, вам ничего не придется собирать). Вот как она выглядит:

Снимок экрана

PyPar2 разрабатывался простым в использовании. Вот список возможностей:

PyPar2 есть в нестабильной и тестовой ветке Debian и в Ubuntu Feisty. Скоро появится окончательная версия 1.0, со многими изменениями в коде, так что следите за обновлениями.

Ссылки

Rlwrap: используйте редактирование Readline со всеми приложениями

Автор: Arno.

Оригинал: «rlwrap: use readline’s line editing with all applications», 17 января 2007 г.

Во многих приложениях командной строки нет возможностей вроде журнала ввода, дополнения или редактирования строки. Rlwrap оборачивает Readline (библиотеку, отвечающую за перечисленные возможности в Bash и многих других приложениях) вокруг любой строко-ориентированной команды. Так что вы можете использовать преимущества журнала, дополнения, редактирования, даже если они не поддерживаются. Rlwrap принадлежит к числу тех приложений, после знакомства с которыми вы гадаете, как жили без них.

Например, telnet или netcat не имеет ни возможностей редактирования, ни истории. С Rlwrap системные администраторы будут способны использовать эти инструменты более эффективно. Также запуск Dash может иногда помочь проверить совместимость с несколькими строками кода интерпретатора. Увы, редактирование строк с Dash не очень приятно. С Rlwrap в Dash будет доступен журнал и дополнение.

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

Как и с Readline, вы можете настроить Rlwrap в файле ~/.inputrc. Вы можете также задать для каждого приложения список ключевых слов, Rlwrap будет их дополнять.

В Socat Readline оборачивается вокруг любой программы. Socat — больше, чем надстройка для Readline; его использование в таком качестве не только стрельбой из пушки по воробьям, но и просто более сложным процессом. Другая обертка к Readline — CLE (Command Line Editor). Это хорошее средство, но оно не дорабатывалось с 1999 года. Rlwrap — теперь уже более мощный инструмент с большим числом опций и возможностей настройки.

Целевая аудитория

Программа поможет пользователям приложений вроде netcat, telnet, dc, которые не связаны с readline, и где не поддерживаются возможности редактирования.

Совет

Если ваш командный интерпретатор поддерживает это, вы сочли бы полезным задать синонимы часто используемых команд, например, alias netcat="rlwrap netcat".

Домашняя страница Rlwrap — http://utopia.knoware.nl/~hlub/uck/rlwrap/.

Rlwrap есть в Debian (0.21-1 — в Sarge, 0.28-2 — в нестабильной ветке) и Ubuntu (0.24-1 — в Dapper и Edgy).

Mozart: система программирования

Автор: Кари Пахула.

Оригинал: «mozart: The Mozart Programming System», 14 января 2007 г.

Mozart — реализация мультипарадигменного языка программирования Oz, хорошо поддерживающего конкурентные и распределенные вычисления для решения задач на оптимизацию и вывод.

Некоторые из отличительных черт Oz — неизменяемые переменные и привязка. Например, вы можете сделать declare A B C, а потом исполнить C = A и [A 2] = [1 B] ([] — обозначение списка в Oz) и получить A = 1, B = 2, C = 1.

Неизменяемые переменные означают, что A = B приведет к ошибке исполнения. Если нужно, создайте новые вычислительные ячейки, где вы можете безопасно создать противоречие, а потом проверить ошибки извне.

Кроме того, в Oz есть прозрачная поддержка конкурентности. Проверьте сами следующий пример, если вы можете установить Mozart для Emacs и построчно копировать текст в эмулятор. Запустите из меню среду программирования X Mozart, нажимайте C-. C-l по мере ввода.

НапечаталиВидите
declare H W
{Inspect rect(width:W height:H area:thread W*H end)}rect(area:_ height:_ width:_)
H = 20rect(area:_ height:20 width:_)
W = 45rect(area:900 height:20 width:45)

В этом примере поток, запущенный для расчета площади, замораживатся до привязки к значениям W и H. Когда обе переменные определены, поток продолжает исполнение и устанавливает соответствующее поле записи rect.

Ничто выше не задействует каким-то образом состояния. С Mozart вы можете быть относительно далеки от декларативного подхода как такового. Но, если нужно, есть две (эквивалентные) абстракции для операций, привязанных к состоянию. Первая — буферы, которые работают во многом как обычные переменные с деструкцией. Другая — порты, каналы связи, передающие многое одному объекту. Если вы знакомы с Erlang, вы найдете их похожими на обмен сообщениями.

Для примера напишем сервер, возвращающий ввод.

declare Echo
local
Xs P
{Port.new Xs P}
proc {Consume Xs}
X|Xr = Xs % замораживается, пока к Xs не добавится новый элемент списка
in
{Inspect X}
{Consume Xr}
end
thread {Consume Xs} end
in
proc {Echo M}
{Port.send P M}
end
end

Это лишь малая толика того, что могут Oz и Mozart. Даже если вы не собираетесь писать программы с использованием Mozart, принципы Oz стоит знать любому уважающему себя программисту.

Ссылки

Mozart доступен для большинства 32-битных архитектур в Debian Woody, Sarge и Etch. Разница между 1.3.1 и 1.3.2 незначительна, так что вы ничего теряете, если используете версию из Sarge. Также пакет есть в Ubuntu, начиная с Warty.

Gems: ретранслируйте терминал

Автор: Мартин Феррари.

Оригинал: «gems: broadcast your terminal», 10 января 2007 г.

Gems — неизвестная, маленькая, но эффективная программа, позволяющая ретранслировать любому числу клиентов то, что вы видите в терминале. Она замечательна для технических лекций и обсуждений, когда людям часто требуется сделать усилие для того, чтобы увидеть то, что вы печатаете на экране проектора. Связь ведется по TCP-порту с очень маленьким трафиком, без затрат мощности процессора. Конечно, это свободное ПО!

Начать работу очень легко: нет никаких настроек, нужно только получить пакет с apt-get, и все готово. В главном терминале запустите сервер (можете задать порт и максимальное число соединений, по умолчанию — 6666 и 25 соответственно, детали в странице руководства), и сразу же вы вернетесь в оболочку:

teacherhost:~$ gems-server -port 9999
gems-server initialized.
gems-server: warning: terminal size is greater than 80x25.
teacherhost:~$ cd tmp
teacherhost:~/tmp$ PS1='Hello world class:w$ '
Hello world class:~/tmp$
Hello world class:~/tmp$ ls
test.c
Hello world class:~/tmp$

Gems предупредит вас, если используется большой терминал: клиенты не смогут подключиться, если их терминалы меньше. Для подключения к серверу просто укажите адрес и порт:

pupil1:~$ gems-client teacherhost 9999
gems-client: Connection established -- Press 'q' to exit.

Hello world class:~/tmp$ ls
test.c
Hello world class:~/tmp$

Когда клиент подключается, он видит только то, что вы напечатали после установки соединения, состояние экрана не поддерживается. Это нужно для простоты и совместимости с любым терминалом, но вы можете установить обновление экрана, как только подключаются новые клиенты (обычно простым нажатием ^L). В этом примере клиент подключился как раз до того, как была введена команда ls.

Gems

Этот снимок экрана показывает сеанс Gems с клиентами на том же компьютере (в активном окне — сервер). Вы можете использовать разные размеры терминала клиентов и сервера, так как серверный терминал может подстраиваться под клиентов.

Gems включен в Debian и Ubuntu, начиная с Sarge и Hoary соответственно.

Rlplot: высококачественные научные графики — легко

Автор: Фил Булл.

Оригинал: «rlplot: high-quality scientific graphs made easy», 7 января 2007 г.

Если вы ищите легкий путь создания и редактирования научных графиков профессионального качества, почему бы не обратиться к RLPlot?

Когда вы запустите RLPlot, вам показывается электронная таблица, куда можно ввести или копировать данные. Таблица удивительно функциональна для простого пакета построения графиков, и доступны многие встроенные формулы. Как только вы удовлетворены расположением данных, просто нажмите График → Создать график.

Выбор типа графика в RLPlot

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

Как только вы удовлетворены, можете вывести копию работы. Доступен хороший выбор форматов для сохранения, включающий SVG (лучший вариант, если нужно будет продолжить правку в другом приложении). Можно также напечатать график прямо из программы.

Редактирование графика в RLPlot

Будучи не таким мощным, как gnuplot, RLPlot предлагает простую и быструю альтернативу для создания красивых графиков научных данных. Он активно разрабатывается, а в текущей версии не выявлено серьезных ошибок. RLPlot есть в Debian Stable (более свежая версия — в тестовой ветке) и в Ubuntu (начиная с Hoary).

Sysrqd: маленький сервис для управления SysRq по сети

Автор: Жюльен Данчжоу.

Оригинал: «sysrqd: small daemon to manage Linux SysRq over network», 3 января 2007 г.

Sysrqd — крошечный демон для управления SysRq по сети.

SysRq — сокращение от «System Request»; это набор функций, привязанных ядром к комбинациям клавиш. Вы можете использовать их, нажимая Alt+SysRq+[клавиша] (клавиша SysRq может быть подписана на вашей клавиатуре как «Print Screen»), где клавишей может быть s (sync), k (sak), 09 (уровень входа в систему), b (перезагрузка), и так далее. Цель этих клавиатурных комбинаций — быть доступными, даже если вы не можете вызвать соответствующие функции привычным образом из-за того, что испортили что-то, система рухнула, либо перегружена.

Sysrqd поможет вам использовать комбинации с SysRq, даже если вы не сидите за компьютером, чтобы произвести аварийный сброс потоков на диск, перемонтирование в режиме только для чтения, перезагрузку.

Демон разработан для работы при сильной загрузке или в почти рухнувшей системе, так что всё должно получиться, даже если вы не имеете доступа к компьютеру. В этом случае вы будете счастливы подключиться по telnet на порту sysrqd, ввести пароль, нажать s, u, b и подождать перезагрузки сервера. Вы могли бы не иметь возможности сделать это, так как SSH не отвечает.

Соединение защищено паролем, но не шифруется, так что следует использовать фаерволл или использовать демон в доверенной сети.

Последняя версия — восьмая — существует в виде пакетов Debian и Ubuntu.