I wanted a cross platform way to test slow connections with a single command line parameter. Whether it be Linux, FreeBSD, or OSX (maybe Windows (haven't tested :-P)), it is easy to setup.
iptables or putting nginx with rate limits in front of Fake S3 would be a more powerful approach, but also harder to get going.
We work on the idea of different stages in the test and development pipeline. At different stages mock objects make sense, and at other stages having something like Fake S3 makes more sense.
For testing, the first stage would be unit testing. At that stage it is best to mock out your S3 interactions (with something like VCR or WebMock) and use an OO approach to wrap your persistence, so you could swap out S3 with another persistence engine without breaking APIs.
The second stage for us is integration testing where you might have multiple machines testing across the network. In this situation, I think it is great to have real network requests happening rather than mock requests. Also you can deal with real files (especially important with media files like images and video).
The last stage is taking out Fake S3 and using a true S3 connection to ensure that everything does work on a production environment (cuz Fake S3 could be faking you out, especially on things like authentication and versioning). We do that by launching a stage cluster and running a set of integration tests on that before doing a production release. Ideally, the first and second stages catch any errors before you start doing tests against the real AWS services.
As for the development pipeline, being able to work with real assets while you are making mobile or web interfaces is really useful, as well as simulating latency to see how interfaces respond when under a slow network connection is something that would be difficult to truly mock.
Swift is very powerful piece of technology, but it is also more involved to setup. Curious to try RiakCS as well and see how it compares to Swift for running production level S3 object storage.
I just started using Backblaze last week, and so far I have been very pleased. Even with Time Machine, I found I rarely hooked up my external hard drive at home, so this gives me a little more peace of mind, not to mention continuous backup during the day at work, in case my laptop gets jacked on the commute home.
hi, one of the makers of Spool here. Thanks for kicking the tires on it. Now that our coverage is up, we are optimizing for speed now, so those wait times will come down.
scribe is a very powerful logging tool, but it also comes with its dependency costs. Compiling boost, thrift, fb303, and all the scribe logging libraries as well. If you are already a thrift shop, it can make a lot of sense, but otherwise, there is a lot of legwork to get it up and running.
Making your mockup interactive aside, I do like using photoshop to play around with color schemes. Changing css and refreshing the page is slower than just tweaking colors in photoshop.
I am curious what qualifies as true CPU concurrency vs. threading tricks/shortcuts in the implementation of a language. If you look at java-6, c++, pascal, c, and ocaml, those are the top performers that actually utilize all 4 cores, where as haskell and erlang use 100% of one CPU. Also, in the interesting alternative programs section, the top performer is java (by cheating that they mention Haskell probably does behind the scenes)