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

Ссылки

Thoggen: основанная на GTK+ программа для извлечения видео с DVD

Автор: Онкар Шинде.

Оригинал: «Thoggen: A GTK+ based simple DVD ripper», 31 октября 2007 г.

Thoggen — основанная на GTK+ программа для извлечения видео с DVD. Для кодирования видео используется GStreamer 0.10, сейчас поддерживается вывод только в Theora / Vorbis / Ogg (отсюда и название программы), но в будущем планируется добавить и поддержку других форматов.

Хорошие стороны:

Плохие стороны (по IRC авторы сказали что это все будет исправлено):

Самое плохое — кодирование в Theora обычно идет медленнее, чем в другие форматы видео.

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

Выбор заглавия

Параметры кодирования

Окно кодирования

Пакет есть в Debian, начиная с Etch, и в Ubuntu, начиная с Dapper. Разработка ведется несколько медленно, но многие возможности планируется добавить в последующих версиях.

Cowsay: настраиваемая говорящая и думающая корова

Автор: Алексей Бешенов.

Оригинал: «cowsay: a configurable talking and thinking cow», 28 октября 2007 г.

Cowsay — бесполезный, но очень смешной текстовый фильтр, написанный на Perl. Если направить какой-то текст программе cowsay, то вы увидите проговаривающую его ASCII-корову. Например, команда cowsay Hello, World! печатает

 _______________
< Hello, World! >
---------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||

Чтобы получить думающую корову, запустите cowthink:

$ cowthink Hello, World!
_______________
( Hello, World! )
---------------
o ^__^
o (oo)\_______
(__)\ )\/\
||----w |
|| ||

Если не указана опция -n, то программа переносит по строкам длинные тексты. Позицию, на которой проходит перенос, задает -W (по умолчанию, перенос делается на 40-й колонке или раньше). Все, что остается после опций командной строки, воспринимается как сообщение коровы. Иначе можно отправить текст в стандартный ввод программы. Скучные или надоедливые вещи можно пропускать через говорящую или думающую корову, так гораздо веселей:

$ uptime | cowthink -d
_____________________________________
( 19:16:39 up 4 days, 22:50, 1 user, )
( load average: 2.21, 1.74, 1.42 )
-------------------------------------
o ^__^
o (xx)\_______
(__)\ )\/\
U ||----w |
|| ||

Здесь -d определяет дохлую корову. Другие смешные режимы:

-e задает коровьи глаза (по умолчанию — -e oo), язык задает -T (по умолчанию — без языка).

Можно использовать других персонажей, к Cowsay прилагается много файлов (на деле это код Perl) в /usr/share/cowsay/cows. Список тем можно получить, запустив cowsay с опцией -l:

apt, beavis.zen, bong, bud-frogs, bunny, cheese, cower, daemon, default, dragon, dragon-and-cow, elephant, elephant-in-snake, eyes, flaming-sheep, ghostbusters, head-in, hellokitty, kiss, kitty, koala, kosh, luke-koala, mech-and-cow, meow, milk, moofasa, moose, mutilated, ren, satanic, sheep, skeleton, small, sodomized, sodomized-sheep, stegosaurus, stimpy, supermilker, surgery, telebears, three-eyes, turkey, turtle, tux, udder, vader, vader-koala, www.

-f указывает файл с темой (режимы -dgpstwy в некоторых случаях могут не работать, как и опции -T и -e):

$ cowsay -f moose Hi!
_____
< Hi! >
-----
\
\ \_\_ _/_/
\ \__/
(oo)\_______
(__)\ )\/\
||----w |
|| ||

Cowsay написал Тони Монро. Текущая стабильная ветка — 3.xx, но для тестирования с официальной странички можно скачать Cowsay 4. Пакеты Cowsay есть в Debian, начиная со старой стабильной ветки, и заканчивая нестабильной и экспериментальной, а также в Ubuntu Dapper, Edgy, Feisty, Gutsy. Конечно, программа зависит от Perl.

Kivio: мощный и простой в использовании редактор блок-схем

Автор: Кен Муир.

Оригинал: «Kivio: Powerful, easy to use Linux flowcharting», 24 октября 2007 г.

Часто говорят, что Linux проигрывает в плане основных приложений, но уж где точно есть хорошая замена программам для Windows, так это в редактировании блок-схем.

