понедельник, Июль 14, 2008

От фотонов до фотографии: от сырых данных к изображению

В коммерческих цифровых фотокамерах используются CMOS и CCD фотосенсоры, сходные с теми, которые используются в технических цифровых камерах. Отклик таких фотосенсоров прямо пропорционален зарегистрированному излучению (если только это не логарифмическая камера). Однако фотография, сделанная в линейном режиме, выглядит бледной и мало контрастной. Для того, чтобы такое изображение было похоже на фотографию, применяются различные методы обработки изображений: интерполяция, гамма-коррекция, контрастирования и прочие. В общем, если хотите узнать, что происходит внутри камеры и как получается изображение - читайте.

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

Следует, впрочем, отметить, что не все RAW-файлы являются необработанными. В случае CMOS-фотосенсоров предварительное шумоподавление происходит уже на сенсоре (об этом чуть ниже). Более того, некоторые производители коммерческих цифровых камер применяют нелинейную компрессию RAW-файлов, например некоторые камеры Nikon:

Leaving off Uncompressed NEF is potentially significant--we've been
limited in our ability to post process highlight detail, since some of
it is destroyed in compression.<...> There is some loss of data, mostly in the form of lowered resolution in the highlights.
<...>

In another disturbing development in Nikon's RAW formats saga, it seems they are encrypting white balance information in the D2X and D50 NEF format.

Однако большинство современных камер позволяют получать всё-таки линейные RAW-файлы.

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

0. Шумоподавление на чипе. Этот этап имеет место для CMOS фотосенсоров. Ещё до квантования из данных вычитается темновой пространственный шум (данные о шуме накапливаются в том же пикселе) и устраняется неоднородность усиления по столбцам (метод Correlated Double Sampling). Такие операции производятся прямо на пикселе (активные пиксели, технология 4/5Т) и электроникой камеры.

1. Квантование и запись сырых данных.
На этом этапе данные квантуются АЦП и записываются в память фотокамеры в виде RAW-файла. Этот файл содержит линейные данные и информацию об условиях съёмки (время экспозиции, диафрагма, значение ISO и проч.). Эти данные могут быть извлечены только специализированными конвертерами.

2. Удаление постоянной составляющей шума. На этом этапе конвертер вычитает из данных среднее значение шума чтения. Это значение вычисляется из данных ``вторичных пикселей'' (secondary pixels), закрытых от света и присутствующих на матрице (как правило, это ``рамка'' з пикселей толщиной 5-10 пикселей). Например, конвертер DCRAW при этом выводит диагностическое сообщение Scaling with black 256.

3. Цветовое масштабирование данных. Эта операция требуется для того, чтобы восстановить правильный баланс цветов на изображении. Для этого ``сырые'' данные в пикселях R G B G (составляющих баеровский шаблон светофильтров) умножаются на рассчитанные камерой константы. Например, DCRAW выводит такое диагностическое сообщение: multipliers 2.630775 1.000000 1.249379 1.000000, то есть пиксели R G B G умножаются соответственно на эти числа.

4. Цветовая интерполяция. Чтобы полутоновое изображение, каким является в RAW-файл, стало цветным, требуется восстановить недостающие цветовые компоненты для каждого пикселя: для пикселя R - синюю и зелёную компоненту, для G - красную и синюю, для B - красную и зелёную. Например, можно найти среднее между значениями ближайших соседних пикселей каждого цвета. Алгоритмы современных конвертеров более изощрённые, в результате чего артефактов на цветном изображении после интерполяции почти не заметно. Таким образом, изображение после интерполяции становится цветным.

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

6. Контрастирование.
Матрица фотоприёмника линейно реагирует на зарегистрированный свет, а отклик человеческого глаза на световое ощущение описывается сложной логарифмической кривой. Для того, чтобы изображение выглядело привычным для просмотра человеком, цветное изображение подвергается нелинейной коррекции яркости - гамма-коррекции. После этого цветное изображение, в котором учтён баланс белого, становится похожим на то, что видел глаз фотографа в видоискатель фотокамеры.

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

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



А казалось бы - простая вещь, цифровая фотокамера...
Читать дальше...

Продолжение следует...

