[LWN Logo]
[LWN.net]

Sections:
 Main page
 Security
 Kernel
 Distributions
 On the Desktop
 Development
 Commerce
 Linux in the news
 Announcements
 Linux History
 Letters
All in one big page

See also: last week's Development page.

Development projects


News and Editorials

Python Division Concerns Guido Van Rossum has posted an updated revision of Python PEP #238 that concerns the division operator. Python is a dynamically typed language where a single variable can assume the properties of a float, integer, complex, or other type. This leads to ambiguities in dealing with the division operator.

The current division (/) operator has an ambiguous meaning for numerical arguments: it returns the floor of the mathematical result of division if the arguments are ints or longs, but it returns a reasonable approximation of the division result if the arguments are floats or complex. This makes expressions expecting float or complex results error-prone when integers are not expected but possible as inputs.

Guido is dealing with the problem by splitting division into three different cases, true division, floor division, and classic division. True division is intended for the normal mathematical operation involving floating point numbers. Floor division is used when dealing with integers, and classic division is the combination of both true and floor division. Classic division is the method that current versions of Python implement.

The PEP proposes the split of division into two operators, the / operator for true division, and the // operator for floor division. This change will no doubt cause some compatibility problems when compiling old code under the new compiler.

Guido states:

It is the opinion of the authors that this is a real design bug in Python, and that it should be fixed sooner rather than later. Assuming Python usage will continue to grow, the cost of leaving this bug in the language will eventually outweigh the cost of fixing old code -- there is an upper bound to the amount of code to be fixed, but the amount of code that might be affected by the bug in the future is unbounded.

Guido is going to deal with the division issues in the following manner:

  • Classic division will be the default mode in Python 2.X.
  • Python 3 will use true division as the standard.
  • The // operator will be added for the unambiguous use of floor division.
  • A future division statement will be available to allow programs to work under the new model.
  • A command line argument will turn on run-time warnings for classic division when it is applied to integers.
  • The standard library will use the future division mode and // in order to avoid the use of classic division.

Hopefully, these changes will be sufficient to solve the division problems and people will be willing to do a little work now to have a better Python language in the future .

The State of the Onion 5 (Perl.com). Perl.com's Simon Cozens covers Larry Wall's State of the Onion talk at the recent Perl conference. "The bell tolled, and so Larry had to move onto talk four - control structures. To loud applause, he announced that Perl 6 would include a switch statement; to some bemusement, however, he let on that it would be called 'given' - case statements would be called 'when'. Another notable renaming: 'local' will become 'temp'."

Audio

Audacity 0.96 released. Version 0.96 of the Audacity cross-platform audio editor has been released. New to this version are mute and solo buttons, MP3 exporting, amplify, fft filter, phaser, and waawaa effects. With the exception of the MP3 code, Audacity has been released under the GPL license.

Clusters

Linux High Availability Working Group at OLS. The recent Ottawa Linux Symposium featured a working group that intends to build a standard platform for developing high availability and high performance clustering software. People who are working on Linux based cluster systems should consider getting involved in this effort. See the LWN report from OLS for more details.

Databases

SAPdb, another free database. SAPdb is one of the lesser publicized open-source SQL databases that runs on Linux. The history of SAPdb goes back to the early 1980s when it was developed as a commercial product. The database has changed names several times since then. SAPdb was released under a GPL license in October of 2000.

Electronics

New software from the gEDA project. New versions of several gEDA electronic design tools have been announced on the gEDA site. New releases include gEDA/gaf cygwin, Icarus verilog, and SAVANT.

Embedded Systems

Embedded Linux Newsletter for July 26, 2001. This week's Embedded Linux Newsletter from LinuxDevices covers an interview with Lineo's COO, an animated BusyBox tutorial and Isamu, the humanoid robot.

Mail Software

Mailman 2.0.6 released. Version 2.0.6 of Mailman, the GNU MailingList Manager has been released. This release fixes a security problem involving empty passwords, several other minor bugs have also been fixed.

System Administration

OpenSSH key management (IBM developerWorks). In this first of a series of articles on IBM's developerWorks, Daniel Robbins explains the workings of RSA and DSA authentication. "SSH, specifically OpenSSH (a completely free implementation of SSH), is an incredible tool. Like telnet or rsh, the ssh client can be used to log in to a remote machine. All that's required is for this remote machine to be running sshd, the ssh server process. However, unlike telnet, the ssh protocol is very secure. It uses special algorithms to encrypt the data stream, ensure data stream integrity and even perform authentication in a safe and secure way."

Linux hardware stability guide, Part 2: Drivers, IRQs, and PCI latency (IBM developerWorks). In an IBM developerWorks article, Daniel Robbins shows how to diagnose hardware problems under Linux using the NVIDIA TNT-based AGP card. "Yes, I was having some kind of stability problem. But I didn't know exactly what was causing the problem. Did I have flaky hardware, or was the card misconfigured? Or maybe it was a problem with the driver -- did it not like my VIA KT133-based Athlon motherboard? Whatever the problem, I wanted to resolve it quickly."

