review: NFL Sunday ticket on PS3

I’m a huge Patriot’s fan but I live in California.

I have comcast in my home for cable and internet. I hear a lot of complaints about comcast but I’ve never had a poor experience and didn’t want to switch to direcTV just because of the Patriot’s.

Luckly with the Sunday Ticket being availble on PS3 ( a few days before the season began) I didn’t have to switch.

The good:

  • Installation and setup was really easy, just had to download the app, which was really small and add the money to my playstation wallet
  • Every game is available except for local games, there is also inline stats while the game is on.
  • Includes NFL red zone which will show all touch downs live for all games.
  • Includes the ability to pause, rewind, fast foward the game almost like a DVR. I say almost because you can’t record the game.
  • Image quality is pretty good, digital qualty at the miminum which would throttle up to HD after a few minutes.
  • I get to watch every Patriot’s game!!

The bad:

  • Cost, being a father of 2 kids with a mortgage it was a really tough decision to spend $340 to watch what amounts to 16 games. I decided not to get it until my wife reminded me that as a father I do very little for myself and to get it. I did.
  • lack of pregame and post game coverage. Didn’t think I would miss this but the broadcast only runs from kickoff to the end of the game, other than that its not avaliable. Would be nice to at least get a 15 minutes pre/post game.
  • Can’t record games. If I’m paying for the content it shouldn’t matter when I watch it, would be nice to have to ability to record.
  • Playstation network, given all the security breaches to the network I felt really uncomfortable putting in my credit card data.

Summary:

The biggest problem is the cost however there is no way around it, even if you have direcTV the cost is the same. This is just a convienant work around to not having to switch your provider. If you really don’t want to miss games and can afford it, this is a pretty good solution which isn’t perfect but less expensive then going to a local sports bar at 10am on a Sunday morning.

 

 

How to scale varnish horizontally with haproxy

We currently rely on varnish to serve up our posts and other pages which are largely static.In fact 40% of requests to our site never hit our web servers as they are served out of varnish’s cache first.For redundancy and also to scale varnish we run two instances(soon to be 3).We initially used varnish’s hashing algorithm based on uri, this worked fine and specific pages were only stored on one varnish.The problem we ran into was when we had to purge a page we ended up sending the command to both varnishes. This causes several problems one is which it simple isn’t scalable, image sending the same purge command to 10+ instances.Another problem with it was the size of the purge.list was twice what is should be. If you manage varnish you know that when the purge list gets too big varnish stops working.

What we decided to do was to direct requests based on the first character of the host name. This works for us because each user has their own subdomain name. Now ont only do all pages for a single user exist on one varnish instance but we can accurately direct the purge request too. One small note if you are going to do this based on uri instead of hostname you will need to edit the regular expression to use the second character as the first will always be a forward slash. In our config below you can see that all hostnames starting with 0-9 & a-j live on web11, everything else lives on web12, in the case of posterous.com requests(which are not cachable we round robin between the two webs. The haproxy config for this is below:

backend posterous_http_web11mode httpserver web11web11:80 checkbackend posterous_http_web12mode httpserver web12web12:80 checkbackend posterous_http_allmode httpserver web11web11:80 check server web12web12:80 checkfrontend posterous_httpdoor 172.27.0.20:80acl posterous_com_root hdr_beg(host) -i posterous.comacl a-q_hostnames hdr_beg(host) -i 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i juse_backend posterous_http_all if posterous_com_rootuse_backend posterous_http_web11 if a-q_hostnames default_backend posterous_http_web12