Linux.com

Syndicate content Linux.com Original Content Feed
Latest Linux.com News Feed - For the Community, By The Community
Updated: 18 min 22 sec ago

The Best Cloud Music Options for the Linux Desktop

Tue, 2012-02-07 21:58

Not that long ago, desktop Linux users were left out of most of the online music services. But these days, as the industry has trended towards cloud-based music services — from online "jukebox"-style file lockers where you store your own tunes all the way to subscription services that offer on-demand access to every track you can think of. Unfortunately, they all seem to want to run in their own dedicated application, and every audio player has plug-ins for a different subset of the available options. What's a music nut to do? Find out in this break-down of the cloud music tuning options available to Linux users.

The Embedded and Mobile Linux Trends Shaping 2012

Tue, 2012-02-07 17:42

We’re preparing for our weeklong extravaganza of mobile and embedded development next week. Android Builders Summit kicks off Monday and ELC follows on Wednesday, taking place February 15-17, 2012. For the really hard-core, we’ve even lined up some hands-on mobile and embedded Linux training courses over the weekend. I'm especially looking forward to the Yocto Project crash course.

This is a great way to kick off our annual events calendar for 2012, and it provides me a good excuse to share my take on the state of embedded Linux.

The face of embedded software development is changing fast. The power and functionality of mobile and embedded devices are reaching new levels of performance  previously found in general purpose systems, such as desktop and mobile computers. The classic definition of an embedded system being "a computer system designed for specific control functions within a larger system" may still hold true for control modules found in cars, machinery and other core embedded applications. However, the lines are becoming blurry when it comes to mobile devices, Smart TVs and other consumer electronics products. These devices now allow users to customize their look and feel and user experience, installing third-party software applications, downloading media, and more, which a few years ago was only possible with personal computers.

Following is a breakdown of the trends I see shaping the embedded Linux area and the ways that engineers write software for these systems in the year ahead.

Convergence of development and deployment platforms

If you are a veteran embedded engineer you very well know that the systems you once utilized to develop software were substantially different from the systems you were developing for. In the majority of cases, the target systems had a different processor architecture, different I/O functionality, substantially less processing power, different or no memory management, and many other diverging characteristics. System-on-Chips (SoC) integrating processor cores of general purpose CPUs with peripheral devices typically found in embedded systems into a single chip allows software developers to tap into a large software pool previously written for general purpose CPUs. The most prominent example is certainly the Linux kernel.

Before the advent of SoCs, Linux was not a good choice for embedded or mobile systems. General purpose CPUs required too many external peripheral devices to be economically used in an embedded system, and microcontrollers typically used in such systems did not fulfill the memory management requirements of the Linux kernel. A second hurdle for Linux in embedded system design was the need for a read/write file system. Not too long ago, file system meant the use of hard drives, which are not practical for embedded and/or mobile use. Memory Technology Devices (MTD) are now closing the gap. SoCs and MTDs are enabling the use of Linux in embedded and mobile devices.

The utilization of Linux for embedded devices is naturally bringing deployment and development platforms together. Now, developers can use the exact same software development tools they are familiar with on their Linux development system to write software for a Linux-based target. The same processor architecture on development system and target may even make the use of cross-development tools unnecessary. In some cases, developers are even given the possibility of directly developing software on the target itself. Many SoCs have integrated graphics and USB ports, making connecting a display, keyboard and mouse a breeze. Development boards available for most processor architectures provide all the necessary functionality in single board computer form factor to jumpstart embedded software development.

Emulation and simulation


In the past, embedded hardware and software development were mostly serialized. Software development did not start until the first prototype of the hardware was available for the software engineers. Emulators allow software engineers to test new features even before they are accessible in the form of hardware. For example, the QEMU open source machine emulator and virtualizer can easily be used to test new CPU instructions and compilers to create code for these instructions long before the first silicon gets in the hands of software developers. Simulation can be utilized to test new APIs for sensors and other hardware devices. GUI simulators facilitate rapid prototyping of user interfaces.

Virtualization