Kivio входит в состав офисного пакета KDE и предлагает основные возможности по работе со схемами, однако есть одна особенность — для объектов можно писать скрипты, основанные на Python, а также совместимые с Dia.

Хотя Kivio основан на KDE, все отлично работает и в среде GNOME — потребуется лишь несколько графических библиотек. Процесс установки очень прост; при первом запуске будет задан вопрос, начинать ли работу с пустого документа, либо с основного шаблона:

Первый запуск Kivio

Программа предлагает использовать фигуры Dia, географические объекты вроде карт и флагов, обозначения устройств, отношений объектов, а также элементы UML. Рабочая среда предоставляет палитры, обзор диаграммы, управление слоями и объектами. Выравнивание может производиться вручную и автоматически, для соединительных линий доступны самые разные виды стрелок. Поддерживается вывод результатов в большое число форматов, в том числе PNG, JPEG, BMP, Encapsulated PostScript, PBM, PCX, PPM, RGB, XPM, JPEG 2000, Krita, Adobe Illustrator, TIFF, ILM EXR, Karbon14, XCF, SVG и WMF.

Первый запуск Kivio

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

Kivio есть в Debian Sarge, Etch, Lenny и Sid, а также в Ubuntu Feisty и Gutsy. Сейчас над программой работает Питер Саймонсон; исходный код доступен на условиях GNU GPL 2.

Deborphan: найдите ненужные пакеты

Автор: Джеймс Камерон.

Оригинал: «deborphan: find packages you don’t want», 21 октября 2007 г.

Если вы давно читаете «Пакет дня», то скорее всего ставили для пробы кучу пакетов, и часть из них используете, а о других просто забыли.

Забытые пакеты могут дорого обойтись: они могут содержать исполняемые файлы с атрибутом setuid или запускать демоны, которые нарушают безопасность. Обновления будут занимать больше времени, и в ходе них будет загружаться больше информации. Резервные копии будут занимать больше места (вы ведь делаете резервные копии? при помощи Duplicity?).

Если вы используете для работы с пакетами aptitude, то лишние пакеты удалит команда автоматической очистки. Вот как используется Deborphan:

$ deborphan
libssl0.9.7
libstdc++5

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

$ aptitude purge `deborphan`

или, если привыкли работать на более низком уровне,

$ dpkg --purge `deborphan`

Рекурсивный вызов

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

#!/bin/sh
while [ -n "`deborphan`" ]; do
deborphan
echo
aptitude purge `deborphan`
done

Код выше можно сохранить в скрипт «deborphan-recursive» и вызывать по необходимости.

Не библиотеками едиными

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

$ dpkg-query -W --showformat='${Installed-Size} ${Package}n'
`deborphan -a | awk '{print $2}'` | sort -rn

Это можно оформить в скрипт «deborphan-by-size». По его вызову будет выдаваться отсортированный по убыванию размера список пакетов, от которых ничего не зависит. Результат можно отсматривать от начала к концу, выбирая, что не нужно и что можно удалить. Но помните, что каждое удаление пакета может внести в список изменения — какие-то пакеты могут требоваться только удаленному, а поэтому тоже стать ненужными.

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

Как насчет маленькой системы, где было бы как можно меньше пакетов и, соответственно, как можно больше свободного места на диске? Для удаления всего лишнего можно шаг за шагом вызывать deborphan. Если что, то dpkg, apt-get, либо aptitude предупредит вас, что вы пытаетесь удалить действительно нужный пакет. Тут следует остановиться, если не хотите проблем.

Иногда библиотеки устанавливаются только для удовлетворения зависимостей разрабатываемого пакета. Тут можно столкнуться с тем, что Deborphan удаляет нужные вещи. Чтобы решить проблему, создайте метапакет, зависящий от требуемых пакетов, либо настоящий пакет (при помощи pbuilder).

Deborphan всегда входил в состав Debian и Ubuntu.

Wget: загрузите весь понравившийся сетевой контент на локальный компьютер

Автор: Крис Камачо.

Оригинал: «GNU wget: Get all the web content you like on your local machine», 17 октября 2007 г.

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

Это одно из замечательных элементарных средств, первоклассно делающее то, за что берется, и вписывающееся в хваленый unix way. Другая хорошая сторона — это не интерактивная программа. Вы можете начать загрузку, отключиться от текущего сеанса, а потом обнаружить закачки при следующем входе.