понедельник, Июль 07, 2008

Два слова о /proc

Используя файловую систему /proc, можно изменять многие параметры системы без необходимости перезагрузки машины и многое узнать о работе системы. О некоторых полезных командах - далее в этом посте.

Файловая система /proc - это виртуальная файловая система[1], поэтому файлы, которые вы найдете в этом каталоге, на самом деле не занимают места на вашем жестком диске. Это карта, создаваемая ядром и присоединяемая к вашей обычной файловой системе, чтобы обеспечить доступ к настройкам ядра и информации о системе.

Многие программы собирают информацию из файлов в /proc, форматируют их и выводят результат пользователю (top, ps и другие). Также существует специальный подкаталог /proc/sys. Он позволяет вам просматривать параметры ядра и изменять их на лету.


Общие слова
Не стоит открывать эти файлы обычным текстовым редактором - это может нарушить целостность данных или ядро может успеть изменить значения в этих файлах.
Чтобы этого избежать, следует пользоваться командами echo и cat для установки и просмотра содержимого файлов соответственно.

Чтобы передать значение fake в файл /proc/your/file, следует дать команду:

echo "fake" > /proc/your/file
Для того, чтобы увидеть значение в файле, используем cat:

cat /proc/your/file

получим:
fake
В основном в /proc вы найдете файлы read-only за исключением /proc/sys, которая содержит большинство параметров ядра и предназначена для изменения во время работы системы.


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

/proc/scsi/scsi
Позволяет добавить или отключить диск, если он поддерживает горячую замену (SCSI или SATA). Указать ядру на подключение нового диска можно командой:

echo "scsi add-single-device w x y z" > /proc/scsi/scsi
Чтобы эта команда работала правильно, вы должны указать параметры значений w, x, y, и z следующим образом:
  • w - это ID хост адаптера, где первый адаптер имеет ID ноль (0))
  • x - это канал SCSI на хост адаптере, где первый канал ноль (0)
  • y - это SCSI ID устройства
  • z - это номер LUN, где первый LUN ноль (0)
Этот трюк можно проворачивать не только с дисками: в своё время это пришлось делать мне для подключения многослотового кардиридера.

Чтобы извлечь диск из системы без перезагрузки, размонтируем его и даём команду:
echo "scsi remove-single-device w x y z" > /proc/scsi/scsi

Перед тем как ввести эту команду и удалить SCSI диск, убедитесь, что вы отмонтировали файловые системы на этом диске.


/proc/sys/kernel/acct
Здесь содержатся три конфигурируемых значения, которые управляют подсчётом процессов, основанном на свободном пространстве файловой системы:

  1. Если свободное пространство ниже значения в процентах, то процесс
    подсчета останавливается.
  2. Если свободное пространство выше, то процесс запускается.
  3. Частота в секундах, с которой проверяются предыдущие два значения.
Чтобы изменить значения в этом файле, вам следует использовать разделенный список параметров. Значения по умолчанию: 2 4 30

Для их изменения следует дать команду
echo "3 5 40" > /proc/sys/kernel/acct
Эти значения остановят подсчёт, если в файловой системе менее 3 процентов свободного пространства и начнет опять если появится 5 или более процентов. Проверка производится каждые 40 секунд.


/proc/sys/kernel/ctrl-alt-del
Этот файл содержит двоичное значение, которое управляет реакцией системы на комбинацию ctrl+alt+delete. Возможны два значения:

  1. Ноль (0) значит, что ctrl+alt+delete принимается и отправляется программе init, что обеспечит правильный останов и перезагрузку как если бы вы ввели команду reboot.
  2. Один (1) значит, что ctrl+alt+delete не принимается и никакого чистого отключения не происходит - перезагрузка как при нажатии на RESET.
Значение по умолчанию - 0.


/proc/sys/kernel/panic
Задаёт время в секундах, которое ядро будет ждать перед перезагрузкой если произойдет "kernel panic". Установка в ноль (0) секунд отключит возможность перезагрузки при kernel panic.
Значение по умолчанию - 0.