The original intent of the Java platform was to provide a hardware independent platform for interactive television. It was too advanced for the digital cable television industry at the time but its adoption by the Android mobile operating system as application development and deployment platform proved that the concept of virtualization for embedded and mobile systems is fundamentally correct. Virtualization provides several benefits for embedded and mobile systems: secure partitioning of applications, migration of legacy applications, platform-independent application ecosystems. Depending on the focus for the virtualization, different solutions are appropriate. Secure partitioning of native applications can be achieved with a hypervisor. A hypervisor may also be the solution for migrating existing and consolidating existing software on a new platform. Ecosystems for third-party applications are a major differentiator for mobile devices. While Java is Android's technology for building an application ecosystem, web browsers, WebKit, HTML5 and other web technologies provide the abstraction layers necessary to build application ecosystems that extend across many different device types and categories using a variety of hardware technologies, processor architectures and operating system.

HTML5

Ecosystems for third-party applications are a vital part of mobile device platforms and will undoubtedly influence purchasing decisions for other consumer electronics products such as Smart TVs, and potentially cars, in the near future. The more applications that are available for a particular platform, the more valuable it becomes in the perception of the consumer. If you trust the forecasts of market analysts, then the battle of the ecosystems has just begun.  And within the next couple of years, two to three prevailing software platforms (with their respective ecosystems) will evolve as the winners. The winners will bring on board the critical mass of application developers providing a steady stream of new applications to maintain the attractiveness of the platform to consumers. In my opinion, HTML5 will make the discussion about the winning mobile platform moot and end the predicted battle of the ecosystems.

A major headache for mobile application developers is the rapidly increasing number of variances in devices, form factor, screen resolution, operating system versions, etc. An application designed for a mobile phone with a 4" screen typically viewed in portrait orientation will most likely not provide the same user experience on a tablet with a 10" screen commonly viewed in landscape orientation. Current mobile software platforms and their respective application development environments do not provide an adequate solution. HTML through CSS, allows easy separation of presentation from business logic making it straight forward for developers to change the visual layout of their applications and have it automatically adapt to the form factor and orientation of the device. HTML and CSS also give developers more freedom to design their own look-and-feel. Current SDKs for mobile applications are rather limiting in how developers can create differentiating user experiences.

New markup tags introduced with HTML5 further close the gap between native and web applications. Web applications can now access sensors, cameras and other hardware devices found on mobile platforms, store application-specific information on the device and play media through standardized tags and objects.

With these features, HTML5 provides a unique opportunity to create an application ecosystem for embedded and mobile devices that is truly independent from the underlying hardware and software platform. This ecosystem will benefit all parties involved with the value chain: the device manufacturers, the application developers and the consumers. None of them will have to make the decision for a particular platform wondering if the investment will be voided by becoming obsolete before returning the expected value.

Security and privacy

A steady and rapidly increasing number of embedded devices are either directly or indirectly connected to the Internet. This poses new challenges for embedded system developers. Even if an embedded device is only connected to a private network, engineers now must keep security in mind since other devices on the private network could act as bridges, deliberately or involuntarily, providing outside access to those devices. For instance, an engine management module in a car connected to the vehicle's private network could potentially become exposed to the Internet through an infotainment head-unit connected to the same private network while also being connected to the Internet via data modem and cell phone network. Encrypted data communication on private networks and embedded firewalls to protect them will soon become standard for embedded systems.

The widespread proliferation of smartphones may enable botnets of entirely new dimensions. Access to platform sensors, such as GPS, makes it easy to physically locate the bots and aggregate the ones close in location for attacks in specific areas. For example, thousands of compromised smartphones in a Super Bowl stadium could be used to create a mass panic or do other harm. Embedded and mobile device designers must devise technologies to protect the platforms against viruses, Trojan horses and other malware.

As more and more users of smartphones use them for online banking, financial transactions at store checkouts and to unlock their cars, among other applications, the protection of the private data stored on these devices becomes mandatory. But not only the data that the user explicitly stores on the device is at risk. but also the data that the user indirectly creates while carrying and using the device: the places he visits, the stores she pays, the pictures of places and people he takes, the tunes she plays, etc. While each piece of data by itself may be meaningless the combination of it together with information found online through social media networks and personal websites may expose the person to identity theft and more. It is not a trivial task to enable user convenience and at the same time keep the user's personal information safe from unauthorized access.

