Logo    
Деловая газета CitCity.ru CITKIT.ru - все об Open Source Форумы Все публикации Учебный центр Курилка
CitForum    CITForum на CD    Подписка на новости портала Море(!) аналитической информации! :: CITFORUM.RU
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

30.05.2017

Google
WWW CITForum.ru
С Новым годом!
1999 г

    Уважаемые читатели!

    К сожалению, мой любимый Кристофер Дейт временно ушел в подполье. В последних двух номерах Intelligent Enterprise его колонка отсутствует. Последняя публикация в Data Base Programming and Design датирована мартом 1999 г. Я не знаю, с чем это связано, но подозреваю, что это его реакция на поведение издательства Miller Freeman, резко сократившего объем статей, посвященных тематике баз данных. С одной стороны это печально, поскольку чтение Дейта затягивает (на самом деле, я уверен, что его статьи будут выходить в каком-либо издании по-прежнему; человек, привыкший писать, не может перестать это делать), но, с другой стороны, господин Дейт дает мне возможность познакомить Вас с другими авторами.

    Я предлагаю Вашему вниманию пересказ статьи Дэвида Хея, в которой содержится краткое введение в основные идеи языка XML. Статья кажется мне очень полезной, поскольку

    • все мы слышим про XML, но мало кто знает, что это за язык и для чего он нужен;
    • имеется много книг про XML, но при всей детальности изложения в них трудно почерпнуть базовые идеи языка;
    • статья написана с точки зрения специалиста в области баз данных, а по моему мнению, перспективы XML тесно связаны с его использованием в решении проблемы интеграции технологий баз данных и Internet.

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

    Приятного чтения, Сергей Кузнецов


Intelligent Enterprise, August 03, 1999, Volume 2, Number 11

XML: What is It, Anyway?

David Hay
davehay@essentialstrategies.com
www.essentialstrategies.com
(www.intelligententerprise.com/990308/online1.shtml)

Аббревиатура XML теперь распространена повсеместно. Она не означает "eXtra Medium Large" для размера майки. Скорее она имеет отношние к Web. Кое в чем помогает работать с метаданными. Но что это такое?

Расширяемый язык разметки (eXtensible Markup Language - XML) - это язык описания документов, во многом похожий на язык разметки гипертекста (HyperText Markup Language - HTML), повсеместно используемый для конструирования Web-страниц. Однако он является гораздо более универсальным, чем HTML, и глубоко влияет на наши представления о Web и на то, чего может достичь эта технология.

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

Это больше, чем HTML

HTML - это язык, используемый для создания Web-страниц и основанный на предопределенном наборе "тегов", показывающих читающему текст программному обеспечению ("браузеру"), как представлять содержимое страницы. Подобно HTML, XML представляет собой систему тегов, описывающих компоненты документа. В наиболее простой инкарнации можно представлять XML как развитый вариант HTML. В действительности это не так: XML и HTML являются подмножествами того, что называется стандартным обобщенным языком разметки (Standard Generalized Markup Language - SGML). SGML - это сложный теговый язык, который, как тактично намекает OMG (Object Management Group, www.omg.org), "по причине [своей] сложности и сложности требуемых инструментальных средств не получил широкого распространия" (XML Metadata Interchange (XMI) Proposal to the OMG OA&DFT RFP3: Stream-based Model Interchange Format).

Как уже отмечалось, HTML состоит из набора предопределенных "тегов", заставляющих браузер выполнять над документом определенные действия. Обычно эти теги описывают аспекты представления, такие как стили и размеры фонтов, размещение строк и т.д. Однако некоторые теги также идентифицируют ссылки на другие страницы, рисунки и графику. Идея состоит в том, что любой браузер в Internet знает, как интерпретировать эти теги и что с ними делать. Однако, поскольку эти теги прежде всего предназначены для представления данных, невозможно использовать их для описания структуры данных или описания содержимого документа каким-либо другим образом.

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

