О блоге

Все новые материалы размещаются на Блогосайте alv.me. Старые - в процессе переноса.

31.08.2008

Хроника блога. 2

Была прекрасна и чиста
Надежда сноба,
Блондинок линуксом пытал,
Шатал основы.
Он чаянья свои облек
В тома для полок,
А сам на вид, как человек,
Хотя геолог
Алиса Деева

Окончание лета ознаменовал размещением моих первых заметок про Zenwalk, ранее публиковавшихся на Citkit. Они представляют в основном исторический интерес, отражая историю развития этого дистрибутива (а также моих представлений о нём).

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

На этом собрание моих старых сочинений (1998-2007 год) в основном и целом закончено. В дальнейшем здесь будут размещаться сочинения новые.

Еще раз про Zenwalk

Вышла в свет очередная версия дистрибутива Zenwalk Linux — за номером 4.8. Ну и чего здесь эпохального? - спросите вы меня. Почему этому весьма малоизвестному дистрибутиву, далекому как от традиционно серверного, так и от ныне входящего в моду десктопного майнстрима, уделяется столько внимания (см. соответствующий раздел)?

Ответить на это легко.

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

Во-вторых, именно Zenwalk'ом я пользуюсь сам, и потому, естественно, отслеживаю все события, с ним связанные.

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

Так что вернемся к новой версии — Zenwalk Linux 4.8. Для начала скажу, что в ней осталось неизменным.

Образ установочного диска столь же компактен, как и ранее — те же 450 примерно мегабайт.

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

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

Хотя, как и ранее, из репозиториев доступно большое количество приложений — как для KDE, так и для GNOME.

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

Далее, некоторые традиционные компоненты дистрибутива были заменены другими. Ну, то, что Gaim стал Pidgin'ым — это касается только имени. И связано с известными притязаниями AOL на всё, что имеет в своем названии сочетание символов AIM (кажется, до такого даже Microsoft еще не додумывалась, претендуя только на окна во множественном числе).

Далее, CD-резатель Gaverman заменили на GnomeBaker. На мой взгляд, не лучшее решение. Gaverman — умел не много, но что умел, делал хорошо. И к тому же был в использовании прост, как грабли. Если же его возможностей не хватает, то все равно k3b будет предпочтительным выбором. Кстати, по умолчанию, из коробки, ни штатный GnomeBaker, ни установленный из репозитория k3b не работают — из-за ошибки в зависимостях при сборке пакетов. Вероятно, решаемо — но руки не дошли, и необходимости пока не возникало. Впрочем, отмечу, что k3b не работает просто (то есть не запускается, с выдачей надлежащего сообщения об ошибке, если запускать его из терминального окна). А вот GnomeBaker запускается и даже делает вид, что работает. Но на самом деле просто портит болванку...

И наконец, переходим к сакральному. Пламенный браузер FireFox и громовой почтовый клиент thunderbird отныне заменены на обжигающе-холодные IceWeasel и IceDone. Причина чему, как известно, чисто религиозная: Mozilla погрешила против буквы вероучения GNU/FSF и была отлучена от церкви. Хотя, в интересах истины, майнтайнеры Zenwalk'а были далеко не первыми на этом пути: тропу пионера в этом направлении протоптали Debian'щики.

Хорошо это или плохо для пользователя? Пока — никак. Никаких отличий в интерфейсе и функциональности разноименных аналогов я не обнаружил (возможно, потому, что мало пользуюсь ими: мой выбор — это konqueror и kmail). А вот что будет дальше, насколько и куда fork двинется от прародителей... Поживем, увидим.

Невольно вспоминается не столь уж древняя история с классовым расслоением на Xfree86 и Xorg. Которая была обусловлена примерно теми же причинами, и прошла относительно безболезненно. Но, в основном, потому, что сам проект Xfree86 уже давно находился в состоянии стагнации. И fork от Xorg чуть-чуть подстегнул его развитие — примерно также, как Ubuntu активизировало проект Debian.

Но, исходя из общих соображений, все эти религиозные fork'и я полагаю явлением печальным и потенциально вредным для сообщества.

Возвращаясь к нашему Zenwalk'у... Практически важный для его пользователя вопрос — а стоит ли обновляться до новой версии? Кто знает... С одной стороны, это делается просто, посредством команды

netpkg upgrade

С другой — а смысл? Если солнце регулярно восходит на востоке и заходит на западе, стоит ли менять что-либо? Разве что появилась потребность в каких-то новых функциях последней версии ядра. Но тут пользователь вполне может пойти по традиционному пути слакварщиков, и просто собрать ядро собственное.

Zenwalk: хроника очередного обновления

Причиной для этой заметки послужил мой загул по святым местам Руси – Тверской губернии. Поскольку загул имел сугубо производственную направленность и в ближайшее время намечается его продолжение, надо было срочно приводить в чувство свой ноут, на котором со времен достопамятной заметки на тему Не могу установить Мандриву, именно она и пребывала. Поскольку практика показала мою полную неспособность работать с этим дистрибутивом, надо было срочно менять его. На что? Ну, разумеется, на Zenwalk, который в последнее время прочно обосновался на моем десктопе. Ну а непосредственным поводом послужил выход очередной версии этого дистрибутива.

Темпы обновления дистрибутива, имя которого вынесено в заглавие настоящего цикла, действительно впечатляют. Судите сами - только за текущий год выпущены: версия 4.2 – в первых числах января, версия 4.4 – на исходе зимы, буквально через два дня дополняется багофиксным релизом 4.4.1, версия 4.6 – появляется в первый день лета. И уже через пару дней опять сменяется новой, также багофиксной – 4.6.1. Видимо, это становится уже традицией.

Новая версия доступна для скачивания все с тех же многочисленных зеркал, список которых можно видеть здесь. Существует она, как и некоторые из предшествующих, в двух вариантах – стандартном (например, здесь, файл объемом 450 Мбайт) и базовом (скажем, здесь, 230 Мбайт). С первого устанавливается самодостаточная система, имеющая рабочим окружением Xfce и минимально необходимый набор Gtk-приложений. Второй диск позволяет установить только чистый Base Linux и в дальнейшем доукомплектовать его по желанию и необходимости – например, сделать на его основе KDE-станцию. Или – GNOME десктоп для любителей босых ног. Впрочем, далее речь пойдет только о стандартном варианте – базовый имеет свои особенности и заслуживает отдельного рассмотрения.

Что же нового принесла новая версия? Во-первых, тотальное обновление версий :)

  • одно из последних ядер (2.6.21.3);
  • суперсовременный xorg (7.2);
  • максимально обновленную Xfce (4.4.1).

В репозиториях доступны свежайшие KDE и OpenOffice.org (3.5.7 и 2.2.1, соответственно) с сопутствующим софтом, вероятно, и GNOME подвергся обновлению.

Во-вторых... А вот что сказать во-вторых, я даже и не знаю. В программе установки ни малейших новшеств, Zenpanel по прежнему исполняет функции глобального конфигуратора, netpkg со своим графическим фронт-эндом, как и прежде, ведает управлением пакетами. И все это функционирует по прежнему исправно – мною при установке «вчистую» на ноутбук никаких глюков замечено не было.

То есть все отличия текущего релиза от предыдущего – исключительно количественные. В частности, немного изменилась базовая комплектация дистрибутива. Число дополнительных пакетов в репозиториях увеличилось, хотя также не очень сильно.

Хорошо это или плохо? На мой взгляд, однозначно хорошо. Отсутствие видимых изменений в дистрибутив-определяющих программах – инсталляторе, конфигураторе, системе управления пакетами, - является свидетельством достижения ими зрелости и стабильности. Очень незначительное расширение ассортимента дополнительного софта говорит о сохранении тенденции дистрибутива к компактности (и это, товарищи, правильно – монстрообразных дистрибутивов на свете вдоволь и без Zenwalk). А предельная свежесть версий подчеркивает его изначальную прогрессивность.

К чему я все это написал? Во-первых, к тому, что пользователям Zenwalk, не испытывающим потребности, скажем, в суперсовременном KDE, нет никакой необходимости сломя голову качать обновления. А если уж обновляться – то посредством netpkg upgrade, переустанавливать систему с нуля не вижу ни малейшего резона.

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

В залючение несколько частных замечаний.

Я говорил, что в репозитория Zenwalk можно обнаружить свежий OpenOffice.org. Только вот пакета с русской локализацией к нему так и не появилось. Поэтому в наших условиях есть смысл воспользоваться сборкой OpenOffice.org от Инфра-Ресура – взять ее можно здесь.

Установка проста, как правда. Полученный тарбалл распаковывается (от имени суперпользователя) в каталог /usr/share – и все, никаких более манипуляций не требуется. Вплоть до того, что на управляющей панели Xfce автоматически появляется иконка с выпадающим меню для быстрого запуска офисных приложений.

Следует отметить, что установка OpenOffice.org в Zenwalk – чуть ли не необходимость: это единственное средство для проверки орфографии, ни aspell, ни даже ispell, не говоря уже о русских словарях к ним, в репозиториях не найти. Конечно, можно воспользоваться соответствующими пакетами, например, из MOPSLinux, или, на худой конец, собрать их самому. Но по хорошему надо бы выкроить толику времени и наконец сделать родной пакет для Zenwalk.

Второе замечание (точнее, группа замечаний) касается установки Zenwalk на ноутбуки. Среди которых последнее время преобладают модели с разрешением 1280x800 – а в настройках через Zenpanel такой вариант отсутствует. Так что для начала нужно вручную отредактировать /etc/X11/xorg.conf:

