Поскольку в основу Bigloo заложен язык программирования Scheme, в синтаксисе мы не обнаружим сколько-нибудь существенных различий. Ведь главная задача Bigloo - доводить scm-файлы до состояния объектных файлов, которые можно компоновать с другими модулями при создании программ. В этой статье мы более подробно остановимся на синтаксических особенностях, функциях и процедурах стандартной библиотеки Bigloo.
GNU Guile представляет собой интерпретатор и «по совместительству» виртуальную машину языка программирования Scheme, то есть, его можно использовать и как командную оболочку в интерактивном режиме, и как встраиваемый в программы на компилируемых языках инструмент создания расширений. Lisp-синтаксис не всем нравится и не всем подходит (вплоть до полного неприятия), тем не менее — по моему мнению, Guile заслуживает внимания. В этой части я ограничился самыми простыми примерами, не углубляясь в тонкости применения языка программирования Scheme, поскольку это всего лишь обобщённый предварительный взгляд на интерпретируемую программную среду Guile.
При первом взгляде на компилятор Bigloo становится очевидной одна из основных целей его применения — подготовка и генерация файлов-модулей, которые не являются законченными программами, а представляют собой элементы, используемые при сборке C, Java или .NET-приложений.
Эта статья открывает цикл, посвящённый Scheme-компилятору Bigloo. В ней приводится общий обзор компилятора Bigloo, его функциональные характеристики и особенности его применения.
MySQL и PostgreSQL – две наиболее популярные open-source базы данных в мире. Каждая база имеет свои особенности и отличия. Вначале поговорим об истории развития и архитектуре программных продуктов, а затем перейдем к сравнительному анализу. В статье речь идет о небольшом вводном курсе для тех, кто еще не определился с выбором ПО.
В статье на примере простейшего скрипта рассмотрены вопросы применения текстовых файлов при программировании для Web, а также проблемы, связанные с такими файлами. Показано значение СУРБД как системы, решающей эти проблемы. Рассмотрены принципы построения СУРБД в общем, и MySQL – в частности. Детально описана MySQL, применяемая при разработке Web-приложений. Рассмотрены основы работы с MySQL, принципы построения и проектирования БД в рамках MySQL. Описаны основные команды, применяемые при работе MySQL, типы данных и приведены примеры их использования.
В цикле статей приведено краткое сравнение MTA sendmail, exim и postfix. Показаны их сильные и слабые стороны применительно к использованию в качестве серверных почтовых платформ.
Досконально рассмотрен процесс построения почтовой системы на базе Ubuntu Linux и MTA postfix. Рассмотрены два варианта применения API для антивирусной и антиспамовой программ – clamsmtp и amavis-new.
Изложена технология использования виртуальных почтовых доменов и несистемных учетных записей при заведении пользователей в почтовую систему, что существенно повышает безопасность всего комплекса. Все особо критичные моменты сопровождены авторскими работоспособными листингами конфигурационных файлов и системных отзывов при вводе особо критичных команд.
Эта статья открывает цикл материалов об организации совместной разработки программного обеспечения на базе SVN, DocBook и Mantis. В ней будет сделан обзор программного обеспечения и освещены некоторые вопросы.
Материалы, изложенные в статье, будут интересны тем, кто занят в программных проектах, где задействовано более одного человека и требуется определенным образом увязывать результаты совместной работы в виде программного кода и документации. Проблема делится на две основные части: организация работы (следует сразу отметить, что без четкой организации работы использование любых самых удачных и прекрасных программных средств однозначно обречено на полный провал) и программная поддержка (речь не идет о средах программирования, CASE-средствах и прочем, что позволяет в результате получить программный код, скрипты, визуальные формы и т. д.).
Для обеспечения стабильной и производительной платформы для работы связки apache, mysql и php широко применяются различные дистрибутивы GNU/Linux.
Web-сервер (как программный комплекс) должен быть хорошо подготовленной и надежно защищенной системой, обеспечивающей высокопроизводительную платформу для работы не только http-сервера, но и СУБД. Язык php широко используется при разработке Web-приложений совместно с apache и СУБД mysql. Установить и настроить рабочую среду для обеспечения функционирования связки apache, mysql и php можно несколькими путями, одним из которых является установка готовой среды, включающей всю связку и вспомогательные программы (XAMPP), или путем установки соответствующих бинарных пакетов при помощи штатного системного установщика. Возможна сборка ПО из исходных текстов, но эта тема в рамках данной статьи не рассматривается.
Все приведенные методы могут обеспечить создание высокопроизводительной платформы для разработки Web-приложений на базе Linux.
DbMail – легкий и быстрый агент хранения почты, который легко настраивать и поддерживать.
На текущий момент существует относительно большое количество агентов доставки почтовых сообщений конечному пользователю. Среди наиболее известных imap- и pop3-серверов для unix-подобных систем можно назвать: dovecot, courier-imap и Cyrus. DbMail – это такой же сервер, как и вышеназванные, но имеющий одно важное отличие - то 100%-ная интеграция с реляционными базами данных (MySql, PostgreSQL и т.д.) Под 100% понимается авторизация, хранение заголовков и тела письма, хранение вложений письма в базе данных. Такой подход дает некоторые преимущества над стандартными схемами хранения maildir и mailbox.
Общеизвестный факт – GNU/Linux имеет минимум три неоспоримых преимущества:
возможность выбора из множества конкурентоспособных дистрибутивов, как бесплатных, так и платных/с платной поддержкой, причем разница между первыми и вторыми относительно невелика. Снижается, таким образом, и зависимость от вендора;
сравнительно невысокая совокупная стоимость владения. Помимо комбинаций из бесплатных и платных решений, предприятия, использующие Linux, существенно экономят при миграции с одного продукта на другой, альтернативный;
высокая портируемость. Linux портируется на огромное (пожалуй, даже максимально возможное) количество аппаратных платформ – от IBM System z и POWER, архитектуры SPARC (Sun Microsystems), линейки HP Integrity на базе Itanium до, конечно же, архитектуры x86 и платформ типа ARM для мобильных устройств.
Собственно два последних фактора – дешевизна и совместимость с «архитектурой массового потребления» х86 – немало способствовали росту популярности GNU/Linux в корпоративном, образовательном и других сегментах рынков многих стран, включая Россию. Разумеется, большей частью в качестве серверных ОС. Эксперты добавляют к лаконичному списку достоинств надежность, безопасность и стабильность Linux-решений.
Другой общеизвестный факт: на конец первого квартала 2010 года доля GNU/Linux на рабочих станциях по-прежнему не превышает 1% во всех сегментах рынка РФ.
Между этими фактами лежит теория и практика внедрений СПО в России, «русская страница» Linux. Начать ее стоит с общей картины, представленной экспертами регионального рынка СПО.
В статье раскрывается понятие статической маршрутизации, ее преимущества и недостатки при использовании в локальных сетях. Описываются средства создания и редактирования традиционных и множественных таблиц маршрутизации со статическими маршрутами при помощи стандартных утилит GNU/Linux и пакета iproute2.
В этой статье мы рассмотрим сетевые взаимодействия нашей программы с другими: посмотрим, как можно организовать серверную часть соединения по протоколу TCP и познакомимся с несколькими вариантами ожидания входящих данных.
В предыдущих статьях цикла мы рассматривали некоторые стороны внутренней работы и внутреннего устройства нашего сервера. Теперь приступим к разбору сетевого взаимодействия нашей программы с другими: посмотрим, как можно организовать серверную часть соединения по протоколу TCP и познакомимся с несколькими вариантами ожидания входящих данных. Кстати, вопрос ожидания данных не так прост, как может показаться на первый взгляд, так как чем дальше (в контексте сетевой топологии) программа-клиент от нашего сервера и чем хуже канал связи с ней, тем сложнее наладить надёжное взаимодействие между программами. Задача разработчика на этом этапе – приложить максимум усилий к тому, чтобы на серверной стороне эффективно использовались все возможные средства и способы для надёжной передачи данных. Хорошая новость здесь в том, что многие задачи уже решены разработчиками TCP, однако нам нужно не похоронить толковые идеи разработчиков TCP, а использовать их на благо своего приложения.
В этом цикле статей рассматривается библиотека, обеспечивающая взаимодействие приложений, написанных на языке C++, с системой управления базами данных MySQL. В первой статье приводится общая характеристика библиотеки MySQL++, её функциональные возможности иллюстрируются простым примером.
В первой статье автор подробно разоберет функциональные возможности библиотеки MySQL++, её достоинства и недостатки. Начну с общих характеристик MySQL++.
В этом цикле статей мы представляем общий обзор Qt и компонентов QtCore. Мы уже рассмотрели: инструменты разработчика и объектную модель; варианты, защищенные указатели и ссылки; библиотеку контейнеров. В этой, четвертой, статье мы рассмотрим библиотеку алгоритмов, а также работу с флагами и массивами битов.
В современных операционных системах существует понятие межпроцессного взаимодействия (Inter-Process Communication – IPC) – это набор способов обмена данными между процессами и/или потоками. Одним из таких способов обмена служат сигналы. Концепцию сигналов поддерживает большинство операционных систем, но, например, Windows, не имеет их полноценной поддержки для использования в качестве одного из способов IPC – в подобных операционных системах сигналы лишь реализованы в стандартной библиотеке языка C.
В первой статье цикла – «Основы работы с сигналами» – описана общая концепция сигналов (так, как ее видит POSIX) и даны основы работы с сигналами – отсылка сигнала, ситуации, когда она происходит, обработка принятого сигнала и создание своего обработчика.
Во второй статье цикла – «Дополнительные сведения о сигналах» – будет дана информация о получении контекста сигнала и об отправке данных вместе с сигналом. Также будет рассказано о сигналах реального времени.
В этом небольшом цикле статей будут рассматриваться инструментальные средства командной оболочки shell, предназначенные для выполнения разнообразных заданий в запланированное время с учётом возможностей их автоматического запуска.
В первой статье описываются самые простые утилиты и режимы функционирования с элементами автоматизации.
Вторая статья посвящена специализированным средствам планирования выполнения заданий: at (batch) и cron.
Devil Linux является одним из наиболее мощных, масштабируемых и свободных систем, способных решать все основные задачи, возлагаемые на серверные дистрибутивы, предназначенные для создания маршрутизаторов и межсетевых экранов.
В статье подробно изложен процесс установки и настройки операционной системы Devil Linux, которая является идеальным инструментом для быстрого построения роутера/файервола на базе загружаемого CD-ROM без необходимости использования жесткого диска.
Часть 2. Обзор и краткое сравнение почтовых систем на базе sendmail, postfix, exim
В этой статье будет формально описана работа sendmail и произведен сравнительный анализ популярных MTA sendmail, postfix, exim, после чего рассмотрим процесс построения почтовой системы на базе FreeBSD+sendmail с включением в связку программы защиты от вредоносного кода с помощью clamav и программы защиты от спама spamassassin.
Часть 2.1. Построение почтовой системы на базе FreeBSD+sendmail+clamav+spamassassin
В этой статье пошагово описан процесс настройки и ввода в эксплуатацию MTA sendmail с подключением к нему антивирусного фильтра clamav и программы борьбы со спамом spamassassin. Приведены их рабочие конфигурационные файлы, описаны способы установки и настройки. Подробно описан один из распространенных пакетных фильтров (брандмауэров) ipfw. Приведена его рабочая конфигурация с учетом особенностей описываемой системы. Все особо важные шаги сопровождаются показом работоспособных листингов и снимками рабочего экрана, подтверждающими излагаемый материал и дополняющими его содержание.
Обычно администратор UNIX® регулярно применяет ряд утилит, приемов и систем. Для упрощения различных процессов можно использовать стандартные утилиты, интерфейс командной строки и сценарии. Часть этих инструментов поставляется вместе с операционной системой, но большая часть приемов нарабатывается на основе практического опыта и желания администратора упростить свою жизнь. Цель этой серии статей – рассказать о большинстве доступных инструментов для различных UNIX-систем, включая средства упрощения администрирования гетерогенных сред.
В статье описаны способы записи и проверки корректности конфигурационных файлов.
Начало 2004 года ознаменовалось грандиозным для компьютерного мира событием, о котором в восторженных выражениях сообщило большинство новостных изданий: «Linuх теперь запускается в Windоws», «Linuх и Windоws не перегружаются», «Гениальный студент изменил компьютерный мир». Это было не что иное, как победоносное шествие Cooperative Linux (coLinux). Анонсы сообщали, что наконец-то нашёлся действенный способ «породнить» разные ОС, для чего разработчиками использовалось весьма нетривиальное решение: осуществление запуска Linux-ядра отдельным процессом в Windows.
В этой статье автор рассказывает об основных элементах coLinux,
его преимуществах и недостатках. Как проводится установка сoLinux, компиляция дистрибутива coLinux в Windows и настраивается сеть.