6/28/2011

запуск приложения, читающего стандартный ввод в GDB

Предположим у нас есть приложение, которое что-то читает со стандартного ввода 
и одновременно принимает ключи в командной строке. 

Q : Как запустить это приложение под GDB?
 
A
   gdb application
   gdb> run parameters ... < input_file

6/18/2011

Gentoo, Firefox и NS plugin wrapper.

Не забудьте после очередного обновления nspluginwrapper в Gentoo до версии 1.4.2 выполнить команду:

nspluginwrapper -i /opt/Adobe/flash-player32/plugin/libflashplayer.so

Иначе, у вас перестанет работать flash плагин.

6/14/2011

Вышел GNAT GPL 2011 с новыми вкусностями.

We are pleased to announce the release of GNAT GPL 2011, the integrated
Ada, C, and C++ toolset for Academic users and FLOSS developers.
This new edition provides many new features and enhancements in all
areas of the technology. The most notable ones are:

 - improved support for Ada 2012 
 - enhanced versions of tools 
    - GPS 5.0 enhanced IDE (improved support for C/C++, more powerful
      source editing, better usability, ….),
    - GtkAda (new widgets, interface to the Cairo graphics library)
 - more flexible and more efficient project manager tool
 - support for unloading Ada plug-ins
 - improved support for Ada constructs on the .NET platform
 - more detailed exception messages (-gnateE switch)
 - complete support for Lego MINDSTORMS hardware, including audio and
   I2C sensors

GNAT GPL 2011 comes with version 5.0.1 of the GNAT Programming Studio
IDE and GNATbench 2.5.1, the GNAT plug-in for Eclipse.

GNAT GPL 2011 can be downloaded from the "Download" section on
https://libre.adacore.com.

4/01/2011

Valgrind и glibc в Gentoo.

Для корректной работы валгринда требуется, чтобы glibc была собрана с отладочной информацией, дабы он смог из нее вытащить нужные функции.
В Gentoo glibc умолчанию собирается без нее.
Чтобы эту проблему исправить, необходимо чтобы для glibc генерировалась отладочная информация.
Для этого, добавляем в файл /etc/portage/env/sys-libs/glibc
строчку: FEATURES="splitdebug"
И пересобираем libc.

После этого, в каталоге /usr/lib/ появится каталог debug, в котором будет лежать файлы типа lib*.debug, содержащиеся требуемую информацию.

3/16/2011

Купить pandaboard в России

Подскажите, как заполучить pandaboard в России?
Официально в Россию это борда не доставляется.
Может у кого нибудь есть опыт покупки подобных железяк из России?

3/09/2011

Анонс AXMPP 0.0.1

Всем привет.
Хочу анонсировать первый релиз библиотеки AXMPP.

AXMPP - это реализация протокола XMPP для языка программирования Ада.
Это первый релиз библиотеки, которые включает в себя следующие возможности:
1. Поддержка безопасного соединения с помощью agnutsl (ada-binding для gnutls).
2. Реализация базовой части протокола XMPP:
    * Управление списком контактов (ростер).
    * Прием/отправка сообщений.
    * Поддержка конференций.
    * Поддержка информации о присутствии
    * Возможности управления ресурсами.
    * Возможность обработки/генерации IQ в сыром виде.
3. Поддержка расширения для получения информации о клиенте.

Ознакомиться с библиотекой, а также скачать исходники можно на сайте:

http://adaforge.qtada.com/cgi-bin/tracker.fcgi/axmpp

AXMPP распространяется под BSD подобной лицезией.

2/21/2011

KDE4 и кривой ~/.Xmodmap

После очередного обновления KDE 4 в Gentoo Linux, у меня на клавиатуре перестали работать клавиши 'Arrow Down' и 'End'.
Я долго пытался понять в чем проблема, но у меня так и не получилось, и  в качестве временного решения я добавил в стартовый скрипт, который запускался вместе с KDE команду для настройки xkb, который решал эту проблему:
 setxkbmap -layout "us,ru(winkeys)" -option "grp:switch,grp:toggle,grp_led:scroll"

