I don't believe I communicated clearly enough in the creation of this project.<p>This is not ``Yay, I don't ever have to worry about any other computer because I can simulate anything.''<p>This is me sitting next to my QA guy (who really understands what I did better than I do so far) and having him say, ``Why don't you just make it fast for the first ten minutes, then slow down socket operations briefly, then switch a pattern of speedup and slowdown on disk reads?''<p>I want to do more fault injection stuff. I'm being asked to do stuff like manipulate the data (sometimes), or lie about the results of certain operations.
Fun, but the good thing about slow computers is that they're also the cheapest; it's far more economical to just buy an old box for a couple hundred dollars (or even cheaper).
I have been programming since the late 80's and one thing I learned early was to always develop (or at least extensively test) on older hardware. My primary work machine is usually a generation or two old. At present I code on a T42 Thinkpad and there is a new T60 waiting to take over in a couple months. If you're forced to develop in a "slow" environment you learn to optimize your code from the get go, all the time. You automatically rely on faster techniques as the norm vs. going back and fixing later. As a result now I frequently see my applications running at client's offices and think to myself "holy crap, that's fast". Another side benefit is that it keeps all my "fun" applications over on another more current machine and separate from work.
The point he's missing is that you don't have to develop software on the same computer you test it on. The best solution is to have a separate test computer that's appropriately slow. In fact, most people probably already have an old one lying around that they could use.<p>And regardless of speed, it's good to test your software on a variety of systems.
I recommend doing the same thing for web development.<p>There is a nice Firefox plugin (Firefox Throttle) that lets you throttle uploads and downloads with a single button click. If, like most web developers, you do development on localhost using the plugin lets you see how your user's experience uploading large files or downloading image rich pages with network latency.<p>Unfortunately its been pulled from the addons library search but you can download it directly (for now) using the ftp url in the comments here:<p><a href="http://support.mozilla.com/en-US/questions/755876#answer-107035" rel="nofollow">http://support.mozilla.com/en-US/questions/755876#answer-107...</a>
Nice work. But be careful about relying entirely on something like this. There are more than just seek time differences between hard disks and SSDs: they have different internal cache behavior, different latency variances, queuing differences (depending on how the devices are configured and how you're using them) etc.<p>This seems like it'll get you 80% of what you want. But it'd be useful to have an actual disk to test on as well.
I actually have a dev box that's an older Athlon XP with 1 GB of RAM that is surprisingly useful for finding performance issues. Things that don't show up on my monster desktop show up -really- fast on the clunker.<p>I'm a firm believer that developers should have old hardware to test on. :)
Wouldn't all this depend on your target customers? If your target customer is big business that have fast computers you are okay.<p>If your customers are average joes, then yes I would say you should have a test environment in place that closely represents those customers.<p>Even after all that the question I have is which set of customers brings in the most money for you? Lets say you have a mix of big business that run fast machines, and average joes that run slow machines. If 90% of your money comes from big business, why bother trying to make software for the slow machines? Just slap on a system requirement and it should cover them, so-to-speak.
I appreciate this sort of software, since our development and production hardware has vastly different performance profiles.<p>Development is on fast intel single or dual core machines with slow disks and production is slow many core sparc machines with fast disks.
I can see this work, but honestly wouldn't it make more sense not to use an older computer? They are typically cheap and you don't have to suffer when you don't develop speed critical code.