Monday, October 13, 2008

Before I proceed let me state my position on this topic: I am not against Open-Source Software, at the same time I I believe like all other literary (creative) & engineering works software too needs to be based on a sound viable commercial model.

I came across this video of Stephen Fry celebrating 25 years of GNU and introducing "Free" Software. Being an award winning broadcasting professional Mr.Fry has done a great job of delivering a simple yet powerful message on what he believes on. But his introduction to "Free" Software and especially his plumbing analogy to be incorrect and can misguide general public. (Please see the video below before continuing)

Freedom Fry - "Happy birthday to GNU" Why?. He says just like you can change the plumbing in your house any way you want, "free" software allows you to change your computer the way you want it. Operating System vendors like Microsoft prevent you from doing this. Nothing can be far from truth.

All software vendors including Microsoft, Adobe or Apple have never placed any restrictions on how you can use your computers or on what applications you can write on top of them. The licensing comes when you want to change the core of their work (operating systems or software written by them) and then redistribute that resulting work. Going back to the plumbing analogy (which is a bad pick by Mr.Fry) this is like you wanting to cast your own steel pipes in a furnace and for doing it you want the pipe vendors to share their blue-prints and chemical composition "Free". Of course, there is nothing wrong in you wanting to do your own steel pipes if you want to, similarly no one prevents you (Microsoft/Adobe/Apple) from writing your own operating systems.

My whole point is it relevant for the masses, is it necessary?. I feel there are more pressing problems that can be attempted in the applications space, in the industry domains where the scarce human creative energies can be used on. Not on writing yet another Operating System, yet another UNIX/LINUX, yet another MS Office clone and so on - which is precisely what GNU has done.  To see this clearly you don't need to look far - just look at the number of Linux Distros that are out there.

In terms of software licensing if it is all about "Freedom" as GNU claims it to be, then my pick is always BSD style licensing over GNU. The difference being that GNU is of viral nature, meaning any resulting work needs to be GNU licensed, whereas BSD licensing doesn't put any such restrictions - you can do pretty much whatever you want.

 
Wednesday, July 30, 2008

Virtualization (the ability to run multiple OS simultaneously) is gaining lot of traction nowadays. In the PC world this started initially with VMWare and Virtual PC (which Microsoft acquired from Connectix) for development and testing purposes soon gained popularity in the servers. In servers virtualization is used to consolidate servers and applications into fewer servers and also used for running legacy OS and applications.

Screenshot showing Sun's Free Virtual Box running Vista as guest in a Linux Host

Today the entry barrier is greatly removed for Virtualization software with many of them available free (as in free beer), following is a partial list of them.

  1. Microsoft Virtual PC 2007 for desktops
  2. Microsoft Virtual Server 2005 R2 for servers
  3. VMWare Player for desktops
  4. VMWare Server for servers

Recently few more has joined the list, they are:

  1. VMWare ESXi - A hypervisor that allows you to run production applications at near-native performance is now free
  2. Sun Microsystems' Virtual Box - A popular desktop virtualization software that Sun Microsystems recently acquired from Innotek and turned into an Open Source GPL software
  3. Microsoft recently released its Server class production ready Hypervisor product called Hyper-V that is going to be part of Windows Server 2008 for a nominal fee of $28.
 
Friday, June 13, 2008

I came across this brilliant site called "Geonames.org" - a Geographical database for download free of charge containing over eight million geographical names. The site allows you to search for any city or place or postal code and the best part is all of this is also available through a number of webservices and a daily database export. This can be useful while you are developing a website and have to get input of a city or determine a place in a transaction.

Check out these examples:

  1. Chennai
  2. 600017 (Postal Code in India)

GeoNames was founded by Marc Wick. Marc is a self-employed software engineer living in Switzerland. Thanks to Marc Wick & the other volunteers of the site.

 
Friday, May 23, 2008

Last few days I had a firewall issue in my desktop that made web browsing irregular. It was a peculiar problem, I was able to browse few sites like Google, Vishwak.COM but not others. I had to keep running the same diagnostic commands many times to take values to be sent to my support team. Finally I ended up writing this handy tool that copies to clipboard diagnostic informations from IPConfig, Tracert, Ping & WebGet commands. This information can be used for further investigation or email to support. I also added features to FlushDNS, Renew IP & Turn Auto Tuning (Vista and Windows Server 2008) OFF/ON.

diagnose tool screenshot

While developing the tool over two half-a-days I learnt quite a few APIs and a bit of C# coding. This included how to call a console command like IPCONFIG /ALL and capture the output to a string from a C# application, get the Internet Explorer Proxy settings, Call Network Properties applet, create an install with VS 2008 & how to paste a code snippet in WLW.

   1: private string DoConsoleAndCapture(string sInput)
   2: {
   3:  
   4: string sOutput = "";
   5: ProcessStartInfo pi = new ProcessStartInfo("cmd.exe", "/c " + sInput );
   6: pi.WindowStyle = ProcessWindowStyle.Minimized; 
   7: pi.RedirectStandardOutput = true;
   8: pi.UseShellExecute = false;
   9: Process p = Process.Start(pi);
  10: p.WaitForExit();
  11: //p.Start();
  12: TextReader t = p.StandardOutput;
  13: sOutput = t.ReadToEnd();
  14: t.Close();            
  15: p.Close();
  16:  
  17: return sOutput; 
  18: }

The experience of using Visual Studio 2008 was interesting as it has been few years since I coded something end to end. I wish the coding surface to become more intelligent in terms of offering help on discovering commands and APIs that the developer is looking for. When VB6 came a decade or so back the help feature that it had was revolutionary and the wealth of information MSDN provided was without par in the industry. Now with Web & Internet Search prevalent the present IDE calls for a complete rethinking and revamp - unfortunately I don't feel the tools have come there yet. What I am talking here is not about wizards, smart tags or even intellisense but about how the tool helps a developer to learn/discover necessary APIs/solve the problem at hand.

 
Thursday, July 19, 2007

In my voluntary role as Vice-Chairman in INFITT I am currently helping in maintaining the website of INFITT.ORG. One of the things is to get myself familiar with a Web CMS called Joomla! - which is a LAMP based Free Open Source CMS that is targeted for small community websites.

This post is about problems we faced in Joomla! for Tamil Texts and two quick fixes that solved it for us.

1) The CSS Problem in the Top Navigation Menu. The menu in IE 6.0/7.0 will have the text appearing below the menu - invisible to naked eye. It turned out to be the CSS had issues, which we fixed and republished in our implementation. If you face the same issue, please download the fixed template_css.css from here or view it here. Menu with Tamil Text in Joomla! 

2) Pages had problems displaying Tamil in IE 7/Vista. Tamil text were displayed but as jumbled non readable characters. It turns out to be that charset is not set to UTF-8. I changed the flag to set it to UTF-8 in the file /www/templates/js_education/js_template_config.php in the Joomla! instance we had.