Web-site Development

New Versions of Zope and Python (O'Reilly). Stephen Figgins talks about new versions of Zope and Python in an O'Reilly article. "What I have found better about Zope 2.4 has little to do with Zope itself. The documentation is better."

The latest Zope News. The latest Zope News contains articles about Formulator 1.0.1, a binary installer for Zope on MacOSX, new database and session helpers, and more.

Section Editor: Forrest Cook


August 2, 2001


Application Links
GIMP
Mozilla
Galeon
High Availability
ht://Dig
mnoGoSearch
MagicPoint
Wine
Worldforge
Zope

Open Source Code Collections
Berlios
Freshmeat
OpenSourceDirectory
Savannah
Le Serveur Libre
SourceForge
Sweetcode

   

 

Programming Languages


C++

Proposed method for improving C++ startups. A note posted to the KDE Development list has proposed a method for preprocessing C++ object files before linking in order to improve performance during program startup. "Waldo Bastian's document demonstrates that the current g++ implementation generates lots of expensive run-time relocations. This translates into the slow startup of large C++ applications (KDE, StarOffice, etc.). The [proposed] program "objprelink.c" is designed to reduce the problem. Expect startup times 30-50% faster. "

Red Hat's Jakub Jelinek also posted another C++ prelinking solution that is worth looking at. (Thanks to Anthony Green)

OSE 7.0b8 C++ class library available. A new release of the OSE C++ class library has been released. This release also includes mature Python wrappers. " At its core, OSE is a C++ class library for general purpose programming, but also includes support for building event driven systems and distributed applications using a request/reply and publish/subscribe style service agent framework. The ability to interact with an application is facilitated using a HTTP servlet framework and RPC over HTTP interfaces."

Caml

Objective CAML version 3.02 released. Version 3.02 of Objective CAML has been released. RPM and tar.gz versions are available for download.

Java

The Java 2 user interface (IBM developerWorks). Matt Chapman takes a look at the Java 2 UI in an IBM developerWorks article. Check it out for a good review of the graphical capabilities of Java.

The Embedded Java+Linux Quick Reference Guide (LinuxDevices). LinuxDevices brings another quick reference guide to the table with the Embedded Java+Linux Quick Reference Guide. "Blame it on Moore's Law, but it's now practical to embed moderately high performance computing and connectivity in just about everything that runs on electricity -- whether tethered or mobile. This trend is fueled by powerful and highly integrated system-on-chip processors, coupled with large capacity system and storage memories (both disk and silicon), and empowered by wired and wireless communications interfaces (Ethernet, IrDA, 802.11, BlueTooth)."

Tunneling through the corporate network (IBM developerWorks). Malcolm Davis writes about using Java applets over HTTP with an emphasis on the passing of information through corporate firewalls. "The corporate firewall is a double-edged sword. It helps prevent unauthorized access to the corporate Web services, but can disable access for legitimate clients. Due to the number of safety measures taken by system administrators, HTTP has become the universal entry mechanism to the corporate network."

Open source Java going strong (ZDNet). Michael C. Daconta writes about open source Java projects in ZDNet's Java Opinion column. The article covers many current open-source Java efforts and discusses the idea of GPLing the Java virtual machine.

Lisp

OpenMCL 0.5 released. Version 0.5 of OpenMCL has been released. This release adds improved ANSI compliance, Gray streams, exception handling for floating point operations, and more.

Perl

Artistic License Revisited (use Perl). This analysis of the Artistic License, which covers the Perl programming language, says that the license is too restrictive. "In almost all instances of the OAL, especially with Perl, it is used inside of what is called a 'dual-licensing model', specifically with the GPL. This is done because they do not need to choose between the OAL or the GPL until they need to litigate a position. This has never been tested in court, so it is not known how defendable of a tactic this is. "

YAS, Perl Monks, Perl Mongers to Merge. Three well known Perl groups are merging to form a non-profit foundation in support of Perl. "Not only does this have the blessing of the Perl elders (Larry has agreed to be on the board) but there is corporate interest from the community which recognizes the importance of Perl and free software. "

Shared Source vs. Open Source (use Perl). The first report from the Mundie v. Open Source debate at the O'Reilly conference comes from use Perl. "To Tiemann's aid came Clay Shirky, Brian Behlendorf, and Mitchell Baker. To Mundie's side jumped Ronald Johnston and David Stutz. The groups circled each other for awhile, throwing out jabs. Baker finally threw a folding chair at Mundie when she remarked, 'Control of all our data flow by one entity is not healthy.'"

Perl 6 architecture overview now online. Dan Sugalski's Perl 6 internals talk from the recent Perl conference is available online in both PowerPoint and OpenOffice format.

PHP

PHP Weekly Summary for July 30, 2001. The July 30, 2001 issue of the PHP Weekly Summary has been published. Topics include the installation of the Chora web based cvs tool, an If Else bug, some handy security tips, and more.

PHP Conference Coverage (php.net). The php.net site is featuring coverage of the recent PHP Conference. The talks that were covered include:

  • Rasmus Lerdorf's PHP - Spinal Injection.
  • Thies Arntzen on Making efficient use of Oracle8i thru Apache and PHP 4.
  • Andrei Zmievski and Frank M. Kromann on PHP-GTK.
  • Jon Parise on The PHP Extension and Application Repository.
The site also lists several additions to the PHP documentation.

Python

Parrot -- should life imitate satire?. Eric S. Raymond has posted a note to the Python-Dev mailing list discussing the possibilities of having Perl6 and Python compile down to the same byte code, prompting, as expected, a thorough discussion from such notable individuals as Andrew Kuchling and Nathan Torkington.

Dr. Dobb's Python-URL! for July 30, 2001. Dr. Dobb's Python-URL! this week covers topics such as the argument for dynamic typing, a quick start tutorial for CORBA, and Pippy, the Python port to PalmOS.

Python for the PalmOS (IBM developerWorks). Installing Pippy, the Python subset for the PalmOS, is the subject of this article from IBM's developerWorks. "How you upload these two files to your handheld varies depending on the desktop OS that you are running. However, users who have installed any additional applications to their PalmOS handheld will be familiar with the procedure. Under Windows and MacOS environments, you will usually use the "Palm Desktop" and its "Install" button. Under Linux or other UNIX-like platforms or OS/2, you will probably use the pilot-link utilities -- specifically the pilot-xfer program."

Object-Oriented Language: Python (Cetus Team). The Cetus Team has assembled a list of useful Python language links that looks like a worth addition to any Python programmer's bookmarks file.

Python Is Middleware. Tim Daneliuk discusses the use of Python as middleware in additon to many other language considerations in an online paper. "This is the real reason to stay on top of Python. The vagaries of the "Mine is bigger than yours" battles between McNealy, Gates, and Ellison will be with us until they aren't. Python lives outside this Billionaire Battlezone because none of the warring factions own the technology and it plays nicely with them all. It is precisely because both Perl and Python have avoided choosing sides in these silly ego competitions that they have and will survive."

Jython 2.1 alpha 3 released. Jython 2.1 alpha 3 was released on July 29, 2001. The summary of changes includes settable console encodings. Several bugs have also been fixed.

Ruby

Programming in the Ruby language (IBM developerWorks). Joshua D. Drake introduces the Ruby language in the first of a four part article on IBM's developerWorks. "Joshua begins his exploration into Ruby with a discussion of variables, quotes, arrays, objects, and methods. Subsequent articles in this Ruby series will deal with more advanced topics, including developing graphical applications and using Ruby with databases."

The latest from the Ruby Garden. The Ruby Garden features a few new articles this week. Topics covered include signal querying, lots of new method additions, and more.

Tcl/Tk

Dr. Dobb's Tcl-URL! (July 30). This week's Tcl-URL! includes discussion on the Snack Sound Toolkit and Wavesurfer, news of the 8th annual Tcl conference, and a tutorial on using WSDL4TCL.

XML

xmldiff 0.1.1 released. The first beta release of xmldiff has been announced. Xmldiff is a tool that shows the difference between two XML trees in a manner that is similar to the diff command line utility.

Miscellaneous

RunTime: Block memory copy, Part 2. Dr. Edward G. Bradford discusses programming techniques for high-performance computing on IBM's developerWorks site. Memory to memory copies of various data elements are compared between Windows 2000 and Linux. You should probably start with the first article in the series to get the whole picture.

Borland introduces open source Kylix IDE for Linux. Borland has released an IDE called Kylix that is aimed at open source development. Kylix itself appears to be proprietary software, but it is licensed in a manner that makes it useful for use on open source projects. (Thanks to Paco Zàrate)

Section Editor: Forrest Cook

 
Language Links
Caml
Caml Hump
Tiny COBOL
Erlang
g95 Fortran
Gnu Compiler Collection (GCC)
Gnu Compiler for the Java Language (GCJ)
Guile
Haskell
IBM Java Zone
Jython
Free the X3J Thirteen (Lisp)
Use Perl
O'Reilly's perl.com
Dr. Dobbs' Perl
PHP
PHP Weekly Summary
Daily Python-URL
Python.org
Python.faqts
Python Eggs
Ruby
Ruby Garden
MIT Scheme
Schemers
Squeak
Smalltalk
Why Smalltalk
Tcl Developer Xchange
Tcl-tk.net
O'Reilly's XML.com
Regular Expressions
 

Next: Commerce

 
Eklektix, Inc. Linux powered! Copyright © 2001 Eklektix, Inc., all rights reserved
Linux ® is a registered trademark of Linus Torvalds