Subsection "Display"
Depth 8
Modes "1280x800" "1280x1024" "1024x768" "800x600" "640x480"

и так в каждую субсекцию глубины цвета. Иначе вид экрана будет вполне отвратительным.

Далее, возможны осложнения с установкой фирменных драйверов для видеосистемы. В частности, драйвера для интегрированных чипсетов ATI официально еще не поддерживают Xorg 7.2 – и потому автоматически они не установятся. Правда, при установке их можно принудительно указать некий неопределенный X-сервер – однако в моем случае результат был плачевный: Иксы отказались стартовать вообще, и выведение их из неработоспособного состояния потребовало не вполне тривиальных усилий. Впрочем, и с родным Иксовым драйвером мое интегрированное видео работает нормально, так что дальнейшие разборки я прекратил.

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

ZenWalk-2, или еще раз о Дзэн-буддистском Linux'е

- Максим, ответь мне,
в чем сущность дзэн-буддизма?
- А пошел ты в ж...у
со своим дзэн-буддизмом
Владимир Шинкарев, "Максим и Федор"

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

Итак, ZenWalk. Дистрибутив достаточно молодой - выход версии 0.1 датируется 21 мая 2004 года. Являет собой дериват Slackware, адаптированный для относительно малоопытного пользователя. В сущности, в нем реализуется та же самая идея, что и в Ubuntu: быстрое и легкое развертывание системы с фиксированным пользовательским окружением и ограниченным набором приложений. Что, впрочем, не мешает использовать его в дальнейшем в качестве основы для собственного конструктора - в точном соответствии с заветами Патрика Фолькердинга, реализованными им в его Slackware.

Особенностью ZenWalk является, во-первых, ориентация на слабые машины: он собирается под процессоры i486 и выше (хотя системные предписания последней версии рекомендуют процессор класса Pentium-II и выше), требует 128 Мбайт оперативной памяти и 2 Гбайт дискового пространства (фактически, как мы увидим ниже, под саму систему задействуется еще меньше).

Во-вторых, сам дистрибутив исключительно компактен: объем iso-образа инсталляционного диска составляет около 400 Мбайт и на протяжении всего времени существования ZenWalk тенденции к разрастанию не обнаруживает. Есть еще и базовая версия - без Иксовых приложений, ее образ тянет вообще на 350 Мбайт.

Интересно, что за свой недолгий век ZenWalk сменил свое пользовательское окружение. Первоначально таковым выступал менеджер окон WindowMaker. Однако, когда к середине 2005 года интегрированная среда XFce начала оправдывать свое гордое звание, именно она стала в ZenWalk стандартным (и, до недавнего времени, единственным) десктопом.

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

Во-вторых, вокруг нового дистрибутива очень быстро сложилось небольшое, но чрезвычайно активное сообщество, которое первым делом занялось сборкой пакетов, недостающих в исходном дистрибутиве, и хранящемся в собственном репозитории, доступном через оригинальную систему пакетного менеджмента - netpkg (правда, похоже, только через нее). В последней версии дистрибутива этот репозиторий включает даже KDE и GNOME...

Наконец, третья особенность ZenWalk, отличающая его от праматери, - комплектация самыми современными версиями всех пакетов (консерватизм Slackware в этом отношении давно уже стал притчей во языцех). Достаточно сказать, что его базовый десктоп - XFce - представлен в этом дистрибутиве пре-релизной версией. Кроме того, ZenWalk - одна из немногих на сегодняшний день систем, поддерживающих "из коробки" "до того, как"...

Сразу после загрузки с установочного диска перед пользователем предстает приглашение boot. Отреагировать на него можно двояко: нажать для запуска умолчального варианта установки, или - для получения дополнительной информации. Тут следует проявить внимание: по умолчанию предполагается установка системы на диск SATA - еще один показатель тяги создателей дистрибутива к прогрессу. Однако, поскольку не все пользователи имеют возможность разделить эту тягу, предусмотрена и возможность инсталляции на PATA-диск: для этого в строке приглашения нужно ввести параметр ide. А для тех, которые с претензиями, то есть обладателей SCSI-дисков, предназначен одноименный параметр.

К слову сказать, ядра, предназначенные для соответствующих случаев жизни (они храняться на установочном компакте в каталогах kernels/ide, kernels/sata и kernels/scsi) сопровождаются кофигурационными файлами, из которых можно составить впечатление о возможностях системы на стадии установки.

Далее предлагается выбор раскладки клавиатуры - пока только для текущего сеанса инсталляции, так что можно смело остановиться на варо, в связи с возникающими проблемами (а таковые, судя по отзывам, ранее место быть имели).

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

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

По выборе в качестве источника установочного компакта предлагается просканировать систему на предмет его автоматического определения или указать привод вручную. Первый вариант рекомендуется - на нем и следует остановиться.

Теперь наконец начинается собственно установка системы. Каковая сводится к распаковке архивов tgz из каталога zenwalk/ установочного компакта и у поводу сказать не могу. Хотя подозреваю, что с нормальными "железными" модемами тут все обстоит нормально, а с софтовыми (то есть win-модемами) - как всегда, то есть, без дополнительных драйверов, никак.

Затем - установка Lilo (безальтернативного в этом дистрибутиве загрузчика). Она может быть простой (Simple), экспертной или просто пропущенной. Имея установленный и хорошо работающий GRUB, я именно последний вариант и выбрал - в дальнейшем это потребует некоторого переконфигурирования.

Далее - настройка мыши: ZenWalk - один из не очень многих дистрибутивов, создатели которого воздают должное службе консольной мыши, подключая ее по умолчанию. Здесь всего-то и нужно, что определиться с мышиным протоколом - ps/2 там, imps/2 или вовсе usb (в списке присутствует и всякая архаика, типа сериальных и даже шинных мышей), да ответить согласием на предложение запускать сервис gpm при старте системы.

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

Статический IP-адрес может использоваться и для входа в локальную сеть провайдера, откуда выход в Интернет будет осуществляться уже другими способами. В последнее время таковым скорее всего будет VPN-авторизация. А вот средств для настройки оной ZenWalk не имеет - так что эту процедуру придется отложить до лучших, постинсталляционных, времен.

После настройки сети предлагается выбор стартовых сервисов, подключаемых при загрузке системы. Список их не очень обширен, не все его элементы включены по умолчанию, так что тут можно ничего не делать. Я, однако, в соответствие со своими потребностями, список еще и подурезал, оставив в нем только alsa (поддержка звука), gpm (служба консольной мыши - не зря же мы ее только что настраивали), inetd (универсальный сетевой супер-демон), syslog (ведение журнала системных сообщений), и messagebus (немаловажно для "горячего" подключения устройств).

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

Далее - установка локали. Здесь даже самым страстным любителям прогресса не советую выбирать ru_RU-UTF-8 - поверьте, получится скверно. И вообще, как вы уже поняли из моих предыдущих высказываний на эту тему, от какой-либо локализации текущей версии ZenWalk на стадии установки лучше отказаться. Проще будет выполнить все необходимые процедуры позднее - и руками.