/proc/sys/kernel/sysrq
Включает или выключает возможность использования Волшебной SysRQ-клавишей (Magick System Request Key). Если в ядре она активирована, чаще всего значение в этом файле 1.
Об этой клавише и её возможностях было написано тут.



/proc/sys/vm/swappiness

Этот параметр позволяет регулировать стремление системы сбрасывать данные из памяти в файл подкачки. Чрезмерное значение здесь приведёт к интенсивному использованию своп-файла, что нежелательно в ряде случаев (ноутбуки, lowlatency-системы). Слишком маленькое значение может привести к тому, что при заполнении памяти будет принудительно запущен OOMkiller (процесс, запускающийся при исчерпании памяти и убивающий наиболее ресурсоёмкие задачи).

Значение параметра может быть в пределах от 0 (наименьшее использование подкачки) до 100 (подкачка используется часто). Значение по умолчанию - 60. Есть сообщения, что при большом объёме памяти (от 1Гб) оптимальным значением является 10. Для этого:
echo "10" > /proc/sys/vm/swappiness
Больше об этом говорится здесь.



Как сделать настройки в /proc постоянными
Для того, чтобы изменения в директории /proc/sys стали постоянными, нужно внести изменения в файл конфигурации для sysctl - /etc/sysctl.conf

Формат этого файла требует некоторых пояснений. Так как sysctl может только изменять переменные в директории /proc/sys, то часть имени переменной обозначающая директорию отбрасывается. Другое изменение касается слэшей, которые заменяются на точки. Вот два простых правила для преобразования файлов в /proc/sys и переменных в sysctl:
  • Уберите из начала команды /proc/sys
  • Замените слэши на точки в имени файла.
Эти два правила позволят вам преобразовать любой файл в /proc/sys в любое имя переменной в sysctl. Обычное преобразование имени файла в переменную:
/proc/sys/dir/file --> dir.file
dir1.dir2.file --> /proc/sys/dir1/dir2/file

Вы можете увидеть все переменные, доступные для изменения, используя команду sysctl -a.

Хотя нижеследующее замечание относится к другой файловой системе, /sys, я считаю полезным привести здесь один пример. Это смена планировщиков ввода-вывода на лету. Чтобы узнать, какой планировщик стоит сейчас, даём команду:

cat /sys/block/sdX/queue/scheduler

Заменяя sdX на интересующее нас устройство. Текущий планировщик отмечен в квадратных скобках:

noop anticipatory deadline [cfq]
То есть сейчас стоит cfq - complete fair queue, полностью честный планировщик. Планировщики для разных дисков могут быть разными. Значения, которые можно передать в этот файл, такие: "as", "cfq", "deadline" или "noop". Об этом в других постах.


Ссылки
В сети много информации по /proc, но некоторые посты хотелось бы отметить особо. Здесь и тут есть много интересного, ну и конечно отличная документация этих седых UNIX-орлов из IBM :-) А здесь просто кладезь параметров, относящихся к работе в сети, которыми можно управлять через /proc (спасибо deimos)

Читать дальше...

Продолжение следует...

понедельник, Июнь 30, 2008

Лучшие посты - вариант виджета

Многие страждущие полезных украшений своих блогов хотят знать, что же из написанного более популярно среди читателей. В некоторых блогодвижках эта функция есть, а в Blogger её нет. По этому поводу написаны прямо-таки детективные истории о том, как это прикрутить. Но есть варианты и попроще...

Виджет "Популярные посты" (Popular posts) для Blogger
Для этого нужно воспользоваться бесплатной службой AideRSS, которая даже не требует регистрации. Это сервис, который анализирует популярность записей в фиде по количеству закладок в социальных сетях. Итак:

  1. Заходим сюда
  2. Вводим адрес своего блога или его фид и жмём Анализировать.
  3. После этого AideRSS выдаст нам всё, что она думает о нашем фиде. Жмём на Best posts или ТOP20, видим свои лучшие посты.
    Видим примерно вот что:
  4. Сразу под кнопками Best posts или ТOP20 ищем Sharing -> Widgets, нажимаем.
  5. Получаем код, в котором правим эту строчку:
    new AideWidget('aidewidget', 32683, 'year', 5);
    на предмет изменения:
    1. периода анализа популярности - year month week day
    2. количества показываемых постов числопостов
  6. Далее идём в настройки макета блога Blogger и добавляем новый элемент HTML/Java. В открывшемся окне вставляем поправленный код и сохраняем.

И это всё. Что намного проще, чем игры разума с Yahoo Pipes (при всём моём глубоком уважении к тем, кто этот лабиринт прошёл).


Плюсы:
+ Этот вариант с AideRSS очень прост.
+ Даёт в целом объективную картину о том, что в самом деле читают - анализ количества закладок в социальных сетях довольно объективный показатель.
+ Возможность подписки не только на сам фид, но и на его наиболее популярные посты.

Минусы
- Если ваши читатели безжалостно рубят javascript (а это бывает часто), популярных постов они не увидят.

Тем не менее, виджет может быть полезен и при анализе недавних постов - AideRSS даёт достаточно объективную картину того, что читается и что из написанного в блоге за последнее время действительно интересно.


Возможность подписки на самое интересное других блогов
У службы AideRSS есть ещё одна интересная возможность - подписываться на популярные посты блогов. У них своя система оценки популярности записей, основанная на количестве комментариев и закладок в социальных сетях. Так что можно подписываться не просто на ленту, а на ленту самых читаемых постов.

Так же можно вставить на свою страницу виджет "Подписаться на популярные посты". Он отдаёт полную ленту новостей, не feedburner-овскую. Сервис AideRSS пока что в бета-версии, но шлифуют его активно и на багрепорты реагируют очень быстро.


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


- "Это знают все!" - ответят мне анонимные аналитики.
- "А вот и нет!" - Дело в том, что на блоге "Интернетные штучки" проводился опрос: Нужна ли ИШ сокращенная RSS лента?

Результаты удивительны:
  • дополнительная, сокращенная лента необходима: 22% (338)
  • ничего не надо добавлять: 29% (450)
  • мне все равно: 26% (403)
  • что такое rss лента?: 24% (375)
Вдумайтесь, коллеги-блогописцы: 24% посетителей продвинутого интренет-портала не знают о том, что это за больщущая рыжая кнопка в углу строки броузера. А ведь это же четверть наших дорогих и любимых подписчиков! :-)
Читать дальше...

Продолжение следует...

среда, Июнь 25, 2008

Выставка НТТМ-2008

На ВДНХ проходит выставка НТТМ - научно-техническое творчество молодёжи, на которой засветился и автор этих строк. Экспонировал систему оптического кодирования данных, получение линейных данных при помощи свободного софта и обычной цифровой камеры. Небольшой фоторепортаж с выставки прилагается.

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

Больше таких масштабных надувных конструкций особенно не было. Так же на стендах периодически встречались не только пингвинводы, но и поклонники BSD-систем:


Народ совершенно разноплановый: от серьёзных товарищей типа МГУ, МИФИ, ФизТеХа, МАИ и МЭИ до нанонедополупсевдотехнологов и сайтописателей. Каждый привёз что-то своё, и довольно забавно наблюдать эту пёструю выставку.

Тут и лунные терминалы, и наноспутники, и вполне серьёзные проекты по созданию автономных роботов... Чего тут только не встретишь.

Вот как выглядит типичный стенд:


Стол, стул, розетка и место под плакаты. Вполне себе по-спартански. В общем, если вы будете в ближайшее время гулять по ВДНХ, для разнообразия можно заглянуть в павильон 57. Это и в самом деле "выставка достижений народного хозяйства", так как по большому счёту всё выставленное сделано из подручных средств.

Читать дальше...

Продолжение следует...

понедельник, Июнь 23, 2008

Инфракрасная съёмка веб-камерой

Как настроить веб-камеру Logitech QuickCam Messenger уже написано здесь. Теперь хорошо бы её превратить, например, в охранную камеру - для этого нужно снять с камеры ИК-фильтр. В этом процессе есть особенности, так что об этом - небольшой рассказ.


Демонтаж ИК-фильтра с вебкамеры
В Сети достаточно много историй о том, как разобрать вебкамеру, но инструкций для своей я не нашёл. Самое близкое, что удалось найти, располагается тут.

