Development
The New Age of Programming
A long time ago in a Galaxy far, far away I was a programmer by profession. This was in the days of Mainframe COBOL programs. Over the years I have gradually found myself becoming a Systems Administrator. While I do less "real" programming now, I have picked up a number of different languages like perl, php, shell, C/C++, etc. Recently I have found myself thinking about the differences in programming languages and it seems to me that there are two basic kind of languages. For lack of better terms I'll call them "Standards Based" and "Internet Based". These two branches have some interesting differences that might not be apparent at first glance.What do I mean by Standards Based languages? These are languages that are generally defined by ISO standards committees. For the purpose of this piece we'll consider the following languages to be in this category: Ada, C, C++, COBOL, Pascal and SmallTalk. As for Internet Based languages, we'll use Java, Perl, PHP, Python, Ruby and Tcl/Tk. So what is the significant differences between these two camps? What are the advantages and disadvantages of using one or the other?
One of the advantages of the Internet Based languages is the fact that they are languages that have grown up and proliferated on the Internet. Being designed and built to work in the online world, they can easily do things that other languages can't, or must be shoehorned into doing. Even though C and C++ are quite capable of dealing with the 'Net, they aren't as at home as, say, Java. With the Internet Based languages you can develop and implement a system or application in a much easier fashion than with the others. The developers of these languages also had the advantage of being able to learn from the older languages, making what had previously been difficult much simpler. There are also some down sides to the Internet Based languages.
The most noticeable one is, ironically enough, one of their considered strengths; the speed with which they evolve. The language definitions for PHP, Python, Ruby and even Perl and Java are done at light speed. It's lucky if a language lasts for a few years before being massively updated. While this is fun for developers doing small, cutting-edge work and those doing R&D, it's not so good if you need to build an application for a large production system. I've been involved with a massive online system that's been built in Java. The application works fine, but the amount of work that the developers have to do to maintain and enhance it with older versions of Java is not insignificant.
With the older languages there's much more long-term stability. You don't find major changes in the language definitions happening at such a fast pace. A program written in Ada or C++ twenty years ago will still compile and run on today's platforms. These languages are not stagnant, however. The current C standard is C99 and it may surprise you to know that the most up to date language is COBOL with the current standard dated 2002. Standards Based languages, by definition, are standardized and stable. This does make for slow adaptation to changes in the IT/IS world, such as the development of WiFi and other new technologies. This adaptability/stability aspect is, as I said earlier, both an advantage and a disadvantage for each of the different models of languages.
Programming languages are tools. Different languages have their own strengths and weaknesses. Most seasoned developers have an idea of these issues. However, the speed of a language's evolution is often an overlooked aspect. Sometimes, slow and steady is better than fast and new.
System Applications
Audio Projects
Planet CCRMA Changes
The latest changes from the Planet CCRMA audio utility packaging project include updated versions of Libsndfile, Specimen, Blop, and the addition of apt and configuration file links for Fedora Core 2.
Database Software
Glom 0.8.3 announced
Version 0.8.3 of Glom, a database table definition GUI, is out. This release features bug fixes, improved documentation, and an updated German translation.PostgreSQL Weekly News
The PostgreSQL Weekly News for June 22, 2004 has been published. "With 7.4.3 now out the door, all eyes have really turned to finishing up 7.5 development. The biggest progress in that regard was the committing of the long awaited tablespaces patch."
PyORQ 0.1 released
Version 0.1 of PyORQ, a Python Object-Relational binding, is out."With PyORQ you can use Python expressions to write queries which are automatically translated into SQL and executed by the backend. This leverages the search capabilities of RDBMSs in an object-oriented programming environment. PyORQ 0.1 is a technology demo. It's purpose is to demonstrate the possibility to translate python expressions into SQL queries and to solicit feedback on this approach and its implementation".
ZODB 3.2.2 (final) released
Version 3.2.2 (final) of ZODB is available. "As promised with the ZODB 3.2.2b1 release last week, the tests for the unsupported Berkeley-based storages are now disabled in 3.2.2. In addition, a small but critical bug in FileStorage.restore() was identified and repaired. This bug didn't affect the Zope core, but is critical for sites running ZRS."
Mail Software
bogofilter 0.91.4 released (SourceForge)
Version 0.91.4 of bogofilter has been announced. "This release fixes a minor bug that could result in an "err: 17, File exists" message. The bogofilter package implements a fast Bayesian spam filter as suggested by Paul Graham in "A Plan For Spam"."
milter-bcc/0.2 (alpha) is available
The 0.2 alpha release of milter-bcc is out. "This is a Sendmail utility milter that can add to the recipient list of any inbound and/or outbound message one or more blind-carbon-copy recipients (Bcc) depending on the MAIL FROM: and/or RCPT TO: addresses for any given message. This is particularly useful for mail hosts that manage several domains, such as an ISP."
Sendmail 8.13.0 released
Version 8.13.0 of Sendmail has been announced. New features include the ability to query maps via tcp/ip sockets, connection rate control, LDAP enhancements, message quarantining, support for certificate revocation lists, experimental MTAMark support, and more. See the release notes for more information.
Printing
LinuxPrinting.org news
The latest news from LinuxPrinting.org includes the release of version 3.0.1 of the Foomatic printer database, and the release of a number of Okidata PPDs under the GPL. On Foomatic 3.0.1: "Most important new features are: CUPS drivers can be used with any spooler, better compatibility of the PPDs to the Adobe specifications and to Windows, better PJL support, workaround for bug in OpenOffice.org 1.1, LPRng improvements, clean-up of Perl scripts, enhancements on *BSD compatibility."
Security
Filtering IDS Packets (O'Reilly)
Don Parker explains how to filter network packets on O'Reilly. "Anyone who has worked with an intrusion detection system knows that it can produce an enormous amount of data. For many network security analysts this vast ocean of packets flagged for further inspection quickly becomes an unruly beast to tame. How then to tame the beast?"
Web Site Development
Project/Open 2.0
Version 2.0 of Project/Open has been announced. "Project/Open is an open-source web-based "project resource planning" system (Project-ERP) with project rooms and tools for managing clients, invoices, time and cost. It is designed for companies in the consulting, advertizing and translation sectors."
Quixote 1.0c1 released
Version 1.0c1 of the Quixote web development platform has been released. The changes include bug fixes and more.
Miscellaneous
POE 0.29 Released (use Perl)
Version 0.29 of POE, A Perl-based networking and multitasking framework, has been announced. "POE 0.29 is released after three months and hundreds of human-hours of hard work. Thanks go out to everyone who helped make it possible. This release includes a substantial performance increase in I/O intensive programs. It improves portability to Solaris, Windows, and Mac OS X."
Announcing Wasabi 0.2
Version 0.2 of Wasabi, a log file monitoring application, has been released. Changes include support for multiple files, performance improvements, improved signal handling, and lots more.
Desktop Applications
Audio Applications
Muine 0.6.3 is available
Version 0.6.3 of Muine, a music playing application, is available. "This release works with mono beta 3."
CAD
Sixteenth release of PythonCAD now available
PythonCAD release sixteenth is out. "Due to packaging problems in the fifteenth release, and a code snafu the bit the Cocoa interface, I'm releasing the sixteenth version of PythonCAD. The missing Cocoa files have been added, and a patch addressing the Layer problems on Cocoa have been applied."
Electronics
XCircuit 3.2.22 released
Version 3.2.22 of XCircuit, an electronic schematic drawing application, is available. This version adds a new tcl parameter selection mechanism.
Financial Applications
KMyMoney 0.6 released
KDE.News announces the availability of KMyMoney 0.6. This version supports double-entry accounting, multiple account types, a new XML file format, and more.SiGeFi 0.1.1 released
Version 0.1.1 of SiGeFi is out. "SiGeFi is a Financial Management System, with focus in the needs of the administration of the money in each personal life and house. It's written in Python/Tkinter, so it'll run in every system that supports Python."
Games
Exult Version 1.2 released (SourceForge)
Exult Version 1.2 has been announced. "After two years of development, we are pleased to Version 1.2 of Exult, the multi-platform engine for playing the classic game Ultima 7. This release contains many bug fixes and gameplay enhancements."
gnome-games 2.6.2 released
Stable version 2.6.2 of gnome-games is available with backported bug fixes.Spineless game engine 0.0.1
Version 0.0.1 of the Spineless game engine has been announced. "Spineless is a generic 3D game engine implemented in Python with C++ optimizations. Focus is on clean design and ease of use, not pure speed. It is still very incomplete and not really useful yet for serious use, but I would appreciate feedback, comments and suggestions."
WoodPusher 0.1 released
Version 0.1 of WoodPusher, a chess application written in C# under Mono, is out. This is the initial release.
GUI Packages
New FLTK software
The latest new software for FLTK,The Fast Light Toolkit, includes SPTK 2.2 beta 2, vtkFLTK 0.6.0, and Table 040621.gtkglextmm 1.1.0 is out
Unstable version 1.1.0 of gtkglextmm is available. "gtkglextmm is C++ wrapper for GtkGLExt, OpenGL Extension to GTK. C++ programmers can use it to write GTK+-based OpenGL applications using gtkmm 2."
gtkmm and glibmm 2.4.3 are available
Version 2.4.3 of gtkmm and glibmm are out with minor improvements. "gtkmm provides a C++ interface to GTK+. gtkmm 2.4 wraps additional API in GTK+ 2.4. gtkmm 2.4 installs in parallel with gtkmm 2.2, so you can have both installed at the same time. glibmm is now a separate module, for use in non-GUI software."
LTK 0.8 released
Version 0.8 of LTK, the Lisp ToolKit, is out. "LTK (The Lisp Toolkit) is a portable "Common Lisp binding for the Tk graphics toolkit". Unlike other similar bindings, LTK provides a high level interface and does not require any knowledge of Tk."
Imaging Applications
ImageProcess 0.4 released
Version 0.4 of ImageProcess, a cross-platform image processing tool, is available. New features include remote processing, undo/redo, and a toolbar.
Interoperability
Wine 20040615 released
Release 20040615 of Wine has been announced. Changes include a major winedbg rewrite, a new Wine preloader, audio support improvements, and bug fixes.Wine Traffic
The June 18, 2004 edition of Wine Traffic has been published. Take a look for the latest Wine project news.
Music Applications
BLOP LADSPA Plugins 0.2.8
Version 0.2.8 of the BLOP LADSPA Plugins are out. "After way too long, a new release of the BLOP LADSPA Plugin set. Orginally named Bandlimited LADSPA Oscillator Plugins, but there's more than oscillators... they're more useful in a modular host, such as Spiral Synth Modular, gAlan, Alsa Modular Synth etc."
gmorgan 0.23 released
Version 0.23 of gmorgan, an organ synthesizer, is out. "This release is a bugfix version and solve compilation problems."
mcontrol 0.0.01 released
Version 0.0.01 of mcontrol has been released. "mcontrol is a ALSA MIDI sequencer client and brings the possibility to assign up to twelve "simultaneous" MIDI control messages for each controller in your MIDI keyboard (Modulation Wheel, Breath Controller, Foot Controller, Pitch Bend and After Touch)."
TAP-plugins 0.6.0 +more
Version 0.6.0 of the TAP-plugins is available. The initial release of the TAP Reverb Editor is also out. New features include the TAP Fractal Doubler, the TAP Reflector, and the TAP Pink/Fractal Noise. Changes have been made to the reverb section as well.
News Readers
Liferea 0.5.0 is out
Liferea Version 0.5.0 is available with bug fixes, new translations, and more. "Liferea (Linux Feed Reader) is a fast, easy to use, and easy to install GNOME news aggregator for online news feeds. It supports a number of different feed formats including RSS/RDF, CDF, Atom, OCS, and OPML."
Office Suites
OpenOffice.org 1.1.2 released
OpenOffice 1.1.2 is out. "OpenOffice.org 1.1.2 introduces the FontOOo Autopilot, which downloads and installs fonts from various sources. In addition, this release provides improved support for dBase database files, additional language support, and improved XML export facilities." Click below for the details.
Web Browsers
Galeon 1.2.14 "End of the Line" released
Version 1.2.14 of Galeon has been announced. "Well, after far too long, here's a new 1.2.x release to coincide with the Mozilla 1.7 release. It's also significant because I'm not planning to try and keep up with mozilla beyond 1.7. AA font support is no longer supported for gtk1 builds of mozilla 1.8, making it pretty clear that it's viewed as deprecated so this seems a good point to stop."
Mozilla 1.7 released
Mozilla 1.7 is out. New features include improved popup blocking, the ability to extract passwords from the password manager, numerous mail improvements, better performance, and more; see the "what's new" document for details.
Wireless Applications
gnome-bluetooth 0.5.1 and libbtctl 0.4.1 are available
New development releases of gnome-bluetooth and libbtctl are available. "gnome-bluetooth is a suite of tools for managing Bluetooth devices and sending/receiving data under the GNOME desktop. libbtctl is a GObject-based library for the Bluetooth and OBEX operations on Linux. It comes with Python and Mono language bindings."
Miscellaneous
First release of gamin
Version 0.0.1 of Gamin is available. "Gamin is a file and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor) system."
Hydrogen 1.0 released
Hydrogen 1.0 is out; click below for the details. Hydrogen is, perhaps, the first offshoot of the recently-freed Ximian Connector; this project, sponsored by Sun, enables Evolution to work with the Sun Java Enterprise System Calendar Server.GNOME Phone Manager 0.3 development release
Development version 0.3 of GNOME Phone Manager is available. "Phone Manager allows you to send and receive text (SMS) messages from the desktop, connecting to your mobile phone via Bluetooth, serial or IrDA. It's finally here! A version of Phone Manager that works with the latest gnome-bluetooth code. This release is feature-wise exactly the same as the 0.2 release, but more or less completely rewritten underneath. The user interface is a bit rough, in particular."
xtopdf v1.0 announced
The xtopdf project aims to provide a tool for conversion from various file formats into .pdf form. The current version can read plain text and .DBF files as input.
Languages and Tools
Caml
Caml Weekly News
The June 8-22, 2004 edition of the Caml Weekly News is available with another round of Caml language information.
Java
Introduction to Jena (IBM developerWorks)
Philip McCarthy introduces Jena on IBM's developerWorks. "RDF is increasingly recognized as an excellent choice for representing and processing semi-structured data. In this article, Web Developer Philip McCarthy shows you how to use the Jena Semantic Web Toolkit to exploit RDF data models in your Java applications."
Perl
Perl's Special Variables (O'Reilly)
Dave Cross shows how to work with Perl internal variables in an O'Reilly article. "One of the best ways to make your Perl code look more like ... well, like Perl code -- and not like C or BASIC or whatever you used before you were introduced to Perl -- is to get to know the internal variables that Perl uses to control various aspects of your program's execution. In this article we'll take a look at a number of variables that give you finer control over your file input and output."
This Week on perl5-porters (use Perl)
The June 14-20, 2004 edition of This Week on perl5-porters is available with more Perl 5 news. "Maybe it's due to the conferences, but this week was a low-traffic one."
PHP
PHP Weekly Summary for June 21, 2004
The PHP Weekly Summary for June 21, 2004 is out. Topics include: Reflection API testers required - and php.net to go live with five!
Python
Weave a neural net with Python (IBM developerWorks)
Andrew L. Blais describes a Python-based neural network on IBM's devloperWorks. "Hot things cool, obviously. The house gets messy, frustratingly. In much the same way, messages are distorted. Short-term strategies for reversing these things include, respectively, reheating, cleaning, and the Hopfield net. This article introduces you to the last of these three, an algorithm that can, within certain parameters, undo noise. A very simple Python implementation, net.py, will show you how its basic parts fit together, and why a Hopfield net can sometimes retrieve a pattern from its distortion."
Python-dev Summary
The May 1-31, 2004 python-dev Summary is available with a summary of the python-dev mailing list traffic.Python-dev Summary
The June 1-15, 2004 python-dev Summary is out with more Python language information.Dr. Dobb's Python-URL!
The June 21, 2004 edition of Dr. Dobb's Python-URL! is online with the latest Python language articles.
S
SLgtk 0.5.9 and Vwhere 1.2.2 released
New versions of SLgtk and Vwhere are available. "The SLgtk package binds the Gtk2 and GtkExtra widget sets to the S-Lang scripting language (www.s-lang.org). SLgtk wraps more than 2200 functions from Gtk2 and its constituent libraries, includes over 4000 lines of sample code in 40+ working guilets, and bundles a code generator (SLIRP) which can be useful for building additional S-Lang modules."
Tcl/Tk
Dr. Dobb's Tcl-URL!
The June 22, 2004 edition of Dr. Dobb's Tcl-URL! is available with the latest Tcl/Tk article links.
Editors
Conglomerate-0.7.14 Released
Version 0.7.14 of Conglomerate, an XML editor, is available. "This is still an unstable release; there are still some known repeatable crash bugs. Please download it and test that no new bugs have been introduced!"
IDEs
Eclipse 3.0 announced
A press release has gone out announcing the June 30 availability of the Eclipse 3.0 release. "With release 3.0, Eclipse now extends its sophisticated object-oriented development technologies to support a rich-client platform (RCP) that enables construction of desktop applications."
Java Development on Eclipse, Part 2 (O'ReillyNet)
O'Reilly has published part two in a series about Java on Eclipse by Steve Holzner. "In this conclusion of a two-part series of excerpts from Eclipse, author Steve Holzner provides still more examples of how Eclipse makes it easier to create Java code from scratch. This week he covers creating Javadocs, refactoring, adding certain skills to your Eclipse toolbox, and customizing the development environment."
Miscellaneous
Associative Array Usage in Python, Perl, and awk (Unix Review)
Ed Schaefer explores associated arrays on Unix Review. "Associative arrays are a staple of Unix productivity tools, as well as the modern ksh-style shells, ksh, bash, zsh, etc. This month, Charles Leonard discusses associative array usage in Python, Perl, and Awk."
Code Improvement Through Cyclomatic Complexity (O'ReillyNet)
Andrew Glover analyzes code by looking at its cyclomatic complexity on O'Reilly. "Overly complex code is dangerous, hard to maintain if not already buggy. But what do we mean by "complex"? The metric of cyclomatic complexity helps show where the most complex code is. As Andrew Glover illustrates, finding the complex code is also the first step to refactoring it."
Page editor: Forrest Cook
Next page:
Linux in the news>>