Practical Technology

for practical people.

June 19, 2006
by sjvn01
0 comments

Linux 2.6.17 kernel: better WiFi, faster performance

This past Saturday, June 17th, saw the arrival of the latest stable version of the Linux kernel: Linux 2.6.17.

While this new kernel doesn’t boast any earth-shaking additions, it does include numerous improvements to Linux for both users and developers.

For many laptop users, the most important news is that Linux now includes built-in driver support for the Broadcom 43xx based wireless card family. This WiFi chip family is found in many laptops such as many models from Acer, Apple (those using Airport Extreme), Compaq, and Dell.

This driver support depends upon another new enhancement to the kernel — the addition of a Softmac layer in the wireless stack. Softmac is a software MAC (machine access control) layer that works with Linux’s built-in 802.11 layer. This provides a great deal of WiFi protocol management features for chips that, unlike the Intel ProSet Wireless chip family, don’t handle these details in hardware.

Softmac is not the only open-source project that takes this approach. MADWiFi, for example, uses one to support Atheros WiFi chips. Since Softmac is now part of the kernel, however, it can be used by developers to more easily support other WiFi chips. There have already been efforts at supporting the Prism54 and the Ralink rt2* 802.11 chip families using Softmac.

Linux’s wireless improvements also include support for Cisco’s LEAP (Lightweight Extensible Authentication Protocol). LEAP is used in Cisco’s and other vendors’ wireless devices, including clients, switches, access points, and RADIUS servers that use 802.1X authentication. In turn, this enables network administrators to easily set up dynamic per-user, per-session WEP (Wired Equivalent Privacy) secured sessions. The bottom line is that it will be much easier to use Linux systems in LEAP-secured networks.

For users, what all this means is that they’ll be much more likely to be able to use their laptops’ WiFi without any fuss or muss.

The new Linux kernel also includes automatic support for SMP (Symmetric Multiprocessing) computers on the i32 and 64 families. With this, Linux distributions will detect how many processors, or conceivably processor cores, are running on the system at boot time. The distribution will then automatically adjust to make the most of the existing architecture.

While at first, this might not appear that useful for many users, with the increasing use of virtual CPUs in virtualization systems like Xen, it might become very helpful in high-powered servers.

Another new development that should be especially useful in servers is the arrival of the new kernel system call, “splice.”

Regarding what splice does, Linus Torvalds wrote:

“So in a very real (but abstract) sense, “splice()” is nothing but read()/write() to a kernel buffer.”

Now, to get slightly less abstract, there are two important practical details.” First, “the “buffer” implementation is nothing but a regular old-fashioned UNIX pipe.”

This actually makes sense on so many levels, but mostly simply because that is exactly what a UNIX pipe has always been: it’s a buffer in kernel space. That’s what a pipe has always been. So the splice usage isn’t conceptually anything new for pipes – it’s just exposing that old buffer in a new way.

The second part of the deal is that the buffer is actually implemented as a set of reference-counted pointers, which means that you can copy them around without actually physically copy memory.”

For those who don’t speak programmer, what this means is that with splice, and other new related calls such as tee and vmsplice, your computer will perform faster. That’s because it will no longer be wasting time copying redundant data from one chunk of memory to another or to a disk.

To cite an example from the new kernel’s changelog, “For example, you could forward data that comes from a MPEG-4 hardware encoder, and tee() it to duplicate the stream, and write one of the streams to disk, and the other one to a socket for a real-time network broadcast. Again, all without actually physically copying it around in memory.”

Speaking of performance boosts, the new kernel has also given the popular Ext3 file system a kick in the pants by supporting mapping multiple block file input/output to disk. In the past, Ext3 could only map one block at a time. This lead to a real speed bump, especially when it came to handling sequential I/O workloads.

Early tests have shown that users could see as much as 50 percent speed increases in some disk writing operations.

There are, of course, many other changes in the new kernel. Not the least of which, is that Linux is now supported on Sun’s new Niagara chip architecture. To sum it all up, though, better WiFi support and performance are the hallmarks of this latest kernel.

For a detailed list of all the changes, see the latest Linux changelog.

