Brave GNU World -- Выпуск #29
Copyright © 2001 Georg C. F. Greve <greve@gnu.org>
Расположение оригинала: http://www.gnu.org/brave-gnu-world/issue-29.en.html
Перевод на русский язык: Павел В. Ступин (Кобальт) cobalt@linux.ru.net
Добро пожаловать в очередной выпуск Brave GNU World. В этот раз мы рассмотрим достаточно широкий спектр приложений, которые вряд ли являются необходимыми для повседневной работы большинства людей, однако с которым вам наверняка будет интересно познакомиться.

GCompris

GCompris [5] от Bruno Coudoin сравнительно недавно присоединился к проекту GNU, заняв свое место в разделе "Свободное ПО и образование".

Известно, что дети много учатся через игру, в связи с чем много программ пытаются обучать детей в игровой форме. К сожалению, эти программы, как правило, являются патентованными. Заполнения вакуума образовательного ПО является целью GCompris.

Сама программа основывается на понятии игровых столов (где происходят настольные игры). Бруно рассматривает игровой стол как фундамент для представления или изучения какого-то понятия. Целью является не столько дать ребенку глубокие знания, сколько дать ему базовое понимание в игровой форме.

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

Чтобы избежать этого, у GCompris есть две принципиально важные части: движок для создания, изменения и запуска игровых столов, а также коллекция игровых столов для разных понятий.

Движок написан на C с использование GNOME-библиотек и имеет очень простой пользовательский интерфейс, который был разработан специально для детей. Программа переведена на 7 языков и с успехом используется в школах и дома по всему миру. Для Бруно это значит очень много, и это также весьма примечательно, учитывая, что возраст программы всего один год.

Бруно еще не удовлетворен тем, как выполнена графическая часть GCompris, но теперь Linuxgraphics [6] возьмется за это. Если вы заинтересованы поучаствовать в разработке графической части, то обращайтесь к этим ребятам.

Следующей задачей в разработке программы будет программирование редактора игровых столов, которым бы могли пользоваться даже неграмотные (в смысле использования компьютера) люди. На сегодняшний день игровые столы написаны на C в виде плагинов с использованием XML для хранения данных, что, однако, чересчур сложно для понимания некоторых преподавателей. Помощь в разработке легкого в использовании редактора приветствуется.

Но даже несмотря на то, что редактор еще не готов, уже есть несколько игровых столов. Среди них есть тренажеры для обучения пользованием клавиатурой и мышью, для умения определять время по часам, собирушки (puzzle) с использованием знаменитых картин, а также для изучения основ арифметики.

Ради простоты для реализации игровых столов используется только GNOME-класс -- canvas. Его расширение для использования новых элементов управления является задачей будущего.

Название этой французской программы звучит как "j'ai compris", что означает "Я понял!". Первоначально программа была написана Бруно для его детей. Он очень благодарен своим детям за их терпение, потому программа развивалась необыкновенно медленно по их меркам.

FSFE - Free Software and Education

Продолжая тематику предыдущего обзора, я бы хотел заметить, что организация Free Software Foundation Europe [7] официально объявила о поддержки инициативы Свободное ПО в образовании, сделав эту поддержку одной из своих главных целей в этом году.