Итак, исходные данные - вебкамера Logitech QuickCam Messenger, зубоврачебный инструмент и немного терпения.



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

0. Запасаемся инструментом
Прежде всего, вам потребуется несколько тонких крестовых часовых отвёрток, тонкая плоская отвёртка (или зубоврачебный интрумент), пинцет и немного терпения.


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



2. Развинчиваем камеру
Сбоку камеры есть маленькая резиновая заглушка - её надо отковырять острым предметом (стоматологи знают, о чём я :-))



Там, в глубине, узкоглазые китайцы запрятали маленький винтик - отворачиваем его крестовой часовой отвёрткой. Отворачивается он с трудом, во многом потому, что кто-то не поленился сделать целую шахту и упрятать туда этот крошечный винтик.



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


3. Вскрытие
Теперь, аккуратно и не прикладывая чрезмерной физической силы, вставляем в паз что-то острое и раскрываем две половинки камеры. Паз будет в верхней части камеры:



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



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


4. Вывинчиваем оптику
Аккуратно подаём на себя чёрную головку с оптикой камеры - её нужно осторожно вынуть вместе с платой из паза, в котором она вращается. Вынимать нужно не совсем, а только из пазов.




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



Очень желательно не трогать её ничем и вообще отложить камеру в сторону так, чтобы на матрицу ничего не попало.


5. Демонтаж ИК-светофильтра
Вот тут есть тонкий момент. Дело в том, что ИК-фильтр вставлен внутрь головки с оптикой и сверху наплавлен тонкий кантик, который нужно удалить. Делать это нужно решительно, не забывая о том, что ИК-фильтр стеклянный и его можно легко сломать. На рисунке показаны три стрелки, указывающие на секции пластикового кантика, который нужно аккуратно срезать.



После этого вы сразу услышите скрип стекляшки - это значит, что вы корябаете остриём по ИК-фильтру. Мы почти у цели, теперь нужно уменьшить усилия и осторожно выковырять ИК-фильтр из его пластиковых объятий.




6. Собираем всё обратно
После того, как мы удалили ИК-фильтр, собираем всё обратно. Включаем камеру и смотрим - всё должно работать, но цвета на изображении будут несколько странными. Это нормально. Вот автор этих строк в инфракрасном виде:



Теперь берём пульт управления от любой бытовой техники и светим в камеру. Масса положительных эмоций гарантирована.



А зачем всё это!?
На этот вопрос есть много ответов. Самое главное - после демонтажа ИК-фильтра чувствительной вашей веб-камеры должна сильно возрасти, что очень пригодится при съёмке в условиях плохой освещённости. Больше света - выше "сигнал\шум" изображения, то есть качество изображения лучше. Так что лучше хорошее чёрное-белое изображение, чем сильно зашумлённое цветное.

Большая чувствительность и способность видеть в темноте очень пригодятся, если нужно сделать небольшую охранную камеру. ИК-светодиоды сейчас весьма мощные, и, спаяв из них небольшую гирлянду, можно обеспечить камеру подсветкой и осветить средних размеров комнату. Супостат ничего не увидит, а у вас на камере будет видеосъёмка, с датой и временем. Организовать это несложно.

Идём дальше и ваяем телеметрическую камеру. Можно взять обычный маломощный компьютер, такую ИК-вебкамеру и старую ненужную USB-клавиатуру. Выпаять с неё светодиоды, впаять ИК-диоды, и с помощью удалённого управления через ssh иксами играть с помощью setleds светодиодами, обеспечивая камере подсветку.

Более того, многие виды синтетической одежды в ИК-диапазоне прозрачны. Это так же даёт пищу для размышлений.

Наконец, многие жидкости (типа Кока-Колы и чернил) в ИК-свете прозрачны. Так же можно увидеть знаки защиты на банкнотах. Короче, при наличии фантазии и смекалки из веб-камеры можно много чего сделать. И вообще полезно иметь это в ввиду - мало ли какие инженерные задачи придётся решать...


Ссылки
Ещё посмотреть и почитать о том, как заставить видеть камеру в ИК можно здесь и тут. Всё это на хорошо нам известном английском языке. Так же интересно пишет об ИК-съёмке Татьяна Кузьмина. Можно ещё заглянуть сюда.

Читать дальше...

Продолжение следует...

среда, Июнь 18, 2008

Установка Firefox 3 в Debian Stable

Если вы скачали свежий Firefox 3 и пытаетесь установить его в стабильном Дебиане - вас ждёт неприятный сюрприз. Нужно GTK+2.10, а в Debian Etch только 2.8. Но это не повод крушить систему и переходить на testing - можно обойтись бекпортом. Сейчас черепаха Тортилла продаст вам Золотой ключик...


Установка
При попытке установить свежий Firefox в Debian Etch вы получите такое сообщение:

We're sorry, this application requires a version of the GTK+
library that is not installed on your computer.
You have GTK+ 2.8.
This application requires GTK+ 2.10 or newer.

Please upgrade your GTK+ library if you wish to use this application
Обновлять GTK+ при этом совсем не обязательно. Рекомендации, данные тут и здесь, избавят нас от длительных плясок с бубном и сборкой библиотек. Чтобы установить Firefox 3 в стабильном дебиане, нужно скачать бекпорт отсюда. После этого распаковываем пакет командой:
dpkg-deb -x libgtk2.0-0_2.10.13-2~bpo.1_i386.deb gtk2-10
Далее переходим в каталог, где распакован Firefox3 (например это может быть /opt/firefox3). Копируем в этот каталог /opt/firefox3 каталог /gtk2-10 для того, чтобы наш огнелис запустился. После этого ищем скрипт /opt/firefox3/firefox и правим его так:
#!/bin/sh
#
export LD_LIBRARY_PATH="/opt/firefox3/gtk2-10/usr/lib"
......
Это нужно, чтобы Огнелис знал, где нужная для него новая библиотека GTK+. Всё, запускаем /opt/firefox3/firefox и радуемся... почти.

... и впечатления.
Работает новый Firefox 3 достаточно стабильно - если не считать вылета при первой же попытке посмотреть на список плагинов (видимо, MR. Local Install не приглянулся). После перезапуска Огнелису полегчало и работа продолжилась.

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

Понравились многие новые расширения. Например, если вы читаете RSS-ленты с помощью лёгкого Sage, вам определённо понравится Sage-Too. Многие расширения можно сделать совместимыми с новой версией с помощью Mr.Tech Toolkit.

Из приятного первое, что бросается в глаза, это скорость. Да, если вы любите открывать много вкладок, работать с гугловскими сервисами и вообще ни в чём себе не отказывать - Огнелис 3 это оно. Быстрее стал работать Scrapbook в новом Firefox3, особенно на больших коллекциях страниц.


Это плюсы. Теперь минусы.

Самый главный - это очень плохая обратная совместимость. Половина расширений отвалилось, Огнелис вываливается при первом запуске, если установлен MrTech Local Install (старой версии).

Сайт с обновлениями в день релиза, естественно, перегружен. Темы не обновились и включилась дефолтная. Не знаю, что там мозилловцы имели в виду насчёт "интеграции интерфейса", но по умолчанию в Linux Огнелис 3 выглядит прямо скажем готично:

Через некоторое время, когда сайт расширений стал хоть как-то отвечать, я поставил тему BlackX2, что намного лучше.

Несколько найденных обновлений от чудом ответивших сайтов поднялись и вспомнили свои настройки. Но всё равно список выключенных расширений удручает.
Самая большая потеря - Scribefire. Эти жлобы уверяли, что "всё будет ОК", но при переходе Scribefire потеряло ВСЕ посты. Да, у меня конечно есть резервная копия, но восстанавливать их все - не большая радость. А придётся. Заодно будет повод проредить посты для публикации.

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

В остальном всё более или менее работоспособно.

Что в итоге

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

Минусы:
- надо бы мозилловцам вспомнить смысл слова "тестирование" и "переход". Поломанных расширений больше половины - и самое противное, что нельзя по умолчанию сделать их совместимыми.
- авторам расширений тоже не мешало бы получше продумать проблему перехода. Особенно хочется пнуть Scribefire,Sage и EasyGestures.

