C 22:00 до 02:00 ведутся технические работы, сайт доступен только для чтения, добавление новых материалов и управление страницами временно отключено

Проект

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

© Шолом-Алейхем "Менахем-Мендл. Повесть в письмах"

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

Поначалу, я утешал себя тем, что работа на Mac'е усилит мои позиции, как специалиста. SCSI, dual monitor, виртуальная память, одноранговая сеть, какие-то совсем новые для меня приложения: Photoshop, AppleScript... Но новизна вскоре приелась. Ограничения стали раздражать.Навязчивое желание системы знать за меня, что мне лучше - чем открывать файлы или запрещать редактировать то, что мне хочется, стало бесить.

Я скучал по монопольному режиму DOS, где мог бесконтрольно вмешиваться во все: память, диск, прерывания. Все мелкие хакерские задачки я решал на домашнем PC, Mac оставался "компьютером для работы": финансовые отчеты, базы данных, редкие вылазки в сеть на BBS'ки и недавно ставший доступным Internet.

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

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

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

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

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

А вот добираться до работы мне было удобно: всего одним автобусом из Кфар-Сабы. И когда фирма съехала в Рамат-Ган, разумеется, опять в подвал - дела шли все хуже и хуже, времени и денег на дорогу у меня стало уходить существенно больше.

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

Много-много раз попадалась мне то тут, то там по дороге живописная парочка, вылитые "Лиса Алиса и Кот Базилио". Оба весьма потасканные - и в одежде, и на рожу. У него при себе баян, у нее микрофон с усилителем. Голос у нее был совершенно испитый. Распевали они что-то народное. Не знаю, как подавали, но раз я оказался с ними в одном автобусе, мужик был уже пьян "в зюзю" и непрерывно хвастал какими-то накоплениями на квартиру, чуть ли не трехкомнатную. Жена его непрестанно одергивала. Уставшие, не понимающие русского, соседи по салону брезгливо морщились.

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

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

Когда из фирмы стали разбегаться менеджеры, и остались только Ронен и Муса, я понял, что и мне пора "делать ноги". Наша фирма выступала дилером Claris и босс требовал от меня ведения всей отчетности в FileMaker. Я решил, что это неплохая идея - завести в FileMaker'е базу работодателей. В основу я решил положить список Dun - добытый как-то Мусой компакт-диск с базой ведущих компаний экспортеров.

Программа была защищена аппаратным ключом от Aladdin, а базы зашифрованы. Муса покрутил диск несколько дней в руках и бросил, за бесполезностью. Меня задача заинтересовала: большой объем данных и хорошо известная структура .DBF-файлов позволяли на что-то надеяться. Попялившись несколько дней в Hex-редактор, я пришел к выводу, что там банальный XOR. Оставалось только выяснить гамму. Недели две ушло на подбор размера ключа.

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

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

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

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

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

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

Иногда, однако, не все было так просто. Например, данные были зашифрованы. Или база не предусматривала экспорта. Или еще что... Шифрование, по счастью, обычно было самодельным и не слишком стойким: атакой по plaintext'у удавалось взломать его за вечер или чуть больше.

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

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

А в тот памятный раз, работа оказалась совсем необычной. Клиента нашел Шай. Какая-то личная договоренность. Долго ковырялся в одиночку, разумеется, безуспешно. В общем, я ввязался в это дело. Частная аптека в Ход-ха-Шароне. Старая DOS'овская база данных, Turbo Pascal.

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

Я предположил, что дата будет храниться в стандартном для DOS формате FileTime,  а сумма будет либо float, либо double. Тупо стал искать Hex-редактором в дампе базы. На удивление, все нашлось. Почти не веря в удачу, всю праздничную неделю с короткими перерывами на сон я просидел за разбором формата базы. Вытащил все, вплоть до статистики за год.

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

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

Интервью оказалось для меня провальным. Почти на все вопросы Анатолия я ответил "Нет": с Windows не знаком, DOS, Novell, Mac. Из баз данных ничего серьезного - древние Fox, Clipper, опять же 4th Dimension и FileMaker. C++ - почти нет опыта и, опять же, только на Mac - Symantec Think C++.

Собственно, на этот проект меня и брали на Макинтош, хотя я ничего не знал ни про Mac, ни про C++. Условием было за две недели освоить и то и другое. К тому времени, я уже более полугода безуспешно пытался сменить работу - и немедленно согласился. Многие вещи оказались для меня внове.

Например, я почти не имел опыта работы с мышью и ничего не знал про mouse double click. Однокнопочная мышь поначалу ставила меня в тупик.

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

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

- У меня все работало. - Елена была настроена агрессивно. - А какой версией компилятора вы собираете? Я бросил взгляд на желтые коробки в шкафу - Шестой. - А надо - седьмой. И положила трубку.

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

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

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

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

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

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

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


Рецензии