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

Monday, 02-Jun-2008 12:41:57 EEST

Google
WWW citforum.ck.ua
2008 г.

Один из подходов к организации объектной системы на основе реляционной СУБД

, к.т.н.

Из-за наличия большого количества работ, посвящённых методам объектно-реляционного отображения (ОРО), широкую популярность получили инструменты, позволяющие организовать объектную систему на основе РСУБД [1-4]. В данной статье описан один из подходов, использованный при организации объектной системы в среде СУБД Microsoft SQL Server 2005, на основе которого разработан инструмент, успешно применяемый автором в течение последних пяти лет при разработке крупной ERP-системы.

Проектирование и реализация любого программного продукта (ПО) начинается с формулирования требований (критериев) оптимальности (КО), которым должна соответствовать полученная реализация. Для инструмента, позволяющего организовать объектную систему в среде РСУБД, были выдвинуты следующие КО:

  1. Поддержка обширной метаинформации;
  2. Поддержка связей между отношениями;
  3. Трансформация отношений в классы;
  4. Поддержка методов обработки данных;
  5. Поддержка отношений наследования и возможности полиморфизма для методов.

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

Физическая структура реляционной базы данных реального приложения содержит множество таблиц и связей. Поэтому необходим общий унифицированный механизм представления связей между отношениями (КО2). Следует учесть главное отличие между внешним ключом, организующим ссылочную целостность между таблицами и принципы реализации отношений между классами. В первом случае в подчинённой таблице создаётся поле, значение которого должно равняться null или быть равным одному из имеющихся значений альтернативного ключа в главной таблице. Во втором случае, в классе, находящемся в отношении "один-ко-многим", со стороны "один" объявляется атрибут, типом которого является коллекция классов, представленная в отношении со стороны "многие" [3]. Для выполнения данного критерия (КО2) необходимо наличие обширной метаинформации (КО1) и предусмотреть возможность трансформации отдельных отношений в классы предметной области (КО3).

Выполнение КО3 позволяет неограниченно расширять физическую структуру БД и автоматизировать процесс трансформации конкретной таблицы в класс предметной области, атрибуты и методы которого детально описаны в метамодели (reverse engineering). В связи с этим в структуре БД присутствует постоянный состав таблиц, в которых имеется информация обо всех классах предметной области (метамодель) (КО1).

Ключевым достоинством объектно-ориентированной парадигмы является возможность объявления классов, состоящих из данных, предназначенных для хранения состояния объекта (экземпляра класса) и методов обработки. Для выполнения требований КО4 и учёта специфики разработки современных объектных систем нами выделены две категории методов:

  1. Методы обработки данных извлекают значения атрибутов класса из таблиц БД и обрабатывают их. К методам относятся: представления, хранимые процедуры, функции и т.п.
  2. Методы визуализации данных предназначены для графического отображения данных в клиентском приложении. К ним относятся формы представления нескольких экземпляров классов, формы редактирования одного экземпляра и связанных объектов, форма подстановки, предназначенная для выбора объекта (занесения значений внешним ключам), форма печати отчёта.

Отметим, что у класса может быть любое количество методов.

Отношение наследования активно используется при разработке крупных объектных систем, поэтому необходимо предусмотреть возможность описания производных классов (КО5). При этом в производном классе можно не только добавить новый атрибут или метод, но и переопределить метод, реализованный в базовом классе (полиморфизм). Т.к. в производном классе разработчик ИС добавляет различные атрибуты, то необходимо изменить как методы обработки данных (для извлечения значений атрибутов для объекта), так и методы визуализации, которые отвечают за отображения значений добавленных атрибутов в графическом интерфейсе пользователя.

Разработка объектной системы, отвечающей выделенным критериям оптимальности, позволит получить следующие преимущества:

  1. Унифицированная система абстрактных типов данных, способствующая повторному использованию написанных ранее классов.
  2. Ускорение процесса разработки приложений за счёт хранения всей информации (классов предметной области и метаклассов) в единой БД, что позволяет создать вспомогательные инструменты, ускоряющие процесс разработки ИС.
  3. Упрощение процесса внесения модификаций, которые в нашем случае представляют добавление производных классов, объявление новых атрибутов, создание новых методов и изменение существующих.
  4. Возможность программной генерации методов обработки и визуализации по имеющейся метаинформации.

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

Рис. 1. - Принципы организации объектной системы в РСУБД