Embedded and mobile system developers must learn to understand the threats, be aware of them and proactively design their software accordingly. There is no absolute security and privacy; however, a simple message during installation that an application accesses the user's contact list, the data network, the camera, etc., and asks the user whether to proceed or not is not merely a security concept but simply an excuse.

The Future Belongs to Embedded and Mobile Computing

The future of computing is in embedded and mobile. Orders of magnitude more of these systems will be deployed and used for a myriad of applications than have ever been for PCs or other computers. The possibilities and opportunities seem limitless but so seem the challenges. However, lessons learned from the personal computing era and the Internet still apply. As embedded and general purpose computing platforms converge, embedded and mobile developers must adapt to harvest the benefits and meet the challenges.

Zuckerberg is Spot on with “Hacker Way” (but The Linux Community Already Knew That)

Mon, 2012-02-06 19:19

Facebook filed its IPO last week , which is big news in and of itself. However, what struck me most was the letter from Mark Zuckerberg to potential investors that puts an exclamation point on something that the Linux community has been practicing for years: first - don't do it for the money, second maintain the hacker way. And, the money follows.

Zuckerberg points out that Facebook wasn't started to become a company. It was a cause. It was an idea -- to connect people. Linus Torvalds had a similar idea 20 years ago when he started Linux as a way to collectively develop software. Linus kicked off the project “just for fun” and has repeatedly stated that his motivation behind Linux is solving interesting problems with code.

In the letter, Zuckerberg clearly demonstrates how he and his company have been inspired by the core principles that Linux and the open source software movement started twenty years ago.

Just take a look at these statements:

“People sharing more — even if just with their close friends or families — creates a more open culture and leads to a better understanding of the lives and perspectives of others.”

“Hacker culture is extremely open and meritocratic. Hackers believe that the best idea and implementation should always win — not the person who is best at lobbying for an idea or the person who manages the most people.”

“The Hacker Way is an approach to building that involves continuous improvement and iteration. Hackers believe that something can always be better, and that nothing is ever complete. They just have to go fix it — often in the face of people who say it’s impossible or are content with the status quo.”

“We think the world’s information infrastructure should resemble the social graph — a network built from the bottom up or peer-to-peer, rather than the monolithic, top-down structure that has existed to date. We also believe that giving people control over what they share is a fundamental principle of this rewiring.”

Sound familiar? Zuckerberg’s interpretation of the “hacker way” could be cut and pasted from the daily workings of Linux kernel development for the last two decades:

"Code wins arguments."

"Quickly releasing and learning from smaller iterations."

"The best idea and implementation should always win."

Linux is the quintessential example of the hacker way. As an example, if you don't think that code wins arguments, post some bad code along with the best-crafted argument in the world to the Linux kernel mailing list and see how it goes.

Linux is the fastest moving collaborative software project in the history of computing; it releases every three months and in small iterations with literally thousands of code changes in every release.  In fact Linux is often a leading indicator of things to come.  Virtualization technology, high performance computing, and more are often developed in the open first in Linux and then productized by companies later.

Of course, Facebook wasn’t just inspired by the hacker ethos. It is built on hacker code itself: Linux and a wide variety of open source technology. In fact, the economics that come with having open source software at its base makes Facebook’s filing even that much more compelling. Without the cost and flexibility advantages of open source, Facebook would be tied into proprietary contracts that would impede its ability to add users without the need to generate significant revenue. Before open source it was simply too difficult to scale, and the risk of your costs rising without your control was just too great. Zuckerberg made a brilliant decision -- albeit inevitable -- when he built Facebook on Linux using open source components. Would this IPO even be happening had he written Facebook as a Windows application?

It is no coincidence that one of the greatest entrepreneurial success stories of the last decade is deeply rooted in one of the greatest technology innovations of the last two decades: Linux and open development. Facebook is a great example of code + ethos that is driving great things.

A Look at 3D Printing and Open Source

Mon, 2012-02-06 07:48

Arthur C. Clarke said "Any sufficiently advanced technology is indistinguishable from magic." And it's still magical when you understand how it works. 3D printers are here, they're cool, and there is a large and enthusiastic open source 3D printer movement.

Weekend project: Zap Your Coworkers' Minds with Multi-Pointer X

Fri, 2012-02-03 08:41

Care to rethink your desktop user experience? It may be simpler than you think. Chances are you own more than one pointing device, but for years you've never been able to take full advantage of that hardware, because whenever you plugged in a second hardware mouse, it simply shared control of the same cursor. But with X, it doesn't have to: you can have any many distinct, independent cursors on screen as you have devices to control them. So grab a spare from the parts box in the closet, and get ready for the ol' one-two punch.

A Short Q&A with New Linux Foundation Fellow Greg Kroah-Hartman

Thu, 2012-02-02 09:01

The Linux Foundation announced this week that Greg Kroah-Hartman would be joining as a fellow. Kroah-Hartman is joining a small group of developers that work with the foundation on Linux and open source projects. We conducted a short Q&A to see what this means for Kroah-Hartman and his work on the Linux kernel.

Get Your Embedded Linux On: Join Me at Yocto Project Developer Day

Wed, 2012-02-01 20:47

Building an embedded Linux distribution can be a daunting task. From the Board Support Package (BSP) to Kernel configuration, root file system setup and the selection many additional software package there are many choices to make and taking the wrong turn can easily lead to a dead end and many hours of wasted time.

The Yocto Project greatly simplifies this process with a set of proven tools and recipes allowing you to build you own custom Linux distribution tailored to your requirements.

During The Linux Foundation's Embedded Linux Conference at the Hotel Sofitel San Francisco Bay in Redwood Shores from February 15 through 17, you have the unique opportunity to build your competence in embedded Linux and the Yocto Project.

On the day before the conference, February 14, the first-ever Yocto Project Developer Day you will have the opportunity to meet the Yocto Project's supporting organizations and many experts who will be presenting sessions and labs.

Stay a little longer and right after the conference on Saturday/Sunday February 18/19, you can deepen your Yocto Project knowledge with a 2-day crash course offered by The Linux Foundation.

Join me for two days of hands-on learning fun, building Linux system images to boot in an emulator and on a Beagleboard. First you will get an introduction into the Yocto Project and OpenEmbedded and how they relate. Then we will dive into the Poky Build Process, the core of the Yocto Project, and the Bitbake build orchestrator. You will learn about metadata layers, recipes and classes and how to use them to customize your distribution built by the Yocto Project.

What will you need? You know your way around on a Linux system and are not afraid of a commnad shell. You can use any of the standard text editors such as vi or emacs. You understand the basics of compiling and linking programs and constructing Makefile.

What to bring? Tag along your laptop with Ubuntu 10.04 LTS 32-bit installed on it. Or alternatively, have VirtualBox 4.1.8 installed on your system. We can provide you with an appliance ready to be imported in VirtualBox.

I am looking forward to seeing you soon in Redwood Shores!

Interview: Jaisen Mathai of OpenPhoto

Wed, 2012-02-01 17:15

I met Jaisen Mathai at SCALE10x after seeing his UpSCALE talk in which he introduced the OpenPhoto project with 20 slides in five-minutes. In this interview, Mathai explains what inspired the ambitious project and his vision for where it will be by the end of the year.

A Look At Mozilla's Enterprise Plans for Firefox and Thunderbird

Tue, 2012-01-31 13:23

When Mozilla adopted its six-week rapid development cycle in early 2011, backlash came from a number of angles — but the heaviest was from enterprise IT departments. In October, the browser maker formed a working group in order to sit down with corporate users and hash out a suitable support plan. The result is the Mozilla Extended Support Release (ESR) program, which is now up and running for Firefox, and is due to debut shortly for Thunderbird a well.

The Ever-Changing Linux Filesystems: Merging Directoris into /usr

Mon, 2012-01-30 16:53

If you don't like change, working in IT has to be a harrowing experience. That's particularly true in open source, where few stand on tradition and things move at breakneck pace. The latest change that has a few folks excited? Fedora's proposal to "move all to /usr." On the face, this might seem like a shocking departure from standards – but look a bit deeper and it seems to make sense.

Weekend Project: Take Control of Vim's Color Scheme

Fri, 2012-01-27 19:34

Vim's syntax highlighting and color schemes can be a blessing, or a curse, depending on how they're configured. If you're a Vim user, let's take a little time to explore how you can make the most of Vim's color schemes.

Free Embedded Linux Training at Yocto Developer Day on February 14th

Thu, 2012-01-26 23:25

Use of Linux in the mobile/embedded space is exploding, and we find many companies are adopting the open source Yocto project to build custom embedded Linux systems. The project is hosting a free day of training on Yocto on Feb 14th as part of the Embedded Linux Conference. This is a fantastic opportunity to learn Yocto if you're a beginner or get more advanced if you are already familiar with the tool. Find out more about Yocto Developer Day. Yocto includes the BitBake build tool, a large set of customizable build metadata, the EGLIBC library, Eclipse-based graphical user interfaces for both the build system and an accompanying Application Development Toolkit that is automatically generated, and several other tools that bring some...

More Systemd Fun: The Blame Game And Stopping Services With Prejudice

Thu, 2012-01-26 18:10

Systemd, Lennart Poettering's new init system that is taking the Linux world by storm, is all full of little tricks and treats. Today we will play the slow-boot blame game, and learn to how stop services so completely the poor things will never ever run again.

A Very Short Rant About "Copyrighted" Code

Thu, 2012-01-26 14:51

This morning I was reading a site that regularly covers free and open source software. To protect the guilty party (because I suspect the error was one of rushed writing rather than ignorance), I'll leave out the publication and author. However, I do want to surface the error. The author wrote about making sure that "copyrighted code" doesn't get into the Linux kernel. What?

HP Releases More Details on the Open Sourcing of webOS

Wed, 2012-01-25 21:30
This morning, HP gave further details of its contribution of the webOs platform to the open source community. I find these details and the timeline associated with the release to be positive developments, both for Linux and for the wider mobile markets.

The WebOS stack represents a rich set of components that combined together create a comprehensive platform for mobile devices. The highlight of today’s announcement has to be the open sourcing of Enyo, the application framework for webOS. This is a powerful framework that app developers can use to build applications that will work across different platforms including iOS, Android, webOS and so on.

Companies announce open sourcing products and projects all the time. There are several decisions HP executives made in this process that I think signal they are on the right track:

  • webOS is moving to the mainline Linux kernel. This saves any device maker service and support costs since it will eliminate much of the custom code those companies need to support. They have committed considerable resources to working with the upstream project, which will insure their Linux investment will last.
  • Open sourcing Enyo, instead of keeping some components closed source, will ensure that the complete stack is available with no lock-in by HP. While this enables competitors to literally take the R&D HP has invested in this product and use it to target other platforms, it also ensures that device manufacturers and app developers can make full use of the whole stack; thus increasing the changes that webOs may be adopted and used in products.
  • By using the Apache 2.0 license, HP has smartly decided to use a standard and well respected license, instead of something unique, niche or proprietary. Everyone understands the terms of the Apache license, thus cutting down on the requirements for education or promotion.
  • By using and contributing to core upstream Linux projects, HP is hedging its investment. Contributions of code that make Linux more power efficient will not only help them in mobile but also in the data center where power and cooling are central costs.

While there are clearly other open source solutions in the mobile space with Android and Tizen, choice is always good in technology. By using a mainline kernel, this announcement is also good for Linux, since any work HP and others contribute to webOS (think power management, device driver support, etc) can end up benefiting all Linux users. And by “all” I mean all, not just those using a phone running Android. Since server and desktop Linux users also use the mainline kernel all can benefit from this work.