A version of this story first appeared in Linux-Watch.

June 15, 2006
by sjvn01
0 comments

First impressions of Google Earth for Linux

Only a few weeks after releasing its first Linux application — the photo editing program, Picasa — Google has released its second application for Linux: Google Earth for Linux 4.

Unlike Picasa, however, which runs with its own bundled copy of WINE, an open-source implementation of the Windows API (application programming interface), Google Earth is a native Linux application.

It may not appear that way to some users, since many of the files look like they’re connected with Windows. But, a closer look shows them to be Qt application libraries.

The result is an application that enables users to tour about the globe. Much of North America, Australia, and Europe can now be seen with up to 1-meter per pixel resolution.

How good is that? When I zoomed in on my house, I could make out the two DirecTV dish antennas on my roof.

The free-for-personal use Google Earth is more than just an incredibly neat toy, though. With a variety of data layers available, the displays and maps can be remarkably useful for everything from literally looking over a new route to grandma’s house, to determining the best place for a microwave tower.

That said, it’s also a really great toy.

Of course, for such goodies as GPS device support or the ability to import spreadsheets, you’ll need to buy the Plus Edition for $20. And for commercial work, you’ll need to buy Google Earth Pro for $400. Neither of those versions, however, is available yet for Linux.

Based on what I saw of this beta version of Google Earth, I don’t think eager Linux users will need to wait long for the final versions of Plus and Pro to make their appearance.

I tested the beta on two systems. The first was my workhorse desktop. This PC has a 2.8 GHz Pentium IV, 512 MB of RAM, and an Ultra ATA/100, 7200 RPM, 60 GB hard drive, and runs OpenSUSE 10.1. The other test box was my HP Pavilion a250n. This PC ran Ubuntu 6.06, aka Dapper Drake, on a 2.6GHz Pentium 4 processor with 800MHz bus speed, and a GB of PC2700 DDR (double-data-rate) RAM. For graphics, it uses a low-end NVIDIA GeForce 4 MX 3D graphics card.

The recommended minimum system is a 500 MHz Pentium 3 with 128 MB of RAM, but you’ll be much better off with 512 MB of RAM. For full details, visit the Google Earth download page.

Two other factors really determine what kind of performance you’ll see. The first is a supported 3D graphics card with at least 32 MB of RAM. At best, the program will run adequately without one that uses “Mesa” (all software rendered OpenGL 3D graphics). The other limiting factor is your network connection.

Graphics rendering with Mesa alone is slow, but the idea of trying to use Google Earth with its minimum recommended connection speed of 128Kbps would keep me from ever running it.

Personally, I wouldn’t want to run it with less than the 3Mbps download speed my ADSL Internet connection gives me.

Downloading and installing Google Earth are both straightforward.

It comes as a bin file. To install it, you simply run it from a terminal window as a shell program. So, I simply typed in:

sh /home/sjvn/Desktop/GoogleEarthLinux.bin

And in less time than it took me to write this paragraph, the program was installed.

Once in place, I had one unexpected crash on the Ubuntu system, but it otherwise has run without a hitch.

You can, however, run into trouble with either using an older version of the glibc library or with a case of the drivers for either ATI or NVIDIA 3D graphics cards conflicting with glibc’s pthread. The quick and dirty fix, in any of these cases, is to export the environment variable LD_ASSUME_KERNEL=2.4.10 to the system before running Google Earth.

A better approach would be to upgrade your graphic card drivers, and make sure that you’re running glibc 2.3.5 (or later) with NPTL (Native POSIX Thread Library) support.

A minor problem that some users have run into is that the program really wants to use the Bitstream Vera Sans font. Personally, I found that with, or without, that font, the program still needs some fine-tuning with its character display. It was never bad enough to be unusable, or even difficult, but the text information was simply not as clear as it should have been.

Despite these quibbles, I still have to say I’ve seen shipping products that weren’t as impressive as this beta. I’m pleased that Google Earth is finally here for Linux, and even more pleased that Google is continuing to bring more programs to desktop Linux.

A version of this story first appeared in Desktop Linux.

May 26, 2006
by sjvn01
0 comments