Эта цель преследуется наряду с программой "Organization for Free Software in Education and Teaching" (Ofset) (Организация по продвижению Свободного ПО в образовании и преподавании [8], которая недавно официально вошла в состав европейского подразделения Фонда Свободного ПО (FSF Europe).

Для того, чтобы объединить все инициативы, людей и организации, связанные с данным направлением, был создан специальный список рассылки [9, 10]. На список уже подписалось несколько человек, которые успели познакомиться друг с другом. Следующим шагом будет организация встречи всех участников рассылки.

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

Chemical Development Kit

Этот обзор является в своем роде продолжением рассказа о "Jude" из выпуска #27 [11], где читателям был представлен проект Jude, используемый в научной лаборатории Crystal Engineering Laboratory в городе Ciamician. Эта лаборатория является подразделением университета Болоньи (Италия). В том прошлом рассказе не была затронута тема использования ПО в химии. Сегодня я восполняю этот пробел.

Я не только расскажу о проекте Chemical Development Kit (CDK) [12], но также и о таких проектах, как [13] и JChemPaint [14], чьи мэйнтейнеры Christoph Steinbeck и Dan Gezelter начали CDK вместе с Egon Willighagen около полугода назад.

Chemical Development Kit (CDK) - это Java-библиотека, чьей целью является обеспечение программистов всеми базовыми классами и инструментами для разработки химического ПО. Библиотека выпущена под лицензией GPL (General Public License). Архитектура библиотеки частично базируется на наработках, которые Egon Willighagen написал, работая над библиотекой CompChem/CDK, у которой имелось несколько недостатков в API.

Сам проект находится еще на начальной стадии развития, поэтому не имеет смысла говорить об уже готовых классах и функциональности. С более подробной и более свежей информацией можно познакомиться, читая документация API на домашней странице CDK [12].

Jmol [13] по своему первичному замыслу является программой для простой и легкой трехмерной визуализации химических структур (в качестве альтернативы XMol). Планируется добавить функции редактирования молекул, элементарной минимализации, основанной на силовых полях (force-fields), молекулярной динамики (микроканонические структуры) и упрощенных моделей протеинов (langevin dynamics) [канонические структуры].

Jmol также базируется на Java и использует SWING для реализации графического пользовательского интерфейса. Как и CDK, программа выпущена под GPL. Большим преимуществом Java-приложений несомненно является их простое портирование. Также, Jmol может использоваться в качестве апплета в веб-страницах и позволяет создавать скрипты.

JChemPaint [14] - это двухмерный редактор химических структур, который задумывался в качестве 2D-расширения к Jmol. На сегодняшний день программа уже поддерживает большинство функций, которыми обладают коммерческие аналоги, и позволяет импортировать свой вывод в растровые изображения, файлы Postscript и SVG (Scalable Vector Graphics - масштабируемая векторная графика).

Как и предыдущие две программы, JChemPaint базируется на Java, но выпущен под лицензией GNU Lesser General Public License. JChemPaint так же приспособлен к портированию на другие платформы, как и Jmol и может использоваться в качестве апплета на веб-страницах.

Обе программы поддерживают язык разметки The Chemical Markup Language (CML) [15]

В перспективе, сделать так, чтобы Jmol и JChemPaint использовали CDK, а также интегрировать эти две программы.

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

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

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

Научное ПО должно всегда быть Свободным.

Alma

Guillaume Desnoix является автором проекта Alma [16]. За аббревиатурой Alma скрывается "Atelier Logiciel de Modelisation er d'Analyse," что означает "Среда для анализа и моделирования программного обеспечения".

Alma воспринимает информацию из различных источников (модели и исходный код), помогает пользователю создавать архитектуру и изменять объектно-ориентированную модель, модифицировать структуру и код, а также создавать на выходе новые продукты.

Это может быть проделано в целом ряде форматов. Alma поддерживает Java, Idl, XMI, C, C++, Fortran, Rose, MDL, Class, JavaP, Taglip, JSP в качестве входных форматов. Что касается вывода программы, то он может быть представлен в виде программного кода, документации, диаграмм или естественного языка.

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

Согласно Guillaume, особым преимуществом Alma является ее моделирование, имеющее уже в своем фундаменте полную совместимость с универсальными моделями, что позволяет беспрепятственно транслировать код с одного языка на другой. Существуют другие проекты для анализа, транслирования и форматирования исходного кода, но они обычно не предлагают четкой модели для мигрирования кода между двумя языками программирования.

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

Alma написана на Java 1.1 и работает практически на любой машине. Для работы можно использовать как консольный, так и графический интерфейсы. Консольная версия собирается даже с GCJ и может работать на Kaffe.

Сейчас новый релиз выходит примерно раз в месяц, добавляя 0.01 к номеру версии с каждым разом. Если развитие будет продолжаться такими же темпами, то к июлю 2006 года у нас уже будет версиия 1.0. Однако, заинтересованным разработчикам следует рискнуть и ознакомиться с проектом до этой даты.

Alma выпущена под лицензией GNU GPL Версии 2, так что это свободная программа. Обычно, программы выпускаются под GPL Версии 2 или более поздней (на усмотрение пользователей). Однако существуют и такие случаи, когда выбор ограничивается именно второй версией GNU GPL. На этом я остановлюсь подробней.

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

Если более поздняя версия GPL не принимается автором или пользователями, то программа тем не менее все еще может использоваться согласно условиям второй версии GPL, и юридически не существует обязательства пользоваться более поздней версией.

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

Так что ограничение на использование только второй версии не дает никаких преимуществ, зато создает потенциальные проблемы.

Нужно заметить кое-что еще в заключении данного обзора. Автор Alma очень рад, что так много людей понимают разницу между бесплатным пивом (free beer) и Свободным ПО (Free Software). На своей страничке он предлагает посетителям ответить на несколько вопросов и дает возможность приобрести программу за $10.

Платить за программу вовсе не обязательно, но автор просит пользователей заплатить сумму, если у них есть желание воспользоваться автоматизированными программами установки для различных платформ. Это одна из иллюстраций того, как можно "продать" GPL-ПО не нарушая GPL, и нам остается только надеяться на то, что такие примеры мини-оплаты скоро станут повседневной практикой.

libgcrypt

Благодаря работе Werner Koch у нас есть GPL-библиотека криптографических функций. Эта библиотека является частью проекта GNU Privacy Guard (GPG) Project, и ее можно найти на сайте этого проекта.

Что касается других криптографических библиотек, то они либо не-Свободны, либо выпущены под лицензиями, не совместимыми с GPL (например, OpenSSL). Так как большая часть Свободного ПО выпущена под GPL, то libgcrypt заполняет очень важную нишу.

Libgcrypt базируется на мощном фундаменте проекта GnuPG, поэтому криптографические рутины уже протестированы самым тщательным образом. Тем не менее статус проекта -- альфа-версия, потому что, согласно Вернеру, только совсем недавно удалось завершить разработку API.

Несмотря на это предупреждение, libgcrypt может использоваться (и используется!) уже сегодня. Nikos Mavroyanopoulos, который помогал Вернеру в разработке libgcrypt, использует ее в своей библиотеке GNUTLS, которая описывалась в выпуске #25 [18].

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

Библиотеку можно использовать на Unix-системах и платформе W32. В планы входят выпуск стабильного релиза и оптимизация архитектуры, а также добавление нескольких функций высокого уровня для работы со структурами данных OpenPGP. И, разумеется, на libgcrypt будет портирован GnuPG.

Вернер обращает внимание на то, что использование libgcrypt подразумевает определенные знания в области криптографии. Простое использование в программах набора алгоритмов не принесет ожидаемого эффекта, если архитектура программы имеет серьезные изъяны.

Учитывая склонность некоторых разработчиков к установке железных дверей в карточных домиках, это звучит как очень хороший совет.

увидимся

Отлично. Вот такой Brave GNU World получился в этом месяце. Как обычно, я только приветствую ваши комментарии. Идеи, критика и вопросы - присылайте все.

В отношении новых проектов, я бы хотел подчеркнуть важность читателей Brave GNU World. Очень часто какой-то интересный обзор - результат того, что они не поленились прислать письмо [1], когда наткнулись на тот или иной интересный проект.

Info
[1] Направляйте идеи, комментарии и вопросы на Brave GNU World <column@brave-gnu-world.org>
[2] GNU Project http://www.gnu.org/
[3] Georg's Brave GNU World http://brave-gnu-world.org
[4] Инициатива "We run GNU"http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] GCompris http://savannah.gnu.org/projects/gcompris
[6] Linuxgraphics http://www.linuxgraphic.org
[7] Free Software Foundation Europe http://fsfeurope.org
[8] Ofset http://www.ofset.org
[9] Список рассылки "Free Software and Education": <edu@fsfeurope.org>
[10] Сайт рассылки "Free Software and Education" http://mailman.fsfeurope.org/cgi-bin/mailman/listinfo/edu
[11] 27-ой выпуск Brave GNU World http://www.gnu.org/brave-gnu-world/issue-27.en.html
[12] Chemical Development Kit (CDK) http://cdk.sourceforge.net
[13] Jmol http://jmol.sourceforge.net
[14] JChemPaint http://jchempaint.sourceforge.net
[15] Chemical Markup Language http://www.xml-cml.org
[16] Alma home page http://www.memoire.com/guillaume-desnoix/alma/
[17] GNU Privacy Guard http://www.gnupg.org
[18] 25-ый выпуск Brave GNU World http://www.gnu.org/brave-gnu-world/issue-25.en.html

Пожайлуста, посылайте вопросы касательно FSF и GNU на gnu@gnu.org.
Также существуют другие способы связаться с FSF.

Пожайлуста, посылайте комментарии о колонке Georg's Brave GNU World на column@gnu.org,
а об этих страницах вообще на webmasters@www.gnu.org,
другие вопросы направляйте на gnu@gnu.org.

Copyright (C) 1999,2000 Georg C. F. Greve

Разрешение на распространение позволяет создавать и распространять буквальные копии данного текста, если на них присутствует информация об авторских правах и само разрешение.