Will webOS be successful? That of course remains to be seen. I will be watching, like everyone else, for announcements of device support. But by making smart early and crucial decisions like this, the project has a much better chance of succeeding.

Case Study: How Small Business PrintedArt Uses Linux and Open Source

Wed, 2012-01-25 19:34

Sure, Linux is great for big organizations like Google, Facebook, and others, but what about small business? Take a look at PrintedArt. Founded in 2010, PrintedArt is an online shop that sells limited-editions of fine art photography. It now has three full-time and three part-time employees and eight sales representatives. According to President and CEO Klaus Sonnenleiter, Linux and open source play a number of roles in the company's success.

Looking Back on SCALE 10x

Tue, 2012-01-24 18:06

A lot of things change in 10 years. Many of the Linux conferences we were going to in 2002 are no longer around, but the Southern California Linux Expo has not only survived – it's grown into a major event for anybody interested in Linux. Whether you're brand-new to Linux or using Linux to power cloud solutions, SCALE 10x had something for everybody.

A Broad Look at Hugin

Mon, 2012-01-23 19:00

The release notes for Hugin's latest update begin with the words "Hugin is more than just a panorama stitcher." That's been true for years, but only recently has the project made a concerted effort to emphasize the other photo magic that the application is capable of working. Better still, Hugin is making more and more of the process automatic, so aligning your images has never been easier.

Weekend Project: Loading Programs Into Arduino

Fri, 2012-01-20 23:57

In last week's Weekend Project, we learned what the Arduino platform is for, and what supplies and skills we need on our journey to becoming Arduino aces. Today we'll hook up an Arduino board and program it to do stuff without even having to know how to write code.

What Are The Best 10 Linux Desktop Apps?

Thu, 2012-01-19 18:34

This weekend, I'm going to be spending some time at the Southeast Linux Expo (SCALE) and presenting at the Linux Beginner Training. I'm doing the Desktops and Applications presentation, which includes demos of Linux desktop apps. As I was prepping for the talk, I needed to decide which apps to focus on for a audience new(ish) to Linux.

SCALE has been going strong for a decade, but the beginner training is a new program for SCALE. It's going to be a lot of fun working with an audience that's still getting started with Linux.

Now, when I started working with Linux the selection of desktop apps was a wee bit more limited than it is today. Choosing the best desktop apps to demonstrate now is a little trickier than in 1996. Users have a lot of variety when it comes to standard desktop apps like mail clients, Web browsers, and whatnot. In many cases, apps are a matter of taste rather than a hard and fast set of criteria that can objectively say "this is the best app for" whatever. How to choose?

I looked at a couple of things: Features, stability, desktop defaults, and cross-platform support. While the focus is Linux desktop apps, I think it's reassuring for users who are new to Linux to be able to find the same application on Windows and/or Mac OS X if they need to. Features and stability, of course, need no explanation.

I also took into consideration whether apps were the defaults for major distributions. This is a bit more difficult lately since Mint, Ubuntu, Fedora, openSUSE, Debian, and other distros are picking different defaults more now than a few years ago.

Browser: Firefox

I admit, I struggled a bit with choosing the Web browser. These days, I switch back and forth between Google's Chrome and Firefox. Chrome is gaining in popularity, and I know lots of Linux folks prefer it.

And yet... here's my problem with recommending Chrome. First, it's not shipped by default with any Linux distro and it's not open source. Sure, there's Chromium. But Chrome itself is not FOSS and it's a few extra steps for most users to install. Firefox, on the other hand, is right there.

But, during my presentation I'll be sure to mention both.

Office Suite: LibreOffice

Choosing LibreOffice was an easy decision. LibreOffice is the default for every major Linux distribution and has the tools that most desktop users need. Its Microsoft Office compatibility makes it a good choice for users who have to exchange documents with their co-workers and friends. Its cross-platform availability, for Windows and Mac OS X, means that it's a good choice for users who need or want to run other platforms.

Music Manager: Clementine

Picking the best music manager for Linux was a real challenge. In the end, I decided to go with my personal preference – even though it's not actually the default for many distros (if any). My pick is Clementine, a music player "inspired" by the first versions of Amarok.