В целом эмоции положительные, но не без проблем. В общем, бекапы делать надо перед переходом обязательно.

Читать дальше...

Продолжение следует...

понедельник, Июнь 16, 2008

Поиск пакета по меткам: debtags

В репозитории Дебиана пакетов очень и очень много. Для поиска пакетов можно использовать много методов, однако всегда интересно посмотреть, а может быть есть полезная и нужная программа, которую пропустил. Для этого есть в каждом пакете теги (они же метки), а поиск по меткам лучше всего удаётся замечательной программе debtags.

Можно иметь под рукой огромный репозиторий и не знать, что в нем есть. Начиная с Debian Etch, появилась такая замечательная программа, как debtags. Она при умелом пользовании должна сильно помочь при поиске программ для конкретных задач.


Поиск по аналогии
Например, поищем программы для просмотра изображений. Скажем, используем программу gqview - поищем её аналоги в репозитории:

$ debtags related gqview
Результат:

pornview
- Image and movie viewer/manager
gtksee - GTK-based clone of ACDSee (an image viewer)

Продолжаем искать, уже зная о трёх программах. Для этого последовательно увеличиваем такой критерий поиска, как "дистанция", характеризующий похожесть искомых пакетов на указанный.
$ debtags related -d 1 gqview,pornview,gtksee
feh - imlib2 based image viewer
gthumb - an image viewer and browser
paul - Yet another image viewer (displays PNG, TIFF, GIF, JPG, etc.)

Таким образом нашли ещё три программы для просмотра изображений, feh, gthumb и paul. Используем их названия для дальнейшего поиска:

$ debtags related -d 2 gqview,pornview,gtksee,feh,gthumb,paul
Получаем:

xsane - GTK+-based X11 frontend for SANE (Scanner Access Now Easy)
showimg - A feature-rich image viewer
djview - Viewer for the DjVu image format
eog - Eye of Gnome graphics viewer program
xli - command line tool for viewing images in X11

Тут результат уже не точен, но 3 из 5 программ нам подходят. Среди горы пакетов найдено за пару минут целых просмотрщиков.


Поиск по конкретным тэгам
Выбираем подходящие теги для поиска:
$ aptitude show gqview eog showimg
И, наконец, ищем:
$ debtags search "use::viewing && works-with::image && interface::x11"
Получаем список из 51 пакета. Просмотрев его по диагонали, и выясняем, есть ещё несколько ранее не обнаруженных программ по просмотру изображений:

gimageview
xzgv
gwenview
glib
imgseek
kview
qiv
kuickshow


Осталось только выбрать самый подходящий.


"Умный" поиск
Теперь посмотрим, что из содержимого репозитория Дебиан умеет работать с изображениями:
$ debtags smartsearch images

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

Tag selection:

1) works-with::image (420/15850)
2) works-with::image:raster (293/15850)
3) works-with-format::png (35/15850)
4) role::program (4851/15850)
5) interface::x11 (2436/15850)
6) hardware::camera (44/15850)
7) x11::application (2175/15850)

8) role::program (4851/15850)
9) devel::library (3776/15850)
10) scope::utility (2970/15850)
11) interface::x11 (2436/15850)
12) interface::commandline (2405/15850)
13) x11::application (2175/15850)
14) special::not-yet-tagged (1914/15850)
15850 packages selected so far.
Your choice (+#, -#, =#, K word, View, Done, Quit, ?): +2

И ещё уточняем: нужны программы для редактирования изображений:

Tag selection:
1) works-with::image:raster (wanted)

2) works-with::image (289/293)
3) works-with-format::png (28/293)
4) role::program (125/293)
5) interface::x11 (86/293)
6) hardware::camera (25/293)
7) x11::application (79/293)
8) scope::utility (81/293)

9) works-with::image (289/293)
10) interface::commandline (65/293)
11) x11::application (79/293)
12) scope::utility (81/293)
13) use::editing (58/293)
14) interface::x11 (86/293)
15) uitoolkit::gtk (50/293)
293 packages selected so far.
Your choice (+#, -#, =#, K word, View, Done, Quit, ?): +13

Так можно найти много интересного в репозитории!


Читать дальше...

Продолжение следует...