Getting started with Adobe AIR for Linux
With the advent of Adobe Integrated Runtime (AIR), Flash applications now run on the desktop, any desktop – yes, even Linux.
Mac OS X, Windows, and Linux offer rich application development tools. However, choosing one of these platforms as the basis for a desktop application typically precludes the other environments. I say "typically" because there are exceptions. The Qt toolkit  builds cross-platform software; wxWidgets  spans all three platforms, too; and REALbasic  is an operating system-agnostic development environment much akin to Visual Basic. Software created with these tools is written once, perhaps compiled several times, and distributed on all three environments.
Yet another option is Adobe Flash. Flash has provided eye candy for the web for many years, but recent innovations have both expanded the capabilities of the format and made Flash available offline. Indeed, Flash is now a platform unto itself. It can build applications that rival desktop software, and the Adobe Integrated Runtime (better known as AIR)  runs those applications on any desktop, even when disconnected from the Internet. With Flash, an application can be written once and deployed on any system with Flash or AIR. Better yet, because the application is based on Flash, the look and feel and user experience is identical wherever the application runs.
For example, Figure 1 shows the beautifully rendered TimesReader, an AIR application provided by The New York Times. The screen image was snapped on Mac OS X, but every control, pane, and letter is rendered by Flash (save the standard Mac OS X window controls at the very top).
Figure 2 shows the popular TweetDeck dashboard for Twitter and Facebook. Both TimesReader and TweetDeck are standalone applications that I have installed on my local hard drive, just like any other desktop utility. Although these particular programs are obviously very dependent on connectivity for content, other applications are less encumbered and work online and offline, even syncing data when a connection becomes available.
Unlike other desktop applications, these Flash applications are identical on Mac OS X, Windows, and, yes, even Linux. You can run AIR applications on both 32- and 64-bit Linux, and installation isn't onerous. In fact, setup is a snap on 32-bit systems and requires only a few extra steps on x86_64 architectures.
I set up AIR on a Dell Dimension E510 with a Pentium D processor and 1GB of RAM, dual-booting between 32-bit Kubuntu 9.04 and 64-bit Ubuntu Server 9.04. Installing on other flavors of 32-bit Linux is either identical or similar to the process I'll describe in this article. However, if you run 64-bit Fedora or openSUSE, there are some significant differences. Check the Adobe site for specific instructions.
AIR on 32-Bit Linux
The latest version of AIR for Linux is version 1.5, released in December 2008. At the moment, AIR for Linux remains a 32-bit application; a date for 64-bit support has not yet been announced.
The first step in the install process is a little house cleaning. If your system has any version of AIR that predates v1.5, the AIR software, as well as all AIR applications and associated data, must be purged from your system. For example, if you have v1.1 on your system, you must remove it completely before proceeding.
Delete $HOME/.appdata, $HOME/.adobe/AIR, $HOME/.macromedia/Flash_Player/www.macromedia.com/bin/air*, and any directory associated with an AIR application. Next, use your system's package manager, such as apt (for the command line) or Synaptic (for your desktop) to remove each AIR application. Finally, remove AIR itself. If you are unsure which packages to target, use dpkg to enumerate them.
$ dpkg -l | grep adobe
With that chore complete, it's time to install the latest version of the Adobe Flash Player . Although the latest Flash Player isn't mandatory, newer versions of Flash Player 10 allow you to install AIR applications with a single click. You can download Flash Player 10 from the Adobe website . Once at the site, choose the .deb package format for Linux and press Download. After the transfer completes, install the software with dpkg.
$ sudo apt-get install libnspr4-dev libnss3-dev libcurl3 $ sudo dpkg -i install_flash_player_10_linux.deb
The first command installs all the dependencies, and the latter command installs the Flash Player itself. To verify that the Player works, restart your browser and visit the Flash home page. When you get there, you should see and hear a Flash animation. Also, you can check your browser to verify the install. Just type about:plugins in the address bar and look for a snippet similar to that shown in Figure 3.
With Flash ready, it's time to install AIR. From the Adobe website , you can download the latest version of AIR for Linux. The file is named something like AdobeAIRInstaller.bin, where the .bin extension implies it's an executable. To enable the execute bit and launch the installer use the following commands:
$ chmod +x AdobeAIRInstaller.bin $ ./AdobeAIRInstaller.bin
In an instant, the AIR installer reveals the software license agreement; click Agree to proceed. The next screen asks you for your system's administrator password. If you have sudo privileges, enter that password and click OK. The rest of the install takes just seconds. To dismiss the installer, click Finish. Now you are ready to run AIR applications.
Installing AIR Applications
On KDE systems, TweetDeck uses KWallet to store passwords. If you use KDE, you must run KWallet before you launch TweetDeck. To run KWallet, press Alt+F2, type in KWallet, and double-click the KWallet icon to launch the utility. Gnome desktops do not require a separate password manager.
When your virtual wallet is ready, point your browser to the TweetDeck site  and click on Download Now. This launches an AIR installer, which prompts you to continue. When the Open/Save dialog appears, click Open, and click Install in the next dialog. Now choose a location for the application (or leave the default, /opt) and click OK. When TweetDeck launches, KWallet asks you to create a safe place for your passwords. Once that's done, TweetDeck appears and asks you for your Twitter account name. Just type your name and password and tweet away.
The installation of TimesReader is just as quick and easy, and you'll soon have a timely source of news running right on your desktop. First, visit the TimesReader page  and click on Download. Like TweetDeck, the TimesReader requires KWallet to work properly on KDE systems. (In general, if you use KDE and an AIR application draws an empty window, quit the application, launch KWallet, and restart the application.) Portions of the TimesReader are free; full access requires a monthly subscription.
Of course, lots of alternatives to both TweetDeck and TimesReader exist, but this quick introduction will help you get started with AIR applications.
Installing Flash and AIR on 64-Bit Linux
If you have the hardware, 64-bit Linux is a boon over its more diminutive older sibling. With 64-bit addresses, you can access more RAM and enormous files.
Currently, Adobe offers a pre-release of Flash for 64-bit Linux, but the company has not yet announced a date for 64-bit AIR for the platform. In the meantime, though, 64-bit Linux can run 32-bit AIR with a little help from a handful of 32-bit libraries. First, I'll tackle Flash, and then AIR.
As luck would have it, Adobe released a new (but not yet final) version of 64-bit Flash for Firefox at the very end of July 2009, just as I was finishing this column. The new version, v10.0.32.18, works well and is compatible with AIR. As I already mentioned, the latest Flash Player launches the AIR installer on your desktop directly.
To install the 64-bit version of Flash, point your browser to the Adobe Labs website , download the tarball, and unpack it to yield a file named libflashplayer.so. If necessary, create the directory $HOME/.mozilla/plugins, and copy the file to that directory.
$ wget http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.32.18.linux-x86_64.so.tar.gz $ tar xzf libflashplayer-10.0.32.18.linux-x86_64.so.tar.gz $ mkdir -p $HOME/.mozilla/plugins $ cp libflashplayer.so $HOME/.mozilla/plugins
Now restart Firefox, point to the Flash homepage, and look for animation, or type about:plugins into the address bar and look for the existence of Flash. (See Figure 3.) That's it for Flash.
Now to turn to AIR. The first step installs most of the 32-bit prerequisites. Again, apt makes the task quick.
$ sudo apt-get install ia32-libs lib32nss-mdns lib32asound2 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6 libc6-i386 lib32nss-mdns libcanberra-gtk-module
Next, you must download and install the special utility getlibs. This tool analyzes a 32-bit application and installs those libraries that are required to make the code run. Getlibs comes bundled in its own package; grab the file (it's widely available on the web) and install it with dpkg.
$ wget http://frozenfox.freehostia.com/cappy/getlibs-all.deb $ sudo dpkg -i getlibs-all.deb Selecting previously deselected package getlibs. (Reading database ... 83781 files and directories currently installed.) Unpacking getlibs (from getlibs-all.deb) ... Setting up getlibs (2.06) ...
To run 32-bit AIR on 64-bit Linux, getlibs must analyze AIR. Thus, the next step is to download the Linux version of AIR: Point your browser to the AIR home page, click on the Linux version (the same version used in the 32-bit discussion above), and save the file as AdobeAIRInstaller.bin. Next, run each of the following commands to install the 32-bit dependencies:
$ chmod +x ./AdobeAIRInstaller.bin $ sudo getlibs ./AdobeAIRInstaller.bin $ sudo getlibs -l libgnome-keyring.so $ sudo getlibs -l libgnome-keyring.so.0 $ sudo getlibs -l libgnome-keyring.so.0.1.1
Listing 1 shows the output of the first getlibs command.
Adding the 32-bit Dependencies
01 Reading package lists... Done 02 Building dependency tree 03 Reading state information... Done 04 The following extra packages will be installed: 05 lib32asound2 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6-i386 06 Suggested packages: 07 libasound2-plugins 08 The following NEW packages will be installed: 09 ia32-libs lib32asound2 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6-i386 10 0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. 11 Need to get 32.6MB of archives. 12 After this operation, 141MB of additional disk space will be used. 13 Do you want to continue [Y/n]? Y
Next make a copy of the Adobe signing library for 32-bit code to find.
$ sudo ln -s /usr/lib/libadobecertstore.so /usr/lib32/
Now that the system is prepped, the last step is to run the AIR installer.
The installer prompts for input a number of times, including once for the superuser password. When the installation process finishes, you are ready to catch some AIR.
MSBuild is now just another GitHub project as Redmond continues its path to the light.
Malware could pass data and commands between disconnected computers without leaving a trace on the network.
New rules emphasize collegiality in coding.
Upstart lands in the dust bin as a new era begins for Linux.
HP's annual Cyber Risk report offers a bleak look at the state of IT.
But what do the big numbers really mean?
.NET Core execution engine is the basis for cross-platform .NET implementations.
The Xnote trojan hides itself on the target system and will launch a variety of attacks on command.
Spammers go low-volume, and 90% of IE browsers are unpatched.
Adobe scrambles to release patches for vulnerable Flash Player.