Но на деле все оказалось совсем просто.
Оказывается, когда то давно, еще со времен третьих кед, я создал файлик .Xmodmap в домашней дирректории. Он был нужен, для того, чтобы в emacs работали хитрые комбинации клавиш. И видимо с из-за того, что с тех пор  многое изменилось и в X сервере и в KDE, этот файл начал негативно влиять на работу клавиатуры в KDE4. Его удаление решило проблему.

12/08/2010

Баг в PolyORB

Сегодня же был обнаружен неприятный баг в PolyORB. PolyORB - это реализация технологии CORBA для Ады от компании AdaCore.
Вот такая простая программка:

with CORBA.ORB;

procedure Test is
begin
   CORBA.ORB.Shutdown (True);
end Test;

Валится с  segmentation fault.

Видимо я первый додумался останавливить ORB не запуская его до этого :-).
Мелочь, а не приятно.

Баг в Qt

Понадобилось мне в QtAda использовать класс QProcess для запуска сторонних приложений и управления ими из моей программки.

В результате чего в Qt 4.7.1 был обнаружен баг:
Сигнал QProcess:started вырабатывается 2 раза при старте процесса.

Оказывается баг (QTBUG-7039) известен аж с 2009 года, и даже есть патч,
но отчего то Nokia не хочет исправлять эту ошибку. А жаль.

Вот пример приложения:

 /* my_object.h */

#include
#include
#include
#include

class My_Object : public QObject {

  Q_OBJECT

public:
  My_Object () {
    this->p = new QProcess;

    connect (this->p,
         SIGNAL (started()),
         this,
         SLOT(appStarted()));
  };

  void execute () {
    if (p)
      p->start ("ls");

    if (!p->waitForStarted (10000))
      qDebug () << "cannot start process" << p->exitCode ();
  }

public slots:
  void appStarted () {
    qDebug () << "Slot : Process Started" << p->pid ();
  }

private:
  QProcess *p;
};


/* main.cpp */
#include "my_object.h"

int main(int argc, char *argv[])
{
  My_Object *m = new My_Object;
  m->execute ();
  delete m;
}

После компиляции:

qmake -project && qmake && make
имеем:

./process
Slot : Process Started 16669
Slot : Process Started 16669

11/29/2010

Книжное.

Закончил чтение книги "Программист-прагматик. Путь от подмастерья к мастеру".
Хочу заметить, что это весьма интересное повествование о том как следует подходить к процессу разработки, какие при этом могут встретиться ошибки и заблуждения и как их преодолеть.
Рассматриваются такие вопросы, как борьба с недостатками разрабатываемого ПО, тестировани, создание динамичных, легких в сопровождении программ.


Рекомендую к прочтению.

10/10/2010

Новая версия библиотеки QtAda 3.1.0

В свет вышла новая версия библиотеки QtAda 3.1.0. Как и обычно, скачать
можно здесь:

http://www.qtada.com/ru/download.html

Нововведения:
- поддержка модуля QtOpenGL
- поддержка классов QDir, QFileInfo, QProcessEnvironment, QSettings, QUrl модуля QtCore
- поддержка классов QAbstractTextDocumentLayout, QColorDialog, QGraphicsObject, QGraphicsSimpleTextItem, QGraphicsTextItem, QImage,
QImageReader, QImageWriter, QPlainTextDocumentLayout, QRgb модуля QtGui
- поддержка дополнительных операций для классов модулей QtCore и QtGui
- поддержка смешанных GtkAda/QtAda приложений на платформах X11
- исправления ошибок и улучшение производительности

9/11/2010

KDE 4.5.1 в Gentoo

Ура, в дерево portage в Gentoo Linux наконец то добавили новую версию KDE: KDE-4.5.1.

Только что обновился. Пересобрать  пришлось 151 пакет.
Вся перекомпиляция максимум заняла пару часов.

Из новшеств можно отметить следующее:
1. Область уведомлений работает удобней, красивше и адекватней :-)
2. Сделали нормальный интерфейс для управления настроками, разместив все на основной вкладке программы.
3. Добавились всякие новый плазмоиды.

9/07/2010

Gentoo : dbus-glib

