Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Just for fun

leave a comment »

Щось я дуже часто не доводжу справи до кінця. Видно danbst на мене погано впливає 😛 . Мені ще 100 екранів до кінця “Історії західної філософії”, мені ще 100 сторінок до кінця “Міфічного людино-місяця” Фредеріка Брукса, а я тут не знати як натрапив на книжку Лінуса Торвальдса “Just for fun”, і вже дочитав до середини. Видно мене щось зачепило. Навіть більше ніж в “Хакерах, героях комп’ютерної революції”. Певне тому що Лінус не настільки бородатий як Столлман. Але вже спати хочу. Тому залишу ще половину до завтра. Думаю вона буде там де я її залишив 🙂

І ще, випишу деякі куски з думками, які надихають на свої думки, чи просто цікаві, для тих кому лінь буде читати всю книжку:

Цікаве й нецікаве програмування

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

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

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

Я был очень горд.

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

Гра в Бога

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

А со стороны кажется — нет на свете ничего скучнее.

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

Это само по себе интересно.

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

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

Возможно, я оскорбил этими словами около половины населения Земли.

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

Сначала я просто хотел узнать, как работает компьютер. И меня страшно
обрадовало, что тут — как и в математике — можно построить собственный мир
со своими законами. В физике тебя ограничивают уже существующие законы. А в
математике, как и в программировании, годится все, что непротиворечиво.
Внешняя логика не накладывает на математику никаких ограничений — все
должно быть логично само по себе. Как знает всякий математик, можно
установить набор правил, по которым три плюс три равняется двум. По существу
можно делать все, что хочешь, важно только по мере усложнения системы
тщательно следить, чтобы не создавать ничего, противоречащего уже
построенному миру. Чтобы твой мир был прекрасен, он не должен содержать
изъянов. Точно так же и в программировании.

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

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

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

Як доводити справи до кінця

К концу 1991-го я был уже готов остановиться. Я сделал много интересных
вещей. Не все работало идеально, но в программистском мире люди часто теряют
интерес к проекту, когда решены основные задачи. Со мной примерно так и
было. Кому интересно вылавливать блох? Удержали меня две вещи: во-первых, я
нечаянно запортил раздел с Minix, а во-вторых, мне продолжали приходить
отклики.

В те времена я загружался в Linux, но использовал Minix как основную
среду разработки. Под Linux я в основном получал с университетского
компьютера почту и новости с помощью своей программы эмуляции терминала.
Поскольку университетская машина была постоянно занята, я написал программу
автодозвона. Но в декабре я по ошибке позвонил вместо модема на винчестер.
Вместо параметра auto-dial /dev/ttyl (последовательный интерфейс) я указал
/dev/hdal (винчестер). В итоге я нечаянно попортил некоторые важные части
раздела, где у меня сидела Minix. Теперь я не мог ее загружать.

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

Скромність

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

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

Дівчата, тобто дівчина

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

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

Курс был совершенно элементарный. Шла осень 1993-го, Интернет еще не
был популярен, поэтому однажды я задал на дом послать мне сообщение по
мейлу. Сегодня это звучит по-идиотски, но я сказал: “Домашнее задание:
пошлите мне e-mail”.

Другие студенты прислали просто тестовые сообщения или какие-то
замечания о занятиях. Туве пригласила меня на свидание.

Я женился на первой же женщине, которая обратилась ко мне по мейлу.

Наше первое свидание так и не кончилось. Туве была дошкольным педагогом
и шестикратным чемпионом Финляндии по карате, она выросла в нормальной
семье, хотя так я называю любую семью, которая не похожа на нашу чокнутую
семейку. У нее было много друзей. Я сразу понял, что именно эта женщина мне
нужна. (Подробности пропущу.) Через несколько месяцев мы с моим котом Ранди
переехали в ее крошечную квартирку.

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

Advertisements

Written by bunyk

Листопад 14, 2010 at 02:42

Оприлюднено в Передруки

Tagged with , ,

Залишити відповідь

Заповніть поля нижче або авторизуйтесь клікнувши по іконці

Лого WordPress.com

Ви коментуєте, використовуючи свій обліковий запис WordPress.com. Log Out / Змінити )

Twitter picture

Ви коментуєте, використовуючи свій обліковий запис Twitter. Log Out / Змінити )

Facebook photo

Ви коментуєте, використовуючи свій обліковий запис Facebook. Log Out / Змінити )

Google+ photo

Ви коментуєте, використовуючи свій обліковий запис Google+. Log Out / Змінити )

З’єднання з %s

%d блогерам подобається це: