October 25, 2005
This article was contributed by Matt Gushee
The hottest new thing in Web development these days is
TurboGears (TG),
a "full-stack" Web development framework implemented in Python with
model-view-controller as its key design principle. Development is
proceeding rapidly: the first public release, 0.5, appeared on September
17, and the product has since gone through several iterations and now
stands at version 0.8a4. It might seem an impossible pace, but
TurboGears is not so much a new product as a new assembly of existing
products. As the project Web site puts it:
TurboGears takes the best components available and combines them
into one easy-to-install, documented whole. TurboGears includes
parts that join the pieces together and make them work together
seamlessly, but doesn't obscure each included project.
The meaning of "full-stack" is somewhat in the eye of the beholder, of
course. But by most standards, TG does a good job of providing
for all tiers of a typical Web application. Its major components are:
- SQLObject
-
an Object-Relational Mapping (ORM) library
- CherryPy
-
a lower-level Web application framework with a built-in HTTP server
- Kid
-
a templating system that embeds Python code in well-formed XML
documents
- MochiKit
-
a rich but lightweight JavaScript library that supports asynchronous
HTTP
requests
Additional components provide support for unit testing, XML document
navigation, form validation, and conversion between Python data
structures and JavaScript Object Notation (JSON). Third-party extensions
have started appearing, too, like the
CatWalk
model browser.
At first glance, TG looks a lot like
Ruby on Rails.
Certainly, the
projects are similar in their goals and high-level architectures. And it
is fair to say that TG is largely inspired by Ruby on Rails--but there
are differences. For example, TG comes with built-in support for
JavaScript Object Notation
(JSON); combined with asynchronous HTTP requests, this facilitates
AJAX
development--or perhaps we should say
"AJAJ"--by substituting a simpler data format for XML.
The templating systems are also significantly different: Kid templates
consist of well-formed XML (often XHTML in practice) with Python
embedded in attributes and element content, while Rails uses Embedded
Ruby (ERuby), which uses non-XML tags to embed Ruby in (X)HTML or other
text files.
One of the most important differences, however, is in the ORM layer: the
ActiveRecord package used in Rails provides an object layer over an
existing database, whereas Python's SQLObject also allows the database
to be generated based on Python objects.
This is not to suggest that TG is superior in every respect. Rails has a
"scaffolding" feature, which automatically generates
CRUD (Create, Retrieve, Update, Delete) operations.
There is also an ActionMailer package which
provides e-mail services for applications.
In other words, while TurboGears and Rails have many similarities,
they are far from identical.
Beyond the differences in features, there remains the highly subjective
matter of language choice. Even if TG were simply a clone of Rails,
surely it
is a wonderful thing that developers can implement architectures in the
language of their choice. Isn't that what open source is all about? And the
community appears to have ample energy for creating and maintaining Web
frameworks.
To my mind, what really stands out about TG is the clear vision and the
sense of competence that its developers are communicating. There are
many technically sound and interesting Web tools available, but they
often suffer from poor documentation and worse marketing. While its
feature set is highly attractive in itself, it is the project's superior
presentation that makes it likely to attract a broad following.
Additional Resources
Comments (2 posted)
System Applications
Database Software
The first MySQL 5.0 production release is out - click below for the full announcement. This major
release adds a number of SQL features (views, stored procedures, triggers,
etc.), some new storage engines, and more. The
what's new
page has more information.
Full Story (comments: 2)
Version 4.1.15 of the MySQL database has been released.
"
This is a bugfix release for the current production version."
Full Story (comments: none)
Version 8.1 Beta 4 of the PostgreSQL database
is available for testing.
Comments (none posted)
The October 23, 2005 edition of the PostgreSQL Weekly News
is online with the latest PostgreSQL database discussions
and resources.
Full Story (comments: none)
Libraries
Version 0.70 of EasyBMP
has been announced.
"
EasyBMP is an easy cross-platform C++ library for reading and writing Windows
bitmap (BMP) files. No installation, no need for external libraries, small in
size, well-documented, and simple enough for the novice programmer to start
in just minutes! EasyBMP particularly shines as an easy image input/output
tool for scientists and other technically-minded people who may not be
formally trained in programming".
Changes include bug fixes, a change to the revised BSD license, and more.
Comments (none posted)
Web Site Development
Version 0.99 of PHPSurveyor, a set of PHP scripts for
developing and publishing online multi-question surveys,
has been announced.
"
PHPSurveyor 0.99 is the culmination of 12 months of development and bugfixing for PHPSurveyor since the "stable" release of 0.98.
The package has undergone significant changes and enchancements, however - importantly - can still be installed over the top of most existing 0.98final installations and upgraded without losing data.
This is labelled a "stable" release, indicating that the recent months have been dedicated to bugfixing rather than the development of new features."
Comments (none posted)
Version 1.0.0 RC4 of Xaraya
has been released.
"
We are pleased to announce that our release candidate for the Xaraya 1.0.0 web application framework is now available. This release candidate addresses compatibility issues with php versions 4.4 and some 5.1 versions, as well as important bug fixes."
Comments (none posted)
Shreeraj Shah
discusses the process of finding security vulnerabilities
in web applications in an O'Reilly article.
"
The nature of web applications is very different from that of standard applications. Many times, these tools miss key vulnerabilities in the application. The best way to perform web application assessment is by using the unassailable combination of automated tools and human intellect. This article examines the LiveHTTPHeaders project, which fits seamlessly into Mozilla browser components to facilitate very effective web application assessment."
Comments (none posted)
Web Services
Birali Hakizumwami
works with the Globus Toolkit on O'Reilly.
"
Grid computing allows you to combine processing, storage, databases, and
other resources across a network, hiding the details from callers. As
Birali Hakizumwami shows, the Globus Toolkit makes this easier by exposing the
grid as a normal web service."
Comments (none posted)
Desktop Applications
CAD
Release 26 of PythonCAD has been announced.
"
The twenty-sixth release includes a few interface enhancements. More
of the menus can be activated from the keyboard, and stretch/move
operations now accept entry box values when performing either task.
A significant amount of work has been applied to the internal
routines used for storing the entities in a drawing, the result of
which required numerous changes throughout the code."
Full Story (comments: none)
Calendar Software
Nightly builds of Lightning, a calendaring application for Mozilla
Thunderbird,
are available for testing.
Dan Mosedale's
blog has more information on the software:
"
Thanks to the magic of Chase and Coop, there are now nightly builds of Lightning for all three platforms. Note that these are not quite ready for day-to-day use yet (there are still known dataloss bugs, UI issues, and crashers). However, if you'd like to play around, help us test, give UI suggestions, or have a taste for getting involved in the development, this is a great way to get started."
Comments (none posted)
Data Visualization
Version 0.8 of Veusz (Velvet Ember Under Sky Zenith)
has been announced.
"
Veusz is a scientific plotting package written in Python (currently
100% Python). It uses PyQt for display and user-interfaces, and
numarray for handling the numeric data. Veusz is designed to produce
publication-ready Postscript output."
Comments (none posted)
Desktop Environments
New release candidates for the X11 window system have been announced.
"
We are pleased to announce the availability of the first full Release
Candidate (RC1) for the upcoming X.Org Foundation release of X11R6.9 and
X11R7. This release marks the completion of the development cycle for
the modular source tree. We have tagged both the monolithic and modular
trees and have prepared tarballs for you to test."
Full Story (comments: none)
GNOME 2.13.1, the first development release on the way to 2.14, is out.
See
the TwoPointThirteen
page for details on what's happening with 2.13.
Full Story (comments: none)
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
The following new KDE software has been announced this week:
You can find more new KDE software releases at
kde-apps.org.
Comments (none posted)
Financial Applications
GnuCash 1.8.12 is out. This is, according to the developers, the last of
the (GNOME1-based) 1.8 series; the first GnuCash 2 pre-release is
expected sometime in December.
Full Story (comments: 6)
Instant Messaging
GnomeDesktop
covers
the latest developments on the Gaim instant messaging client.
"
A lot of you have noticed that while we typically release every three
weeks, we haven't had a release in a while. We've shifted all our efforts to
finishing Gaim 2.0.0. Gaim 2.0.0 has a ton of great features, fixes every
problem you've ever had with Gaim, makes drastic changes to huge parts of
Gaim---especially status, includes three new protocols, and does a bunch of
other amazing stuff."
Comments (none posted)
Mail Clients
Development version 2.1.4 and stable version 2.0.3 of
Sylpheed, an email client,
has been released. See the
news file
for change information.
Comments (none posted)
Medical Applications
Release Candidate 2 of ClearHealth, an Open Source medical suite
with practice management, patient care and billing capabilities,
has been announced.
"
After a long testing and packaging cycle RC2 is finally available. This release is has numerous fixes, enhancements and entirerly new features."
Comments (none posted)
A new release of OpenEMR
has been announced.
"
OpenEMR uses FreeB for electronic billing and SQL-Ledger for practice accounting. Recently Rod Roark of Sunset Systems has added UB-92 support to OpenEMR.
OpenEMR is a full featured electronic health record using the classic LAMP (Linux, Apache, MySQL, PHP) architecture."
Comments (none posted)
Music Applications
Version 0.5.4 of Jackbeat, a Jack Audio Connection Kit compatible
drum machine, is out with bug fixes and other improvements.
Full Story (comments: none)
Office Applications
Stable version 1.6 of the Gnumeric spreadsheet
has been announced.
"
Over the past year we have improved Gnumeric's charting, its accuracy, its xls file loading capabilities, and improved its rich text editing. Our Win32 build is now quite stable and very usable."
Comments (none posted)
Office Suites
The
OpenOffice.org
2.0 announcement has gone out. There is a lot of new stuff in this
long-awaited release, including OpenDocument support, improved PDF
exporting, a reworked interface, and some performance improvements. It can
be grabbed from
the download
page. There is
an ooo-build 2.0
release available as well. (Thanks to Frankie D).
Comments (11 posted)
Science
Version 5.9.2 of Maxima, a computer algebra system written in Common Lisp,
is out.
"
It features case-sensitivity in the
parser, improved documentation, improvements to some function
packages, new add-on packages, an improved TeXmacs interface, new
kinds of plots, and more."
Full Story (comments: none)
Amir Karger and Eitan Rubin
use Perl
to manipulate biological data.
"
Have you ever renamed 768 files? Merged the content from 96 files into a spreadsheet? Filtered 100 lines out of a 20,000-line file?
Have you ever done these things by hand?
Disciples of laziness--one of the three Perl programmer's virtues--know that you should never repeat anything five times, let alone 768. It dismayed me to learn that biologists do this kind of thing all the time."
Comments (none posted)
Video Applications
Version 2.1 step 3 of
avidemux, a graphical tool for editing video files, is out
with new features and bug fixes.
Comments (none posted)
Web Browsers
FootNotes is carrying
a report from the GNOME summit on the future of the Galeon browser. The Galeon developers have decided to join up with Epiphany, implementing Galeon's special features as Epiphany extensions. "
This seems an optimal solution for everyone; it allows us, the galeon
developers, to avoid duplicating work with epiphany team, it will allow
users to leverage the best from both browsers and most importantly, it
puts galeon on a much firmer footing for the future that is not so much
at the mercy of our ability to find time to hack on it."
Comments (18 posted)
MozillaZine
has announced the availability of
the minutes from the October 10, 2005 mozilla.org staff meeting.
"
Issues discussed include development, marketing, the Devmo
launch, the Web 2.0 conference, the LinuxWorld London expo and personnel."
Comments (none posted)
Miscellaneous
Version 2.0 of Speedometer, a Python-based bandwidth and download monitor,
is out with miscellaneous improvements.
Full Story (comments: none)
Languages and Tools
Java
The October 16-22, 2005 edition of This week on harmony-dev
is out with coverage of the Harmony open-source Java project.
"
This week most of the discussion was about the boot jvm, but there
were some other issues too. One of the shorter discussions was in the
thread "ANN: gjdoc 0.7.6 released": David Gilbert asked what's left
to to before 1.0.0, and Julian Scheid replied that it's mainly bug
fixes for the first major release."
Full Story (comments: 1)
Python
Version 0.8.9 of Urwid, a curses-based UI library for Python,
is out with several new features and some bug fixes.
Full Story (comments: none)
The October 26, 2005 edition of Dr. Dobb's Python-URL!
is online with a new collection of Python language articles.
Full Story (comments: none)
Ruby
The October 16th, 2005 edition of the
Ruby Weekly News looks at the latest discussions
from the ruby-talk mailing list.
Comments (none posted)
The October 23rd, 2005 edition of the
Ruby Weekly News looks at the latest discussions
from the ruby-talk mailing list.
Comments (none posted)
Tcl/Tk
The October 24, 2005 edition of Dr. Dobb's Tcl-URL!
is online with the latest Tcl/Tk news and resources.
Full Story (comments: none)
XML
Micah Dubinko
explores microformats in an O'Reilly article.
"
Micah Dubinko's new column, XML Annoyances, begins this week with a look at the role of microformats, particularly with regard to Web 2.0 applications and services, as the core XML-specification era comes to a close."
Comments (none posted)
Page editor: Forrest Cook
Next page: Linux in the news>>