Рисунок требует пояснений. В левой части рисунка расположены две таблицы (MasterTable(главная) и DetailTable (подчинённая)), объединённые связью "один-ко-многим". Для организации такой связи в DetailTable присутствует внешний ключ MFld01, который ссылается на первичный ключ таблицы MasterTable (поле MFld01). Отметим, что все поля таблиц описаны с помощью встроенных типов данных целевой РСУБД (Microsoft SQL Server 2005).

В соответствии с КО3 каждая из таблиц трансформируется в классы. При этом каждый класс становится корневым для своей иерархии и предоставляется возможность объявить производные классы (КО5). Суть в том, что все экземпляры иерархии данного и производных классов сохраняются в этой таблице. Такой подход напоминает реализацию метода ОРО «Наследование с одной таблицей (Single Table Inheritance)» [1,3], однако, в нашем случае в таблице присутствуют только атрибуты корневого класса. Значения атрибутов производных классов сохраняются в одной общей таблице ChildAttValue. Состав и структура полей данной таблицы соответствует хорошо известному методу ОРО, названному "Сущность-Атрибут-Значение" (САЗ) [4]. В отличие от классической реализации, использующей для сохранения значений атрибутов всех классов иерархии единую таблицу, в нашем случае в ChildAttValue сохраняются только значения атрибутов производных классов. В итоге мы реализовали метод, который комбинирует в себе архитектурные решения двух известных паттёрнов ОРО. Этот подход имеет следующие преимущества:

  1. Для извлечения значений атрибутов базового класса, которые необходимы для всех классов иерархии, требуется выполнить лишь одну операцию выборки данных из таблицы;
  2. В структуре БД присутствует лишь одна таблица, представляющая иерархию классов, что позволяет физически группировать экземпляры подобных классов;
  3. Минимизация дискового пространства, т.к. в базовой таблице хранятся значения атрибутов, присутствующих во всех классах. А в ChildAttValue сохраняются не пустые (не NULL) значения атрибутов.

В представленной реализации поддерживается обширная метаинформация (КО1), которая сохраняет информацию как об иерархии атомарных литеральных типов (классы, унаследованные от Literal), так и о иерархии классов предметной области (например, о MasterTable, DetailTable). Возможная реализация иерархии атомарных литеральных типов в среде РСУБД Microsoft SQL Server 2005 представлена в работе [5]. Ключевой особенностью, в разрезе нашего обсуждения, является возможность объявления атрибутов для литеральных типов и задания для них значений. При трансформации таблиц в классы (КО3) каждое поле таблицы преобразуется в атрибут класса, при этом тип атрибута определяется в соответствии с типами данных (классами), имеющимися в метамодели (КО1). Так, поле Fld01 (DetailTable) типа Integer трансформируется в атрибут Att01 (DetailClass), типом которого является атомарный литерал IntLiteral. При этом внешний ключ MFld01 (DetailTable), который также является целым числом, преобразуется в атрибут Att01 (DetailClass), типом которого выступает класс MasterClass. Таким способом реализуются поддержка связей между отношениями на уровне объектной системы (КО2). Отметим, что класс MasterClass получен после трансформации таблицы MasterTable. Как видно из рис. 1, имеется возможность объявления производных классов (КО5). Так, класс MCChild01 унаследован от класса MasterClass и значения его свойств сохраняются в таблице ChildAttValue.

Перейдём к критерию оптимальности 4 и рассмотрим методы, присутствующие в классе DetailClass. Часть методов физически представляют собой объекты БД. Метод View является представлением и возвращает значения всех атрибутов класса в виде единого набора данных. В производном классе (Child01) этот метод переопределён, так как необходимо вернуть значения атрибутов, объявленных в этом классе (ChAtt01, ChAtt04). Метод ProcView физически представляет собой хранимую процедуру (ХП), которая на основе переданного фильтра (в виде XML) формирует результат, представляющий собой множество объектов. Для получения значений атрибутов одного конкретного объекта и для их изменения используется процедура ProcSupport. Для представления нескольких экземпляров классов в графическом интерфейсе пользователя объявлен метод FormView; для редактирования – FormAU, для удаления – FormDel. На рис. 1, в классе DetailClass присутствует метод FormLookup, который предназначен для подстановки значений в поля внешнего ключа. Отметим, что все методы могут быть перегружены (см. атрибуты класса Child01, помеченные стереотипом «ovveride»), т.е. реализуется полиморфизм на уровне БД (КО5).

