|Keep It Simple, Stupid|
Re: Programming with Multiple Personalitiesby andreychek (Parson)
|on May 06, 2002 at 18:54 UTC||Need Help??|
A very intriguing writeup. Like yourself, I often find that I'm in a similar situation, needing to handle UI design, coding, and testing. Complicating the issue more, I also would find it useful to split up the coding into 2 roles. Are we coding the backend module, or the frontend application making use of that module? It is a luxury when all the backend modules you need already exist on CPAN :-)
One method might be to set up your editor to use different colors, based on the filetype you're editing.
What I happen to do now though, is use a different desktop for each role. When I do coding, I always do so from within X, where I can have multiple windows, and multiple desktops (and my workplace even sprung for me to have a second monitor!). So, I pull up several Xterms, throw them all in one desktop, and I designate that desktop as my HTML editing desktop. I then do the same for each individual application I'm working on. Since I do a lot of work with Apache / mod_perl, I also use a desktop for monitoring the error_log for my code errors. Lastly, I have an army of browsers open to, at a moments notice, reload a given portion of the application. In all, I have 6 desktops, each spanning two monitors.
Of course, a setup like this takes a bit of memory, but these days, RAM is cheap.. 256MB of RAM is $75 over at TC Computers. So if your system is running out of RAM, it's your own fault for not splurging for more :-) At that same ssite, you can also get yourself a second 17" monitor for well under $200 bucks, or a 19" for just over $200.
Windows users, don't fret! Although Windows does not come with the ability to manage multiple desktops, there is a utility called XDesk which can do that for you.
Also, no matter what sort of setup you have on your computer. might I recomment a huge whiteboard to hang on the wall beside your system for your design work you're going to need throughout your applications development.