Brasten, tumbling

RSS
May 6

Bowling: 2011-2012

Below are my 2011-2012 bowling season results. I’ve been trying to find some sort of useful pattern.

The first thing I see is that I seem to be two different bowlers in 2011 and 2012 — with a nearly 10-pin shift in average.

The other thing I see is a tendency to mix a couple very high point games into a handful of slightly sub-par games. This is a great way to maintain a high-ish average while losing a lot of games — which is exactly what happened.

Date Lane Game 1 Game 2 Game 3 Series Average
09/07/2011 42 179 203 193 575 191.67
09/14/2011 38 181 148 200 529 184.00
09/21/2011 35 227 202 212 641 193.89
09/28/2011 39 190 171 149 510 187.92
10/05/2011
10/12/2011 34 194 219 205 618 191.53
10/19/2011 37 134 196 159 489 186.78
10/25/2011
11/02/2011 32 169 174 161 504 184.10
11/09/2011
11/16/2011 33 257 180 227 664 188.75
11/30/0211 39 127 202 180 509 186.63
12/07/2011 38 205 206 199 610 188.30
12/14/2011 34 147 127 125 399 183.27
01/04/2012 36 150 132 231 513 182.25
01/11/2012 31 167 163 189 519 181.54
01/25/2012 40 203 167 127 497 180.40
02/01/2012 37 154 174 169 497 179.42
02/08/2012 37 186 151 100 437 177.31
02/15/2012
02/22/2012 32 235 199 173 607 178.78
02/01/2029 34 246 188 177 611 180.17
03/07/2012 39 178 152 175 505 179.54
03/14/2012 31 135 217 159 511 179.08
03/21/2012
03/28/2012 36 154 213 162 529 178.95
04/04/2012 33 199 188 189 576 179.55
04/11/2012 35 197 200 159 556 179.80
04/18/2012 40 173 158 178 509 179.38

Things I want from AWS (UPDATED)

A few simple things that Amazon AWS could offer that would make my life a looot easier.

1. SNS notifications triggered FROM an SQS queue

Many times I’d like to ensure that a message is reliably delivered to an HTTP endpoint. A great way to do this would be to feed an SNS topic from an SQS queue — where an error in sending the notification or an error code in response results in the SQS message remaining on the queue.

Note that the opposite is currently available — the SNS topic can post to an SQS queue. But I don’t see the benefit in this. What do you gain from posting to an SNS topic that drops the message off in an SQS queue over just posting directly to the queue itself?


2. Dynamic content origin servers for S3

Similar to CloudFront, I’d like a request for an S3 item to pull the item from a origin source if it doesn’t already exist ( PUTing it at that location on the way back ).

eg. an image thumbnail at a particular size could be generated IFF it’s requested … later requests serve it directly from S3.


3. S3 event notifications (provided by SNS?)

In many cases I’ve had to consider placing a custom service in front of S3 purely to track PUTs, GETs, etc, and trigger additional processing. If an S3 event dropped a message in an SNS topic … or better yet, an SQS queue backing an SNS topic … most of my reasons for building these services would be mitigated.


Any chance of getting these, Amazon?


UPDATE: Apparently AWS rolled out Delivery Policies for SNS the day I wrote this post. While it does not invalidate point #1, it does provide some of the functionality I was looking for.

You’ve got some ActiveRecord in your business model

Your business model is not the same thing as your data-access pattern.

(Unless your in the business of developing ORM frameworks, then maybe it is)

Unfortunately it seems like the “Rails way” of doing things has convinced a lot of otherwise-decent developers that their business model must ultimately be a subclass of ActiveRecord::Base — and all methods on those classes should mimic ActiveRecord operations. This results in methods that go to great lengths to tell me HOW they might fullfil my request, but often fail to describe what exactly they’re useful for.

Here’s an example from a project I’m working on now: 

Device.find_and_update_or_reassign_or_create( user, attributes )

There’s actually a lot of logic code in this method, and it turns out it is pretty core to our business logic. But what does it do? All I can tell you for sure is it will probably perform 2 or 3 DB operations … but when working with a business model, why do I care about that?

Device.provision( user, attributes )

Refactored! In the business domain of this application, I know exactly what it means to provision a device. I do not care (at this level) what DB operations are required to get that done (and they may very-well change over time).

Finally jumping on the Tumblr bandwagon.  Not sure why I didn’t do this sooner.