Использование Wget

Проще всего запустить Wget, набрав wget http://foo.bar.baz/:

$ wget http://beshenov.ru/debaday/

Как только команда выполнится, вы получите в текущей директории файл index.html, содержимое которого и взято с http://beshenov.ru/debaday/.

Получение дерева каталогов

Чтобы получить всё содержимое каталога и его подкаталогов, укажите опцию рекурсивной загрузки -r:

$ wget -r http://beshenov.ru/debaday/

По команде выше будет создана локальная копия блога «Пакет дня». Обратите внимание, что по умолчанию, если на сайте есть robots.txt, то запрещенные файлы не будут загружены.

Несколько адресов

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

$ wget адрес1 адрес2адресN
$ wget -i путь-к-файлу

Другие опции

У Wget есть много других опций, например

Смотрите страницу руководства к программе (man wget).

Доступность

Так как это часть проекта GNU, то Wget должен быть во всех дистрибутивах Linux. Wget есть во всех версиях Debian и Ubuntu.

Авторы

Сейчас поддержкой GNU Wget занимается Миха Коуэн, изначально код написан Хрвое Никшичем.

Ссылки

Decibel: аудиоплеер для людей

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

Оригинал: «Decibel Audio Player: An Audio Player for Human Beings», 14 октября 2007 г.

Что такое аудиоплеер?

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

Что самое плохое, так мне эти возможности не нужны. Вы ставите оценки песням? Я не ставлю. Я разбираюсь в своей коллекции и знаю, что мне нравится, а что — нет. А как вам причудливые списки воспроизведения? Мне они не нужны: если хочу послушать музыку, то послушаю альбом целиком.

Решение есть

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

Decibel

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

Модули Decibel

Если что-то не требуется, просто отключите соответствующий модуль. Decibel основан на GStreamer и сейчас поддерживает MP3, Ogg Vorbis и FLAC. Интерфейс интуитивно понятен, дорожки можно перетаскивать в окно программы, менять местами и удалять. Хотя это еще молодой проект, текущие возможности реализованы правильно и работают как нужно.

Доступность

Decibel есть в нестабильной и тестовой ветке Debian и в Ubuntu Gutsy Gibbon (пакет decibel-audio-player). Последняя версия с поддержкой каталога коллекции доступна с домашней страницы проекта. Если вы ищете простой аудиоплеер, попробуйте Decibel — он не должен вас разочаровать.

Ссылки

bc: язык численных расчетов с произвольной точностью

Автор: Маркус Грюнвальд.

Оригинал: «bc: an arbitrary precision numeric processing language», 11 октября 2007 г.

В Debian сейчас можно найти 84 пакета, так или иначе связанных с расчетами: apt-cache search calculator | wc -l. Вместо более красивых калькуляторов можно использовать bc. У bc нет модного графического интерфейса — это консольная программа с простым математическим языком — а потому bc быстро работает и легко программируется.

Каждодневное использование

По умолчанию, bc работает в непривычном режиме с целочисленной арифметикой и без функций вроде синуса, косинуса и логарифма. Исправить дело можно, указав при запуске bc параметр -l — тогда будет использоваться стандартная математическая библиотека. Чтобы не печатать всегда «bc -l», можно использовать переменную окружения BC_ENV_ARGS. В bash достаточно добавить в ~/.bashrc строчку «export BC_ENV_ARGS=-l».

Итак, посмотрим для начала bc в каждодневном использовании. Введем выражение и нажмем клавишу ввода:

$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
850*77.1 <enter>
65535.0

Да, bc считает лучше, чем Excel 2007. И результат будет получен быстрее, чем если бы вы запускали калькулятор для KDE или GNOME.

Произвольная точность и функции

По умолчанию, при запуске с «-l», bc дает результаты с 20 десятичными знаками после плавающей точки, но число знаков можно увеличить до 2 147 483 647. Чтобы получить достаточно хорошую оценку π, просто напишите

scale=200  <enter>
4*a(1) <enter>
3.141592653589793238462643383279502884197169399375105820974944592307
81640628620899862803482534211706798214808651328230664709384460955058
223172535940812848111745028410270193852110555964462294895493038196

