– Курва! – воскликнула Линда, когда я пересказал ей ситуацию. – Нельзя это так оставлять! Только что звонила Глория, они с Лео закончили все дела в Лос-Анджелесе и готовятся переехать в Эль-Серрито, поближе к своим клиентам. К нам и группе. Собираются открыть адвокатский кабинет. Подай на Стерлинга в суд!
Ох ты ж моя прелесть. Сколько решимости. Очень многие девушки особенно хороши в гневе, яркие эмоции как будто подсвечивают их изнутри.
– Сэм утверждает, что это не сработает, но я поговорю с Лео. Обязательно. Мне в любом случае нужно будет посоветоваться с ним по поводу того, что я собираюсь сделать и закрепить за собой авторство юридически.
– Крис, а что ты собираешься сделать?
– Растоптать одного жадного пендехо.
О Лунная призма, дай мне пофигизма! Внутри меня всё так и клокотало. Хотелось взорваться и кого-нибудь ударить. Не дома, безусловно. Мне срочно нужен файтинг! Внутри игры агрессию выплескивать и безопаснее, и продуктивнее. Увы, Мортал Комбат на технологиях нынешней пещерной эпохи невозможен. И как жаль, что до рабочего билда “Темпл ран 2” еще месяцы труда. Спокойствие, только спокойствие, как говорило одно привидение с мотором.
От выплеска эмоций спасли обнимашки. Линда тоже вся дрожала от возмущения, но наши вибрации погасили друг друга, а затем перешли в что-то более интересное и приятное, пусть и все еще чуточку незаконное. Отпустило нас нескоро, к тому моменту кое-то слегка спину мне расцарапал острыми коготками. И это я не про кошку.
– Так что ты собираешься сделать? – прозвучал повторный вопрос, когда нас обоих уже отпустило.
– Мне этот алгоритм ничего не стоил и выгоду от него я получать не планировал, но позволишь себя безнаказанно ограбить один раз – и каждый начнет считать тебя левасом, чей труд легко присвоить. Для начала я познакомлюсь с профессором Стерлингом. “Знай своего врага” – говорил Сунь Цзы. Второе, о чем размышляю – написать свою статью и отправить в мейнстримовые журналы. В Байт, Compute!, Электроник Геймс. Быстро ее не напечатают, но я попрошу указать дату моего обращения. Уважаемый профессор ворует материалы из популярных изданий – это скандал. Жаль, я идиото и заранее про что-то подобное не подумал.
– Может быть, посоветоваться с Рокки… Возняком, – предложила Линда.
– Я знаю, что он посоветует. Не концентрироваться на обиде и придумать что-то новое, более крутое. Так и собираюсь сделать. Третья часть плана моей мести в том, что я пойду на конференцию и задам профессору несколько вопросов о его понимании быстрой сортировки. Пусть покажет, чего он стоит. У меня есть парочка серьезных улучшений для алгоритма. Жаль, запатентовать их не позволят. Но, как минимум, свою их реализацию я в патентное ведомство отправлю.
Ночь прошла, настало утро ясное. Солнце взошло и разогнало мои мрачные мысли. Никакой катастрофы ведь. Просто очередная легкая зуботычина от судьбы, чтобы не расслаблялся. Сколько раз мне еще нужно попасть в неприятности, чтобы не забывать истину с советского пропагандистского плаката “Не болтай”?
Очень кстати с улицы послышался шум автомобильного двигателя. Несколько раз радостно гавкнул Дюке, приветствуя “своих”. Удивительно, как я научился на слух различать интонации собачьего лая.
Из угловатого Бьюика вышел Лео и по-джентльменски открыл дверь для Глории. Я аж умилился тому, как парикмахерша выдрессировала адвоката.
– Вот и мы, ребята, – с широкой улыбкой поздоровался Больцман. – Новый этап жизни. Больцман и партнеры захватывают север штата.
– Лео, у меня уже есть работа для тебя.
Вместо приветствия я вывалил на юриста и его помощницу всю ситуацию с плагиатом.
– Мой совет тебе не понравится, пацан. Забей и живи дальше, – предложил адвокат, – у нас нет никакой аргументации. Профессор скажет, что его так восхитил твой алгоритм, что он решил рассказать о нем миру. Он же нигде не присваивает себе авторство. Кроме как авторства статьи, написанной не тобой. Я верно понял?
– Вопрос принципа, – надулся я несколько по-детски. – Хочу утереть вору нос. У меня есть гибридный алгоритм, работающий лучше.
Интросорт – стабильный и современный промышленный стандарт, использующий на разных этапах своей работы быструю, пирамидальную и сортировку вставками. Если уж джулайсорт заметным событием оказался, то августасорт ее затмит… или линдасорт? Для совершенного автомобиля название в честь идеальной девушки. А если дюкесорт? Все же невеста у меня скромница, а питбуль заслужил благодарность.
– Пацан, не умничай. Для нормального человека вроде меня “гибридный алгоритм” звучит примерно так же, как световой меч или бластер. Спокойно и без суеты готовь описание того, что ты придумал. Мы запатентуем. Верховный суд США запретил патентование алгоритмов, но мы подадим заявку на методику упорядочивания данных в компьютере. Главное – подать не как голую математику, а как рабочий физический процесс. Готов заплатить поверенному?
– Скорее всего.
Еще вчера я бы ответил решительное “да”, но сегодня пара тысяч баксов за патент начала казаться мне аргументом. И моё согласие прозвучало неуверенным. Хотя… не корову проигрываю. Если получится, то лицензирование интросорта, использующего сразу три вида сортировки, сможет меня долго еще кормить. Или нет. Патентный троллинг – штука мерзкая, да еще и желающие через суд доказать, что речь идет об алгоритме, наверняка найдутся.
– Тогда готовь документацию, пацан. Миссис Флорес, нам пора. Агент по недвижимости пообещал показать нам дом, подходящий и как жилище, и как рабочее место.
Глория, о чем-то тихонько болталавшая с Линдой, кивнула и “Больцман и Флорес” уехали.
И, несмотря на то, что меня вроде как отпустило, я сел в лоурайдер и поехал в универсисет – в гости к Аластеру Кроуфорду, прихватив текст “Мы выпьем кровь”, дабы порадовать старика.
Принял доктор литературы меня почти сразу, едва Селеста доложила, кто хочет его видеть.
– Я слышал, вы записались на занятия к Джулиану Макмахону. Я очень далек от его нынешнего курса, но вам будет полезным узнать разные стороны творчества, – начал беседу профессор. – В ранние годы Джулиан писал отличные театральные пьесы, пока не увлекся кинематографом.
– Он называл вас своим другом, сэр.
– Так и есть. Я оказал его таланту некоторую протекцию и помог устроиться на кафедре.
– Не взглянете на мои новые стихи? Не перебарщиваю ли я с поднятыми темами?
Профессор вчитался. Поначалу с легким скепсисом, но постепенно выражение лица менялось, а брови ползли вверх.
– Вижу, вы развернулись от южной готики в сторону классики Брэма Стокера. Это чистейший готический ужас на стыке божественного и инфернального! – воскликнул он. – Это Данте, спускающийся в Бездну, это падение Люцифера у Милтона! Аллюзии на крестовые походы – это же гениальная игра с теологическим концептом транссубстанциации!
Мне прямо неловко стало. Я в ворованной песне никакой транс… чего-то там не замечал. Да сомневаюсь, что и сами Повервульф вкладывали в крутую композицию о вампирах что-то сильно большее. Хотя, может быть, и ошибаюсь. Очень многие музыканты получили отличное гуманитарное образование.
– И вы отдадите прекрасную готическую поэму вашим друзьям рокерам, юноша? – с укоризной взглянул на меня профессор.
– Уже отдал, сэр. Извините, но я писал текст специально для них. Вам стоит познакомиться с ребятами. Но вообще-то я по иному поводу. Академическая среда ведь компактна. Что скажете о докторе Брендоне Стерлинге? У меня с ним наметились трения.
– Поэтам вроде вас нечего делать в технарском болоте, мальчик мой. Зачем вы растрачиваете себя на бездушные железки, обладая литературным даром? Публично критиковать коллегу – верх неэтичности. Однако я сообщу вам немного общеизвестных фактов – существует отдельная порода академиков, которым важна не чистая наука, а денежные гранты. В технологической среде такие встречаются чаще всего. У мистера Стерлинга с Беркли пожизненный контракт и университетская бюрократия будет защищать его до последнего. Воздержитесь от любых споров с ним. Ни одна жалоба от человека без академического статуса не возымеет действия. Пишите лучше стихи.
– Подумаю об этом, сэр.
Попрощавшись с литератором и Селестой, получившей копию “Мы выпьем кровь”, я отправился в Эванс Холл – взглянуть на антагониста лично.
– Сэм, привет, – отыскал я аспиранта Гарланда, примерно представляя, где он ведет занятия.
– Привет. Отошел после вчерашнего стресса? – хлопнул он меня по плечу. – Я подал заявление на перевод. Завтра у вас лекцию по Си придет читать другой преподаватель. Есть шанс, что сам мистер Стерлинг, если замену не найдут.
– Сэм, а где мне его найти? Профессор Стерлинг читает какие-то лекции сам? – “Знай своего врага”. Сунь-Цзы ерунду советовать не стал бы. А потому, прежде чем идти и задавать каверзные вопросы, следует посмотреть, насколько вообще хорош оппонент, как оратор. Своего аспиранта он морально задавить смог легко, почти до истерики довел.
– Через пару часов у него лекция по эффективному распределению памяти в Кори Холл, аудитория 135, вход свободный. Да, еще – знакомые принесли мне программу стэнфордской конференции. Прямо перед Стерлингом выступает сам Дональд Кнут. Ты ведь знаешь, кто это?
– Все знают. Высказывание “Преждевременная оптимизация – корень всех зол” – буквально мой девиз. Теперь я обязан там побывать.
Если что, Кнут не предлагал писать неоптимальный код. Он призывал разумно распределять человеческие ресурсы программиста.
Невозможно заниматься компьютерами и не познакомиться с, опять это слово, легендарным Кнутом. Он без малого создал современную информатику, автор монументального труда “Искусство программирования”, обладатель премии Тьюринга, один из авторов алгоритма поиска по тексту, через который и в 2026 работает Ctrl-F, создатель типографской программы TeX, из которой потом вырос LaTeX, ставший стандартом для ученых, а количество его математических открытий неизмеримо. О великий Ктулху, если Стерлинг завтра извинится и конфликт себя исчерпает – я всё равно обязан пойти на конференцию и увидеть одного из величайших людей столетия в расцвете сил. Без малейшего сарказма! А может, мне стоит в Стэнфорд поступить и в ученики к Дональду Эрвиновичу записаться?
Но боюсь, совсем разные у нас жизненные ценности окажутся. Я – неплохой практик, Кнут – один из величайших теоретиков. Нет, не крутился в академической элите – нечего и начинать. Но увидеть легенду и, может быть, заполучить его знаменитый в узких кругах чек на $2.56 хочется. Великий математик свои чеки за найденные ошибки и опечатки в его книгах раздаёт. Скорее всего, услышав про игры, он сочтет их баловством и в мягкой форме предложит мне повзрослеть.
При помощи карты на информационном стенде и добрых людей отыскал тот самый Кори Холл – внешне я бы его с российской поликлиникой сравнил. Четырехэтажное здание с рублеными формами.
Найдя заранее нужную аудиторию, я не стал терять время и набросал на листочке черновик дюкесорта. Увы, компилятора Си в голове у меня нет, и даже линтер не установлен, но вроде как все правильно написал, с переключением на пирамидальную сортировку, когда рекурсия залезла слишком глубоко, и на упорядочивание вставками для маленьких хвостовых массивов. Доберусь до компа – наберу и испытаю, и техническое описалово сделаю.
К началу занятия аудитория заполнилась приличными юношами из хороших семей – в том смысле, что белыми с примесью парочки азиатов. Никаких женщин и латиноамериканских каналий. В мою сторону смотрели с удивлением, но претензий никто не высказал и то неплохо.
Последним явился лектор и закрыл входную дверь на задвижку. Он думает, что это он студентов с собой запер. А на самом деле наоборот, себя со мной.
– Опоздавшие, как обычно, не допускаются. Записывайте…
Голос у Стерлинга оказался скрипучим, прокуренным. Собственно, он, никого не стесняясь, задымил прямо во время лекции, стряхивая пепел в пепельницу. Особенно пристально я препода взглядом не сверлил, но к концу академического часа рассмотрел хорошо. Невысокий, плотный, но не толстый, с бульдожьими щеками и сохранивший удивительно много аккуратно зачесанных на пробор волос, совершенно седых. Одет в безупречную серую тройку.
Материал наглый похититель интеллектуальной собственности читал банальный и скучный. И я даже не придираюсь потому что он мне не нравится. На самом деле скучный.
Память надо экономить. Не экономить память не надо. Кучу – пространство динамической памяти – нужно беречь от внешней фрагментации. Не беречь кучу от фрагментации нельзя. Cборщик мусора – академическую блажь мы оставим для ленивых фантазеров. За утечки памяти положены расстрел и порицание.
И оратором бульдог Стерлинг оказался плохим. Я придираюсь, но даже в мистере Джонсоне с его красной угрозой имелись энергия и харизма. Общеизвестно ведь, что выступление лучше начинать с шутки, как и заканчивать. Ни единой попытки понравиться аудитории. Если бы не личное неприязненное отношение к докладчику, я бы на его выступлении захрапел.
– Хорошо запомните сегодняшнюю лекцию, материал будет в билетах на экзамене.
И ушел по-английски, не прощаясь. Тут я, пожалуй, с ним даже солидарен. Необходимость пожать руку каждому коллеге в офисе, когда уходишь домой, меня всегда раздражала. А пропустишь кого – всё, проявил неуважение, вы больше не друзья.
Больше у меня дел в Кори Холле и вообще кампусе не оставалось. Ну разве что Рокки найти и позвать посмотреть на Кнута. Мне кажется, Воз оценит выступление великого математика. Но потом, не сейчас, а сейчас я хочу убедиться, что все правильно придумал.
Из крыла, где парни устроили себе репетиционную, уже звучали аккорды “Мы выпьем кровь”. Пока не очень мощно, даже робко, но узнаваемо. И что особенно приятно, к привычным гитаре, барабанам и синтезатору звук Коммодора прибавился – такой, вопиюще электронный бас, пока не особенно красивый. Но с каждой итерацией он становился чуточку лучше. Освоить новый инструмент не так просто, у Томми еще долгий путь.
Линда рисовала векторную эротику, Бренда просчитывала очередной показатель виртуальной экономики, Монти на занятиях в университете. Идиллия.
– Ну, какие новости? – взволнованно спросила моя девушка, оторвавшись от планшета, точно такого же, как у Роберты Уильямс, между прочим. Ее прелесть.
– Отличные. Перед выступлением Стерлинга я смогу взять автограф Дональда Кнута.
– Кого? – переспросили обе девушки сразу.
Стена непонимания. Пришлось устроить небольшую лекцию о величии человека, сравнившего программирование с поэзией и придумавшего современный подход к оценке эффективности алгоритмов.
А далее я сел за комп, открыл редактор кода и выпал из реальности. Остались только я, Си и два в шестнадцатой способов отстрелить себе конечности. Вынырнул из состояния потока, когда за окном уже стемнело, Бренда ушла домой, а Линда принесла мне на ужин макарошки, приготовленные Селестой. Раминь!
Но зарелизить сам алгоритм и убедиться, что он не производительней обычного квиксорта – половина дела. Нужно подготовить тесты, множество тестов, доказывающих, что дюкесорт абсолютно стабилен на любых данных и не сваливается в бесконечную рекурсию там, где джулайсорт поднимает лапки кверху, например, на предварительно отсортированном массиве.
Ночь, она опять звала меня. Я попросту не засну, пока не покрою код тестами и не убежусь, что всё работает, как задумано, на разных наборах данных, подходящих под критичные случаи. Ктулху, может быть, и спит, а мне некогда.