Google’s Picasa for Linux arrives

Google and CodeWeavers Inc. have released the first Google program, the popular beginner-level photography program, Picasa, for Linux. Although the Linux Picasa implementation includes most of the feature set of the Windows Picasa 2.x software. It is not, strictly speaking, a port of Picasa to Linux.

Instead, Linux Picasa combines Windows Picasa code and Wine technology to run Picasa on Linux.

Wine is an open-source implementation of the Windows API (application programming interface). It runs, in turn, on top of the X Window System and Linux. Wine is not, as has sometimes been said, a Windows emulator. Wine provides a Windows API middleware layer that enables Windows programs, such as Office 2003, to run on Linux without the slowing effects of operating system emulation or a virtual machine.

The new program has been re-tooled to work well with CodeWeavers’s CrossOver Office Wine emulation. Thus, Linux Picasa uses the program’s own native Windows DLLs (dynamic link libraries). Wine enables developers to use Windows DLLs, when they’re available, for greater speed.

The free Linux Picasa download includes a runtime version of CodeWeavers’s modified Wine, so that users can simply download the package from Google and run it on their Linux system. Users will not need to download and install Wine, or purchase CodeWeavers’s commercial version of Wine, CrossOver Office.

Thus, to run it, most x86 Linux users will only need to download the package and use their native package manager to install it. One of Google and CodeWeavers’s goals was to make Picasa as easy to install on Linux as it is on Windows. Therefore, the program comes with installers for RPM, Debian packages, and a Windows-style installer.

Picasa comes with the necessary Wine files for the required APIs, as well as Gecko, the Mozilla rendering engine, for displaying the photographs. Thus, you shouldn’t need to install any additional libraries or software to run it.

The program has been tested and installs and runs on most modern Debians, Ubuntu 5.1, Linspire 5, Mandriva 2005 and up, Red Hat Workstation, Fedora 4 and up, and SUSE 9.3 and 10. DesktopLinux.com has also tested Picasa for Linux on SUSE 10.1, and it ran well.

With the program, users can download images from cameras, and organize, edit, and print their photos and other images. Picasa can work with JPG, BMP, GIF, PNG, PSD, TIF, and RAW data files, including but not limited to, cameras from Canon, Nikon, Kodak, Minolta, and Pentax. For camera support, it uses the gphoto library. Thus, any camera supported by gphoto should also work with Picasa.

Picasa for Linux requires glibc 2.3 or greater, and a working X11 display system to perform basic work. You’ll need an XVideo extension on your display driver to view full-screen images, and a Linux kernel 2.6.13 (or better) kernel to be notified of file changes during run-time and automatically detect new media and camera attachments.

While the program’s desktop integration features require a current version of GNOME or KDE, the program also works with more obscure window managers like XFCE and Blackbox.

Google states that this is a “pre-beta” release, but we found it to be more polished than many final releases. It is, however, available only in the U.S. with an English interface at this time.

While the program uses the exact same binary as the Windows version, it is missing two features: CD-ROM burning and movie playback. According to the Picasa for Linux developers site, that’s because the CD driver used by Picasa is hard to support under Wine, and Wine doesn’t have the necessary codecs for Picasa movie-playback.

Those features will probably appear in an update to the program. Dan Kegel, a Picasa for Linux team programmer, explained that these “were beyond the scope of this first port.”

While the Wine libgphoto and Gecko parts of the package are open-source, Picasa itself is a proprietary program.

If the Linux Picasa project is successful, you can expect to see more Google Windows programs migrating to Linux via Wine and CodeWeavers. In addition, work is proceeding on native Linux Google applications. The first of these is expected to be Google Talk for Linux.

Picasa for Linux can be downloaded from Google’s Picasa for Linux web page.

A version of this story first appeared in DesktopLinux.

May 19, 2006
by sjvn01
0 comments

Banshee — the next best thing to Linux iTunes

I want an audio player that will do everything that Apple’s iTunes does — including working with my iPod — and do it natively on Linux. That’s a tall order. I’ve tried many fine Linux programs — KDE’s amaroK, RealPlayer 10 for Linux, Xine, etc. — but none have scratched my itch.

