воскресенье, 20 января 2019 г.

Скотт Чакон, Бен Страуб. Git для профессионального программиста. Подробное описание самой популярной системы контроля версий


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

Изначально мотивацией для освоения Git у меня было желание представить свои разработки в виде, удобном для просмотра через интернет. Поэтому сначала я захотел подобрать для себя подходящее веб-приложение для управления репозиториями. Попробовал настроить GitBlit, написанный на Java, но в нём меня не устроило отсутствие локализации интерфейса на русский язык. Затем настроил Gogs, написанный на Go, где такая локализация была. Начинал осваивать Git без книги. Создал репозитории программ, научился добавлять коммиты, создавать ветки и осуществлять слияния веток. Но захотелось изучить вопрос немного глубже, поэтому я решил прочитать книгу.

До этого много раз в книжных магазинах попадалась эта книга. Оригинал книги распространяется бесплатно в электронном виде - ProGit. Имеется перевод книги, который делают энтузиасты. Его можно найти по ссылке ProGit на русском. Несмотря на то, что имеется бесплатно доступная электронная версия, мне удобнее читать с бумаги.

Купил бумажную книгу, прочитал и порадовался как глубине изложенного материала, так и очень высокому качеству перевода. В тексте книги мне не попадались ни предложения с мутным смыслом, ни рассогласованной терминологии, ни ошибок в ссылках на другие разделы, чего было довольно много, например, в книге IPv6. Администрирование сетей. Хочется выразить благодарность за качество перевода Рузмайкиной И., о которой я не нашёл никакой информации, даже имени, кроме списка переведённых книг. Ошибки мне попадались только на иллюстрациях, но скорее всего они присутствуют и в оригинале книги. Например, в книге имеется такая вот иллюстрация, на которой красным цветом я обозначил исправления, соответствующие описанию:


Читал я довольно долго. Материал непростой, а иногда и не особо интересный. Например, я читал без особого интереса главы про сайт GitHub, а также главы про Subversion, Perforce и приложения с графическим интерфейсом. Поэтому в перерывах между чтениями этой книги успел прочитать ещё три других.

Небольшим субъективным недостатком я посчитал то, что в книге не описана одна из моих любимых операций - git add с опцией -e. Эта опция позволяет редактировать патч, превращающий старую версию файла в новую. При этом можно удалить часть изменений из патча, а часть поменять. После выхода из редактора в коммит будут добавлены только те изменения, которые остались. Остальные изменения не попадут в коммит, но и никуда не пропадут - их можно будет добавить в следующий коммит целиком командой git add или очередную часть командой git add с опцией -e. Часто бывает так, что редактируя файл, я обнаруживаю в нём какие-то мелкие ошибки, закомментированные фрагменты кода. В таком случае я обычно тут же исправляю обнаруженные ошибки и удаляю устаревший код, но эти изменения логически не связаны с основными изменениями, которые я вношу в файл. Поэтому такие мелкие правки я выделяю в отдельные коммиты.

Вторая моя любимая операция - git rebase с опцией -i, описана достаточно подробно. После подготовки серии коммитов я могу переставить их местами или объединить в один коммит. Объединение коммитов бывает особенно полезно, когда первоначальная правка кода оказывается неправильной или не полной. В последующих правках код может быть исправлен, поэтому перед отправкой коммитов в публичный репозиторий неплохо объединить такие изменения в один коммит, чтобы коммит сразу оказался бы верным. Человеку, который будет читать журналы изменений, не придётся переживать о том, что коммит явно содержит ошибку и проверять, была ли исправлена эта ошибка в последней версии кода.

Мне особо полезной показалась глава 10, рассказывающая о внутреннем устройстве системы. Поначалу я осваивал высокоуровневые возможности системы и некоторые особенности системы приводили меня в замешательство. Например, однажды я переименовал каталог при помощи команды git mv, а потом добавил в репозиторий ещё один каталог, внутри которого был файл, совпадающий с тем, который был в первом каталоге. После создания коммита я обнаружил, что оригинальный файл переместился не в переименованный каталог, как ожидалось, а во вновь добавленный каталог. При этом новый файл возник в переименованном каталоге, а не во вновь добавленном. Дело в том, что git не записывает в коммите действия, приведшие к изменению файлов. git оперирует снимками файлов, относящихся к каждому коммиту.

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

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

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

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

воскресенье, 13 января 2019 г.

Стивен Уитт. Как музыка стала свободной. Конец индустрии звукозаписи, технологический переворот и "нулевой пациент" пиратства


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

Книга начинается с того, как создавался аудиокодек, ставший впоследствии известным как mp3. Создавался он в Германии под руководством математика Карлхайнца Бранденбурга в рамках общего исследовательского проекта между университетом Эрлангена-Нюрнберга и Институтом Фраунгофера. Вопреки расхожему мнению, цифры в расширениях файлов mp2, mp3 и mp4 не являются единой последовательностью. MP2 соответствует стандарту сжатия видео и аудиоданных MPEG-2, mp3 соответствует аудиокодеку Layer 3 стандарта сжатия видео и аудиоданных MPEG-1, MP4 соответствует стандарту сжатия видео и аудиоданных MPEG-4.

У меня есть книга Тима Кинтцеля "Руководство программиста по работе со звуком", в которой описаны исходные тексты декодировщиков MPEG-1 Layer 1 и MPEG-1 Layer 2, поэтому я давно знал о том, что mp3 - это MPEG-1 Layer 3. Чего я, однако, не знал, так это о том, что аудиокодеки MPEG-1 Layer 2 и MPEG-1 Layer 3 конкурировали между собой на равных, прежде чем стать частью стандарта MPEG-1. Как выясняется, кодек Бранденбурга был более совершенным по сравнению со своим конкурентом, хотя и требовал больше вычислительных ресурсов на кодирование и декодирование. В ходе рассмотрения обоих конкурирующих кодеков Бранденбургу было предложено внести ряд изменений в свой кодек, прежде чем его утвердят в качестве одного из стандартных кодеков MPEG-1. Представители Philips, которые продвигали свой кодек, убедили комиссию использовать для конкурирующего кодека ряд фильтров, которые сделали кодек Бранденбурга ещё более медленным.

Кодек MPEG-1 Layer 2 был более простым в реализации, менее требовательным к ресурсам и поэтому в то время именно он получил наибольшее распространение для кодирования видео со звуком. MPEG-1 Layer 3 оказался практически невостребованным. В книге упоминается только один случай успешной продажи оборудования по кодированию и декодированию звука. Аппаратная реализация кодека называлась Zephyr и использовалась для трансляции хоккейных матчей НХЛ в США. Компания, занимавшаяся трансляцией матчей, через некоторое время практически вытеснила своих конкурентов с рынка, поскольку качество звука в трансляциях было выше, а обходились трансляции дешевле, благодаря тому, что компании удавалось использовать менее скоростные и более дешёвые линии связи.


После нескольких лет попыток продвинуть свой кодек, Бранденбург выложил в интернет демонстрационные версии своих программ, надеясь заполучить клиентов, которые захотели бы приобрести лицензию на использование кодека. В интернет были выложены кодировщик L3enc, декодировщик L3dec и аудиоплеер WinPlay3, которые требовали регистрации при длительном использовании. Несмотря на игнорирование производителями видеоплееров, MPEG-1 Layer 3 приобрёл популярность в интернете. В первую очередь его заметили аудиопираты. Кодек позволял сжимать звук в 12 раз без потери качества звука. Компакт-диск, имеющий объём 600 мегабайт, таким кодеком можно ужать до 50 мегабайт. Все программы были немедленно взломаны и стали распространяться в интернете.


Интересно, что аудиокодек AAC, выпущенный командой Бранденбурга позднее, является в некотором смысле возвратом к истокам. Фактически это первоначальный кодек, избавленный от фильтров, навязанных Philips. Бранденбург опасался конкуренции со стороны кодека Vorbis и формата WMA. Первый был ему очень симпатичен как инженеру: кодек выпускался с открытыми исходными текстами, не требовал никаких лицензионных отчислений, а благодаря открытым исходным текстам имел хороший потенциал для совершенствования всеми заинтересованными сторонами. Формат WMA вызывал большие опасения, т.к. компания Microsoft имела достаточно денег, чтобы успеха в деле его продвижения.

Когда-то меня заинтересовал вопрос, с каким битрейтом стоит сжимать аудиофайлы в формат mp3, чтобы с одной стороны достичь максимального сжатия, а с другой стороны - чтобы качество звука не ухудшилось настолько, чтобы это стало заметно на моём оборудовании и с моим слухом. В итоге я пришёл к выводу, что я на слух различаю потерю качества звука, когда файлы сжимаются с битрейтом 128 Килобит в секунду. Уже при сжатии с битрейтом 160 Кбит/с, я не различал на слух исходный звуковой файл с компакт-диска и сжатый файл. Для надёжности я решил остановиться на использовании битрейта 192 Кбит/с, на случай если мне когда-нибудь придётся сжимать аудиофайлы со специфическими звуками, которых не было в тестируемых мной музыкальных дорожках, но которые теряли бы в качестве при сжатии с битрейтом 160 Кбит/с. Интересно, что пережимать mp3 в mp3 в меньшим битрейтом вполне безопасно и качество звука от этого не станет хуже, чем это характерно для более низкого битрейта. Во всяком случае, в книге написано что сам кодек для достижения нужного уровня сжатия поступает точно так же - повторно сжимает уже сжатый звук до тех пор, пока он не уместится в нужный битрейт.

