Tools & Apps


As mentioned in a previous post, I have been experimenting with Adobe Air and the result is a full conversion of nExtPanelGears to Adobe Air.
The application is feature complete and only required switching to ExtJS Adobe Air, adjusting some of the CSS and to switch the code from gears SimpleDB to Adobe Air SimpleDB.
nExtPanelOnAir can be installed as a desktop app and can be run under Apple, Linux and Windows PCs. It only requires an internet connection for the data syncronization, the rest of the time everything is handled by SimpleDB.

Working with Adobe Air is actually a lot of fun and I have been experimenting with both, Flex and the HTML/Ajax options.
While Flex comes with a handy visual editor, it also requires learning its meta language. Since it’s only for experimenting and not for an actual work related project, I decided to go the HTML/Ajax way.
Especially Aptana Studio’s Adobe Air support made things a lot easier to work with and I would definitely recommend giving it a try, if you start experimenting with Adobe Air.

The only downside is the lack of extended or advanced features documentation.
Don’t get me wrong, the basic details are all covered with hundreds of examples and online tutorials, but sooner or later you will run into some advanced topics, which are not covered and finding a solution to those issues can be tedious.
Make sure to signup for the official Adobe Air forums, as the community will most likely be able to help you out in such a case.

Overall I would definitely recommend Adobe Air for projects, where cross platform support is required or if you wish to create a desktop application without giving up your HTML/Ajax environment.

JavaScript & Ajax

ExtJS and Adobe Air

I am currently experimenting with ExtJS and its Adobe Air support and just stumbled over an odd bug, while working on a grid mockup.

If the first column in the grid doesn’t have an ID assigned, then the sorting feature will be unavailable on that first column. Additionally ADL will crash, if you mouseover the first column.

So, note to self: always assign an ID to the first grid column!

Beside that, the ExtJS integration and available features make ExtJS and Adobe Air a powerful combination and I am currently working on porting nExtPanel over to Adobe Air in my spare time.

The latest Ext.air release is currently not included in ExtJS, but it is available on the ExtJS blog and it comes with some impressive example applications, e.g.: MP3 player.

My 2c

Useful Linux tools

1. units
units is a command line application, which converts units from one scale to another, e.g. covert x ms to years, …
Small & simple, yet very powerful and easy to use.

2. SSH config & bash completion
One thing I was missing from putty under Windows was the “saved session” feature, which allows to connect to a remote system with the saved connection details.
You can make things easier under Linux via the ssh config and bash completion.
Depending on your Linux distribution you may have to install bash completion first, see here for details:

After installing bash completion edit your


file and add the following lines:

HostName IP

where “” needs to be replaced with the server name and “IP” with the server IP, e.g.:


Afterwards you will be able to enter

ssh se

and hit the TAB key for auto completion to


the same goes for the IP as well.
This is extremely usefull when you are dealing with a great number of servers and especially when you are connecting via OpenSSH public key authentication.

3. vim
I am going to write about vim in more detail later on, but just to add to the list of useful tools.
Properly configured it can hold its own even when compared to the big GUI editors.
Make that “especially” when compared to the big GUI editors, if you’re a fast typer and learned vim’s shortcuts.
I have been using it for my latest CakePHP project and will provide some more details later on.

Tools & Apps

nExtPanel & nExtPanelGears

nExtPanel provides a javascript web frontend to connect to your cPanel accounts WHM via the cPanel API.
It provides detailed account information and displays details about the server environment, where your cPanel account is hosted on.

Simply login using your WHM login details and nExtPanel will connect to the remote server to gather the account & server details via cPanel API queries.
If you prefer not to use your WHM password, then you can use your remote access key to connect.

nExtPanel is a concept application to integrate the cPanel API into a dynamic web frontend, provided by the Ext JS library.

nExtPanelGears provides the same account details, but uses Google Gears to save the account information locally, so that you only need to synchronize the data when necessary. This results in a noticeable speed gain, every time you reload the page after your first sync.

The nExtPanel demo is available here:

nExtPanelGears can be accessed here:

For more details go to


cPanel XML API CakePHP component

I added a cPanel API component for CakePHP to the bakery, which allows sending queries using the cPanel XML API via cURL and php.

It supports authentication via the WHM password and the WHM remote access key.

The code is available here:

Previous Posts Next Posts