I have been working with Microsoft .NET technologies for a while (6 years now), so it is easy for people to assume that that live and breath... in CLR (Common Language Runtime) world... :D and probably despise the JVM (Java Virtual Machine) planets and all the revolves around OSS (Open Source Software) planet systems.
Well the truth is, I do... do lots of my day-to-day work using .NET because that's the assignments I have been put on to win my "daily" bread. I use lots of Open Source .NET technologies like NAnt, NUnit, NHibernate to name a few, which has their in the Java/OSS world. Add to the fact, I did lots of J2ME and J2EE work before moving over to Microsoft's .NET platform.
Besides, it always pays to keep an eye out to the "dishes on the other table".
Dishes on the other table being - Java and J2EE being the obvious choice, but there are lot of open source technology to watch out for including dynamic languages and their associated frameworks like Ruby, PHP, Perl etc.
So, late last week - I delivered my first production ready - xAMP product, which I hope will go live in next couple of weeks.
xAMP stands for:
x - OS of choice.
A - Apache Web Server
M - MySQL database
P - PHP language
The two most known flavors of xAMP - LAMP (Linux based AMP) and WAMP (Windows based AMP). Honestly, about two weeks prior to completing the project (Delivery date: Nov/30/2007) I did not know much about MySQL and had limited knowledge on PHP. But Being a Linux enthusiast, I have played around Apache technologies since college (1997-98).
Anyway the point being I was amazed at how mature the tool set around xAMP platform is and how easy it is pick up.
The development environment I used was Microsoft Vista Home Premium Edition. I feel that Home Premium is more ideal of the Vista platforms as it did not have the IIS Server installed. So, I had to install "A" of the xAMP platform - Apache Web server. Of course, it is not as dysfunctional as Home BASIC and that is just my humble opinion. Also, add to the fact that I did not have much choice. All the other computers at my disposal had issues of HDD space or were just not powerful enough support development tools.
The Vista platform comes with a caveat though and that is its famous User Access Control feature (UAC), which is incorrigibly mistrusting and highly irritating. After much bruises and cuts fighting UAC, I was forced to turn it OFF.
So note to self: Real developers don't need UAC unless you are developing for the Vista box.
That was probably the only glitch I faced in setting up the development tools. (Touch wood!)
The development tool of choice - Eclipse Europa (v3.2 + Goodies in September/October 2007). Downloaded from a link on the IBM website. Additionally downloaded - PHP Development Tools (PDT) add in.
The next step was to download PHP and configure it with the Apache server. Thankfully again this step is well documented on the web. Tons of site offering advice and troubleshooting guidance. Fortunately, I had to face none and nothing in Vista OS conflicted either.
Now for the missing "M". No James Bond story here. (Read "M" is 007's secretive boss). MySQL website was the place to go. I recommend downloading the Community Edition as well as the GUI tool for it.
Also required is the glue between MySQL and PHP - the MySQL PHP connector. That is also available on the MySQL website.
With my limited knowledge of MySQL, I went with default settings. But by the time I got around to building the third table (the first two being lookup value tables), I realized that ISAM engine for the tables will not be correct as it did not support foreign key constraints (FK).
Coming from a SQL Server and Oracle background, I had taken the FK constraint for granted in all databases. Now MySQL does support FKs but only in certain Engines.
Also the idea of being able to use different engines to access and store the table was new to me. It really depends on the type of application that is being planned but this is another level of optimization available to the users in MySQL. I still have to research if MySQL can have tables stored with different engines interact. (Any answers from readers are welcome). But once I shifted the tables to InnoDB Engine, I was in a familiar world.
So off I went developing the application in about 5 -6 days. Honestly, I had made it hard of myself as I had been procrastinating and sidetracked on the project for over 6 weeks and started working on it very close to the deadline.
All said and done, the project was up and running, the user acceptance testing and the demo to the stakeholders went really well.
The application has been delivered with installation instructions from ground up. Just waiting for the application to go live in next couple of weeks and get the mullah... :D
Just to keep the record straight, knowledge of legacy ASP (Active Server Pages) and JSP (Java Server Pages) did help in learning PHP faster as it follows a similar syntax and embedded HTML layout.
I would recommend xAMP platform anybody who is transitioning from a non web background to a web based development. Tools are easy and free to obtain and lots of readily available Internet resources being the major reasons.
Please feel free to drop line, if you have any questions/comments/suggestions/brickbats.
Till next time...hopefully with a story on Ruby...
Footnote - Some Important Links:
Well the truth is, I do... do lots of my day-to-day work using .NET because that's the assignments I have been put on to win my "daily" bread. I use lots of Open Source .NET technologies like NAnt, NUnit, NHibernate to name a few, which has their in the Java/OSS world. Add to the fact, I did lots of J2ME and J2EE work before moving over to Microsoft's .NET platform.
Besides, it always pays to keep an eye out to the "dishes on the other table".
Dishes on the other table being - Java and J2EE being the obvious choice, but there are lot of open source technology to watch out for including dynamic languages and their associated frameworks like Ruby, PHP, Perl etc.
So, late last week - I delivered my first production ready - xAMP product, which I hope will go live in next couple of weeks.
xAMP stands for:
x - OS of choice.
A - Apache Web Server
M - MySQL database
P - PHP language
The two most known flavors of xAMP - LAMP (Linux based AMP) and WAMP (Windows based AMP). Honestly, about two weeks prior to completing the project (Delivery date: Nov/30/2007) I did not know much about MySQL and had limited knowledge on PHP. But Being a Linux enthusiast, I have played around Apache technologies since college (1997-98).
Anyway the point being I was amazed at how mature the tool set around xAMP platform is and how easy it is pick up.
The development environment I used was Microsoft Vista Home Premium Edition. I feel that Home Premium is more ideal of the Vista platforms as it did not have the IIS Server installed. So, I had to install "A" of the xAMP platform - Apache Web server. Of course, it is not as dysfunctional as Home BASIC and that is just my humble opinion. Also, add to the fact that I did not have much choice. All the other computers at my disposal had issues of HDD space or were just not powerful enough support development tools.
The Vista platform comes with a caveat though and that is its famous User Access Control feature (UAC), which is incorrigibly mistrusting and highly irritating. After much bruises and cuts fighting UAC, I was forced to turn it OFF.
So note to self: Real developers don't need UAC unless you are developing for the Vista box.
That was probably the only glitch I faced in setting up the development tools. (Touch wood!)
The development tool of choice - Eclipse Europa (v3.2 + Goodies in September/October 2007). Downloaded from a link on the IBM website. Additionally downloaded - PHP Development Tools (PDT) add in.
The next step was to download PHP and configure it with the Apache server. Thankfully again this step is well documented on the web. Tons of site offering advice and troubleshooting guidance. Fortunately, I had to face none and nothing in Vista OS conflicted either.
Now for the missing "M". No James Bond story here. (Read "M" is 007's secretive boss). MySQL website was the place to go. I recommend downloading the Community Edition as well as the GUI tool for it.
Also required is the glue between MySQL and PHP - the MySQL PHP connector. That is also available on the MySQL website.
With my limited knowledge of MySQL, I went with default settings. But by the time I got around to building the third table (the first two being lookup value tables), I realized that ISAM engine for the tables will not be correct as it did not support foreign key constraints (FK).
Coming from a SQL Server and Oracle background, I had taken the FK constraint for granted in all databases. Now MySQL does support FKs but only in certain Engines.
Also the idea of being able to use different engines to access and store the table was new to me. It really depends on the type of application that is being planned but this is another level of optimization available to the users in MySQL. I still have to research if MySQL can have tables stored with different engines interact. (Any answers from readers are welcome). But once I shifted the tables to InnoDB Engine, I was in a familiar world.
So off I went developing the application in about 5 -6 days. Honestly, I had made it hard of myself as I had been procrastinating and sidetracked on the project for over 6 weeks and started working on it very close to the deadline.
All said and done, the project was up and running, the user acceptance testing and the demo to the stakeholders went really well.
The application has been delivered with installation instructions from ground up. Just waiting for the application to go live in next couple of weeks and get the mullah... :D
Just to keep the record straight, knowledge of legacy ASP (Active Server Pages) and JSP (Java Server Pages) did help in learning PHP faster as it follows a similar syntax and embedded HTML layout.
I would recommend xAMP platform anybody who is transitioning from a non web background to a web based development. Tools are easy and free to obtain and lots of readily available Internet resources being the major reasons.
Please feel free to drop line, if you have any questions/comments/suggestions/brickbats.
Till next time...hopefully with a story on Ruby...
Footnote - Some Important Links:
1 comment:
Note to self, thanks to my friend - Shishir Parikh, I now know about the Apache Friends website.
This is a site run by xAMP zealots...:) and features pre configured setup of xAMP application development stack for various platforms - Linux, Windows and Mac OS.
Visit them at:
http://www.apachefriends.org/en/xampp.html
Post a Comment