0000000

Программист А. сидел теплым воскресным вечером в баре Pizzeria Uno и с удовольствием потягивал Uno Amber Ale. Веселые люди подсаживались к стойке справа и слева от него, приветливо кивали, заказывали напитки, выпивали и уходили. Работал телевизор, показывавший бейсбол, суетились официанты, вкусно пахло жареными стейками.

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

— Надо что-то ей сказать, — лихорадочно подумал А., но абсолютно ничего не приходило в голову.

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

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

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

— Предоставленные сами себе, события развиваются от плохого к худшему, — философски подумал программист А. — Закон Мерфи.

0000001

Он приложил плоскую прямоугольную табличку из белого непрозрачного материала к верхней части квадратного столба, торчавшего из земли перед дверью. Он не помнил, как он здесь оказался, и откуда у него в руке появилась эта табличка. Он был готов ко всему, но ничего особенного не произошло, только тихо щелкнул замок стеклянной двери. Он потянул дверь на себя, и она открылась, впустив его в прохладный сумрак небольшого зала, из которого в разных направлениях расходились четыре коридора. Дверь плавно закрылась за его спиной. Он сделал несколько шагов вперед и увидел в стене блестящую серебристую кнопку. Нажав на нее, он стал ждать, и вскоре стена раздвинулась, открыв ему небольшую комнатку, стены которой казались сделанными из какого-то металла. Он вошел. С внутренней стороны на стене он снова увидел кнопки, подписанные незнакомыми иероглифами. Пока он медлил, размышляя, какую из них нажать, двери сами собой закрылись, заперев его в этом маленьком пространстве. Занервничав, он торопливо нажал на самую верхнюю кнопку и немедленно почувствовал толчок и движение. Над дверью красным светом загорелся иероглиф, через секунду сменился другим, и продолжал менять свои очертания каждые несколько секунд. Внезапно движение прекратилось. Двери открылись, и он шагнул в освещенный неоновым светом серо-зеленый лабиринт. Он пошел наугад, петляя по извилистой узкой дорожке среди грязно-серых стен и всегда поворачивая направо. Вскоре в стене слева от него начался ряд однообразных дверей с табличками на непонятном языке. Он продолжал двигаться вперед. Вдруг на одной из табличек он ясно увидел собственное имя, написанное по-английски. Uh-oh, подумал он. Выбора не было, он решительно опустил руку на какое-то подобие ручки, торчавшей из двери, нажал вниз и толкнул от себя. Дверь поддалась. За ней оказалась комната с большим окном в дальнем конце. Когда он подошел к окну, у него захватило дыхание. В этом окне, как в огромном телевизоре, он увидел свой старый, почти исчезнувший из его сознания, мир, тот мир, из которого он пришел. В этом мире светило солнце, ветер еле заметно шевелил ветви деревьев, машины плавно скользили по шоссе вдоль прерывистых белых линий разметки, вдалеке переливалась отраженными бликами парковка у торгового центра, еще дальше, через дорогу, был виден Barnes&Noble.

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

— И снова понедельник… — подумал он.

0000010

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

— Вот почему у вас в Америке всегда так выходит? — риторически обратился А. к своему приятелю. — Если бы я в России уронил этот сэндвич, он бы наверняка не развалился. Поднял, отряхнул — и можно есть. А здесь — смотри, что получилось!

— Ничего удивительного, — ответил приятель. — Энергетика у нас здесь такая. Ты знаешь, сколько, к примеру, полос на американском флаге?

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

— Тринадцать полос, — сообщил он, судорожно пытаясь вспомнить, что эти полосы символизируют.

— Ну, и что ты хочешь от страны, у которой на флаге тринадцать полос? — спросил приятель. — У нас и на долларовых монетах тринадцать звездочек. Самое интересное, что и на монете в пол-доллара с портретом Кеннеди ровно тринадцать звездочек. И эта монета считается счастливой и приносящей удачу! Как тебе это?

— Тринадцать полос потому, что первых штатов было тринадцать, — пробурчал А., вспомнив значение полос на флаге.

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

— От какого? — спросил А.

— 3113 до нашей эры, — ответил приятель.

— Ну что тут скажешь! — подумал А, оставшись без сэндвича.

0000011

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

А. сидел на рабочем месте и вслушивался в древнюю песню времени.

Вот уже полчаса трое индусов-программистов спорили за его спиной о том, кому из них удалось выгоднее купить компьютер в интернете. В конце концов, они сошлись на том, что можно было бы сэкономить еще по крайней мере $20, если бы promotion от Dell не закончился так быстро. Вот ведь, надо было подсуетиться, — говорили они друг другу на своем языке…

0000100

Чжоу ли снится, что он бабочка, или же бабочке снится, что она — Чжоу.

(Чжуан Цзы)

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

— А., где обещанная документация? — строго спросил менеджер.

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

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

— Опять? — угрожающе произнес менеджер и позвонил в непонятно откуда взявшийся большой колокольчик на деревяной ручке.

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

0000101

Программист А. попытался откусить от бутерброда, но у него ничего не получилось — обертка так и норовила попасть в рот вместе с хлебом. Нужно было придержать обертку, но в другой руке у программиста А. была электрическая бритва. Он положил бритву на сегодняшний номер “Boston Globe”, развернутый у него на коленях, но бритва тут же соскользнула с гладкого газетного листа и повисла в воздухе, жужжа и качаясь на собственном шнуре. Программист А. протянул руку за бритвой, при этом другая рука с бутербродом оказалась над газетой, и большая капля кетчупа немедленно упала на разворот, образовав смачную кляксу в том месте, которое А. только собирался прочитать. “Ну, с меня достаточно!” — рассердился программист А., сбавил скорость, съехал на обочину и остановил машину.

0000110

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

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

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

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

Некоторое время ничего не происходило, и А. уже собирался вычеркнуть произошедшее из памяти как невозможное, как вдруг сразу две буквы U и R в слове NUMBER превратились в жучков и побежали по странице в разные стороны. Пытаясь сохранять остатки здравого смысла, А. отметил, что баг, в которого превратилась буква R, на своем пути стер значок умножения, превратив 2**N в 2*N.

— Как же так, — беспомощно пробормотал А. — Должна быть степень, а не умножение! Это же баг…

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

В комнату заглянул системный администратор и увидев А., сидящего с всклокоченными волосами перед пустым монитором, спросил:

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

А. глубоко вздохнул, и словно гора свалилась с его плеч.

0000111

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

— Русский, — ответил программист А. — Я из России.

К его удивлению, женщина посмотрела на него недоверчиво, даже немного подозрительно.

— Нет, на русского ты совершенно не похож, — сказала она.

— Почему это? — обиделся А.

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

— Может, я тоже пою красиво, — из принципа спросил программист А., хотя петь действительно совершенно не умел.

— Может и так, — ответила женщина. — Но все остальное на русского явно не тянет.

— И как же этого русского звали? — поинтересовался А.

— Цхиладзе, — ответила женщина.

— Странное имя для русского… — сказал А.

— Вам, русским, виднее… — задумчиво ответила женщина.

Они допили кофе и, пожелав друг другу take it easy, разошлись.