Теперь будет предложено настроить пользовательские аккаунты. Подменю этого пункта включает обширный список возможных действий, из которых нас сейчас интересует только одно - создание новой учетной записи (пункт Create users). В нем нужно задать имя пользователя, согласиться с определением его основной группы (users) и членством в других группах (audio, video, cdrom, fuse) - если нет веских причин к иному решению, не забыть переместиться на пункт Never при запросе на срок действия пароля (Set expire date - по уществлять ее в текстовом режиме (runlevel по умолчанию - 3), или режиме графическом, через gdm (runlevel 4). Остается только отказаться от активизации NumLock при старте - и еще раз перезагрузиться.

Вот теперь мы наконец оказываемся в законченной системе. Если был выбран графический метод авторизации, после рестарта автоматически будет загружен штатный десктоп - XFce, простой в настройке, использовании, быстрый и компактный. Впрочем, сам XFce заслуживает отдельного разговора. Что же до возможностей свежеустановленной системы - этот вопрос был достаточно подробно рассмотрен в указанной ранее статье Валерия.

Подведем итоги. Установка ZenWalk, не смотря на отсутствие графических красот, осуществляется очень просто, и вполне по силам начинающему пользователю. Единственная недоработка инсталляционной программы - некорректная русская локализация (особенно при локали UTF-8) обусловлена тем, что майнтайнеры дистрибутива до недавнего времени не подозревали, что их продукт имеет пользователей и в России. А поскольку спасение утопающих (в дебрях русской локализации), в соответствие с негласной конституцией Российской Федерации, являетя делом рук самих утопающих, в грядущих версиях ситуация изменится - за что следует выразить благодарность русскоязычным пользователям, в первую очередь - Александру Полякову, проводящему среди майнтайнеров ныне большую разъяснительную работу.

В заключение отмечу, что дистрибутив ZenWalk на протяжении длительного времени обсуждается в специальном топике форума на сайте POSIX.ru, и любой желающий может внести в него свой позитивный вклад.

20.08.2008

Хроника блога. 1

„Тьмы низких истин мне дороже
Нас возвышающий обман“ —
Изрёк матёрый графоман,
Плоды трудов своих итожа.
Алиса Деева

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

Хронологический порядок в ПП СМС отсутствует: материалы в него помещались по мере того, как я о них вспоминал, и когда у меня находилось на это время.

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

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

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

Комментирование блога в настоящее время (пока?) отключено. Желающие обсудить материалы могут сделать это здесь.

Дело Ханса Рейзера

2006-2008 г

Здесь собраны только мои заметки. Полная подборка метериалов - на Citrit.ru.

Вступление

Материалы для этих заметок я начал собирать практически сразу, как узнал о поводе для них - аресте Ханса Рейзера, известного программиста Open Source, разработчика одной из самых совершенных файловых систем в истории IT-индустрии. Аресте по обвинению в убийстве собственной жены, хотя практически и бывшей.

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

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

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

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

Во-вторых - переводы материалов, которые мне присылали.

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

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

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

И по сей день нет в этом деле никакой ясности...

Собственно сведения о ходе процесса можно почерпнуть:
здесь и здесь.

Переводить это у меня сил не хватает. Но если найдутся добровольцы - результаты их труда будут размещены на этих страницах. Хотя предупреждаю сразу - это вовсе не детектив Гарднера с адвокатом Перри Мейсоном в главной роли.

Часть 1
2006, осень

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

Сначала кратко, чисто для справки, о ком идет речь. Ханс Рейзер - очень известный человек в мире разработчиков и пользователей открытого программного обеспечения, создатель одной из лучших файловых систем для Linux - ReiserFS, и ее принципиально новой версии - Reiser4, роль которой далеко выходит за рамки файловых систем вообще. В описываемо время проживал в городе Окленд штата Калифорния. Чуть позднее я вернусь к биографическим подробностям - они важны сейчас и, возможно окажутся еще более важными в будущем.

Традиционный disclaimer. Я постараюсь писать, излагая только фактографическую сторону дела, как говорил старина Тацит, без гнева и пристрастия, по возможности избегая всякого рода моральных оценок (и оценок вообще). Получится или нет - судить читателю. Ибо относиться к Хансу равнодушно я не могу, слишком уважая результаты его работы.

Итак, начало истории. Я, как и большинство моих коллег, узнал о ней ранним утром 11 октября (другое дело, что понятие об утре, и тем более раннем, у всех нас разное). Когда по всем сайтам Рунета, связанным с тематикой Linux и Open Source, прошла новость: Ханс Рейзер арестован по подозрению в убийстве своей жены в городе Окленд, 10 октября, в 11 часов по местному времени - вот ее первоисточник.

В первый момент это сообщение было воспринято как утка или глупая шутка - кое-кто задумался даже, не 1-е ли на дворе апреля. Однако в таких случаях каждый IT-шник по привычке обращается к Google. И гугление (кстати, в английском языке глагол to google недавно утвержден официально) показало, что ни об утке, ни о шутке говорить не приходится - история эта началась не вчера и широко освещалась в региональной прессе и Интернет-изданиях, находя отражение даже на русскоязычных форумах тех краев. Более того, уже некоторое время существовал сайт, специально посвященный одному из аспектов этого дела.

Видимое начало истории падает на 3 сентября - день, когда последний раз видели жену Ханса, Нину Рейзер. С тех пор, и по сей день (12 октября, 19:15 московского времени) ее не видел никто - ни живой, ни мертвой.

Добавлю с скобках, что на момент, когда редактируется эта заметка (20 июня 2007 года), никакой информации о ее судьбе нет по прежнему.

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

Итак, Ханс Рейзер... Родился в 1964 году в Калифорнии, там же поучился в средней школе, которую бросил в возрасте 14 лет, по причине несогласия с программой. Тем не менее, в 15 лет его приняли в Калифорнийский университет, Беркли (тот самый, где была создана основа современного Интернета в виде протокола TCP/IP, операционная система BSD и множество других штуковин). И, насколько я понимаю специфику ихнего образования, обучался там по некоей индивидуальной программе (физика, математика и соплеменные науки).

Сколько Ханс проучился в университете - я пока не выяснил. Известно лишь, что диссертации (PhD) он так и не защитил, видимо, посчитав это ненужным.

Начиная с 1988 года, деятельность Ханса протекает в сфере IT и Computer Science. С 1988 по 1996 год он занимает различные должности, связанные с программированием и администрированием, в ряде компаний, от малоизвестных (по крайней мере, мне) до Исследовательского центра IBM (IBM Almaden Research Cente).

В 1997 году Ханс основывает собственную компанию - Namesys; собственно, это небольшая команда разработчиков принципиально новой файловой системы которая получает имя своего основателя - ReiserFS.

К 1999 году относится событие, прямо с IT не связанное, но зато связанное с нашим сюжетом - женитьба. Жена - Нина, жительница Санкт-Петербурга, врач по образованию, 1974 года рождения. Об обстоятельствах знакомства и брака говорить не буду - поскольку точной информации не имею.

Примерно в то же время в Рунете циркулировали упорные слухи, что штаб-квартира Namesys то ли переносится, то ли уже перенесена в Россию. На чем они основывались (и основывались ли вообще на чем-то) - не знаю. Но, что интересно, сайт компании обслуживается DNS-серверами зоны RU...

Впрочем, дальнейшая профессиональная деятельность Ханса к сюжету имеет мало отношения - интересующиеся могут ознакомиться с ней на сайте компании и в многочисленных сетевых и оффлайновых источниках. Для нашей же истории важно, что брачный союз Нины и Ханса, проживавших в вышеупомянутом Окленде, имел результатом рождение двух детей - сына Рори (Rory) и дочери Niorline (транскрибировать не берусь). Ныне им 7 и 5 лет, соответственно (точнее, уже скорее 8 и 6).

Однако брак Нины и Ханса оказался не таким долгим. В 2004 году они становятся "раздельно проживающими супругами". В качестве одной из причин расставания Нина позднее, в ходе бракоразводного процесса, назовет "трудоголизм" мужа - знающие результаты работ Ханса согласятся с этим определением.

Бракоразводный процесс, однако, начался вроде бы лишь в 2006 году. По имеющимся данным, он протекал отнюдь не полюбовно. Англо-американскую юридическую терминологию я не понимаю (впрочем, и русскую-то с трудом), но, судя по всему, Нина, в частности, настаивала на отстранении отца от участия в воспитании детей (насколько я понял за время знакомства с этой историей, в США нет понятия лишения родительских прав в нашем смысле). Тут-то и всплыло определение "трудоголик" (workoholic), его частые поездки в Россию (где работала большая часть его команды), а также ряд других подробностей, на которых я не буду задерживаться, ибо почерпнуты они из не вполне достоверного источника (какого - скажу несколько позже).

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

Так было и в день, с которого формально начинается эта история - 3 сентября 2006 года. Нина привезла детей к отцу и уехала. Чтобы более не появляться. Или не уехала. Но с того момента о ней ничего не известно. По крайней мере, по сей день...

И тут нужно сделать отступление об источниках. Почти все, о чем говорилось ранее, основывается на источниках узкопрофессиональных, которые... ну не то чтобы достовернее всех прочих, но легко проверяются IT'шниками по независимым каналам. Ныне же мы вступаем в мир массовых СМИ - новостных сайтов локально-регионального масштаба (нечто типа районных многотиражек старых советских времен), со всеми вытекающими последствиями. И, естественно, англоязычными.

Благо, в этом море у нас будет и русскоязычный путеводитель - сайт http://privet.com, точнее - отдельный трейд его форума, посвященный исчезновению Нины Рейзер, Созданный первоначально исключительно для организации помощи в поисках ее (или ее тела), он постепенно, как и любой другой форум, оброс флеймом, флудом, оффтопиком и тому подобными, неизбежно сопутствующими, явлениями. В частности, на нем не только даются ссылки на местные новостные ресурсы, но и часто пересказывается их содержание - на русском языке (правда, с вкраплениями английских юридических терминов). Ныне этот трейд заглох и представляет собой чисто исторический интерес.

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

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

PS Позвольте прерваться. Этот материал пишется мне тяжелее, чем все, что я написал раньше. Тем более, что до предъявления обвинения Хансу остаются считанные часы - а тогда все (или почти) все карты придется выложить на стол...

PPS сего дня: на момент, когда пишутся последние строки, никаких сведений об обвинении в Сети я не видел (м.б. плохо искал).

PPPS дня еще более сегодняшнего: забегая вперед, скажу, что никаких карт на столе мы не увидели и поныне.

PPPPS Еще раз забегая вперед, скажу, что карт мы не увидели и поныне - даже после вердикта присяжных.

Часть 2

2006, осень

Итак, продолжаю. Третьего сентября Нина (вроде бы) покинула дом Ханса, оставив там детей, и отправилась на вечеринку к подруге - это по одной, ранней, версии. Позднее же утверждалось, что она отправилась поужинать с бойфрендом - неким Энтони Зографусом (Anthony Zografos). между прочим, тоже работающим в сфере информационных технологий (сведения о нем можно было почерпнуть по адресу creatorbase.com/gm/Present?object=1.59.246, но теперь этот URL не отвечает). Как бы то ни было, ни там, ни там она не появилась.

Поиски Нины начались через несколько дней, по чьей инициативе - не очень понятно, но во всяком случае - не по инициативе (почти) бывшего мужа. И велись без особого энтузиазма до тех пор, пока на 8-й (или 9-й, как считать часовые пояса) день не была обнаружена ее машина.

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

После этого за поиски принимаются более серьезно. На сайте privet.ru возникает упомянутая выше тема, посвященная исчезновению Нины Рейзер, затем возникает сайт Помогите найти Нину Рейзер (примечание сего дня: сайт давно мертв), где за предоставление информации о ней объявляется награда в 15 тысяч американских рублей.

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

Наконец, в конце сентября (23-24) осуществляются массовые поиски в окрестных лесных массивах - силами полиции, с собаками и привлечением добровольцев. Поиски оказываются безрезультатными - никаких следов Нины не обнаружено.

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

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

Затем в доме Рейзера производится обыск, давший такие улики, которые позволили санкционировать 10 октября его арест. По сообщениям прессы, вместе с ним было арестовано еще два человека, но об их личностях никакой информации в известных мне источниках не имеется (и в дальнейшем о них не упоминается вообще). Теперь, по законам штата Калифорнии, ему в течении 48 часов должно быть предъявлено обвинение...

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

А пока сделаю маленькое технологическое отступление. Я уже говорил, что Рейзер был создателем и основным разработчиком файловой системы для ОС Linux - ReiserFS, давно (с 2001 года) и успешно используемой многими и многими пользователями, в том числе и в индустриальных масштабах - например, на критически важных серверах Интернета и интранета.

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

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

И так было на протяжении более чем двух лет - срок для Open Source проектов просто астрономический. Пока Эндрю Мортон, один из главных разработчиков ядра Linux, в своем интервью не обмолвился (правда, между строк) - если поддержка Reiser4 будет включена в ядро, а разработка ее по каким-либо причинам прекратится, это доставит много сложностей остальным разработчикам. Было это 22 сентября 2006 года...

Что же до ReiserFS - то, как я говорил, она использовалась очень широко, во многих дистрибутивах Linux выступая в качестве файловой системы по умолчанию. В частности - в дистрибутиве Suse, второй по распространенности Linux-системе, в том числе и в корпоративной сфере. Дистрибутив этот, начиная с 1994 года, разрабатывался одноименной немецкой фирмой, активно участвующей в финансировании проектов по разработке открытого софта, в частности - и фирмы Namesys, принадлежащей Рейзеру.

В скобках заметим, что вторым основным источником финансирования работ Ханса (а может быть, и первым) было агентство DARPA (Defense Advanced Research Projects Agency - агентство передовых оборонных исследовательских проектов), находящее в подчинении Министерства обороны США. И это при том, что большинство разработчиков команды Namesys проживают в России и на Украине...

В 2004 году фирма Suse была куплена компанией Novell - для людей, тесно не связанных с IT-индустрией, имя это, в отличие от Microsoft, ничего не говорит. Однако для IT-специалистов, особенно нашей страны и сопредельных стран оно - нечто типа живой легенды, выступая своего рода синонимом локальной сети, как Ленин и Партия (говоришь сеть - подразумеваешь Novell, говоришь Novell - подразумеваешь сеть).

До того времени фирма Novell в сфере свободного софта никак не отметилась, и потому поначалу продолжались традиции Suse. Однако постепенно они тем или иным образом модифицировались, пока наконец в выступлении одного из руководителей разработки Suse не прозвучал отказ от использования ReiserFS в качестве умолчальной. Резонов к тому он привел много, повторять их не буду, но поверьте - все они были более чем смешны. Это произошло 4 октября 2006 года. До ареста Ханса Рейзера оставалась еще неделя...

PS Здесь позвольте мне взять тайм-аут. Конечно, в добрых традициях журналистских расследований следовало бы развести турусы на колесах со ссылками на компетентные мнения. Но мне вдруг стало по настоящему страшно. Ссылки на интернет-треп никому ничем по настоящему не опасны - и то в первой части своего очерка я их избегал. А тут ребятам реально может грозить потеря работы - мир тесен, и все носители компетентных мнений вычисляются очень легко...

Все равно до окончания истории еще далеко. В следующей части я вернусь к уликам и обвинительному заключению, которое и было предъявлено Хансу Рейзеру.

Часть 3

2006, осень

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

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

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

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

Все это в принципе было опубликовано еще до судебного заседания (в том числе и утверждение о том, что обнаруженная в доме и машине кровь принадлежит Нине Рейзер!). А вот что новое прозвучало на заседании - так это сведения о показаниях детей. Самих их на суде, естественно, не было. Но, по сведениям полиции, по приезде в дом Рейзера дети играли в компьютерные игры и слышали разговор родителей.

Впрочем, и сообщение об их показаниях основывается не на стенограмме суда, а на словах одного из офицеров полиции. Вот как оно выглядит (цитирую фрагмент интернет-сообщения в переводе allez'а, кстати говоря, криминалиста по профессии):

Один из детей указал, что Ганс Райзер и Нина Райзер, возможно, спорили", - написал полицейский следователь по розыску пропавших без вести Райан Джилл. "Ребенок указал, что его родители говорили на "средних" тонах и что они использовали "нехорошие слова", - написал Джилл.

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

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

А еще - сотовый телефон, о котором говорилось ранее, был разобран, то есть вынут аккумулятор. О наличии или отсутствии SIM-карты ни единого слова не говорится (правда, в ходе одного из обсуждений мне подсказали, что в телефонах CDMA, применяемых на Калифорнийщине, SIM-карты может и не быть вообще).

И еще не могу удержаться от цитаты:

Служебные собаки отработали место вокруг автомобиля, но след не взяли. Это привело следователей к выводу, что Нина Райзер не была в том месте, где был найден ее автомобиль. Окрестные свидетели сообщили полиции, что фургон был припаркован там 5 сентября.

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

Вот и всё, что было известно на момент сочинения этой заметки.

Часть 4

2006, осень

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

На упрек - а зачем же я пользовался заведомо недостоверными источниками, - отвечу с легкостью: а какие источники для этой истории могут считаться достоверными? Неужели за таковые можно считать сообщения провинциального издания Inside Bay Area (http://www.insidebayarea.com/), освещавшие историю пропажи Нины Рейзер, ее поисков и ареста ее мужа? Издания, которое, ничтоже сумншеся объявляет принадлежность найденных следов крови, не удосужившись ни малейшей аргументацией. А ведь все (ВСЕ!) остальные Интернет-публикации по делу Рейзера представляют собой простое переразмещение материалов Inside Bay Area...

Посты же с forum.privet.com, если тщательно "фильтровать базар" (а не это ли - основное призвание IT╢шников, фильтровать сигналы от шума?), дают массу информации - во-первых от людей, лично знавших Нину, и о них самих, во-вторых, о царящих в обществе настроениях. Следует только учитывать, что пост этот создан личной знакомой Нины, выступающей под ником JU, и первоначально предназначался исключительно для организации ее поисков, и лишь позднее (хотя и очень быстро) оброс всякого рода флеймом и флудом. Посему полагаю, что указанный трейд скоро будет закрыт, а возможно, и уничтожен вообще.

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

Итак, начинаем с 3 сентября, 13-55 местного времени - эьл первая и чуть ли не последняя точно установленная последняя временная метка: в это время Нина с детьми выходит из магазина "Беркли Боул Маркет", где закупала продукты; это зафиксировано камерами видеонаблюдения. Согласно сообщению считается, что около 14 часов она подъехала к дому Рейзера. Точнее, его матери, Беверли Палмер, где он жил после фактического развода. Сама Беверли Палмер в это время отсутствовала, находясь на фестивале искусств "Burning Man" в Неваде (тут источники ссылаются на ее собственные слова).

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

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

Тем не менее, игнорировать прямое свидетельство прессы нельзя: дети играют на компьютере, на первом этаже дома, и слышат доносящийся со второго разговор родителей, ведущийся на повышенных тонах, с употреблением "нехороших" выражений. Затем один из детей (кто именно - источники умалчивают) поднимается наверх, но отец отсылает его обратно. Далее - лакуна в источниках, до 5 сентября, когда Нина не забирает детей из школы.

Тут возникает целая серия вопросов. Первый: как уже сказано, в тот день, 3 сентября, Нина, после того как завести детей к Хансу, должна была ехать - то ли на вечеринку к подруге (свидетельство JU с форума privet.com), то ли на ужин с другом, сиречь Энтони Заграфусом (все более поздние сообщения прессы). Ни у безымянной подруги, ни у Энтони она не появилась. Тем не менее, беспокойство о ее отсутствии начало проявляться только 5-го числа - когда, как было сказано, она должна была забрать детей из школы, и не сделала этого (вопрос в скобках - а как дети попали в школу? отвезены отцом?). Кто проявляет беспокойство - подруга, друг или школьная администрация, - источники хранят молчание. По ряду косвенных признаков можно заключить, что во всяком случае не Ханс: на privet.ru можно найти намеки на то, что даже своей матери, вернувшейся из Невады, он ничего не говорит об исчезновении Нины, Беверли узнает об этом от полиции.

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

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

Позднее оказывается, что телефон был вскрыт и приведен в нерабочее состояние - из него был вынут аккумулятор (что интересно, о SIM-карте ни в одном сообщении не было сказано ни слова). Что же до продуктов - то они оказались разбросанными по всему фургону.

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

Сведения о месте нахождения автомобиля ничего не говорят тому, кто не знаком с тамошней топографией. Однако JU в сообщении на форуме утверждает, что он был обнаружен примерно между домом Рейзера и домом той самой подруги, к которой Нина, по ранней версии, направлялась на вечеринку, но ближе к последнему (невольно хочется задать провокационный вопрос - а не JU была ли той подругой?)

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

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

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

Следующая дата - 19 сентября, когда полиция обнаруживает автомобиль Рейзера, надо полагать, брошенный - есть сведения что сам Рейзер ездил на машине, взятой в прокат. В автомобиле отсутствовало переднее пассажирское кресло, которое так до сих пор и не найдено. Зато в нем присутствовали:

рулон больших мешков для мусора, причем нескольких мешков не хватало;

две книги, "Убийство: год на смертельных улицах" Дэвида Саймона и "Шедевры Убийства" Джонатана Гудмана, которые были куплены 8 сентября;

свидетельства помыва машины, в виде остатков воды под ковриком и сифонного насоса;

штрафная квитанция за нарушение правил дорожного движения, от 12 сентября; выдавший ее полицейский вспомнил, что переднее сиденье "определенно было на месте, и он бы запомнил, если бы оно отсутствовало";

наконец, самое главное - спальный мешок с пятном крови.

В связи с последним обстоятельством Рейзер 28 сентября задерживается полицией для взятия крови на анализ. При этом у него, кроме денег (более 8 тысяч баксов) и документов обнаруживается чек на сифонный насос (к сожалению, о дате чека ничего не сообщается).

А тем временем, 22 сентября, в интервью Эндрю Мортона, одного из основных разработчиков ядра Linux, проскальзывает причина, по которой поддержка файловой системы Reiser4 до сих пор не включена в ядро: это - возможность прекращения ее разработки...

В эти же примерно дни (23-24 сентября далекого уже 2006 года) осуществляются массовые поиски в окрестных лесных массивах - силами полиции, с собаками и привлечением добровольцев. Поиски оказываются безрезультатными - никаких следов Нины не обнаружено.

Вероятно, анализ крови Рейзера показал, что кровь на спальном мешке из машины - не его. Что, видимо, и дало основание для обыска в его доме. Где в гостиной были обнаружены следы (в одном из сообщений говорится - брызги) крови. Поскольку именно это и позволило санционировать затем арест Ханса, можно предположить, что она оказалась идентичной найденной на спальном мешке. Однако поведение служебных собак и тут дало отрицательный результат.

К 4 октября относится заявление одного из руководителей фирмы Novell о том, что отныне файловая система ReiserFS не будет использоваться в дистрибутиве Suse в качестве устанавливаемой по умолчанию.

И, наконец, 10 октября полиция производит арест Ханса Рейзера и его заключение в тюрьму. 12 октября на заседании суда, где Рейзер присутствует в наручниках и арестантской робе, ему предъявляют обвинение в убийстве. По свидетельству JU (видимо, на суде присутствовавшей), он выглядит испуганным (интересно, а как будет выглядеть любой человек, впервые в жизни оказавшийся в такой ситуации?). Собственно суд должен состояться 28 ноября в 9 часов местного времени. До суда Рейзер будет содержаться в тюрьме без права выхода под залог. Тем не менее, его адвокаты не выражают сомнения в том, что на суде Рейзер будет освобожден.

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

Показательно также настроение, царящее среди участников упомянутого выше трейда на сайте privet.com - большинство из них вину Рейзера под сомнение не ставят - и эта позиция поддерживается администрацией сайта. Редкие же участники, напоминавшие о презумпции невиновности, либо подвергались давлению, либо просто банились (подобно автору этих строк).

Я не случайно привел тут данные о позиции разработчиков ядра Linux и компании Novell - оба они были сделаны до ареста Рейзера (интервью Мортона - фактически сразу после обнаружения его брошенной машины).

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

Вопросы есть, будут ли ответы?

Настоящая заметка не преследует целью ни доказать невиновность брата-линуксоида, ни, напротив, откреститься от изверга и убицы, позорящего наш славный клан. Я просто собрал тут вопросы, возникшие у меня (неужели только у меня?) при чтении последних материалов дела — начиная с первых чисел июля. Вопросы и противоречия в более старых материалах, также до сих пор не нашедшие адекватного объяснения, были уже сформулированы или в настоящем цикле, или в соответствующих темах форумов — POSIX.ru и Linuxforum'а; на них обратили внимание polachok, allez, Uncle_Theodore, а также ваш покорный слуга. Здесь я их повторять не буду.

Как можно узнать из последних материалов подборки по делу, в минувший понедельник, 7 июля 2008 года, около 16 часов по местному времени (хотя имеются сведения, что поздно вечером), Ханс Рейзер, в сопровождении своего адвоката Уильяма Дюбуа, отвел власти к месту захоронения тела своей жены, Нины Рейзер, исчезнувшей 3 октября 2006 года, в убийстве которой он обвинялся. И был признан жюри присяжных виновным в убийстве первой степени (по нашим законам этому примерно соответствует предумышленное убийство при отягчающих обстоятельствах).

По результату этого вердикта Рейзеру грозило 25 лет тюремного заключения. Приговор, всеми ожидаемый и прогнозируемый, должен был вынести в минувшую среду, 9 июля 2006 года, судьёй Верховного суда графства Аламейда Ларри Гудманом. Однако вследствие похода властей и Рейзера к месту захоронения, завершившегося обнаружением тела и его идентификацией, заседание по вынесению приговора было отложено (по некоторым данным, до 13 августа, хотя и эта дата не окончательна и зависит от хода расследования, в частности, экспертизы тела).

Как единогласно сообщают все источники, в обмен на указание места захоронения вина Рейзера будет переквалифицирована в убийство второй степени, что повлечёт снижение срока заключения до 15 лет. Из детективной литературы и политических сочинений (например, по Уотергейтскому делу — кажется, все его участники за время своей отсидки успели отметиться в мемуарном жанре) нам известно, что такого рода торговля, типа признания вины по таким-то пунктам обвинения в обмен на снятие пунктов таких-то, широко используется в американской судебной практике. Однако о такой форме — тело в обмен на минус 10 лет срока,— мне читать еще не приходилось (это, впрочем, не значит, что прецедентов не было).

К слову сказать, прошедшее в новостях на Opennet и LOR сообщение, что приговор Рейзеру вынесен, имеет в первооснове заметку в блоге ZDnet, представляющюю собой утку — то есть ложь, п...ж и провокацию, не подтверждённую никакими другими источниками. К сожалению, наши уважаемые новостные сайты на эту провокацию повелись, а их посетители не отказали себе в удовольствии развести вокруг неё море флейма и флуда. Надо отдать должное Uncle_Theodore, попытавшемуся эту утку опровергнуть, чего, однако, никто из флеймящих на LOR'е не заметил.

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

Далее пойдут свидетельства участников событий, взятые из различных интернет-источников (все они представлены в настоящем цикле), сопровождаемые моими комментариями.

Итак...

Эрси Джойнер (Ersie Joyner), начальник отдела по расследованию убийств Оклендской полиции

... сказал, что тело могло быть обнаружено только человеком, который вырыл могилу.

А по свидетельству Ричарда Теймора (Richard Tamor), одного из защитников Рейзера,

Рейзер без труда определил место. Поверенный сказал: «Он пошел прямо к этому» (месту).

И тут возникает первый вопрос: а мог ли Рейзер определить место без труда? Для чего надо учитывать очень многие факторы.

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

Можно, конечно, допустить, что это место всё время заключения являлось Рейзеру в ночных кошмарах, подобно годуновским мальчикам кровавым. Но следует помнить и то, что сидение в тюрьме, да еще и в одиночке, отнюдь не способствует укреплению памяти. А Рейзер — не Дерсу Узала, и не Улукиткан, способные отыскать в тайге... ну, что они были способны там отыскать, можно прочитать у Арсеньева и Федосеева.

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

Так что пришлось бы признать, что Рейзер обладает феноменальной зрительной памятью. Это объяснение сгодилось бы, но...

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

Рейзер сказал властям, что надеется найти место могилы по вишневому дереву...

... выглядит довольно странно. Насколько я представляю себе этот тип людей, они не обратили бы внимания даже на то, что «листья тополя летят с ясеня». И к тому же, по озвученной в Сети версии, захоронение происходило ночью...

Вот и поставьте себя на место Рейзера: отыскать без малого через два года (проведённых в достаточно специфической обстановке) место, которое видел недолгое время, ночью, при иных сезонных условиях и совершенно иных обстоятельствах — легко ли? А если учесть еще и состояние стресса, каковой наверняка имел место быть — всё же Рейзер не Синяя Борода, и мочил своих жён отнюдь не ежедневно, чисто для тренировки, дабы обрести должную психологическую устойчивость...

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

Дальше — больше. Слово опять Джойнеру, который...

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

Из этих слов можно заключить, что и Рейзеру пришлось проделать тот же путь — напоминаю, ночью и находясь в состоянии стресса. При этом «удалять деревья и кустарники, чтобы добраться до могилы», у Рейзера, в отличие от властей, вряд ли была возможность.

Учитываем при этом, что обвиняемый нес на себе мёртвое тело. Каким бы ни был Рейзер здоровяком, и как ни субтильна была Нина, каждый, кому, увы, приходилось это делать, знает, что тащить мёртвое тело — совсем не то же самое, что живого человека, пусть даже раненого и находящегося без сознания. Это даже лошади понимают, не то что люди...

Непосредственно о месте захоронения. Согласно одному из Сетевых СМИ, Рейзер

... привёл власти к месту захоронения Нины, похороненной в яме 4 фута глубиной.

Согласно же Теймору,

Тело было найдено в могиле приблизительно четыре на четыре фута

То есть мы имеем дело с небольшим таким шурфиком примерно 1,2x1,2x1,2 м — более кубометра вынутого грунта, точнее, 1,73 3. О характере грунта можно только гадать, но, судя по тому, что властям пришлось «удалить деревья и кустарники, чтобы добраться до могилы», как минимум, грунт был пронизан корнями растений. А приводимая в одном из источников фотография, заставляет предполагать, что грунт был еще и каменистым.

Я уже не помню норм времени на проходку поверхностных выработок при проведении горных работ, но поверьте, такой шурф за пять минут не выкопать. Да и малой пехотной лопаткой или даже обычной штыковой лопатой тут справиться трудно. Требуется наличие соответствующих инструментов — большой саперной лопаты (на гражданке именуемой «лопатой проходимца»), лома, кайла. Водилось ли всё это (или нечто функционально аналогичное) в хозяйстве Рейзера или его матери? И если водилось — то он должен был тащить этот шанцевый инструмент вместе с мёртвым телом. Ведь совершить две ходки значило многократно увеличить риск. Да и затраты времени возрастают: полмили (около 800 метров) по сильно пересеченной и заросшей местности (а она такова там и есть, судя по всем свидетельствам) — это отнюдь не 10 минут на километр шоссе. И, кстати, а куда этот инструмент делся потом? Спрятан, уничтожен, тщательно почищен и возвращён в сарай при доме?

Наконец, последнее — о предшествовавших поисках тела Нины.

По свидетельству одного из источников,

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

По данным с форума Привет, где одно время была заведена специальная тема, посвященная исчезновению Нины Рейзер, в этих поисках участвовало до нескольких сот добровольцев. Конечно, вряд ли большинство из них обладало специальными навыками поиска чего бы то ни было. Да и среди полицейских, кажется, не наблюдалось ни Алёхина, ни Таманцева, ни Блинова. Но ведь и район поисков — отнюдь не Белорусские леса...

Таковы вопросы. Читатель уже догадался, я думаю, что на них можно дать два не противоречащих логике ответа:

  1. Место захоронения было подготовлено Рейзером заранее, ориентиры к нему — сохранены в памяти, чтобы найти его, что называется, с закрытыми глазами, инструмент, с помощью которого копалась будущая могила, либо спрятан, либо приведен в первозданное состояние, все следы «земляных работ» — подготовлены к быстрому уничтожению. Но в этом случае ни о каком непреднамеренном убийстве или убийстве в состоянии аффекта не может быть и речи — мы имеем дело с тщательно спланированным злодейством. Я не буду касаться психологической стороны вопроса — способен ли был Рейзер на такое злодеяние. А задам другой — могли ли в этом случае власти пойти на компромисс со столь отпетым преступником? Впрочем, это вопрос к американскому правосудию и совести участников процесса.
  2. Рейзер не прятал тело мертвой супруги там, где оно было с его помощью обнаружено. А про место захоронения ему популярно объяснили. Но в этом случае вся версия обвинения летит в тартарары, вызывая град дополнительных вопросов, суть которых тотально можно сформулировать так: каким способом всё это могло быть осуществлено практически? И кому и зачем это было нужно?

Не берусь судить, какое из этих ответов правильный, тем более, что ими, возможно, варианты не исчерпываются. Требует же ответа самый главный, результирующий вопрос: неужели всех этих противоречий не заметили полицейские, прокурор и судья? «Не верю» — сказал бы Станиславский...

Короче говоря, вопросы заданы. Получим ли мы на них ответы?

19.08.2008

html-редактор Quanta Plus

2005 г

Содержание

О web-инструментарии вообще

Появление web и html можно сравнить с изобретением полковника Кольта, уравнявшего, вопреки воле Господа, людей сильных и слабых посредством широко известного из литературы и кино инструмента. Если в доинтернетовскую эру автору для публикации своих произведений требовалась мощная производственная база (или - контакт с лицами и организациями, таковой располагающими, сиречь издательствами), то с появлением web все оказалось в его руках - Всемирная паутина предоставляет неограниченные возможности для творческого самовыражения. Единственное условие - умение представить свое произведение в одной из форм, для этой самой паутины приемлемых. А формой, наиболее универсальной из приемлемых, является самая тривиальная html-страница - структурированный текст, размеченный посредством соответствующих тегов.

Разметка html-страницы - занятие не сложное, однако расставлять теги все равно нужно. И потому не замедлил появиться инструментарий для выполнения этого процесса. В том числе - и ориентированный на открытые и свободные POSIX-совместимые платформы, из каковых наибольшее распространение получил Linux (и, в меньшей степени, FreeBSD). Опять же обращаясь к собственным воспоминаниям, замечу, что именно подготовка web-материалов оказалась той областью, в которой мне впервые (в далеком уже 1998 году) удалось применить мощь POSIX-систем в мирных, то есть настольно-производственных, целях.

К слову сказать - работа с html-материалами представляет интерес отнюдь не только для профессиональных web-дизайнеров, web-мастеров и прочих лиц, по долгу службы связанных с Интернет-технологиями. Ибо это - чуть ли не единственный (за исключением plain text, конечно) формат, почти однозначно воспринимаемый на всех аппаратных платформах, во всех операционных системах, в любом национально-языковом окружении (в том числе даже и русском, с его многочисленными кодировками Великого и Могучего). И, в отличие от чистого текста, позволяющий представлять материал в структурированном и визуально оформленном виде.

Изначально существовало два направления в технологии подготовки web-страниц - визуальное их редактирование и редактирование html-кода. В первом случае порядок действий точно такой же, как и при подготовке для печати обычных текстов в программах, именуемых по русски обычно текстовыми процессорами, вроде всем известного MS Word (на самом деле text processor - это совершенно другая вещь, а программы этого класса в оригинале именуются word processor, но это тема для отдельного разговора). Что легко и просто, однако далеко не всегда способно дать результат, адекватный задуманному (а при отсутствии специфического опыта - подчас прямо противоположный). И потому о визуальных редакторах речи здесь не будет.

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

В качестве же редактора html-кода можно использовать обычный текстовый редактор. Каковых в свободном исполнении, как известно, существуют многие множества. Причем тут опять же возможно два подхода - ввод тегов в процессе набора материала или предварительная его подготовка в формате plain text с последующей его разметкой. И то, и другое в принципе не влечет за собой никаких сложностей, но весьма занудно, так как сводится к многократному повторению рутинных действий. И потому возникает естественное желание как-то автоматизировать этот процесс (ибо, как неоднократно подчеркивалось, приверженность смертному греху лености - неотъемлемый атрибут истинного POSIX'ивиста).

Напрашивающееся решение автоматизации ввода тегов в уже существующий текстовый материал - использование shell-скриптинга. Благо среди классических Unix-утилит нетрудно отыскать соответствующие средства, например, потоковый (неинтерактивный) текстовый редактор sed. В сочетании с утилитами поиска файлов и последовательностей символов в оных (find и grep, соответственно), он, благодаря штатным средствам POSIX-систем (механизмам конвейеризации команд и перенаправления их ввода/вывода), способен решить большинство задач html-разметки (и не только ее). Дополнительный плюс этого подхода - возможность пакетной разметки большого количества web-страниц одновременно.

Есть, однако, и минусы. Сочинение shell-скриптов вообще требует некоторых навыков, а в данном случае необходимо еще и знание особенностей собственно утилиты sed (или - языка awk, также пригодного к выполнению этой задачи). Требуются и некоторые чисто программистские навыки - представление об операторах, например. Все это, конечно, дело наживное - однако, по моему скромному мнению, временные затраты на сочинение сценариев html-разметки оправданы только в том случае, если уже имеется достаточно большой объем чисто текстовых материалов, которые необходимо претворить в web-страницы. При сочинении же их с нуля более целесообразно автоматически вводить теги одновременно с набором текста.

Благо и тут свободные программы - в лице обычных текстовых редакторов, - окажутся небесполезными. Практически любой представитель этого семейства, функциональность которого выходит за элементарные рамки (а за точку элементарности можно принять штатный ee из FreeBSD и nano, входящий в большинство Linux-дистрибутивов), располагает собственным макроязыком программирования. Остается только сочинить соответствующие макросы и привязать их к "горячим" клавишам, чтобы в дальнейшем в ответ на нажатие, скажем, клавиши F1 получать заголовок 1-го уровня, клавишей F4 оформлять параграфы (тег

) и так далее. Если же и макросы сочинять лениво - в распоряжении пользователя всех более-менее "продвинутых" редакторов имеется возможность протоколирования собственных действий с оформлением результата в виде макрокоманд. В ряде работ можно найти примеры того, как легким движением руки универсальные текстовые редакторы joe и nedit превращаются в специализированные инструменты для создания web-страниц. А для таких гигантов текстового редактирования, как vim или emacs дополнения для html-разметки придуманы давным-давно - нужно только их поискать на соответствующих сайтах (для начала - на http://www.vim.org и http://www.gnu.org/software/emacs, соответственно).

Особого внимания в качестве web-инструмента заслуживает kate - наиболее мощный из штатных текстовых редакторов KDE. Как и в файловом менеджере konqueror, описанном в предыдущей интермедии, парадигма его - интеграция эпонимического средства (в данном случае - текстового редактора) со средствами визуализации файловых операций и полноценным эмулятором терминала, к коим добавлен мощный инструмент для поиска файлов. Есть в kate и штатные способы полуавтоматического ввода тегов HTML (и даже XML, с проверкой валидности последних), и средства ведения проектов, и многое другое. Правда, расширение штатных возможностей этого редактора - задача нетривиальная, требующая уже всамделишнего умения программировать. Однако и наличных модулей расширения для kate (объединяемых в комплекс KPart) хватает для решения многих и многих задач.

Такой адаптированный текстовый редактор - прекрасный инструмент для работы с отдельными web-страницами и небольшими их наборами, типа домашних страниц. Однако плох тот "хомяк", который не мечтает стать полноценным контент-сайтом. А при работе с таковым хочется уже большего - средств ведения проектов и поддержания их целостности, как минимум.

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

Поскольку пользователь POSIX-систем стоит на плечах гигантов, ответ, разумеется, будет положительным. Остается только такие средства отыскать. К счастью (или - к сожалению?) полноценных редакторов html-кода для свободных платформ не так и много - всего три. Это bluefish и screem, базирующиеся на библиотеке Gtk, и Quanta Plus, предназначенная для работы в среде KDE (и, соответственно, использующая библиотеку Qt). Именно о последней и пойдет речь далее в этой заметке.

Представление героини

Итак, Quanta Plus - программа, позиционируемая как универсальное средство web-разработчика. Это - относительно недавнее достижение свободной софтверной мысли: первые ее версии появились в начале 2000 года. В числе разработчиков ее - норвежец Эрик Лаффон (Eric Laffoon) и два наших соотечественника, хотя и бывших - с Украины: Дмитрий Поплавский и Александр Яковлев (рис. 1).

Рис. 1. Приятно, что в числе разработчиков quanta есть и наши соотечественники, хотя и бывшие

Некоторое время quanta развивалась как самостоятельное приложение, затем в виде отдельного пакета была включена в штатный комплект KDE. Ныне (начиная с KDE версии 3.3.1) quanta - главная составляющая KDE-пакета kdewebdev, включающего также еще несколько утилит этого профиля (о некоторых я расскажу в конце этой интермедии).

Об установке quanta много говорить не стоит - ее можно инсталлировать штатными средствами конкретного дистрибутива вместе со всей средой KDE или отдельными ее компонентами. Нет препятствий и для ручной сборки пакета из исходников - предварительно нужно только озаботиться установкой kdebase и kdelibs (прочие зависимости - опциональны, и будут выведены по завершении исполнения конфигурационного сценария).

Запуск quanta также элементарно прост и может быть выполнен а) из K-меню (через пункты Разработка -> Среда web-разработки (Quanta Plus), из строки мини-терминала (пункт K-меню Выполнить программу) или в) просто из терминального окна (в двух последних случаях нужно просто набрать в командной строке quanta). Иконку для запуска quanta можно вынести на рабочий стол или в панель задач KDE. Можно и просто открыть html-файл в редакторе, щелкнув в konqueror'е на нем правой клавишей, выбрав из контекстного меню пункт Открыть в - подпункт Quanta Plus будет наличествовать по умолчанию.

По своему запуску quanta обеспечивает обычные для программ этого класса возможности набора и редактирования html-кода: автоматический ввод основных тегов и их атрибутов, подсветку синтаксиса, предварительный просмотр web-страницы и так далее. Весьма развиты просто средства обработки текстов - поиск и замена (в том числе с использованием регулярных выражений), проверки орфографии. Из web-специфичных "продвинутых" возможностей стоит отметить, во-первых, уже упоминавшиеся средства управления проектами (удачно дополняемые интегрированным файловым менеджером, представляющим собой облегченный вариант konqueror) и, особенно, визуальный редактор, позволяющий выполнять html-разметку методами, привычными по работе с текстовыми процессорами.

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

Главные элементы интерфейса

Функции обработки html-материалов реализованы в quanta посредством весьма специфического интерфейса. Рисунок 2 показывает примерный вид редактора по умолчанию. Можно видеть, что собственно рабочее поле - область редактирования html-кода (а режим прямого редактирования здесь основной), - обрамлено множеством инструментальных панелей и прочих интерфейсных элементов.

Рис. 2. Web-редактор quanta - интерфейсные элементы по умолчанию

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

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

Не буду распространяться и на тему главной инструментальной панели: при наведении на любую ее пиктограмму всплывает исчерпывающая (и русскоязычная) подсказка.

А вот о закладках и соответствующих панелях тегов (в терминологии quanta они именуются пользовательскими панелями инструментов) стоит сказать подробнее: именно через них мы в дальнейшем будем выполнять тонкую индивидуальную настройку редактора.

По умолчанию закладок шесть:

  • Стандартная
  • Стиль
  • Таблицы
  • Списки
  • Формы
  • Прочие

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

Панель Стандартная объединяет элементы, используемые постоянно в ходе разметки тела html-страницы: параграфы и разрывы строки, гиперссылки и вставки изображений, выделения и выравнивания. Стоит отметить, что полужиному и курсивному выделению соответствуют не визуальные теги b и i, а структурные теги strong и emphasis, а выравнивание достигается значениями атрибутов тега div. Вообще, весьма точное следование букве спецификаций W3C - одна из характерных черт редактора quanta.

В панель Стиль объединены теги для заголовков (с 1-го по 4-й уровень), преформатированного текста, верхних и нижних индексов, цветового выделения, а также для работы со стилевыми таблицами (CSS).

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

Панель Списки предназначена для создания именно этих элементов html-разметки - нумерованных и ненумерованных списков (ordered lists и unordered lists, соответственно) и их элементов (list items), а также списков определений (definition lists).

Панель Формы служит для создания простых интерактивных элементов web-страницы - форм, выпадающих меню, переключателей, радиокнопок и т.д.

Наконец, в панель Прочие попало несколько пиктограмм, не охваченных в предыдущих закладках, как то: вставка даты/времени, ссылки на адрес электронной почты, метатегов, мнемонических кодов для замены специальных символов (типа символа копирайта и "собаки" - во избежания спамового завала в адресах электронной почты вместо @ лучше использовать его эквивалент @, мастер создания фреймовой структуры.

Очень важна пиктограмма Прочие теги. Во-первых, внимательный просмотр пользовательских панелей и пункта Теги главного меню показывает, что все многообразие тегов современного html не охвачено ни там, ни там. И потому, если потребуется вставить тег типа , придется обратиться к этой кнопке. Во-вторых, элементы xml-разметки в quanta также не предусмотрены - их на первых порах придется задавать посредством пиктограммы Прочие теги. Хотя в дальнейшем мы увидим, что и ту, и другую операцию легко автоматизировать.

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

Рис. 3. Указание значений атрибутов для тега при вставке изображения в html-страницу

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

Дополнительные элементы интерфейса

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

Я упоминал уже, что quanta интегрирована с инструментами управления файлами, сконцентрированными в левой дополнительной панели.Здесь мы видим пять пиктограмм-кнопок, назначение которых выясняется из всплывающей подсказки (сверху вниз): Файлы, Проект, Дерево шаблонов, Свойства документа, Сценарии.

Как можно догадаться, нажатие на кнопку Файлы разворачивает дерево каталогов файловой системы. По умолчанию - в отдельном окне, перекрывающем как верхние панели, так и рабочую область. Однако если нажать на среднюю из трех крошечных кнопочек в правом верхнем углу этого окна, оно окажется встроенным в общую структуру интерфейсных элементов quanta, что можно видеть на рис. 4.

Рис. 4. Инструменты для файлового менеджмента гармонично вписываются в рабочую область quanta

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

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

Работа с проектами

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

Для создания проекта следует обратиться с одноименному пункту главного меню - к его подпункту Новый проект, вызывающему своего рода мастер проекта. Первой из диалоговых панелей (рис. 5) задается имя проекта (оно автоматически присваивается его эпонимическому файлу - pojetc_name.webprj, сервер с его протоколом (например, ftp, можно, разумеется, создать и проект на локальной машине, без подключения к сети), главный каталог и подкаталоги для шаблонов и пользовательских панелей (о которых речь пойдет дальше). В следующей панели, при необходимости, можно добавить в проект уже существующие файлы - все из данного каталога или по определенной маске (например, *.html).

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

Затем (рис. 6) автор может указать свое имя и адрес электронной почты, а также раз и навсегда определить DTD всех документов проекта и их кодировку (я, кажется, забыл отметить, что quanta прекрасно работает со всеми кодировками русского языка, включая UTF8, но исключая cp866).

Рис. 6. Следующий шаг - задание общего DTD и кодировки для документов проекта

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

Настройки редактора

Ибо настало время обратиться к настройкам quanta. Черновая настройка редактора выполняется через одноименный пункт главного меню - подпункт Настроить Quanta, вызывающий конфигурационную ,панель с несколькими пунктами (рис. 7). Содержание их вполне очевидно, и задерживаться на нем я не буду.

Рис. 7. Общие настройки редактора quanta - вещь достаточно очевидная для умеющих читать (даже только по русски)

Отдельный момент настройки - подпункт Настроить редактор в том же пункте Настройка главного меню. Здесь также все достаточно ясно, если внимательно ознакомиться с пунктами соответствующей панели (рис. 8).

Рис. 8. Настройка редактора - также дело не очень сложное

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

Оказывается, просто-напросто обратиться к пункту главного меню, именуемому Панели инструментов - именно таким образом настраивается все то, о чем идет речь.

В указанном пункте обнаруживаются такие варианты:

  • Загрузить - вызов одной из уже существующих пользовательских панелей, глобальных, то есть доступных для всех пользователей данной системы (их местонахождение - подкаталог share/apps/quanta/toolbars/ в корневой директории KDE, например, /opt/kde или /usr/local/kde), локальных, принадлежащих данному пользователю (имеющих местопребыванием $HOME/.kde/share/apps/quanta/toolbars/) или панелей проекта (помещаемых в каталог /path_to_proj/toolbars); заметим, что по умолчанию загружены все доступные панели из числа глобальных, а локальных панелей и панелей проекта пока в природе не существует;
  • Сохранить - сохранение новосозданной панели в качестве локальной или панели проекта; очевидно, что сохранять и изменять глобальные панели обычный пользователь не может;
  • Добавить пользовательскую панель - это именно то, чем мы вскоре займемся;
  • Удалить пользовательскую панель - это не удаление как таковое, а лишь дезактивация одной из загруженных (по умолчанию или через подпункт Загрузить) панелей;
  • Переименовать пользовательскую панель инстументов и Отправить панель инструментов по E-Mail - в комментариях не нуждаются;
  • Загрузить панель инстументов - скачивание из интернета (с узла quanta.kdewebdev.org) какой-либо ранее разработанной панели.

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

Для этого нам придется отправиться в пункт Настройки главного меню и выбрать там подпункт Настроить панели инструментов. После этого взору предстает следующее окно (рис. 9).

Рис. 9. Настройка пользовательских панелей инструментов

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

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

Ясно, что таким образом можно только перекомпоновать кнопки тегов, которые и так были ранее доступны. А где же обещанная возможность создавать теги собственные? Да рядом, в подпункте Настроить действия пункта Настройка главного меню. В появившемся диалоговом окне выбирается тип действия кнопки (кроме тега, к кнопке пользовательской панели можно привязать также сценарий и просто текст), задать ее название и всплывающую подсказку, а также ввести собственно тег (при необходимости - также и закрывающий), как это показано на рис. 10. Для тегов, допускающих использование атрибутов и их значений, можно поставить переключатель запуска диалога, то есть создать диалоговую кнопку.

Рис. 10. Задаем атрибуты вновь создаваемой кнопки новой пользовательской панели

Вновь созданной кнопке будет присвоен некий умолчальный значок. Который несложно изменить - через пункты меню Настройка - > Настроить панели инструментов.

Заполнив новую панель инстументов кнопками для требуемых тегов, остается только сохранить ее либо как локальную, либо как панель проекта. Первый вариант понятен - нужно только записать файл панели (а он имеет вид name.toolbar.tgz, то есть представляет собой сжатый архив) в нужный подкаталог. Для html-панелей это будет $HOME/.kde/share/apps/quanta/toolbars/html. А вот зачем нужны собственные панели в отдельном проекте?

Ответ не сложен. Представьте себе, что вы ведете два сайта, один - в стиле pure html, другой же - на базе xml-технологий. Очевидно, что в том и ином случае потребуется совершенно разные наборы тегов (а теги XML создавать в quanta так же легко, как и обычные html-теги), объединение которых в общих пользовательских панелях приведет только к их загромождению. Тут то и стоит вспомнить о возможности создания собственного комплекта панелей для каждого проекта.

Все это, конечно, очень благородно, - скажете вы мне. Но ведь предлагалось использовать quanta не просто для разметки уже существующего текста. а для его набора - с автоматическим вводом тегов в процессе оного. А разве это верх удобства - отрывать при наборе руки от клавиш и тянуться к мыши для того, чтобы ввести тег нажатием на кнопку инструментальной панели? Отнюдь - скажет любой пользователь с навыками ремингтониста (это - мужской род от слова "машинстка", на заре машинописи работа эта считалась столь тяжелой, что ее исполняли исключительно мужчины). И будет бесусловно прав. Так что пора исполнить обещание и рассказать, как же вводить теги исключительно с клавиатуры, без всякого участия мышей и прочих грызунов.

А сделать это можно соответствующей настройкой "горячих" клавиш. Для чего опять отправляемся в меню Настройка -> Настроить действия, обращая внимание на блок Комбинации соответствующего диалогового окна (см. рис. 10). В блоке этом мы видим два переключателя - Нет, отмеченный по умолчанию, и Другой. Его-то и следует отметить, что вызовет появление еще одного окошка (рис. 11). Тут достаточно нажать ту клавишу (или комбинацию оных), к которой хотелось бы привязать ввод данного тега - и в дальнейшем она будет выступать в качестве "горячей", действие которой эквивалентно нажатию экранной кнопки на пользовательской панели.

Рис. 11. Привязка клавишных комбинаций

Теперь остается самая малось - обеспечит загрузку новосозданной пользовательской панели при старте quanta, само собой это не произойдет. Тут потребуются некоторые действия руками, хотя и несложные. Во-первых, в домашнем каталоге должен присутствовать файл descrition.rc - он размещается в подкаталоге $HOME/.kde/share/apps/quanta/dtep, соответствующем нужному DTP (например, html-transitional. Поще всего скопировать его прототип из opt/kde/share/apps/quanta/dtep/html-transitional и чуть отредактировать. А именно - отыскать в нем (в секции [Toolbars]) строку вида

Names = standard, style, tables, lists, forms, other

и дописать туда имя файла новой пользовательской панели - через запятую и пробел, без суффиксов toolbar.tgz, например - mybar.

Я привел лишь простой рецепт создания собственной пользовательской панели и обеспечения ее загрузки, без объяснения механизма действий. Для более глубого понимания оного можно ознакомиться с документацией по редактору quanta, вызываемой через меню Справка -> Руководство "Quanta", в разделах 5. Расширение Quanta Plus. Здесь же описываются и принципы работы с DTP, знание которых необходимо для решения более сложных задач - полноценного использования XML, стилевых таблиц, php-сценариев и прочего высшего web-пилотажа.

Дополнительные возможности kdewebdev

Внимательный читатель обратил внимание, что в редакторе quanta, при всем богатстве его возможностей. не обнаруживается такого важного для ведения крупных web-проектов средства, как контроль целостности ссылок, ни внутренних, ни тем более внешних. Это действительно так. Однако вспомним, что quanta - лишь один (хотя и главный) из компонентов пакета kdewebdev. Остается ознакомиться с его возможностями - не найдем ли мы там чего-либо недостающего для полного счастья?

И конечно же, найдем - программу klinkstatus, именно для проверки ссылок и предназначенную. Запускаем одноименной командой ее из командной строки или минитерминала (штатно в K-меню она отсутствует, хотя никто не мешает ее туда встроить) и видим окно следующего вида (рис. 12). Отправляемся в меню Файл -> Открыть URL, выбираем индекс-файл нашего сайта, устанавливаем требуемую глубину вложенности подкаталогов, жмем кнопку Проверить - и через некоторое время получаем полный список всех ссылок, как работающих (отмеченных зелеными галочками), так и оборванных (красные кресты). Последними на машине, в данный момент не подключенной к Сети, будут все внешние ссылки. Проверку коих при необходимости можно исключить, сняв соответствующий переключатель.

Рис. 12. Проверка целостности ссылок утилитой klinkstatus - обращаем внимание на глубину рекурсии и переключатель проверки внешних ссылок

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

Программа klinkstatus не блещет богатством настроек (рис. 13), хотя все жизненно необходимое тут присутствует. А именно - задание "умолчальных" глубины рекурсии, включения/отключения проверки внешних ссылок, число адресов в истории и т.д.

Рис. 13. Настройка klinkstatus

В составе пакета kdewebdev есть еще несколько полезных утилиток. Например:

  • kimagemapeditor, программа для создания т.н. карт изображений, то есть разбиения рисунка на отдельные области, к каждой из которых привязана гиперссылка;
  • kmdr-editor - редактор диалогов;
  • xsldbg - отладчик XSL, работающий в командном режиме, и графический интерфейс к нему - kxsldbg.

Однако их рассмотрение далеко выходит за рамки темы этой главы. Замечу только, что все эти средства могут быть и интегрированы в quanta в качестве модулей. По умолчанию это сделано для klinkstatus, kimagemapeditor и xsldbg. То есть они могут вызываться из меню редактора - через пункт Модули и далее Link Checker, KImageMapeditor или XSLT Debugger, соответственно.

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

Допускается в quanta и подключение дополнительных модулей - через меню Настройка -> Настроить модули. Правда, для этого их кто-то должен написать. Но в качестве дополнительных модулей могут использоваться составные KPart из kate - а их пишут довольно активно.

Итоги

В этой главе я коснулся лишь некоторых особенностей программы quanta - тех, которые наиболее важны для меня лично. За чертой рассмотрения остались такие вещи, как работа с XML, стилевыми таблицами, сценариями - то, что требуется профессионалу в области web-технологий, к каковым себя не причисляю. А потому подведу предварительные итоги.

Думаю, мне удалось продемонстрировать как широту возможностей описываемого редактора (особенно в сочетании с дополнительными модулями), так и гибкость его индивидуальных настроек. Конечно, мне давно не приходилось видеть редакторов html-кода для Windows, однако по смутным воспоминаниям о HomeSite - как будто бы в нем не было ничего такого, что невозможно было бы реализовать в quanta - штатными ли ее средствами, или с помощью модулей. Включая даже режим визуального редактирования, о котором я практически не говорил - ввиду тривиальности приемов работы в нем.

Так что думается, что значение этой программы выходит за рамки сочинения любительских web-страниц - это вполне полноценный и профессиональтный инструмент web-мастера. Ну а его возможности по составлению html-документации - просто выше всяких ожиданий. В частности, окончательная версия этой книги доводилдась до ума именно в Quanta Plus.