Общая схема извлечения информации и отображения её в клиентском приложении представлена на рис. 2.


Рис. 2. – Схема извлечения данных

Все данные (элементы метамодели и экземпляры бизнес-сущностей) физически сохраняются в таблицах базы данных и извлекаются с помощью представления (View). Ключевым достоинством представления является то, что на сервере СУБД представление сохранено в откомпилированном (оптимизированном) виде и имеется возможность создания индексов по некоторым полям. Всё это значительно повышает скорость выполнения запросов по сравнению с выполнением динамических запросов, которое применяется в существующих инструментах ОРО. Однако необходимо предусмотреть возможность выполнения произвольных запросов на основании переданного условия фильтрации. Для этих целей используются хранимые процедуры (ProcSupport, ProcView). В конечном итоге, все данные отображаются в графических формах (FormView, FormAU, FormDel, FormLookup).

Описанный подход использован при реализации объектной надстройки над реляционной СУБД Microsoft SQL Server 2005, названной AxSystem ORC (Object-Relation Core). Надстройка применялась при разработке крупной КИС, автоматизирующей деятельность международной корпорации, занимающейся закупкой и продажей сельхозпродукции, выпуском растительного масла и последующим бутилированием. В настоящее время создана собственная интегрированная среда разработки, в которой реализована автоматизированная система учёта движения морских судов AxSystem Shipping Global Control [6]. В ближайшее время демонстрационная версия этой программы будет выложена на сайте http://www.axsystem.ru.

Благодарность

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

Литература

  1. Ambler S.W. Agile Database Techniques—Effective Strategies for the Agile Soft-ware, John Wiley & Sons, 2003, 373p.
  2. Keller W. Mapping Objects to Tables. A Pattern Language
  3. Флауер М. Архитектура корпоративных программных приложений, Пер. с англ. – М.: Издательский дом «Вильямс», 2004. – 544 с.: ил. – Парал. тит. англ.
  4. Nadkarni P. M., Brandt C. A., Morse R., Matthews K., Sun K., Deshpande A. M., Gadagkar R., Cohen D. B., Miller P. L. Metadata-driven creation of data marts from an EAV-modeled clinical research database // International Journal of Medical Informatics 65, 2002,p.225-241.
  5. Олейник П.П. Принципы организации иерархии атомарных литеральных типов объектной системы на основе РСУБД Microsoft SQL Server 2005
  6. Аверин А.И., Олейник П.П. Автоматизированная система учёта коммерческой составляющей движения морских и речных судов AxSystem Shipping Global Control. Свидетельство об официальной регистрации программы для ЭВМ № 2008611185, 6 марта 2008 г.

 

\

Подписка на новости IT-портала citforum.ck.ua
(библиотека, citforum.ck.ua, CitCity)

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

28 мая

