On the Desktop
Linux in the news
All in one big page
See also: last week's Development page.
News and EditorialsPython 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.
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:
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'."
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.
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.
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.
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 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.
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.
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."
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
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."
Objective CAML version 3.02 released. Version 3.02 of Objective CAML has been released. RPM and tar.gz versions are available for download.
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.
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.
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 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:
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."
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.
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.
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.
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
Gnu Compiler Collection (GCC)
Gnu Compiler for the Java Language (GCJ)
IBM Java Zone
Free the X3J Thirteen (Lisp)
Dr. Dobbs' Perl
PHP Weekly Summary
Tcl Developer Xchange