Finally someone with a setup similar to mine (though I use Vim instead of Emacs, WeeChat instead of irssi, and am planning to move from Screen to tmux).
Using a terminal multiplexer like Screen or tmux as your "IDE" is one of the most amazing things I've discovered. It's completely changed how I work - I can start/stop working at any time from any machine that has an SSH client. Apparently with tmux, it'll even preserve your tiling layout.
My main development "box" is a 512MB Linode running tmux, weechat, vim, and some zsh consoles. Efficient, consistent and reachable from all kind of machines and places.
How much does that cost you? I was thinking of doing something similar, except through Amazon EC2. It could be quite a bit cheaper than having a home server, and definitely wouldn't be so loud.
If you have separate monitors for your PC/Mac, check out: http://synergy-foss.org/ - it's a software keyboard/mouse switcher. I have my PC and Mac Mini hooked up such that I can just copy something on my PC, move my mouse over to OSX and paste it. It's really awesome though the software took a LOT of configuring (on the OSX-side) to get everything right.
It may not be the same limit for each developer. For example, this guy has a valid reason to have physical access to a Linux, Windows, and OS X machine.
The 'standard' engineer configuration is a linux or mac workstation, a linux or mac laptop, and a 30" flatscreen. You can get additional hardware with manager approval, which, in my experience is typically a quick rubber stamp when within reason.
Chrome engineers have a more extravagant setup by default due to the cross-platform nature of our work and the redonkulous size of the Chrome debug binary.
> The 'standard' engineer configuration is a linux or mac workstation, a linux or mac laptop
Are there any restrictions on how much these devices can cost, or what models/brands are permitted?
> Chrome engineers have a more extravagant setup by default due to the cross-platform nature of our work and the redonkulous size of the Chrome debug binary.
I used to compile my own Chromium binaries when I was running Gentoo, though now I just use chromium-browser-bin from the AUR. When I did compile them, it took ~45 minutes each time - how long does it take on your workstation? I'm guessing it's at least 10 minutes - if so, how does that affect your workflow?
Engineers don't typically design and configure their own systems. There's a hardware group that does that, and engineers are just presented with a menu of choices.
Off the top of my head, I'd say that clean Chromium builds take my linux machine about 10 minutes. Null builds take a bit less than 1, and typical builds with a few files changed take between 1 and 2.
Most of the time is split between make stat'ing bazillions of files before the "build" even starts, and the linker thinking very hard right before it is done.
A coworker is working on a replacement for make that can somehow get away with touching far fewer files by caching dependency information. That should halve the time for typical builds I suspect.
As for my workflow, I don't find iteration time to be a limiting factor on my productivity. Iterations aren't as fast as something like ruby or python, but on the other hand, the compiler gives you a lot more information before you even run the code. So by the time the compiler's happy, you're a lot closer to something that works correctly.
> Off the top of my head, I'd say that clean Chromium builds take my linux machine about 10 minutes. Null builds take a bit less than 1, and typical builds with a few files changed take between 1 and 2.
Huh, I'm not familiar with this terminology (being an Autotools user), but it appears to be specific to SCons, a build system used by Chrome. I'll definitely have to take a look at it, as Autotools is an absolute nightmare, even once you understand how to use it.
Using a terminal multiplexer like Screen or tmux as your "IDE" is one of the most amazing things I've discovered. It's completely changed how I work - I can start/stop working at any time from any machine that has an SSH client. Apparently with tmux, it'll even preserve your tiling layout.