— Абыдно, слюшай, — думал программист А., поднимаясь по лестнице на свой этаж. — И кто же я теперь?

0001000

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

— Йех фанкшен хо на чэйи хе, — задумчиво сказал один индиец.

— Нахи, йе просиджа хо на чэйи хе, — возразил другой.

Они опять замолчали и уставились на доску.

— Мера кхайал хаин ки йе фанкшен аур просиджа хо на чэйи хе… — медленно и неуверенно выговорил третий.

Это было уже слишком. Программист А. резко повернулся в своем кресле и сказал:

— Айса нахи карна чэйи хе. Йе фанкшен хо на чэйи хе джо рикерсивли бу ла та хаин!

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

— Рикерсивли бу ла та хаин? — с надеждой переспросил один из них.

Программист А. кивнул, выразительно развел руками и повернулся обратно к своему монитору.

— Лекин, вох сахи хаин! — воскликнул индиец.

0001001

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

Программист А. задумчиво сжигал рукопись. Вернее, это была не рукопись, а распечатка программы, над которой А. работал несколько лет. Время от времени он задерживал в руке случайный лист перед тем, как отправить его в огонь, и пробегал глазами написанное. Каждая строчка кода была не просто так, в каждом ключевом слове таилось особое содержание, за каждой буквой скрывалось событие прошлых лет. Вот переменная _fuckIt… Глаза А. подернулись дымкой воспоминания… Новые джинсы, порно-сайт, выплывший на рабочем экране по заданному незнакомому адресу, менеджер, тихо подкравшийся сзади, огромный стакан горячего кофе, вылитый себе на колени от неожиданности… Чем было бы имя переменной без этой истории? Так, бессмысленное сочетание букв.

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

А. бросил в огонь последний лист и посмотрел, как он съеживается и исчезает. Не то же ли самое происходит с каждым днем нашей жизни, брошенным в камин наступающей ночи? Некоторое время он сидел неподвижно, затем посмотрел на часы. Было девять вечера, делать ничего не хотелось. Программист А. подошел к компьютеру и дотронулся до мыши. Экран монитора загорелся. А. включил принтер, загрузил файл с текстом программы в редактор и нажал Print. Через пятнадцать минут он снова сидел у камина с толстой стопкой распечатки все той же программы и бокалом вина.

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

0001010

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

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

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

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

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

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

Что было в следующем баре, программист А. помнил нечетко. На следующее утро у него страшно болела голова.

— Слишком много информации за один вечер, — думал А., пытаясь встать с кровати. — Нельзя столько разговаривать. Вот ведь бл$%#&во!

0001011

На планете Дождей c утра выглянуло солнце. Прогноз погоды по радио обещал ясные и жаркие дни сегодня и завтра, и, скорее всего, в воскресенье.

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

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

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

0001100

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

— Вот если бы облака были акциями компаний, а акции — облаками, — мечтательно подумал программист А. — Тогда бы акции парили высоко в небе…

Его взгляд упал на сотовый телефон Nokia, лежащий на столе.

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

0001101

Программист А. сидел за ланчем в Bertucci’s в окружении своих коллег и наблюдал за веселой и шумной компанией за соседним столом. Несмотря на то, что они были из конкурирующей фирмы, они ему нравились. Они выглядели как друзья, разговаривали как друзья, смеялись как друзья и даже вилки держали также, как друзья.

Неожиданно одна из девушек встала и подошла к их столу.

— Привет, ребята, вы случайно не из…? — она назвала их фирму.

Коллеги программиста А. приветливо закивали.

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

Коллеги программиста А. неуверенно крутили визитки в руках.

— Да, и не потеряйте, пожалуйста, — весело добавила девушка. — Может очень скоро вам понадобиться.

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

— И как я этого раньше не заметил! — удивился программист А.

0001110

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

— Должно хватить, — подумал он.

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

— Что же это такое, — подумал программист А. — На какие муки приходится идти во имя здоровья!

После второго глотка все стало значительно лучше.

— А, Америка! — уже спокойно и добродушно подумал программист А. — Все здесь делается через задницу.

0001111

— Ну хорошо, сдал ты этот экзамен. А дальше что?

— Найду нормальную работу.

— Нашел. Дальше что?

— Разбогатею.

— Ну, разбогател. Дальше-то что?

— Прославлюсь!

— Хорошо, прославился. Что дальше?

— Перееду в Малибу, куплю дом и яхту, буду путешествовать.

— Переехал, купил, попутешествовал. Что дальше?

— Ну что, умру, конечно!

— Умер, что дальше?

Некоторое время они молча смотрели друг на друга.

— Неужели все по новой? — неуверенно спросил приятель.

— Бинго! — ответил программист А.

— Да-а… — протянул приятель. — Попали мы с тобой, старина.

Они выпили, закусили и еще немного помолчали.

— Ну что, между первой и второй перерывчик небольшой? — спросил А.

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

0010000

Проснувшись утром, программист А. выглянул в окно, и ему открылся новый и удивительный мир! В этом новом мире моросил на удивление противный дождь, небо было затянуто тучами, приближался ураган, все выглядело удивительно серо, скучно и безрадостно, и по всей видимости было холодно. А ведь еще вчера небо было голубым и безоблачным, светило мягкое и теплое осеннее солнце, и действительность переливалась яркими красками. “Не перестаю удивляться”, - весело подумал программист А. — “Каждый день — что-нибудь новенькое! Хорошо!" И он, напевая, принялся собираться на работу.

0010001

Программист А. отвечал на вопросы интернет-анкеты.

— Часто ли вы совершаете непроизвольные движения?

— Что я, ребенок, что ли? No.

— Часто ли вам не хочется думать?

— С чего это вдруг? No.

— Если перед вами стоит задача, требующая значительных мысленных усилий — пытаетесь ли вы оттянуть время, чтобы не приступать к решению?

— Ну вот еще! No.

— Часто ли вы теряете интерес к происходящему?

— No.

— Часто ли вы не можете вспомнить, куда положили вещи?

— За кого они меня принимают! No.

— Много ли кофе вы пьете в течение дня?

Программист А. засомневался, но решив, что все относительно, ответил ‘No’ и на этот вопрос и нажал кнопку “Submit”. На экране появилась надпись “Ваши ответы однозначно показывают отсутствие у вас Adult ADD."

— Ну вот то-то же! — довольно усмехнулся программист А. — Вот ведь чего только не придумают! Adult Attention-Deficit Disorder! Yeah right!

Программист А. оглянулся вокруг в поисках своего пятого стакана кофе за утро, но стакана поблизости не было, и он не мог вспомнить, где он его оставил. Давно пора было приниматься за разработку нового алгоритма, но напрягаться не хотелось.

Чем бы еще заняться? — подумал программист А., непроизвольно барабаня пальцами по столу и пробегая глазами список Favorites. — Ничего интересного…

0010010

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

— Быть гусеницей?.. — подумал программист А. — Ползти по проезжей части?! В середине ноября?! А я-то думал, это у меня проблемы!

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

0010011

