Saturday, April 17, 2010

Essential Freeware Applications For Your Desktop

Within the last couple of weeks, I've bought a new PC and re-imaged a laptop - both with variants of the Windows 7 operating system. There is something comforting about a clean system - it's a chance to install only the applications that you absolutely need and also a chance to ensure that you have the most up-to-date versions of those applications.

So here is my list of essential applications (for Windows) that everyone should install - at least everyone who performs the kind of tasks that I do!


Firefox is an absolute must have but there's no point in having Firefox without the add-ons. For me, that means Live HTTP Headers, Favicon Picker and Web Developer add-ons get installed straight-away.

Thunderbird is my eMail client of choice but again this is due to the add-ons. Lightning, Provider for Google Calendar, Google Contacts and an ability to manually sort folders are all necessary additions to the base product!

Filezilla is my FTP client.

PuTTY is my preferred terminal client. So lightweight. So robust.

Skype is used for phone calls - I typically use Messenger for instant messaging rather than Skype but when it comes to telephone calls, Skype can't be beaten.

Password Safe because I'm a responsible citizen who uses different passwords for different applications/websites and I can't possibly remember them all.

AVG Free still makes it on to my machines. I've tried others but found AVG Free to be the least invasive.

I still like to handcraft my HTML - I don't know why. I can't help it and because I code in PHP, JavaScript, HTML and various other scripting technologies, I find it easiest to use Notepad++. Macro recording and code highlighting without the bloat? Install it!

MySQL Workbench is an application that I use not just to manage MySQL databases but to design databases in general (even if the target platform is DB2 or Oracle).

Toad for DB2 (and other variants). MySQL Workbench creates very pretty diagrams, but Toad is just plain superb for remote management of a database.

TortoiseSVN helps me keep my source code under control!

I have a lot of demonstration environments and have spent many years using VMWare's Workstation. However, I've recently been converted to Sun's xVM Virtualbox product. I haven't performed any serious benchmarking but I've found it just a little more slick when using virtual machines on my laptop. Serious serving of virtual machines is something I may still turn to VMWare to perform, though.

The following get installed just because:
  • Google Earth
  • Tweetdeck
  • Other browsers (to verify cross-browser compatibility): Google Chrome; Safari; Opera
  • Google Picasa
  • Adobe Acrobat Reader (of course)
  • Spotify because I sometimes like to work while listening to music
  • CutePDF for PDF generation from any of my apps
  • Microsoft Media Encoder for video clip production
  • JZip for archiving
  • GNU Tools for Windows which gives me tar, sed, awk and grep capabilities
  • OpenProj for project management

All of the above applications are freely available so there is no financial excuse for not installing them. I do have some commercial applications installed as well though. Despite the great strides that OpenOffice and Star Office have made in recent years, I still can't seem to do without Microsoft Office. And Visio is still tops for me!

Wednesday, April 07, 2010

Messaging Systems

Inter-application communication has evolved over the years from proprietary protocols and fixed message formats to message queues and web services based systems using XML.

But it isn't unusual to see an application communicate via mechanisms more usually associated with real-world messaging between real people. eMail, for example, can be used to convey messages from one system to another although eMail isn't necessarily a great way of guaranteeing delivery of any message in my experience!

Bringing us right up-to-date is Twitter. Although Twitter is a way of communicating using short-based messages only (as it is limited to a mere 140 characters), it does have a good record of being almost always available. Sending a short-based message from one system to another could utilise the power of Twitter quite easily, surely?

Consider the following usage pattern...

An offsite managed service is being provided by a third party with support hours of 08:00 - 18:00. Overnight batch processes are to be checked each morning by the service provider. The service provider, however, introduces monitoring of systems which trigger exception alerts via Twitter for off-site pick-up via any amount of Twitter clients on any number of devices. Think about the following message:
2010-04-07 22:50:05 FATAL: Batch Feeder [BACS: Invalid Trailer Record]

Instead of waiting for support staff to analyse logs the following morning, they have a head start telling them exactly where to look.

Of course, we could just have the monitoring service raise a ticket or send an email or send SMS alerts. The point is not to show that Twitter is better than any of these delivery mechanisms but to show that Twitter is an alternative. (After all, it could be that we have a Twitter listener which queries these messages and raises the necessary problem records in the service desk.)

The point is the ultimate delivery mechanism of the message to the client isn't the responsibility of the message generating application. The application doesn't care if the message is to be viewed by a custom-built message reader on an iPhone, Tweetdeck on a PC or a shell script sending curl requests at!

I'm sure my avid readers can come up with many more sophisticated use cases for the integration of Twitter into the enterprise.

NOTE: Any such inter-application communication using Twitter should ensure that the tweets are protected. There's no point in having "randoms" looking at your tweets, after all.