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



14 коммент.
Многие страждущие полезных украшений своих блогов хотят знать, что же из написанного более популярно среди читателей. В некоторых блогодвижках эта функция есть, а в 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% посетителей продвинутого интренет-портала не знают о том, что это за больщущая рыжая кнопка в углу строки броузера. А ведь это же четверть наших дорогих и любимых подписчиков! :-)
Читать далее

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



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

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

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


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

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

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


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

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



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


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

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



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

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


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



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



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



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


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



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



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


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




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



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


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



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




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



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



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

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

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

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

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


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

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



33 коммент.
Если вы скачали свежий 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.

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

Поиск пакета по меткам в Debian GNU/Linux: debtags



11 коммент.
В репозитории Debian GNU/Linux пакетов очень и очень много. Для поиска пакетов можно использовать много методов, однако всегда интересно посмотреть, а может быть есть полезная и нужная программа, которую пропустил. Для этого есть в каждом пакете теги (они же метки), а поиск по меткам лучше всего удаётся замечательной программе 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 программ нам подходят. Среди горы пакетов найдено за пару минут целых 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

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

Читать далее

Subversion - быстрый старт, или Ставим Subversion/SVN за минуту в Linux



33 коммент.
Вы пишете программу на любом языке программирования или просто новую статью в латехе. В порыве вдохновения лихо правите текст, забывая о бекапах между изменениями. И тут вспомнаете, что часть текста вчера удалили зря. Резервных копий нет, а текст был хорош... И тут время ставить систему контроля версий - например, Subversion. О том, как поставить и настроить Subversion в Linux, написан этот пост.


Какая польза от Subversion не-программисту?
Даже если вы не профессиональный программист, система контроля версий может быть полезна для:
  1. возможности откатиться на любую предыдущую версию документа. Если вы пишете статью в ЛаТеХе и вам захотелось посмотреть на то, что у вас было две недели назад. В этом случае можно получить как историю изменений, так и непосредственно сами версии текстов.
  2. коллективной работы. Если статью или программу пишут несколько человек и хранят изменения в одном файле под управлением SVN, то они могут одновременно изменять и удалять разные части без риска потерять изменения.
  3. создания нескольких веток документа. Внесённые удачные изменения в одну ветку можно объединить с результатом основной работы.


Как быстро поставить и использовать систему контроля версий?
На самом деле, в этом нет ничего сложного. Итак, возьмите вашу латеховскую статью \ скрипт \ исходник программы и попробуйте. Для того, чтобы быстро поставить Subversion (она же SVN) и воспользоваться всеми её благами, нужно выполнить несколько простых шагов.


1. Ставим Subversion и оболочку для неё
Хотя с системой контроля версий удобнее работать через консоль, графическая оболочка не помешает (можно визуально наблюдать изменения, сравнивать правки и прочее). Ставим:
# aptitude install kdesvn svn
и все зависимости (здесь рассматривается svn v.1.4.2 из Debian GNU/Linux Etch). Через мгновение у нас уже будет установлена Subversion. Полдела сделано!


2. Начало работы с Subversion - импорт файлов в репозиторий
Первым делом нужно создать новый репозиторий - простой, без особых затей и канделябров:
$ svnadmin create phdthesis
В текущем каталоге появится подкаталог phdthesis следующего содержания:
drwxr-xr-x 2 penta4 penta4 32768 2008-06-03 15:48 conf
drwxr-xr-x 2 penta4 penta4 32768 2008-06-03 15:48 dav
drwxr-xr-x 5 penta4 penta4 32768 2008-06-03 18:55 db
-r--r--r-- 1 penta4 penta4 2 2008-06-03 15:48 format
drwxr-xr-x 2 penta4 penta4 32768 2008-06-03 15:48 hooks
drwxr-xr-x 2 penta4 penta4 32768 2008-06-03 15:48 locks
-rw-r--r-- 1 penta4 penta4 229 2008-06-03 15:48 README.txt

Красным подсвечены важные для нас каталоги: conf содержит конфигурационный файл репозитория (сейчас мы его немного допилим), а db содержит версии наших данных.

