On the Desktop
Linux in the news
All in one big page
See also: last week's Development page.
News and EditorialsLinux PDAs as Embedded Controllers
The Linux powered PDA has been getting a lot of attention lately. The Linux-PDA and PDA-Linux Quick Reference Guide on the LinuxDevices site lists nine different hardware platforms that currently run Linux and more will certainly show up in time.
Normal uses for PDAs include numerous desktop applications such as calendars, memo pads, browsers, games, and the like. Embedded computing would be a natural extension for a palm device.
Consider that a typical PDA is an inexpensive, mass produced computer with a graphical display for output and a touch pad or keyboard for input. Most PDAs also include one or more I/O channels for communicating with the outside world. PDAs usually contain a fair amount of RAM as well as flash memory for permanent data storage. PDAs are optimized for low power consumption, making them natural candidates for portable use. Many embedded applications require exactly this set of features.
If one were to assemble parts to make an embedded computer with all of the features found in a typical palm device, the hardware price and size would be much larger than the typical $200 to $300 price tag of a palm device. A large amount of hardware engineering talent would be required to reproduce such a platform, making it only practical for high volume projects. Palm devices have the advantage of already being mass-produced for sale to a wide market. Starting and embedded project with mature user interface software is also a big step ahead when compared to a custom designed system.
So, instead of assembling a lot of special purpose components into an embedded system, a palm device could be used for the bulk of the system. Special purpose I/O would be the only place where custom hardware and software was required.
The list of peripheral ports available on the current palm devices is fairly long. Currently, it is possible to purchase Linux based PDAs with PCMCIA, CompactFlash, RS-232, IrDA, USB, and Bluetooth interfaces. Modem ports are also common PDA peripherals. Interfaces that are not so common are IDE ports, Ethernet adapters, high resolution audio I/O, and cameras. Some of these limitations could be worked around by purchasing or designing adapters for the existing busses, although I/O bandwidth is always a consideration in such designs.
Example uses for a palm based embedded system include solar powered remote data loggers, industrial controllers, remote cameras, robotic controllers, wired and wireless data entry terminals, and user interface/controllers for a variety of devices which can be controlled digitally.
Disadvantages of palm devices include reliance on another vendor for a critical part, and a fixed form-factor that may not work for some applications. It would be difficult to use a palm device as an MP3 car audio player, for example. The palm device may be too fragile for some applications, but since it is easily replaced, that may not be a big concern.
The ability to run Linux is an obvious advantage, all of the power of the device can be accessed by the developer. Mature networking software and a widely understood development platform are also obvious pluses. Of course, no mention of embedded Linux would be complete without mentioning the lack of license fees.
Maybe it's about time to consider what your palm device is capable of doing besides playing games and storing phone numbers.
Linux Documentation Project Updates. The Linux Documentation Project has updated a number of existing documents. Take a look for all of the latest documentation.
A Linux-powered humanoid robot. Kawada Industries and the University of Tokyo have produced a humanoid robot powered by a couple of Pentium processors and RTLinux. It can walk, handle stairs, carry items, and recognize faces. Some of the technical details can be found on this page, but it's all in Japanese. A look at the university laboratory's home page (English) shows a number of other robot projects, including a robotic penguin. (Thanks to Maya Tamiya).
Linux In The Palm Of Your Hand (TechWeb). This fairly detailed article on Linux PDAs and the embedded market says that Linux on handhelds is a good idea, but standards need to be developed for things like graphical interfaces. "The ELPS currently is available only to consortium members as a draft specification. It will be based in part on the Linux Standard Base, a standard for the Linux desktop and server markets that hasn't been released yet. While the Linux Standard Base nominally specifies X-Windows as the graphical user interface for desktop and server versions of Linux, it's not clear yet how the consortium will handle GUIs for PDAs."
Embedded Linux Newsletter for July 12, 2001 (LinuxDevices). This week's Embedded Linux Newsletter includes stories on Java technology for the embedded Linux market, tiny widgets for Nano-X, and the .Net stories of the week.
Wine Weekly News number 24. Issue 24 of the Wine Weekly News is out. Topics include accessing serial port dongles, compatibility issues between the win16 and win32 APIs, Wine and sym links, and more.
Samba 2.2.1a released. A minor bugfix release of Samba is now available. Version 2.2.1a fixes a Samba PDC bug. This is not a security related release.
OpenNMS Update, July 17, 2001. The weekly update for the OpenNMS project is out. This edition includes project status, some extra help for installing OpenNMS 0.8.0, and more.
LPRng 3.7.5. A new version of LPRng, dated June 22, 2001, is available for download. The LPRng web site contains no announcement for this release, but those wishing to play with the latest and greatest version may want to give it a try.
Automating UNIX system administration with Perl (IBM developerWorks). This article from IBM's developerWorks explains how to use Perl and cfengine to automate systems administration tasks for any Linux, BSD or Sun-based system. "Even though you can do with Perl all the things that cfengine does, why would you want to reinvent the wheel? Editing files, for instance, can be a simple one-liner if you want to replace one word with another. When you start allowing for system subtypes, logical system divisions, and all the other miscellaneous factors, your one-liner could end up being 300 lines. Why not do it in cfengine, and produce 100 lines of readable configuration code?"
Processing WSDL in Python -- an open-source library (IBM developerWorks). This tutorial from IBM developerWorks (subscription required) explains how to use Python for WSDL, the Web Services Description Language.
FastIndex search engine. The FastIndex search engine has been released as open source software under the LGPL license.
Section Editor: Forrest Cook
July 19, 2001
Caml Weekly News for July 10 to 18, 2001. The latest Caml Weekly News is available. Topics include regexp matching, the partial order library, the O'Caml runtime environment, and more.
Pondering our Linux/Java future (Linux Devices). Jason Briggs discusses possibilities for embedded Java in a Linux Devices guest editorial. "Using your Linux/Java PDA, you bring up a house-controller application which shows a small map of the rooms in your home. You click on the lounge and kitchen areas, then click on the heating icon, then enter a start time. The house-controller app connects to your home services gateway, sending the necessary instructions. The gateway calls the heater in the lounge (a 'model 2' heater) and sets the time it should switch on. The heater in the kitchen is a 'model 1' however, so it only has a simple on/off switch; therefore the gateway will wait until the specified time to send an 'on' signal. "
Threading Lightly: Synchronization is not the enemy (IBM developerWorks). Brian Goetz discusses Java thread synchronization in an IBM developerWorks article. "Unlike many other programming languages, the Java Language Specification included explicit support for threading and concurrency. While having language support for concurrency makes it easier to specify and manage constraints on shared data and the timing of operations across threads, it doesn't make the complexities of concurrent programming any easier to understand. This three-part series aims to help programmers understand some of the major issues behind multithreaded programming in the Java language, and in particular to understand the impact of thread safety on Java program performance."
Comp.lang.lisp FAQ project. A new project is underway to update the comp.language.lisp FAQ. Lend a hand if you can.
Perl News (use Perl).
The latest news from use Perl includes the following:
Perl 5 Porters for July 16, 2001. The July 16, 2001 edition of Perl 5 Porters is out. This issue covers Perl 5.7.2, a debate on SUPER::, and more.
Symmetric Cryptography in Perl (O'Reilly). Abhijit Menon-Sen talks about writing cryptography code with Perl in an O'Reilly perl.com article.
PHP Weekly Summary for July 16, 2001. The July 16, 2001 edition of the PHP Weekly Summary is out. Topics include the XML-RPC error code patch, talk of splitting PHP development into multiple working groups, a discussion on application servers, and the availability of new functions for parsing arguments.
A PHP-Nuke project fork. The PHP-Nuke project, a weblog system built on PHP, has undergone a fork because of a difference of opinion on how development should be done. The new project is Post-Nuke , or "the fallout release." See this page for a description of the rationale behind the fork.
Dr. Dobb's Python-URL!. Another weekly edition of the Dr. Dobb's Python-URL! is now available. This week saw the release of 2.1.1c1, a discussion on working on Python itself, and a new release of wxPython, among other things.
Python 2.2a1 released. The first alpha release of Python 2.2 is out. It includes a number of new features, including iterators and generators, the client-side XML-RPC library, and some significant changes to the way builtin types and classes are handled. That last change may break things, and the developers are looking for feedback on whether the feature should be included in the final 2.2 release or not. If you make heavy use of Python, giving this release a test run might be a good idea.
Jython 2.1 alpha 2 released. Version 2.1 alpha 2 of Jython, the Java language implementation of Python has been released. The release notes detail the changes which include a new ReadlineConsole class, zlib, gzip and zipfile modules, a Display Hook for Interactive Use, and numerouse bug fixes.
Python News in Spanish. A new web site has been created with all of the latest Python news in Spanish.
Pychecker 0.7 released. Pychecker 0.7, a Python language bug checker has been released. This version contains a number of new checks as well as bug fixes.
SCons, a Python replacement for Make. Active development of SCons, a software building tool has been announced. "SCons is implemented as a Python script around a central set of Python build-engine modules. SCons configuration files are actually executed as Python scripts, allowing you to use full Python functionality to control your build. You use Python functions and methods in the configuration files to tell the central build engine about your input and output files."
This Week's Tcl-URL. Dr. Dobb's Tcl-URL for July 16, 2001 is out, with the latest from the Tcl/Tk development community. Topics covered include troubles with the Tcl Wiki, using linear algebra, availability of a new multicolumn listbox, negative clock clicks, and more.
An introduction to neural networks (IBM developerWorks). Andrew Blais and David Mertz discuss the application of neural networks in an IBM developerWorks article. "Neural nets may be the future of computing. A good way to understand them is with a puzzle that neural nets can be used to solve. Suppose that you are given 500 characters of code that you know to be C, C++, Java, or Python. Now, construct a program that identifies the code's language. One solution is to construct a neural net that learns to identify these languages. This article discusses the basic features of neural nets and approaches to constructing them so you can apply them in your own coding. "
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