Dr. Dobb's Journal August, 2005
After five years of development, Free Pascal 2.0, an open-source compiler compatible with Turbo Pascal and Delphi, has been released for Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic), and MorphOS (http://www.freepascal.org/). Free Pascal, which is a GPL compiler for 32- and 64-bit CPU architectures such as Intel 32/64-bit, AMD 32/64-bit, SPARC, PowerPC, and Intel ARM, comes with a cross-platform runtime library, interfaces to existing libraries, and nonvisual classes in the Free Component Library.
Under the terms of a new state law, computer manufacturers who do business in Maryland must begin paying an annual $5000 fee to offer free computer take-back programs to help recycle the state's 60,000 tons of annual electronic waste. For the time being, the law only targets computers, but televisions may be included in the future. Annually, U.S. consumers discard approximately 50 million computers and 130 million cell phones. Other states that have adopted high-tech recycling programs include California and Maine, both of which take different approaches. California requires that consumers foot the recycling bill by paying a $6 to $10 disposal fee on every computer and TV purchased. Maine requires manufacturers to pay the complete cost of recycling computers or TVs. For more information, see http://www .marylandrecyclers.org/hb575.htm.
µC++, a C++ extension that supports concurrent and real-time programming, has been released. Pronounced "micro-see-plus-plus," µC++ 5.1.0 extends C++ with new constructs by providing advanced control-flow including lightweight concurrency on shared-memory uni- and multiprocessor computers running UNIX and Linux. µC++ (available at http://plg.uwaterloo .ca/~usystem/uC++.html) accomplishes this by providing: "coroutines," which have independent execution states; "tasks," which have their own threads; and "monitors" that allow for safe communication among tasks. These new classes can take part in inheritance, overloading, and templates, just like other classes. µC++ is implemented as a translator, µ++, that reads a program containing the extensions and transforms each extension into one or more C++ statements, which are then compiled by an appropriate C++ compiler (currently only GNU C++) and linked with the µC++ concurrent runtime library. This release of µC++ includes support for GCC 4.0.0 and the Intel C++ 8.1 compiler, and AMD64 and Intel EM64T processors in 64-bit mode.
The OASIS Standards group has formed a committee to define exactly what constitutes a service-oriented architecture: Formally dubbed the "OASIS SOA Reference Model (SOA-RM) Technical Committee, the group will be responsible for drafting a reference model that defines the functional components of service-oriented architectures and their relationships; see the committee's web site at http://www.oasis-open .org/committees/tc_home.php?wg_abbrev =soa-rm. The committee has 47 members, including representatives from Infosys, Boeing, Unisys, and the U.S. Department of Homeland Security.
Microsoft has released prebeta versions of two key pieces of its development platform for Longhornthe Avalon presentation subsystem and the Indigo messaging framework. The "Beta1 Release Candidates" support Visual Studio 2005 Beta2 and the .NET Framework 2.0 Beta 2. Avalon, Longhorn's 3D UI layer, includes a display engine and a managed-code framework incorporating XAML markup. New in this release is support for online video and for Microsoft's Metro technology, an XML-based alternative to PDF. Indigo, Longhorn's connectivity piece, is intended to support service-oriented and distributed architectures. For more information, see http://www.microsoft.com/ downloads/details.aspx?familyid=b789bc8d-4f25-4823-b6aa-c5edf432d0c1&displaylang=en.
Congratulations to Tim Vaughan, grand prize winner of the 10th MATLAB Programming Contest sponsored by The MathWorks (http://www.mathworks.com/ contest/ants/winners.html). The problem Tim tackled involved a sandbox in which there are ants, sugar cubes, anthills, and rocks. The challenge was to write a control program used by each ant, taking into consideration limitations such as size and distance. Other prize contest winners include Jack Snoeyink, Hannes Naudé, Cobus Potgieter, Jan Langer, Niilo Sirola, and Timothy Alderson.
The Apache Foundation has launched a new development effort, dubbed "Project Harmony," to build an open-source version of Java. Harmony has been approved as part of the Apache Incubator (http:// incubator.apache.org/), a program created in 2002 as a starting point for new Apache Foundation codebases. Harmony will provide a "clean room" implementation of J2SE 5, the latest version of the Java 2 Standard Edition. The Harmony team plans to use Sun's TCK to test compatibility with the specificationassuming that TCK can be licensed under Sun's academic and nonprofit scholarship program.
The SANS Institute has issued its most recent lists of the top 20 security holes in Windows and UNIX systems, with a supplementary advisory highlighting recently discovered vulnerabilities (http://www .sans.org/top20/). The institute identified holes in Internet Explorer, ActiveX, PNG file processing, cursor and icon handling, the Windows License Logging Service, and the Microsoft Server Message Block (SMB) as the most severe of new Windows vulnerabilities in 2005; web servers and services pose the most critical ongoing threat. Meanwhile, UNIX remains plagued by holes in BIND, SNMP, and SSL. Mac OS X also made an appearance on the list due to buffer overflows in the cross-platform RealOne Player.
The Python Challenge is a set of riddles designed to provide an entertaining way to get involved with the Python programming language by exploring Python's module library. Among other things, the Python Challenge (http:// www.pythonchallenge.com/) demonstrates the power of Python features such as batteries. Likewise, the Ruby Quiz (http://www.rubyquiz.com/) is a weekly programming challenge for Ruby programmers with similar goalsto think, learn, and have a good time.