Alright! Looks like Google is beta testing a pay-per-action advertising system. This is a good thing for online businesses that generate money through visitors actions on their website — checking out a shopping cart, signing up for a mailing list, that sort of thing.
This is the logical next step in online advertising.
We started with pay-per-impression, where an advertiser pays every time their ad is displayed on someone’s web page. This isn’t particularly favorable for advertisers, because they’re paying whether or not someone is paying attention to their ads.
The solution to that problem was pay-per-click, where an advertiser pays every time their ad is clicked on. That pretty much guarantees that the person who clicked found something compelling in the advertisement, which provides advertisers a really great way to figure out what ads were most effective, and ties the cost of their advertising directly to the public’s interest. The downside for advertisers is that click through doesn’t guarantee a conversion, and so a really great ad would end up costing a heap of money if the website didn’t fulfill the user’s hopes and dreams.
Which brings us to pay-per-action, where an advertiser only pays when someone clicks an advertisement AND follows through with a particular action — like checking out a shopping cart, or signing up for a mailing list.
I dig it. Right now is a probably a great time to get into pay-per-action, because there aren’t many businesses competing for keywords and placement, so there’s probably some good deals to be had.
One year ago today, we were married.
Two years ago today, we were engaged.
Six years ago today, we were introduced.
Happy anniversary, to the best wife in the universe.
Check out what arrived in my inbox this morning, a gift from a far away land. If you like good techno, great animation, and a little bit of crazy … watch this video from Hifana.
Happy Saturday!
According to some, the next version of Katamari Damacy is named “Beautiful Katamari” and will be released on the Wii, PS3, and XBOX 360.

It will also completely destroy my life for about one month.
Good lord. Something happened in the flash memory industry over the last couple of months, and it kinda freaks me out (in a good way). Prices didn’t just halve on flash memory — they quartered. You can get 2GB for under $15
, for a USB drive smaller than a stick of Trident gum.
That’s not rational pricing. What happened? Over enthusiasm on the part of flash memory manufacturers? If the trend continues, a gigabyte is going to be “throw away” memory by the end of the year, and 4GB (the size of a DVD) will be under ten bucks.
Neat.
Well, this is fun. Here’s the configuration:
- Joyent Accelerator 64-L — We stripped it down and built it back up with the bare minimum Blastwave packages we need to run our apps (surprisingly few).
- Rails 1.2.2 Application — Moderate DB complexity, loaded with fixture data, and using acts_as_ferret extensively. No optimization at all (caching, query tweaking, etc.).
- Mongrel 1.0.1 — Running in production mode as a cluster with 4 instances (I think the server has 4 processor cores).
- nginx 0.5.14 — Built from scratch, and running the generic Rails/Mongrel configuration found on the wiki.
- PostgreSQL 8.1.4 — Out of the box configuration from the Blastwave package (nothing special, no ANALYZE statements).
We’re seeing about 50 connections served per second, with 80% of pages delivered within 150ms, and zero dropped or failed connections. I’m pretty sure we can double that if we spent any time optimizing the application and server stack.
Not bad .. but the big fat caveat is that it’s 11:00 PM so our box obviously isn’t loaded very heavily. We can burst up to 95% CPU utilization on the machine, so of course these numbers don’t reflect reality of peak hours. That said, we’ve never seen load reported over 0.2, even during peak.
I’m happy!
Update: I should note that the 50/sec rate is for a pretty dynamic application with some bells and whistles; connections for static content are in the hundreds per second, but not too applicable for our purposes.
If you’re in Portland, and you’re hungry, it’s worth checking out Screen Door. Southern style, local ingredients, small mix-n-match dishes, great service, good coffee, deserts, and drinks — it’s a pretty fabulous place to go with a few close friends. It’s not spendy (or dirt cheap), but I’m pretty confident you’ll leave happy.
2337 E. Burnside.
Yum.
We’re continuing our evaluation of TextDrive / Joyent Accelerators, and things are going well. Tech support is responsive to my odd requests, the forums are lively, and the system itself is quite speedy.
Tonight we’re installing nginx as the load balancing proxy for our Rails applications. It’s been personally recommended to us several times, battle tested by a few independent folks who are into these sorts of things, and received a lot of good press in the Rails community — and it’s mysteriously Russian. So, we’re quite interested to take it for a spin on our Accelerator.
First, there isn’t a Blastwave package for nginx, so we built from the tarball (which requires the PCRE sources). It’s a pretty simple, although it took some troubleshooting. The snag was that the PCRE build used tools that weren’t in my default $PATH, but were in /usr/ccs/bin.
So:
$ export PATH=$PATH:/usr/ccs/bin
… and then we’re off to the races:
$ wget http://sysoev.ru/nginx/nginx-x.x.x.tar.gz
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-x.x.tar.gz
$ gtar zxf nginx-x.x.x.tar.gz pcre-x.x.tar.gz
$ cd nginx-x.x.x
$ ./configure --prefix=/opt/nginx --with-pcre=../pcre-x.x
$ make
$ sudo make install
PS: Rails 1.2.3 was released today. And, happy birthday, Mom!
Hot damn, 300 is a good movie. It’s a beautifully shot, with great action, and true to the book. I think the most remarkable part about the movie is how much it feels like a glossy, high quality, graphic novel. The cinematography, color, contrast, action sequences, costumes, actors, everything — wonderful.
I also checked out “The Natural History of the Chicken,” a PBS documentary about chickens and their owners. It was recommended by my barber, a chicken owner, and it didn’t disappoint. Check it out if you’re looking for something light hearted, feathery, and a little off beat.
We’re test driving a Joyent Accelerator to see if a small cluster of them could be a reasonable replacement for our current hosting infrastructure. So far, so good — very speedy, and it looks like it’ll be easier to scale when we need more horsepower. For those not familiar, Joyent’s Accelerators are Solaris containers, Sun’s OS-level virtualization technology.
There are only two snags I’ve hit so far:
Clutter. When you get an Accelerator it comes preloaded with webmin, apache, php, mysql, courier, and all sorts of other things that people might want. However, we’re just deploying Rails apps, so the cruft has to go. We’ve spent a fair amount of time getting rid of the clutter … it would be GREAT if we could simply buy a bare-bones Accelerator.
Compilation. The Accelerators are well equipped with Blastwave packages for GCC and related tools, but Ruby wants to use Sun’s compilers for building native extensions — pretty critical to things like Mongrel or acts_as_ferret. There is a posted workaround here, but it could be a pain to diagnose if you’re not familiar with how gems are built.
Otherwise, it’s all rock and roll. Kudos to Joyent for getting this service off the ground — despite it’s rough edges, it’s a great service.