Development
A look at Robot OS
Robot OS (or ROS) is
described as:
"an
open-source, meta-operating system for your robot. It provides the services
you would expect from an operating system, including hardware abstraction,
low-level device control, implementation of commonly-used functionality,
message-passing between processes, and package management.
" It also
provides tools and libraries for software development, along with some
applications that should be common to all robots.
There has not been much collaboration in the robot world, according to this New Scientist article:
![[ROS.org]](https://static.lwn.net/images/ns/ROSlogo.png)
ROS got its start as an open source project developed by Willow Garage and Stanford University. Now Willow Garage is focusing on ROS and has started the ROS wiki to further collaborative efforts among other robot developers. ROS is all about reusing code as much as possible among robots. While ROS is implemented in Python and C++, there are also experimental libraries written in Lisp, Octave and Java. ROS is a developer framework but people using other developer frameworks can use ROS libraries and package repositories. In fact, ROS has been integrated with other robot software frameworks such as Player and Orca.
The Robot OS
Concepts
document explains how the project is organized.
"ROS has three levels of concepts: the Filesystem level, the Computation Graph level, and the Community level.
"
The Filesystem level contains the resources that are stored on disk.
"The Computation Graph is the peer-to-peer network of ROS processes that are processing data together. The basic Computation Graph concepts of ROS are Nodes, Master, Parameter Server, Messages, Services, Topics, and Bags, all of which provide data to the Graph in different ways.
"
The ROS Community level includes the online Wiki, the code repository and
other networked resources.
ROS code can be installed on a variety of Linux distributions including Debian, Ubuntu, Fedora and Arch. There is also an experimental Mac OS X port. After installing the ROS packages the developer can use the rosconfig tool to install a configuration of ROS on their machine. The ROS configuration can also be shared on multiple machines.
The rosconfig documentation explains the utility:
Robot OS includes an extensive package list that includes documented development tools, libraries, drivers and applications. In some ways ROS may be thought of as both a software development kit and an "app store". The ROS wiki also includes developer documentation and tutorials. For additional information you can also join the ROS users mailing list or browse the archives. Bugs in the core software or feature requests can be filed on the ROS bug tracker.
If the robotics community can come together around ROS, it will allow developers to improve and perfect the common robotics functions instead of simply reinventing them. New and interesting robotics innovations should come about as developers build higher level software on top of the underlying platform.
On properly packaging perl
The perl5-porters recently saw a rather acrimonious discussion on how the Red Hat and Fedora distributions choose to package the Perl language and associated modules. Things have calmed down (the parties have essentially agreed to disagree), but an interesting issue remains: what can development projects do if they're unhappy with how distributors are treating their code?When Tom Christiansen gets irritated with somebody, one can generally be assured that they will know about it. In this case, Tom let the world know that he was not happy with the way Red Hat packages and distributes Perl. The complaint is that, if one installs "perl," one does not get the entire Perl 5.10 distribution. Tom says:
As it happens, it is possible to get the entire 5.10 distribution; one simply needs to install "perl-core" instead of plain "perl." Tom asserts that this arrangement is confusing; "perl-core" should not be a superset of "perl"; the package called simply "perl" (which is what most users will install) should be the thing that the Perl developers shipped. He says that Red Hat's arrangement causes confusion, with users not knowing if they actually have "Perl" or not.
Beyond that, it goes against the developers' intent, which included providing users with all the basic modules they needed from the outset. Many users, it seems, will not (or cannot) add extension modules to their systems; the Perl developers tried to ensure that these users would have a minimally-functioning system available to them. But, alas:
Tom "spot" Callaway explained Red Hat's packaging decisions:
Tom says that the package naming could be changed, but that would have a number of unfortunate effects on users. That said, there are some possibilities for improving the situation, but the best course is not entirely clear. Tom Christiansen was not completely happy with the explanation, but he also seemed to understand the pressures which led to Red Hat's way of doing things.
In the near term, it looks like things will not change a whole
lot be changing; see this comment for details. But
we're likely to see this kind of debate come back in the future. Distributors
serve as a sort of middleman, tweaking and refining upstream packages in
ways which they think improve things - either for their users or for themselves.
Distributor changes can include splitting up the package (as with Perl),
removing user-unfriendly messages (as has happened with cdrtools), making
the software more consistent with the rest of the distribution, fixing
security problems, removing software seen as legally problematic, and so
on. It's part of what distributors do, and users generally appreciate the
effort.
Upstream developers are harder to convince; they have released the software in the form that they think is best, so it can be discouraging to see others messing with it. Most developers suffer in stoic silence, taking comfort in the fact that their software is finding a wider audience. But others have taken various types of action in an attempt to influence how distributors treat their code.
Consider some examples. The kernel developers changed their release process dramatically with the (successful) goal of reducing the number of patches applied by distributors. Some developers do their own packaging. Jeff Waugh has suggested that much of the packaging role of distributions could be "disintermediated" entirely, with users routinely getting their software directly from its developers. Jörg Schilling inserted (widely ignored) statements into his code stating the alteration of some parts of the program would be a copyright violation. Firefox makes aggressive use of its trademarks to control the changes made by distributors. Daniel Bernstein took things to a (non-free) extreme, only allowing qmail to be distributed if it had not been modified at all; this restriction inhibited qmail development for years until the code was finally released into the public domain.
In the end, releasing code under a free license means giving up control over what is done with it. So free software developers will always be at the mercy of distributors, who will always have the right to make the changes they think are necessary. The occasional grumble notwithstanding, the system works pretty well; all of the parties involved share an interest in having the software work as well as possible for their users.
System Applications
Audio Projects
Rivendell 1.5.2 released
Version 1.5.2 of the Rivendell radio station automation system has been announced. "This is a maintenance release of Rivendell. The following issues have been corrected: Fixed problems with build the Rivendell Pluggable Authentication Module (PAM) plug-in. Fixed problems with hard-start events in RDAirPlay. Added checks in rddbcheck(8) to verify cart/cut/audio consistency. Fixed a regression that caused audio exports to fail when the path contained one or more spaces."
Database Software
Benetl 3.0 released
Version 3.0 of Benetl, an ETL tool for files using postgreSQL and MySQL, has been announced. "This new version is correcting several bugs: - a bug with entities groups names - a bug (since 2.7) with creation script - a bug in labels for connection trouble".
MySQL Community Server 5.0.85 released
Version 5.0.85 of MySQL Community Server has been announced, it includes numerous bug fixes. "MySQL Community Server 5.0.85, a new version of the popular Open Source Database Management System, has been released. This and future releases in the MySQL Community Server 5.0 series share version numbers with their MySQL Enterprise Server counterparts."
PostgreSQL 8.5alpha1 released
The PostgreSQL project is trying something new by releasing 8.5alpha1 - the first alpha release they have ever done. "We've started doing alpha releases on the 'release early, release often' principle, so that our advanced users will try new features and new code as early as possible and get back to us with adjustments and problems. These alphas are not stable and should never be used in production; they are for developers to try new features only." See the release notes for information on what will be in 8.5.
PostgreSQL Weekly News
The August 23, 2009 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.
Embedded Systems
BusyBox 1.15.0 (unstable) released
Unstable version 1.15.0 of BusyBox, a collection of command line utilities for embedded systems, is out. "Changes since previous release: New applets: * beep: new applet by Bernhard * dnsdomainname: new applet - the alias to "hostname -d" * flash_lock, flash_unlock: new applets by Thierry Reding (thierry.reding AT avionic-design.de) * ifplugd: new applet by Maksym Kryzhanovskyy (xmaks AT email.cz) * scriptreplay: new applet * volname: new applet".
Web Site Development
Django 0.96.5 released
Version 0.96.5 of the Django web development platform has been announced. "The recent security-oriented releases of Django included what was intended to be the final supported release in the Django 0.96 series. However, an issue was discovered with the patch applied to the 0.96 release branch; a portion of the updated code was not correctly applied, and as a result the runserver command no longer functioned at all. To remedy this, tonight we have issued Django 0.96.5, which includes the full corrected code."
luban 0.2a1 released
Version 0.2a1 of luban has been announced. "The luban package is a python-based, cross- platform user interface builder. It provides UI developers a generic language to describe the user interface, and then render that description as web or native interfaces."
Desktop Applications
Audio Applications
Ardour Shortcut Cheatsheets available
The first edition of the Ardour Shortcut Cheatsheets have been announced. "I'm happy to release an initial version of the Ardour shortcut cheatsheet - a handy 2-sided tri-fold guide to almost every shortcut in Ardour. There is one version for X Window (Linux, FreeBSD, etc) and another for OS X (reflecting different conventions about modifier keys in both systems.) These cheatsheets will hopefully convey a lot of Ardour's power that is generally hidden to most users."
Data Visualization
Python cgkit 2.0.0 alpha 9 released
Version 2.0.0 alpha 9 of Python cgkit has been announced, it includes new capabilities and bug fixes. "The Python Computer Graphics Kit is a collection of utilities and Python modules that simplify working with 3D data of any kind. The provided functionality can be used in domains such as scientific visualization, Virtual Reality, VFX, animation or even games. Currently, the package is implemented in Python and C++ where the C++ part is wrapped and made available in Python."
Desktop Environments
GNOME 2.28.0 beta 2 (2.27.91) released
Version 2.28.0 beta 2 of the GNOME desktop has been announced. "This is the seventh development release, and the second beta, towards our 2.28 release that will happen in September 2009. By now most things are in place, and your mission is easy: Go download it. Go compile it. Go test it. And go hack on it, document it, translate it, fix it. With this release we are now string frozen".
GNOME Software Announcements
The following new GNOME software has been announced this week:- Accerciser 1.7.91 (bug fix and translation work)
- at-spi 1.27.91 (bug fixes and translation work)
- Brasero 2.27.91 (new features, bug fixes and translation work)
- Cheese 2.27.91 (new features, bug fixes and translation work)
- couchdb-glib 0.4.4 (new features)
- couchdb-glib 0.4.5 (new features)
- Deskbar-Applet 2.27.91 (bug fixes and translation work)
- Empathy 2.27.91 (new features, bug fixes, documentation and translation work)
- Empathy 2.27.91.1 (bug fixes)
- EOG Plugins 2.27.91 (new features)
- Eye of GNOME 2.27.91 (bug fixes and translation work)
- F-Spot 0.6.1.0 (bug fixes)
- Flickr Remote Organizer for GNOME 0.1.1 (initial release)
- gbrainy 1.12 (bug fixes and translation work)
- GCalctool 5.27.91 (documentation and translation work)
- GDM2 2.27.90 (new features, bug fixes and documentation work)
- gjs 0.4 (new features and bug fixes)
- GLib 2.21.5 (new features, bug fixes and translation work)
- glibmm 2.21.4 (bug fix and translation work)
- gnome-applets 2.27.91 (bug fixes and translation work)
- gnome-control-center 2.27.91 (new features, bug fixes and translation work)
- GNOME DVB Daemon 0.1.9 (bug fixes)
- GNOME PackageKit 2.27.91 (new features, bug fixes and translation work)
- GNOME Power Manager 2.27.91 (bug fixes and translation work)
- gnome-settings-daemon 2.27.91 (new features and translation work)
- gnome-system-tools 2.27.3 (new features, bug fixes and translation work)
- gobject-introspection 0.6.4 (new features and bug fixes)
- GOK 2.27.91 (bug fixes and translation work)
- gstreamermm-0.10.3 (new features and bug fixes)
- GTK+ 2.17.9 (new features, bug fixes and translation work)
- gtkmm 2.17.9 (new features and bug fixes)
- gtranslator 1.9.6 (bug fixes and translation work)
- Lasem 0.1.2 (new features and bug fixes)
- libchamplain 0.3.91 (bug fixes)
- Libgda 4.0.3 (bug fixes and documentation work)
- Libgda 4.1.1 (new features, bug fixes and translation work)
- libgnomekbd 2.27.91 (bug fixes and translation work)
- librep 0.90.1 (new features and bug fixes)
- librep 0.90.2 (bug fixes)
- libsigc++ 2.2.4 (new feature and documentation work)
- libslab 2.27.91 (bug fixes and translation work)
- LibUnique 1.1.2 (new features and build improvements)
- libvtemm-1.2 0.20.4 (bug fixes and documentation work)
- Mistelix 0.30 (new features and bug fixes)
- mm-common 0.6.1 (documentation work)
- mousetweaks 2.27.91 (new feature and translation work)
- Orca 2.27.91 (bug fixes and translation work)
- PDF Mod 0.6 (new features and bug fixes)
- PyGTK 2.16.0 (new features, bug fixes and documentation work)
- rhythmbox 0.12.4 (new features, bug fixes and translation work)
- Sabayon 2.27.91 (bug fixes and translation work)
- Smuxi 0.6.4 (new features, bug fixes and translation work)
- Tomboy 0.15.6 (bug fixes and translation work)
Simon - speech activated user interface for KDE (KDE.News)
KDE.News has a look at simon, which is a speech-activated interface for KDE. It looks like an interesting project, but, unfortunately, may suffer from some licensing snags: "HTK, the toolkit responsible for the HMM [Hidden Markov Model] evaluation is distributed under GPL-incompatible, restrictive license that prevents redistribution. In order to install simon, one must separately download HTK from their website which requires registration. The source is available, and they encourage you to modify and contribute to it, but it cannot be redistributed. [...] Additionally, Julius, used for the voice recognition has an attribution clause which causes problems with the GPL in a way that is reminiscent of the old-style BSD license (the one with the advertising clause). Any research conducted with simon would thereby require a reference to the Julius authors in the bibliography."
KDE Software Announcements
The following new KDE software has been announced this week:- 2ManDVD 0.9.6 (bug fixes)
- 2ManDVD 0.9.7 (bug fixes)
- AutoKey 0.60.3 (unspecified)
- cpdu 0.3.82b (new feature)
- FlashQard 0.14.0 (new features and bug fixes)
- KMyMoney 1.0.0 (stable release)
- KPS 0.9.2 (KDE 4.2 support)
- KrcStat 0.6 (KDE 4 support)
- KRepton 4.1 (new features and bug fixes)
- KryoMol 0.6.7 (new features and bug fix)
- OpenOffice.org Thumbnail plugin 0.0.1 (initial release)
- QTads 1.8 (bug fixes)
- Qwit 1.0-alpha (new features)
- rekonq Web Browser 0.2.0 (new features and bug fixes)
- Simutrans Starter 2 1.99.5 (new features and translation work)
- SMILE 0.9.11 (new features and bug fixes)
- SMILE 0.9.12 (new features and bug fixes)
- Wally 2.1.0 (new features and bug fixes)
Xorg Software Announcements
The following new Xorg software has been announced this week:- inputproto 1.9.99.902 (code cleanup and documentation work)
- libXi 1.2.99.4 (code cleanup and documentation work)
- libXScrnSaver 1.2.0 (bug fixes and documentation work)
- libXtst 1.0.99.2 (bug fixes and code cleanup)
- recordproto 1.13.99.1 (packaging changes)
- resourceproto 1.1.0 (packaging changes)
- scrnsaverproto 1.2.0 (packaging changes)
- xcb-util 0.3.6 (new features and bug fixes)
- xextproto 7.1.1 (bug fix)
- xf86-input-evdev 2.2.5 (bug fix)
- xf86-video-intel 2.8.1 (bug fixes)
- xorg-server 1.6.3.901 (bug fixes)
Desktop Publishing
LyX 1.6.4 released
Version 1.6.4 of LyX, a GUI front-end to the TeX typesetter, has been announced. "This is the fourth maintenance release in the 1.6.x series. This release covers, amongst many minor improvements, fixes to some rather severe issues".
Financial Applications
KMyMoney 1.0 released
The long-awaited KMyMoney 1.0 release is out. "Over 2 years of development have resulted in the addition of budgets, a forecast feature, many new reports, report charts, a complete redesign of the import feature, which allows for a much easier migration from other application and a swifter synchronization with online banking." This release was reviewed in the August 20 LWN Weekly Edition.
Graphics
pycairo release 1.8.8 is available
Version 1.8.8 of pycairo, a set of Python bindings for the Cairo multi-platform 2D graphics library, has been announced. "General Changes: Pycairo 1.8.8 requires cairo 1.8.8 (or later). Move from CVS to git. Add support for the waf build tool. Updated methods The PDF/PS/SVGSurface constructors now accept None as a filename."
Interoperability
Wine 1.1.28 announced
Version 1.1.28 of Wine has been announced. Changes include: "- Support for IRDA protocol. - Faster initial wineprefix creation. - Axis remapping with evdev joysticks. - More image formats in WindowsCodecs. - Various bug fixes."
Music Applications
Simple Sysexxer 0.2 beta released
Version 0.2 beta of Simple Sysexxer, a MIDI utility, has been announced. "I have completely rewritten Simple Sysexxer. As I need feedback how it copes with various MIDI devices, here's a first public beta release."
Miscellaneous
Transifex 0.7 released
Version 0.7 of Transifex has been announced, it includes new features and bug fixes. "Indifex and the Transifex Community are proud to announce the newest version of their flagship Open Translation Platform, Transifex 0.7 codenamed "Pyro". Transifex is a web application that gives translators a simple yet featureful web interface to manage translations for multiple remotely-hosted projects. Files to be translated can be translated straight from the user's browser or retrieved for offline translation, and various translation statistics can be read at a glance."
Languages and Tools
Assembly Language
Linux_Logo in assembly language 0.40 released
Vince Weaver has released version 0.40 of his Linux_Logo in assembly language has been announced. "This is a port of my linux_logo program to use raw assembly language. By using assembly and syscalls, you can have extremely fast and small binaries that don't use libc at all! So far I have 6502, 8086, alpha, arm, arm_thumb, avr32, crisv32, ia64, m68k, m88k, microblaze, mips, parisc, pdp-11, ppc, s390, sh3, sparc, vax, x86, x86_64, and z80 versions."
C
GCC 4.4.2 Status Report
The August 20, 2009 edition of the GCC 4.4.2 Status Report has been published. "The 4.4 branch is open for commits under the usual release branch rules. The timing of the 4.4.2 release (at least two months after the 4.4.1 release, at a point when there are no P1 regressions open for the branch) has yet to be determined."
GCC 4.5.0 Status Report
The August 23, 2009 edition of the GCC 4.5.0 Status Report has been published. "The trunk is in Stage 1. As previously stated, we expect that Stage 1 will last through at least the end of August. In my opinion, the single hardest issue we face with respect to 4.5 is how to handle the VTA branch. I've consulted with various people who have a lot of experience with GCC and the opinions on this work seem to be quite mixed. I've looked at the branch myself and can't seem to form a firm opinion. The problem it's setting out to solve is definitely important, but the scope of this particular solution frightens me. On the other hand, I can't see a viable better solution. So, I'd be very interested in further comments on this topic."
Caml
Caml Weekly News
The August 25, 2009 edition of the Caml Weekly News is out with new articles about the Caml language.
Perl
Perl 5.10.1 is released
Version 5.10.1 of Perl has been announced. For change information, see the Use Perl RC2 release announcement.Rakudo Perl 6 development release #20 (use Perl)
use Perl has published the announcement for Rakudo Perl 6 development release #20, an implementation of Perl 6 on the Parrot Virtual Machine. "Beginning with this release, Rakudo Perl builds from an "installed Parrot" instead of using Parrot's build tree. This release of Rakudo requires Parrot 1.5.0. For the latest information on building and using Rakudo Perl, see the README file section titled "Building and invoking Rakudo"."
Python
pyxser 1.2r released
Version 1.2r of pyxser has been announced, the main change is support for encoded serialization of Unicode strings. "I'm pleased to announce pyxser-1.2r, a Python-Object to XML serializer and deserializer. This module package it's completely written in C and licensed under LGPLv3."
Python-URL! - weekly Python news and links
The August 23, 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 August 19, 2009 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.
Debuggers
Valgrind 3.5.0 is available
Version 3.5.0 of Valgrind has been announced. "Valgrind is an open-source suite of simulation based debugging and profiling tools. With the tools that come with Valgrind, you can detect many memory management and threading bugs. You can also perform detailed time and space profiling to help speed up and slim down your programs. 3.5.0 is a feature release with many significant improvements and the usual collection of bug fixes."
IDEs
Pydev 1.4.8 released
Version 1.4.8 of Pydev and Pydev Extensions have been announced, changes include new features and bug fixes. "PyDev is a plugin that enables users to use Eclipse for Python, Jython and Iron Python development -- making Eclipse a first class Python IDE -- It comes with many goodies such as code completion, syntax highlighting, syntax analysis, refactor, debug and many others."
Version Control
GIT 1.6.4.1 released
Version 1.6.4.1 of the GIT distributed version control system has been announced, it includes numerous bug fixes and documentation work.
Page editor: Forrest Cook
Next page:
Linux in the news>>