Еще одна привычная концепция, которой нет в OLPC – иерархическая файловая система. Роль файлов играют "объекты", а вместо файловой системы имеется "журнал", в котором записываются основные их изменения. Сохранение и восстановление состояний в идеале происходит автоматически при запуске и завершении «активности» [И снова что-то подобное мы уже видели у Раскина]. Если же нужно запомнить текущую версию объекта, но при этом продолжить его изменение (аналог функции "сохранить как"), на помощь приходит встроенная система управления версиями, знакомая программистам и участникам вики-проектов.
Дети любят разбирать игрушки. (Это предложение я припас еще несколько лет назад как раз для статьи об использовании свободного софта в образовании. Думаю, сейчас самый подходящий момент.) Посмотреть, что находится внутри, и попытаться понять, как она устроена и почему работает так, а не иначе. То же желание движет хакером, изучающим код неизвестной системы, ученым, пытающимся понять окружающий мир, или писателем, рассказывающим о переживаниях людей. Наверное, это один из основных инстинктов мыслящего существа.
Один из девизов OLPC – "низкие полы и никаких потолков". С одной стороны, система должна быть максимально простой, чтобы быть доступной для полностью самостоятельного освоения ребенком с нуля, а с другой – эта простота не должна служить препятствием для раскрытия возможностей устройства и талантов ее владельца. Пятилетнему пользователю вряд ли захочется учить три тысячи команд Unix и читать многие страницы документации, но уже десятилетнему, возможно, захочется разобраться в том, как работает эта система и чего он может достичь с ее помощью.
"Прозрачность" системы – еще один ключевой пункт философии всего проекта. Конечно, открытые исходные коды – необходимое условие, однако одного лишь open source здесь мало. Требуется создать инфраструктуру, максимально упрощающую изучение и модификацию кода.
Такую инфраструктуру обеспечивает специальная Developer-activity, представляющая собой полноценную среду разработки новых видов деятельности. Большинство компонентов XO написаны на языке Python, по мнению многих экспертов являющемся одним из лучших кандидатов на роль первого «серьезного» языка программирования. Юный хакер может модифицировать любую готовую «активность» или даже организовать совместную разработку по всем правилам open source (с патчами, контролем версий и т. д.), а также использовать приемы экстремального программирования благодаря функциям совместного редактирования кода в реальном времени (эта возможность присутствует и в обычном текстовом редакторе, основанном на AbiWord).
Впрочем, вся эта деятельность доступна скорее достаточно продвинутым пользователям, нежели начинающим – разбираться в реальном коде реальных приложений – нетривиальная задача даже для людей, уже владеющих базовыми навыками программирования.
Получить же их можно с помощью «активности» eToys – визуальной среды разработки мультимедийных приложений. Основанная на языке Squeak (вариации легендарного Smalltalk) и созданная специально для обучения программированию, эта система позволяет максимально интуитивным способом создавать и модифицировать интерактивные "книги", объединяя и настраивая различные объекты, управляемые скриптами.
Многие вещи, о которых я рассказал выше (и те, которые не поместились в формат этого краткого обзора), пока не реализованы в коде и остаются скорее концепциями, либо реализованы не до конца (трехсоткилобайтный документ, описывающий пользовательский интерфейс системы, доступен на wiki.laptop.org). Посмотреть «вживую» мне удалось только на eToys и, отчасти, на зуммируемый рабочий стол (не слишком функциональный на одиночном компьютере, не включенном в беспроводную сеть с другими подобными устройствами). Однако это не самое главное. Как писал Джереми Эллисон (Jeremy Allison) в статье для ZDnet, "даже если OLPC потерпит неудачу, он существенно повлияет на компьютерный ландшафт". Идеи, заложенные в его основу, стоят того, чтобы их реализовали. И они будут реализованы. В рамках этого проекта или другого, через полгода или десять лет – уже не столь важно.
ГОСТИНАЯ: Парадоксы систематики
Автор: Дмитрий Шабанов
Первое дело первого человека до сих пор не доделано. Адам, по свидетельству Библии, до грехопадения (определившего необходимость добывать хлеб насущный в поте лица своего) придумывал имена для животных. Ныне поименовано более миллиона видов, а очередь безымянных все еще скрывается за горизонтом. Классифицирование названных видов позволяет разобраться в миллионе имен и сделать информацию об их сходстве и различии более компактной.
Систематики до сих пор спорят, существует ли единая, правильная классификация. Оптимисты верят, что это та классификация, которая точно отражает филогению – эволюционную историю. Вот узнаем с помощью молекулярных методов, как шла эволюция, и поставим все на свои места… Увы, эволюционные изменения многомерны, и, проецируя их на иерархическую систему, мы неизбежно теряем значительную часть информации. Какую? Ту, которую сочтем менее важной. Считаете, что «объективными» методами можно определить, какая часть информации наиболее важна? Оставьте эти иллюзии!
Интерпретируйте, к примеру, такой факт. С тех пор как разошлись эволюционные пути человека и шимпанзе, человек приобрел 154 новых гена, а наши «отсталые» родственники шимпанзе – 233! Как измерить и сравнить эти изменения? По числу генов? По длине последовательностей ДНК? По изменению образа жизни? Одна из влиятельных школ систематики говорит: если изменение видов нельзя оценить "объективно", то его не следует учитывать вообще и реконструировать надо лишь порядок ветвления эволюционного древа. Страусово решение: зачем нужна классификация, которая не учитывает основной результат эволюции – изменение видов?
С другой стороны, сложности в трактовке каких-то результатов не означают, что эти результаты бесполезны. Зачастую родство (или его отсутствие) разных групп организмов, устанавливаемое молекулярными методами, оказывается столь явным, что приходится менять устоявшуюся классификацию.
Орнитологи давно выделили две группы грифов: Старого Света (собственно грифов) и Нового Света (катартид). Хотя было ясно, что эти группы не находятся в тесном родстве, результаты анализа ДНК оказались неожиданными. Американские грифы – это на самом деле аистообразные. К их числу относятся и современные кондоры, и самые крупные из когда-либо летавших птиц. Речь идет о тераторнисах ("ужасных птицах"), "грифах", которые в неогеновом периоде питались останками гигантских млекопитающих. У одного из них, аргентависа, размах крыльев достигал 7 м, а вес 120 кг! Помните, в "Детях капитана Гранта" Жюля Верна кондор похитил и утащил по воздуху мальчика? Реальные кондоры на такие подвиги не способны. Но в нашем фольклоре европейские аисты носят детей в клювах (держа за пеленочку), а американские – в когтях!
Новейшие молекулярные данные касаются примитивных групп крылатых насекомых. Выяснилось, что термитов надо не выделять в особый отряд, а рассматривать как семейство отряда тараканов. Неважно, что по сложности социальной организации термиты обогнали всех животных, кроме людей. Социальное совершенство термитов – следствие их способности расщеплять целлюлозу, основу древесины. В кишечниках термитов живет сложный эндосимбиотический комплекс. Его основу составляют высокоспециализированные жгутиконосцы (которых долго считали инфузориями, так как под микроскопом кажется, что они покрыты множеством подвижных ресничек, как инфузории). То, что считалось ресничками, оказалось спирохетами – удлиненными бактериями, способными извиваться. Населяющие кишечник термита спирохеты выстраиваются на поверхности жгутиконосца, синхронизируют свои движения и перемещаются вместе с ним, как единое целое. Жгутиконосцы сами по себе не могут расщеплять целлюлозу, но внутри них обитают симбиотические бактерии, овладевшие этой реакцией. Заглатывая маленькие щепочки, жгутиконосцы скармливают их своим внутренним бактериям, а продуктами переработки делятся с обеспечивающими их подвижность спирохетами. Ну а термиты питаются как продуктами активности своего внутреннего зоопарка, так и его питомцами.