Аналогичные тесты я проводил с кодеком Vorbis и сделал вывод, что в случае с ним потери качества звука остаются незаметными аж до битрейта 96 Кбит/с. Правда форматом ogg и Vorbis пользовался я не часто, т.к. на перекодирование файлов нужно было тратить время. Пробовал пользоваться этим форматом на таком вот плеере:

Это был X-Cube X-401 с 2 гигабайтами встроенной флеш-памяти. У него был один странный недостаток - иногда он глючил и переворачивал изображение на дисплее вверх ногами. Помогал сброс при помощи иголки. Когда же у меня появился телефон, умеющий воспроизводить mp3, плеер некоторое время продолжал использоваться в качестве флешки, а с появлением флешек большего объёма безжалостно выброшен :)

Кроме истории создания и попыток продвижения аудиокодека командой Бранденбурга, в книге излагается судьба ещё двоих человек - руководителя звукозаписывающих компаний Дага Морриса и малоизвестного пирата Делла Гловера, который устроился на работу на завод PolyGram, производивший компакт-диски. В этих двух историях можно проследить не только как звукозаписывающие компании теряли прибыли от деятельности пиратов и какую роль в этом сыграл формат mp3. Забавно, но в этой книге я нашёл ответ, почему такую невероятную популярность приобрёл довольно посредственный музыкальный жанр рэп. Я лично вообще не считаю это музыкой, а скорее чтением бандитских стихов под простейший ритм и сопровождаемое какими-то гротескными ужимками. Если кому и стоит воздвигнуть памятник в деле популяризации рэпа, так это точно Дагу Моррису, который верил не своему музыкальному вкусу, а статистике продаж.

На мой взгляд, в одно время сошлись друг с другом несколько элементов мозаики, которые и породили то пиратство, которое было характерно для 90-х и 2000-х годов.
  • Кодек mp3 позволял решать проблемы с малым объёмом жёстких дисков компьютеров и медленным интернетом. Сжатые файлы стало возможно скачать за приемлемое время даже через довольно медленные линии связи, а слушать их стало гораздо удобнее: стало возможно составить в программе-плеере плейлист с песнями из разных музыкальных альбомов и слушать его без необходимости часто переставлять компакт-диски в приводе. Схожие ограничения и неудобства испытывали и пользователи носимых плееров: выходя на пробежку или собираясь в дорогу нельзя взять достаточного количества любимой музыки. Если бы в то время были флеш-накопители объёмом в несколько гигабайт, то на них можно было бы записать несколько компакт-дисков, не прибегая к сжатию.
  • Пиринговые сети решали проблему с отсутствием источников, где можно было бы легально скачать интересующую музыку, заплатив за неё разумные деньги. Не секрет, что многие люди хотят слушать те музыкальные композиции, которые они услышали на радио или в кафе. Не все люди хотят покупать ради одной песни сразу целый компакт-диск с альбомом исполнителя.
  • Наконец, приводы для записи компакт-дисков позволяли одновременно справляться с двумя предыдущими проблемами. Если скаченная музыка не умещается на жёстком диске компьютера, её можно записать на диск. Если у тебя совсем медленный интернет, а то и вовсе нет его, то выхода не остаётся и приходится покупать компакт-диск. Однако, я хорошо помню, что лицензионные компакт-диски в то время стоили на порядок дороже пиратских, а найти в музыкальных магазинах можно было только либо новинки, либо классику. Guano Apes? Placebo? Metallica? Queen? Пожалуйста, сколько угодно. Steve Vai? Joe Satriani? Не, не слышали. Пираты заполняли этот вакуум, позволяя найти людям то, что им нужно, да к тому же - по приемлемой цене. И mp3 тут тоже сыграл свою роль, т.к. на одном компакт-диске у пиратов стало возможно купить целую дискографию интересующего исполнителя.