It's easy to use, but powerful. It's very easy to create playlists and the sidebar with song and artist info (especially lyrics) is a nice touch. It also has excellent support for online services like Magnatune and Last.fm, which I use quite a bit. In particular, it comes in very handy as a downloader for Magnatune when you have a subscription.

Again, though, I'll be sure to mention other apps while doing the presentation – because there are just too many great apps here to ignore.

Video Player: VLC

VLC is, hands down, my favorite video player for Linux. Plays just about anything I've ever thrown at it, from streaming media to DVDs, and it is cross-platform. It's not just a video player, of course. VLC can also stream video and audio, though most users are probably going to be happy with the playback features.

Naturally, VLC also passes the cross-platform test. You can run VLC on Linux, Mac OS X, and Windows. There's also a VLC app under development for Android, though I don't know when that will be making an appearance.

Text Editor: Gedit

Vim is my editor of choice, but it's not exactly user friendly getting started. If this was a class for people learning to program on Linux, I might throw Vim out as an option. But for folks who are new to Linux, I think that Gedit is probably the best way to go.

Gedit may not have all the features of venerable text editors like Emacs and Vim, but it does the job nicely. It's especially useful for desktop users who need to edit the occasional text file, but don't need to be living in their text editor.

Image Editor: The GIMP

While GIMP may not be a direct replacement for Photoshop, it's a mighty fine image editor. I thought about going with a less complicated program, but decided that GIMP was the best-of-breed for Linux. The GIMP has been around for more than a decade, and can produce amazing results. Unless you're a pro user that's switching from Photoshop, The GIMP should provide all the tools you need for image editing on Linux.

Photo Manager: Shotwell

The GIMP provides nothing in the way of photo management, though. For users who want to manage their photo albums on Linux, Shotwell seems to be the app of choice these days. It's the default for Fedora and Ubuntu, and handles RAW photos as well as JPEG.

It also has a good set of basic editing features for cropping, getting rid of red-eye in photos, and so on. F-Spot used to be my app of choice, but the development seems to have slowed considerably with the last stable release in December 2010.

Mail Client: Thunderbird

Mail is another tricky one. First, the number of mail clients for Linux is staggering. Plus, many users now use Webmail most of the time, so a mail client may not even be necessary.

However, after a lot of thought, I decided that Thunderbird is the best app to recommend to new Linux users. First, it's cross-platform so if they also use Windows or Mac OS X, they can use Thunderbird with minimal hassle on all platforms. That's not true for Evolution or KMail.

Thunderbird is also a decent mailer, and with Mozilla taking it back under their wing (pardon the pun) it seems well positioned for improvements and maintenance. I'm not so sure about Evolution, to be honest. The project seems stalled, at best. Claws is a really nice mailer, but it's a power-users' app for sure. I don't think it's well-suited for new users.

So Thunderbird wins on features, stability, platform support and does well on defaults too. It's now the default for Linux Mint and Ubuntu, and really ought to be considered strongly for other distros.

BitTorrent: Transmission

Yes, folks, torrent apps can be used legitimately. With the SOPA/PIPA craziness the last few weeks, I wanted to be sure to talk about a good torrent app for new Linux users.

Linux has plenty of good Torrent apps, but Transmission seemed like the best option. It's cross-platform, performs well, and it's easy to use. It supports encryption, magnet links, and more.

Calendaring

This one gave me a bit of pause. Most of the folks I know use Web-based solutions for calendaring and collaboration, these days. It varies a lot, of course. If you're on KDE, then KOrganizer may be the way to go. If you're a die-hard GNOMEr, then you might want to stick with Evolution.

But I think the best cross-desktop solution at the moment is Thunderbird's Lightning. It's not perfect, but it's very capable and a great solution if you're not looking for a business solution. In other words, I think Lightning is problematic for business adoption but fine for personal desktop users who don't need a groupware solution.

Your Picks?

What are your favorite apps, and did we miss some important categories? Would love to get some feedback in the comments.