Автор: Пользователь скрыл имя, 17 Ноября 2014 в 19:57, статья
Зачем программам быть свободными?
Право и экономика ПО.
Применимость СПО при реализации «Обязательного минимума.
Логика и последовательность освоения СПО.
Соответственно, различий можно ожидать лишь в деталях реализации функциональности и эргономики. И действительно, большинство редакторов электронных таблиц, включая и перечисленные, очень похожи.
За две недели автор (в обычной жизни не пользующийся этим классом программ), проверяя свои впечатления, «играл» с четырьмя подобными системами, пытаясь решать несложные задачки, которые обычно он решает (ввиду специфики личного профиля навыков) с помощью СУБД, включая 1) элементарные инженерные расчеты (расход материалов и жесткость корпусной мебели), 2) бюджетирование небольшого проекта, 3) бюджетирование личных расходов. Под горячую руку попали и 4) три задачки из учебника алгебры за 11 класс, две из которых даже удалось с ходу решить.
В число этих систем вошли три упомянутые свободные программы и, в качестве контрольного образца, очень популярная несвободная «Майкрософт Эксел» (из офисного пакета «Майкрософт Офис 2000»). Вывод: существенной разницы в возможностях и способах их реализации 99% пользователей не обнаружат. Некоторые тонкости: самой «интуитивной» показалась «Ньюмерик», лучше всего документирована «Майкрософт Эксел», у последней также наиболее развиты средства визуализации (построение графиков и диаграмм).
Тем не менее, если бы автору предстояло регулярно работать с электронными таблицами, скорее всего, его выбор пал бы на сравнительно «серенькую» «OpenCalc» из-за единства интерфейса и интегрированности с «OpenWriter» и «OpenDraw», которыми он пользуется регулярно.
Как и остальные упомянутые программы (за исключением Microsoft Excel), «OpenCalc» определяет особое приложение языка разметки XML, которое и используется для хранения рабочих книг (почему-то workbook переводится как «рабочая книга», хотя вообще-то это обычная «тетрадь») с подшитыми в них листами электронных таблиц. Как и остальные компоненты «OpenOffice.org», «OpenCalc» упаковывает XML-файл с содержимым (а также ряд вспомогательных файлов) в PKZIP-архив, который и является единицей хранения документа. (О важности стандартизации языков представления данных в «офисных» приложениях мы подробно говорили в разделе 4.1, к каковому и отсылаем читателя.)
Кроме «родного» формата, «OpenCalc» «понимает» распространенный формат, используемый Microsoft Excel разных версий, экспортирует данные в DIF (Data Interchange Format), форматы ранних версий StarCalc, потомком которых она является, SYLK, импортирует – также из форматов dBase и Lotus 1-2-3. Книгу (workbook) можно с очень приличным качеством экспортировать в гипертекст (html 3.2).
Текущая версия (1.0) «OpenCalc» позволяет работать с отдельными таблицами (листами) размером до 255 столбцов (пронумерованных буквами и двухбуквенными сочетаниями, от A до IV) на 32000 строк (пронумерованных числами), чего вполне достаточно для большинства офисных применений и уж, во всяком случае, для любых разумных учебных задач. «OpenCalc» допускает абсолютную и относительную адресацию ячеек и их диапазонов.
В «OpenCalc» поддерживается типизация данных с возможностью их интерпретации как чисел, денежных сумм, дат, времени, логических значений и, наконец, просто текста. Возможны и определяемые пользователем типы. Для некоторых типов определены различные форматы представления, задающие способ их отображения или печати. В случае, если ячейка содержит формулу, ее результат также может быть типизован.
Библиотека функций OCalc достаточно компактна – их около трех с половиной сотен. Она разбита на ряд категорий: управление БД, работа с датами и временем, финансы, статистика и т.п. Имеются средства расширения этого набора.
«OpenCalc» реализует такие средства, как:
автозаполнение однородных рядов данных;
именование ячеек и их групп;
сортировка и фильтрация;
построение графиков и диаграмм.
Мощный механизм стилей оформления, свойственный всем компонентам пакета «OO.o», доступен и в «OpenCalc». Стили оформления могут определяться для отдельных ячеек, их совокупностей, листов и рабочих книг в целом, а также для включаемых элементов, таких как текст или иллюстрации (в том числе, графики и диаграммы).
Компьютерная графика, чуть более десяти лет назад бывшая если не экзотическим, то довольно специальным приложением компьютера, сегодня повсеместна.
Всякий, впервые сталкивающийся с компьютером, уже в самом начале обучения (если курс специально не построен так, чтобы ограничиться на первых порах программами с текстовым или псевдографическим интерфейсом), скорее всего, встретится с графическим терминалом, отображающим различные графические элементы (включая и текстовую информацию, также отображающуюся в графическом режиме средствами компьютерной графики).
Элементарная обработка (создание и редактирование) изображений (как векторных, так и растровых) входит в число приложений, перечисленных в «Обязательном минимуме содержания образования по информатике» 75 в качестве обязательных к освоению в курсе средней школы.
Предметность обучения предполагает, что учащийся «узнает» в создаваемых или редактируемых им картинках при изучении обработки изображений подобие уже знакомых ему элементов графических интерфейсов. Чтобы это счастливое узнавание произошло, представляется целесообразным включить некоторые первоначальные сведения о компьютерной графике уже во введение в предмет, которым начинается его изучение. К сожалению, не все учебники это реализуют, поэтому преподавателю могут потребоваться некоторые дополнительные усилия, но, на самом деле, небольшие, поскольку наглядный материал «под рукой» в любом компьютерном классе.
Способы кодирования графических данных делятся на две категории: растровый (точки равномерно размеченного прямоугольника) и векторный (описания линий и фигур, составляющих изображение).
Например, растровое изображение окружности может быть таким: «заполняем квадрат 5х5: белая точка (Б), черная точка (Ч), Ч, Ч, Б, Ч, Б, Б, Б, Ч, Ч, Б, Б, Б, Ч, Ч, Б, Б, Б, Ч, Б, Ч, Ч, Ч, Б». (Более умные «форматы со сжатием», возможно, позволят сократить запись до чего-нибудь, подобного: «заполняем квадрат 5х5: Б, 3Ч, Б, 3(Ч, 3Б, Ч), Б, 3Ч, Б», а то и еще более компактно, но суть не в этом).
Векторное ее изображение совсем другое: «черная окружность с центром в (3,3), радиусом 2 и толщиной линии 1».
Важно понимать, что большинство компьютерных графических устройств сегодня – и терминалы, и сканеры, и принтеры – по своей природе растровые. Исключение составляют только графопостроители (плотерры) и редко доступные в учебных условиях их промышленные «кузены» (такие, как фрезерный станок с числовым управлением).
Соответственно, изображение, вне зависимости от его собственной природы (векторной или растровой), будет при отображении преобразовано в растр и доступно человеческим чувствам в растровой форме (даже если растр почти незаметен, как на дисплеях с высоким разрешением, или вообще имеет сетку ниже порога восприятия, как при печати на качественных струйных или лазерных принтерах). И указанные два способа вполне могут привести к неотличимому результату.
Разница может проявиться тогда, когда мы начнем обрабатывать элементы изображения.
Векторное изображение может без ущерба масштабироваться (увеличиваться или уменьшаться), причем эта операция обратима. В приведенном примере мы можем без труда увеличить векторную окружность в пять раз: «черная окружность с центром в (15,15), радиусом 10 и толщиной линии 5», и она останется окружностью.
А вот растровое изображение при увеличении обнаружит лишь свой растр в увеличенном виде (и на окружность наш пример похож уже будет мало). Более того, операция уменьшения (или увеличения в нецелое число раз) растрового изображения уже не является обратимой: информация при осуществлении такой операции безвозвратно теряется.
Кроме того, векторное изображение, содержащее более одного элемента (например, изображение двух пересекающихся окружностей), может быть разъято на элементы без каких-либо потерь. С растровым изображением такое, в общем случае, невозможно: программа «не знает» об элементах изображения и о принадлежности тех или иных точек отдельным элементам.
В общем случае, векторное кодирование хорошо подходит для работы с чертежами, схемами, картами, диаграммами, графиками и т.п., а растровое – для обработки фотографий и рисунков. Векторное изображение может быть без ущерба для восприятия преобразовано в растр, в то время, как обратное преобразование в общем случае проблематично (хотя есть программы, позволяющие с той или иной точностью распознавать графические образы). Векторное кодирование часто компактнее растрового, но его отображение требует больших вычислительных ресурсов76.
Пример, который всегда перед глазами пользователя компьютера – шрифты. Когда точно известен масштаб, в котором будет отображаться текст, часто используются растровые («фиксированные») шрифты, представляющие собой набор растровых изображений отдельных букв и других символов используемого алфавита (например, растровые шрифты используются видеокартой, работающей в текстовом режиме, но также часто и как элемент графического интерфейса). Их применение позволяет отображать символы с недостижимой иным способом четкостью, но, если нужно более одного размера шрифта, потребуется трудоемкая работа по разработке нескольких таких шрифтов.
Когда необходимо свободное масштабирование шрифтов, используются векторные шрифты (на самом деле, большинство масштабируемых шрифтов – это библиотеки программ, «рисующих» соответствующие буквы, часто - с учетом важности их отдельных элементов для восприятия; но разница в данном случае несущественна). Качество отображения мелкого кегля или на экране с низкой разрешающей способностью у них ниже, но они универсальнее.
Прочие элементы графических пользовательских интерфейсов также используют как векторную (большинство органов управления и большинство элементов оформления окон), так и растровую (пиктограммы-«значки») графику.
Из множества свободных программ, предназначенных для редактирования векторно-графических файлов, разумные потребности большинства учебных курсов может удовлетворить любая из следующих:
очень простой векторный редактор Xfig для оконной системы XFree86,
sodipodi (обычно поставляется со всеми операционными системами, включающими среду «Гном»),
Kontour (компонент популярного «офисного» пакета KOffice)
и, наконец,
«OpenDraw» (входящая в пакет «OpenOffice.org»).
Рекомендуется при возможности хотя бы вкратце ознакомиться с каждой из них, чтобы понять, какая лучше подходит для конкретного учебного курса. В этом разделе далее будет обсуждаться «OpenDraw», исходя из уже описанных преимуществ, но это ни в коей мере не означает непригодность для учебных целей прочего из перечисленного.
Как и остальные компоненты пакета «OO.o», «OpenDraw» использует в качестве «родного» формата специально разработанное XML-приложение (об XML и о том, почему ориентация на этот стремительно набирающий популярность формат данных важна при выборе учебных программ, см. раздел 4.1).
Этот пакет доступен для популярных стандартных («ГНУ/Линукс», «Солярис») и нестандартных («Майкрософт Уиндоуз») операционных систем и прилично (хотя и не идеально) локализован.
Самым же существенным недостатком «OpenDraw» являются относительно высокие требования к аппаратным ресурсам, поэтому его использование затруднительно на старых или маломощных компьютерах (для комфортной работы над несложными учебными упражнениями должно быть достаточно Intel P-II, Celeron или K6-2 с частотой от 500 МГц или G3 с частотой от 350 МГц при памяти от 64 MБ). Если нужна демонстрация векторно-графических возможностей на таких компьютерах, мы рекомендуем sodipodi или еще более «легкую» XFig.
Сохранение в «чужих» векторных форматах (экспорт) на сегодня реализовано только для ранних версий предшественника «OpenOffice.org» пакета StarOffice (и StarDraw как отдельной программы). Зато импорт (чтение «чужих» форматов) возможен не только из универсальных векторных форматов, но и из DXF, используемого в популярных системах автоматизированного проектирования (САПР).
«OpenDraw» также позволяет экспортировать рисунок во многие растровые форматы или в гипертекстовую страницу.
Следует понимать, что StarDraw, на основе которого разработана программа, задумывалась как «офисный» графический редактор, прежде всего предназначенный для создания и редактирования графических элементов оформления документооборота (сопровождающих документы рисунков, карт, диаграмм, графиков и пр.). Поэтому действия, типичные для такой работы, максимально облегчены и «вынесены на первый план», и «OpenDraw» содержит массу готовых деталей, широко употребимых в «офисной» графике (например, готовых стрелок и множества соединительных линий, часто используемых в таких случаях). Для технического черчения и схемотехники «OpenDraw» не приспособлена (хотя при случае в ней можно создать простой чертеж или электронную схему).
Документ «OpenDraw» называется «рисунком», что несколько дезориентирует, поскольку на самом деле он может содержать целую «пачку» отдельных изображений, называемых слайдами. Каждый слайд, в свою очередь, может содержать один или более слоев .
Рисунок сохраняется в файле, который технически представляет собой PKZip-архив, включающий стилевые определения и собственно содержание документа на языке XML. Какой-либо инструментарий, специально предназначенный для обработки «OpenDraw» XML, нам не известен.
Как и остальные компоненты «OpenOffice.org», «OpenDraw» в высшей степени конфигурируемая и настраиваемая под конкретное применение программа. Для использования в учебном контексте может оказаться полезным предварительно настроить ее для некоторого сокращения обилия непосредственно доступных пользователю функций, чтобы ученик в них не затерялся.
Функциональность «OpenDraw» сопоставима с большинством других редакторов векторной графики и включает:
cоздание, форматирование и преобразование объектов-графических примитивов: отрезков и стрелок; квадратов и прямоугольников; окружностей, эллипсов, дуг, сегментов и секторов; кривых Безье, «свободных» кривых, ломаных и многоугольников;
cоздание, форматирование и редактирование объектов-текстовых надписей (при вводе или редактировании текстов доступна большая часть функциональности word-процессора OpenWord (см. раздел 4.1)). На самом деле, текст может содержаться в любом замкнутом контуре. В состав «OpenDraw» также входит декоративная функция FontWork, позволяющая расположить текст «фигурно» (вдоль дуги или окружности);