Программист А. проникся идеей недеяния. Устройство мира уже и так совершенно, ну что можно сделать, чтобы его улучшить? Навредить же можно чем угодно. Действительно, если задуматься, что бы мы не делали, все выходит как-то наперекосяк. Посмотришь по карте дорогу — обязательно заблудишься. Поедешь в магазин за продуктами — забудешь купить самое нужное. Решишь пробежаться для укрепления здоровья — непременно подвернешь ногу и будешь хромать две недели. Купишь водки — напьешься. Заведешь новую сумку — оставишь права и кошелек в старой. Продашь акции — они подорожают, прикупишь — подешевеют.

Если ничего не готовить на ужин — ничего не сгорит. Если не есть hot chicken wings — не будет изжоги. Не поедешь в гости на Рождество — не попадешь в снежную бурю под Буффало. Не отправишься в Аризону — не упадешь в Великий Каньон. Не напишешь код — не ошибешься, и не придется вечером вылавливать баг.

Какие еще нужны доказательства разумному человеку? Программист А. устроился поудобнее в своем кресле и стал просто смотреть на небо.

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

0010100

С каждым днем становилось все очевиднее, что наступает зима. Полки винных магазинов, еще недавно пестревшие жизнеутверждающими оттенками желтого и красного, постепенно меняли свою окраску на холодные оттенки серого и голубого: местные пивоварни прекращали производить осенние сорта Oktoberfest c веселыми этикетками и начинали поставлять свежесваренные зимние сорта густого согревающего пива с привкусом корицы и меда. Местами, тут и там, еще можно было увидеть каким-то чудом уцелевшие с лета заплатки зеленого цвета — коробки Sam Adams Summer Ale, которые хозяин забыл, а может, просто поленился убрать, понадеявшись на то, что природа возьмет свое так или иначе. В барах и ресторанах все чаще, заказывая сезонное пиво, можно было получить янтарный Sam Adams Winter Lager, приправленный корочками кюрасао, корицей и имбирем, или темный Harpoon Winter Warmer с легким мускатным ароматом, который так хорошо потягивать снежным зимним вечером, сидя у камина в домике где-нибудь на севере Вермонта.

— В любом времени года есть своя прелесть, свои особенные цвета, — думал программист А, выходя в пятницу вечером из пивного магазина. — Цвета Новой Англии… Жаль только, что все так быстро меняется. Не успеешь оглянуться, а пик уже и прошел.

0010101

Программист А. удобно пристроился у телевизора с бутылкой Бадвайзера в одной руке и пакетом катрофельных чипсов из Трэйдер Джо’з в другой. Кэти Курик заинтересованно беседовала в студии MSNBC News со своим гостем о деле Кобе Брайанта. Гость, пожилой адвокат с большими очками на честном лице рассудительно говорил:

— …существующие физические свидетельства несомненно подтверждают то, что секс имел место, но подумайте сами, как анализ DNA может помочь нам подтвердить или опровергнуть, было ли это изнасилованием или нет?! По определению, насилие — это когда тебя заставляют делать что-то, что тебе не хочется делать, или когда делают что-то без твоего согласия…

— Да… — отвлеченно подумал программист А. — Так вот что получается! Жизнь-то нас все насилует и насилует, можно сказать, ежедневно. Работа — насилие. Обстоятельства — насилие. Да даже время, просто тем, что уходит без нашего согласия и против нашей воли — и то нас насилует.

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

— Ну а когда тебя насилуют, что надо делать? Надо расслабиться и попытаться получить удовольствие.

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

0010110

Программист А. ходил из комнаты в комнату, рассматривая и трогая разные вещи, и ему казалось, что он листает страницы истории. Вот лампа, которую он купил в Bradlee’s. Не все сейчас даже помнят название этой сети магазинов, вышедшей из бизнеса в 1999 году. А. улыбнулся, вспоминая первые неопытные покупки- молоток, который сломался после второго удара, нож, погнувшийся, когда А. попытался разрезать помидор, вот эту лампу, которая, хотя и работает до сих пор, но уже давно не позволяет менять яркость. Умели же раньше делать!

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

Выцветший постер BankBoston на стене. Free Bill Payment! Да уж, подумал А., были времена. Fleet, поглотивший BankBoston в 2000 году, начал с первого же дня драть четыре с полтиной за то же самое.

Дебетовая карточка Lighthouse Bank. Completely free checking account, вспомнил А. Когда Brookline Savings Bank купил Lighthouse в 2001, А. еле удалось отбиться от их многочисленных новых услуг, за каждую из которых приходилось платить втридорога, не говоря уже о необходимости поддержки минимального баланса на счету.

Телефонная карточка с надписью Bell Atlantic. Казалось бы совсем недавно эти же слова были написаны на любом общественном телефоне в Бостоне. Где это все теперь? И в любом случае, что означает это странное слово Verizon?

Небольшая памятка с номерами каналов и названиями телевизионных станций от MediaOne. Когда AT&T съели MediaOne в 2002, они решили, что А. непременно хотел переключить на них и свой междугородний телефонный сервис. Несколько месяцев они присылали А. телефонные счета. Он звонил, убеждал, пытался ругаться, все напрасно. Клиенты — главное наше достояние, говорили ему и продолжали присылать счета. Да и сейчас время от времени приходят письма от них, начинающиеся словами “You, as our valued customer, have been selected…". "I‘m not your customer”, - автоматически повторяет каждый раз А. заученную фразу, отправляя письмо в корзину.

Программист А. приготовил себе кофе и подошел к окну. Волны продолжали равнодушно накатываться на песок. А. пил кофе и наблюдал, как на здании напротив двое ребят в синих рабочих комбинезонах деловито снимали вывеску AT&T Broadband. Рядом, прислоненная к стене, ждала своего часа пока еще не изведавшая ветра перемен и вкуса соленой морской воды чистенькая вывеска Comcast.

— Да… — подумал программист А. — Иных уж нет, а те далече…

0010111

The National Do Not Call Registry gives you a choice about whether to receive telemarketing calls at home. Most telemarketers should not call your number once it has been on the registry for 31 days. If they do, you can file a complaint at this Website.

(National Do Not Call Registry web site)

Зазвонил телефон. Программист А. поднял трубку и сказал:

— Hello?

— Сэр?.. — послышался в трубке нерешительный дрожащий голос.

— Я слушаю — сказал А.

— Сэр? — повторил голос. — Пожалуйста не сердитесь…

— Я не сержусь, — сказал А. — Я вас слушаю.

— Вы уверены, что не сердитесь, сэр? — голос в трубке немного оживился. — Потому что если вы сердитесь, то я…

— Я не сержусь, — сказал А. — Чем я могу вам помочь?

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

— Нет, все в порядке, я вас слушаю, — сказал А.

— Или, сэр, не дай бог, может, вы обедали? Потому что если вы обедали, то я… Да я никогда!..

— Нет, я не обедал, — сказал А.

— Но сэр, вы уверены, что вы не обедали? Пожалуйста, не скрывайте от меня, мне это очень важно, потому что меньше всего на свете я бы хотел оторвать вас от об…

— Не обедал я! — сказал А. — Чем я могу вам помочь?

— Пожалуйста, сэр, только не сердитесь… — попросил голос.

— Я не сержусь, — спокойно повторил А. — Кто вы и что вам нужно?

— Вы уверены, что вы хотите это знать, сэр? — взволнованно спросил голос. — Это такая честь для меня, сэр, я не могу выразить…

