Код Любви
Глава 1
- Док, это к тебе! - Лена с улыбкой пригласила в мой кабинет высокого голубоглазого мужчину.
Я укоризненно посмотрел на неё, ведь все уже давно знали мою "любовь" к общению с клиентами. Получить этот кабинет в самом дальнем конце, свести к минимуму участие в социальном взаимодействии и работать только над интересными задачами, неужели я хочу так много? Или она обиделась на шутку с 32-ым августа в документации? А ведь я просто хотел подарить ей ещё один летний день.
- Здравствуйте! - широко улыбнулся мужчина, - меня зовут Михаил.
- Я Док, чем могу помочь? - пока клиент не вызывал желания снизойти до упоминания моего мирского имени.
- Скажите, Вы верите в Бога?
Всё понятно. Решили пошутить, направив ко мне очередного свидетеля непорочного зачатия. Сейчас наверное стоят под дверью и давятся от смеха. Ну что ж, подыграем.
- Разумеется! Приличные люди должны верить в дедушку... Ну в общем Бога. - Я сделал самое невинное выражение лица, мысленно приготовившись выслушать лекцию о спасении души. И пусть эти тролли под дверью умрут от скуки!
- Как я рад встретить понимающего программиста! - Михаил просто засиял. - Мне нужно разработать священную систему полоскового кода, поможете?
- Какую-какую систему?! - непривычное сочетание привычных слов как-то выбило меня из колеи. Свидетели так не говорят, это какой-то... городской сумасшедший?
- Ну вы же наверняка знаете эти истории про полосковый код ЕАN-13 и три шестёрки? Мы пытались выйти из ситуации при помощи КуАр-кодов, но после этой истории с простудой - у них тоже нехорошая слава, а нам очень важно, чтобы у используемой технологии не было негатива. Мы же как-никак... - Михаил ощутимо запнулся, - духовная организация.
Нет, на сумасшедшего тоже не очень похож. Какой-то специалист по делопроизводству из духовенства? Уже любопытно, но не спрашивать же напрямую.
- И какой должна быть эта священная - я сделал паузу, прислушиваясь к ощущению от сочетания слов, - система?
- О, всё довольно просто, она должна быть выстроена на символе 888 - числе Иисуса Христа, всячески приветствуются тройки, восьмёрки, ну и знаете... - Михаил на секунду задумался, - пусть она ещё выражает свободу воли человека!
Видя мой слегка обалдевший взгляд, Михаил добавил - ну чтобы не была квадратной, зажатой в эти унылые рамки, люди так устали от этого. Пусть она будет живой, свободной, пусть в ней будет любовь!
Он хочет оцифровать любовь?! Я что-то совсем завис от такой постановки вопроса. Этот разговор не влезал ни в какие ворота, но меня начали вытаскивать профессиональные привычки и я задал несколько уточняющих вопросов о степени защиты и помехостойкости. Мы говорили ещё минут двадцать, из которых я уяснил, что технические характеристики Михаила если и интересуют, то очень слабо. Главное 3, 8, свобода и любовь. Желательно всё сделать за неделю, у них там какое-то мероприятие.
Вопросы закончились и я погрузился в мысли...
- Да, и по оплате, этого хватит? - отвлёк внимание Михаил, и выложил на стол толстую пачку денег.
- Это, пожалуйста, в бухгалтерию! - я на махнул рукой в сторону отдела, где занимались финансами.
- Нет, нет, это лично вам! - улыбнулся Михаил, - и в бухгалтерию я тоже зайду, большое вам спасибо!
Лёгкость, с которой он расстался с деньгами, снова повергла меня в сомнения относительно корпоративной принадлежности Михаила, но я снова ничего не спросил. Клиент ушёл и я остался в кабинете один, наедине с мыслями о невозможной системе. Да, Лена не ошиблась, это действительно ко мне. За время работы, я зарекомендовал себя как специалист по решению невозможных задач и в отделе это уважали, не беспокоя меня по пустякам. Но похоже, что это как раз тот случай... господин Груздь, изволите подать кузов?
Искать творческие решения в четырёх стенах явно не стоило, похоже тут требовался полный комплекс мероприятий для вдохновения - прогулка, купание, сон, домашняя уборка. К утру следующего дня я уже примерно представлял с чего начать, разбив задачу на две части.
Первая - простая, закодировать данные в последовательность чисел, выбрав в качестве базы восьмеричную систему счисления. Таким образом, я решал поставленную Михаилом задачу "в лоб", положив в основу системы восьмёрку. А восьмёрка - это три бита информации, или два в третьей степени - вот вам и тройка. Ну а каждый отдельный символ пусть кодируется тремя "восьмёрками", итого девять бит.
Компьютеру, конечно, привычнее иметь дело с восемью или шестнадцатью, ну тогда пусть будет восемь, плюс один - контрольный, указывает на чётность суммы предыдущих бит. Защита от ошибки слабенькая, пятьдесят на пятьдесят, но всё же есть. Как в том анекдоте про блондинку - или встречу, или нет.
Набросав примерный код, я довольно быстро добился перекодировки текстовых строк, где отдельный символ кодировался тремя цифрами в восьмеричной системе. "Hello world!" - выдал компьютер, сопроводив каждый символ соответствующей цепочкой сначала шестнадцатеричных, потом бинарных с контрольным символом и наконец восьмеричных значений.
Внимательно осмотрев полученный результат и убедившись, что всё правильно - я дописал к словам обычного приветствия миру «Jesus loves you», программа безошибочно закодировала и это.
Итоговую строку я разбил на три части (снова тройка, Михаил будет доволен!), первая цифра обозначала тип кодировки, кроме основной «нулевой» можно было сделать ещё 7 дополнительных.
Ноль в начале строки означал, что среднюю часть с данными надо было интерпретировать как обычный восьмибитный код с одним контрольным битом. А последний символ был контрольной суммой всей строки, дополнительно прикрывая целостность данных.
Полюбовавшись чёткой работой первой части системы, я погонял её разными тестами и после небольших доработок отложил в сторону. Теперь предстояла вторая часть, в которой должны быть свобода, любовь, вселенная, единство и всё такое. Мой взгляд упёрся в монитор, ища ответы где-то за ним.
Глава 2
Прошло уже два дня, но никаких дельных мыслей не было. Я листал документацию по QR-кодам, вертя в голове так и эдак возможные визуальные представления «свободы выбора». Это же не граффити какое-то в конце-то концов! Нет, ну как он сам себе это представляет?
Ощущение было такое, что часть «специалистов» в моей голове в открытую утверждала, что это невозможно, но часть продолжала размышлять над задачей. Я даже затащил в ванну доску для рисования маркером и заметил как прошло время только когда вода остыла. Кое-как вытершись, я выглянул в окно. Собирался дождь, но прогулка не была сейчас вопросом свободного выбора, это просто моя работа.
С дождём не ошибся, первые капли коснулись земли всего через несколько минут после выхода из дома, пришлось заскочить в ближайшую кафешку. Ничего не хотелось, но для приличия я заказал капучино и уселся за стойку, пытаясь увидеть хоть что-то в рисунке салфетки. Говорят, многие великие идеи рождались на салфетках. Идея, ты где? Ты мне сегодня так нужна.
— В кофе добавить что-то? — улыбнулась бариста.
— Да, любовь… — как-то непроизвольно вырвалось у меня. Хотя обычно я прошу с корицей.
— Без проблем! — ещё шире улыбнулась бариста и одним лёгким движением руки нарисовала на стаканчике сердечко, а затем поставила его на мою салфетку.
Вот оно! Краткий миг пустоты ума, когда тобой на мгновение открывается сокровищница Истины, в которой есть абсолютно всё, но ты получаешь только то зачем пришёл и тут же снова оказываешься на Земле с её обыденными вопросами и делами.
— Без сдачи! — Я шлёпнул на стойку первую же попавшуюся под руку крупную купюру, схватил свой капучино и едва на зацепив дверь, влетел в завесу набиравшего силу ливня. Дом был совсем рядом, но вымок до нитки. Мокрую одежду пришлось сбрасывать с себя прямо на пути к компьютеру и если бы моя личная жизнь была хоть кому-то интересна — он мог бы подумать, что я вернулся с ну очень нетерпеливой девушкой.
Но то, что я нёс в себе сейчас — было намного лучше! Оцифрованный образ любви!
Квадратная салфетка, разложенная по швам делится на четыре ровные части. На одной из них стоит стаканчик, эта часть — любовь сама по себе, вездесущая, присутствующая во всём, даже в нулевом символе.
А оставшиеся три квадранта — это как раз три бита данных, чтобы закодировать число восьмеричной системы. К тому же три квадранта салфетки сами по себе напоминают сердце, и самое главное… — у меня слегка закружилась голова от этой идеи, — благодаря тому, что «нулевая точка» присутствует в каждом графическом элементе — у нас есть полная свобода на их размещение, хоть в шахматном порядке, или даже… — мой взгляд снова упал на «счастливый стаканчик», — ну конечно же сердце.
Я вошёл в глубину кода как пловец, ныряющий с вышки, без брызг и без единой лишней мысли. Сейчас, строго говоря, меня даже нет, а моё тело и сознание — лишь проводник для пришедшей и распакованной идеи. Звучит странно, но это так здорово, когда тебя «нет».
Только в такие моменты можно понять, насколько всё-таки человек враг самому себе. Как мы мучаем себя, то думая о прошлом, которое нельзя изменить. Или волнуемся за будущее, над которым не властны. Как зажатая между рамами окна птица, бьёмся о эти две прозрачные стены, теряя истинную силу настоящего момента — здесь и сейчас.
Когда я наконец оторвал взгляд от монитора — за окном было уже темно. Я отправился в ванную за халатом, собирая брошенную по пути одежду. А с экрана на меня смотрело цифровое, закодированное в восьмерично-тройственной системе сердце.
Hello World! Jesus loves you
Очертания были вполне узнаваемы, но если бы больше данных — была бы лучше детализация. Пальцы сами потянулись к клавиатуре, продолжив строку, «and the path, and the forest, and every spikelet in the field.». Картинка на экране моргнула и сердце стало гораздо объёмнее и красивее. Как же это точно отражает суть человека! Чем больше всего в нашем сердце — тем оно прекраснее!
Но сердце было лишь одной из возможных форм, отправной точкой. Я начал экспериментировать с формой, сначала придав восьмеричному коду очертания парящего орла…
…а закончил глубоко за полночь стихами Пушкина в форме силуэта самого Александра Сергеевича. Опция «свобода и индивидуальность» — выполнено!
Весь следующий день ушёл на написание декодера, отладку и оптимизацию кода, а также на написание необходимой документации — чувствовал, что Михаилу она пригодится. Теперь я работал в приятном и расслабленном режиме, как художник, который лишь дополняет лёгкими штрихами уже почти завершённую работу.
Михаил пришёл вовремя и я с гордостью и некоторым волнением вручил ему флэшку с программой и папку с бумагами. Всё таки не каждый день сдаёшь в работу систему, заявленную как «священную». Лицо клиента осветилось улыбкой, когда он увидел примеры графических изображений и спецификации. Мне на секунду показалось, что даже в комнате стало как-то светлее.
— Это именно то, что нужно! Огромное вам спасибо! — поблагодарил Михаил, потратив пару минут на чтение документации. К моему удивлению, вопросов не возникло, хотя ведь сам же старался расписать как можно понятнее.
— Я сегодня немного спешу, но надолго не прощаюсь. Думаю, у нас ещё будут совместные проекты, Док! — Клиент крепко пожал мне руку и вышел из кабинета.
Когда дверь закрылась, я увидел лёгкую вспышку света между дверью и полом. Опять лампочка сгорела что-ли? Там же теперь темно как у… в общем, очень темно, не зря же кабинет в самом дальнем углу выбрал. Но когда я вышел, чтобы помочь Михаилу — лампочка была в порядке, а за дверью никого не оказалось.
Вернувшись за стол, я обнаружил на нём ещё две пачки денег, хотя никак не мог вспомнить, чтобы Михаил их доставал. Что-то совсем рассеянный становлюсь, надо бы заканчивать с этими ночными посиделками. Себя надо любить, проектов много, а я один.
Спасибо за чтение
Вернуться к книге
