I thought I’d share my development environment with you, the basic tools and computer systems I use to develop software.
Most of my development is done on a Core2Duo 2×2.26GHz 4G RAM 1280×800 Win7 machine (taurus), occasionally using an Atom 2×1.6GHz 2G RAM 1024×600 Win7 netbook (orion) if I need portability, sometimes even testing on a Motorola Xoom (gemini).
My web production environment is a Linode 512 running Ubuntu (latest) hosted in London (blastoise), just the standard LAMP stack. Database hosting is done on a different machine, another Linode 512 also in London (metapod), which jointly serves as a code-review host. CI is hosted (spearow) on a Linode 1024 (you guessed it, in London), using Atlassian Bamboo as the software in question.
Source control is github, and I can’t say how awesome git (and the GUI tool Git Extensions) actually is! :D
As most of the development I do is either PHP-based or C#-based, these are the two areas I’ll cover.
If I’m working at home, I’ll write PHP code with Notepad++, and test it on my local server, IIS (yuk, but it does the job). I’ll still use the database server sat on metapod. If I’m not at home, and have an internet connection, I’ll do most of my work directly on one of my servers using GNU nano, and a plethora of GNU screen sessions. Everything still goes into git, and pushed to github.
Unfortunately, this tends to end up with hacks such as:
if(WebRequest::serverOS() == "WINNT") { /* something specifically silly for windows */ } else { /* something posix-compliant, like sensible stuff */ }
Most of the time I try and keep most of that stuff confined to a file or two though, or try to find other ways of doing what I want without depending on OS-specific stuff.
C#.NET
Visual Studio 2010 Ultimate. Thanks, MSDNAA. Oh, Git Extensions too, but standalone cos the VS integration is annoying.