— Да, я хочу знать, кто вы и зачем вы мне звоните, — сказал А.

— Я так и знал, сэр, вы сердитесь! — сокрушенно произнес голос. — Вы все-таки скрыли от меня, что были заняты чем-то важным, когда я позвонил. Я чувствую это, теперь я это определенно чувствую! О, люди! Почему мы не можем просто сказать друг другу правду, даже когда нас просят об этом. Все, что я просил, сэр, это сказать мне правду, потому что если вы были чем-то заняты, то я бы… Но это моя вина, сэр, только моя! Как я мог не догадаться, что такой человек, как вы, конечно, всегда занят, и всегда делает что-то важное…

В трубке послышалось всхлипывание и звуки сморкания.

— Кто вы и что вам нужно? — настойчиво повторил А.

— Спасибо за ваш вопрос, сэр, — сказал голос, успокаиваясь и принимая деловитые интонации. И уверяю вас, сэр, что вы имеете полное право знать, кто я и зачем я звоню, в соответствии в новым фереральным актом от…

— Короче, что вам нужно? — теряя терпение спросил А.

— Могу ли я заинтересовать вас нашим новым кабельным сервисом? — спросил голос.

— Нет, — ответил А.

— Спасибо, сэр! — воскликнул голос. — И позвольте вас уверить, что мы…

— Пожалуйста, — сказал программист А. и положил трубку.

— А все-таки, раньше как-то немного проще было, — подумал он, возвращаясь к столу. — Может, и не надо было включать себя в этот do-not-call list.

0011000

South Border Street, — прочитал программист А. изогнутый бело-зеленый указатель на пересечении улиц и повернул направо. “Если бы еще знать, в каком я городе”, - подумал он. Сделав несколько поворотов наугад, он внезапно увидел черно-белый указатель с цифрами 128 и стрелкой прямо.

— Ну наконец-то, — подумал А. — Выйду на 128, там как-нибудь по номеру выхода сориентируюсь.

Он с энтузиазмом устремился в указанном направлении, проехал несколько миль, но пересечение со 128 упорно не появлялось. Программист А. остановился на заправке Mobil чтобы спросить дорогу. Войдя в магазин, он направился к стойке. Юная бесформенная девушка за стойкой удивленно посмотрела на программиста А. когда он начал говорить, но удивление в ее глазах быстро растаяло, превратившись в привычное усталое безразличие.

— Я не знаю, — ответила она с забавным мягким акцентом. — Я здесь недавно.

— Откуда? — поинтересовался программист А.

— Из Нью Джерси, — сказала девушка. — Из Vineland.

Неожиданно ее лицо приняло страдальческое выражение, и она выпалила плаксивым голосом:

— Боже, как я хочу обратно в Нью Джерси! Там все другое, все лучше, чем здесь! Люди другие, приветливые, веселые… Погода хорошая, всегда светит солнце. Цветами пахнет, а не бензином… Как я хочу в отсюда в Нью Джерси!

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

— Бывал я в этом Нью Джерси, — думал он, продолжая ехать по незнакомой дороге в неизвестном направлении. — И в этом Vineland бывал, проездом. Все там такое же! Единственное отличие — очень много платных дорог. Еще там постоянно идет дождь. И люди какие-то мрачные и неприветливые. И, кстати, пахнет бензином. А послушать эту подругу — так надо прямо сейчас паковать чемоданы и ехать в Нью Джерси.

0011001

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

(Сервер новостей NEWSru.com, Среда, 6 августа 2003 г.)

Начинающий программист подошел к программисту А. и сказал:

— Я продвинулся вперед.

— Как это? — удивился программист А., пытаясь унять шум в голове после вчерашней пьянки.

— Я переписал алгоритм бинарного поиска так, что он работает в несколько раз быстрее.

— А! — сказал программист А. — Ну, это хорошо, но это еще не все…

На следующий день начинающий программист подошел к программисту А. и сказал:

— Я продвинулся вперед.

— Чего? — не понял программист А., пытаясь разомкнуть веки, слипающиеся после бессонной ночи.

— Я понял, как использовать многомерные массивы в PL/SQL.

— Да? Неплохо, — сказал программист А. — Но это еще не все…

На следующий день начинающий программист опять подошел к программисту А. и сказал:

— Я продвинулся вперед.

— Слушай, — не выдержал программист А., снова не выспавшийся после вчерашнего. — Шел бы ты куда-нибудь, пива бы, что ли, выпил, а?

Начинающий программист молча вернулся к своему компьютеру.

— И кому только пришла в голову мысль нанимать на работу обезьян! — устало подумал программист А. — Неужели не ясно — никогда им не стать настоящими программистами.

0011010

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

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

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

— И таким образом, тому, что проблемы в коде открываются именно в пятницу, есть вполне рациональное объяснение, — логично заключил программист А.

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

— Проблема, — сказал менеджер.

— Кто бы сомневался! — сказал программист А.

0011011

Программист А. ехал на вечеринку из Burlington в Woburn и был в прекрасном настроении. Вечер обещал быть веселым, не говоря о пиве. На выходе на 95-ю, он встал не в ту полосу. Перестраиваться было неудобно, и суетиться не хотелось.

— А, какие проблемы, — подумал программист. — Сейчас быстренько развернусь где-нибудь.

Он спокойно выехал на 95-ю в противоположном направлении и съехал на ближайший выход, который вывел его на 3 North.

— При первой же возможности и развернусь, — подумал А.

Однако выходов не было довольно долго. Узкая двухполосная дорога равнодушно убегала вдаль. Через несколько миль А. увидел над дорогой знакомый зеленый прямоугольник. На нем было написано: 62 West. На запад А. было не надо, но он решил все-таки попытать счастья, потому что следующий выход мог быть нескоро. Он съехал на 62. Местность приобретала ярко выраженный сельский характер, не лишенный оттенка идиллии. Проехав около 10 минут, А. увидел знак выхода. Он гласил: 4 — 225. А. съехал с дороги и неожиданно оказался перед развилкой. Знаки показывали, что налево уходили 4 East и 225 North, а направо — 4 West и 225 South. А. лихорадочно соображал. Проблема была в том, что ему был нужен либо East, либо South, и не нужен был ни North, ни West. Растерявшись, А. попытался попасть на 4 East, но в одном месте дорога опять разветвлялась, знака не было, и А. выехал на 225 North.

— Ничего, — подумал он. — Может, она на самом деле идет в нужном направлении.

Однако, уверенности не было, и поэтому, как только он увидел знак 27 South, он сразу съехал на эту дорогу. 27 South казалась надежно ведущей на юг, потому что заходящее солнце заливало кабину красным светом с пассажирской стороны. В этом косом закатном свете редкие ранчо вдоль дороги отбрасывали длинные тени и настраивали на романтические размышления. Вероятно поэтому А. не заметил, как съехал с 27 на 111, причем в направлении West. Солнце коснулось горизонта, начинало быстро темнеть. 111-ая дорога была непривычно прямой и, казалось, не имела вообще никаких выходов. Полосы были разделены бетонным парапетом, а по краям дороги чернели болота с торчащими из них высохшими безжизненными стволами. У А. не было выбора, кроме как продолжать двигаться вперед, удаляясь от своей цели.

