Читаем Творческий отбор полностью

До того, как я приступил к проекту редактирования в WebKit, я думал, что благодаря этим правилам, все будет работать примерно так, как, в общем, и должна работать обработка текста. И я был уверен, что замечу, если какое-то из этих правил перестанет работать — например, почему выровненный по левому краю текст вдруг стал неровным слева? Да, умом я эти правила не понимал. Теперь, когда мне предстояло превратить функцию WebKit в полноценный текстовый редактор, я больше не мог позволить себе роскошь опираться на интуитивные ощущения при наборе и редактировании электронных писем. Я должен был стать экспертом, знающим все тонкости текстовых редакторов. По этой теме не существует учебников для программистов, поэтому мне приходилось проводить эксперименты, чтобы выяснять, что и как работает. Мне нужно было сжиться с буквой и духом всех этих правил, простых и сложных. Я потратил много времени, прощупывая различные текстовые редакторы: Microsoft Word, Apple Mail и BBEdit — редактор, который я использовал для того, чтобы писать программы. Я проверял, «прокликивал», набирал текст, щелкал мышью. Постепенно я узнал и о других правилах, и о том, как написать код, чтобы обеспечить их выполнение. Сделав это, я попал в тупик.

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

У программистов для подобных проблем есть свое название. Мы позаимствовали его из квантовой механики, от имени Вернера Гейзенберга, который вывел принцип неопределенности. Мои проблемы с курсором назывались «гейзенбагами»[23]. И их исправление оказалось самой трудной задачей в программировании, с какой мне когда-либо приходилось сталкиваться.

Чтобы дать полное техническое объяснение этих проблем, я сражался с кодом, заставляя его показывать правильный видимый результат. Мне нужно было описать формат веб-страниц HTML (Hypertext Markup Language, язык гипертекстовой разметки), а также понятные лишь посвященным вещи, такие, как древовидные структуры объектной модели документа, алгоритмы обхода бинарного дерева и многое другое. Проведем аналогию. Представьте себе следующую ситуацию.

Клиент приходит в кондитерскую, чтобы для него испекли торт по индивидуальному заказу. Он говорит: «Я хочу торт с надписью: „С днем рождения!“, а ниже — „Том“».

Как эти люди (клиент и исполнитель заказа) могут убедиться, что поняли друг друга правильно? Это станет еще труднее, если я уберу необходимые знаки препинания и заглавные буквы, чтобы ближе передать ощущения двух людей, разговаривающих друг с другом:

«Я хочу торт с надписью с днем рождения а ниже том».

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

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

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



Перейти на страницу:

Все книги серии Цифровые империи

Похожие книги

Ведьмак. История франшизы. От фэнтези до культовой игровой саги
Ведьмак. История франшизы. От фэнтези до культовой игровой саги

С момента выхода первой части на ПК серия игр «Ведьмак» стала настоящим международным явлением. По мнению многих игроков, CD Projekt RED дерзко потеснила более авторитетные студии вроде BioWare или Obsidian Entertainment. Да, «Ведьмак» совершил невозможное: эстетика, лор, саундтрек и отсылки к восточноевропейскому фольклору нашли большой отклик в сердцах даже западных игроков, а Геральт из Ривии приобрел невероятную популярность по всему миру.Эта книга – история триумфа CD Projekt и «Ведьмака», основанная на статьях, документах и интервью, некоторые из которых существуют только на польском языке, а часть и вовсе не публиковалась ранее.В формате PDF A4 сохранен издательский макет книги.

Рафаэль Люка

Хобби и ремесла / Зарубежная компьютерная, околокомпьютерная литература / Зарубежная прикладная литература / Дом и досуг
Справочник по параметрам BIOS
Справочник по параметрам BIOS

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

Адриан Вонг

Зарубежная компьютерная, околокомпьютерная литература