Наш репозиторий предполагается локальным, то есть доступа по сети к репозиторию нет и не надо. Тогда нужно конфиг немного допилить. Редактируем файл phdthesis/conf/svnserve.conf для того, чтобы у нас не было проблем с записью туда новых файлов - для этого ищем строку anon-access и правим:
anon-access = write
Теперь любой аноним имеет права на запись в наш репозиторий - то есть вам не нужно ломать себе голову авторизацией и паролями (если, конечно, с проектом работаете вы один).

Так, репозиторий создали, теперь его нужно наполнить данными. Для этого переходим в каталог, где хранятся нужные данные, и даём команду:
$ svn import -m "Initial dissertation state" file:///mnt/flash/other/phdthesis/
Здесь указывается полный путь до репозитория. Каждый раз указывать его не нужно - скоро мы поднимем SVN-сервер одной левой, и наша жизнь станет ещё веселее.

При импорте файлов Subversion будет выводить в консоль имена добавляемых файлов:
Adding disser.ins
Adding chapter.dtx
Adding kvoptions.ins
Adding (bin) draft_PhD_Konnik.dvi
Adding PhD_Konnik_chapter_introduction.tex
Adding PhD_Konnik_chapter_introduction.tex.backup
Adding PhD_Konnik.log
Adding PhD_Konnik.toc
Adding (bin) PhD_Konnik_chapter_introduction.dvi
Adding PhD_Konnik.tex
Adding (bin) PhD_Konnik.pdf
Adding (bin) PhD_Konnik.dvi

Committed revision 1.
То есть команда svn import берёт содержимое текущего каталога и помещает его в репозитарий, а так же все вложенные каталоги, если они есть. При этом выводится номер ревизии - это 1, наша первая правка.

Теперь ваши данные увековечены в репозитории, который будет автоматически бдить за вашими данными. И это просто!


3. Извлекаем и загружаем изменённые файлы в репозиторий
Для того, чтобы начать работать с файлами, переходим в какой-нибудь другой каталог и просим Subversion выдать нам последнюю копию из репозитория. Делается это так:

$ svn checkout file:///mnt/flash/other/phdthesis/
в результате чего в текущем каталоге получим локальную копию данных из репозитория.

После внесения нужных правок, загружаем результаты обратно в репозиторий, для чего выполняем команду в каталоге, где находится рабочая копия данных, с которыми работали:
$ svn commit --message "minor edition in tex-files"
После ключа --message пишем в кавычках короткое сообщение, чтобы отличать одну правку от другой. В процессе загрузки изменений Subversion будет выводить имена файлов, которые загружаются:
Sending PhD_Konnik.tex
Sending draft_PhD_Konnik.tex
Transmitting file data ..
Committed revision 2

Готово! Ревизия изменённых файлов зарегистрирована в репозитории. Вот так легко и просто начать работать с Subversion.

Для начала работы с системами контроля версий этого должно хватить.


Ссылки

Очень толковая статья для начала есть тут, фундаментальный талмуд по возможностям Subversion лежит здесь.

Читать далее

Зачем нужен BiBTeX и как его использовать



22 коммент.
Этот пост является частью большой статьи
"Как оформить диплом в LaTeX?",
которую написал virens,
ведущий блога "Записки дебианщика"

В этом посте уже говорилось о том, что такое BiBTeX и как его использовать. Судя по поступившим комментариям, это немного не очевидно - поэтому приведу простой пример использования единой библиографической базы BiBTeX в нескольких документах. Естественно, предполагается, что все необходимые программы (tetex, jabref, java) установлены и работают.


BiBTeX or not BiBTeX?
Чтобы ответ на этот вопрос стал более нагляден и очевиден, я приведу примеры документов с его использованием и без. Особенно ярко это проявляется тогда, когда кусок документа с цитированием литературных источников вставляется в другой документ - и это сейчас будет продемонстрировано.

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

\documentclass[a4paper,12pt,oneside]{article}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{amssymb,amsfonts,amsmath,mathtext,cite,enumerate,float}

\begin{document}

<.....>

