В этом цикле статей рассматривается библиотека, обеспечивающая взаимодействие приложений, написанных на языке C++, с системой управления базами данных MySQL.
В данном цикле статей рассматривается make-подобная система сборки программ из файлов исходного кода. В первой статье описываются общие характеристики Jam, структуры файлов Jambase и Jamfile и обработка дерева каталогов, содержащих файлы исходного кода. Во второй статье основное внимание будет уделено правилам создания выполняемых программ и библиотек, а также процедурам компиляции и сборки. Третья, заключительная статья цикла будет посвящена управлению файлами в системе Jam, то есть, копированию и установке готовых программ и вспомогательных файлов; кроме того, будет приведён пример файла Jamfile для создания приложения.
Этот цикл статей рассказывает о GNU Guile — интерпретаторе языка программирования Scheme. Пришло время вспомнить о том, что Guile заявлен не только как интерактивная оболочка-интерпретатор, но и как встраиваемый язык расширений. Поэтому в данной статье мы рассмотрим, каким образом можно заставить совместно работать Guile и компилируемый язык программирования — на примере C.
Сегодня блоги — это не просто персональные дневники; они стали идеальной платформой публикации в Интернете. Внутри предприятия блоги часто являются центральным каналом взаимодействий в управлении, разработке и маркетинге, что делает важным выбор в качестве инструмента для ведения блогов открытого программного обеспечения, соответствующего стандартным XML API. Познакомьтесь с одной из таких программ, MetaWeblog (широко применяемый API блогов), и научитесь использовать этот API для написания своих собственных инструментальных программ для поддержки блогов.
Во второй статье рассматривается практическое применение интерпретатора. Интерпретатор лучше всего оценивать с точки зрения его практического применения. Разнообразные варианты командных оболочек shell, Perl, Python уже стали повседневными инструментами опытных пользователей, и на общем фоне Guile выглядит несколько непривычно. Тем не менее, этот интерпретатор способен выполнять весьма полезную работу, о чём и пойдёт речь в статье.
Поскольку в основу 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) и даны основы работы с сигналами – отсылка сигнала, ситуации, когда она происходит, обработка принятого сигнала и создание своего обработчика.
Во второй статье цикла – «Дополнительные сведения о сигналах» – будет дана информация о получении контекста сигнала и об отправке данных вместе с сигналом. Также будет рассказано о сигналах реального времени.