Thursday, October 18, 2007

Windows Pro but Noob on Linux : Things you should know to move quickly in Linux

Ur a hot shot programmer in Windows. Nothing is too hard for you in Windows.
Suddenly you received an email from your employers, "Our next project will run on a Linux Box".

Here are things that you should know that can save you time and get you moving quickly :-

1. If its going to be webbase thing, you can leverage your .net skills in Linux. You can even host ASP.net on Linux or write application in C# that will run on Linux. Check out this site for more info : http://www.mono-project.com/

Alternatively you can learn PHP, the syntax is similar to C/C++ so if you have experience in C#, this should be no problem. However you will soon notice that you need an IDE that recognizes PHP, i suggest you just use your Visual Studio .Net and get this php syntax highlighting FOC from this David Crumps : http://blog.cumps.be/visual-studio-2008-and-php-coloring/

Although there are commercial IDEs for PHP, but you can easily lookup the function reference
from the windows chm file you get from http://www.php.net/. In Visual Studio (2005 at least in my test), the Designer view is even better than some of these commercial PHP. This allows you to easily see the xhtml layout and code php at the same time.

If you going to use php, i suggest u start right on with smarty and php together. You can get smarty from http://www.smarty.net/ . Its a templating engine that will save u lots of time when you do php and its so much cleaner on your code/ui separation.


2. Learn about Daemons, Crontab and linux file permission. These info are easily available anywhere . For file permissions read this up : http://www.linuxcommand.org/lts0070.php
Linux processes and daemons (eq windows services) uses configuration files for their settings and configuration. These are the basics you should at least know and understand.

3. There are many linux distributions, use one and stick with that one. Depending on your linux project, if its a hardware, its easy, just choose any one of the latest Linux distribution and use that for all your deployment. Each distribution is trying to value add to the generic linux and thus its kinda problematic if you want to deploy to all versions.

Take one of the Anti-Virus my company uses for example, www.drweb.com . Its one of those few antiviruses that supports various linuxes, it has basically a diff scripts for installing to each distribution to protect its Samba folder (haha yeah, you're not really going to sell unless u are protecting the samba folders which many are used as file sharing with the the windows stations).

The popular choice would be Red Hat Enterprise Server, Fedora, Debian and CentOS. Now talking about CentOS, here is one event that i would labelled as the worst "User support" case ever, the kind of user that would be your technical team's nightmare : http://www.centos.org/modules/news/article.php?storyid=127

No comments:

Post a Comment