Wednesday, 21 July 2010

Development environment

If you are embarking on software development or programming seriously then you need a environment, as George Carlin would say, to "put your stuff".

My requirements for a development environment are.

1) It must be reasonably fast. Windows Xp? not a chance. Have tried.

2) As I progressed over the years, doing coding projects as learning and now after 4 months tops, the file system is confusing to even myself. tons of versions of jre, shell scripts add to the confusion. On a short notice I want a clean system. i.e No installation of any sorts allowed. I don't want to worry if my previous pet project is gnawing at the current one.

3) Backup ! If something goes wrong on a monday morning, I want to just revert back and continue breaking things.

4) I should be able to make things tick with scripts when ever necessary. I hate windows scripting.

5) Need a strong, flexible shell.

6) Make private networks without the physical machines.

I have used linux in the past and found it to be the best. I was not going to install a development environment on my Xp laptop. Definitely not for Java development. If it was for visual studio then, ok. But then, linux as a VM seems to be my choice for quite a long time now. The reason is that,

I found a number of ways to make this OS fast from other blogs. Search for it on the web!. Some things to do are

- change swappiness
- services. Used Yast to disable unwanted ones.
- Look and feel for best performance
- on Vmware server settings make sure that the entire vm memory is on physical memory.
- visit inittab and strike off unwanted stuff.
- Allocate all the disk space. Some blogs say this is unnecessary but, I found it to be otherwise.
- list all processes and continue filtering.
- Disable CD drive.
- Disable USB.
One way to see the changes is to list the number of processes running on your vm. Mine has 56 processes and without X windows 38. The vm is more responsive with heavy IDEs like RAD. Well, faster than my friend's Ubuntu on physical machine!. (My VM has only 1.3 GB RAM)

So to be precise

1) Use a Virtual Machine.
2) Use Linux.
3) Use Xming or Similar tool and avoid UI on your VM.