Примерно через сорок минут, однако, он уткнулся в окружную 495-ую дорогу. А. встрепенулся.

— Далеко же я уехал! — подумал он. — Ну, по крайней мере, теперь ясно, где я, и куда ехать.

И он уверенно вырулил на 495 South. Он не знал, по какой дороге ему лучше было вернуться в Бостон, но хотелось бы, чтобы это была широкая скоростная дорога. Поэтому, когда он увидел большой зеленый указатель с солидным знаком Interstate 290 на нем, он, недолго думая, поехал на выход. Оказалось, что 290-ая отходила от 495-ой в западном направлении. Далее время как бы остановилось. А. упрямо вел машину, вцепившись в руль и уставившись покрасневшими глазами на набегающую в свете фар дорогу. Он даже не мигнул, когда съехал с 290-ой на Mass Pike, запад.

Было уже совсем темно, но А. продолжал стремительно ехать на запад по I-90. “I'm gonna buy a one way ticket on a west bound train…” — пела по радио Ли Энн Раймс. Он знал, что сделал топологическое открытие о существовании точки, к которой невозможно вернуться, но это его не радовало. Съехав на ближайшем выходе где-то в Беркширах, он остановил машину на пустынной дороге и вышел. По сторонам дороги ничего не было видно, ни единого огонька. В свете фар его машины через дорогу медленно перевалилось перекати-поле, влекомое порывом холодного ветра.

— Вот ведь бл$%#&во! — крикнул А в темноту.

— …бл$%#&во, — откликнулось эхо и замерло вдалеке.

0011100

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

— Чего грустишь! — сказал он. — О чем думаешь? Проблемы? Наплюй на них! Давай выпьем, подставляй стакан, сейчас вот я тебе налью свеженького…

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

— Как хочешь… — сказал программист А.

Он подошел к другому товарищу, державшему в руке пустой стакан.

— Да будет наша жизнь также полна как наши стаканы! — воскликнул он с шутливым грузинским акцентом. — Давай- ка я тебе пивка подолью, пенного, янтарного! Губит людей, как говорится, не пиво…

Товарищ быстро закрыл верх стакана рукой.

— А как же жизнь? — недоуменно спросил А.

— А я себе вон Гиннесса налью, — сказал товарищ, протягивая руку к изящной черной бутылке на столе.

— Ну, как хочешь… — сказал программист А.

Обведя взглядом комнату, он заметил третьего товарища, собирающегося наполнить свой стакан пивом Гиннесс. Программист А. устремился к нему.

— Ну что ты пьешь! — воскликнул он. — Что ты пьешь! Скучно, девушки! Вот что надо пить! Смотри!

Он гордо протянул вперед руку с бутылкой пива:

— Замечательно сбалансированный вкус, отборный хмель, между прочим, из Европы, ненавязчивый привкус специй, золотисто-янтарный цвет! Давай, я тебе налью…

— Слушай, — сказал товарищ. — Хватит ко всем приставать. Говорили тебе: приноси Гиннесс, а ты “Смелее надо быть! Смелее надо быть!” Вот теперь и пей сам свое пиво.

Программист А. с тоской посмотрел на одиннадцать бутылок пива Dead Fish Lager в углу комнаты.

0011101

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

— Спасибо за предоставленную нам возможность служить вам.

Как всегда при звуках этого стандартного приветствия, А. ухмыльнулся, невнятно пробормотал что-то вроде “Ну-ну…” и приготовился слушать длинный список телефонного меню банковских услуг.

— Please listen carefully as our menu has recently changed, — продолжал автоматический голос.

— Да, так я и поверил, — ехидно ворчал А. — Всегда так говорите…

— Если Вы думаете, что знаете, зачем звоните, нажмите 1, - сказал голос. — Если Вы думаете, что не знаете, зачем звоните, нажмите 2. Если вы не знаете, о чем вы думаете, нажмите 3. Если вы не уверены в своем выборе, оставайтесь на линии и наш оператор вам ответит.

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

— Алло? — послышался голос оператора. — Сэр? Вы слушаете? Сэр? Чем я могу вам сегодня помочь?

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

— Нет, ну надо же, — подумал программист А. — Чего только не сделают, что бы пятерку не отдавать!

0011110

Программист А. сидел на своем рабочем месте у окна и смотрел вниз на US INTERSTATE HIGHWAY 95, которую в Массачусеттсе принято называть STATE HIGHWAY 128. Впрочем, на том участке, на который смотрел A., это дорога называлась также ROUTE 3, причем направления ROUTE 3 NORTH и STATE HIGHWAY 128 SOUTH совпадали.

— Ну что ж, — думал программист А. — То, что одна и та же дорога имеет столько обозначений, конечно, может запутать неопытного водителя или случайного туриста, но есть в этом и определенная свобода. Человек как бы сам выбирает, по какой дороге ему ехать, вернее, как ее называть. Можно считать, что едешь по INTERSTATE HIGHWAY 95 и размышлять о бесконечных просторах этой страны. Можно думать, что едешь STATE HIGHWAY 128 и чувствовать себя патриотом штата. Ну, а какая-нибудь противоречивая натура может, вероятно, найти определенное удовольствие от осознания того, что можно ехать по дороге одновременно и на юг, и на север…

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

Программист А. отвернулся от окна и углубился в работу.

0011111

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

— Что бы это могло быть? — думал программист А., не оглядываясь и продолжая шагать вперед. — Похоже на каких-то животных или, даже скорее, птиц. Точно, это, наверно, птицы. Не иначе как канадские гуси.

В этот момент странные звуки приблизились вплотную, и программиста А. обогнали двое весело беседующих индусов. Они приветливо кивнули программисту А. и быстро ушли вперед.

Гуси вы мои канадские… — подумал программист А. — Нет, ну надо же, наградил бог языком.

0100000

— Все-таки это замечательно — знать и уметь использовать законы Мерфи, — думал программист А. — Чувствуешь себя готовым ко всему. Вот сейчас, например, я собираюсь распечатать свое резюме в двадцати экземплярах. Конечно, я бы по понятным причинам не хотел, чтобы кто-нибудь здесь, на работе, знал, что я вожусь со своим резюме. Однако, применяя основной закон Мерфи, гласящий, что если неприятность может случиться, она случится, к данной ситуации, можно с легкостью предсказать, что произойдет в следующие несколько минут. Я отправлю 20 копий на печать и побегу к принтеру, чтобы поскорее забрать распечатки. Распечаток там не будет, потому что с принтером что-нибудь произойдет, что-нибудь такое, что я сам не смогу исправить, например, кончится тонер, или очень глубоко заест бумагу. Тогда я побегу обратно к компьютеру, чтобы отменить печать, но выяснится, что документ уже отправлен на принтер, и отменить печать нельзя. Тогда я снова побегу к принтеру чтобы сбросить его память, но, конечно, кнопки Reset или какого-либо очевидного способа сделать это не будет. Я вернусь к компьютеру в надежде на интернете найти, как сбрасывается память у этой модели принтера. Но как только я запущу браузер, прибежит мой менеджер, спросит, что это я делаю и сообщит, что есть серьезная проблема и необходимо срочно собраться на митинг, чтобы ее обсудить. Следующие два часа я проведу на митинге. Тем временем кому-нибудь понадобится распечатать кулинарный рецепт. Он обнаружит, что принтер не работает и, не долго думая, позвонит в службу поддержки. В службу же поддержки недавно приняли молодого начинающего специалиста, который полон энтузиазма. Его менеджер уже устал от его усердия и использует любую возможность, чтобы отослать его куда-нибудь. По этой причине не пройдет и двадцати минут, как начинающий товарищ из службы поддержки будет ковыряться в принтере. Первое, что сделает принтер после включения — выплюнет двадцать копий моего резюме, выполненных в Microsoft Word с присущим мне эстетическим вкусом. Товарищ очень удивится, но отнесется к распечатке с подобающим уважением — он аккуратно положит ее на самое видное место в комнате, чтобы никто не мог пройти мимо, не взглянув. Таким образом, когда я вернусь с митинга, факт моей работы с резюме будет широко известен вкупе со всеми другими фактами моей профессиональной карьеры. И поскольку я знаю, что так все и будет, я к этому готов, и ничто не выбьет меня из колеи.

