A while back I made the decision to run Ubuntu Linux as a primary OS, after a long period of dual-booting (originally with Windows XP). I strive to made a certain level of portability between the OSes that I use which means that anything I can do in Windows should be doable in Ubuntu. My entire PHP & Java development environment has been replicated on Linux though any Microsoft.NET related development activity remain a Windows only affair (let’s face it Windows is the best environment for .NET development at the moment and should continue to be so for the foreseeable future). I have the entire LAMP stack running on Ubuntu Feisty Fawn, with additions such as phpMyAdmin for database administration.
In order to get a much better understanding of the development platforms I use, I normally make an effort to understand their setup and configuration requirements; in a situation where I run Windows I end up having multiple servers running on the same machine for my experimentation purposes as well as real development effort. For example: I have both MySQL and Microsoft SQL Server installed though it has been my experience that an instance of a Microsoft SQL Server tends to degrade the performance of the machine. In previous times, I have had multiple instances of MySQL Server running as well as separate instances of Microsoft SQL Server 2000 and instance of Microsoft SQL Server 2005 installed and running at the same time. The multiple instances for MySQL came about because of the release of MySQL Server 5.0 at the time; I need to keep my own MySQL Server 4.0 installations while trying out the new features that the 5.0 release offered.
The Linux box has become the focus of my technology exploration and it is holding up quite well. So far, it has the LAMP stack but most of my efforts are currently focused on Java. I am running the latest milestone build from Netbeans and I must say it is coming together quite well. Today, I went back to an earlier project I was working on so that I can get it to run on Linux. The project was conceived and developed, to a large extend, on Windows and thus it has some dependencies on Windows configuration e.g. file paths mostly. It is a Java project that used Netbeans as its primary IDE. The project uses the following technologies for its implementation: JSF (MyFaces implementation), Hibernate, Acegi Security, Spring framework and JasperReports. Note this: the project is not entirely depended on Netbeans since it is just a normal Apache Ant managed project. So, what I had to do was to fix any references to Windows specific paths and this was a good thing because I had to also learn how to setup environment variables for Ubuntu and hence gather a wealth of knowledge on what is done and what is not done.
I recently upgraded to M10 of Netbeans 6.0 release. I have additional plugins for JavaFX installed in addition to all the base components required. Well, the performance of Netbeans 6.0 still needs some work but that is to be expected of pre-beta software. Curiously enough, my Ubuntu installation has a total of Three (3) Java Application Servers or perhaps more specifically two application servers and one JSP/Server container. The two application servers are JBoss AS and GlassFish; I downloaded JBoss AS because of my interest in JBoss Seam and well GlassFish was part of the NB 6.0 release and it comes integrated. It would of course be more interesting to figure out how to get JBoss Seam running on an AS like GlassFish but at this point in my interest in JBoss Seam, I would much rather have something that works out of the box. So far my Java development efforts on Ubuntu have been largely centered on Netbeans though I have Eclipse installed. Eclipse is much slower though the last time I was using Eclipse was when I was writing C++ code and code completion feature kept taking its sweet time completing code.