Впечатляет. Но что такое «a(1)»? bc использует очень короткие имена для тригонометрических функций. a(x) — арктангенс x. Если вы предпочитаете более длинные имена, запишите в файл определение своей функции, после чего добавьте этот файл в BC_ENV_ARGS, и он будет считываться при каждом запуске bc. Лучше всего загрузить готовый файл extensions.bc по адресу http://x-bc.sourceforge.net/extensions_bc.html.

Моя переменная BC_ENV_ARGS выглядит примерно так:

$ echo $BC_ENV_ARGS
-q -l /home/gru/.bc/extensions.bc

extensions.bc определяет некоторые функции под более привычными именами, например так:

define sin(x)
{
return (s(x))
}

В том же духе вы можете задавать собственные функции. Часто мне нужно преобразовывать отношения напряжений или токов в децибелы:

define db(x,y)
{
return 20*log(x/y);
}

Работа с разными системами счисления

bc может выполнять преобразования между произвольными системами счисления. Допустим, нужно перейти от десятичной записи числа к шестнадцатеричной. Для этого установим основание системы счисления для вывода obase равным 16:

obase=16 <enter>
10
A

Конечно, с этими числами можно проводить расчеты:

10/7
1.6DB6DB6DB6DB6DB6B

Основание системы счисления для ввода тоже можно менять:

ibase=16 <enter>
A/2
5
sin(AFFE) <enter>
-.B1F4021654E454E72

(Предлагаю самостоятельно разобраться, что это такое :-)

Использование в скриптах

Bash — хороший командный интерпретатор, но при сложных расчетах $(()) не поможет. Можно вызвать bc:

$ a=$( echo "l(1024)/l(2)" | bc )
$ echo $a
10

Заключение

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

bc есть во всех версиях Debian и в Ubuntu Dapper, Edgy, Feisty, Gutsy.

Ссылки

hpodder: клиент подкастов, который просто работает

Автор: Мэт Клэр.

Оригинал: «hpodder: a podcast client that just works», 7 октября 2007 г.

Вкратце

hpodder — консольный клиент подкастов, который просто работает. С аргументами командной строки легко обращаться, и они предоставляют гибкость настроек загрузки.

Подробно

Если вы отчаялись в поисках программы, которая бы соперничала с простотой и эффективностью iTunes, и клиенты для Линукса кажутся вам недоработанными, то посмотрите hpodder. Если все другие варианты нацелены делать все возможное, но полны багов, то hpodder незатейлив и работоспособен.

После установки можно набрать в терминале «hpodder» и начинать работу. При первом запуске вам будет предложено создать директорию для подкастов и подписаться на пробные потоки. Если вас интересует конкретный подкаст, напишите

$ hpodder add http://yourfavouritesite.com/podcastfeed.xml

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

$ hpodder update
$ hpodder download

Или, если хотите еще проще,

$ hpodder fetch

Это объединяет команды update и download. Если вы слушаете подкасты на разных компьютерах и хотите загрузить только последний выпуск, то напишите

$ hpodder catchup
$ hpodder fetch

Если хотите загрузить или обновить только отдельные подкасты, указывайте после команд (update, download, fetch, catchup) идентификатор. Для удаления подкаста используйте

$ hpodder rm идентификатор

где идентификатор — присвоенный программой номер подкаста (если не укажете, то удалится все).

Загрузка последнего выпуска подкаста быстро и эффективно производится при помощи cURL, и в случае прерывания может быть продолжена.

Если вы хотите регулярно выполнять hpodder fetch, можете использовать планировщик задач cron.

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

Минусы программы

Единственный минус программы — необходимость использования отдельного аудиоплеера; впрочем, почти у всех есть свои особые предпочтения — Kaffeine, MPlayer, Totem, VLC, и так делее — поэтому пользователи будут только рады возможности выбора.

hpodder есть в Debian, начиная с Etch, и Ubuntu, начиная с Feisty.

weather: проверяйте сводку и прогноз погоды из командной строки

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

Оригинал: «weather: check weather conditions and forecasts on the command line», 4 октября 2007 г.

