"If you are in Marketing or Advertising, kill yourself"
-- Bill Hicks
I lead a globally distributed group of engineers for the display-advertising network, Collective.
Just a few notes to share on benchmarking Riak + Leveldb
If you want to see the current configs, just head on over here. After days of tweaking I finally got Riak + Leveldb doing more than 3000 PUT/s and well over 8000 GET/s. I then moved on to longer running tests to see how Leveldb handled a growing key space. I modified my basho_bench test to create uuid4 IDs like so:
{key_generator, uuid_v4}.
then on 3/16 I did 60 minutes of PUTs:

Then on 3/17 I did 240 minutes of PUTs:

I followed it up on 3/18 but another 60 minute run:

This post is a work in progress …
Another nice example (using .mapred instead of .mapreduce), but I like these tests better
Werner Herzog Reads Where’s Waldo [may not be safe for work…]
“Is that a scroll or merely a rolled up towel?”
The tool is included within the latest test release of Lion, a version of Apple’s Mac OS X operating system that is currently available only to developers. The final version of the operating system…
If your application router is tightly coupled with your controllers, like with choreographer, you may want to give httputil (part of nodeunit) a try. The pasted example falls confusingly somewhere between a unit and an integration test. A side benefit is being able to mock network services easily.
For those that thought C had been delegated to the internals of your mobile devices or favorite database engine, Daniel Waterworth wants to string you up by the Raphters.
Raphters is a web framework written in C. Yes you heard that right, a shiny new framework for the web written in everybody’s favorite close-to-the-metal programming language. The project gets its name from RAPHT, a pattern that extends MVC that aims for greater security and flexibility:
- Resources include things served up to clients like a database or API.
- Actions provide ways to interact with a Resource.
- Processors transform data.
- Handlers provide the entry point for a request.
- Templates render data.
A simple Hello World example to demostrate the patter might look something like:
#include "raphters.h" START_HANDLER (simple, GET, "simple", res, 0, matches) { response_add_header(res, "content-type", "text/html"); response_write(res, "hello world"); } END_HANDLER START_HANDLER (default_handler, GET, "", res, 0, matches) { response_add_header(res, "content-type", "text/html"); response_write(res, "default page"); } END_HANDLER int main() { add_handler(simple); add_handler(default_handler); serve_forever(); return 0; }If you’re a C developer looking for speed (and security) you might give Raphters a look for your next web project.