Метод Голда\cite{gold} получен из метода ван Циттерта\cite{gold-cittert},
но с предположением, что действует он только для положительных чисел.
Восстанавливает по следующему алгоритму


<.....>


\newpage
\begin{thebibliography}{00} % Список литературы
\bibitem{blind}
S. M. Jefferies and J. C. Christou. Restoration of astronomical images by iterative
blind deconvolution. Astrophysical Journal, 415:862+, October 1993.
\bibitem{cittert}
Van CITTERT, P. H. : Zum Einfluss der Spaltbreite auf die
Intensittverteilung in Spektralinien II, Zeitschrift f\"ur Physik 69
(1933), 298.
\bibitem{cittert-convergence}
N.R. Hill, G.E. Ioup: J. Opt. Soc. Am. 66 (1976) 487
\bibitem{gold}
GOLD, R. : An Iterative Unfolding Method for Matrices, Tech.
Rep. ANL-6984, Argonne National Laboratory, Argonne, Illinois,
1964.
\bibitem{gold-cittert}
Journal of Electrical Engineering, Vol. 56, NO. 5-6, 2005, 141--145
Multidimensional FFT Based Positive
Definite Gold Deconvolution Algorithm
Miroslav Morh\'a\v{c} -- Vladislav Matou\v{s}ek
\bibitem{lucy}
L.B. Lucy. An iteration technique for the rectification of observed distributions.
Astronomical Journal, 79:745--754, 1974.
\bibitem{holmes}
Holmes, T.J. 1992. Blind deconvolution of
quantum-limited imagery: maximum likelihood
approach. J. Opt. Soc. Am. A 9:1052-
1061.
\bibitem{jansson}
P.A. Jansson, R.H. Hunt, and E.K. Peyler. Resolution enhancement of spectra.
Journal of the Optical Society of America, 60:596--599, 1970.
\end{thebibliography}
\end{document}
Разумеется, показан не весь документ, а лишь его часть. Ещё раз: ссылки \cite{} будут пронумерованы в том порядке, в котором они упомянуты в окружении \begin{thebibliography} .... \end{thebibliography} а не в порядке упоминания в тексте!

А вот как выглядит набранный документ:

Метод Голда [4] получен из метода ван Циттерта [5], но с предположени-ем, что действует он только для положительных чисел. Восстанавливает последующему алгоритму

<...>
Список литературы:

<...>
[4] GOLD, R. : An Iterative Unfolding Method for Matrices, Tech. Rep. ANL-
6984, Argonne National Laboratory, Argonne, Illinois, 1964.

[5] Journal of Electrical Engineering, Vol. 56, NO. 5-6, 2005, 141-
145 Multidimensional FFT Based Positive Definite Gold Deconvolution
Algorithm Miroslav Morhac - Vladislav Matousek

Теперь, если переставить местами в окружении \begin{thebibliography} .... \end{thebibliography} ссылки \bibitem{gold} и \bibitem{gold-cittert}, то в тексте ссылки будут стоять так:

Метод Голда [5] получен из метода ван Циттерта [4], но с предположением, что действует он только для положительных чисел. Восстанавливает последующему алгоритму
что не есть правильно. Особенно это будет прискорбно в большом документе и совсем грустно - в составленном из нескольких. Единственное исключение из этого правила - некоторые научные журналы (вроде Optics Letters и Optics Express), которые явно требуют вставлять библиографические ссылки в текст статьи в окружении \begin{thebibliography} .... \end{thebibliography} - их системы BiBTeX не переваривают. Обходится это очень просто: создаётся ещё один документ со статьёй, которому указывается библиографическая база данных BiBTeX. Файл компилируется, после чего берётся содержимое файла bbl и вставляется в финальную версию статьи.


Включаем BibTeX
Для этого не нужно особых телодвижений: нужно вбить источники литературы в базу через удобную графическую оболочку Jabref, кинуть на каталог базы симлинк, явно указать в документе использование BibTeX-овской базы и задать в преамбуле стиль библиографии.

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