So, I’ve been running Windows iTunes 4.9x running atop CrossOver Office 5.01. Apple’s favorite audio program runs decently on CrossOver Office, but I wanted something that worked better and was a “real” Linux program.

Although I haven’t quite found exactly what I want in a Linux app, Banshee comes pretty darn close.

To start with the basics, Banshee can play all the most common music formats, such as Apple’s AAC (Advanced Audio Coding), MP3s, and Ogg Vorbis. Better still, the tracks I’ve burned from my CD collection sound pretty darn good on the old bookcase JBL J2060 speakers.

You can also use the program to rip and burn CDs. When you burn CDs, you can do it either as MP3s or as conventional audio CDs.

Unlike many audio programs, controlling Banshee is as easy as pie. Want to add your collection, point at the appropriate directory and watch it build its library. Want to display your music in artist order? Album order? Make a playlist? No problem.

It also supports iPod synchronization. I was able to bring tunes in from my iPod and to put new songs on the iPod. I could also place my music on a network drive and then use iTunes to play them when I’m on my Mac or use Banshee to listen to them when I’m on one of my Linux systems.

For that matter, Banshee can also work as both a DAAP (Digital Audio Access Protocol) client and server for sharing music on a SOHO network. While there are reports of Banshee’s DAAP not working, it worked for me.

I now run Banshee on several systems. My primary test system, though, was my faithful old SUSE 10.1 workstation. This PC is an Insignia 300a with a 2.8 GHz Pentium IV, 512 MB RAM, and an Ultra ATA/100, 7200 RPM, 60 GB hard drive.

With this system, I had no trouble bringing Banshee up. That’s not surprising, since Banshee is included with SUSE.

I was also able to bring it up on a Ubuntu system with a little work. Other supported Linuxes include Mandriva and Fedora Core 4. You can, of course, build it from source.

Banshee is a Linux-native audio player that is built on top of Mono and Gtk#. Experts will realize that Banshee is a GNOME program. However, speaking as a KDE 3.51 user, I can assure you that it runs just fine with the KDE desktop.

Behind the scenes, Banshee uses Gstreamer play, encode, and decode Ogg Vorbis, MP3s, and most of it other supported audio formats. The major exception is Apple’s AAC (Advanced Audio Coding) format. To play those, Banshee relies on RealNetworks Helix media framework to do the AAC decoding.

Since the AAC is a proprietary format, Helix includes a license for it. Because of this, you’ll need to agree to install this non-open-source based software. The relevant files are banshee-engine-helix-0.10.9-21.i586.rpm and helix-dbus-server-0.2.2-6.i586.rpm, which are available on SUSE 10.1 with the distribution’s useful Add-On, Non-OSS CD.

If you already have RealPlayer 10.x or Helix 1.x, you should already have the necessary Helix files.

Even with these files installed, you will not be able to play any songs you’ve downloaded from the iTunes music store. That’s because Banshee doesn’t support the iTunes DRM (digital rights management) scheme. There is, however, a Banshee project working on solving this problem.

In addition, one of the things I like most about iTunes is the access it gives me to live music streaming from the Web. In particular, may I bring Boot Liquor Radio, music for saddle-weary drunkards, to your attention?

However, the functionality is already in Banshee, and the interface to access it should be available soon.

So it is, that while Banshee isn’t quite everything I want it to be yet, it’s already closer than anything else out there. I highly recommend it to anyone who wants a stable, simple-to-use, iPod-compatible Linux-based audio player.

A version of this story first appeared in Linux-Watch.

May 16, 2006
by sjvn01
0 comments

Microsoft’s draft Open XML straitjacket arrives

The Intermediate Draft 1.3 of Microsoft’s Open XML office document standard has been released by Ecma International, a European standards organization. At 4,000 plus pages, a 6.7MB Microsoft Word document, the Open XML draft standard is less of a standard and more of a painfully detailed description of how Open XML could be used to display almost any possible Microsoft Office document. Note, I say, Microsoft Office document.