Программист А. задал 20 копий и нажал на кнопку OK. В статусной строке Word промелькнула иконка принтера с вылезающей из него бумагой и исчезла. А. пошел к принтеру. Распечатки не было, вместо этого на панели принтера монотонно мигала красная лампочка, под которой было написано Error.

— Вот ведь бл$%#&во! — все-таки не удержался и сказал программист А.

0100001

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

Я наткнулся на следы пепелищ в песчанной пустыне,

Которые издали казались татуировкой на теле.

И я вдруг понял, что это остатки жилища прекрасной Лейлы,

Чье племя вновь кочует по песчанным волнам.

Я сошел с верблюда и склонился на пепелищем, плача.

Друзья молча стояли вокруг меня, опустив головы.

Шатер взорвался аплодисментами и одобрительными возгласами. Сосед по скамейке возбужденно ткнул программиста А. локтем в бок и прокричал:

— Эк завернул, а?

На постамент вышел второй поэт, солидно откашлялся и прочитал:

Следы пепелищ, как черные жемчужины в ожерелье ночи,

Напомнили мне о прекрасной Лейле.

Ее племя снялось с насиженного места,

Чтобы разлучить меня с моей любимой.

Друзья сошли с верблюдов и сказали мне:

Зачем зря горевать, прошедшего не воротишь.

Вновь загремели аплодисменты. Довольный поэт, раскланиваясь, сошел с постамента.

— Нет, ну что ты скажешь, каково?! — продолжал тыкать программиста А. в бок сосед.

Третий поэт вышел на постамент. Толпа затихла в ожидании. Поэт многозначительно обвел сидящих перед ним глазами и прочитал:

Следы пепелищ в пустыне черным полукругом,

Как капкан, защелкнулись на моей памяти и не отпускают.

Сижу и плачу над ними, вспоминая Лейлу,

Жемчуг ее зубов и рубин ее губ.

Ее племя кочует теперь далеко на севере,

И друзья, сойдя с верблюдов, не знают, чем меня утешить.

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

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

Аплодисменты и крики постепенно затихли и поэт прочитал:

Кочуя, наткнулся на следы пепелищ на песке,

Словно буквы прощального послания, выведенные углем.

Еще недавно здесь стоял шатер Лейлы, моей любимой,

Куда она тайком проводила меня под покровом ночи.

Сижу и плачу, не в силах прочитать, и не в силах оторваться.

Будь воином, сказали мне друзья, верблюды застоялись.

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

0100010

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

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

— Зато у нас пиво хорошее, — сказал программист А.

Они чокнулись бокалами с Sam Adams Summer Ale, и приятель продолжал:

— А какие там общественные парки, ты себе не представляешь!. Огромные, прямо в центре города, зеленые, все цветет, чистые, везде игровые площадки для детей, скамеечки, мусорные бачки красного цвета. Просто замечательные парки. Гораздо лучше чем здесь!

— Зато у нас пиво хорошее, — сказал программист А.

Они опять чокнулись бокалами и пригубили пива. На большом плоском экране телевизора в углу показывали баскетбол, Boston Celtics выигрывали у Indiana Pacer 59:56.

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

— Зато у нас пиво хорошее, — сказал программист А, и они пригубили еще пива.

— А сколько там людей на улицах гуляет, толпы целые! — рассказывал приятель. — Поздно вечером, когда заканчиваются спектакли в театральном квартале, на улице просто не протолкнешься. Веселье, кутерьма, народ сидит на ступеньках и пьет пиво. Жизнь бьет ключем! Гораздо веселее там на улицах, чем здесь.

— Ну, зато у нас пиво хорошее, — сказал программист А.

— Кстати, насчет пива… — неуверенно сказал приятель и смущенно посмотрел на А. — Пиво, вообще-то, там тоже хорошее. Гораздо лучше чем здесь…

— Зато у нас пив… — начал говорить программист А, но осекся и с удивлением уставился на приятеля.

Приятель виновато развел руками. Игра по телевизору закончилась, Celtics проиграли 88:93. Было уже поздно, и бар опустел. Приятели расплатились с усталым барменом и вышли на огромную безлюдную парковку у местного молла. Пронизывающий ветер раскачивал фонари, бросавшие призрачный свет на несколько одиноких машин. Изменяющиеся тени бессмысленно скользили по размеченному асфальту парковки. Кроме них двоих, вокруг не было видно ни души. Они распрощались, и каждый пошел к своей машине.

А все-таки, мне здесь нравится, — думал програмист А., ведя машину домой по пустынным неосвещенным улицам провинциального города. — По крайней мере, у нас пиво хорошее.

Что-то было не так с этим выводом, но думать не хотелось.

0100011

Dark They were, And Golden Eyed…

(RayBradbury)

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

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

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

Но однажды ночью она проснулась от странного чувства. Он не спал и смотрел на нее.

— Ты кричала во сне, — сказал он.

— Мне снился сон, — ответила она, напрягая память, чтобы удержать ускользающие детали. — Это был мужчина, программист… Очень странного вида…

— Да? И что же в нем было странного? — с недоверием спросил он.

— Глаза… У него были серые глаза. И светлые волосы, — медленно произнесла она.

— Разве такое бывает? — удивился он. — Знаешь, наверно, тебе нужен отдых. Думаю, ты могла бы взять несколько дней отпуска.

— И я тестировала его код, — продолжала она, не обращая внимания на его слова.

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

— И в нем были ошибки, — почти шептала она. — Непонятные ошибки, совершенно необъяснимые ошибки. И они были в самых неожиданных местах. И…

Она замолчала. Он неуверенно смотрел на нее. Она провела рукой по глазам.

— И я не знала, что делать! — выдохнула она. — Это было так неожиданно. И необычно…

— И что же было дальше? — стараясь придать голосу безразличное выражение, спросил он.

— Я не знала, что делать, — сказала она. — Я даже не знала, в чем именно были эти ошибки. Я совершенно не понимала, как их можно будет исправить. Это было так не похоже на твои ошибки. С твоими ошибками всегда все так просто и ясно… А здесь — казалось, что человек, написавший этот код, совершенно не думал о том, что пишет. Ни разу не просмотрел свой собственный код… Даже не протестировал его…. Разве такое возможно? И я пошла в его рабочую комнату, чтобы с ним посоветоваться…