weather из пакета weather-util — простая консольная утилита для просмотра текущего состояния погоды и прогноза. Данные в формате METAR берутся от National Oceanic and Atmospheric Administration, а прогнозы предоставляются National Weather Service. В документации говорится, что программа ограничивается только информацией для Соединенных Штатов, но на деле METAR предоставляется станциями по всему миру (см., например, http://www.google.ru/search?q=METAR+Russia). Впрочем, прогноз погоды можно будет получить только для США.

Многие места уже предопределены в /etc/weatherrc. Если там уже есть интересующая вас местность, то для работы потребуется только узнать ее синоним. Например, в /etc/weatherrc есть следующая запись для Альбукерки, штат Нью-Мексико:

[ABQ]
City = Albuquerque
ID = KABQ
St = NM

Таким образом, синоним для Альбукерки — «ABQ». Поэтому текущее состояние дел в Альбукерке можно узнать командой weather ABQ:

$ weather ABQ
Current conditions at Albuquerque International Airport (KABQ)
Last updated Sep 26, 2007 - 04:56 PM EDT / 2007.09.26 2056 UTC
Wind: from the ESE (120 degrees) at 3 MPH (3 KT)
Sky conditions: mostly clear
Temperature: 77.0 F (25.0 C)
Relative Humidity: 15%

weather -f ABQ покажет краткосрочный прогноз:

$ weather -f ABQ
Current conditions at Albuquerque International Airport (KABQ)
Last updated Sep 26, 2007 - 04:56 PM EDT / 2007.09.26 2056 UTC
Wind: from the ESE (120 degrees) at 3 MPH (3 KT)
Sky conditions: mostly clear
Temperature: 77.0 F (25.0 C)
Relative Humidity: 15%
City Forecast for Albuquerque, NM
Issued Wednesday afternoon - Sep 26, 2007
Wednesday night... Low 52, 0% chance of precipitation.
Thursday... Sunny, high 81, 0% chance of precipitation.
Thursday night... Low 54, 5% chance of precipitation.
Friday... Partly cloudy, high 80.
Friday night... Low 56.

Новые местоположения можно добавлять прямо в этот файл, либо в пользовательские файлы ~/.weatherrc. Запись [default] задает место по умолчанию. Например, в моем ~/.weatherrc написано

[default]
City = denver
Forecast = True
ID = KFNL
St = CO

City и St (город, штат) — поля для получения прогнозов; текущая погода находится по полю ID. Я использую такие настройки, чтобы указать weather, что меня интересует погода в Денвере, штат Колорадо, а для получения текущей сводки должна использоваться ближайшая станция. Если вы не укажете [default], то по умолчанию получите данные для Роли (Raleigh), штат Северная Каролина.

Для определения своих настроек важно знать, какую информацию использует в своей работе weather. Например, мне нужно узнать сводку для Лаббока, штат Техас, и я выполняю такую команду:

$ weather -o --city=Lubbock --st=TX
Current conditions at Fort Collins-Loveland Municipal Airport (KFNL)
Last updated Sep 26, 2007 - 05:55 PM EDT / 2007.09.26 2155 UTC
Wind: from the ENE (070 degrees) at 5 MPH (4 KT)
Sky conditions: clear
Temperature: 71 F (22 C)
Relative Humidity: 23%

(-o отключает отображение прогноза.) Как видите, weather рассказал о погоде у меня в Денвере, а не в Лаббоке — для текущих сводок используется идентификатор станции, а не информация о городе и штате. Нужная информация будет получена, если указать --id:

$ weather -o --id=KLBB
Current conditions at Lubbock International Airport (KLBB)
Last updated Sep 26, 2007 - 05:53 PM EDT / 2007.09.26 2153 UTC
Wind: from the S (170 degrees) at 9 MPH (8 KT) gusting to 18 MPH (16 KT)
Sky conditions: mostly cloudy
Weather: Cumulonimbus clouds, towering cumulus clouds observed
Temperature: 86.0 F (30.0 C)
Relative Humidity: 38%

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

$ cat /etc/cron.weekly/pub-reminder
#!/bin/sh

set -e

if weather -f | egrep -q '(100)|([5-9][0-9])% chance of precipitation'; then
mailx -s 'Cancellation' $PUBCRAWLEES < ~/pub-crawl-cancelled
else
mailx -s 'Get on your bike' $PUBCRAWLEES < ~/pub-crawl-is-a-go
fi

Конечно, я бы просто посоветовал надеть плащ.

weather можно взять из пакета weather-util в Debian Etch, testing, unstable и Ubuntu Edgy, Feisty, Gutsy.

О поиске метеостанций

Идентификаторы метеостанций следует искать по адресу http://www.weather.gov/tg/siteloc.shtml. Там доступна информация для многих стран, в том числе и для России.