Development
Using Parasite to delve into GTK+ applications
Trying to debug your own GUI applications can be a pain if you are not extremely familiar with the toolkit used to make the user interface. When the code you are working on is also unfamiliar, the whole experience quickly becomes less than desirable. The GTK+ Parasite tool helps you to work out the structure of the widgets that comprise a GUI, inspect and change properties of those widgets, and perform more in-depth analysis using an embedded Python shell.
The GTK+ toolkit provides an object-oriented framework for making user interfaces in C. GTK+ gives you facilities to inspect and change the properties of objects and supports introspection so you don't need to know about classes at compile time in order to make use of them at runtime. The GTK+ Parasite attaches itself to a GTK+ application and takes advantage of these dynamic features to let you inspect and change the interface of an application as it runs.
GTK+ Parasite doesn't have any official releases yet, but the source
can easily be pulled from its Git repository, compiled and installed
using the standard ./autogen.sh && make autotools
dance. You'll want
to make sure that you have the development packages for PyGtk
installed first in order to get the embedded Python shell
functionality.
To use GTK+ Parasite, add its name to the GTK_MODULES environment variable and run your GTK+ application as you normally would. For example:
GTK_MODULES=gtkparasite gedit
Along with your application, you should see and additional Parasite window with a Widget Tree and Action List tab and a small area in the lower part of the window with a Python prompt.
To find out the hierarchy of widgets in your GTK+ application, click
on the Inspect button in the Parasite window and then any part of the
GUI of your GTK+ application. Along with each widget in a tree view
you should see if that widget is realized, mapped and visible, along
with the address of both the X Window of the widget and the GTK+
widget itself. The latter address is very handy because you can right
click on it and "Send Widget to Shell" to obtain a reference to the
widget from the embedded Python interpreter.
The list in the far right of the Widget Tree tab in the Parasite window lists the properties and their value for the current widget. Holding the left button down over a property pops up a list of possible values for you to change it too. On the other hand, if the range of values for a property is too large, like for an integer property, no menu is presented and you can enter the value directly.
The Action List tab in Parasite shows you all the GTKAction objects in the application. For those unfamiliar with the GTK+ toolkit, a GtkAction object represents a piece of functionality that can be connected to a menu or toolbar, for example, opening a Save as dialog or starting a search within the current document. As an example, running Parasite on the text editor gedit, finding the FileOpen action in the list and selecting "Send Object to Shell" from the menu, you can perform the GtkAction by calling the activate method on the object. You should see the file dialog appear. The embedded Python shell command should look something like:
>>> parasite.gobj(0xa78980).activate()
where everything up to the .activate() was added automatically by Parasite when I told it to send the object to the shell.
If you are writing a custom GTK widget, the "Show Graphic Updates" button causes any redraws that the application performs to briefly flash red first. This makes it fairly simple to see if you are drawing more than you think in order for your widget to update itself. For example, in gedit, only a rectangle covering the current line is updated when you type text into the active document, but when you hit return the current line and everything below it flashes red.
There are a few rough edges to the GUI of GTK+ Parasite, which is to be expected from such a young application. For example, in the "Action List" tab, one might expect to be able to simply double-click on an action to execute it. In addition, left-clicking on a property lets you either edit the value directly inline in the cell or if there is a limited number of acceptable values a popup menu appears allowing you to select a value. While this provides a consistent user interface for editing though left clicking, it does mean that you have to click on a property row before editing its value. One might at first expect a context menu to be available offering such editing functionality, with the added bonus that you could directly right click on a property to edit it rather than having to select it with a left click first.
For such a young application GTK+ Parasite is already very useful and a great tool for ironing out the kinks in an application's GTK+ interface. If you are a Python fan, the embedded Python interpreter lets you tinker with the GTK+ interface even if the program itself is written in C.
Parasite is developed by Christian Hammond and David Trowbridge. Activity on the mailing list is currently on the slow side, but it should pick up as developers discover this tool.
System Applications
Database Software
buzhug 1.5 released
Version 1.5 of buzhug has been announced. "buzhug is the fastest pure-Python database engine, with a clear and intuitive syntax (no SQL) The new release 1.5 brings the following improvements : - introduce a thread-safe version - introduce a new syntax for record selection : record = db(key1=value2[,key2=value2...]) - allow an iterable of records for update db.update(list_of_records,key1=value1...)"
Golconde 0.4 released
Version 0.4 of Golconde has been announced. "I am pleased to announce the first beta release of Golconde, 0.4. Golconde is a queue based replication solution for PostgreSQL written in Python 2.6. It is designed to be loosely coupled and rely upon existing enterprise messaging systems that have STOMP protocol support. Designed to scale easily and with multi-data center implementations in mind, the application and message queues for distribution live outside of the database."
pgpool-II 2.2 and pgpoolAdmin 2.2 are released
Version 2.2 of pgpool-II and pgpoolAdmin have been announced. "pgpool-II is a synchronous replication middle ware for PostgreSQL 7.3 or later. Also pgpoolAdmin 2.2, a GUI tool for pgpool-II 2.2 is available now."
phpMyAdmin: 3.1.3 is released (SourceForge)
Version 3.1.3 of phpMyAdmin has been announced. "phpMyAdmin is a tool written in PHP intended to handle the administration of MySQL over the Web. Currently it can create and drop databases, create/drop/alter tables, delete/edit/add fields, execute any SQL statement, manage keys on fields. Welcome to phpMyAdmin 3.1.3, a bugfix-only release with updates to 5 languages."
PostgreSQL Weekly News
The March 1, 2009 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.pysqlite 2.5.2 is out
Version 2.5.2 of pysqlite has been announced. "Release focus: minor bugfixes, minor new features. pysqlite is a DB-API 2.0-compliant database interface for SQLite. SQLite is a in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine."
Device Drivers
Tour the Linux generic SCSI driver (IBM devloperWorks)
IBM developerWorks has an introduction to the Linux generic SCSI driver. "Linux provides a generic driver for SCSI devices and an application programming interface so users can build applications to send SCSI commands directly to SCSI devices. In this article, the author introduces some of the SCSI commands and methods of executing SCSI commands when using SCSI API in Linux. He also provides background on the SCSI client/server model and the storage SCSI command."
Networking Tools
Zenoss: 2.3.3 is now available (SourceForge)
Version 2.3.3 of Zenoss Core has been announced. "Zenoss Core is an enterprise network and systems management application written in Python/Zope. Zenoss provides an integrated product for monitoring availability, performance, events and configuration across layers and across platforms. We are proud to announce the Zenoss 2.3.3 maintenance release which fixes over 80 defects."
Security
announcing ClamAV 0.95rc1
Version 0.95rc1 of ClamAV, a virus scanner, has been announced. "ClamAV 0.95rc1 introduces many bugfixes, improvements and additions."
Virtualization Software
Open Letter: Leaving TightVNC, Founding TigerVNC
Peter Åstrand has announced the launch of the TigerVNC project. "For the last six years, I have worked with the VNC community in general and the TightVNC project in particular, encouraging cooperation and unity. We have made great progress. When the TurboVNC developer and Fedora VNC maintainer joined forces almost a year ago, we believed we could take this technology to another level of success, and accelerate development. Recently, however, it has became clear that the TightVNC project cannot support this development. This is why we are now announcing the TigerVNC project."
Web Site Development
spawn-fcgi 1.6.0 released
Version 1.6.0 of spawn-fcgi has been announced on the lighttpd web site. "As mentioned before, we planned to extract spawn-fcgi into its own project and remove it from lighttpd. Now the first standalone release has been published, starting at version 1.6.0."
Miscellaneous
DeviceKit 003 released
Version 003 of DeviceKit has been announced. "DeviceKit is an abstraction for enumerating devices and listening to device events. Any application on the system can access the org.freedesktop.DeviceKit service via the system message bus. On GNU/Linux, DeviceKit can be considered a simple D-Bus frontend to udev." This is supposed to be the final release of the project: "
The functionality of DeviceKit is going to be merged into the udev-extras with the only changes being the D-Bus name as well as the prefix for the GObject library and the command line tool."
Microlog: V1.1.0 released (SourceForge)
Version 1.1.0 of Microlog has been announced. "Microlog is a small logging library for Java ME (J2ME) like Log4j. It has support for logging to console, file, RecordStore, Canvas, Form, Bluetooth, a serial port (Bluetooth, IR, USB), Socket(incl SSL), UDP, Syslog, MMS, SMS, e-mail or to Amazon S3. The long awaited Microlog V1.1.0 release is here. Please download and try it out."
Desktop Applications
Audio Applications
Invada Studio Plugins 0.3.0 announced
Version 0.3.0 of Invada Studio Plugins has been announced. "I've released a new version of the Invada Studio plugins which are a bit cleaner and fix an issue with gains at maximum not working as expected. The source now includes the necessary files to allow for deb packages to be built."
Business Applications
Gnumeric 1.9.4 announced
Version 1.9.4 of the Gnumeric spreadsheet has been announced. "This release is a development release with lots and lots of bug fixes. Also, this version is considerably faster than previous versions in three ways: (1) when dealing with spreadsheets containing large farms of VLOOKUP, HLOOKUP, or MATCH calls over the same database, we now pre-process the database range once and the actual lookups are very fast; (2) we now only calculate the relevant branch of IF calls, unless implicit iteration is in effect; (3) large spreadsheets containing many similar ranges like, for example, A$10:A10, A$10:A11, ..., A$10:A9999 used to hit a degenerate case in our dependency tracking."
Collaboration Software
Agilefant: 1.5.4 released (SourceForge)
Version 1.4 of Agilefant has been announced. "Agilefant is a tool for managing agile software development activities, such as: projects, products, releases, iterations and backlogs. It brings together the perspectives of long-term product and release planning and project portfolio management. Usability and user interface improvements were done to this release. Agilefant's performance is also greatly improved! Also a handful of minor improvements and bug fixes are included."
gumnut: 0.2.7 released (SourceForge)
Version 0.2.7 of gumnut has been announced. "Gumnut is a moderated, distributed, discussion forum that may be used by groups of people to find an agreed positive direction for any decisions that affect that group. Each group may be of any size and associated by geography, common interest, or both."
Desktop Environments
GNOME Software Announcements
The following new GNOME software has been announced this week:- Anjuta 2.25.903.0 (bug fixes and documentation work)
- at-spi 1.25.92 (bug fixes and translation work)
- Brasero 2.25.92 (code cleanup, bug fixes and translation work)
- Cheese 2.25.92 (bug fixes and translation work)
- Deskbar-Applet 2.25.92 (bug fixes and translation work)
- Ekiga 3.1.2 (new features, bug fixes and translation work)
- Empathy 2.25.92 (new features, bug fixes and translation work)
- Evince 2.25.92 (bug fixes and translation work)
- Eye of GNOME 2.25.92 (bug fixes, code cleanup and translation work)
- GCalctool 5.25.92 (bug fixes, documentation and translation work)
- Gdl 2.25.92 (bug fixes)
- GLib 2.19.10 (new features, bug fixes and translation work)
- gnome-applets 2.25.92 (bug fixes and translation work)
- GNOME DVB Daemon 0.1.5 (new features and bug fixes)
- gnome-games 2.25.92 (new features, bug fixes and translation work)
- gnome-keyring 2.25.92 (new features, bug fixes and translation work)
- gnome-mud 0.11.2 (bug fixes and translation work)
- GNOME Scan 0.6.2 (new features and bug fixes)
- gnome-settings-daemon 2.25.92 (bug fixes and translation work)
- GTK+ 2.15.5 (new features, bug fixes and translation work)
- gtk-engines 2.17.4 (new features and translation work)
- Libgda 3.99.12 (new features, bug fixes and translation work)
- mousetweaks 2.25.92 (bug fix and translation work)
- Nemiver 0.6.5 (new features, bug fixes and translation work)
- Orca 2.25.92 (bug fixes and translation work)
- seahorse 2.25.92 (new features, bug fixes and translation work)
- seahorse-plugins 2.25.92 (bug fixes, code cleanup and translation work)
KDE Software Announcements
The following new KDE software has been announced this week:- 2ManDVD 0.5.1 (new features, bug fixes and translation work)
- blackscreen 0.0.1 (initial release)
- blackscreen 0.0.2 (new feature)
- cb2Bib 1.2.0 (new features)
- first4 1.4.0 (bug fixes and translation work)
- Frescobaldi 0.7.7 (new features, bug fixes and translation work)
- fsrunner for KRunner 0.1 (initial release)
- KAlarm 2.1.5 (new features and bug fixes)
- KBlogger 1.0-alpha3 (new features and bug fixes)
- KdeSudo 3.3.2/2.6 (bug fixes and translation work)
- kgbmencoder 0.1.1 (new feature and bug fix)
- K Menu Gnome 0.9.1 (new features and code cleanup)
- KRadio4 for KDE4.x snapshot-r694 (new features, bug fixes and KDE4 support)
- K-Yamo v0.40a4-2 (new features and bug fixes)
- PeaZip 2.5.1 (new features and translation work)
- QNapi 0.1.6-rc2 (unspecified)
- QTrans 0.2.1.5 (new feature)
- Qwit 0.8 (new features and bug fixes)
- Radio Italiane 0.2 (new stations)
- Veusz 1.3 (new features and bug fixes)
- Wally 2.0.1 (bug fixes)
- yape 2.0 (new features)
Xfce 4.6 released
The announcement has gone out for the Xfce 4.6 release. "Xfce 4.6 features a new configuration backend, a new settings manager, a brand new session manager and sound mixer as well as several huge improvements of its core components." An extensive list of changes can be found in the changelog.
Xorg Software Announcements
The following new Xorg software has been announced this week:- libXi 1.2.1 (new features and bug fixes)
- xf86-input-evdev 2.1.99.1 (new features, bug fixes and code cleanup)
- xf86-input-hyperpen 1.3.0 (build fixes and code cleanup)
- xf86-input-synaptics 1.0.99.1 (new features and code cleanup)
- xf86-input-synaptics 1.0.99.2 (build fixes)
- xf86-input-synaptics 1.0.99.3 (bug fixes and code cleanup)
- xf86-video-intel 2.6.3 (bug fixes)
- xorg-server 1.6.0 (bug fixes, code cleanup and documentation work)
- xproto 7.0.15 (new features and code cleanup)
Electronics
zParts: 0.93 Released (SourceForge)
Version 0.93 of zParts has been announced. "zParts is an electronic parts inventory system. It is an alternative to using spreadsheet software and has a very high degree of customization. It was created with the electronic hobbyist in mind and even has support for part datasheets and images! Version 0.93 comes with some big bug fixes that should help things run smoother for all. I'm working towards a system to help first time users get acquainted with zParts and use it well."
Encryption Software
GnuPG 2.0.11 released
Version 2.0.11 of GnuPG, a GNU tool for secure communication and data storage, has been announced. Changes include: "* Fixed a problem in SCDAEMON which caused unexpected card resets. * SCDAEMON is now aware of the Geldkarte. * The SCDAEMON option --allow-admin is now used by default. * GPGCONF now restarts SCdaemon if necessary. * The default cipher algorithm in GPGSM is now again 3DES. This is due to interoperability problems with Outlook 2003 which still can't cope with AES."
Games
Doomsday Engine: 1.9.0-beta6 released (SourceForge)
Version 1.9.0-beta6 of Doomsday Engine has been announced. "A Windows/Unix/Mac OS X game engine for 2.5d first person shooters such as DOOM, Heretic and Hexen. Lets you enjoy the original games using modern technology e.g. OpenGL, 3D models, unlimited framerate, high-resolution graphics, simulated radiosity."
ScummVM: 0.13.0 'More Guests' enter(s) the house (SourceForge)
Version 0.13.0 of ScummVM has been announced. "ScummVM is a cross-platform interpreter for several point-and-click adventure engines. This includes all SCUMM-based adventures by LucasArts, Simon the Sorcerer 1&2 by AdventureSoft, Beneath a Steel Sky and Broken Sword 1&2 by Revolution, and many more. As we turned to a 6 months release cycle, our newest and best ScummVM version is ready for you! A couple of new engines were added, and besides 2 Humongous Entertainment titles, we now support The 7th Guest and Bud Tucker in Double Trouble."
GUI Packages
Qt 4.5 released
Version 4.5 of the Qt toolkit has been announced. "Qt 4.5 includes several new features, but sees the greatest improvement via a concerted effort to increase performance across the entire framework. Significant performance enhancements were made to the graphics system, data handling, and the web engine. These improvements result in an appreciable performance increase in Qt-based applications." The Qt Creator 1.0 release is also available.
Interoperability
Wine 1.1.16 announced
Version 1.1.16 of Wine has been announced. Changes include: "Improved SANE scanner support. Support for digital CD audio playback. Improved cookies management in Wininet. Support for building stand-alone 16-bit modules. Many fixes to the regression tests on Windows. Various bug fixes."
Medical Applications
GNUmed 0.4.0 released (LinuxMedNews)
Version 0.4.0 of the GNUmed medical record system has been announced. "This release provides nice and stable new features: * can show log file from client on demand * can merge two patients into one * can edit existing progress note on any encounter * can access text expansion macros by startof-keyword (will show a list for selection) * has new hook "after_new_doc_created" * has minimum HIPAA compliance * has waiting list * has random access to plugins * has screenshots on Linux include window decoration * has local "installer" for tarball * has a large part of the user interface translated to Brazilian Portuguese".
Multimedia
Elisa Media Center 0.5.30 Release
Version 0.5.30 of Elisa Media Center has been announced. "This release is a "light weight" release, meaning it is pushed through our automatic plugin update system. That is why there is no new Elisa windows installer nor any new packages: use the existing ones for 0.5.27; with the default configuration, they should upgrade automatically to 0.5.30."
Music Applications
mingus 0.4 released
Version 0.4 of mingus has been announced. "Mingus is an advanced, cross-platform music theory and notation package for Python with MIDI file and playback support. It can be used to play around with music theory, to build editors, educational tools and other applications that need to process and/or play music. It can also be used to create sheet music with LilyPond."
Digital Photography
hugin: 0.8.0 beta1 testers release (SourceForge)
Version 0.8.0 beta1 of hugin has been announced. The project description states: "Panorama stitching and more. A powerful software package for creation and processing of panoramic images. Similar to the windows programs PTGui and PTAssembler."
Video Applications
Gnash 0.8.5 released
Version 0.8.5 (also know as "the fourth beta release") of the Gnash flash player has been released. There's lots of new features, including improved performance, support for saving media files to disk, new codecs, and more; see the announcement for details.
Web Browsers
Browsing in GNOME
Should GNOME adopt a web browser component? If so, which one? Benjamin Otte takes on this question with a detailed look at Webkit and Mozilla but comes to no clear conclusion. "Regardless of which project were to be chosen, my expectation would be that if we were to start now, it would take 5 experienced GNOME developers roughly a year to get this work to a point were it would hold up against today's requirements of the web. For Webkit, this would mostly require writing source code. For Mozilla, both writing code and evangelizing inside their community would be necessary." (Thanks to Paul Wise).
Languages and Tools
C
LLVM 2.5 released
Version 2.5 of the LLVM compiler is out. "LLVM 2.5 includes an amazing collection of bug fixes, performance improvements (both in the compiler itself and in the generated code) and new features. Some highlights include a new XCore backend, significantly improved llvm-gcc GFortran support, code generator support for arbitrary sized integers (e.g. i71), support for acting on overflow of integer operations, an amazing new 'Writing an LLVM Compiler Backend' document, and many many other things." See the release notes for details.
Caml
Caml Weekly News
The March 3, 2009 edition of the Caml Weekly News is out with new articles about the Caml language.
Java
IcedTea6 1.4.1 released
Version 1.4.1 of IcedTea6 has been announced, it includes bug fixes and some rewritten code. "The IcedTea6 project provides a harness to build the source code from OpenJDK6 (http://openjdk.java.net) using Free Software build tools."
Perl
Rakudo Perl development release #14 (use Perl)
Development release #14 of Rakudo Perl, an implementation of Perl 6 on the Parrot Virtual Machine, has been announced. "This is the fourteenth development release of Rakudo Perl, but it's the first release independent from Parrot releases. We will continue to follow a monthly release cycle, with each release to be code named after a Perl Mongers group."
PHP
PHP 5.2.9 released
Version 5.2.9 of PHP has been announced. "This release focuses on improving the stability of the PHP 5.2.x branch with over 50 bug fixes, several of which are security related. All users of PHP are encouraged to upgrade to this release."
Python
Python-URL! - weekly Python news and links
The February 26, 2009 edition of the Python-URL! is online with a new collection of Python article links.Python-URL! - weekly Python news and links
The March 3, 2009 edition of the Python-URL! is online with a new collection of Python article links.
Tcl/Tk
Tcl-URL! - weekly Tcl news and links
The February 25, 2009 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.
Cross Compilers
SDCC 2.9.0 RC1 released
Version 2.9.0 RC1 of SDCC has been announced. "SDCC is a retargettable, optimizing ANSI - C compiler that targets the Intel 8051, Maxim 80DS390, Zilog Z80 and the Motorola 68HC08 based MCUs. Work is in progress on supporting the Microchip PIC16 and PIC18 series."
Editors
Emacs 23.0.91 pretest
A pretest release of Emacs 23.0.91 has been announced "This is the second pretest for what will be the Emacs 23.1 release. Pretesters: please send an email to me reporting success or failure on your build platform."
Profilers
Valgrind 3.4.1 is available
Version 3.4.1 of Valgrind has been announced. "Valgrind is an open-source suite of simulation based debugging and profiling tools. 3.4.1 fixes some regressions and assertion failures in debug info reading in 3.4.0, most notably incorrect stack traces on amd64-linux on older (glibc-2.3 based) systems. A number of other bugs, including some in the new exp-ptrcheck tool, have also been fixed."
Test Suites
The Linux Test Project: February 2009 release (SourceForge)
The February, 2009 release of the The Linux Test Project has been announced. "The Linux Test Project is a group aimed at testing and improving Linux. The goal of the LTP is to deliver a suite of automated testing tools for Linux as well as publishing the results of tests we run. LTP invites community to contribute in new horizons. The Linux Test Project test suite has been released for the month of FEBRUARY 2009. Please see ltp/INSTALL file carefully, as, there has been multiple changes for building/installing the test suite."
Version Control
GIT 1.6.2 released
Version 1.6.2 of the GIT distributed version control system has been announced. "With the next major release, "git push" into a branch that is currently checked out will be refused by default. You can choose what should happen upon such a push by setting the configuration variable receive.denyCurrentBranch in the receiving repository. To ease the transition plan, the receiving repository of such a push running this release will issue a big warning when the configuration variable is missing."
Page editor: Forrest Cook
Next page:
Linux in the news>>