— И что? — спросил он напряженно.

— Я сказала ему о том, что я нашла. И он посмотрел на меня своими серыми глазами, и улыбнулся. И сказал…

Она смотрела перед собой, вспоминая детали сна.

— Что он сказал? — спросил он почти раздраженно.

— Он сказал, что у меня красивые золотые глаза…

— Ну хватит! — неожиданно резко перебил он. — Завтра же возьмешь отпуск.

Она молчала. Он встал и пошел на кухню выпить стакан воды.

***

— Ну что за народ! — ругался про себя программист А. на следующий день. — Двенадцать ошибок в моем коде! Уж в последний день перед отпуском могла бы расслабиться! А глаза у нее действительно ничего…

0100100

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

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

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

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

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

0100101

Программист А. не пошел на общий митинг, заявив, что у него очень много работы. Сам же уселся поудобнее на своем рабочем месте, положил ноги на стол и принялся читать компьютерный журнал. Привычно пробежав первые страницы с рекламой, его взгляд задержался на статье, сообщавшей о новом приобретении компании IBM — фирмы Holomorfix. В статье кратко рассказывалось об этой фирме. Сразу после выхода на рынок в 1999 году, акции Holomorfix подскочили до 17 долларов. Затем упали до 7 и далее медленно и монотонно поднимались до настоящего уровня в 27 долларов. Как сообщалось в статье, после объявления сделки акции резко подскочили до 39 долларов за штуку.

Программист А. перевел взгляд в окно и мечтательно задумался. Вот если бы у него было хотя бы 10,000 акций Holomorfix! Если бы все их сейчас продать, это составило бы 390,000 долларов! Но постойте!.. А что, если бы он покупал их с самого начала, скажем, по такой схеме — две тысячи каждый год, в 1999 году по $7, в 2000 году по $12, в 2001 году соответственно по $17, в 2002 году по $22 и, наконец, последние 2,000 акций в этом году до объявления сделки по $27 за штуку. Конечно, пришлось бы потуже затянуть ремень, но дело того бы стоило! Ведь сейчас… У него захватило дыхание. Да ведь сейчас это было бы $220,000 чистейшей прибыли!!!

Некоторое время программист А. сидел неподвижно, уставившись невидящим взглядом в гору Вачусетт на горизонте, совершенно завороженный. Затем вздохнул, мысленно развел руками и опять принялся читать журнал. Нет, ну как же так получилось, что он заранее обо всем этом не подумал? Ведь мог бы догадаться, почувствовать как-то перспективность, что ли! Жаль…

0100110

Был вечер пятницы. Программист А. уже сорок минут крутился в центре Бостона в поисках парковки, но находил только знаки с большими черными буквами ‘NO PARKING’. Прямо под некоторыми из них как ни в чем не бывало были припаркованы машины, и это было обиднее всего.

— Все дело в мелком шрифте! — возмущенно думал А. — Большими-то буквами написано NO PARKING, а ниже, мелким шрифтом, дописано что-нибудь вроде "Кроме пятниц". Но если заранее этого не знаешь, то как прочитать этот мелкий шрифт из машины?

Вдруг он увидел свободное место и знак над ним, уверенно гласящий крупными буквами: “PARKING AFTER 6PM”.

— Ну так это же совсем другое дело! — обрадовался программист А. Он быстро взглянул на часы, было без пяти минут шесть. А. ловко припарковал машину и ушел.

Когда он вернулся спустя два часа, под дворником на лобовом стекле флуоресцентным оранжевым светом мерцал штрафной квиток. Программист А. вытащил квиток и непонимающе посмотрел на него. Потом поднял глаза и посмотрел на знак. На знаке мелкими буквами было написано: “Кроме пятниц”.

0100111

Программиста А. спросили:

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

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

0101000

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

— Осторожнее надо быть с этими форумами, — думал он вечером за бокалом Sam Adams Summer Ale в местном баре. — Если бы вовремя не ушел, пожалуй, и навешали бы.

0101001

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

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

Через 10 минут программист А. сидел в местном баре и пил Harpoon IPA, закусывая Buffalo chicken fingers. Играла музыка, работали телевизоры и было весело. Однако через какое-то время бар опустел, музыка умолкла, телевизоры погасли и пива больше не наливали.

— Жизнь опять перетекла, — заключил А. и поехал домой.

0101010

Программист А. зашел в местную забегаловку под названием Joe’s Place. Был понедельник, около двенадцати ночи, и ему почему-то не хватило пары бутылок пива, оставшихся в его холодильнике от выходных. Беременная барменша доброжелательно посмотрела на него и сказала:

— Последняя на сегодня, дорогуша.

— Что? — не понял А.

— Без трех минут двенадцать, — объяснила она. — Распоряжение городского совета. После двенадцати не наливать.

— А, — сказал программист А. — Ну все равно. Последняя так последняя.

— Что это будет? — спросила барменша.

— Что будет? — удивился А., не разобравшись, к чему относился вопрос. — Да кто ж его знает, что будет! Строго говоря, мы даже не всегда знаем, что было. Иногда сидишь и думаешь — а было ли это на самом деле? Иногда наоборот, ты уверен, что что-то было, а этого не было. Для прошлого у нас, по крайней мере, есть память, но даже и с ним мы не можем толком разобраться, что же говорить о будущем, против которого мы совсем безоружны? Нет, определенно, никто не знает, что будет…

Барменша удивленно смотрела на А. широко открытыми глазами. Часы пробили полночь. В этот вечер А. остался без пива.

0101011

Теплым апрельским вечером программист А. возвращался с работы. Остановившись на красный свет светофора, он опустил водительское окно и с удовольствием вдохнул весенний воздух, в котором уже чувствовался пыльный привкус лета. В наступивших сумерках все вокруг казалось окрашенным в разные оттенки темно-синего. А. откинулся на сиденье и прислушался к радио. “I shot the sheriff but I didn’t shoot no deputy", — пел Эрик Клэптон.

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

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

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

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

Программист А. печально вздохнул и стал сворачивать на обочину.

0101100

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

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

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

В отчаянии программист А. решил попробовать обратную последовательность: сначала напиться, а потом начать собирать вещи. Однако, и это не помогло.

0101101

Она не приходила. Если бы она пришла, события обязательно сложились бы сами собой в стройную цепочку, ведущую к желанному результату. Если бы она пришла, программист А. смог бы наконец вздохнуть свободно и подумать о чем-нибудь другом. Может быть даже заняться делами, упаковать коробки или оплатить счета. Если бы она пришла, можно было бы просто выйти из дома, пройтись по улице, бесцельно разглядывая окрестности и кивая редким встречным прохожим. Если бы она пришла, можно было бы поехать на озеро и побродить в сосновом лесу. Если бы она пришла, можно было бы доехать до его любимого бара и выпить там кружечку Sam Adams в компании незнакомцев. Если бы она пришла, он снова мог бы читать и понимать прочитанное, смотреть телевизор, слушать музыку, решать задачи, писать рассказы, говорить по телефону, мыть посуду, читать форум, разговаривать с друзьями, спать, в конце концов! Если бы только она пришла…

