July 30 2003 Edition

By Adam "StoneTable" Israel (mailto:stone@arstechnica.com) and Jorge "whiprush" Castro (mailto:jorge@whiprush.org)

In the tradition of Game.Ars (http://arstechnica.com/etc/games/index.html) and following in the footsteps of Mac.Ars (http://arstechnica.com/wankerdesk/03q2/mac.ars-07292003.html), we present to you Linux.Ars. In the spirit of its predecessors, this column is dedicated to covering a handful of major news items from the Linux community. We intend to remain faithful to the Ars Technica tradition of in-depth, technical, cross-platform coverage. We'll dig in deeper on issues that we feel are important to not just Linux users but all enthusiasts.

This column is about you, the reader. Like Linus, we started out with an idea. That idea led to a prototype, this column. We may direct the effort but it's up to you, our readers, to fuel our fire that will drive us forward. Like any successful Open Source project, the quality of this column depends on critical feedback and suggestions to make it a success, so tell us what you like, what you hate, or what you want to see. Give us your best shot. Let's go...


Groupware Solutions come to Linux

Two Groupware solutions recently released their 1.0 versions, bringing the Linux desktop user some powerful collaboration tools. Groupware is a common problem area for Open Source, so high hopes accompany these two programs. Opengroupware.org (http://www.opengroupware.org/) launched as a complementary community to OpenOffice.org. It includes a web-based tool to the entire suite. The plugin architecture to support client-side programs should be checked in shortly. The Kroupware (http://www.kroupware.org/) project also released the Kolab Server and Client, bringing a fully functional solution right out of the box.

Both projects are vying for "Exchange Killer" functionality, with OpenGroupware also tackling document management in its system. We can expect Kolab to be included in the next major release of KDE, and look for OpenGroupware.org in the next major release of your favorite distribution. Plugins for your favorite mailer still need to be written to take advantage of this, although Kolab comes with a working client already.

Both projects however, seem to be putting an Outlook plugin on the back burner, meaning that while a pure Linux environment might enjoy all these features, the "Holy Grail" of an open cross-platform collaborative environment that also interacts with Exchange/Outlook is still far from practical reality.


Dashboard brings XML, C#, and Mono to the Desktop

Nat Friedman's Dashboard (http://www.nat.org/dashboard) application is generating buzz for Linux desktop users. Dashboard, which is described as an "association engine", is an application that sits on your desktop and searches your "personal information space" as you go about your business on the desktop. The end result is that if you are in an Instant Message with "Joe Smith", their related information, email, blog entries, past IMs, contact information, etc. show up in the Dashboard. Applications speak to the Dashboard via plugins (http://www.nat.org/dashboard/status.php3) which send XML cluepackets to the Dashboard, which then correlates all the related information and displays it for you.

Though it sounds rather simplistic, the important thing to remember is that the information displayed is based on relative feedback. So while Joe is discussing his favorite album, the Dashboard might display a link to the album cover, with a few links to your own music library, while perhaps showing an Amazon link of the tour book for sale. As you add more application plugins, the relative complexity increases, so that more information is cross-referenced, this includes things such as your browser history and bookmarks. The design goal is "Glance, not stare" so the information displayed is relevant to whatever you are doing. The best way I can describe it is "Gkrellm for humans".

Dashboard also has the distinction of being the first real interesting mono (http://www.go-mono.com/) application that users can play with. Perhaps this is the killer application that Ximian needs to bring mono into the forefront of Linux development, prior applications were mostly little widgets and proofs of concept. The application itself is written in C# and runs on mono, but the Dashboard backend is language agnostic, so any application that can spit out XML cluepackets can interact.

So maybe the next time someone complains about St. Anger on IRC, the dashboard will display your last ten posts to alt.therapy.suicide ... you should be so lucky.


Red Hat changes gears

Red Hat will be making some changes to how they sell Linux. The next major release, to be called "Cambridge," will not be sold in a box at retail outlets.

More significantly, Red Hat is changing the way that the distribution itself is going to be developed. Red Hat has launched the Red Hat Linux Project, in which the development lists and beta cycle testing have been opened to the public. What does this mean for users? This brings a little bit of Debian and Gentoo to the "developer pool" for Red Hat, giving users and outside developers more say into what the distribution should be. Popular third party repositories like FreshRPMS (http://www.freshrpms.net/) and Fedora (http://www.fedora.us/) can now become involved with the development of Red Hat itself.

It will take some time to see how Red Hat and outside developers work together, but in the meantime, keep your eye on rhl.redhat.com to find out how to get involved. And while you're there, pick up the latest beta, "Severn".


Reiser4 Ready for Users?

Hans Reiser has declared (http://www.ussg.iu.edu/hypermail/linux/kernel/0307.2/2340.html) the Reiser4 journaling filesystem just about ready for users, and posted benchmarks (http://www.namesys.com/benchmarks/v4marks.html) to boot. We can't even scratch the surface of Reiser4 (http://www.namesys.com/v4/v4.html) here, it is a radical departure from most existing filesystems. The Reiser4 page is an excellent place to learn more.

Reiser4 shows a lot of potential, but may still have a ways to go before proving itself. Advanced features such as the use of database-like transactions to ensure data integrity sound good, but until it has gone through heavy testing and has proven itself, I'll be leery using it for any data that I care about.


Linux Kernel 2.6 on the home stretch

Linus has released kernel 2.6.0test2. While it will be some time before it is released, you can grab the latest bits from your closest kernel.org (http://www.kernel.org/) mirror and do your part to help test. If you're unfamiliar with what kernel 2.6 will bring to users, Joe Pranevich's The Wonderful World of Linux 2.6 (http://kniggit.net/wwol26.html) will bring you up to speed.

A few #linux regulars have been dipping into the 2.6 waters lately, and the general consensus seems to be that it is remarkably solid, definitely more stable than 2.4 was when it entered the test phase. The performance updates are considerable, especially for desktop users, and are more pronounced when the system is under a high load. Although exciting for the home Linux user, the benefits for "Big Iron" users are probably the most significant. Support for NUMA machines and improved SMP will continue to push Linux into the high end server room, as memory limits have been expanded, and the XFS and JFS filesystems finally make their debut as an official part of the kernel. On the small side, embedding users will be happy to see support for smaller architectures, as you can now omit large parts of the kernel at compile-time for use in MMU-less processors.

There are still some drivers that will not compile, but if you can finish compiling it, it should run just fine. This is a good sign, considering how long it took 2.4 to get stable. Of course, we strongly recommend that you take precautions when trying a new test kernel, and when in doubt, wait for the next version of your distribution to include it.


Developers Corner

Trolltech has released (http://www.trolltech.com/newsroom/announcements/00000135.html) Qt 3.2, their popular cross-platform toolkit. New features include a faster font rendering engine, new classes, and drivers for DB2. The University of Michigan's Center for Advanced Computing (http://cac.engin.umich.edu/) recently held an introductory workshop on parallel computing. The presentation and notes are online (http://cac.engin.umich.edu/workshop/) Another (http://lkml.org/archive/2003/7/18/281/index.html) Bitkeeper (http://www.bitmover.com/bitkeeper/) debate (http://lkml.org/archive/2003/7/18/270/index.html) on the LKML (http://lkml.org/) rages (http://lkml.org/archive/2003/7/18/279/index.html) on (http://lkml.org/archive/2003/7/18/281/index.html). The endless struggle between philosophy and practicality continues. IBM has a nice article (http://www-106.ibm.com/developerworks/linux/library/l-graf/) on using ImageMagick from the command line, allowing you to add image manipulation to your projects. One of my favorite toolkits, ImagMagick can be called from C, C++, Perl, Python, Java, PHP and several other languages.


The snake is out of the bag. Python 2.3 goes gold.

I'm happy to report that Python 2.3 (http://www.python.org/2.3/) has been released. For the uninitiated, Python (http://www.python.org/doc/Summary.html) is an "interpreted, interactive, object-oriented programming language", often compared to Perl, Java, or Tcl. This is a major release for Python, more than a year and a half in the making. This is a significant improvement to my favorite scripting language, bringing better performance and stability, as well as many dead bugs and sealed memory leaks. We've been using Python here at Ars Technica for several years now, to do things like keeping our syndicated news feed (http://www.arstechnica.com/etc/rdf/ars.rdf) up to date.

There is quite the laundry list of changes (http://www.python.org/2.3/highlights.html) in this release. Instead of repeating them verbatim, I'll run down some of the more important ones.



PHPBuilder.com (http://www.phpbuilder.com/) is running a nice introduction (http://www.phpbuilder.com/columns/argerich20030411.php3?page=1) to the forthcoming PHP 5, currently in beta testing. PHP has become a staple of Internet development since its inception in 1995. It has evolved as demanded by need and new technology, and has become a damn fine alternative to Perl. This next iteration continues that growth trend. There are several new and revamped features that make my loins quiver in anticipation. Just kidding. I think.

The PHP5 object model has been dipped in coffee and now has a distinctively Java smell to it. Pick up your donuts and begin dipping. [I just want to note that that is the worst pun evar, whip] If you have attempted to write any object-oriented code using previous versions of PHP, you probably found that it was lacking in many of the techniques that we usually use to identify object-oriented programming, such as abstract classes, multiple inheritance, and encapsulation (through protected, private, and public data). PHP5 makes notable improvements in this area, but it will introduce headaches for some developers. Existing object-oriented code written for PHP4 will need to be modified to use this new model. Other handy C++ features, such as streams, exception handling and Namespaces have been added to this release.

Object-oriented improvements (http://www.php.net/zend-engine-2.php) aren't the only changes to come. PHP5 also includes the Zend Engine 2 (http://www.php.net/zend-engine-2.php), re-written XML support using the popular libxml2 (http://www.xmlsoft.org/) library, and various improvements in performance. Even though many things have changed (http://www.php.net/ChangeLog-5.php), PHP5 will still remain a contender in internet application development. These new features make PHP a stronger language. Anyone using PHP and wanting to write object-oriented code needs to take a look at this.


TTT: Tools, Tips and Tweaks

If you're just starting out with Linux or are an experienced user, chances are you still haven't discovered everything that the Linux community has to offer. In this section we'd like to show off our arcane Linux knowledge.

Watch - watch executes a program at a set interval and displays the output on-screen. It's handy for watching output that periodically changes, so you can leave a program running in a window and watch will execute it for you over and over again without the need for user intervention. Running 'watch uptime' would look something like this:

Every 2s: uptime                           Sat Jul 26 11:34:23 2003
 11:34:23 up 20 days,  3:09,  2 users,  load average: 0.00, 0.00, 0.00

Time - time is one of the most useful tools I've seen lately. It's an informational program that measures the amount of time it takes for a command to run.

stone@moria:/home$ time du -sh stone
42G     stone
real    0m21.948s
user    0m0.370s
sys     0m1.920s


Cool App of the Week

We feel a certain excitement when we discover a killer new application. Like giddy schoolgirls after our first kiss, we have to tell all our friends about it before going back for more. Now get over here and pucker up.

Good news for music fans, you can add streamtuner (http://www.nongnu.org/streamtuner/screenshots/) to your list of must have applications. Streamtuner finds Shoutcast streams, and then displays them in a list that you can sort by genre, playlist, bitrate, and listeners. Double-clicking on a stream automatically launches your music player and plays the stream. If you have streamripper (http://streamripper.sourceforge.net/) installed you can take advantage of the "Record" button on the GUI itself, so you can record streams as individual MP3 files. Streamripper will even file them by radio station automatically.



So ends the inaugural edition of Linux.Ars. Your feedback is critical in making us a success!