Что это такое?

Вот пример на XML, в котором описывается структура записи данных в документе:

    <?XML version="1.0"?>
    <!- *** Basket *** ->
    <PRODUCT>
    <product_id>98756</product_id>
    <product_name>basket</product_name>
    <unit_of_measure>each</unit_of-measure>
    <specification>
    <variable>color</variable>
    <value>blue</value>
    </specification>
    <specification>
    <variable>size</variable>
    <value>large</value>
    </specification>
    <specification></specification>
    <specification/>
    </PRODUCT>

Отметим несколько интересных моментов.

Прежде всего, как и в HTML, каждый тег окружается угловыми скобками (<>), и за ним обычно следует текст. За текстом, в свою очередь, следует тег в форме </...>. Тег может не иметь содержания, и тогда за ним сразу следует концевой тег (как в <specification></specification>, или тег может сам заканчиваться прямым слешем (как в <specification/>). Однако, в отличие от HTML, концевой тег требуется всегда.

Во-вторых, заметим, что в данном случае за тегом продукта следует набор связанных тегов, описывающих характеристики (в данном случае столбцы) продукта. Тег <PRODUCT> определяется таким образом, что за ним должен следовать в точности один тег для <product_id> и один тег для <product_name>. Тег <unit_of_measure> является необязательным, хотя пример этого не показывает. Тег <specification> также является необязательным, но у него может существовать одно или большее число вхождений.

Все XML-документы должны начинаться с <?XML version="1.0"?> (или с указанием другой действующей версии). Комментарии задаются в форме

<!- ... ->. Заметим, что пара двойных дефисов должны быть часть содержимого. Также заметим, что, в отличие от HTML, XML позволяет использовать комментарий для окружения строк кода, которые желательно сделать недействующими.

Смысл тега определяется в том, что называется объявлением типа документа (document type declaration - DTD). Это тело кода, определяющее теги через набор элементов. DTD для предыдущего примера выглядит примерно так:

    <!DOCTYPE product [
    <!ELEMENT PRODUCT (product_id,
    product_name, unit_of_measure?, specification*)>
    <!ELEMENT product_id (#PCDATA)>
    <!ELEMENT product_name (#PCDATA)>
    <!ELEMENT unit_of-measure (#PCDATA)>
    <!ELEMENT specification (variable, value>>
    <!ELEMENT variable (#PCDATA)>
    <!ELEMENT value (#PCDATA)>
    ]

DTD для XML-документа может быть либо частью документа, либо внешним файлом. Если это внешний файл, то все равно оператор DOCTYPE должен присутствовать в документе с аргументом SYSTEM -filename-, где -filename- является именем файлаЮ содержащего DTD. Например, если бы приведенное выше DTD содержалось во внешнем файле с именем xxx.dtd, то оператор DOCTYPE должен был бы иметь вид

    <!DOCTYPE product SYSTEM xxx.dtd>

Такая же строка должна быть первой строкой файла xxx.dtd.

Определение элемента product включает список других элементов, в данном случае, product_id, product_name, unit_of_measure и specification. Знак после unit_of_measure означает, что может иметься или не иметься одно вхождение; это необязательный элемент. Знак "*" после specification означает, что элемент является необязательным, но допускается одно или большее число вхождений. Если после какого-то элемента списка присутствует знак "+", то это означает обязательность элемента, а также то, что допускатся более одного вхождения.

В свою очередь, каждый из элементов списка должен быть определен в одной из следующих строк. #PCDATA означает, что тег будет содержать тег, который может быть разобран браузером. Элемент specification уточняется через определения элементов variable и value.

Регистр

В XML различаются символы верхнего и нижнего регистров. Все ключевые слова XML состоят из символов верхнего регистра. Символы в именах тегов должны набираться на том же регистре, что и в определении DTD. В предыдущем примере имена сущностей/таблиц состоят из символов верхнего регистра, а имена атрибутов/столбцов - из символов нижнего регистра. Можно было бы сделать и по-другому.

Атрибуты

У тегов могут быть атрибуты. Например, вместо перечисления соответствующих тегов в определении <!ELEMENT specification (variable, value)> можно было бы добавить в DTD следующие строки:

    <!ATTLIST specification variable CDATA #required>
    <!ATTLIST specification value CDATA #required>

Эти строки создают variable и value как два атрибута specification, так что они не обязаны появляться в виде отдельных элементов. Тогда данные из нашего примера выглядели бы следующим образом:

    <?XML version="1.0"?>
    <!- *** Basket *** ->
    <PRODUCT>
    <product_id>98756</product_id>
    <product_name>basket</product_name>
    <unit_of_measure>each</unit_of-measure>
    <specification variable="color", value="blue"
    </specification>
    <specification variable="size", value="large"
    </specification>
    <specification></specification>
    <specification/>
    </PRODUCT>

Заметим, что этот подход дает дополнительную возможность выбора проектировщику XML-документов. Каждый метод обладает своими преимуществами и недостатками.

Корректность

С XML-документом связаны три уровня корректности:

  • Правильно построенный XML-документ - это такой, в котором элементы правильно структурированы в виде дерева с корректно расставленными открывающими и закрывающими тегами. Правильно построенные документы существенны для информационного обмена.
  • Действенный XML-документ правильно построен и содержит теги, соответствующие объявлению типа документа. Он содержит только элементы и значения атрибутов, которые соответствуют DTD. Хотя XML-документ может подготавливаться и читаться без DTD, DTD существенно для установления действенности.
  • Синтаксически корректный XML-документ находится вне контроля XML. Разработчик такого документа отвечает за его логическую структуризацию. (См. упоминавшуюся выше статью OMG.)

Следствия

Что все это означает? Ответ на этот вопрос неочевиден. Понятно, что XML позволяет разрабатывать Web-экраны, отображающие данные из базы данных более простым и более управляемым образом. Однако язык не содержит механизм для реальной выборки данных из базы данных и их отображения. При желании создать Web-страницы, содержащие данные из базы данных требуется написать или купить программное обеспечение для выборки этих данных и создания страниц. Предположительно, код будет включать некоторую комбинацию Java и SQL.

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

  1. Написать апплеты, поодключаемые к странице. Эти апплеты должны понимать структуру данных и соответствующим образом отвечать за каждый тег.
  2. Использовать обобщенное программное обеспечение, читающее DTD и соответствующим образом реагирующее на теги. В этом случае точность интерпретации будет ограничена тем, что можно получить из DTD.
  3. Присоединиться к сообществу с целью совместного определения набора тегов, отвечающего задачам этого сообщества, а также разработки соответствующего проограммного обеспечения.

По-видимому, первые два подхода будут основываться на программном обеспечении, написанном на Java или аналогичном языке, но стандартные средства для того, чтобы это сделать, пока недоступны. Третий подход уже применяется. Например, химики создали на основе XML Химический язык разметки (Chemical Markup Language); то же относится к математикам, астрономам и т.д., у которых имеются наборы определенных тегов для описания данных, присущих их областям.

Использование для описания данных

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

Следуя традиции химиков и астрономов OMG сформировала набор тегов, названный XML Metadata Interchange (XMI), с целью предоставления возможности описания в стандартных терминах структуры данных о данных ("метаданных"). Этот стандарт будет полезен для обмена метаданными между CASE-средствами и для описания "репозитория метаданных" в проектах хранилищ данных. Двигаясь в том же направлении, группа компаний (включающая, в частности, IBM и Oracle) находится в процессе определения Common Warehouse Metadata Interchange (CWMI), подмножества XMI для поддержки хранилищ данных.

Это означает, что имеются два подхода к описанию структуры базы данных на XML:

  • Во-первых, прикладную базу данных может описывать DTD XML-документа. В этом случае операционные данные базы данных могут быть размещены между наборами описанных тегов. Такое DTD может, например, генерироваться одним CASE-средством, а читаться другим, обеспечивая способ передачи структуры данных.
  • Во-вторых, можно разместить сами определения таблицы и столбцов между тегами XMI, определенными на более высоком уровне абстракции. Этот подход немного более хитрый, поскольку метамодель XMI очень абстрактна, но использование метамодели XMI позволяет описывать намного больше, чем таблицы и столбцы.

Однако заметим, что проблема определения репозитория метаданных или обмена метаданными между CASE-средствами не связана с использованием XML или какого-либо другого языка. Проблемой является структура и семантика базы данных. Важный вопрос состоит не в том, как будет представляться универсальный репозиторий метаданных. (Можно легко представить репозиторий в виде набора реляционных таблиц или диаграмм сущность/связь.) Вопросы состоят в том, что находится в репозитории и что это означает? Какие объекты являются существенными и должны быть описаны? Это гораздо более сложная тема, и она все еще находится в стадии обсуждения. Наличие нового языка не вносит существенный вклад в это обсуждение.

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

Как говорит Клайв Финкельштейн (Clive Finkelstein), появление XML повышает важность моделирования и проектирования данных: "После 15 лет безвестности люди, занимающиеся моделированием данных, могут в конце концов добиться мгновенного успеха".

Автор статьи приносит благодарность Клайву Финкельштейну, познакомившему его с XML и потратившему много времени на чтение и исправление этой статьи.

 

Размещение рекламы — тел. +7 495 4119920, ICQ 232284597

Подписка на новости IT-портала CITForum.ru
(библиотека, CITKIT.ru, CitCity)

Новые публикации:

24 декабря

CITKIT.ru:

  • Новогодние поздравления
  • Сергей Кузнецов. Цикл Операционные системы: Ностальгия по будущему:

  • Алексей Федорчук. OpenSolaris 2008.11 Release

  • Сергей Голубев:

  • Евгений Чайкин aka StraNNik (Блогометки):

    17 декабря

  • С.Д.Кузнецов. Базы данных. Вводный курс

    10 декабря

    CITKIT.ru:

  • OpenSolaris 2008.11 Release

  • Альтернативные ОС: две грустные истории (С.Кузнецов)
  • Nokia N810 — доведение до ума
  • CitCity:

  • Платформа 2009: заоблачные перспективы Microsoft

    4 декабря

  • Лекция С.Д.Кузнецова Понятие модели данных. Обзор разновидностей моделей данных

    CITKIT.ru:

  • OpenSolaris 2008.11 Release. Первые впечатления

  • Linux vs FreeBSD: продолжим "Священные войны"?

  • Nokia N810 as is

  • Индульгенция для FOSS

  • Друзья СПО'2008

    26 ноября

  • Нечеткое сравнение коллекций: семантический и алгоритмический аспекты

    CitCity:

    CITKIT.ru:

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • 19 ноября

  • Проблемы экономики производства крупных программных продуктов

  • Язык модификации данных формата XML функциональными методами

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Заметки к книге:

  • FreeBSD: монтирование сменных устройств и механизм HAL
  • Текстовый редактор ee

    12 ноября

  • Правило пяти минут двадцать лет спустя, и как флэш-память изменяет правила (Гоц Грейф, перевод: Сергей Кузнецов)

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:
  • OSS в России: взгляд правоведа (В.Житомирский)

  • Новая статья из цикла С.Голубева "Железный марш":

    29 октября

  • О некоторых задачах обратной инженерии

  • Веб-сервисы и Ruby

  • Тестирование web-приложений с помощью Ruby

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

  • PuppyRus Linux - беседа с разработчиком (С.Голубев)

  • Сергей Кузнецов. Заметка не про Linux

    22 октября

  • Обзор методов описания встраиваемой аппаратуры и построения инструментария кросс-разработки

    CITKIT.ru:

  • Сергей Кузнецов. Почему я равнодушен к Linux

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • Что надо иметь
    3. Базовые познания

    CitCity:

  • Управление IT-инфраструктурой на основе продуктов Microsoft

    15 октября

  • Методы бикластеризации для анализа интернет-данных

    CitCity:

  • Разъемы на ноутбуках: что они дают и зачем их так много?
  • AMD Puma и Intel Centrino 2: кто лучше?

    CITKIT.ru:

  • Новый цикл статей С.Голубева
    Железный марш:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    8 октября

  • Автоматизация тестирования web-приложений, основанных на скриптовых языках
  • Опыт применения технологии Azov для тестирования библиотеки Qt3

    Обзоры журнала Computer:

  • SOA с гарантией качества
  • Пикоджоуль ватт бережет
  • ICT и всемирное развитие

    CitCity:

  • Пиррова победа корпорации Microsoft

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Статья из архива:

  • Я живу в FreeBSD (Вадим Колонцов)

    Новые Блогометки:

  • Перекройка шаблона Blogger или N шагов к настоящему
  • Blogger. Comment style
  • Screenie или глянцевый снимок экрана

    2 октября

    CITKIT.ru:

  • Сага о FreeBSD (А. Федорчук)

    Zenwalk: пакет недели

  • Банинг — интеллектуальное развлечение (С.Голубев)

    CitCity:

    25 сентября

  • Клермонтский отчет об исследованиях в области баз данных

    CITKIT.ru:

  • Пользователям просьба не беспокоиться... (В.Попов)

  • Снова про ZFS: диск хорошо, а два лучше
  • Командная оболочка tcsh (А.Федорчук)

    Zenwalk: пакет недели

    17 сентября

  • T2C: технология автоматизированной разработки тестов базовой функциональности программных интерфейсов
  • Технология Azov автоматизации массового создания тестов работоспособности

    CITKIT.ru:

  • FreeBSD: ZFS vs UFS, и обе-две — против всех (А.Федорчук)

    Zenwalk: пакет недели

  • Дачнет — практика без теории (С.Голубев)

    10 сентября

  • За чем следить и чем управлять при работе приложений с Oracle
  • Планировщик заданий в Oracle
    (В.Пржиялковский)

    CITKIT.ru:

  • Microsoft: ответный "боян" (С.Голубев)

  • Причуды симбиоза, или снова "сделай сам" (В.Попов)

  • Файловые системы современного Linux'а: последнее тестирование
  • Zsh. Введение и обзор возможностей
    (А.Федорчук)

    Описания пакетов Zenwalk: Zsh, Thunar, Thunar-bulk-rename, Xfce4-places-plugin, Xfce4-fsguard-plugin

    Блогометки:

  • Google Chrome
  • Лончер для ASUS Eee PC 701

    3 сентября

    CITKIT.ru:

  • Заметки о ядре (А.Федорчук):

    Добавлены описания пакетов Zenwalk: Galculator, Screenshot, Gnumeric, Pidgin

    В дискуссинном клубе:

  • И еще о Википедии и Google Knol

  • Лекция для начинающего линуксоида (С.Голубев)

    26 августа

  • Транзакционная память (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Открыт новый проект Zenwalk: пакет недели

  • Статья Текстовые процессоры и их быстродействие: конец еще одной легенды?

    21 августа

    CITKIT.ru:

  • Почему школам следует использовать только свободные программы (Ричард Столлман)
  • Беседа Сергея Голубева с учителем В.В.Михайловым

  • Википедия или Гуглезнание? Приглашение к обсуждению (Алексей Федорчук)
  • Народная энциклопедия от Google (StraNNik)

  • Обзор Mandriva 2009.0 Beta 1 Thornicrofti
  • Новичок в Линукс: Оптимизируем Mandriva 2008.1

  • Книга Zenwalk. Приобщение к Linux:

    13 августа

    CitCity:

  • Мирный Atom на службе человеку. Обзор платы Intel D945GCLF с интегрированным процессором
  • Обзор процессоров Intel Atom 230 на ядре Diamondville

  • iPhone - год спустя. Скоро и в России?

    CITKIT.ru:

  • Интермедия 3.4. GRUB: установка и настройка (из книги Zenwalk. Приобщение к Linux)

    6 августа

  • СУБД с хранением данных по столбцами и по строкам: насколько они отличаются в действительности? (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Интермедия 2.2. Что неплохо знать для начала (из книги Zenwalk. Приобщение к Linux)

  • И снова про шрифты в Иксах (А.Федорчук)

  • 20 самых быстрых и простых оконных менеджеров для Linux

  • Дело о трех миллиардах (С.Голубев)

    30 июля

  • OLTP в Зазеркалье (Пересказ: С. Кузнецов)

    CitCity:

  • Будущее BI в облаках?
  • Тиражные приложения и заказная разработка. Преимущества для заказчика
  • Дискуссия со сторонниками заказной разработки

    CITKIT.ru:

  • Новые главы книги Zenwalk. Приобщение к Linux:
  • Глава 8. Пакеты: средства установки, системы управления, системы построения
  • Глава 9. Zenwalk: репозитории, пакеты, методы установки

    23 июля

    CITKIT.ru:

  • Все против всех. 64 vs 32, Intel vs AMD, tmpfs vs ext3
  • Две головы от Intel

  • Zenwalk: обзор штатных приложений (глава из книги "Zenwalk. Приобщение к Linux")

  • Нормально, Григорий...

    16 июля

    Обзоры журнала Computer:

  • Перспективы и проблемы программной инженерии в XXI веке
  • Большие хлопоты с большими объемами данных
  • Перспективы наноэлектроники

    CITKIT.ru:

  • Интермедия о лицензиях (А.Федорчук. "Zenwalk. Приобщение к Linux")

  • Есть ли будущее у KDE?

  • Linux в школе: альтернативный вариант в задачах

  • Шифр (приключения агента Никодима)

    10 июля

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия вступительная. Linux или GNU/Linux? Как вас теперь называть?
  • Глава 5. Среда Xfce
  • Глава 6. Xfce: приложения и плагины

  • ZUR (Zenwalk User Repository) FAQ

    2 июля

  • Персистентность данных в объектно-ориентированных приложениях (С. Кузнецов)

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия 1.2. Дорога к Zenwalk'у. Период бури и натиска
  • Интермедия 3.3. Немного о Linux'е и "железе"
  • Глава 4. Настройка: инструментами и руками
  • Интермедия 4.1. Zenpanel и конфиги: поиски корреляции

  • Интервью с Жан-Филиппом Гийоменом, создателем дистрибутива Zenwalk

  • Linux в школе: первые итоги (С. Голубев)

    25 июня

    CITKIT.ru:

  • Zenwalk. Приобщение к Linux (А. Федорчук)

  • Логика и риторика (С.Голубев)

  • Технология Tru64 AdvFS

  • Ханс Райзер предлагает отвести полицейских к телу Нины

    18 июня

  • Проекты по управлению данными в Google (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • ОС и поддержка "железа": мифы и реальность (А. Федорчук)

  • Linux в школе: другие дистрибутивы

  • Пинок (С. Голубев)

    4 июня

  • Ландшафт области управления данными: аналитический обзор (С. Кузнецов)

    CITKIT.ru:

  • Linux в школе: слово заинтересованным лицам

  • SlackBuild: пакеты своими руками

  • Linux от компании Novell. Установка и обзор openSUSE Linux

    Все публикации >>>




  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 4119920, ICQ 232284597 Пресс-релизы — pr@citcity.ru
    Послать комментарий
    Информация для авторов
    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2007 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...