Уже третий час подряд программист А. раскладывал пасьянс Solitaire, сгорбившись перед монитором и уставившись в него воспаленными глазами. Все, что ему было нужно сейчас — это красная дама, любая красная дама, безразлично какой масти, лишь бы красная дама, лишь бы она пришла, но она не приходила. Так обычно и бывает…

0101110

Программист А. перевернул страницу старинного китайского учебника по боевым искусствам, внимательно рассмотрел изображение двух дерущихся людей и прочитал: “Этот человек словно звонит в колокольчик, он проиграет. Этот человек как будто отмахивается от насекомого, он победит.” “Хм…” — подумал программист А. и перевел взгляд на соседнюю страницу, тоже изображавшую дерущихся людей, но уже в других позах. На этой странице было написано: “Этот человек имитирует движение белой обезьяны, он проиграет. Этот человек как будто поднимает предмет с земли, он победит.” “Ага…” — подумал программист А. и перешел к следующей странице. Подпись под рисунком гласила: “Этот человек словно рисует кистью, он проиграет. Этот человек как будто переступает через камень, он победит.”

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

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

— Все-таки мудрые люди эти китайцы, — удовлетворенно подумал программист А.

Он поправил подушку под головой, устроился поудобнее на диване, подоткнул под себя одеяло и снова углубился в чтение. Тренировка продолжалась.

0101111

Программист А. в задумчивости стоял на мосту над US Highway 93 и смотрел вниз на пролетающие под ним машины. Сверху машины казались маленькими космическими кораблями, быстро и плавно скользящими над дорогой на своих воздушных подушечках. Как всегда, стоя на этом мосту, А. раздумывал о людской отчужденности. Сотни людей едут по одной и той же дороге, в одном и том же направлении, но как далеки они друг от друга, и насколько друг другу безразличны. А жизнь — не та же ли самая дорога, года словно выходы, только мы заранее не знаем, на каком сойдем? На 36-ом? На 48-ом?

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

— Наверно, и они, видя одиноко стоящего на мосту человека, задумываются, отчего это он там стоит один, и о чем размышляет… — подумал программист А.

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

— А может, и не задумываются, — сказал сам себе А.

Ему стало гораздо веселее, он встрепенулся и пошел по своим делам.

0110000

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

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

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

— Ну что молчишь, облезлый хвост? — ехидно продолжал А. — Чего делать-то будешь против такой несправедливости?

— А чего мне делать-то? — ответила белка. — Ты на себя-то в зеркало давно смотрел?

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

— А впрочем, чему тут удивляться, — подумал он. — Права ведь белка-то.

0110001

Программист А. решил заняться обустройством квартиры. Определенных идей у него не было, поэтому он просто поехал в Lowe’s, надеясь на вдохновение.

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

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

— Тогда куплю себе новую штору для ванной, — подумал он и направился в соответствующий отдел.

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

— Что же это такое… — подумал он, пытаясь взять себя в руки. — Ну хорошо, куплю что-нибудь простое. Гвоздей! Гвозди всегда могут пригодиться…

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

— Тоже мне, страна безграничных возможностей! — ворчал он про себя немного спустя, сидя с кружкой холодного Dos Equis в баре мексиканского кафе On the Border по соседству с Lowe’s. — Обыкновенных гвоздей купить невозможно! Это какая-то страна безграничных невозможностей получается.

0110010

Программист А. вошел в полутемный бар и направился к свободному месту у стойки.

— Is this seat taken? — спросил он у большого человека с длинной шевелюрой, беспорядочно выбивавшейся из-под бейсбольной кепки Red Sox, сидевшего на соседней табуретке.

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

— Whoa, whoa, pal! What’s up with this accent of yours? Are you from Missouri?

На этом глаза его потускнели и закрылись, голова медленно опустилась на стойку, и он захрапел. Программист А. плюхнулся на табуретку и сделал бармену знак.

— Вот ведь! — думал программист А. — Учишь, учишь этот английский язык, ходишь в специальную школу, потом — университет, потом живешь в Америке черт знает сколько, а какой результат?! Are you from Missouri???

Он с неприязнью посмотрел на храпящего соседа. Бармен поставил перед А. кружку Geary’s Pale Ale.

— Сам ты из Миссури! — с чувством сказал программист А. по-русски и принялся за пиво.

0110011

— Люди — как марионетки, — думал программист А., сидя на скамейке у озера. — Мысль не новая, но почему-то обычно принято считать, что нити уходят вверх, в руки высшего режиссера. Это не так. На самом деле, нити от всех частей тела каждой из этих марионеток идут не вверх, а к разным частям тела других таких же марионеток. И весь мир, как паутиной, опутан этими невидимыми нитями, беспорядочно связывающими разных людей. И вот, получается, что когда кто-то двигает рукой, у кого-то совершенно случайного, кто с ним связан, дергается нога, у третьего, кто случайно связан с вторым — голова, у четверного — еще какое-нибудь место, и так далее. Таким образом, действия одних неожиданно вызывают движения других…

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

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

0110100

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

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

— Надо будет поставить новые галоши на валенки, — размышлял программист А., потягивая густой горячий напиток и наслаждаясь разливающимся изнутри теплом. — Эти уже совсем износились. Только вот будет ли еще снег? Неужели, опять зимнюю резину ставить…

Его взгляд упал на настенный календарь, показывающий 10 июня.

— Да… — подумал программист А. — Что ни говори, длинная в этом году зима. Даже для Новой Англии длинная.

0110101

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

Программист А. зажег гирлянды и потушил свет. Комната погрузилась в мигающий разноцветный сумрак. Сев за стол, он откупорил шампанское, наполнил бокал и взглянул в светящийся голубым светом экран телевизора. Играла поставленная им кассета с “Иронией судьбы”. Ну что ж, будем… — подумал программист А. и пригубил шампанское. До Нового Года оставалось 114 дней.

0110110

— Странно, — подумал мозг. — Этот последний блок данных явно имеет противоречивую информацию в заголовке. Так, посмотрим… Насколько я помню формат заголовка, первые два байта — это внутренний идентификационный номер сообщения. Ну, тут проблем нет, если он, конечно, уникален. Потом — 512 байт — имя блока данных, по два байта на символ, из-за китайцев приходится использовать юникод, чтоб его… Так, что там дальше? Пошли указатели на разные области памяти. Ага, вот оно! Указатель на область событий прошлого. Вот тут-то, похоже, и проблема. Если этот указатель ненулевой, а в данном случае он ненулевой, то дата в соответствующем поле в конце заголовка должна отвечать определенному событию в прошлом. Так… Смотрим на дату… Так и есть! Дата-то сегодняшняя! Как будто это происходит прямо сейчас… Противоречие получается. И как же мне прикажете идентифицировать это событие?

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

— А, собственно, чего я мучаюсь, и без того работы полно! — подумал мозг. — Прошлое, будущее — какая, к черту, разница! Указатель ненулевой, ну пусть и идет… по указателю.

И мозг уверенно направил данные в область событий прошлого.

— Déjà vu, — подумал программист А.