воскресенье, 18 марта 2012 г.

Третий выпуск русскоязычной редакции журнала BSD Magazine

Опубликован (PDF, 8.2 Мб) третий номер русскоязычной редакции журнала BSD Magazine, в котором представлен перевод февральского номера.
В выпуске:
  • Настройка рабочего места на базе PC-BSD 9.0 с учётом своих предпочтений;
  • Обзор инструментария mport, используемого для управления пакетами в MidnightBSD;
  • Примеры программ для решения различных задач через интерфейс командной строки;
  • Установка, настройка, основы использования и выработка стратегии резервного копирования СУБД PostgreSQL;
  • Использование SUN Java и Netbeans в OpenBSD;
  • Выработка политики безопасности и классификация уровней важности данных;
  • Рассказ о принципах работы и типах балансировщиков нагрузки;
  • Третья часть статьи с обзором утилит для защиты и проверки безопасности FreeBSD;

Интегрированные среды разработки в Linux

Интегрированные средства (среды) разработки (IDE) не являются критически необходимым компонентом программной разработки. В традициях UNIX вполне достаточным для ведения программной разработки считается использование текстового редактора, обладающего дополнительными развитыми свойствами, такими как цветовая разметка текста, функции контекстного поиска и замены... Удовлетворяющих таким требованиям редакторов в Linux великое множество, начиная с традиционных vim и Emacs, и до простого редактирования в mc по F4. Опыт использования показывает, что этих средств вполне достаточно вплоть до средних размеров проектов.
Но использование IDE часто позволяет более производительно вести отработку программного кода, оперативнее выполнять в связке цикл: редактирование кода — сборка проекта — отладка. Значительно возрастает роль IDE в разработке GUI приложений, потому как большинство IDE предполагают в своём составе визуальные построители графических экранов.
Под Linux доступно весьма много разных IDE, различной степени интегрированности. Их уже настолько много, что становится бессмысленным описывать все, или значительную их часть в деталях: использование тех или иных IDE становится, в значительной мере, вопросом субъективных предпочтений и привычек. Можно перечислить только несколько из 1, числа наиболее широко используемых IDE (и показан их внешний вид, чтобы их «различать в лицо»):
  1. Kdevelop (http://kdevelop.org/) - среда разработки проекта KDE, активно развивается с 1998 г. Kdevelop помимо проектов на языке C, позволяет вести проекты практически на всех используемых в Linux языках: C++, Perl, Python, PHP, Java, Fuby, Ada, Bash, Pascal, Fortran. Эта среда позволяет интегрировать (технология KParts) различные текстовые редакторы, но основным редактором является Kate.
    Kdevelop плотно интегрирован с Linux (в отличие от большинства других IDE он не является много-платформенным). Среда умеет генерировать начальные скелеты приложений. Отличительной особенностью Kdevelop (большим плюсом в некоторых случаях) является то, что среди таких шаблонов есть и проект модуля ядра (драйвера) Linux:

















    Шаблоны проектов Kdevelop (архив Kdevelop.tgz) достаточно громоздкие. Но это свойственно всем IDE. Вот как выглядит простейший проект, построенный для Cmake, после очистки от построенных исполнимых файлов:
$ make clean
...
$ du -hs
248K.





  1. Eclipse IDE (Eclipse Integrated Development Environment, http://www.eclipse.org/) - одна из наиболее известных на сегодня сред, активно развивается с 2000г., сначала как проприетарный проект IBM, который затем был превращён в открытый проект. Отличительной особенностью является возможность динамических расширений (которые может подготовить и рядовой пользователь), за счёт этого наработаны плагины для поддержки десятков языков программирования, среди которых: Java, C/C++, PHP, Python и многих других, число которых постоянно прирастает из-за лёгкости работы с плагинами.
    Эта среда разработки представлена практически для всех операционных систем, за счёт того, что сама она полностью выполнена на Java. Но Eclipse IDE является мульти-платформенной средой не только в смысле множества операционных систем, где она может выполняться, но и множества аппаратных платформ, отличных от x86, для которых может вестись кросс-разработка: ARM, MIPS, PPS ... и даже микроконтроллеры, например, AVR. Помимо средств разработки, в Eclipse IDE включаются в виде плагинов программные эмуляторы других аппаратных платформ (например, Android ARM) для целей отладки. На основе Eclipse IDE сторонними разработчиками создано много других IDE, специализированных под конкретные применения, и это создаёт сложности в выборе конкретной модификации IDE.
    Eclipse IDE представлен в репозитариях практически любого дистрибутива Linux, откуда может быть установлен. Но проект развивается очень динамично, поэтому, возможно, есть смысл устанавливать наиболее свежую реализацию с сайта проекта.
    На рисунке показан возможный вид в Eclipse IDE минимального проекта, отрабатываемого под архитектуру ARM7:
$ file factorial
factorial: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped




  1. Oracle Solaris Studio (http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html - бывший проект Sun Solaris Studio), один из старейших проектов, изначально ориентирован на операционную систему Solaris, но там же есть альтернативная реализация для Linux. Компилятор в составе Solaris Studio (сс) обладает особыми оптимизирующими свойствами и нередко генерирует более эффективный и быстродействующий код, чем gcc. Но среда может быть настроена и на использование компилятора gcc. Ориентирован на языки программирования: C, C++ и Fortran, с дополнительными плагинами от сторонних производителей (устанавливаются непосредственно из Solaris Studio): Java, PHP, Python, Ruby, Ada (но это может потребовать дополнительной установки Oracle JDK).

    Solaris Studio основан на NetBeans IDE, выполнен на Java (как и большинство средств OS Solaris). Имеет очень богатые настройки (архив SolarisStudio.tgz), в том числе и в части используемых компиляторов:

    Solaris Studio не представлен в репозитариях дистрибутивов Linux, и должен устанавливаться из инсталляционных файлов с сайта Oracle (указан выше). Установка бинарная.
  2. IntelliJ IDEA (http://www.jetbrains.com/idea/), проект, активно развиваемый с 2000 г., ориентированный на язык Java, но имеющий развитые инструменты разработки и отладки под Android (имеет эффективный эмулятор Android, основанный на виртуальной машине QEMU). Развиваются две реализации IDE: свободная (общедоступная) и профессиональная (проприетарная).
    Вот как выглядит в IntelliJ IDEA проект для Android (архив IDEA.tgz) и эмулятор Android в котором это приложение отлаживается:
    При запуске IDEA из терминала вы можете увидеть предупреждение:
$ ./idea.sh
OpenJDK Runtime Environment (IcedTea6 1.8.3) (fedora-43.1.8.3.fc12-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)
WARNING: You are launching IDE using OpenJDK Java runtime
...
NOTE: If you have both Sun JDK and OpenJDK installed
please validate either IDEA_JDK or JDK_HOME environment variable points to valid Sun JDK installation
    Но это предупреждение, в равной мере, относится ко всем IDE, реализованным на Java (а все наиболее развитые IDE реализованы именно на Java: Eclipse IDE, Solaris Studio, ...) - все они предпочитают (работают эффективнее) использование оригинального Sun JDK, а не OpenJDK. Sun JDK можно свободно загрузить с сайта Oracle и установить в своей системе (пожалуй, это следует сделать, если вы планируете активно использовать IDE построенные на Java).
  1. Code::Blocks IDE (http://www.codeblocks.org/) — свободная много-платформенная среда разработки, сама система написана на С++, с использованием переносимой графической библиотеки wxWidgets (http://www.wxwidgets.org/). Поддерживает языки программирования С и С++, но для разнообразных операционных систем (Windows, Linux, Mac OS X), среду можно собрать практически под любую UNIX систему, например FreeBSD. Обеспечивает кросс-разработку под ряд используемых процессорных платформ (ARM, AVR). Среда создаёт шаблоны приложений и поддерживает разработку для многих графических платформ (GTK+, Qt, wxWidgets, GLUT и другие), поэтому может оказаться особенно удобной для проектирования GUI приложений.
    Эта среда предполагает использование (на выбор) различных компиляторов С/С++ из числа установленных в системе:

    Кроме того, Code::Blocks предлагает очень расширенный набор шаблонов для создаваемых приложений (различные платформы, различные графические библиотеки):




    Проекты, созданные Code::Blocks, очень компактны, что приятно отличает её от многих других IDE (здесь показан объём вместе с собранным бинарным приложением):
    $ du -hs first
    40K first
  2. Geany (http://www.geany.org/) — популярная среди многих разработчиков, простая в обращении, много-платформенная среда разработки. По существу, Geany не является IDE, а есть развитый инструмент редактирования кодов с цветовой разметкой, встроенным вызовом gcc, make, ... Благодаря такой специфике Geany используется для при разработке программ более чем на 40 языках программирования, среди которых: C/C++, Java, JavaScript, Tcl, PHP, Python, XML/HTML и другие.
    Geany работает не с какими-либо специфическими проектами, а с файлами программного кода, собираемыми традиционным make. На рисунке показан вид в Geany обсуждавшегося ранее приложения создания библиотек, ниже виден запущенный в окне терминала Geany менеджер mc (отсутствие специфических для IDE «наворотов» и определяет гибкость и универсализм Geany):
  3. Glade (http://glade.gnome.org/) — Glade не является IDE в том смысле, как описанные ранее. Это свободная система визуального создания графических интерфейсов (GUI), которая может создавать шаблон практически под любую графическую библиотеку (сам Glade написан на основе GTK+). Создадим шаблон приложения (архив Glade.tgz):
$ wxglade
...

    Дальше нам остаётся написать сценарий сборки (Makefile) для сгенерированного шаблона приложения, в случае использования wxWidgets это будет что-то типа:
CCOPT = `wx-config --cxxflags`
LDOPT = `wx-config --libs`
app: app.cpp
g++ $(CCOPT) $(LDOPT) $< -o $@
    Далее мы можем открыть полученный проект для дальнейшей работы в уже рассмотренный ранее Geany... Тем самым устраняется нагромождение «под одной крышей» слишком интегрированных IDE: и генерации визуальных образов GUI, и отработка программного кода.
Это далеко не все IDE, активно применяемые в разработках в Linux. Из других некоторые стоило бы хотя бы просто назвать «по имени»:
  • Anjuta (http://www.anjuta.org/) - официальная интегрированная среда разработки проекта GNOME, для разработки на языках: C, C++, Vala, Java, JavaScript, Python. Особенно хорошо подходит для разработки GUI приложений.
  • QDevelop (http://code.google.com/p/qdevelop/) в связке с QtDesigner (http://trolltech.com) или Qt Creator (http://trolltech.com/developer/qt-creator) — представляют собой мощный комплекс для отработки графических приложений, базирующихся на библиотеке Qt. Qdevelop представляет собой облегчённую версию Kdevelop, хотя и построен на совершенно отличном коде. Развитие Qdevelop начато в 2006г.
  • HaiQ (http://groups.google.com/group/haiq/) — ещё одна много-платформенная IDE, ориентированная на разработку с использованием библиотек Qt.
Приведенный беглый обзор ни в какой мере не рассчитан как объективное представление или сравнение всех доступных в Linux средств разработки. Заметим здесь, что разнообразных средств разработки в Linux намного больше, чем в Windows, но это разнообразие создаёт и некоторую растерянность в выборе оптимальных инструментов под конкретный программный проект. Некоторое сравнение (но также ограниченное) можно найти по ссылке http://ru.wikipedia.org/wiki/Сравнение_средств_разработки .

Настоящая статья является дополнением к книге «Инструменты Linux для Windows-программистов». Все примеры к тексту вы можете скачать в виде общего архива

Релиз Cinnamon 1.4 – рабочего стола с интерфейсом Gnome 2


Вышел Cinnamon, форк Gnome Shell от разработчиков Mint.
Основные изменения:
  • Вид для показа всех окон на рабочем столе (по виду как Compiz Scale)
  • Апплет настроек панели.
  • Новые возможности конфигурации:
    • Поиск по апплетам
    • Апплеты и дополнения рассортированы по алфавиту.
    • И многие незначительные.
  • Улучшения в списке окон:
    • Меню для переноса окна на другой рабочий стол.
    • Менять порядок переносом.
    • И многие незначительные.
  • В меню приложений теперь множество функции доступно через drag & drop.
  • Многие улучшения в работе с апплетами, например, теперь в меню настроек апплета есть пункт удалить/добавить апплет.
>>> Подробности

Установка Cinnamon 1.4

Пользователи Linux Mint 12 могут установить из репозитория, для Ubuntu 11.10 и 12.04 можно воспользоваться PPA:

sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
 sudo apt-get update
 sudo apt-get install cinnamon

Встречайте - Audacity 2.0


 Команда разработчиков популярного кроссплатформенного аудиоредактора с открытым исходным кодом Audacity с большой радостью сообщает о выпуске данного приложения версии 2.0, выросшего из 1.3 beta и пришедшего на замену версиям 1.2.6 и 1.3.14. Среди улучшений можно выделить:
  • Значительные улучшения качества многих востребованных плагинов, в том числе дополнений «Эквалайзер», «Нормировка», «Удаление шума».
  • Увеличение числа удобных комбинаций клавиш для управления дорожками и выделенными фрагментами.
  • Новая панель для выбора устройств ввода и вывода звука.
  • Быстрый экспорт в форматы WAV/AIFF при записи звука из внешнего источника.
  • Полная поддержка FLAC.
  • Поддержка FFmpeg для открытия и сохранения файлов в форматах AC3/M4A/WMA, а также импорта звуковых дорожек из видеофайлов.
  • Улучшение работы функции Sync-Locked Tracks, позволяющей при удалении или изменении длины фрагментов автоматически изменять аудиодорожки и дорожки пометок, находящиеся в пределах соответствующей группы дорожек.
  • Добавление диалога микширования треков с измерителями уровня звука для каждой дорожки.
  • Большое количество исправлений старых ошибок, в том числе, ранее приводивших к падению Audacity.
  • Автоматическое восстановление несохраненной сессии после аварийного завершения работы приложения.
Попробуйте новый Audacity для своих аудиопроектов!

Ubuntu наращивает долю на рынке крупных промышленных систем

Марк Шаттлворт опубликовал в своем блоге интересную информацию и заявил о значительном увеличении доли промышленных решений на базе серверной редакции Ubuntu:
Замечательная вещь случилась в этом году: компании начали внедрение Ubuntu вместо RHEL для крупномасштабных промышленных решений, в массовом порядке.
График: Ubuntu vs RHEL on Public Web Services

Он отмечает, что благодаря интеграции компонентов OpenStack, качеству и продуманному дизайну, Ubuntu на сегодня является достаточно сильным игроком на рынке облачных систем и систем для обработки больших объёмов данных, а также веб-серверов.
Согласно исследованию, проведённому W3Techs по статистике использования и доле рынка Linux для веб-серверов, распределение среди дистрибутивов следующее:
  • Debian 30%
  • CentOS 28.9%
  • Ubuntu 18.4%
  • Red Hat 12.2%
  • Fedora 5.0%
  • SuSE 3.0%
  • Gentoo 1.2%
  • (Дистрибутивы расположившиеся ниже набирают каждый от 0.1% и менее)
  • Unknown 1%
Статистика W3Techs

>>> Подробности на markshuttleworth.com

Google переводит международные версии поисковика на защищенный протокол

Изначально получить доступ к защищенной версии Google можно было вводя в адрессной строке encrypted.google.com. Чуть позже в английской версии сделали автоматическое переключение на https:// даже если пользователь прямо не указывал этого.
В течение следующих нескольких недель Google планирует использовать защищенный протокол также во всех национальных версиях поисковика. Если https еще не активен, то его все равно можно использовать, вводя полный адрес типа https://google.com.ua



Использование протокола https означает, что все запросы передаются в зашифрованном виде и анализ трафика, в том числе провайдером, не покажет что именно искал пользователь в Google.

Если бы в Super Mario делали упор на реализм