citforum.ck.ua:

  • Еще о SmoothWall и немного идеологии (В. Попов)
  • Linux в школе: дистрибутивы пилотного проекта (С. Голубев)
  • Новые Блогометки:

  • Frets on Fire: игра на гитаре с клавиатуры
  • GNU Units: преобразование величин между различными шкалами
  • QEMU: простой и быстрый эмулятор процессора
  • Проверка контрольных сумм, закачка клипов с youtube и менеджер Grub для редактирования меню
  • GConf-cleaner - знакомая игрушка для эмигрантов
  • Wbar - заманчивый dockbar. И никакого compiz'a!
  • BluePad - GNOME-марионетка под управлением телефон
  • 21 мая

    citforum.ck.ua:

  • Методические рекомендации к использованию Линукса в учебном компьютерном кабинете школы
  • Все Linux'ы под одной крышей (репортаж с семинара R-Style)
  • Новые Блогометки:

  • Заливаем музыку на плеер
  • Накопительный вклад в "прокачку" системы
  • GMail + оповещение о приходе корреспонденции
  • code2html - публикация кода или гармония содержания и формы
  • GTK клиенты для MPD
  • Zimbra. Первые впечатления
  • Ubuntu. Как установить mysql-server без exim4
  • Ubuntu и GPRS
  • 14 мая

    CitCity:

  • Интервью с Дональдом Кнутом (Перевод: С. Кузнецов)
  • citforum.ck.ua:

  • Linux в школе: подготовка к миграции (С. Голубев)
  • О Microsoft Windows, Линуксе и бесплатном сыре. Профессор Выбегалло наносит ответный удар
  • Дело Ханса Рейзера. Версия Uncle_Theodore
  • Новые Блогометки:

  • MOC: музыка в консоли - музыкальный проигрыватель, основанный на ncurses
  • Hugin: создавайте потрясающие панорамы из ваших фотографий
  • HTTP сервер в одну строку: версия 2.0
  • HTTP сервер размером в 222 байта
  • hint [9] swiss army knife
  • 6 мая

    citforum.ck.ua:

  • Linux в школе: в чем же выгода? (С. Голубев)
  • Дело Ханса Рейзера
  • 28 апреля

  • Возможности эффективного использования языка SQL без нарушения основных принципов реляционной модели данных
  • Материалы конференции "Корпоративные базы данных-2008" (тезисы докладов и презентации)
  • CitCity:

  • Очередной снэпшот технологии баз данных (С. Кузнецов)
  • citforum.ck.ua:

  • Linux в школе: мифы про школу и информатику (С. Голубев)
  • "Крикливое меньшинство" мешает распространению открытого ПО
  • 22 апреля

  • Один из подходов к организации объектной системы на основе реляционной СУБД
  • Обзор журнала Computer:

  • Тинэйджеры и музыкальная коммерция
  • citforum.ck.ua:

  • Диски, разделы, буквы... (В. Попов)
  • Новые Блогометки:

  • ingimp: повышение удобства интерфейса GIMP на основании статистики использования
  • Screen-message: используйте экран для передачи сообщений
  • knetworkmanager: победа над кошмарами WiFi-WLan-WEP-WPA
  • revelation: менеджер паролей Gnome
  • 17 апреля

    citforum.ck.ua:

  • Изучаем Linux:
    • Подготовка к миграции
    • Критерии выбора
    • Дистрибутив ALTLinux
    • ASPLinux
    • Debian
    • Linux XP Desktop
    • Mandriva
    • MOPSLinux
    • openSUSE
    • Ubuntu

    CitCity:

  • Рынок BI-платформ. Мнение аналитиков
  • Требования к инструментам интеграции данных
  • Матрица. Эволюция (технология цифровой фотографии)
  • 10 апреля

  • Принципы организации иерархии атомарных литеральных типов объектной системы на основе РСУБД Microsoft SQL Server 2005
  • citforum.ck.ua:

  • Експресс полярный, он же - "галантный медведь"
  • Новые Блогометки:

  • Liquidsoap: гибкий клиент потокового аудиовещания для сервера Icecast и многое другое…
  • KRename: мощное средство переименования
  • apt-listbugs: узнавайте о критических ошибках перед каждой установкой с APT
  • Несколько слов о ГИС...
  • OpenOffice и все-все-все...
  • Цифровые фотографии. Наводим порядок
  • Фотоальбомы
  • 2 апреля

  • NULL, трехзначная логика и неопределенность в SQL: критика критики Дейта
  • Критика критики критики Дейта
  • Сервис-ориентированный подход в бизнес-аналитике от Oracle
  • Хранение данных на клиенте. DOM Storage и его аналоги
  • citforum.ck.ua:

  • Conky - системный монитор
  • Звук в Linux
  • Linux swap space
  • Описание пакетов KDE
  • 27 марта

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

  • Мечты Дэвида Харела
  • О вреде избыточного питания компьютеров
  • SOA: просто для большинства, сложно для меньшинства
  • CitCity:

  • 12 дюймов и меньше - а стоит ли "овчинка" выделки?
  • Сравнение электронных автомобильных карт и автонавигаторов
  • BI-технологии, что нас ждет в ближайшие годы
  • citforum.ck.ua:

  • И снова Старый Оскол: второй семинар по свободному софту
  • Новые Блогометки:

  • Xdiskusage: где место?!
  • TTF-Inconsolata: открытый шрифт для вашего терминала и красивых распечаток кода
  • Jed: карманный EMACS
  • Ipcalc: полезная информация об IP и маске сети
  • IPTraf: монитор локальной сети с интерфейсом ncurses
  • Burgerspace: свободный клон классической аркады «Burgertime»
  • 19 марта

  • Технология проектирования модели предприятия на основе универсальной модели данных
  • CitCity:

  • Гимн героям Microsoft
  • citforum.ck.ua:

  • Колонки Алексея Федорчука из журнала Linuxformat
  • Завершение цикла Сергея Голубева "Linux для начинающих":
    • Работа в сети
    • Пользовательские приложения

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

  • И вечный бой... со шрифтами
  • Введение в API для карт Google
  • Conky: хорошо настраиваемый системный монитор для X
  • Newsbeuter: чтение RSS из консоли
  • Katapult: ускоренный и упрощенный доступ к приложениям, закладкам и файлам
  • GPRename: пакетное переименование с интерфейсом GTK2-Perl
  • Duplicity: шифрованное и экономное для трафика резервное копирование на основе алгоритма rsync
  • Listadmin: консольное управление очередью модерации Mailman
  • 12 марта

  • Восход и закат High Performance Fortran: наглядный урок истории (пересказ: С.Кузнецов)
  • citforum.ck.ua:

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

  • Ccze: хорошее модульное средство подсветки логов
  • PWSafe - кроссплатформенное средство для работы с паролями
  • colordiff - подсветка для diff
  • psmisc: рассмотрим ближе стандартный пакет
  • Работа с сетью
  • xkb, узелок на память
  • ffmpeg-php
  • debiannotes:desktop:prettyfonts
  • 5 марта

    citforum.ck.ua:

  • Ричард Столлман в Москве
  • О мудром доценте замолвите слово... (Интенсификация Малаховна)
  • Новые Блогометки:

  • "Десктопизация" OpenBSD
  • weather: проверяйте сводку и прогноз погоды из командной строки
  • hpodder: клиент подкастов, который просто работает
  • bc: язык численных расчетов с произвольной точностью
  • Decibel: аудиоплеер для людей
  • GNU Wget: загрузите весь понравившийся сетевой контент на локальный компьютер
  • Deborphan: найдите ненужные пакеты
  • Kivio: мощный и простой в использовании редактор блок-схем
  • Cowsay: настраиваемая говорящая и думающая корова
  • Thoggen: основанная на GTK+ программа для извлечения видео с DVD
  • 28 февраля

  • Подбор и развитие команд
    Глава из книги «Руководство командой разработчиков программного обеспечения. Прикладные мысли» (С.Архипенков)
  • citforum.ck.ua:

    Дискуссия об анонимусах:

  • К комментаторам
  • Windows против Linux - психологический портрет участников форумов
  • Новые Блогометки:

  • Nokia N810 - Linux Inside
  • LiMo - стандарты Linux для сотовых телефонов
  • timer-applet: таймер для панели GNOME
  • Debfoster: удалите пакет и все его зависимости
  • GPW: генератор произносимых паролей
  • AMOR: общество для рабочего стола
  • 20 февраля

    citforum.ck.ua:

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

  • Кое-что о приложениях KDE 4
  • Инструкция по установке KDE 4 в Ubuntu
  • Настоящие мужчины ставят KDE из SVN!
  • Начат переход Amarok на Qt 4.4
  • Marble
  • Dillo - сверхбыстрый браузер
  • Создаем резервные копии настроек программ и важных файлов в Ubuntu LInux
  • NTP: всегда вовремя
  • VYM - простое средство зарисовки мыслей и планирования
  • KBibTeX: простой и гибкий редактор библиографий для KDE
  • Дискуссия Windows vs Linux:

  • Жил-был Мальчик, или Сказочка о Том, Откуда Берутся "КУЛХАЦКЕРЫ", ненавидящие Линукс и Юникс
  • 13 февраля

  • Терминологический словарь Wi-Fi
  • Задача проектирования базы данных методом нормализации
  • CitCity:

  • Лучшие смартфоны начала 2008 года
  • citforum.ck.ua:

  • Первый взгляд на Firefox 3.0
  • Open Source на Белгородщине: семинар в Старом Осколе
  • Что такое KDE?
  • Цикл о Slackware:

  • Русский в консоли
  • Быстрая настройка Иксов
  • xorgconfig - консольный подход
  • 6 февраля

    citforum.ck.ua:

  • Мобильный Linux – вчера, сегодня, завтра
  • Чем записать диски в Linux? Попробуй Brasero!
  • Консольные команды
  • Рецепты. Кое-что о программе mplayer
  • Slackware:
    • Что такое Slackware?
    • Установка Slackware - Загрузка
    • Категории программного обеспечения
    • Структура файловой системы
    • Система инициализации Slackware Linux
    • Скрипты инициализации уровня запуска

    30 января

  • Обзор алгоритмов MOLAP
  • CitCity:

  • BI-технологии 2007. Итоги года
  • Рынок СУБД для Хранилищ данных 2007. Итоги года, тенденции
  • Обзор рынка BI (по результатам исследований IDC, OLAP Report, Gartner)
  • Модель зрелости BI
  • citforum.ck.ua:

  • Владимир Попов: За что я люблю Linux
  • Священные войны
  • 23 января

  • Data Mining от Oracle: настоящее и будущее
  • Комментарии к статье Ч.Бергера «Data Mining от Oracle: настоящее и будущее»
  • Байесовский классификатор и регрессионная модель в ORTD: практический пример
  • citforum.ck.ua:

    Дискуссия Windows vs Linux:

  • Программисты и фирмы: кто кого
  • О "чистых пользователях"
  • Новые Блогометки:

    • Почему Jabber, а не ICQ?
    • Archlinux install quick
    • Arch на IBM Z60m
    • Arch + IBM R50e
    • OpenBSD - сборка E17-cvs (или ещe одна маленькая победа разума)
    • OpenBSD - всe для Человека и ради Человека...
    • PekWM
    • E17 и "прозрачность"
    • E17 - приятные мелочи (multimedia)
    • SuSE + Enlightenment = угробил целый день

    16 января

  • Вьетнам компьютерной науки (пересказ - С.Кузнецов)
  • Пример построения автоматизированного управления дисками (ASM) (В. Пржиялковский)
  • CitCity:

  • 2008 год: антипрогноз
  • citforum.ck.ua:

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

    Сети и Интернет:

    • Mozilla firefox. Шрифты в меню
    • Screen tips
    • Liferea: программа чтения RSS для GNOME
    • HTTrack: скачивание и зеркалирование сайтов
    • Clusterssh: работа с несколькими сеансами SSH через общий интерфейс

    Десктопы:

    • Fluxbox & xinitrc. Some new tips
    • Как я конфигурировал xdm

    Системы:

    • SuSE 10.2: zypper - еще один способ установки пакетов
    • cpipe: определите пропускную способность конвейера команд
    • gddrescue: средство восстановления данных с поврежденных носителей
    • VirtualBox: ваш виртуальный ПК

    Приложения:

    • MyTop: top для MySQL

    10 января

    citforum.ck.ua:

    Дискуссионный клуб:

  • Краткое руководство по общению с никсофилами (Интенсификация Малаховна Сергина-Гейтс)
  • О троллях
  • Пещера горного короля: заметки о троллинге
  • Новые Блогометки:

    Сети и Интернет:

    • Делаем блог на Drupal
    • Использование lftp
    • Устанавливаем FTP сервер ProFTPd с TLS шифрованием
    • Управляем файлами на FTP сервере с помощью FileZilla

    Десктопы:

    • fluxbox.autorun
    • 15 человек на сундук мертвеца! (или песнь о зарытых сокровищах)

    Системы:

    • Живой Debian или рабочее место в кармане
    • Разбивка hdd

    Приложения:

    • Cat Excel files
    • Vim: меню выбора кодировок

    26 декабря

    citforum.ck.ua:

  • В Блогометках открыты разделы:
    • Софт для Windows
    • Сети и Интернет
  • dwm. От статики к динамике
  • Установил Solaris
  • Новая Дискуссия:
    • Нужен ли русский Linux?

    19 декабря

  • SQL Anywhere: встраиваемая СУБД
  • citforum.ck.ua:

  • В разделе Блогометки появились рубрики:
    • Десктопы
    • Приложения
    • Системы
  • Подробно о разделе: Блоги и блогометки: открываем сезон промывки
  • 13 декабря

    CitCity:

  • Microsoft и Барселона: сюрреализм?
  • citforum.ck.ua:

  • Открыт новый раздел Блогометки
  • ZFS в подробностях. 1. Былое и ныне
  • 5 декабря

  • Архитектура предприятия: основные определения
  • Архитектуры для государственных ведомств. Примеры
  • Обзор журнала Computer:

  • Высокопроизводительные встроенные системы
  • citforum.ck.ua:

  • Продолжение цикла Linux для начинающих:
    • Пользовательские интерфейсы
    • Файлы
    • Системы настройки

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




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

Информация для рекламодателей Пресс-релизы -
Послать комментарий
Информация для авторов
Rambler's Top100 This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2007 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...