While Microsoft is proposing this as the better alternative to ODF (OpenDocument Format), as Andrew “Andy” Updegrove, a partner with Boston law firm Gesmer Updegrove LLP and the editor of ConsortiumInfo.org, points out, the level is so high, that if Open XML became a standard, “only clones can be built, which is good for interoperability, but death to innovation. It can also be death to competition, since if (as in this case) the standard is based on an existing product, then no would-be competitor would ever expect to be able to catch up with the incumbent, much less compete on price.”

How extreme is the level of detail? Brian Jones, a Microsoft Office program manager, cites “the documentation for the simple type “ST_Border” which starts on page 1617 (it’s in the WordprocessingML reference section under simple types). That shows a list of almost 200 legacy border patterns that you can apply to objects in a Word document.”

And, at this point, eWEEK’s ace reporter Peter Galli quotes a Microsoft spokesperson as saying, “And this is just the first draft.”

This isn’t a standard; it’s a straitjacket.

Still, in a way, the proposed elephant-sized Open XML is doing open standards a favor. By being so ungainly, by being so time-consuming in its writing, it will give ODF a greater chance to gain market share.

Now that ODF has become an ISO standard, Microsoft Office ODF support is forthcoming, and another major document management program, IBM Lotus Notes, has thrown its support behind the standard, Microsoft’s attempt to short-circuit a truly open office standard may be a case of too little, too late, no matter how big its standard grows.

If you’re interested, you can read the full Open XML draft standard here.

A version of this story first appeared in DesktopLinux.

May 12, 2006
by sjvn01
0 comments

How Seriously should You take Certifications when Hiring Network Personnel?

What’s the hardest job in running an enterprise LAN?

To me, it’s not balancing the network load, or fine-tuning application servers, it’s finding the right people to support the network. You can have the best equipment in the world, but if your staffers don’t know what they’re doing, your CEO is still going to want your head on a platter.

One popular way to avoid this is to hire network administrators and technicians with certifications like Cisco Certified Internetwork Engineer (CCIE), CompTIA’s i-Net+; Microsoft Certified Systems Engineer (MCSE); or a Certified Novell Engineer (CNE).

Simply hiring someone because they have a certification isn’t good enough though. Bala Swaminathan, business development manager for certification giant CompTIA, explains “certifications present CIOs with confusing choices.” That’s both because there are more certifications than ever and they keep changing.

For example, CompTIA’s Net+ was a very basic network certification suitable for technicians or entry-level administrators. The i-Net+, though, according to CompTIA’s Jonathan Thatcher, a certification development manager, adds in gigabit network management and AppleTalk interoperability.

It’s still a beginner’s certification, but its holders can be expected to handle more than just the basics.You also need to know exactly what’s behind a given certification. For example, say you need someone to manage your firm’s move from a NT primary domain controller (PDC) network to one that uses Windows 2003’s Active Directory. Is that a job you that any MCSE can do? Hardily!There was a time when you could get an MCSE without ever taking a class in directory services infrastructure . For a job as big as a directory shift though you also need someone with vast experience.

You also need to consider the certification level and the workload.

Thatcher and I agree that there are three levels of network employees and certifications. At the bottom strata, you find the technician or entry-level administrator. They handle such jobs as manning the help-desk, clearing the printer queue, and adding new users to the network. For this level, you want someone with a i-Net+, a Cisco Certified Network Associate (CCNA) or a Microsoft Certified System Administrator (MCSA).

Next up, you find senior administrators and network engineers. These are the people who do work like designing the network, attacking security breeches, and managing the overall network. It’s at this level that you should be looking for people with a MCSE, Cisco Certified Network Professional (CCNP), or CNE.Above that, you need a few people to do network architecture and make long-term strategic decisions. For this level, you need someone with a CCIE.All that said though, for my money, I’d take someone with years of hands-on work over someone with a newly printed certification any day of the week. Ideally, I’d hire someone with both.Don’t make the human resources mistake of thinking that the right alphabet soup certification, even a CCIE, is the be-all and end-all of network staffing. A certification is important, but so are experience, work ethic, and willingness to be a team player. It’s only when you find someone with all the right stuff that you’ve really found the right person for your job.