Поэтому неудивительно, что люди покупали mp3-плееры, копировали через свой медленный интернет музыку из пиринговых сетей в формате mp3 и покупали диски у пиратов. Сейчас пиратство образца 90-х и 2000-х ушло, скорее всего, безвозвратно. Каналы в интернет стали настолько высокоскоростными, что появились люди, которые скачивают только несжатые компакт-диски или сжатые каким-нибудь кодеком FLAC или APE, предназначенными специально для сжатия компакт-дисков без потери качества. Появились платные легальные музыкальные и киносервисы, предоставляющие за умеренную абонентскую плату доступ к огромному архиву музыки или кино в высоком качестве, прямо от издателя, с возможностью поиска и просмотра сопутствующей информации. Появился мобильный интернет, который позволяет слушать музыку или смотреть фильмы прямо в автобусе или в кафе, без необходимости тратить время на скачивание или перекодирование скаченного в удобный формат. Возможно, выпуск форматов Blue Ray, появление стандартов телевидения высокого качества, появление стандартов объёмного звука вроде 5.1, 7.1, 9.2 и стандартов объёмного кино вроде IMAX 3D - это косвенные признаки, по которым можно обнаружить попытки правообладателей снизить потребительскую ценность пиратских архивов, уже имеющихся в сети и на персональных компьютерах. Скорее всего, по замыслу правообладателей, потребители, в погоне за более высоким качеством, должны обратить внимание на все эти новшества и в некоторой мере забыть про старые пиратские архивы.

О той эпохе сейчас мне лично напоминают лишь два артефакта. Первый артефакт стоит у меня дома на кухне:

Эта магнитола умеет воспроизводить компакт-диски с файлами в формате mp3. Второй артефакт - это компакт-диски в формате mp3, честно купленные в разнообразных ларьках, торговавших компьютерными компакт-дисками. Почему я называю их артефактами, так это потому, что они практически не встречаются друг с другом. Магнитола используется только для прослушивания радио, а диски просто пылятся на полке в ожидании, когда их наконец выбросят. Лишь однажды я решил проверить из любопытства, будет ли это работать вместе. Достал с полки диск с альбомами группы Pantera и прослушал один альбом за завтраком. Повторять не захотелось, т.к. качество звука меня не впечатлило.

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

Организатор группы RNS, в которую входил Делл Гловер, Адил Кассим подходил к своему делу весьма серьёзно: придумал правила взаимодействия членов группы, позволяющие сохранять максимальную конспирацию, лично проводил расследования - какие музыканты пользуются наибольшей популярностью, с какими звукозаписывающими компаниями заключают контракты, какие альбомы готовятся к публикации каждым из артистов и где их можно заполучить до официальной публикации. Слабым звеном всей этой структуры оказался только сам Делл Гловер, который фактически игнорировал эти правила и согласился сотрудничать со следствием. Адил Кассим вышел из воды сухим, несмотря на показания Делла Гловера, а вот самому Деллу Гловеру пришлось отсидеть несколько месяцев в тюрьме. Думаю, правда, что нынешние хакерские группы, сливающие в сеть государственные секреты, организованы гораздо серьёзнее.

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

Впрочем, вряд ли кто-то из них сильно нуждался в деньгах. Бранденбургу было нужно скорее признание, а деньги были лишь приложением к делу его жизни. Даг Моррис с каждым годом зарабатывал всё больше, т.к. получал премии за превышение плана продаж, а при планировании всегда старался быть консервативным. Звукозаписывающие студии продавали компакт-диски по цене гораздо выше себестоимости, и организовали ряд абсурдно жестоких судебных исков против рядовых пользователей сети интернет, которые просто скачивали кем-то выложенные в сеть музыкальные файлы в формате mp3. Вряд ли мать-одиночка, скачавшая из интернета около десятка музыкальных композиций, заслужила штраф на многие сотни тысяч долларов, выплатить которые она заведомо не способна. Справедливее было бы наказывать организаторов и бенефициаров пиратских раздач - пиратские группы, организаторов пиринговых сетей вроде Napster. Главный пират планеты - Делл Гловер, укравший с завода более 2000 компакт-дисков до их релиза, и продававший пиратские диски с музыкой на благо собственного кармана, по сравнению с матерью-одиночкой отделался лёгким испугом - просто отсидел в тюрьме несколько месяцев.

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

воскресенье, 6 января 2019 г.

Александр Панчин. Апофения



Об этой книге узнал из видеоролика "Александр Панчин про книгу "Апофения" и мракобесов" на канале Дмитрия Пучкова:

В прошлом я уже читал книгу Александра Панчина "Сумма биотехнологии", а также подписан на блог Planetarium автора. К сожалению, я не осилил это произведение, когда оно публиковалось в блоге. Когда узнал о выходе печатной книги, то решил приобрести, т.к. с бумаги мне читать гораздо удобнее.

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

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

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

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

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