penta4@penta4rce:~/documents/matlab/litobzor$ ls -lh
итого 512K
lrwxrwxrwx 1 penta4 penta4 40 2008-01-02 15:06 biblio -> /home/penta4/matlab/docus/topics/biblio/
-rw-r--r-- 1 penta4 penta4 49K 2007-12-05 11:23 Lit_obzor.pdf
-rw-r--r-- 1 penta4 penta4 208K 2007-12-05 11:23 Lit_obzor.ps
-rw-r--r-- 1 penta4 penta4 9,4K 2007-12-12 17:50 Lit_obzor.tex
...........
Готово, теперь поправим наш документ: вместо окружения \begin{thebibliography} .... \end{thebibliography} используем \bibliography{biblio/my} если ваша база называется my.bib (расширение не указывается). Кроме того, в преамбулу добавляем несортированный стиль библиографии (номера - в порядке упоминания в тексте) \bibliographystyle{unsrt}

Вот как это выглядит всё вместе:


\documentclass[a4paper,12pt,oneside]{article}
\usepackage[T2A]{fontenc}
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{amssymb,amsfonts,amsmath,mathtext,cite,enumerate,float}

\bibliographystyle{unsrt} %Стиль библиографических ссылок БибТеХа


\begin{document}

<.....>

Метод Голда\cite{gold} получен из метода ван Циттерта\cite{gold-cittert},
но с предположением, что действует он только для положительных чисел.
Восстанавливает по следующему алгоритму


<.....>

\newpage 
\bibliography{biblio/my}
\end{document}

Как и обещалось, вы работаете с текстом в ЛаТеХе, как и прежде, только вместо явного прописывания источников литературы вы заставляете этим заниматься ЛаТеХ. Машина работает, вы - отдыхаете. И это правильно.


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

Вопрос: А где теперь мои процитированные литературные источники?
Ответ: Они теперь в файле имядокумента.bbl, который можно открыть, посмотреть и при необходимости скопировать в другой документ. В этом примере он выглядит так:

\begin{thebibliography}{1}

\bibitem{lucy}
L.B. Lucy.
\newblock An iteration technique for the rectification of observed
distributions.
\newblock {\em Astronomical Journal}, 79:745--754, 1974.

\bibitem{cittert}
Van~Cittert P.H.
\newblock Zum einfluss der spaltbreite auf die intensittverteilung.
\newblock {\em Spektralinien II, Zeitschrift f\"ur Physik}, 69:298, 1933.

\bibitem{cittert-convergence}
N.R. Hill.
\newblock G.e. ioup.
\newblock {\em J. Opt. Soc. Am.}, 66:487, 1976.

\bibitem{jansson}
E.K.~Plyler P.A.~Jansson, R.H.~Hunt.
\newblock {\em J. Opt. Soc. Am.}, 60:596, 1970.

\bibitem{gold}
R.~GOLD.
\newblock An iterative unfolding method for matrices.
\newblock {\em Tech.Rep. ANL-6984, Argonne National Laboratory, Argonne,
Illinois,}, 1964.

\bibitem{gold-cittert}
{Miroslav Morh\'a\v{c}} and {Vladislav Matou\v{s}ek}.
\newblock Multidimensional fft based positive definite gold deconvolution
algorithm.
\newblock {\em Journal of Electrical Engineering}, Vol. 56, \No. 5-6:141--145,
2005.

\bibitem{holmes}
{T.J.~Holmes}.
\newblock Blind deconvolution of quantum-limited imagery: maximum likelihood
approach.
\newblock {\em J. Opt. Soc. Am. A}, 9:1052--1061, 1992.

\end{thebibliography}

Вопрос: Как переопределить в преамбуле, чтобы список литературы был через точку?
Ответ: Для этого в преамбуле (до \begin{document}) прописываем:
\makeatletter
\bibliographystyle{unsrt}
\renewcommand{\@biblabel}[1]{#1.}
\makeatother
И всё, теперь в списке литературы источники будут идти как 1. 2. ... N.


Вопрос: Можно ли в одном документе использовать не одну базу, а несколько?
Ответ: Да, можно, тогда их имена указываются через запятую без пробелов. Например, так: \bibliography{biblio/my,biblio/filosofy}

В следующем посте приведу пример использования стилей оформления литературы в BiBTeX.
Читать далее