После очередного обновления в Gentoo, похоже обновился dbus или же-что то с ним связанное.
И всякие приложения, использующие dbus начали падать. Вот так:

>pidgin
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/pygst.py", line 28, in
    import sys
KeyError: 'pygst'
process 5938: arguments to dbus_connection_ref() were incorrect, assertion "connection != NULL" failed in file dbus-connection.c line 2556.
This is normally a bug in some application using the D-Bus library.
  D-Bus not built with -rdynamic so unable to print a backtrace
Аварийный останов



Оказалось все просто. Нужно сделать emerge dbus-glib и все начнет работать.

8/27/2010

Cups и HPLIP

Сегодня обнаружил, что мой принтер hp1018 перестал печатать. Оказалось, что после обновления CUPS до версии 1.4.4 драйвер foo2zjs перестал работать. А так как последняя версия ebuild-a датируется 2008 годом, пришлось настраивать в CUPS использование драйверов HPLIP. И надо сказать, что это оказалось весьма легко и просто.
Ставим HPLIP:
USE="X hpcups libnotify policykit qt4 static-ppds udev-acl -doc -fax -hpijs -minimal -parport -scanner -snmp" emerge -vat =net-print/hplip-3.10.6

Пересобираем CUPS (не знаю зачем, но без этого не работало):
USE="X acl dbus gnutls java jpeg pam perl png python samba slp ssl threads tiff usb -debug -kerberos -ldap -php -static -xinetd" emerge -vat net-print/cups-1.4.4

После этого запускаем hp-setup,настраиваем принтер, перезапускаем cups.
и вуаля, все должно заработать с пол-пинка.

8/19/2010

ANN: Matreshka 0.0.5

Hello, I'm happy to announce new version of Matreshka toolkit version 0.0.5 for Ada language.

This version includes following features:


  • Text decoder (New) : various text encodings are supported
  • Message translator (New) : for localization of application's messages
  • New extensions of string manipulation package (New)
  • XML reader (New) : supports socket as input source
  • XML reader (New) : incremental parsing of input xml stream supported
  • A lot of bug fixes and performance improvements.
New version can be downloaded here : http://adaforge.qtada.com/cgi-bin/tracker.fcgi/matreshka/downloader

5/04/2010

Ошибочка в примерах для gnutls

В примерах gnutls обнаружил небольшую ошибочку, при использовании  функции:
void gnutls_transport_set_ptr (gnutls_session_t session, gnutls_transport_ptr_t ptr);

Второй параметр этой функции - на самом деле void *, и поэтому правильно ее вызывать не так 
int sd = tcp_connect ();
gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) sd);


а так:
int sd = tcp_connect (); 
gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) &sd);

4/28/2010

Gprbuild, xmlada для дистрибутивов Debian/Ubuntu и Gentoo Linux.

Привет.
Я подготовил пакеты QtAda (www.qtada.com), gprbuild, xmlada для дистрибутивов Debian/Ubuntu и Gentoo Linux.

Для Gentoo Linux  я создал спецальный оверлэй ada-overlay. В неместь ebuild файлы для
gnat-gcc-4.4.3, gprbuild, xmlada и qtada. Запакованный оверлэй можно скачать отсюда:

    https://sourceforge.net/projects/qtada/files/Gentoo/ada-overlay.tar.bz2/download

Для Debian и Ubun Linux я создал .deb пакеты дял gprbuild, xmlada и qtada.

gprbuild package:
    https://sourceforge.net/projects/qtada/files/Debian/gprbuild_1.3.0-1_i386.deb/download

xmlada package:
    https://sourceforge.net/projects/qtada/files/Debian/libxmlada-dev_4.3.1-1_i386.deb/download

qtada package:
https://sourceforge.net/projects/qtada/files/Debian/qtada-dev_3.0.0-1_i386.deb/download

P.S. Не обращайте внимание на имя проекта, которо отображается при скачивании =)

4/04/2010

gnat-gcc-4.4.3 в Gentoo Linux.

Кому интересно, я добавил ebuild для компилятора ады gnat-gcc-4.4.3 в gentoo Linux.
Теперь буду его тестировать.
Также планирую обновить пакеты xmlada и добавить пакет gprbuild.