<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7434008</id><updated>2012-01-27T11:16:50.079-08:00</updated><category term='qcon'/><category term='xetoolkit'/><category term='tools'/><category term='Fontenna'/><category term='slingbox'/><category term='opteron'/><category term='Time Capsule'/><category term='Boingo'/><category term='citroen'/><category term='welserver'/><category term='a2dp'/><category term='BIL'/><category term='strategy'/><category term='Garrett Lisi'/><category term='SolarCity solar garage Nissan leaf fully charged heat pump'/><category term='Apple'/><category term='estradasphere'/><category term='hadoop'/><category term='ETel'/><category term='Fon'/><category term='ijigg'/><category term='fractal'/><category term='generac'/><category term='zabbix'/><category term='spotcloud'/><category term='solarcity'/><category term='netflix'/><category term='orca'/><category term='Millicomputing'/><category term='sun'/><category term='Maker Faire'/><category term='video'/><category term='craigslist'/><category term='nosql'/><category term='performance'/><category term='EV'/><category term='Oregon Scientific'/><category term='cacti'/><category term='aws'/><category term='solaris'/><category term='dtrace'/><category term='gumstix'/><category term='training'/><category term='thepiratebay'/><category term='simulation'/><category term='fractal ijigg aftermath bebo'/><category term='IEEE'/><category term='standby generator'/><category term='mechanical turk'/><category term='N1'/><category term='java'/><category term='global warming'/><category term='riak'/><category term='350.org'/><category term='BIL2008'/><category term='slowed average'/><category term='openmoko'/><category term='MMF'/><category term='Michelson'/><category term='climate change'/><category term='Joost'/><category term='niagara'/><category term='cockcroftplot'/><category term='SDK'/><category term='kazaa'/><category term='android'/><category term='patent'/><category term='ATT'/><category term='iPhone'/><category term='BILcast'/><category term='load average'/><category term='lawnmower'/><category term='Microcell'/><category term='Greenphone'/><category term='innovation'/><category term='occam'/><category term='memcached'/><category term='pawz'/><category term='cmg09'/><category term='EComm'/><category term='MacBook Air'/><category term='monterey'/><category term='Fonera'/><category term='Solar power'/><category term='slingbox inspiron powerbook tivo'/><category term='tethering'/><category term='MacWorld'/><category term='geoff arnold'/><category term='earth day'/><category term='MacOSX'/><category term='capacity'/><category term='rich pettit'/><category term='AppleTV'/><category term='ebay'/><category term='cmg08'/><category term='low power'/><category term='web interfaces'/><category term='skype'/><category term='benchmark'/><category term='Weather station'/><category term='dynamodb'/><category term='googlephone'/><category term='3G'/><category term='Leopard'/><category term='GSHP'/><category term='grid'/><category term='OpenCell'/><category term='OpenMP'/><category term='TiVo'/><category term='zoom'/><category term='la dolce vita automobili'/><category term='downloads'/><category term='MirthKon'/><category term='developers'/><category term='amazon'/><category term='myphone'/><category term='velocity conference'/><category term='kijiji'/><category term='pge'/><category term='elastic map reduce'/><category term='translattice'/><category term='cmg07'/><category term='membase'/><category term='Techshop'/><category term='defrag'/><category term='SVHMPC'/><category term='pi-calculus'/><category term='power-now'/><category term='linux'/><category term='Treo'/><category term='capacity planning'/><category term='cassandra'/><category term='openstack'/><category term='p2p'/><category term='cloud computing'/><category term='silverlight'/><category term='Nissan Leaf'/><category term='iZap'/><category term='gene'/><category term='copilot'/><category term='cmg'/><category term='Fiat'/><category term='culture'/><category term='garage'/><category term='bl*g'/><category term='music'/><category term='YouTube'/><category term='setoolkit'/><category term='chp'/><category term='mongodb'/><category term='brandz'/><category term='WMR100'/><category term='Aubrey De Grey'/><category term='tcp'/><category term='bluetooth'/><category term='bill scott'/><category term='jobs'/><category term='jim gray'/><category term='carrier'/><category term='usenix'/><category term='cmg06'/><category term='adsense'/><category term='SSD'/><category term='The Venice Project'/><category term='collectd'/><category term='EBS'/><category term='features'/><category term='MVNO'/><category term='amd'/><category term='1.1.3'/><category term='opensolaris'/><category term='iPad'/><category term='simpledb'/><category term='electric cars'/><category term='amada palmer'/><category term='TuxPhone'/><category term='headroom'/><category term='utilization'/><category term='TED'/><category term='pandora'/><category term='WiFi'/><title type='text'>Adrian Cockcroft's Blog</title><subtitle type='html'>This site contains my thoughts on performance tools, cloud architecture and capacity planning since 2004. It also covers anything else I find interesting, like cars, iPhone apps, and strange complex music... I don't post here often, but I tweet a lot @adrianco</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default?start-index=101&amp;max-results=100'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>274</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7434008.post-6717755089097737172</id><published>2012-01-19T14:25:00.000-08:00</published><updated>2012-01-20T13:20:10.677-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynamodb'/><category scheme='http://www.blogger.com/atom/ns#' term='simpledb'/><category scheme='http://www.blogger.com/atom/ns#' term='cassandra'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>Thoughts on SimpleDB, DynamoDB and Cassandra</title><content type='html'>I've been getting a lot of questions about DynamoDB, and these are my personal thoughts on the product, and how it fits into cloud architectures.&lt;br /&gt;&lt;br /&gt;I'm excited to see the release of DynamoDB, it's a very impressive product with great performance characteristics. It should be the first option for startups and new cloud projects on AWS. I also think it marks the turning point on solid state disks, they will be the default for new database products and benchmarks going forward.&lt;br /&gt;&lt;br /&gt;There are a few use cases where SimpleDB may still be useful, but DynamoDB replaces it in almost all cases. I've talked about the history of Netflix use of SimpleDB before, but it's relevant to the discussion on DynamoDB, so here goes.&lt;br /&gt;&lt;br /&gt;When Netflix was looking at moving to cloud about three years ago we had an internal debate about how to handle storage on AWS. There were strong proponents for using MySQL, SimpleDB was fairly new, and other alternatives were nascent NoSQL projects or expensive enterprise software. We started some pathfinder projects to explore the two alternatives and decided to port an existing MySQL app to AWS, while building a replication pipeline that copied data out of our Oracle datacenter systems into SimpleDB to be consumed in the cloud. The MySQL experience showed that we would have trouble scaling, and SimpleDB seemed reliable, so we went ahead and kept building more data sources on SimpleDB, with large blobs of data on S3.&lt;br /&gt;&lt;br /&gt;Along the way we put memcached in front of SimpleDB and S3 to improve read latency. The durability of SimpleDB is its strongest point, we have had Oracle and SAN data corruption bugs in the Datacenter over the last few years, but never lost or corrupted any SimpleDB data. The limitations of SimpleDB are its biggest problem. We worked around limits on table size, row and attribute size, and per-request overhead caused by http requests needing to be authenticated for every call.&lt;br /&gt;&lt;br /&gt;So the lesson here is that for a first step into NoSQL, we went with a hosted solution so that we didn't have to build a team of experts to run it, and we didn't have to decide in advance how much scale we needed. Starting again from scratch today, I would probably go with DynamoDB. It's a low "friction" and developer friendly solution.&lt;br /&gt;&lt;br /&gt;Late in 2010 we were planning the next step, turning off Oracle and making the cloud the master copy of the data. One big problem is that our backups and archives were based on Oracle, and there was no way to take a snapshot or incremental backup of SimpleDB. The only way to get data out in bulk is to run "SELECT * FROM table" over HTTP and page the requests. This adds load, takes too long, and costs a lot because SimpleDB charges for the time taken in SELECT calls.&lt;br /&gt;&lt;br /&gt;We looked at about twenty NoSQL options during 2010, trying to understand what the differences were, and eventually settled on Cassandra as our candidate for prototyping. In a week or so, we had ported a major data source from SimpleDB to Cassandra and were getting used to the new architecture, running benchmarks etc. We evaluated some other options, but decided to take Cassandra to the next stage and develop a production data source using it.&lt;br /&gt;&lt;br /&gt;The things we liked about Cassandra were that it is written in Java (we have a building full of Java engineers), it is packed full of state of the art distributed systems algorithms, we liked the code quality, we could get commercial support from Datastax, it is scalable and as an extra bonus it had multi-region support. What we didn't like so much was that we had to staff a team to own running Cassandra for us, but we retrained some DBAs and hired some good engineers including Vijay Parthasarathy, who had worked on the multi-region Cassandra development at Cisco Webex and who recently became a core committer on the Apache Cassandra project. We also struggled with the Hector client library, and have written our own (which we plan to release soon). The blessing and a curse of Cassandra is that it is an amazingly fast moving project. New versions come fast and furiously, which makes it hard to pick a version to stabilize on, however the changes we make turn up in the mainstream releases after a few weeks. Saying "Cassandra doesn't do X" is more of a challenge than a statement. If we need "X" we work with the rest of the Apache project to add it.&lt;br /&gt;&lt;br /&gt;Throughout 2010 the product teams at Netflix gradually moved their backend data sources to Cassandra, we worked out the automation we needed to do easy self service deployments and ended up with a large number of clusters. In preparation for the UK launch we also made changes to Cassandra to better support multi-region deployment on EC2, and we are currently running several Cassandra clusters that span the US and European AWS regions.&lt;br /&gt;&lt;br /&gt;Now that DynamoDB has been released, the obvious question is whether Netflix has any plans to use it. The short answer is no, because it's a subset of the Cassandra functionality that we depend on. However that doesn't detract from the major step forward from SimpleDB in performance, scalability and latency. For new customers, or people who have outgrown the scalability of MySQL or MongoDB, DynamoDB is an excellent starting point for data sources on AWS. The advantages of zero administration combined with the performance and scalability of a solid state disk backend are compelling.&lt;br /&gt;&lt;br /&gt;Personally my main disappointment with DynamoDB is that it doesn't have any snapshot or incremental backup capability. The AWS answer is that you can extract data into EMR then store it in S3. This is basically the same answer as SimpleDB, it's a full table scan data extraction (which takes too long and costs too much and isn't incremental). The mechanism we built for Cassandra leverages the way that Cassandra writes immutable files to get a callback and compress/copy them to S3 as they are written, it's extremely low overhead. If we corrupt our data with a code bug and need to roll back, or take a backup in production and restore in test, we have all the files archived in S3.&lt;br /&gt;&lt;br /&gt;One argument against DynamoDB is that DynamoDB is on AWS only, so customers could get locked in, however it's easy to upgrade applications from SimpleDB, to DynamoDB and to Cassandra. They have similar schema models, consistency options and availability models. It's harder to go backwards, because Cassandra has more features and fewer restrictions. Porting between NoSQL data stores is trivial compared to porting between relational databases, due to the complexity of the SQL language dialects and features and the simplicity of the NoSQL offerings. Starting out on DynamoDB then switching to Cassandra when you need more direct control over the installation or Cassandra specific features like multi-region support is a very viable strategy.&lt;br /&gt;&lt;br /&gt;As early adopters we have had to do a lot more pioneering engineering work than more recent cloud converts. Along the way we have leveraged AWS heavily to accelerate our own development, and built a lot of automation around Cassandra. While SimpleDB has been a minor player in the NoSQL world DynamoDB is going to have a much bigger impact. Cassandra has matured and got easier to use and deploy over the last year but it doesn't scale down as far. By that I mean a single developer in a startup can start coding against DynamoDB without needing any support and with low and incremental costs. The smallest Cassandra cluster we run is six m1.xlarge instances spread over three zones with triple replication.&lt;br /&gt;&lt;br /&gt;I've been saying for a while that 2012 is the year that NoSQL goes mainstream, DynamoDB is another major step in validating that move. The canonical CEO to CIO conversation is moving from 2010: "what's our cloud strategy?", 2011: "what's our big data strategy?" to 2012: "what's our NoSQL strategy?".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6717755089097737172?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6717755089097737172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2012/01/thoughts-on-simpledb-dynamodb-and.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6717755089097737172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6717755089097737172'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2012/01/thoughts-on-simpledb-dynamodb-and.html' title='Thoughts on SimpleDB, DynamoDB and Cassandra'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-482330355701611132</id><published>2011-12-30T18:25:00.000-08:00</published><updated>2011-12-31T00:12:44.832-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='culture'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='innovation'/><category scheme='http://www.blogger.com/atom/ns#' term='defrag'/><title type='text'>How Netflix gets out of the way of innovation</title><content type='html'>#defrag 2011 presentation script.&lt;br /&gt;&lt;br /&gt;I'm the cloud architect for Netflix, but rather than tell you about why we moved Netflix to a cloud architecture or how we built our cloud architecture, I'm going to tell you what we do differently at Netflix to create a culture that supports innovation.&lt;br /&gt;&lt;br /&gt;What is it that lets us get things done very quickly. Sometimes a bit too qwikly…. but how did we keep making big strategic moves, from DVD to streaming, from Datacenter to Public Cloud, from USA only to International, all in very short timescales with a fairly small team of engineers.&lt;br /&gt;&lt;br /&gt;My presentation slides are just box-shots of movies and TV shows that are available on Netflix streaming. This script is based on the notes I made to figure out what I was going to say for each box shot. If some of you see a show you didn't know we had and want to watch that would make me happy, you can click on the box shot to visit that movie at Netflix, they were all available for streaming in the USA at the time of writing.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/How_the_Universe_Works/70211549"&gt;&lt;img src="http://cdn-9.nflximg.com/en_us/boxshots/tv_sdp_s/70211549.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;I've attempted to match the box shots loosely as cues to what I'm saying, but I've also used a musical theme in places since this is for Defrag and Defrag rocks!&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Amazon_IMAX/70000637"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/ghd/70000637.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Netflix is now one of the largest sites that runs almost entirely on public cloud infrastructure. We have become a poster child for how to build an architecture that takes full advantage of the Amazon Web Services cloud. But when I talk to other large companies about what we have done, they seem to have a lot of reasons why they couldn't or didn't do what we did, even if they wanted to.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/The_Walking_Dead/70177057"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/tv_sdp_s/70177057.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Why is that? Why are we heading in one direction while everyone else is going the other way? Are we crazy or are they zombies? Well, I've worked at other large companies so I have some perspective on the issues.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/The_Story_of_1/70046548"&gt;&lt;img src="http://cdn-8.nflximg.com/en_us/boxshots/ghd/70046548.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Before I joined Netflix I worked at eBay for a few years, and helped found eBay Research Labs. This was setup because eBay felt it wasn't innovating fast enough, and they were looking for the one missing ingredient that would drive more innovation into the company.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Beer_Pong_Saved_My_Life/70183286"&gt;&lt;img src="http://cdn-6.nflximg.com/en_us/boxshots/ghd/70183286.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;This is a fairly common approach. &lt;span style="font-style:italic;"&gt;"You guys go and be innovative, then hopefully we will find ways to spread it around a bit."&lt;/span&gt; Unfortunately the end result of setting up a separate group to add innovation to a big company is more comical than useful.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Airplane/60002777"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/ghd/60002777.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;The most interesting projects got tied in knots, they trod on too many toes or were scary. We visited Xerox Parc and IBM Santa Teresa Labs to discuss how they were setup, to try and learn what might work., and we went to an Innovation Forum in New York. That was weird, some of the primary examples they were talking about emulating were eBay and Paypal! &lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Gnomeo_and_Juliet/70140917"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/ghd/70140917.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;The projects that did get out were minor tweaks to existing ideas, they could be fun, but ultimately not very interesting.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Breaking_Bad/70143836"&gt;&lt;img src="http://cdn-6.nflximg.com/en_us/boxshots/tv_sdp_s/70143836.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;So I had to break out of there and find something new to do, and in 2007 I joined Netflix just as they first launched streaming.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Being_John_Malkovich/28363298"&gt;&lt;img src="http://cdn-8.nflximg.com/en_us/boxshots/ghd/28363298.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;One of the key attractions for me was the Netflix culture I heard about in the interviews, I wanted to get inside their heads and figure out if what they were describing was real, and if so, was it sustainable as the company grew.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Strange_Culture/70066357"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/ghd/70066357.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;What I found out over the next few years is that the culture is what enables innovation, so that Netflix can get things done quickly that other companies are too scared or too slow to try. The rest of this talk is about the key things that we do differently at Netflix.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Dilbert/70202747"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/tv_sdp_s/70202747.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Before I get into them I want to warn you that even with a roadmap and a guide, you probably won't be able to follow this path if you are in a large established company. Your existing culture won't let you. However if you are creating a new company from scratch, I hope you can join me in what I hope is the future of cool places to work.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Red_Dwarf/70140428"&gt;&lt;img src="http://cdn-8.nflximg.com/en_us/boxshots/tv_sdp_s/70140428.jpg " border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Here's the key insight. It's the things you don't do that make the difference. You don't add innovation to a company culture, you get out of its way.&lt;br /&gt;&lt;br /&gt;I'm mostly going for SciFi at this point, because it's going to sound like I was beamed in from the future to some of you.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Futurama/70153380"&gt;&lt;img src="http://cdn-0.nflximg.com/en_us/boxshots/tv_sdp_s/70153380.jpg" width="420" " border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Let me repeat that. You have to setup a company that doesn't do many of the things you would consider business as usual. That's why it's so hard to retrofit.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Madonna_Truth_or_Dare/1068501"&gt;&lt;img src="http://cdn-1.nflximg.com/en_us/boxshots/ghd/1068501.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;How about some audience participation? Hands up everyone who hates answering questions by putting their hands up..&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Mega_Shark_Versus_Giant_Octopus/70117672"&gt;&lt;img src="http://cdn-2.nflximg.com/en_us/boxshots/ghd/70117672.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who works at a company that has more than one product line? Do you get along? The problem is that the company loses focus and has trouble allocating resources where they are needed so there are big fights. Pick one big thing and do it well. For Netflix, our addressable market is everyone in the universe who likes watching movies and TV shows, that should keep us busy for a while.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Star_Trek_The_Next_Generation/70158329"&gt;&lt;img src="http://cdn-9.nflximg.com/en_us/boxshots/tv_sdp_s/70158329.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has teams spread over multiple sites and countries? We don't. It adds communication and synchronization overhead that slows your organization down. For the geeks, think of Amdahl's law applied to people. We have as many people as possible in the same building on the same site. We are planning a new bigger building to make sure we can keep everyone close together. High bandwidth, low latency communication.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Take_Me_Home_Tonight/70117577"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/ghd/70117577.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who's worked for a place that bought another company, then run it into the ground, laid everyone off and wrote down the value. Over and over again. It's crazy. I don't think Netflix has ever bought another company. It's a huge disruption to the culture, if you see something you like just hire away their best people and out execute them in the market.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Iron_Man_2/70111470"&gt;&lt;img src="http://cdn-0.nflximg.com/en_us/boxshots/ghd/70111470.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has junior engineers, graduate hires and interns writing code? We don't. We find that engineers who cost twice as much are far more than twice as productive, and need much less management overhead. &lt;span style="font-weight:bold;"&gt;Reducing management overhead&lt;/span&gt; is a key enabler for an innovative culture. Engineers who don't need to be managed are worth paying extra for. We are tiny compared to companies like Google, they take on raw talent and develop it, we sometimes take a chance on someone with only five years experience.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Tron_Legacy/70124805"&gt;&lt;img src="http://cdn-5.nflximg.com/en_us/boxshots/ghd/70124805.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has an architecture review board and centralized coding standards? We don't have that either. What we do have is tooling that creates a path of least resistance, which combined with peer pressure keeps quality high. The engineers are free and responsible for figuring it out for themselves.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/The_IT_Crowd/70140450"&gt;&lt;img src="http://cdn-0.nflximg.com/en_us/boxshots/tv_sdp_s/70140450.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has an ITops team that owns keeping code running in production? We don't. The developers run what they wrote. Everyone's cell phone is in the pagerduty rota, the trick is making sure you don't need to get called. All the ops people here have horror stories of stupid developers, and vice versa, but it doesn't have to be that way. We have one dev organization that does everything and no IT ops org involvement in our AWS cloud deployment.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Star_Trek_Deep_Space_Nine/70158330"&gt;&lt;img src="http://cdn-0.nflximg.com/en_us/boxshots/tv_sdp_s/70158330.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has to ask permission before deploying 100's or 1000's of servers? We don't. The developers use our portal directly, they have to file a Change Management ticket to record what they did if it's in production, that's all. We've trained our developers to operate their own code. We create and destroy up to 1000 servers a day, just pushing new code. AWS takes about 5 minutes to allocate 100 servers, it takes longer than that just to boot Linux on them.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/30-Second_Bunnies_Theatre/70142341"&gt;&lt;img src="http://cdn-1.nflximg.com/en_us/boxshots/tv_sdp_s/70142341.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has a centralized push cycle and has to wait for the next "train" before they can ship their code? We don't. Every team manages their own release schedule. New code updates frequently, and the pace slows for mature services. Teams are responsible for managing interface evolution and dependencies themselves. Freedom and responsibility again.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Battlestar_Galactica/70136119"&gt;&lt;img src="http://cdn-9.nflximg.com/en_us/boxshots/tv_sdp_s/70136119.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has project managers tracking deliverables? We don't. The line managers do it themselves. They own the resources and set the context for their teams. They have time to do this because we took the BS out of their role.&lt;br /&gt;Managers have to be great at hiring, technical and hands on enough to architect what their team does, and project manage to deliver results. Don't split this into three people. Reduce management overhead, minimize BS and time wasted. Teams are typically 3-7 people. Have a weekly team meeting and 1on1 with each engineer to maintain context.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Metropolis_Restored/70132372"&gt;&lt;img src="http://cdn-2.nflximg.com/en_us/boxshots/ghd/70132372.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has a single standard for development tools? We don't. We assume developers already know how to make themselves productive. We provide some common patterns to get new hires started, like Eclipse, IntelliJ, on Mac, Windows. Some people use Emacs on Linux. Hire experienced engineers who care, and they will take care of code quality and standards without being told how to.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Dumb_and_Dumber_Unrated/70043038"&gt;&lt;img src="http://cdn-8.nflximg.com/en_us/boxshots/ghd/70043038.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Who has to work with people they don't respect? It's much too disruptive. The only way to get high talent density is to get rid of the people who are out of their depth or coasting.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Ugly_Americans/70195797"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/tv_sdp_s/70195797.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;That also applies to what you might call brilliant jerks. Even if they do great work, the culture can't tolerate prima donna anti-social behavior, so people who don't trust others or share what they know don't fit in.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Shaun_the_Sheep/70155567"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/tv_sdp_s/70155567.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;So does that mean we value conformity? No but it's really important to be comfortable as part of a high performance team, so we look for people who naturally over-communicate and have a secure confident personality type.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Top_Gear_U.K./70140457"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/tv_sdp_s/70140457.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;If you haven't experienced a high performance culture, think about what it's like to drive flat out at a race track. Some people will be too scared to deal with it and drive around white knuckled at 40 mph, some will be overconfident and crash on the first corner, but for people who fit into the high performance culture it's exhilarating to push yourself to go faster each lap, and learn from your peers without a speed limit. When you take out the BS and friction, everyone gets so much more done that productivity, innovation and rapid agile development just happen. This is the key message, removing obstacles to a high performance culture is how innovation happens throughout an organization. Doing less to get more.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/A_Hard_Day_s_Night_Collector_s_Series/60023947"&gt;&lt;img src="http://cdn-7.nflximg.com/en_us/boxshots/ghd/60023947.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;We don't pay bonuses. We don't have grades other than senior engineer, manager, director, VP. We don't count the hours or the vacation days, we say "take some". Once a year we revise everyones salary to their peers and current market rate - based on what we are paying now to hire the best people we can find.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Mad_Men/70136135"&gt;&lt;img src="http://cdn-5.nflximg.com/en_us/boxshots/tv_sdp_s/70136135.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;We also have what sounds like a crazy stock option plan that grants options every month, vests the same day, and they last 10 years even if you leave Netflix. The net of this is less work for managers, they can concentrate on hiring top people, and almost everyone that leaves takes a pay cut. The test we make is "would you fight to keep your engineers if they tried to leave". If not, let them go now and get someone better. We don't make it hard to let people go.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Capitalism_A_Love_Story/70122701"&gt;&lt;img src="http://cdn-1.nflximg.com/en_us/boxshots/ghd/70122701.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Some of you may be thinking this sounds expensive, but what is the value of being incredibly productive and able to move faster than your competition? You can get out ahead and establish a leading position before anyone else realizes you are even in the game. Remember how a few years ago the "Analysts" said that Netflix the DVD company was going to get killed by other companies streaming, then all of a sudden people realized that we were streaming more bandwidth than anyone else?&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Meteor_Apocalypse/70130480"&gt;&lt;img src="http://cdn-0.nflximg.com/en_us/boxshots/ghd/70130480.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;So what could possibly go wrong? We had a near miss recently, we went too fast, partly because we could, got unlucky and screwed up. The good thing is that Netflix could re-plan and execute on the fixes we need very quickly as well, with no internal angst and finger-pointing. Also there was an Asteroid nearby earlier this week. By the way, my stepdaughter @raedioactive was the art director for this movie.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Eric_Clapton_Crossroads_Guitar_Festival_2010/70213186"&gt;&lt;img src="http://cdn-6.nflximg.com/en_us/boxshots/tv_sdp_s/70213186.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;So, you are at a crossroads, you could be on stage with Eric Clapton, or in the audience watching and wondering why you can't do what they are doing. It's a radically different way to construct a corporate culture, it doesn't work for everyone, and we can't all be up on stage with Eric, but the talent is out there if you start by building a culture focused on talent density to find it and keep it.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/The_Men_Who_Stare_at_Goats/70117293"&gt;&lt;img src="http://cdn-3.nflximg.com/en_us/boxshots/ghd/70117293.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Is it going to be the goats or the glory? I just told you all to stop doing things, what could be easier than that? It takes less process, fewer rules and simpler principles. Give people freedom, hold them responsible, replace the ones that can't or won't perform in that environment. Focus on talent density and conserving management attention span by removing the BS from their jobs.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/The_Blues_Brothers/60036233"&gt;&lt;img src="http://cdn-3.nflximg.com/en_us/boxshots/ghd/60036233.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;This is your challenge, can you get a band together and go on a mission to save your company? Stop doing all the things that are slowing you down, and get rid of the unproductive BS that clogs up your management and engineers.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Roast_of_Charlie_Sheen/70211794"&gt;&lt;img src="http://cdn-4.nflximg.com/en_us/boxshots/ghd/70211794.jpg" border="0"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;I will take questions in the comments or on twitter to &lt;a href=http://www.twitter.com/adrianco&gt;@adrianco&lt;/a&gt;. Thank you.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a href="http://movies.netflix.com/WiMovie/Manswers/70215420"&gt;&lt;img src="http://cdn-0.nflximg.com/en_us/boxshots/tv_sdp_s/70215420.jpg" border="0"  width="420"&gt;&lt;/a&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Each question got a new box shot, but all the answers were musical.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-482330355701611132?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/482330355701611132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/12/how-netflix-gets-out-of-way-of.html#comment-form' title='19 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/482330355701611132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/482330355701611132'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/12/how-netflix-gets-out-of-way-of.html' title='How Netflix gets out of the way of innovation'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1705028570263845707</id><published>2011-09-22T00:33:00.000-07:00</published><updated>2011-09-22T02:20:44.450-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nissan Leaf'/><category scheme='http://www.blogger.com/atom/ns#' term='EV'/><title type='text'>The economics of Nissan Leaf ownership</title><content type='html'>We got our @NissanLeaf at the end of June, and are very happy with it. It's fun to drive and is our first choice for any journey within range. Since the car is nearly silent and has over 200 lb-ft of torque, I often use full power for acceleration away from the lights, which quietly leaves the other cars behind. The low noise level is also great for listening to speech or music, and the steering wheel controls and bluetooth integration with my iPhone works well for phone calls and iPod or Pandora.&lt;br /&gt;&lt;br /&gt;Laurel usually takes it for her 66 mile round trip commute, and if not, I take it on my 20 miles round trip commute, and any shopping trips at the weekend. So far we have averaged about 1000 miles per month, mostly mountain roads and freeways, which is the worst case for electrical consumption. The Leaf collects its milage and power use, and we can go back to look at the activity.&lt;br /&gt;&lt;br /&gt;The record shows 1003 miles at 3.8 miles/KWh and a total of 264.6 KWh. We pay 8.5c/KWh, so if we had charged at home that's $22.49. Since we charge at work for free it's more like $15. We have grid-tied solar power and time of use metering for a cheap overnight rate. The meter runs backwards during the day at a higher price, and the Leaf has a charging delay timer so that we can plug it in when we get home, then it starts charging when the cheapest rate starts at 9pm.&lt;br /&gt;&lt;br /&gt;1003 miles in the cars we would normally drive, which get about 20mpg, uses 50 gallons of premium gas at about $4.10 and about $206. So we actually saved $191 in August.&lt;br /&gt;&lt;br /&gt;If Laurel drives every day, 22 work days a month at 66 miles is 1452 miles, she tops up the charge at work each day and gets about 4.2 miles/KWh on that route so that's still under a dollar a day. The gas cost would be $298, so she is saving about $280/month. That takes a big chunk out of the cost of buying the car in the first place. On top of that, the servicing costs are minimal, no oil changes, and the brakes last longer because the regenerative braking system takes a lot of the load. We have had to buy a new tire after popping it on a pothole, that was about $150, installed, but could happen to any car.&lt;br /&gt;&lt;br /&gt;The icing on the cake is our white (for pure electric) car pool lane stickers, so Laurel can take the freeway in rush hour and zip silently past all the Prius drivers whose yellow (for hybrid) stickers no longer get them in the car pool lane. It took a total of ten weeks to get the license plates, then apply and get the white stickers.&lt;br /&gt;&lt;br /&gt;So the value proposition for the Leaf is that it is much more fun to drive than a high mpg economy car like a Prius, gets you in the car pool lane (if you live in California), and the purchase cost is offset by ultra-low running costs if you use it regularly.&lt;br /&gt;&lt;br /&gt;We aren't alone in figuring out that this is a good deal. At last count there are six Nissan Leaf owners at Netflix, along with one Volt (which doesn't get the carpool lane sticker) and two Tesla Roadsters. At Informatica, Laurel is one of at least three Leafs and one Volt sharing the chargers.&lt;br /&gt;&lt;br /&gt;We leased our car on a three year 36,000 mile plan. We included the home charger installation in the payment (about $2K), put down a $2K initial payment, got a $7500 federal rebate bundled into the deal. Actual payment including taxes is $576/month. We get a $2500 state rebate paid directly to us after signing up for it which covers the initial payment. We leased because we think that in three years time there may be big advances in electric car technology, we could decide to keep the Leaf, or give it back and get a 2014 Tesla Model S or a Fiat 500 Electric (or both!).&lt;br /&gt;&lt;br /&gt;For much more discussion about the car, the &lt;a href="http://www.mynissanleaf.com"&gt;My Nissan Leaf forum&lt;/a&gt; is quite active. One thing I found there is that upgraded springs and dampers are available, since we do a lot of mountain driving, I'm planning to upgrade the suspension to be lower and stiffer than stock.&lt;br /&gt;&lt;br /&gt;The first question everyone asks is how far will the Leaf go, and the answer is between 80 and 120 miles per charge, but it depends on where you live and how hard you drive. The usable capacity of the battery pack is about 21KWh, the actual spec is 24KWh, so there is a little bit of extra capacity beyond it's "I'm empty" point. if you drive a lot of freeways at speed and climb mountains like we do, 4 miles/KWh gets you 84 miles. In a flat urban environment 6 miles/KWh is quite possible to get 120 miles.&lt;br /&gt;&lt;br /&gt;Since we live at the top of a mountain (2400ft) and work near sea level, we usually charge the car to 80% full at home, and 100% full at work. This way there is regenerative braking for the initial downhill run, which is free power and also saves the brake pads.&lt;br /&gt;&lt;br /&gt;That's enough of the brain dump, yet another 2am blog post...&lt;br /&gt;&lt;br /&gt;Our "carwings" summary page for August is shown below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-87l2LbFLha8/Tnr1c2gWyjI/AAAAAAAAAV4/PE-e5zgsVE0/s1600/Screen%2Bshot%2B2011-09-22%2Bat%2B12.54.35%2BAM.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 218px;" src="http://2.bp.blogspot.com/-87l2LbFLha8/Tnr1c2gWyjI/AAAAAAAAAV4/PE-e5zgsVE0/s320/Screen%2Bshot%2B2011-09-22%2Bat%2B12.54.35%2BAM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5655102158133447218" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1705028570263845707?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1705028570263845707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/09/economics-of-nissan-leaf-ownership.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1705028570263845707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1705028570263845707'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/09/economics-of-nissan-leaf-ownership.html' title='The economics of Nissan Leaf ownership'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-87l2LbFLha8/Tnr1c2gWyjI/AAAAAAAAAV4/PE-e5zgsVE0/s72-c/Screen%2Bshot%2B2011-09-22%2Bat%2B12.54.35%2BAM.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-768888780001097714</id><published>2011-09-21T01:06:00.000-07:00</published><updated>2011-09-21T02:00:39.975-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='350.org'/><category scheme='http://www.blogger.com/atom/ns#' term='electric cars'/><title type='text'>Moving Planet - Day of Action Saturday 24th Sept</title><content type='html'>There is a world-wide movement coordinated by &lt;a href="http://www.350.org/"&gt;the global warming action group 350.org&lt;/a&gt; which has set this coming Saturday as a day of action to raise awareness.&lt;br /&gt;&lt;br /&gt;You can find an event near you at &lt;a href="http://www.moving-planet.org/map"&gt;the Moving Planet Site&lt;/a&gt;. Many of the events are based around bike rides.&lt;br /&gt;&lt;br /&gt;For people local to the bay area, there is also a large &lt;a href="http://www.eaasv.org/rally.html"&gt;Electric Vehicle car show in Palo Alto&lt;/a&gt; organized by the Electric Auto Association of Silicon Valley, where people can see and get rides in electric cars like the Nissan Leaf. The electric world speed record holding 216mph Lightning Motorbike should also be there.&lt;br /&gt;&lt;br /&gt;We have been having a lot of fun driving our Nissan Leaf, we use it almost every day, and going back to a conventional car seems so broken. What's this gearbox thing and why does it keep having to change gear? The quiet instant torque of direct drive electric power is addictive. At last count there are six Nissan Leaf's parked at Netflix every day. We have several chargers for people who need a top up, but most of us just charge at home.&lt;br /&gt;&lt;br /&gt;For more mainstream activities, the San Jose Mercury is also organizing a big car show in central San Jose on the same day, &lt;a href="http://hybrids2hotrods.com/"&gt;hybrids2hotrods.com&lt;/a&gt;, they have a Fisker hybrid on their poster and there will be electric cars and lots of classic cars as well.&lt;br /&gt;&lt;br /&gt;I'm aiming to write some more blog posts on our solar system and the Nissan Leaf over the next few days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-768888780001097714?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/768888780001097714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/09/moving-planet-day-of-action-saturday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/768888780001097714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/768888780001097714'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/09/moving-planet-day-of-action-saturday.html' title='Moving Planet - Day of Action Saturday 24th Sept'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7739586210783396655</id><published>2011-08-30T21:56:00.000-07:00</published><updated>2011-09-02T00:10:58.361-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openstack'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>I come to use clouds, not to build them...</title><content type='html'>[Update: Thanks for all the comments and &lt;a href="http://gigaom.com/cloud/netflix-amazon-openstack/"&gt;Ryan Lawler's GigaOM summary&lt;/a&gt; - also I would like to credit James Urquhart's posting on &lt;a href="http://news.cnet.com/8301-19413_3-20098812-240/can-any-cloud-catch-amazon-web-services-part-1/"&gt;Competing With Amazon Part 1&lt;/a&gt;. for giving me the impetus to write this.]&lt;br /&gt;&lt;br /&gt;My question is what are the alternatives to AWS from a developer perspective, and when might they be useful? However I will digress into a little history to frame the discussion.&lt;br /&gt;&lt;br /&gt;There are really two separate threads of development in cloud architectures, the one I care about is how to build applications on top of public cloud infrastructure, the other is about how to build cloud infrastructure itself.&lt;br /&gt;&lt;br /&gt;In 1984 I didn't care about how the Zilog Z80 or the Motorola 6809 microprocessors were made, but I built my own home-brew 6809 machine and wrote a code generator for a C compiler because I thought it was the best architecture, and I needed something to distract me from a particularly mind-numbing project at work.&lt;br /&gt;&lt;br /&gt;In 1988 I joined Sun Microsystems and was one of the people who could argue in detail how SPARC was better than MIPS or whatever as an instruction set, or how Solaris and OpenLook window system were better. However I never designed a RISC microprocessor, wrote kernel code or developed window systems libraries. I helped customers use them to solve their own problems.&lt;br /&gt;&lt;br /&gt;In 1993 I moved to the USA and worked to help customers scale their applications on the new big multiprocessor systems that Sun had just launched. I didn't re-write the operating system myself, but I figured out how to measure it and explain how to get good performance in some books I wrote at the time.&lt;br /&gt;&lt;br /&gt;In 1995 when Java was released and the WWW was taking off, I didn't work on the Java implementation or IETF standards body, I helped people to figure out how to use Java and to get the first web servers to scale, so they could build new kinds of applications.&lt;br /&gt;&lt;br /&gt;In 2004 I made a career change to move from the Enterprise Computing market place with Sun to the Consumer Web Services space with eBay. At the time eBay was among the first sites to have a public web API. It seemed to me that the interesting innovation was now taking place in the creation and mash-up of web services and APIs, no-one cared about what operating system they ran, what hardware that ran on, or who sold those computers.&lt;br /&gt;&lt;br /&gt;Over time, the interesting innovation that matters has moved up the food chain to higher and higher levels of abstraction, leveraging and taking for granted the layers underneath. A few years ago I had to explain to friends who still worked at Sun, how I was completely uninterested in whether my servers ran Linux or Solaris, but I did care what version of Java we were using.&lt;br /&gt;&lt;br /&gt;Now I'm working on a cloud architecture for Netflix, we don't really care which Content Delivery Network is used to stream the TV shows over the Internet to the customers, we interchangeably use three vendors at present. I also don't care how the cloud works underneath, I hear that AWS uses Xen, but it's invisible to me. What I do care about is how the cloud behaves, i.e. does it scale and does it have the feature set that I need.&lt;br /&gt;&lt;br /&gt;That brings me back to my original question, what are the alternatives to AWS and when might they be useful.&lt;br /&gt;&lt;br /&gt;Last week I attended an OpenStack meetup, thinking that I might learn about its feature set, scale and roadmap as an alternative to AWS. However the main objective of the presenters seemed to be to recruit the equivalent of chip designers and kernel developers to help them build out the project itself, and to appeal to IT operations people who want to build and run their own cloud. There was no explanation or outreach to developers who might want to build applications that run on OpenStack.&lt;br /&gt;&lt;br /&gt;I managed to get the panel to spend a little while explaining what OpenStack consists of, and figured out a few things. The initial release is only really usable via the AWS clone APIs and doesn't have an integrated authentication system across the features. The "Diablo" release this fall should be better integrated and will have native APIs, it is probably suitable for proof of concept implementations by people building private clouds. The "Essex" version targeted at March next year is supposed to be the first production oriented release.&lt;br /&gt;&lt;br /&gt;There are several topics that I would like to have seen discussed, perhaps people could discuss them in the comments to this blog post? One is a feature set comparison with AWS, and a discussion of whether OpenStack plans to continue to support the AWS clone APIs for equivalent features as it adds them. So far I think OpenStack has a basic EC2 clone and S3 clone, plus some networking and identity management that doesn't map to equivalent AWS APIs.&lt;br /&gt;&lt;br /&gt;The point of my history lesson in the introduction is that a few very specialized engineers are needed to build microprocessors, operating systems, servers, datacenters, CDNs and clouds. It's difficult and interesting work, but in the end if its done right it's a commodity that is invisible to developers and their customers. One of the slides proudly showed how many developers OpenStack had, a few hundred, mostly building it from scratch. There wasn't room on the slide to show how many developers AWS has on the same scale. Someone said recently that the far bigger AWS team has more open headcount than the total number of people working on OpenStack. When you consider the developer ecosystem around AWS, there must be hundreds of thousands of developers familiar with AWS concepts and APIs.&lt;br /&gt;&lt;br /&gt;Some of the proponents of OpenStack argue that because it's an open source community project it will win in the end. I disagree, the most successful open source projects I can think of have a strong individual leader who spends a lot of time saying no to keep the project on track. Some of the least successful are large multi-vendor industry consortiums.&lt;br /&gt;&lt;br /&gt;The analogy that seems to fit is Apple's iOS vs. Google's Android in the smartphone market. The parts of the analogy that resonate with me are that Apple came out first and dominates the market, taking most of the profit and forcing it's competitors to try and band together to compete, changing the rules of the game and creating new products like the iPad that leave their competition floundering. By adding together all the incompatible fragmented Android market together it's possible to claim that Android is selling in a similar volume to iPhone. However it's far harder for developers to build Android apps that work on all devices, and then they usually make much less money from them. Apple and it's ecosystem is dominant, growing fast, and extremely profitable.&lt;br /&gt;&lt;br /&gt;In the cloud space, OpenStack appears to be the consortium of people who can't figure out how to compete with AWS on their own. AWS is dominant, growing its feature set and installed capacity very fast. Every month that passes, AWS is refining and extending it's products to meet real customer needs. Measured by the reserved IP address ranges used by its instances AWS has more than doubled in the last year and now has over 800,000 IP addresses assigned to its regions worldwide. &lt;br /&gt;&lt;br /&gt;The problem with a consortium is that it is hard to get it to agree on anything, and Brooks law applies (The Mythical Man-Month - adding resources to a late software project makes it later). While it seems obvious that adding more members to OpenStack is a good thing, in practice, it will slow the project down. I was once told that the way to kill a standards body or consortium is to keep inviting new people to join and adding to its scope. With the huge diversity of datacenter hardware and many vendors with a lot to lose if they get sidelined I expect OpenStack to fracture into multiple vendor specific "stacks" with narrow test matrixes and extended features that lock customers in and don't interoperate well. &lt;br /&gt;&lt;br /&gt;I come to use clouds, because I work for a developer oriented company that has decided that building and running infrastructure on a global scale is undifferentiated heavy lifting, and we can leverage outside investment from AWS and others to do a better job than we could do ourselves, while we focus on the real job of developing global streaming to TVs.&lt;br /&gt;&lt;br /&gt;Operations oriented companies tend to focus on costs and ways to control their developers. They want to build clouds, and may use OpenStack, but their developers aren't going to wait, they may be allowed to use AWS "just for development and testing" but when the time comes to deploy on OpenStack, it's lack of features is going to add a significant burden of complexity to the development team. OpenStack's lack of scale and immaturity compared to AWS is also going to make it harder to deploy products. I predict that the best developers will get frustrated and leave to work at places like Netflix (hint, we're hiring).&lt;br /&gt;&lt;br /&gt;I haven't yet seen a viable alternative to AWS, but that doesn't mean I don't want to see one. My guess is that in about two to three years from now there may be a credible alternative. Netflix has already spent a lot of time helping AWS scale as we figured out our architecture, we don't want to do that again, so I'm also waiting for someone else (another large end-user) to kick the tires and prove that an alternative works.&lt;br /&gt;&lt;br /&gt;Here's my recipe for a credible alternative that we could use:&lt;br /&gt;&lt;br /&gt;AWS has too many features to list, we use almost all of them, because they were all built to solve real customer problems and make life easier for developers. The last slide of my recent cloud presentations at &lt;a href="http://slideshare.net/adrianco"&gt;http://slideshare.net/adrianco&lt;/a&gt; contains a partial list as a terminology glossary. AWS is adding entirely new capabilities and additional detailed features every month, so this is a moving target that is accelerating fast away from the competition...&lt;br /&gt;&lt;br /&gt;From a scale point of view Netflix has several thousand instances organized into hundreds of different instance types (services), and routinely allocates and deallocates over a thousand new instances each day as we autoscale to the traffic load and push new code. Often a few hundred instances are created in a few minutes. Some other cloud vendors we have talked to consider a hundred instances a large customer, and their biggest instances are too small for us to use. We mostly use m2.4xl and we need the 68GB RAM for memcached, Cassandra or our very large Java applications, so a 15GB max doesn't work.&lt;br /&gt;&lt;br /&gt;In summary, although the CDN space is already a commodity with multiple interchangeable vendors, we are several years from having multiple cloud vendors that have enough features and scale to be interchangeable. The developer ecosystem around AWS concepts and APIs is dominant, so I don't see any value in alternative concepts and APIs, please try to build AWS clones that scale. Good luck :-)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7739586210783396655?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7739586210783396655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/08/i-come-to-use-clouds-not-to-build-them.html#comment-form' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7739586210783396655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7739586210783396655'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/08/i-come-to-use-clouds-not-to-build-them.html' title='I come to use clouds, not to build them...'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-47462269485445836</id><published>2011-03-18T21:41:00.000-07:00</published><updated>2011-03-19T16:12:43.998-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EBS'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>Understanding and using Amazon EBS - Elastic Block Store</title><content type='html'>There has been a lot of discussion in the last few days about EBS &lt;a href="http://blog.reddit.com/2011/03/why-reddit-was-down-for-6-of-last-24.html"&gt;since it was implicated in a long outage at reddit.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Rule of Thumb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The benchmarking Netflix did when we started on AWS highlighted some inconsistent behavior in EBS. The conclusion we reached is a rule of thumb for EBS - If you sustain less than 100 iops (input+output per second) long term average it works fine. Short term bursts can be 1000 iops. By short term I mean less than a minute, long term more than 10 minutes. YMMV.&lt;br /&gt;&lt;br /&gt;If you are doing benchmarks like this, collect response time and throughput and plot your data over time. You need to run long enough that the performance shows steady state behavior. The problem with EBS is that it doesn't have a particularly steady state. To explain why we need to look at the underlying architecture. I don't know the details of how EBS is implemented, but there is enough information available to explain how it behaves.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EC2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The AWS EC2 architecture is built out of commodity low cost servers, they have a single 1 Gbit network, a few CPUs, a few disks and a few GBytes of RAM. Over time the models have changed, and EC2 does have a 10Gbit network option now, but for the purposes of this discussion, we will concentrate on the 1Gbit network models. Individual servers are virtualized into the familiar EC2 models by slicing up the RAM, CPUs and disk space, and sharing the network bandwidth and disk iops. When EC2 instances break or are de-configured any data on the internal disks is lost.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Elastic Block Store&lt;/span&gt; &lt;a href="http://aws.amazon.com/ebs/"&gt;http://aws.amazon.com/ebs/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The AWS EBS service provides a reliable place to store data that doesn't go away when EC2 instances are dropped, but it provides the same mounted filesystem capability as the internal disks. If you need more disk space or iops you can mount more EBS volumes on a single EC2 instance and spread out the load. The EBS volume is connected to the EC2 instance over the same 1Gbit network as everything else. In a datacenter this would normally be built using commercially available high end storage from NetApp, EMC or whoever, it would be quite expensive (cost much more than the EC2 instance itself) and be fast and reliable up to the limits of the network. To build a low cost cloud, the alternative is to use RAIN (Redundant Array of Inexpensive Nodes) which could be based on standard EC2 instances, or variants that have more disks per CPU. Software is then used to coordinate the RAIN systems and provide an EBS service that will be slower than high end storage, but still be very reliable and be limited by the 1Gbit network.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;S3 and Availability Zones&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;AWS also has an S3 storage service that behaves like a key/value store accessed via http requests and a REST API rather than a directly mounted filesystem. It is possible to rapidly snapshot an EBS volume to and from S3, including incremental backups and restores that fill as they go so you don't have to wait before using them. This implies to me that they share a common back-end infrastructure to some extent. The primary additional difference is that EBS volumes only exist in a single AWS Availability Zone, and S3 data is replicated across two or three Availability Zones. It takes longer to replicate the data for S3, so it is slower, but it is very robust and it is almost impossible to lose data. You can think of an Availability Zone as a complete datacenter. All the zones in a region are separate datacenters that are close enough together to support a high bandwidth and low latency network between them, but they have separate power sources and connections to the Internet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Multi-Tenancy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The most efficient chunk of compute and storage resource to buy and deploy when building a cloud is either too big or too small for the actual use cases of real applications. Virtualization is used to sub-divide the chunks, but then each individual machine is supporting several independent tenants. For local disks, the space is divided between the tenants, and for network, everyone is sharing the same 1Gbit interface. This works well on average, because most use cases aren't network or disk bound, but you cannot control who you are sharing with and some of the time you will be impacted by the other tenants, increasing variance within each EC2 instance. You can minimize the variance by running on the biggest instance type, e.g. m1.xlarge, or m2.4xlarge. In this case there isn't room for another big tenant, so you get as much as possible of the disk space and network bandwidth to yourself. The virtualization layer reserves some of the capacity. It's possible to tell that another tenant is keeping the CPU busy by looking at the "stolen time", but there are no metrics for stolen iops or network bandwidth.&lt;br /&gt;&lt;br /&gt;The EBS service is also multi-tenant. Many clients mount disk space from a common backend pool of EBS disks. You don't get to see how the disk space is allocated, or how data is replicated over more than one disk or instance for durability, but it is limited to that availability zone. A busy client can slow down other clients that share the same EBS service resources. EBS volumes are between 1GB and 1TB in size. If you allocate a 1TB volume, you reduce the amount of multi-tenant sharing that is going on for the resources you use, and you get more consistent performance. Netflix uses this technique, our high traffic EBS volumes are mostly 1TB, although we don't need that much space.&lt;br /&gt;&lt;br /&gt;This is actually no different in principle to large shared storage area network (SAN) backends (from companies like EMC or NetApp) that are in common datacenter use. Those also have unpredictable performance when pushed hard, and they mask this issue with lots of battery backed memory. The difference is cost. EBS is 10c per Gbyte per month. If you build a competing public cloud service using high end storage, you could get better performance but your cost base would be far higher.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Visualizing Multi-Tenant Disk Access&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have come up with some diagrams to help show what happens. I'm basing them on a simplified view of AWS where the only instance type family is m1 and everything they have is made out of one underlying building block. This consists of a fairly old specification system, 8 cores, 16GB RAM, four 500GB disks and a single 1Gbit network. In reality, AWS is much more complex than this, but the principles are the same.&lt;br /&gt;&lt;br /&gt;Starting with internal disks, this is what an m1.xlarge looks like, it takes up the whole system apart from a small amount of memory, disk space and network traffic for the VM and AWS configuration/management information. You can expect to have minimal multi-tenant contention for network or disk access.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-SUw1WHvboBw/TYUeVx-M9vI/AAAAAAAAAT4/dj72tVE1RlQ/s1600/Slide1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 480px; height: 360px;" src="http://3.bp.blogspot.com/-SUw1WHvboBw/TYUeVx-M9vI/AAAAAAAAAT4/dj72tVE1RlQ/s320/Slide1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5585904272363288306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The m1.large instance type halves the system, each instance has two disks rather than four, so it shares the network and some of the disk controller bandwidth, but it should have minimal iops contention with the other tenant.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-tnCWpR2tgTI/TYUeOLEioAI/AAAAAAAAATw/ZuBeefPP__0/s1600/Slide2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 480px; height: 360px;" src="http://2.bp.blogspot.com/-tnCWpR2tgTI/TYUeOLEioAI/AAAAAAAAATw/ZuBeefPP__0/s320/Slide2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5585904141661806594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The low cost m1.small instance type has 160GB of disk per instance, so we can fit three per disk for a total of 12 instances per machine. (Note that the memory for a real m1.small is 1.7GB, so only 9 would fit in 16GB RAM, however the c1.medium instance has 1.7GB, 350GB disk, and more CPU, so six m1.small and three c1.medium fits). You can see the multi-tenancy problem here, any of the instances could generate enough traffic to fill the network and make one of the disks busy, and that is going to affect other instances in an unpredictable and random manner.&lt;br /&gt;&lt;br /&gt;Here's an analogy, you can rent a whole house, rent a room in a house, or rent a couch to sleep on, you get what you pay for.&lt;br /&gt;&lt;br /&gt;If you ever see public benchmarks of AWS that only use m1.small, they are useless, it shows that the people running the benchmark either didn't know what they were doing or are deliberately trying to make some other system look better. You cannot expect to get consistent measurements of a system that has a very high probability of multi-tenant interference.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-aU8XkSzlrWE/TYUeOC6ogiI/AAAAAAAAATo/TANJjyuL8Co/s1600/Slide3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 480px; height: 360px;" src="http://4.bp.blogspot.com/-aU8XkSzlrWE/TYUeOC6ogiI/AAAAAAAAATo/TANJjyuL8Co/s320/Slide3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5585904139472765474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EBS Multi-Tenancy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The next few diagrams show the flow of traffic from an instance to the EBS service, which makes two copies of the data on disks connected to separate instances. I don't know if this is how EBS works, but if we wanted to build an EBS-like system using the same building block it could look like this. In practice it would make sense to have specialized back-end building blocks with much more disk space.&lt;br /&gt;&lt;br /&gt;The first diagram shows how Netflix runs EBS, we start with an instance that has the maximum network bandwidth with no other tenants, we allocate maximum size 1TB volumes (we stripe many of them together) and the service has to use most of the disk space in the back-end to support us, so we have less chance of another tenant making the EBS disks busy. The performance of EBS in this simplified case would be higher latency than local disk, but otherwise similar. I suspect that in reality the EBS volume is spread over more disks in the backend which gives higher throughput but with higher variance.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-0F_r1xRgA14/TYUeNxj6QsI/AAAAAAAAATg/rNGCzlyj-0Q/s1600/Slide4.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 480px; height: 360px;" src="http://1.bp.blogspot.com/-0F_r1xRgA14/TYUeNxj6QsI/AAAAAAAAATg/rNGCzlyj-0Q/s320/Slide4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5585904134814057154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If we drop down to a more typical m1.large configuration with 100GB of EBS each, two instances are sharing network bandwidth, the EBS service is servicing two sets of requests, and the EBS back end has many more tenants per disk, so we would expect better peak performance than the two internal disks in the m1.large but more variance.&lt;br /&gt; &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-DGWSyqNNHjU/TYUeN7UsUkI/AAAAAAAAATY/cDKQHbvo-6o/s1600/Slide5.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 480px; height: 360px;" src="http://3.bp.blogspot.com/-DGWSyqNNHjU/TYUeN7UsUkI/AAAAAAAAATY/cDKQHbvo-6o/s320/Slide5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5585904137434583618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the case where we have many m1.small instances each accessing a 10GB EBS volume, it is clear that the peak performance is going to be far better than a share of a local disk, but the contention for network, EBS service and backend disks will be extremely variable, so performance will be very inconsistent.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-5DtUAFhdvpQ/TYUeNio-EUI/AAAAAAAAATQ/zCfMDMp93pQ/s1600/Slide6.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 480px; height: 360px;" src="http://4.bp.blogspot.com/-5DtUAFhdvpQ/TYUeNio-EUI/AAAAAAAAATQ/zCfMDMp93pQ/s320/Slide6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5585904130808746306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How To Measure Disk and Network Performance&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Someone should write a book on that (I already did, but for Solaris), however &lt;a href="https://forums.aws.amazon.com/thread.jspa?messageID=124044#124044"&gt;there is a useful AWS forum post&lt;/a&gt; that explains how to interpret Linux iostat. This blog post is too long already, so Linux iostat will have to wait for another time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Best Practices for Cloud Storage with Cassandra&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are two basic patterns for Cassandra, one is a persistent memory cache, where we size the data to fit in memory so that all reads are fast, and writes go to disk. The m2.4xl instance type with 68GB RAM and two 850GB disks is best. The second pattern is where there is a much larger data set than memory, and m1.xlarge with 16GB RAM and four 420GB disks will have the best iops for reads, and a much lower overall cost per GB for storage. In both cases, we get all the network bandwidth for servicing clients and the inter-node replication traffic, and minimal multi-tenant variance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-47462269485445836?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/47462269485445836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/03/understanding-and-using-amazon-ebs.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/47462269485445836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/47462269485445836'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/03/understanding-and-using-amazon-ebs.html' title='Understanding and using Amazon EBS - Elastic Block Store'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-SUw1WHvboBw/TYUeVx-M9vI/AAAAAAAAAT4/dj72tVE1RlQ/s72-c/Slide1.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3942689764539584907</id><published>2011-03-12T08:12:00.000-08:00</published><updated>2011-03-13T17:08:01.428-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>How not to build a Private Cloud</title><content type='html'>It's all $, FUD, and internal politics. An MBO Cloud is what you get when the CEO tells the CIO to "figure out that cloud thing" (Management By Objective - i.e. the CIO bonus depends on it).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;There is no technical reason for private cloud to exist.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;[update: to clarify, that doesn't mean that I'm against private clouds or don't think they exist, because $, FUD and internal politics are a fact of life that constrain what can be done. Change also takes time and you have to "go to war with the army you have". However, this post is about what happens if your organization reallocates the $, isn't afraid, and has effectively no internal politics getting in the way.&lt;br /&gt;&lt;br /&gt;This post was written in the middle of a debate on twitter between @adrianco @reillyusa @beaker and others including key insights from @swardley.&lt;br /&gt;&lt;br /&gt;You should also read Christian Reilly's follow-up post "The Hollywood Culture" &lt;a href="http://bit.ly/ePsisJ"&gt;http://bit.ly/ePsisJ&lt;/a&gt; and many thanks to @bernardgolden for pointing out the excellent Business Week cover story on Cloud Computing &lt;a href="http://ow.ly/4dm07"&gt;http://ow.ly/4dm07&lt;/a&gt; - after reading it I was amazed how well it aligned with what I write here - then I saw that it was by Ashlee Vance, one of the most clueful journalists around.&lt;br /&gt;&lt;br /&gt;Netflix ITops Security Architect Bill Burns also &lt;a href="http://x509v3.blogspot.com/2011/03/my-colleague-adrian-made-great-post.html"&gt;wrote a very interesting post&lt;/a&gt; on the security challenges of cloud, we've been working together and he's on the interview team for the "Global Cloud Security Architect" I mention below.]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Too big for public cloud? You should *be* a public cloud&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Organizations who run infrastructure at the scale of tens to hundreds of thousands of instances have created cloud based models and opened them up to other organizations as public clouds. Amazon, Google, Microsoft are the clearest examples, they have expertise in software architecture, which is why they dominate the API definition. Telcos and hosting companies are adopting this model to provide additional public cloud capacity, using clones and variants of the API. Other organizations at this scale are already figuring out how to expose their capacity to their customers, partners and supply chain. The task you take on is to simultaneously hire the best people to run your cloud (competing with Amazon, Google etc.), and run it at low cost, which is why you need to be at huge scale and you need to decide that running infrastructure is a core competency of your business. Netflix is too small, doesn't regard infrastructure as core, and doesn't want to hire a bunch of ITops people.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;It costs too much to port our apps? Your $ are mis-allocated.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;What does it cost to build a private cloud, and how long does it take, and how many consultants and top tier ITops staff do you have to hire? Sounds like a nice empire building opportunity for the CIO. The alternative is to allocate that money to the development organization, hire more developers and rewrite your legacy apps to run on the public cloud, and give the development VP the budget to run public cloud directly. The payback is more incremental and manageable, but this is effectively a re-org of your business to move a large chunk of budget and headcount around. This is what happened at Netflix. It probably takes an act-of-CEO at most companies, the barriers are mostly political. Yes it will take time, but so will bringing up a private cloud.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Replace your apps with Saas offerings.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Many internal apps can be replaced by cloud services, we just outsourced our internal help desk and incident management software. No-one I know does payroll in-house. This is uncontroversial and is happening.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;We can't put confidential data in a public cloud? This is just FUD.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The enterprise vendors are desperate to sell private clouds, so they are sowing this fear, uncertainty and doubt in their customer base to slow down adoption of public clouds. The reality is that many companies are already putting confidential data in public clouds. I asked the question "when will someone using PCI level 1 be in production on AWS" at a Cloud Connect panel, and was told that it is already being done, and Terremark pointed out that they host H&amp;amp;R Block's tax business. There are several models of public cloud with different SLA, cost and operational models that can support confidential data securely. There is also an argument that datacenter security is not as strong as people would like to think, and that the large cloud vendors can do a better job than most enterprises at keeping the infrastructure secure. At Netflix, we are about to transition to a global cloud based business, we are currently hiring a "Cloud Security Architect" who understands compliance rules like PCI (the credit card standard) on a global basis (we didn't need global expertise before). Part of their job is going to be to implement this.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;There is no way my execs will sign off on this! Do they care about being competitive?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The biggest champion at Netflix for doing public cloud and doing it "properly" with an optimized architecture was our CEO Reed Hastings. He personally argued that we should try to do NoSQL rather than MySQL to push the envelope. Why? Because the bigger risk for Netflix was that we wouldn't scale and have the agility to compete. He was right, we have grown faster than our ability to build datacenters, and we have the agility we need to outrun our competition.  Netflix has never had a CIO in the first place, we do have an excellent VP of operations though, and there is plenty to do running the CDN's and Saas vendors that support Enterprise IT.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Will private clouds be successful? I think there will be a few train wrecks.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The train wrecks will come as ITops discover that it's much harder and more expensive than they thought, and takes a lot longer than expected to build a private cloud. Meanwhile their developer organization won't be waiting for them, and will increasingly turn to public clouds to get their jobs done. We could argue about definitions but there are private clouds that are effectively the back ends for specialized large scale ecosystems like engineering companies that have to interface to the things that build stuff, or operate in places where there is no effective connection into the public clouds. For example, on board a ship that has limited external bandwidth, or to support a third world construction project. My take is that these will be indistinguishable from specialized Saas offerings within a supply chain ecosystem.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How not to build a public cloud - The Netflix Way&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Re-org your company to give budget and headcount to the developers, let them run the public cloud operations&lt;br /&gt;Ignore the FUD, best practices and patterns for compliance and security already exist and are audit-able&lt;br /&gt;Get the CEO to give the CIO a different MBO, to shrink their datacenter.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good luck with that :-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3942689764539584907?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3942689764539584907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/03/how-not-to-build-private-cloud.html#comment-form' title='25 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3942689764539584907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3942689764539584907'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/03/how-not-to-build-private-cloud.html' title='How not to build a Private Cloud'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5234934211869238430</id><published>2011-03-02T09:04:00.000-08:00</published><updated>2011-03-02T09:08:25.504-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simpledb'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached'/><category scheme='http://www.blogger.com/atom/ns#' term='cassandra'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='membase'/><title type='text'>Maslow's Hierarchy of NoSQL Reads (and Writes)</title><content type='html'>I tried out Prezi to create this presentation, it was more fun to create than powerpoint but has a few limitations. I would like better drawing tools. The talk itself puts some of the main NoSQL solutions into context.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div class="prezi-player"&gt;&lt;style type="text/css" media="screen"&gt;.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }&lt;/style&gt;&lt;object id="prezi_veagqhsz38u8" name="prezi_veagqhsz38u8" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="550" height="400"&gt;&lt;param name="movie" value="http://prezi.com/bin/preziloader.swf"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="bgcolor" value="#ffffff"&gt;&lt;param name="flashvars" value="prezi_id=veagqhsz38u8&amp;amp;lock_to_path=0&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0"&gt;&lt;embed id="preziEmbed_veagqhsz38u8" name="preziEmbed_veagqhsz38u8" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="550" height="400" bgcolor="#ffffff" flashvars="prezi_id=veagqhsz38u8&amp;amp;lock_to_path=0&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="prezi-player-links"&gt;&lt;p&gt;&lt;a title="There are too many ways to read and write data, and polyglot persistence can get confusing, here is a guide to help..." href="http://prezi.com/veagqhsz38u8/nosql-maslows-hierarchy-of-reads-and-writes/"&gt;NoSQL - Maslow's Hierarchy of Reads (and Writes)&lt;/a&gt; on &lt;a href="http://prezi.com/"&gt;Prezi&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5234934211869238430?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5234934211869238430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/03/maslows-hierarchy-of-nosql-reads-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5234934211869238430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5234934211869238430'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/03/maslows-hierarchy-of-nosql-reads-and.html' title='Maslow&apos;s Hierarchy of NoSQL Reads (and Writes)'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1108591100461666071</id><published>2011-02-16T22:25:00.000-08:00</published><updated>2011-02-16T23:06:34.034-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Solar Power - More panels on the garage roof</title><content type='html'>&lt;div&gt;The SolarCity installation team arrives.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-0HWCwPL89eM/TVzD2-FjwhI/AAAAAAAAASs/HpXKIhZ1KHs/s1600/IMG_1225.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-0HWCwPL89eM/TVzD2-FjwhI/AAAAAAAAASs/HpXKIhZ1KHs/s320/IMG_1225.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5574545787924496914" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-0HWCwPL89eM/TVzD2-FjwhI/AAAAAAAAASs/HpXKIhZ1KHs/s1600/IMG_1225.jpg"&gt;&lt;/a&gt;Product specification on a panel, 210W peak output, Silicon by Kyocera made in Mexico.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-pnzDimFlNjU/TVzD2jcTBNI/AAAAAAAAASk/T-iC_FH69lA/s1600/IMG_1230.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://4.bp.blogspot.com/-pnzDimFlNjU/TVzD2jcTBNI/AAAAAAAAASk/T-iC_FH69lA/s320/IMG_1230.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5574545780772111570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fronius inverter installed inside the garage, wired to the distribution panel shown next to it.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-YZOcEL7zuXQ/TVzAECoMW4I/AAAAAAAAASU/SRtSHb5Sb5I/s1600/IMG_1238.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/-YZOcEL7zuXQ/TVzAECoMW4I/AAAAAAAAASU/SRtSHb5Sb5I/s320/IMG_1238.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5574541614435294082" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-YZOcEL7zuXQ/TVzAECoMW4I/AAAAAAAAASU/SRtSHb5Sb5I/s1600/IMG_1238.jpg"&gt;&lt;/a&gt;Mounting rails on the garage roof.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-FyD5NEPrjzE/TVzADicbIBI/AAAAAAAAASM/QaRmSDB5IiY/s1600/SANY1239.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://4.bp.blogspot.com/-FyD5NEPrjzE/TVzADicbIBI/AAAAAAAAASM/QaRmSDB5IiY/s320/SANY1239.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5574541605795995666" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-FyD5NEPrjzE/TVzADicbIBI/AAAAAAAAASM/QaRmSDB5IiY/s1600/SANY1239.jpg"&gt;&lt;/a&gt;Closeup of how the rails mount on the shingles.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-_7-R1zV4ITg/TVzADTh6TGI/AAAAAAAAASE/jsdXWSExEwc/s1600/SANY1241.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://2.bp.blogspot.com/-_7-R1zV4ITg/TVzADTh6TGI/AAAAAAAAASE/jsdXWSExEwc/s320/SANY1241.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5574541601792478306" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-_7-R1zV4ITg/TVzADTh6TGI/AAAAAAAAASE/jsdXWSExEwc/s1600/SANY1241.jpg"&gt;&lt;/a&gt;All the panels in place, four rows of nine panels, 36 x 210W = 7560W DC, after the inverter this works out to about 6.5KW delivered AC power.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-EC3DzudqVcc/TVzADLroN6I/AAAAAAAAAR8/XmTKbACyVRw/s1600/SANY1242.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://3.bp.blogspot.com/-EC3DzudqVcc/TVzADLroN6I/AAAAAAAAAR8/XmTKbACyVRw/s320/SANY1242.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5574541599685752738" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-EC3DzudqVcc/TVzADLroN6I/AAAAAAAAAR8/XmTKbACyVRw/s1600/SANY1242.jpg"&gt;&lt;/a&gt;View from the front of the garage early in the morning.&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-PJmOHM616Ko/TVzAEVzvnnI/AAAAAAAAASc/3sGktNeHOj4/s1600/IMG_1232.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/-PJmOHM616Ko/TVzAEVzvnnI/AAAAAAAAASc/3sGktNeHOj4/s320/IMG_1232.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5574541619584015986" style="cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's all wired in, we are waiting for inspection and approval before we can turn it on. The same monitoring system is used as was installed for my previous solar installation on the house roof. This time we leased the panels, there are several options, from no money down to buying the whole thing up front. I've opted for an initial payment of $10K, and $90/month fixed for the duration of the lease (20 years). I don't pay anything until its turned on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We currently generate about two thirds of our usage of electricity. The extra panels should triple the generated capacity, so we will generate about twice what we use in the short term. That evens out when we start charging a Nissan Leaf (delivery due in April), and change out our propane furnace for a heat pump and air conditioner (hopefully in time to cool us this summer).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A useful side effect is that the garage itself will be a lot cooler inside during the summer, as the panels shade the roof.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1108591100461666071?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1108591100461666071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2011/02/solar-power-more-panels-on-garage-roof.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1108591100461666071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1108591100461666071'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2011/02/solar-power-more-panels-on-garage-roof.html' title='Solar Power - More panels on the garage roof'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-0HWCwPL89eM/TVzD2-FjwhI/AAAAAAAAASs/HpXKIhZ1KHs/s72-c/IMG_1225.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5992125332054107131</id><published>2010-12-27T15:29:00.000-08:00</published><updated>2010-12-27T15:54:55.852-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='generac'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><category scheme='http://www.blogger.com/atom/ns#' term='SolarCity solar garage Nissan leaf fully charged heat pump'/><title type='text'>Solar Power - More panels and Nissan Leaf</title><content type='html'>Solar City will triple our solar power output in February, and we just ordered a Leaf, which they say is deliverable in the April-July timeframe.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We are adding 6.5KW of net delivered AC capacity (gross is about 7.5KW DC) to the garage roof. This time we are leasing it, and there are several options for how much downpayment vs. recurring payment to make.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There was a power cut last night for about two hours, and the automatic generator that runs off our propane tank kicked in after about 20 seconds. When the power came back, there wasn't a glitch, everything kept running. That was the first real test. We have a Generac 17KW unit that powers most of the house. With hindsight, it would have been better to get the 20KW generator that can power a whole 200Amp distribution panel rather than routing individual circuits. The extra cost would be offset by a simpler installation. We hope to replace the propane furnace with a heat pump at some point, then the generator will be the only thing running on propane, and since our solar system is grid-tied, it needs to work well to keep an all electric house going.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We were originally looking a geothermal heat pumps, but the extra cost of digging wells to get a more efficient heat pump is not cost effective versus adding extra solar panels to make up the difference. In climates where it is colder and there is less solar irradiance available, it makes more sense to use geothermal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;During 2010 we generated about 60% of the electricity we consumed, and also greatly reduced our propane consumption by switching appliances from propane to electric. In 2011 we should be almost 100% solar powered electric, and reduce our gasoline usage as well.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5992125332054107131?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5992125332054107131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/12/solar-power-more-panels-and-nissan-leaf.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5992125332054107131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5992125332054107131'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/12/solar-power-more-panels-and-nissan-leaf.html' title='Solar Power - More panels and Nissan Leaf'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5089683015699958384</id><published>2010-11-17T22:56:00.000-08:00</published><updated>2010-11-20T01:51:19.610-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='translattice'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>NoSQL Netflix Use Case Comparison for Translattice</title><content type='html'>&lt;div&gt;[There is some discussion of this posting with comments by Michael at&lt;a href="http://ask.slashdot.org/story/10/11/18/1947206/Horizontal-Scaling-of-SQL-Databases"&gt; Slashdot&lt;/a&gt;]&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Michael Lyle @mplyle CTO of &lt;a href="http://www.translattice.com/"&gt;Translattice&lt;/a&gt; kindly provided a set of answers that I have interspersed with the questions below. Translattice isn't technically a NoSQL system, but it isn't a conventional database either. It's a distributed relational SQL database that supports eventual consistency, as Michael puts it:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;These answers are for the Translattice Application Platform (TAP)'s database component. Unlike other stores that have answered this question set, TAP contains a relational database that scales out over identical nodes.  TAP further allows applications written to the J2EE platform to scale out across the same collection of nodes.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;The original set of questions are &lt;a href="http://perfcap.blogspot.com/2010/10/comparing-nosql-availability-models.html"&gt;posted here&lt;/a&gt;. Each respondent will get their own blog post with answers, when there are enough to be interesting, I will write some summary comparisons.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have answers or would like to suggest additional questions, comment here, tweet me @adrianco or blog it yourself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Use Case Scenario for Comparison Across NoSQL Contenders &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;While each NoSQL contender has different strengths and will be used for different things, we need a basis for comparison across them, so that we understand the differences in behavior. Here is a sample scenario that I am publishing to put to each vendor to get their answers and will post the results here. The example is non-trivial and is based on a simplified Netflix related scenario that is applicable to any web service that reliably collects data from users via an API. I assume that is running on AWS and use that terminology, but the concepts are generic.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;b&gt;Use Case&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;A TV based device calls the API to add a movie to its favorites list (like the Netflix instant queue, but I have simplified the concept here), then reads back the entire list to ensure it is showing the current state. The API does not use cookies, and the load balancer (Amazon Elastic Load Balancer) is round robin, so the second request goes to a different API server, that happens to be in a different Amazon Availability Zone, and needs to respond with the modified list.&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Favorites Storage&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;Favorites store is implemented using a NoSQL mechanism that persistently stores a single key=user value=movielist record on writes, and returns the movielist on reads.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 1: Availability Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;When an API reads and writes to a queue store using the NoSQL mechanism, is the traffic routing Availability Zone aware? Are reads satisfied locally, or spread over all zones, is the initial write local or spread over the zones, is the write replication zone aware so data is repl&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;icated to more than one zone?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;In the Translattice Application Platform, data in relational tables is transparently sharded behind the scenes by the data store. These shards are stored redundantly across the nodes.  Reads are satisfied with the most local copy of data available on the network, unless that resource is currently overloaded in which case the system may fall back to reads from more distant locations. &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;When it comes to writes, applications have the choice on the durability and isolation levels for changes.  Each transaction may be made in a fully synchronous, serializable isolation level, or may be made in a locked eventually consistent mode that provides ACID serializable semantics except that durability may be sacrificed if an availability zone fails.  A further asynchronous mode allows potentially conflicting changes to be made and allows a user-provided reconciliation function to decide which change "wins".  A final commit requires a majority of nodes storing a shard to be available; in the case of the fully synchronous mode this would delay or prevent the return of success if a critical subset of the cluster fails.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;Policy mechanisms in the system allow administrators to specify how physical and cloud database instances correspond to administratively-relevant zones.  An administrator can choose to require, for instance, that each piece of information is replicated to at least three database nodes across a total of two availability zones.  An administrator may also use these mechanisms to require that particular tables or portions of tables must or must not be stored in a given zone (for instance, to meet compliance or security requirements).  Within the constraints set by policy, the system tracks usage patterns and places information in the most efficient locations.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;i&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 2: Partitioned Behavior with Two Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;If the connection between two zones fails, and a partition occurs so that external traffic coming into and staying within a zone continues to work, but traffic between zones is lost, what happens? In particular, which of these outcomes does the NoSQL service support?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;one zone decides that it is still working for reads and writes but half the size, and the other zone decide it is offline&lt;/li&gt;&lt;li&gt;both zones continue to satisfy reads, but refuse writes until repaired&lt;/li&gt;&lt;li&gt;data that has a master copy in the good zone supports read and write, slave copies stop for both read and write&lt;/li&gt;&lt;li&gt;both zones continue to accept writes, and attempt to reconcile any inconsistency on repair&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; "&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;blockquote&gt;Assuming that the SQL transaction in question is running in the fully synchronous or eventually consistent locked mode, writes will only be allowed in one of the two zones. Reads will continue in both zones, but will only be able to satisfy requests for which at least one replica of the requested data exists in the local zone (policy can be specified to ensure that this is always the case).  In the eventually consistent mode, multiple partitioned portions of the system can accept writes and reconcile later.  Essentially, any of the above desired modes can be used on a transaction-by-transaction basis depending on application and performance requirements.&lt;/blockquote&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Question 3: Appending a movie to the favorites list&lt;/b&gt;&lt;/div&gt;If an update is performed by read-modify-write of the entire list, what mechanisms can be used to avoid race conditions? If multiple attribute/values are supported for a key, can an additional value be written directly without reading first? What limits exist on the size of the value or number of attribute/values, and are queries by attribute/value supported?&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;Because fully relational primitives are provided, there can easily be one row in the database per favorite.  Read-modify-write of the whole list is not required, and the only practical limits are application-defined.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;Any SQL queries are supported against the store, and are transformed by the query planner into an efficient plan to execute the query across the distributed system.  Of course, how efficient a query is to execute will depend on the structure of the data and the indexes that an administrator has created.  We think this allows for considerable flexibility and business agility as the exact access methods that will be used on the data do not need to be fully determined in advance.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;Question 4: Handling Silent Data Corruption&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;When the storage or network subsystem corrupts data without raising an error, does the NoSQL service detect and correct this? When is it detected and corrected, on write, on read or asynchronously?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;i&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Network activity is protected by cryptographic hash authentication, which provides integrity verification as a side benefit.  Distributed transactions also take place through a global consensus protocol that uses hashes to ensure that checkpoints are in a consistent state (this is also how the system maintains transactional integrity and consistency when changes cross many shards).  Significant portions of the on-disk data are also presently protected by checksums and allow the database to "fail" a disk if corrupt data is read.&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 5: Backup and Restore&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Without stopping incoming requests, how can a point in time backup of the entire dataset be performed? What is the performance and availability impact during the backup? For cases such as roll-back after a buggy application code push, how is a known good version of the dataset restored, how is it made consistent, and what is the performance and availability impact during the restore? Are there any scalability limits on the backed up dataset size, what's the biggest you have seen?&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  border-collapse: collapse; font-family:arial, sans-serif;font-size:13px;"&gt;&lt;div&gt;&lt;/div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;blockquote&gt;A good portion of this relational database's consistency model is implemented through a distributed multi-version concurrency control (MVCC) system.  Tuples that are in-use are preserved as the database autovacuum process will not remove tuples until it is guaranteed that no one could be looking at them anymore.  This allows a consistent version of the tables as of a point in time to be viewed from within a transaction; so BEGIN TRANSACTION; SELECT ... [or COPY FROM, to backup] ; COMMIT; works.  We provide mechanisms to allow database dumps to occur via this type of mechanism.&lt;br /&gt;In the future we are likely to use this mechanism to allow quick snapshots of the entire database and rollbacks to previous snapshot versions (as well as to allow the use of snapshots to stage development versions of application code without affecting production state).&lt;/blockquote&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;i&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5089683015699958384?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5089683015699958384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/11/nosql-netflix-use-case-comparison-for_17.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5089683015699958384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5089683015699958384'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/11/nosql-netflix-use-case-comparison-for_17.html' title='NoSQL Netflix Use Case Comparison for Translattice'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5199556707999819713</id><published>2010-11-09T09:36:00.000-08:00</published><updated>2010-11-09T09:55:46.524-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='riak'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>NoSQL Netflix Use Case Comparison for Riak</title><content type='html'>&lt;div&gt;Justin Sheehy @justinsheehy of Basho kindly provided a set of answers that I have interspersed with the questions below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The original set of questions are &lt;a href="http://perfcap.blogspot.com/2010/10/comparing-nosql-availability-models.html"&gt;posted here&lt;/a&gt;. Each NoSQL contender will get their own blog post with answers, when there are enough to be interesting, I will write some summary comparisons.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have answers or would like to suggest additional questions, comment here, tweet me @adrianco or blog it yourself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Use Case Scenario for Comparison Across NoSQL Contenders &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;While each NoSQL contender has different strengths and will be used for different things, we need a basis for comparison across them, so that we understand the differences in behavior. Here is a sample scenario that I am publishing to put to each vendor to get their answers and will post the results here. The example is non-trivial and is based on a simplified Netflix related scenario that is applicable to any web service that reliably collects data from users via an API. I assume that is running on AWS and use that terminology, but the concepts are generic.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;b&gt;Use Case&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;A TV based device calls the API to add a movie to its favorites list (like the Netflix instant queue, but I have simplified the concept here), then reads back the entire list to ensure it is showing the current state. The API does not use cookies, and the load balancer (Amazon Elastic Load Balancer) is round robin, so the second request goes to a different API server, that happens to be in a different Amazon Availability Zone, and needs to respond with the modified list.&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Favorites Storage&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;Favorites store is implemented using a NoSQL mechanism that persistently stores a single key=user value=movielist record on writes, and returns the movielist on reads.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 1: Availability Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;When an API reads and writes to a queue store using the NoSQL mechanism, is the traffic routing Availability Zone aware? Are reads satisfied locally, or spread over all zones, is the initial write local or spread over the zones, is the write replication zone aware so data is repl&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;icated to more than one zone?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;There are two possibilities with Riak.  The first would be to spread a &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;single Riak cluster across all three zones, for example one node in &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;each of three zones.  In this case, a single replica of each item &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;would exist in each zone.  Whether or not a response needed to wait on &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;cross-zone traffic to complete would depend on the consistency level &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;in the individual request.  The second option would require Riak &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;EnterpriseDS, and involves placing a complete cluster in each zone and &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;configuring them to perform inter-cluster replication.  This has &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;multiple advantages.  Every request would be satisfied entirely &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;locally, and would be independent of latency or availability &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;characteristics across zone boundaries.  Another benefit is that &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;(unlike either the first scenario or some other solutions that spread &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;clusters and quorums over a long haul) read requests would not &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;generate any cross-zone traffic at all.  For an application with a &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;high percentage of reads, this can make a large difference.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;i&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 2: Partitioned Behavior with Two Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;If the connection between two zones fails, and a partition occurs so that external traffic coming into and staying within a zone continues to work, but traffic between zones is lost, what happens? In particular, which of these outcomes does the NoSQL service support?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;one zone decides that it is still working for reads and writes but half the size, and the other zone decide it is offline&lt;/li&gt;&lt;li&gt;both zones continue to satisfy reads, but refuse writes until repaired&lt;/li&gt;&lt;li&gt;data that has a master copy in the good zone supports read and write, slave copies stop for both read and write&lt;/li&gt;&lt;li&gt;both zones continue to accept writes, and attempt to reconcile any inconsistency on repair&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;As write-availability is a central goal achieved in Riak, the fourth &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;option will be the observed behavior.  This is the case regardless of &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;the strategy chosen for Question 1.  In the first strategy, local &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;nodes other than the canonical homes for given data will accept the &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;writes instead, using the hinted-handoff technique.  In the second &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;strategy, the local cluster will accept the write, those changes will &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;be replayed across the replication link when the zones are &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;reconnected.  In all cases, vector clocks provide a clean way of &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;resolving most inconsistency, and various reconciliation models are &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;available to the user for those cases which cannot be syntactically &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;resolved.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;For more information on vector clocks in Riak, see:&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; color:#1738f5;"&gt;&lt;span style="text-decoration: underline"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://blog.basho.com/2010/01/29/why-vector-clocks-are-easy/&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;and&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; color:#1738f5;"&gt;&lt;span style="text-decoration: underline"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;http://blog.basho.com/2010/04/05/why-vector-clocks-are-hard/&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p  style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; color:#1738f5;"&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p color="#1738f5" style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; "&gt;&lt;span style="text-decoration: underline"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Question 3: Appending a movie to the favorites list&lt;/b&gt;&lt;/div&gt;If an update is performed by read-modify-write of the entire list, what mechanisms can be used to avoid race conditions? If multiple attribute/values are supported for a key, can an additional value be written directly without reading first? What limits exist on the size of the value or number of attribute/values, and are queries by attribute/value supported?&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;Riak will use vector clocks to recognize causality in race conditions. &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;In the case of two overlapping writes to the same value, Riak will &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;retain both unless explicitly requested to simply overwrite with the &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;last value received.  If one client changes A to B and another changes &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;A to C, then (unless told to overwrite) Riak will return both B and C &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;to the client.  When that client then modifies the object again, the &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;single descendant "D" that they created will be the new value.  For &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;applications such as sets which are mostly added to and rarely deleted &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;from, the application code to perform this reconciliation is trivial &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;and in some cases is simply a set union operation.  This would look a &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-family:'times new roman';"&gt;&lt;i&gt;bit like this in terms of vector clock ancestry:&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; color:#1738f5;"&gt;&lt;span style="text-decoration: underline"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;http://dl.dropbox.com/u/751099/ndiag1.png&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dl.dropbox.com/u/751099/ndiag1.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 445px; height: 365px;" src="http://dl.dropbox.com/u/751099/ndiag1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;Riak allows values to be of any arbitrary content type, but if the &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;content is in JSON then a JavaScript map/reduce request can be used to &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;query by attribute/value.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Question 4: Handling Silent Data Corruption&lt;/b&gt;&lt;/div&gt;&lt;div&gt;When the storage or network subsystem corrupts data without raising an error, does the NoSQL service detect and correct this? When is it detected and corrected, on write, on read or asynchronously?&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;Many layers of Riak perform consistency checking, including CRC &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;checking in the persistence engine and object equality in the &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;distributed state machines handling requests.  In most cases where &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;corruption can be detected in a given replica of some item, that &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;replica will immediately but asynchronously be fixed via read-repair.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 5: Backup and Restore&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Without stopping incoming requests, how can a point in time backup of the entire dataset be performed? What is the performance and availability impact during the backup? For cases such as roll-back after a buggy application code push, how is a known good version of the dataset restored, how is it made consistent, and what is the performance and availability impact during the restore? Are there any scalability limits on the backed up dataset size, what's the biggest you have seen?&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;There are two approaches to back up Riak systems: per-node or &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;whole-cluster.  Backing up per-node is the easiest option for many &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;people, and is quite simple.  Due to bitcask (the default storage &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;engine) performing writes in an append-only fashion and never &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;re-opening any file for writing once closed, Riak nodes can easily be &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;backed up via the filesystem backup method of your choice.  Simply &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;replacing the content of the data directory will reset a node's stored &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;content to what it held at the time.  Alternately, a command line &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;backup command is available which will write out a backup of all data &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;on the cluster.  This is fairly network and disk intensive and &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;requires somewhere to put a whole-cluster backup, but is very useful &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;for prototyping situations which are not holding enormous amounts of &lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'times new roman'; "&gt;&lt;i&gt;data.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;i&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5199556707999819713?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5199556707999819713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/11/nosql-netflix-use-case-comparison-for.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5199556707999819713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5199556707999819713'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/11/nosql-netflix-use-case-comparison-for.html' title='NoSQL Netflix Use Case Comparison for Riak'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7886925817698399011</id><published>2010-11-01T15:21:00.000-07:00</published><updated>2010-11-01T20:30:32.043-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='ebay'/><category scheme='http://www.blogger.com/atom/ns#' term='spotcloud'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='grid'/><title type='text'>Are we ready for spotcloud yet?</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Launched today by Enomaly (@ruv) &lt;/span&gt;&lt;a href="http://spotcloud.com/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Spotcloud&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; is a "Cloud Capacity Clearinghouse and Marketplace". There was a lot of discussion on twitter about whether this is really new, and previous attempts to do something similar.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;My background in this is that I was working at Sun in 2003/2004 when we were thinking about a marketplace for public grid computing capacity, I was chief architect for Shahin Khan's High Performance Technical Computing group at the time, and we "owned" Grid for Sun. We were both RIFd in the summer of 2004, but some of our projects stayed alive, and @ruv &lt;a href="http://www.elasticvapor.com/2009/01/case-against-commodity-cloud-exchange.html"&gt;mentioned some of these ideas from Sun surfacing in 2005&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I moved to eBay, and one idea that I tried to get eBay interested in at the time was building a marketplace for compute capacity. The problem was that eBay is a retail product focused company, and had no product managers looking at digitally delivered products. I couldn't find a marketplace manager who understood what I was proposing and thought it might be worth working on. In practice, it was too early, but Amazon had the vision to build a cloud at this time, and eBay could have done the same if it wanted to create a market, rather than make existing markets more efficient.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;In 2006 (while I was working at eBay Research Labs) I wrote &lt;/span&gt;&lt;a href="http://perfcap.blogspot.com/2006/06/part-3-disruptive-innovation-viewed-as.html"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;a blog post about a maturity model for innovation&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;. The key point is:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(41, 48, 59); font-family:Georgia, 'Times New Roman', sans-serif;"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"the evolution of a marketplace goes from competing on the basis of technology, to competing on service, to competing as a utility, to competing for free. In each step of the evolution, competitors shake out over time and a dominant brand emerges.&lt;br /&gt;&lt;br /&gt;To use this as a maturity model, take a market and figure out whether the primary competition is on the basis of technology, service, utility or search"&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(41, 48, 59); font-family:Georgia, 'Times New Roman', sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Today the cloud marketplace is somewhere between the service and utility phases. Each individual cloud has their own specific services and service interfaces, and they have not turned into a standard commodity yet, so we do not have the basis for competition purely on the basis of a Utility (i.e. on service quality - uptime, not on service features).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(41, 48, 59); font-family:Georgia, 'Times New Roman', sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(41, 48, 59); font-family:Georgia, 'Times New Roman', sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;From this point of view, it is still too early for Spotcloud to take off. Cloud's problem is not "finding generic capacity at low cost" (the cloud utility search problem), the cloud marketplace is still evolving it's differentiated service interfaces towards a common set of functionality and standards. Spotcloud is starting out based on Enomaly's interfaces, and say they will add others, while the market leader is Amazon, who have already &lt;a href="http://aws.amazon.com/ec2/spot-instances/"&gt;implemented their own spot pricing model&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, 'Times New Roman', sans-serif;color:#29303B;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Georgia, 'Times New Roman', sans-serif;color:#29303B;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;One thing I did learn at eBay, is how hard it is to manage marketplaces. One unfortunate measure of success is that it attracts people whose aim is to make money by manipulating the market rather than contributing to it. There are a lot of non-intuitive details that you have to get right for a marketplace to scale and be robust enough to build and maintain trust, while also having very low "friction" so that it attracts and retains buyers and sellers.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(41, 48, 59); font-family:Georgia, 'Times New Roman', sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(41, 48, 59); font-family:Georgia, 'Times New Roman', sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;So one way to tell that the marketplace for cloud capacity is viable is when you see eBay entering that marketplace :-)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(41, 48, 59); font-family:Georgia, 'Times New Roman', sans-serif;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7886925817698399011?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7886925817698399011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/11/are-we-ready-for-spotcloud-yet.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7886925817698399011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7886925817698399011'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/11/are-we-ready-for-spotcloud-yet.html' title='Are we ready for spotcloud yet?'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4142906401694795007</id><published>2010-10-31T11:09:00.000-07:00</published><updated>2010-10-31T11:46:19.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='mongodb'/><title type='text'>NoSQL Netflix Use Case Comparison for MongoDB</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Roger Bodamer @rogerb from &lt;/span&gt;&lt;a href="http://www.10gen.com/"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;10gen.com&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; kindly provided a set of answers for MongoDB  that I have interspersed with the questions below. The original set of questions &lt;/span&gt;&lt;a href="http://perfcap.blogspot.com/2010/10/comparing-nosql-availability-models.html"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;are posted here&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;. Each NoSQL contender will get their own blog post with answers, when there are enough to be interesting, I will write some summary comparisons. If you have answers or would like to suggest additional questions, comment here, tweet me @adrianco or blog it yourself.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Use Case Scenario for Comparison Across NoSQL Contenders &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;While each NoSQL contender has different strengths and will be used for different things, we need a basis for comparison across them, so that we understand the differences in behavior. Here is a sample scenario that I am publishing to put to each vendor to get their answers and will post the results here. The example is non-trivial and is based on a simplified Netflix related scenario that is applicable to any web service that reliably collects data from users via an API. I assume that is running on AWS and use that terminology, but the concepts are generic.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Use Case&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;A TV based device calls the API to add a movie to its favorites list (like the Netflix instant queue, but I have simplified the concept here), then reads back the entire list to ensure it is showing the current state. The API does not use cookies, and the load balancer (Amazon Elastic Load Balancer) is round robin, so the second request goes to a different API server, that happens to be in a different Amazon Availability Zone, and needs to respond with the modified list.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Favorites Storage&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Favorites store is implemented using a NoSQL mechanism that persistently stores a single key=user value=movielist record on writes, and returns the movielist on reads.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Question 1: Availability Zones&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;When an API reads and writes to a queue store using the NoSQL mechanism, is the traffic routing Availability Zone aware? Are reads satisfied locally, or spread over all zones, is the initial write local or spread over the zones, is the write replication zone aware so data is replicated to more than one zone?&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Let's assume for discussion purposes that we are using MongoDB across &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;three availability zones in a region.  We would have a replica set &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;member in each of the three zones.  One member will be elected primary &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;at a given point in time.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;All writes will be sent to the primary, and then propagate to &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;secondaries from there.  Thus, writes are often inter-zone.  However &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;availability zones are fairly low latency (I assume the context here &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;is EC2).&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Reads can be either to the primary, if immediate/strong consistency &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;semantics are desired, or to the local zone member, if eventually &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;consistent read semantics are acceptable.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Question 2: Partitioned Behavior with Two Zones&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;If the connection between two zones fails, and a partition occurs so that external traffic coming into and staying within a zone continues to work, but traffic between zones is lost, what happens? In particular, which of these outcomes does the NoSQL service support?&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;one zone decides that it is still working for reads and writes but half the size, and the other zone decide it is offline&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;both zones continue to satisfy reads, but refuse writes until repaired&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;data that has a master copy in the good zone supports read and write, slave copies stop for both read and write&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;both zones continue to accept writes, and attempt to reconcile any inconsistency on repair&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;Let's assume again we are using three zones - we could use two but three is more interesting.  To be primary in a replica set, the primary must be visible to a majority of the members of the set: in this case, two thirds of the members, or two thirds of the zones.  If one zone is partitioned from the other two, what will happen is: a member in the 2 zone side of the partition will become primary, if not already.  It will be available for reads and writes.&lt;br /&gt;&lt;br /&gt;The minority partition will not service writes.  Eventually consistent reads are still possible in the minority partition.&lt;br /&gt;&lt;br /&gt;Once the partition heals, the servers automatically reconcile.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Replica+Set+Design+Concepts"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt; http://www.mongodb.org/display/DOCS/Replica+Set+Design+Concepts&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-style: normal; font-weight: 800;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Question 3: Appending a movie to the favorites list&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;If an update is performed by read-modify-write of the entire list, what mechanisms can be used to avoid race conditions?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal Consolas; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal Consolas; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;MongoDB supports atomic operations on single documents via both its $ &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;operators ($set, $inc) and also by compare-and-swap operations.  In &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;MongoDB one could model the list as a document per favorite, or, put &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;all the favorites in a single BSON object.  In both cases atomic &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;operations free of race conditions are possible. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: rgb(23, 56, 245); "&gt;&lt;span style="text-decoration: underline; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Atomic+Operations"&gt;http://www.mongodb.org/display/DOCS/Atomic+Operations&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal Consolas; min-height: 15px; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal Consolas; min-height: 15px; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;This is why mongodb elects a node primary: to facilitate these &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;atomic operations for use cases where these semantics are required.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 13px/normal Consolas; "&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;If multiple attribute/values are supported for a key, can an additional value be written directly without reading first? &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:Consolas;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Yes.&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;What limits exist on the size of the value or number of attribute/values?&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;span class="Apple-style-span" style=" font-style: normal;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;A single BSON document must be under the limit -- currently that &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;limit is 8MB.  If larger than this, one should consider modeling as &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;multiple documents during schema design.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;and are queries by attribute/value supported?&lt;/span&gt;&lt;p&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Yes. For performance, MongoDB supports secondary (composite) indices.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Question 4: Handling Silent Data Corruption&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;When the storage or network subsystem corrupts data without raising an error, does the NoSQL service detect and correct this? When is it detected and corrected, on write, on read or asynchronously?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The general assumption is that the storage system is reliable.  Thus, &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;one would normally use a RAID with mirroring, or a service like EBS &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;which has intrinsic mirroring.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;However, the BSON format has a reasonable amount of structure to it. &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;It is highly probable, although not certain, that a corrupt object &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;would be detected and an error reported.  This could then be correct &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;with a database repair operation.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Note: the above assumes an actual storage system fault.  Another case &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;of interest is simply a hard crash of the server.  MongoDB 1.6 &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;requires a --repair after this.  MongoDB v1.8 (pending) is crash-safe &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;in its storage engine via journaling.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Question 5: Backup and Restore&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;Without stopping incoming requests, how can a point in time backup of the entire dataset be performed? What is the performance and availability impact during the backup? &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;The most used method is to have a replica which is used for backups &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;only; perhaps an inexpensive server or VM.  This node can be taken &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;offline at any time and any backup strategy used.  Once re-enabled, it &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: rgb(23, 56, 245); "&gt;&lt;span style="color:#000000;"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;will catch back up.  &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span style="text-decoration: underline"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://www.mongodb.org/display/DOCS/Backups"&gt;http://www.mongodb.org/display/DOCS/Backups&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;With something like EBS, quick snapshotting is possible using the &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;fsync-and-lock command.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;For cases such as roll-back after a buggy application code push, how is a known good version of the dataset restored, how is it made consistent, and what is the performance and availability impact during the restore? Are there any scalability limits on the backed up dataset size, what's the biggest you have seen?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;One can stop the server(s), restore the old data file images, and restart.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas; min-height: 15.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;MongoDB supports a slaveDelay option which allows one to force a &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;replica to stay a certain number of hours behind realtime.  This is a &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;good way to maintain a rolling backup in case of someone &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;"fat-fingering" a database operation.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Consolas"&gt;&lt;span class="Apple-style-span"  style="font-family:'times new roman';"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4142906401694795007?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4142906401694795007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/10/nosql-netflix-use-case-comparison-for_31.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4142906401694795007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4142906401694795007'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/10/nosql-netflix-use-case-comparison-for_31.html' title='NoSQL Netflix Use Case Comparison for MongoDB'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-836984212777359855</id><published>2010-10-29T09:38:00.000-07:00</published><updated>2010-10-29T09:57:41.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cassandra'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>NoSQL Netflix Use Case Comparison for Cassandra</title><content type='html'>&lt;div&gt;Jonathan Ellis @spyced of Riptano  kindly provided a set of answers that I have interspersed with the questions below.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The original set of questions are &lt;a href="http://perfcap.blogspot.com/2010/10/comparing-nosql-availability-models.html"&gt;posted here&lt;/a&gt;. Each NoSQL contender will get their own blog post with answers, when there are enough to be interesting, I will write some summary comparisons.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you have answers or would like to suggest additional questions, comment here, tweet me @adrianco or blog it yourself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Use Case Scenario for Comparison Across NoSQL Contenders &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;While each NoSQL contender has different strengths and will be used for different things, we need a basis for comparison across them, so that we understand the differences in behavior. Here is a sample scenario that I am publishing to put to each vendor to get their answers and will post the results here. The example is non-trivial and is based on a simplified Netflix related scenario that is applicable to any web service that reliably collects data from users via an API. I assume that is running on AWS and use that terminology, but the concepts are generic.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;b&gt;Use Case&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;A TV based device calls the API to add a movie to its favorites list (like the Netflix instant queue, but I have simplified the concept here), then reads back the entire list to ensure it is showing the current state. The API does not use cookies, and the load balancer (Amazon Elastic Load Balancer) is round robin, so the second request goes to a different API server, that happens to be in a different Amazon Availability Zone, and needs to respond with the modified list.&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Favorites Storage&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;Favorites store is implemented using a NoSQL mechanism that persistently stores a single key=user value=movielist record on writes, and returns the movielist on reads.&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;The most natural way to model per-user favorites in Cassandra is to have one row per user, keyed by the userid, whose column names are movie IDs.  The combination of allowing dynamic column creation within a row and allowing very large rows (up to 2 billion columns in 0.7) means that you can treat a row as a list or map, which is a natural fit here.  Performance will be excellent since columns can be added or modified without needing to read the row first.  (This is one reason why thinking of Cassandra as a key/value store, even before we added secondary indexes, was not really correct.)&lt;br /&gt;&lt;br /&gt;The best introduction to Cassandra data modeling is Max Grinev's series on &lt;/i&gt;&lt;a href="http://maxgrinev.com/2010/07/09/a-quick-introduction-to-the-cassandra-data-model/"&gt;&lt;i&gt;basics&lt;/i&gt;&lt;/a&gt;&lt;i&gt;, &lt;/i&gt;&lt;a href="http://maxgrinev.com/2010/07/12/do-you-really-need-sql-to-do-it-all-in-cassandra/"&gt;&lt;i&gt;translating SQL concepts&lt;/i&gt;&lt;/a&gt;&lt;i&gt;, and &lt;/i&gt;&lt;a href="http://maxgrinev.com/2010/07/12/update-idempotency-why-it-is-important-in-cassandra-applications-2/"&gt;&lt;i&gt;idempotence&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 1: Availability Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;When an API reads and writes to a queue store using the NoSQL mechanism, is the traffic routing Availability Zone aware? Are reads satisfied locally, or spread over all zones, is the initial write local or spread over the zones, is the write replication zone aware so data is replicated to more than one zone?&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;Briefly, both reads and writes have a &lt;/i&gt;&lt;a href="http://www.riptano.com/docs/0.6.5/consistency/index"&gt;&lt;i&gt;ConsistencyLevel&lt;/i&gt;&lt;/a&gt;&lt;i&gt; parameter controlling how many replicas across how many zones must reply for the request to succeed.  Routing is aware of current response times as well as network topology, so given an appropriate ConsistencyLevel, reads can be routed around temporarily slow nodes.&lt;br /&gt;&lt;br /&gt;On writes, the coordinator node (the one the client sent the request to) will send the write to all replicas; as soon as enough success messages come back to satisfy the desired consistency level, the coordinator will report success to the client.&lt;br /&gt;&lt;br /&gt;For more on consistency levels, see &lt;/i&gt;&lt;a href="http://www.slideshare.net/benjaminblack/introduction-to-cassandra-replication-and-consistency"&gt;&lt;i&gt;Ben Black's excellent presentation&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 2: Partitioned Behavior with Two Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;If the connection between two zones fails, and a partition occurs so that external traffic coming into and staying within a zone continues to work, but traffic between zones is lost, what happens? In particular, which of these outcomes does the NoSQL service support?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;one zone decides that it is still working for reads and writes but half the size, and the other zone decide it is offline&lt;/li&gt;&lt;li&gt;both zones continue to satisfy reads, but refuse writes until repaired&lt;/li&gt;&lt;li&gt;data that has a master copy in the good zone supports read and write, slave copies stop for both read and write&lt;/li&gt;&lt;li&gt;both zones continue to accept writes, and attempt to reconcile any inconsistency on repair&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;i&gt;Cassandra has no 'master copy' for any piece of data; all copies are equal.  The other behaviors are supported by different ConsistencyLevel values for reads (R) and writes (W):&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;R=QUORUM, W=QUORUM: One zone decides that it is still working for reads and writes, and the other zone decides it is offline&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;R=ONE, W=ALL: Both zones continue to satisfy reads, but refuse writes &lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;R=ONE, W=ONE: Both zones continue to accept writes, and reconcile any inconsistencies when the partition heals&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;I would also note that reconciliation is timestamp-based at the column level, meaning that updates to different columns within a row will never conflict, but when writes have been allowed in two partitions to the same column, the highest timestamp will win.  (This is another way Cassandra differs from key/value stores, which need more complex logic called vector clocks to be able to merge updates to different logical components of a value.)&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Question 3: Appending a movie to the favorites list&lt;/b&gt;&lt;/div&gt;If an update is performed by read-modify-write of the entire list, what mechanisms can be used to avoid race conditions? If multiple attribute/values are supported for a key, can an additional value be written directly without reading first? What limits exist on the size of the value or number of attribute/values, and are queries by attribute/value supported?&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;i&gt;Cassandra's ColumnFamily model generally obviates the need for a read before a write, e.g., as above using movie IDs as column names.  (If you wanted to allow duplicates in the list for some reason, you would generally use a UUID as the column name on insert instead of the movie ID.)&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;The maximum value size is 2GB although in practice we recommend using 8MB as a more practical maximum. Splitting a larger blob up across multiple columns is straightforward given the dynamic ColumnFamily design. The maximum row size is 2 billion columns. Queries by attribute value are supported with secondary indexes in 0.7.&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Question 4: Handling Silent Data Corruption&lt;/b&gt;&lt;/div&gt;&lt;div&gt;When the storage or network subsystem corrupts data without raising an error, does the NoSQL service detect and correct this? When is it detected and corrected, on write, on read or asynchronously?&lt;/div&gt;&lt;i&gt;&lt;/i&gt;&lt;blockquote&gt;&lt;i&gt;Cassandra handles repairing corruption the same way it does other data inconsistencies, with &lt;/i&gt;&lt;a href="http://wiki.apache.org/cassandra/ReadRepair"&gt;&lt;i&gt;read repair&lt;/i&gt;&lt;/a&gt;&lt;i&gt; and &lt;/i&gt;&lt;a href="http://wiki.apache.org/cassandra/AntiEntropy"&gt;&lt;i&gt;anti-entropy repair&lt;/i&gt;&lt;/a&gt;&lt;i&gt;.&lt;/i&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 5: Backup and Restore&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Without stopping incoming requests, how can a point in time backup of the entire dataset be performed? What is the performance and availability impact during the backup? For cases such as roll-back after a buggy application code push, how is a known good version of the dataset restored, how is it made consistent, and what is the performance and availability impact during the restore? Are there any scalability limits on the backed up dataset size, what's the biggest you have seen?&lt;/div&gt;&lt;i&gt;&lt;/i&gt;&lt;blockquote&gt;&lt;i&gt;Because Cassandra's &lt;/i&gt;&lt;a href="http://wiki.apache.org/cassandra/MemtableSSTable"&gt;&lt;i&gt;data files are immutable&lt;/i&gt;&lt;/a&gt;&lt;i&gt; once written, creating a point-in-time snapshot is as simple as hard-linking the current set of sstables on the filesystem.  Performance impact is negligible since hard links are so lightweight.  Rolling back simply consists of moving a set of snapshotted files into the live data directory.  The snapshot is as consistent as your ConsistencyLevel makes it: any write visible to readers at a given ConsistencyLevel before the snapshot will be readable from the snapshot after restore.  The only scalability problem with snapshot management is that past a few TB, it becomes impractical to try to manage snapshots centrally; most companies leave them distributed across the nodes that created them.&lt;/i&gt;&lt;/blockquote&gt;&lt;i&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-836984212777359855?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/836984212777359855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/10/nosql-netflix-use-case-comparison-for.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/836984212777359855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/836984212777359855'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/10/nosql-netflix-use-case-comparison-for.html' title='NoSQL Netflix Use Case Comparison for Cassandra'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-716704319649337436</id><published>2010-10-27T14:14:00.000-07:00</published><updated>2010-11-17T23:29:58.424-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='riak'/><category scheme='http://www.blogger.com/atom/ns#' term='translattice'/><category scheme='http://www.blogger.com/atom/ns#' term='cassandra'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='mongodb'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Comparing NoSQL Availability Models</title><content type='html'>&lt;div&gt;let's risk feeding the &lt;a href="http://codahale.com/you-cant-sacrifice-partition-tolerance/"&gt;CAP&lt;/a&gt; trolls, and try to get some insight into the differences between the many NoSQL contenders. I have circulated an earlier version of this to a few people and got at least one good response. If you have answers, or would like to suggest additional questions, comment here, tweet me @adrianco or blog it yourself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://perfcap.blogspot.com/2010/10/nosql-netflix-use-case-comparison-for.html"&gt;Riptano/Cassandra's response is here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://perfcap.blogspot.com/2010/10/nosql-netflix-use-case-comparison-for_31.html"&gt;10gen/MongoDB's response is here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://perfcap.blogspot.com/2010/11/nosql-netflix-use-case-comparison-for.html"&gt;Basho/Riak's response is here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://perfcap.blogspot.com/2010/11/nosql-netflix-use-case-comparison-for_17.html"&gt;Translattice's response is here&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Use Case Scenario for Comparison Across NoSQL Contenders &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;While each NoSQL contender has different strengths and will be used for different things, we need a basis for comparison across them, so that we understand the differences in behavior. Here is a sample scenario that I am publishing to put to each vendor to get their answers and will post the results here. The example is non-trivial and is based on a simplified Netflix related scenario that is applicable to any web service that reliably collects data from users via an API. I assume that is running on AWS and use that terminology, but the concepts are generic.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;b&gt;Use Case&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style=" ;font-size:large;"&gt;&lt;br /&gt;&lt;/span&gt;A TV based device calls the API to add a movie to its favorites list (like the Netflix instant queue, but I have simplified the concept here), then reads back the entire list to ensure it is showing the current state. The API does not use cookies, and the load balancer (Amazon Elastic Load Balancer) is round robin, so the second request goes to a different API server, that happens to be in a different Amazon Availability Zone, and needs to respond with the modified list.&lt;div&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Favorites Storage&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;Favorites store is implemented using a NoSQL mechanism that persistently stores a single key=user value=movielist record on writes, and returns the movielist on reads.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 1: Availability Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;When an API reads and writes to a queue store using the NoSQL mechanism, is the traffic routing Availability Zone aware? Are reads satisfied locally, or spread over all zones, is the initial write local or spread over the zones, is the write replication zone aware so data is replicated to more than one zone?&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 2: Partitioned Behavior with Two Zones&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;If the connection between two zones fails, and a partition occurs so that external traffic coming into and staying within a zone continues to work, but traffic between zones is lost, what happens? In particular, which of these outcomes does the NoSQL service support?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;one zone decides that it is still working for reads and writes but half the size, and the other zone decide it is offline&lt;/li&gt;&lt;li&gt;both zones continue to satisfy reads, but refuse writes until repaired&lt;/li&gt;&lt;li&gt;data that has a master copy in the good zone supports read and write, slave copies stop for both read and write&lt;/li&gt;&lt;li&gt;both zones continue to accept writes, and attempt to reconcile any inconsistency on repair&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 3: Appending a movie to the favorites list&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;If an update is performed by read-modify-write of the entire list, what mechanisms can be used to avoid race conditions? If multiple attribute/values are supported for a key, can an additional value be written directly without reading first? What limits exist on the size of the value or number of attribute/values, and are queries by attribute/value supported?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 4: Handling Silent Data Corruption&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;When the storage or network subsystem corrupts data without raising an error, does the NoSQL service detect and correct this? When is it detected and corrected, on write, on read or asynchronously?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Question 5: Backup and Restore&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Without stopping incoming requests, how can a point in time backup of the entire dataset be performed? What is the performance and availability impact during the backup? For cases such as roll-back after a buggy application code push, how is a known good version of the dataset restored, how is it made consistent, and what is the performance and availability impact during the restore? Are there any scalability limits on the backed up dataset size, what's the biggest you have seen?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-716704319649337436?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/716704319649337436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/10/comparing-nosql-availability-models.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/716704319649337436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/716704319649337436'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/10/comparing-nosql-availability-models.html' title='Comparing NoSQL Availability Models'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7385775992510850204</id><published>2010-10-10T01:06:00.000-07:00</published><updated>2010-11-09T09:32:18.811-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Netflix in the Cloud</title><content type='html'>I'm presenting this talk on Thursday at the Cloud Computing Meetup, and again on Nov 3rd at QConSF. So far I have posted a "teaser" &lt;a href="http://www.slideshare.net/adrianco/netflix-oncloudteaser"&gt;summary on slideshare.&lt;/a&gt; After QCon I will post the full slide deck [update: &lt;a href="http://www.slideshare.net/adrianco/netflix-on-cloud-combined-slides-for-dev-and-ops"&gt;combined deck from both talks posted here&lt;/a&gt;].&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.meetup.com/cloudcomputing/calendar/14476942/"&gt;The meetup is the "beta test" of the presentation&lt;/a&gt;. It's in Mountain View at "Hacker Dojo", and at the time of writing 437 people have signed up to attend. If everyone turns up it's going to be crazy and over-flowing trying to park and get in, so get there early.... I will focus the meetup talk more on the operational aspects of the cloud architecture, and migration techniques.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://qconsf.com/sf2010/presentation/Running+Netflix+in+the+Cloud"&gt;At QConSF, the presentation is in the "Architectures you've always wondered about" track&lt;/a&gt;, and I will spend more time talking about the software architecture.&lt;br /&gt;&lt;br /&gt;Why give these talks? We aren't trying to sell cloud to CIOs, &lt;a href="http://www.netflix.com/jobs"&gt;it's all about hiring&lt;/a&gt;, we are talking at engineer focused events in the Bay Area. Netflix is growing fast, pathfinding new technologies in the public cloud to support a very agile business model, and is trying to attract the best and brightest people. We use LinkedIn a lot when we search for positions, so &lt;a href="http://www.linkedin.com/in/adriancockcroft"&gt;feel free to connect to me&lt;/a&gt; if you think this could be interesting, or &lt;a href="http://twitter.com/adrianco"&gt;follow @adrianco&lt;/a&gt; on Twitter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7385775992510850204?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7385775992510850204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/10/netflix-in-cloud.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7385775992510850204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7385775992510850204'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/10/netflix-in-cloud.html' title='Netflix in the Cloud'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8315024912300770317</id><published>2010-10-06T00:53:00.000-07:00</published><updated>2010-10-06T01:42:48.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='350.org'/><category scheme='http://www.blogger.com/atom/ns#' term='climate change'/><title type='text'>Time for some climate action on 10/10/10</title><content type='html'>organized by &lt;a href="http://350.org"&gt;350.org&lt;/a&gt; there are events all over the world. The significance of 350 is that it is the safe level of CO2 in the atmosphere. &lt;a href="http://www.350.org/en/about/science"&gt;We are already at 390ppm&lt;/a&gt;, which is why the climate is changing and extreme weather events are becoming common. The level is going up by 2ppm a year at the moment and the changes needed to reverse this haven't started, so its going to go much higher and have increasingly worse effects.&lt;br /&gt;&lt;br /&gt;Even if all you do is buy and start reading a copy of James Hansen's book &lt;a href="http://www.stormsofmygrandchildren.com/"&gt;Storms of my Grandchildren&lt;/a&gt; (&lt;a href="http://www.amazon.com/Storms-My-Grandchildren-Catastrophe-Humanity/dp/1608192008"&gt;you can get it instantly from the Kindle store&lt;/a&gt;) it will help.&lt;br /&gt;&lt;br /&gt;Here is a useful discussion of "&lt;a href="http://www.skepticalscience.com/The-value-of-coherence-in-science.html"&gt;The Value of Coherence in Science&lt;/a&gt;" which is how you can tell what makes sense from what must be wrong. I'm a Physics graduate, and I was taught that science works by making predictions and testing them, and by eliminating incoherent propositions. i.e. if an argument contradicts itself it must be false. The denialist counter-arguments fail this test. To see why the denialist arguments are getting any air time at all, read&lt;a href="http://www.merchantsofdoubt.org/"&gt; Merchants of Doubt&lt;/a&gt; and &lt;a href="http://www.amazon.com/Climate-Cover-Up-Crusade-Warming-ebook/dp/B002Z14KWQ/ref=pd_sim_kinc_1?ie=UTF8&amp;m=AG56TWVU5XWC2"&gt;Climate Cover Up&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For an example of incoherent and shoddy denialist work &lt;a href="http://deepclimate.org/2010/09/26/strange-scholarship-wegman-report/"&gt;John Mashey has systematically deconstructed the Wegman Report&lt;/a&gt; which was presented to Congress as an impartial study when it was nothing of the sort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8315024912300770317?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://350.org' title='Time for some climate action on 10/10/10'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8315024912300770317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/10/time-for-some-climate-action-on-101010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8315024912300770317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8315024912300770317'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/10/time-for-some-climate-action-on-101010.html' title='Time for some climate action on 10/10/10'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7663978301468600468</id><published>2010-10-03T00:50:00.000-07:00</published><updated>2010-10-03T01:24:22.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SolarCity solar garage Nissan leaf fully charged heat pump'/><title type='text'>More solar power</title><content type='html'>We just signed up for almost 8KW on the garage roof. It's justified based on replacing our propane furnace with a heat pump that also gives us aIr conditioning, and also running an electric car (e.g. Nissan Leaf). We can use our existing monitoring system, but unlike last time, when we bought the system, we plan to lease it from Solar City this time. There Is a four month lead time, so we can pick the exact terms of the lease next February before it is installed. There are several options,  zero down with a monthly charge that increases slightly each year, or options to pay various amounts up front with a fixed monthly payment. The monthly payments are all less than a typical electricity bill.&lt;br /&gt;&lt;br /&gt;The goal for next year is to only use propane to run the backup generator (usually for a few days a year), and to make a dent in our petrol usage for the daily commute. We are on the Nissan Leaf list, but not in the first wave of owners. We should be able to get a test drive soon, I will report on any progress as it happens.&lt;br /&gt;&lt;br /&gt;If you are interested in electric cars, look for Robert Llewellyn's Fully Charged video show on YouTube. He has been test driving everything and he's good fun to watch. You may recognize him as the actor who played Kryton in Red Dwarf.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7663978301468600468?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7663978301468600468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/10/more-solar-power.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7663978301468600468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7663978301468600468'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/10/more-solar-power.html' title='More solar power'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8711021558484311337</id><published>2010-09-26T16:55:00.001-07:00</published><updated>2010-09-26T17:20:15.949-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Solar Power - The Year in Review</title><content type='html'>For our full story on solar &lt;a href="http://perfcap.blogspot.com/search?q=solar"&gt;click here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We installed Solar panels in August 2009, and they were turned on during September. We have now had a whole year of power which is shown below. The time-of-use metering means that we get paid much more for the power we generate in the afternoon than the power we use overnight, so the "zero point" for billing is different than that for power consumption. PG&amp;E recently sent us our annual bill, which was about $500. Added to the monthly bills for basic service this comes to about $700 for the whole year. Our previous electricity bill was about $2000 a year. Since we changed our hot water, clothes dryer and range from propane to electric, we saved over $1000 in propane cost as well. That puts payback at around ten years at todays prices, given the likelihood of increased propane and electricity prices over time, actual payback would be earlier than that.&lt;br /&gt;&lt;br /&gt;The panels have got a lot of dust on them (the roof is too high to get at easily to clean them), so aren't running at peak efficiency, the best day we saw was around 28KWh, with a lot of days of 26-27 KWh through the summer. The totals for each month are shown in the screenshots below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BXNMRLEUkRQ/TJ_d3Z9VbVI/AAAAAAAAARs/mdmeWcFWra4/s1600/IMG_0026.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_BXNMRLEUkRQ/TJ_d3Z9VbVI/AAAAAAAAARs/mdmeWcFWra4/s320/IMG_0026.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5521375612110204242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/TJ_drb8m5QI/AAAAAAAAARk/ToPthbW_djE/s1600/IMG_0025.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/TJ_drb8m5QI/AAAAAAAAARk/ToPthbW_djE/s320/IMG_0025.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5521375406485595394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since we have built a new garage, we now have a lot more roof area. So we are now looking to add another 4KW of panels, and to swap out our propane furnace for a heat pump that will give us heating and cooling (yay - its hot today...) sometime next spring. Then the only use for propane will be the emergency generator. It should also make the garage a bit cooler in the summer by shading half of the roof with panels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8711021558484311337?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8711021558484311337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/09/solar-power-year-in-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8711021558484311337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8711021558484311337'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/09/solar-power-year-in-review.html' title='Solar Power - The Year in Review'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BXNMRLEUkRQ/TJ_d3Z9VbVI/AAAAAAAAARs/mdmeWcFWra4/s72-c/IMG_0026.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-174661889336954473</id><published>2010-08-26T14:55:00.001-07:00</published><updated>2010-08-26T15:11:05.899-07:00</updated><title type='text'>Netflix for iPhone in the cloud and HTML5</title><content type='html'>&lt;a href="http://http://perfcap.blogspot.com/2010/05/netflix-in-cloud-and-html5.html"&gt;I posted on this subject a while ago&lt;/a&gt;, and generated a lot of confused comments, who read things into my post that weren't there. Today I hope it's a bit clearer what I was talking about, because we released the Netflix iPhone app, which is based on HTML5 for its user interface elements, back ends into the Amazon cloud, and uses conventional, non-HTML5 video playback and DRM. The playback mechanism is the same as the iPad, but to support the scale of expected usage we needed more capacity (it's currently the top free app in the app store as I write this) and we got that by rebuilding our API tier and personalized movie choosing backend to run on the Amazon cloud. The user interface runs in a webkit based browser window in the app, just like on iPad, but the entire UI is built using Javascript with advanced CSS and HTML5 animations to get it to feel like a native iPhone app.&lt;br /&gt;&lt;br /&gt;Returning to the theme of my last post, Netflix is hiring engineers to work on cloud tools, platforms and performance, and advanced user interfaces. I think we are breaking new ground  in both areas and its an exciting place to be. We have very high standards and are looking for the best people in the industry to come and help us...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-174661889336954473?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/174661889336954473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/08/netflix-for-iphone-in-cloud-and-html5.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/174661889336954473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/174661889336954473'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/08/netflix-for-iphone-in-cloud-and-html5.html' title='Netflix for iPhone in the cloud and HTML5'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1475477266900491853</id><published>2010-08-18T22:24:00.000-07:00</published><updated>2010-08-19T00:58:55.985-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Eventual Consistency of Cloud?</title><content type='html'>Lori MacVittie wrote that eventually cloud standards will converge around the private cloud standards (RT @swardley). I disagree, and there are several examples I can think of that point to the opposite conclusion, that public cloud will be the standard, and AWS will continue to dominate. &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/08/18/the-inevitable-eventual-consistency-of-cloud-computing.aspx"&gt;The original article is here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first point of disagreement is the claim that public clouds aren't getting the input they need from customers to mature their services, because real enterprise customers aren't running in the public cloud. Well, here at Netflix, we are giving Amazon exactly that kind of input. We use every feature they have, we are driving them hard and Amazon is taking the input and improving their product rapidly in ways that benefit all the users of AWS.&lt;br /&gt;&lt;br /&gt;My main disagreement is the claim that lots of individual IT departments will converge on a single standard that will win out over public cloud standards. I find this highly implausible, there are a host of vendors feeding technology to enterprise clouds, and they will all do the usual vendor thing of looking for ways to lock in the customer, even if they base on the same standards their implementations will be different. Here's an example, the "private" Enterprise Unix variants Solaris, AIX, HP-UX, IRIX, OSF/1 etc. are all based on the same Unix standards, however the "public" alternatives are Linux and BSD, and Linux has won the mind share in this space. I see Linux as an analogy for the public cloud in the sense that there is a very low barrier to adoption. For Linux, you can download it to run on any old computer for nothing, learn to use it, then build very low cost solutions out of it. For AWS, for a few dollars on the existing Amazon account you use to buy books etc, you can explore all the features and learn to build very powerful systems in a few hours. This has produced a large population of very productive engineers, who know how to use AWS, Linux and other open source tools to solve problems rapidly at low cost using the same tools. In contrast, if every enterprise cloud moves ahead by solving their problems independently they will produce a variety of architectures, each optimized to their own problem, and with their own tooling, and a very small number of people who know how to run each variant. You will also find that every company also uses the public cloud to get stuff done more quickly and cheaply than the IT department, so that will become the common standard.&lt;br /&gt;&lt;br /&gt;Part of the thinking behind Netflix' move to the cloud is that large public cloud providers like Amazon will have far more engineers working on making their infrastructure robust, scalable, well automated and secure than any individual enterprise could afford. By using AWS we are leveraging a huge investment made by Amazon, and paying a small amount for it on a month by month basis. We also get to efficiently allocate resources, for example how much does it cost to provision a large cage of equipment in a new datacenter and how long does it take from deciding to do it, to having it running reliably in production? Let's say $10M and many months. Instead we could spend $10M on licensing more movies and TV shows to stream, and grow incrementally in the cloud. In a few months time we have more customers than if we spent the money up front on buying compute capacity and we just keep re-provisioning new instances in the cloud, so we never end up with a datacenter full of inappropriately sized or obsolete equipment. At present, Netflix' growth is accelerating, so it is difficult to guess in advance how much capacity to invest in, but we have already flat-lined our datacenter capacity, and have all incremental capacity happening on AWS. For example, we can just fire up a few thousand instances for a week to encode all the new movies we just bought the rights to, then stop paying for them until another big deal closes. Likewise on The Oscars Awards night, there is a big spike in web traffic, and we can grow on the day and shrink afterwards as needed without planning it and buying hardware a long time in advance.&lt;br /&gt;&lt;br /&gt;While the other public and private cloud vendors are competing to come up with standards, we are finding that resumes from the kind of engineers we want to hire already reference their experience with AWS as a de-facto cloud standard. It's also easier to attract the best people if they will learn transferable skills and work on the very latest technologies.&lt;br /&gt;&lt;br /&gt;That might sound like a lock-in, but a well designed architecture is layered, and the actual AWS dependencies are very localized in our code base. The bet on the end game is that in coming years, other cloud vendors produce large scale AWS compatible offerings (full featured, not just EC2 and S3), and a very large scale multi-vendor low cost public cloud market is created. Then even a large and fast growing enterprise like Netflix will be an insignificant and ever smaller proportion of the cloud. By definition, you can't be an insignificant proportion of your own private cloud....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1475477266900491853?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1475477266900491853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/08/eventual-consistency-of-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1475477266900491853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1475477266900491853'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/08/eventual-consistency-of-cloud.html' title='Eventual Consistency of Cloud?'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1988488898216160499</id><published>2010-08-16T10:38:00.000-07:00</published><updated>2010-08-16T10:44:09.696-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tcp'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Reducing TCP retransmit timeout?</title><content type='html'>Cloud networks are lossy and low latency, reducing TCP_RTO_MIN and TCP_DELACK_MIN looks like a good idea, but it looks as if this needs a linux kernel recompile. Anyone else looked at this? &lt;br /&gt;Here is a relevant paper “Safe and Effective Fine-grained TCP Retransmissions for Datacenter Communication“&lt;br /&gt;http://www.cs.cmu.edu/~vrv/papers/sigcomm147-vasudevan.pdf&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1988488898216160499?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1988488898216160499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/08/reducing-tcp-retransmit-timeout.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1988488898216160499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1988488898216160499'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/08/reducing-tcp-retransmit-timeout.html' title='Reducing TCP retransmit timeout?'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1047755212972969986</id><published>2010-08-06T23:52:00.000-07:00</published><updated>2010-08-07T01:59:55.639-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Open letter to my Sun friends at Oracle</title><content type='html'>I recently heard about Illumos via a tweet from Alec Muffett, and responded with my own tweet "I predict that #illumos will be just as irrelevant as Solaris has been for the last few years. Legacy." - personally I haven't logged into a Solaris or SPARC machine for about four years now. There are none at Netflix.&lt;br /&gt;&lt;br /&gt;I have also been talking to a few friends who stayed at Sun and are now at Oracle, and there is a common thread that I decided to put out there in this blog post.&lt;br /&gt;&lt;br /&gt;This week I presented at a local Computer Measurement Group meeting, talking about how easy it is to use the Amazon cloud to run Hadoop jobs to process terabytes of data for a few bucks [&lt;a href="http://www.slideshare.net/adrianco"&gt;slideshare&lt;/a&gt;]. I followed a talk on optimizing your Mainframe software licensing costs by tweaking workload manager limits. There are still a lot of people working away on IBM Mainframes, but it's not where interesting new business models go to take over the world.&lt;br /&gt;&lt;br /&gt;The way I see the Oracle/Sun merger is that Oracle wanted to compete more directly with IBM, and they will invest in the bits of Sun that help them do that. Oracle has a very strong focus on high margin sales, so they will most likely succeed in making good money with help from Solaris and SPARC to compete with AIX, z/OS and P-series, selling to late-adopter industries like Banking, Insurance etc. Just look where the Mainframes are still being used. Sun could never focus on just the profitable business on its own, because it had a long history of leading edge innovation that is disruptive and low margin. However, what was innovative once is now a legacy technology base of Solaris and SPARC, and it's not even a topic of discussion in the leading edge of disruptive innovators, who are running on x64 in the cloud on Linux and a free open source stack. There is no prospect of revenue for Oracle in this space, so they are right to ignore it.&lt;br /&gt;&lt;br /&gt;That is what I meant when I tweeted that Illumos is as irrelevant as Solaris, and it is legacy computing. I don't mean Solaris will go away, I'm sure it will be the basis of a profitable business for a long time, but the interesting things are happening elsewhere, specifically in public cloud and "infrastructure as code".&lt;br /&gt;&lt;br /&gt;You might point to Joyent, who use Solaris, and now have Bryan Cantrill on board, but they are a tiny bit-player in cloud computing and Amazon are running away with the cloud market, and creating a set of de-facto standard APIs that make it hard to differentiate and compete. You might point to enterprise or private clouds, but as @scottsanchez tweeted: "Define: Private Cloud ... 1/2 the features of a public cloud, for 4x the cost", that's not where the interesting things are happening.&lt;br /&gt;&lt;br /&gt;So to my Sun friends at Oracle, if you want to work for a profitable company and build up your retirement fund Oracle is an excellent place to be. However, there are a lot of people who joined Sun when it was re-defining the computer industry, changing the rules, disrupting the competition. If you want some of that you need to re-tool your skill set a bit and look for stepping stones that can take you there.&lt;br /&gt;&lt;br /&gt;When Sun shut down our HPC team in 2004 I deliberately left the Enterprise Computing market, I didn't want to work for a company that sold technology to other companies, I wanted to sell web services to end consumers, and I had contacts at eBay who took me on. In 2007 I joined Netflix, and it's the best place I've ever worked, but I needed that time at eBay to orient myself to a consumer driven business model and re-tool my skill set, I couldn't have joined Netflix directly.&lt;br /&gt;&lt;br /&gt;There are &lt;a href="http://www.netflix.com/Jobs"&gt;two slideshare presentations on the Netflix web site&lt;/a&gt;, one is on the company culture, the other on the business model. It is expected that anyone who is looking for a job has read and inwardly digested them both (its basically an interview fail if you haven't). These aren't aspirational puff pieces written by HR, along with everyone else in Netflix management (literally, at a series of large offsites), I was part of the discussion that helped our CEO Reed Hastings write and edit them both.&lt;br /&gt;&lt;br /&gt;What can you do to "escape"? The tools are right there, you don't need to invest significant money, you just need to carve out some spare time to use them. Everything is either free open source, or available for a few cents or dollars on the Amazon cloud. The best two things you can have on your resume are hands on experience with the Amazon Web Services tool set, and links to &lt;a href="http://wiki.github.com/adrianco/Actors-for-Netflix-on-iPad/"&gt;open source projects&lt;/a&gt; that you have contributed to. There isn't much demand for C or C++ programmers, but ObjectiveC is an obvious next step, it's quite fun to code in and you can develop user interfaces for iPhone/iPad in a few lines of code, that back-end into cloud services. Java code (for app servers like Tomcat) on Android phones, Ruby-on-Rails, and Python are the core languages that are being used to build innovative new businesses nowadays. If you are into data or algorithms, then you need to figure out how to use Hadoop, which as I describe in one of my &lt;a href="http://www.slideshare.net/adrianco"&gt;slideshare&lt;/a&gt; decks is trivially available from Amazon. You can even get an HPC cluster on a 10Gbit ethernet interconnect from Amazon now. There is hadoop based &lt;a href="http://mahout.apache.org/"&gt;open source algorithm project called Mahout&lt;/a&gt; that is always looking for contributors.&lt;br /&gt;&lt;br /&gt;To find the jobs themselves, spend time on &lt;a href="http://www.linkedin.com"&gt;LinkedIn&lt;/a&gt;. I use it to link to anyone I think might be interesting to hire or work with. Your connections have value since it is always good to hire people that know other good people. Keep your own listing current and join groups that you find interesting, like Java Architecture or Cloud Computing, and Sun Alumni. At this point LinkedIn is the main tool used by recruiters and managers to find people.&lt;br /&gt;&lt;br /&gt;Good luck, and keep in touch (you can find me on &lt;a href="http://www.linkedin.com"&gt;LinkedIn&lt;/a&gt; or twitter @adrianco :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1047755212972969986?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1047755212972969986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/08/open-letter-to-my-sun-friends-at-oracle.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1047755212972969986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1047755212972969986'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/08/open-letter-to-my-sun-friends-at-oracle.html' title='Open letter to my Sun friends at Oracle'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4689752736276662181</id><published>2010-08-05T00:17:00.000-07:00</published><updated>2010-08-05T00:19:40.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='qcon'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>Running Netflix in the (public #aws) cloud</title><content type='html'>my talk at #qconsf in Nov http://qconsf.com/sf2010/presentation/Running+Netflix+in+the+Cloud&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4689752736276662181?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4689752736276662181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/08/running-netflix-in-public-aws-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4689752736276662181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4689752736276662181'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/08/running-netflix-in-public-aws-cloud.html' title='Running Netflix in the (public #aws) cloud'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5969202046291117870</id><published>2010-07-20T13:18:00.000-07:00</published><updated>2010-07-20T14:36:04.514-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openstack'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='aws'/><title type='text'>Can OpenStack catch up with AWS? Looks unlikely to me.</title><content type='html'>There has been a lot of chatter about the new &lt;a href="http://openstack.org/"&gt;OpenStack standard&lt;/a&gt; in the last few days, and how it could become a third option in the cloud infrastructure market alongside Amazon AWS and VMWare vCloud. For example &lt;a href="http://cloudscaling.com/blog/cloud-computing/does-openstack-change-the-cloud-game"&gt;Randy Bias/Cloudscaling has a good overview of the players&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The real question is whether OpenStack can catch up and become viable. Amazon is always described as being years ahead of the competition and having the lions share of the market. Estimates of the size of their lead depends on who you talk to, but I don't see anyone disputing their lead. On top of that, Amazon is investing heavily, has big customers like Zynga and Netflix stretching and hardening their systems (along with a huge number of small customers), and has already added many features beyond the basic compute (EC2) and storage (S3) that have been copied by others including OpenStack.&lt;br /&gt;&lt;br /&gt;So for OpenStack to catch up, means that they have to move faster than Amazon, and leverage the slipstream effect where Amazon has had to educate the market and figure out what works, so competitors can copy their successes. However when I look at the details of the OpenStack specification they appear to be copying some of Amazon's problems as well. In particular the account and authentication model, which does not scale for enterprise use.&lt;br /&gt;&lt;br /&gt;At the most basic level, it is infeasible to change the security model of a platform architecture, it's one of the most fundamental starting points that conditions the layers above. Changes to account and authentication management break all the layers of applications and tools that are built on the platform. One of the first problems that Netflix had with Amazon, was the lack of sub-accounts and role based access control (RBAC), and while beating up Amazon on this point for the last two years, we have built our own platform layers and tools to compensate. As a result, we find it impossible to use any of the web consoles or tools produced by Amazon or the many cloud vendors, which assume that there is a single account owner who can do anything. We hope that Amazon will eventually support sub-accounts, and when they do, I expect it will break everyone's tools.&lt;br /&gt;&lt;br /&gt;At this point OpenStack is just the base level of the platform, it doesn't really have layers of tools on top yet, but its account and authentication model appears to be exactly the same as Amazon, so they will end up with layers of tooling that don't meet the needs of enterprise customers.&lt;br /&gt;&lt;br /&gt;What's the difference between a startup and an enterprise? In a startup, everyone in IT knows the root password to every machine in their infrastructure. In an enterprise root passwords are carefully controlled, they change when someone in-the-know leaves, and specialist groups manage different parts of the system (Network ops can only mess with the switches, DBA's can only mess with the database etc.). The problem with a single account for the cloud is that everyone who needs to do &lt;span style="font-weight:bold;"&gt;anything&lt;/span&gt; to that account can do &lt;span style="font-weight:bold;"&gt;everything&lt;/span&gt; to it, and the common tools are oriented to a single user, managing several accounts, rather than a hierarchy of users managing parts of one account. All the systems in the account need an authentication key to access cloud services, and changing the password and key means you have to re-key every system. Get this wrong and your cloud will evaporate in an instant.&lt;br /&gt;&lt;br /&gt;So in my opinion, a necessary but  not sufficient condition for OpenStack to eventually catch up with AWS is that they need to build sub-accounts and RBAC into their spec from the start. However it seems much more likely that Amazon will just disappear into the distance from what I've seen so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5969202046291117870?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5969202046291117870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/07/can-openstack-catch-up-with-aws-looks.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5969202046291117870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5969202046291117870'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/07/can-openstack-catch-up-with-aws-looks.html' title='Can OpenStack catch up with AWS? Looks unlikely to me.'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5268471909222403106</id><published>2010-07-19T15:22:00.000-07:00</published><updated>2010-07-19T15:24:47.784-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tethering'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>iPhone Tethering Review</title><content type='html'>Along with iOS4 and the new ATT data plans they now also support tethering. I setup my wife’s personal iPhone 3GS for tethering, and it worked fine on her work laptop with Windows XP over the USB cable (she could work from the passenger seat while we were driving freeways). You just need to have iTunes installed on the XP machine, even if that isn’t the machine that sync’s the iPhone.&lt;br /&gt;&lt;br /&gt;I also got Netflix to switch on tethering on my company iPhone 3GS, and I’m using it via bluetooth to my MacBook Air, easy setup and it also worked well for me.&lt;br /&gt;&lt;br /&gt;The downside is that you lose the unlimited data plan, but for a few dollars a month, it can be very useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5268471909222403106?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5268471909222403106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/07/iphone-tethering-review.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5268471909222403106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5268471909222403106'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/07/iphone-tethering-review.html' title='iPhone Tethering Review'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7546852871240602113</id><published>2010-05-19T09:54:00.000-07:00</published><updated>2010-05-20T02:29:17.241-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>Netflix in the cloud and HTML5</title><content type='html'>One of the fun things about working at Netflix is that we are always "leaning forward" and looking for new technologies to leverage. As we roll out our website to run on the Amazon cloud, we are also re-architecting the code base, adding internationalization support and bringing in the latest technologies. One of these is HTML5, which is raising the bar for cross browser support for advanced user interface features, and is now supported by a large and rapidly growing percentage of the visitors to netflix.com. In addition many TV based devices now embed webkit, which is the HTML5 compatible technology that underpins the Safari and Chrome browsers. The user interface engineering team is looking to hire the best and brightest to work on these cutting edge technologies. Here's a write-up &lt;a href="http://jobs.netflix.com/DetailFlix.asp?jobid=flix3666"&gt;for one of the open positions&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Are you passionate about building great website experiences used by millions of visitors each day?  Come to Netflix where we are using HTML5 based web technologies to move ecommerce directly onto televisions in our customers’ living rooms.   As part of our Customer Acquisition team, you will lead the way to our internationalized television user interface designed to help new customers find Netflix and start streaming movies in seconds.  This new experience will be deployed to HTML5 capable embedded browsers and served from our cutting edge cloud based backend service.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;---------&lt;br /&gt;Update - &lt;a href="http://www.hackingnetflix.com/2010/05/netflix-to-support-html-5-in-browsers-and-tvbased-devices.html"&gt;Hacking Netflix&lt;/a&gt; and &lt;a href="http://techcrunch.com/2010/05/19/netflix-html5/"&gt;TechCrunch&lt;/a&gt; picked up on this posting. MG Siegler at TechCrunch decided that I was talking about streaming video and Silverlight, which I wasn't. I was thinking of HTML5 features that let us build very cool user interfaces with drag-and-drop, canvas transforms etc. for the web site, and for embedded TV devices specifically. The Silverlight player is used for PC/Mac playback only, and the basic HTML5 Video doesn't have a viable DRM solution at this point. I'm the Cloud Architect for Netflix, so my involvement is to architect robust and scalable support in the cloud for these new user interfaces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7546852871240602113?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7546852871240602113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/05/netflix-in-cloud-and-html5.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7546852871240602113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7546852871240602113'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/05/netflix-in-cloud-and-html5.html' title='Netflix in the cloud and HTML5'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4005874610891910907</id><published>2010-05-12T08:43:00.000-07:00</published><updated>2010-05-12T08:54:18.500-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Structure Completed</title><content type='html'>After lots of stops and starts, all that is left to do is some exterior paint and to fit the main doors. Work has already started on the electrical installation and water for fire sprinklers. Since the walls got so wet, they warped and parts of the siding had to be replaced. For some reason Tuffshed did other jobs on days where the weather was nice, and turned up to work on this one whenever it rained. We had what was probably the last rain of the winter on Sunday and Monday, but the roof was already tiled by then. The last video was the trusses being installed, here is the rest of the sequence.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iIIUrhMML-k&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/iIIUrhMML-k&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iSVqgvPTg5M&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/iSVqgvPTg5M&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/PMuMgLJMoKQ&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/PMuMgLJMoKQ&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HaOO9ihExhg&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HaOO9ihExhg&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DrosZv8C6DM&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/DrosZv8C6DM&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Moving the viewpoint to catch trench digging around the back of the garage.&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Nj1YCcHTXRY&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Nj1YCcHTXRY&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4005874610891910907?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4005874610891910907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/05/garage-structure-completed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4005874610891910907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4005874610891910907'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/05/garage-structure-completed.html' title='Garage Structure Completed'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1671953927792147569</id><published>2010-05-06T07:27:00.000-07:00</published><updated>2010-05-06T07:40:54.024-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>Cloud Architect</title><content type='html'>my role at Netflix just changed, from managing development of personalization in the cloud, to over-all cloud architect for Netflix. New challenges and a much broader scope. One challenge we have as we migrate to the cloud is that we need to build a new way to log and analyze what the systems in the cloud are doing, and we are basing this on Chukwa, Hadoop and Hive, all running in AWS. So we are &lt;a href="http://jobs.netflix.com/DetailFlix.asp?jobid=flix3708"&gt;looking to hire a Hadoop developer&lt;/a&gt;, and are looking at the &lt;a href="http://perspectives.mvdirona.com/2010/05/04/PattersonOnCloudComputing.aspx"&gt;research going on at Berkeley's RAD lab&lt;/a&gt; with interest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1671953927792147569?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1671953927792147569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/05/cloud-architect.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1671953927792147569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1671953927792147569'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/05/cloud-architect.html' title='Cloud Architect'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7885929279480223540</id><published>2010-04-28T22:21:00.000-07:00</published><updated>2010-05-08T11:30:25.506-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='Microcell'/><category scheme='http://www.blogger.com/atom/ns#' term='ATT'/><title type='text'>AT&amp;T 3G Microcell doesn't support corporate account phones</title><content type='html'>I just got an ATT 3G Microcell for home, since our service is intermittent, sometimes so bad I can't send an SMS message successfully (although at times it works fine). We live in the mountains, and have several different poor signals to bond to, so that's probably why it is variable.&lt;br /&gt;&lt;br /&gt;In the store, they checked my phone number and said I couldn't activate a Microcell on my account, since it's a Netflix corporate account iPhone. However, my wife has an iPhone on a personal account, so I used that as the activation account.&lt;br /&gt;&lt;br /&gt;However, when I tried to add my own phone number to the Microcell's whitelist of up to 10 numbers, I got this error message&lt;br /&gt;&lt;br /&gt;"FTC309: invalid subscriber information found" - which got no hits on Google, however after this blog post it should get one..&lt;br /&gt;&lt;br /&gt;So the website told me to call the generic ATT support number. After a few short waits, a very polite first level support guy (who had probably never heard of the Microcell before I called) found a well informed business support specialist who was able to confirm that the error code was due to the Microcell only supporting consumer accounts. She agreed that it didn't make a lot of sense, found that they had been running a trial of corporate accounts a few months ago, but didn't know when/if it might change. She forwarded me an internal support document that discussed the limitations of the trial, including the lack of corporate support. Although it does say that it supports all ATT 3G devices.&lt;br /&gt;&lt;br /&gt;I installed it anyway, it takes a few hours to set itself up the first time. We will see how well it works for other iPhones, meanwhile I will just have to use Skype to make calls and send SMS... If it doesn't work out I will take it back.&lt;br /&gt;&lt;br /&gt;------- Update -------&lt;br /&gt;I contacted the corporate account support team via work, and they over-rode the system to add me to the Microcell. So my corporate account iPhone is now working fine with the Microcell. They are investigating further to see if they can make this a more general fix for other people, but if you are in the same situation as I was, you should be able to escalate to support to get it fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7885929279480223540?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7885929279480223540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/at-3g-microcell-doesnt-support.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7885929279480223540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7885929279480223540'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/at-3g-microcell-doesnt-support.html' title='AT&amp;T 3G Microcell doesn&apos;t support corporate account phones'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-628906609359456297</id><published>2010-04-27T09:12:00.000-07:00</published><updated>2010-04-27T09:32:16.610-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>Hiring a cloud platform engineer at Netflix</title><content type='html'>If you are interested in &lt;a href="http://www.cloudera.com/blog/2010/04/cap-confusion-problems-with-partition-tolerance/"&gt;the CAP theorem&lt;/a&gt; NoSQL systems like &lt;a href="http://www.infoq.com/presentations/Project-Voldemort-Scaling-Simple-Storage"&gt;Voldemort, &lt;/a&gt; Cassandra and SimpleDB, &lt;a href="http://www.infoq.com/presentations/Horizontal-Scalability"&gt;scalability&lt;/a&gt; and expect to be at the &lt;a href="http://en.oreilly.com/velocity2010"&gt;Velocity Conference&lt;/a&gt; in June, then you are the &lt;a href="http://jobs.netflix.com/DetailFlix.asp?jobid=flix3571"&gt;kind of engineer I'm interested in hiring&lt;/a&gt;. Netflix is aggressively moving to new technology, hiring only the very best and most experienced engineers and our growth is accelerating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-628906609359456297?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/628906609359456297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/hiring-cloud-platform-engineer-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/628906609359456297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/628906609359456297'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/hiring-cloud-platform-engineer-at.html' title='Hiring a cloud platform engineer at Netflix'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8595437598544711209</id><published>2010-04-22T00:21:00.000-07:00</published><updated>2010-04-22T00:31:58.182-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Trusses Video</title><content type='html'>On Tuesday a big truck had some difficulty delivering a 40ft trailer containing the roof framing trusses, but it was raining so that is all that happened.&lt;br /&gt;&lt;br /&gt;On Wednesday 21st April it started out dry, rained for a while then cleared up, but they did manage to put up all the trusses, and I made another stop-motion video of the work.&lt;br /&gt;&lt;br /&gt;Tuffshed aren't great at letting us know what is going to happen next, we have to call them or ask the workers. I think the next step is to put plywood sheeting on the roof, then get an inspector up to check that the nailing pattern is correct, then they can put the doors and windows in, tile the roof add the external trim and paint it. It should be much warmer and sunny for the next few days.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/d7Q-suFmOZ8&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/d7Q-suFmOZ8&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8595437598544711209?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8595437598544711209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-trusses-video.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8595437598544711209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8595437598544711209'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-trusses-video.html' title='Garage Trusses Video'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-2098329500972120002</id><published>2010-04-19T02:53:00.000-07:00</published><updated>2010-04-22T00:20:11.286-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>garage - roof and rain on Tuesday</title><content type='html'>the roof trusses will be delivered tomorrow and rain is forecast for Tuesday and Wednesday - so we will see how they deal with that... it sucks that we don't have a roof before the rain. &lt;div class="iblogger-footer"&gt;&lt;br clear="all"/&gt;&lt;p style="text-align:right;font-size:10px;"&gt;[Posted with &lt;a href="http://illuminex.com/iBlogger/index.html"&gt;iBlogger&lt;/a&gt; from my iPhone]&lt;/p&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-2098329500972120002?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/2098329500972120002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-roof-and-rain-on-tuesday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2098329500972120002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2098329500972120002'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-roof-and-rain-on-tuesday.html' title='garage - roof and rain on Tuesday'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-9084440492019930667</id><published>2010-04-16T09:24:00.000-07:00</published><updated>2010-04-16T09:26:39.386-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Framing Walkaround</title><content type='html'>The walls are up, but the trusses for the roof aren't ready, so it will be finished off next week. Luckily the weather looks good for the next week or so.&lt;br /&gt;&lt;br /&gt;&lt;object width="420" height="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HHiw3Mg74T4&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HHiw3Mg74T4&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-9084440492019930667?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/9084440492019930667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-framing-walkaround.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/9084440492019930667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/9084440492019930667'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-framing-walkaround.html' title='Garage Framing Walkaround'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6976564856580827171</id><published>2010-04-14T18:33:00.000-07:00</published><updated>2010-04-14T18:36:56.489-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Framing - first day of construction</title><content type='html'>Tuffshed turned up with their pre-built sections, assembled them and added some siding and the main door frame. Another stop-motion video on YouTube. It was wet over the weekend, and the ground is very soft, but we have a few dry and warm days in a row forecast, so I'm hoping it will dry out now.&lt;br /&gt;&lt;br /&gt;&lt;object width="420" height="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/h3MmG6ixkSg&amp;hl=en_US&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/h3MmG6ixkSg&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6976564856580827171?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6976564856580827171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-framing-first-day-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6976564856580827171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6976564856580827171'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-framing-first-day-of.html' title='Garage Framing - first day of construction'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3062518213075257337</id><published>2010-04-10T23:09:00.000-07:00</published><updated>2010-04-10T23:39:58.941-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><title type='text'>Experiences using an iPad as my primary work laptop</title><content type='html'>I spent the last week carrying my iPad with me to meetings and using it as my main system at home an in my cube. My laptop was used for a few things, like the performance monitoring tool AppDynamics - which needs a bigger screen and is flash based, but just about everything else was usable on the iPad.&lt;br /&gt;&lt;br /&gt;I have the apple case, which I think is essential, as it holds the iPad up at the right angle to use on a desk or lap, as well as protecting it and making it less slippery to carry around. I got the Video out cable but haven't had a chance to use it yet. After intensive use, the battery is still at 60% or more each evening.   &lt;br /&gt;&lt;br /&gt;I like the speed at which apps like mail and calendar come up, and they are both very nice to use, I prefer them to entourage on my Mac laptop. I spend a lot of my day reading writing and deleting email. Safari is also fast and worked well for gmail. I imported a PowerPoint presentation to keynote on the iPad and it needed adjustments to font sizes in diagrams, and lost some color coding, but seems like a usable tool. I will switch to keynote on my Mac as well and hopefully it will be compatible.&lt;br /&gt;&lt;br /&gt;I have a VNC app, but moving the mouse cursor around is a a pain so it's only useful for emergency access to my laptop. &lt;br /&gt;&lt;br /&gt;The other app I use a lot is NewsRack, which tracks about 100 random rss feeds for me by keeping in sync with google reader. I get most of my news and keep up with friends blogs this way. Compared to the iPhone version it seems to update much faster and the extra screen space is well used. The BBC app provides a more visual way to track stories, and the Guardian Eyewitness photography app contains stunning images, it's one of the most popular free apps at the moment. &lt;br /&gt;&lt;br /&gt;Typing on the iPad is better than expected with two caveats. I keep hitting the b or n keys when I mean to hitbspace (like that), and the auto correction system is a bit over-active so I have to proofread what I write more than usual.&lt;br /&gt;&lt;br /&gt;Of course I have been watching movies with the Netflix app, and have used the eBay and Pandora iPad apps, which look good. I'm still using the iPhone version of echofon as my Twitter reader, but I will try out the official twitter app when it comes out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3062518213075257337?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3062518213075257337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/experiences-using-ipad-as-my-primary.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3062518213075257337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3062518213075257337'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/experiences-using-ipad-as-my-primary.html' title='Experiences using an iPad as my primary work laptop'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8757356208799736750</id><published>2010-04-08T08:49:00.000-07:00</published><updated>2010-04-08T09:04:11.093-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage - Pouring and Finishing the Foundation</title><content type='html'>Last Friday we poured concrete, and then it poured rain. Here's a stop-motion video of the work. Six concrete trucks came, we are high on the mountain, so they may not have been carrying a full load each time. The foundation is very deep on the downhill side, and the slab is 6" deep rather than the 4" minimum used for the walkway down the side and the parking apron.&lt;br /&gt;&lt;br /&gt;The first few seconds of each video look messy, this was introduced when youtube encoded it, my original video is fine.&lt;br /&gt;&lt;br /&gt;&lt;object width="420" height="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/m1rKRilg5BQ&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/m1rKRilg5BQ&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;On Saturday, the weather was better, and the team came back to finish the surface and tidy up.&lt;br /&gt;&lt;br /&gt;&lt;object width="420" height="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YAmjBGAV5q8&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/YAmjBGAV5q8&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Final bill was about $25K, and I would recommend Amaya Concrete of Morgan Hill, they did a good job.&lt;br /&gt;&lt;br /&gt;This week, we let the concrete cure, wait for the ground to dry out and do some basic grading of the ground levels and slopes. Next week the building will be delivered and installed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8757356208799736750?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8757356208799736750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-pouring-and-finishing-foundation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8757356208799736750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8757356208799736750'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/garage-pouring-and-finishing-foundation.html' title='Garage - Pouring and Finishing the Foundation'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8329994429888891380</id><published>2010-04-07T07:29:00.000-07:00</published><updated>2010-04-07T07:39:29.293-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><title type='text'>IPad makes it hard to embed YouTube in blog</title><content type='html'>I'm trying to compose a blog post that embeds a YouTube video, but YouTube doesn't want to give me the HTML fragment to embed the video. If you browse to YouTube on an iPad it doesn't show any options to pick up the embed because it renders in "touch" mode. At the bottom of the page I found an option to switch to desktop mode and get the full page. This renders an embed option but doesn't let me select it to copy here. &lt;br /&gt;&lt;br /&gt;So I need to use my MacBook to compose posts. &lt;br /&gt;&lt;br /&gt;As the iPad moves the boundaries between content consumption and content generation, people need to rethink the functionality of the mobile and iPhone optimized web sites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8329994429888891380?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8329994429888891380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/04/ipad-makes-it-hard-to-embed-youtube-in.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8329994429888891380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8329994429888891380'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/04/ipad-makes-it-hard-to-embed-youtube-in.html' title='IPad makes it hard to embed YouTube in blog'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1565385806221048027</id><published>2010-03-29T21:06:00.000-07:00</published><updated>2010-03-29T21:10:52.675-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage - Inspected and delayed</title><content type='html'>We passed inspection by the county this morning, but the weather has turned too bad to pour concrete tomorrow, so we are postponing until after Wednesday's storm has passed, and will resume work on Friday. Today the electrician finished his work on the pipe that carries the power, and the Tuffshed foreman Mike visited to inspect the site and check and adjust the position of the hold-down bolts that are set into the foundation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1565385806221048027?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1565385806221048027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-inspected-and-delayed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1565385806221048027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1565385806221048027'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-inspected-and-delayed.html' title='Garage - Inspected and delayed'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3016007598259713220</id><published>2010-03-29T21:01:00.000-07:00</published><updated>2010-03-29T21:06:18.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmg'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>My CMG paper on Crunching Data In the Cloud is published in MeasureIT</title><content type='html'>The slides are also available at &lt;a href="http://www.slideshare.net/adrianco/crunch-your-data-in-the-cloud-with-elastic-map-reduce-amazon-emr-hadoop"&gt;http://www.slideshare.net/adrianco/crunch-your-data-in-the-cloud-with-elastic-map-reduce-amazon-emr-hadoop&lt;/a&gt; - and MeasureIT has a PDF of the whole paper at &lt;a href="http://www.cmg.org/measureit/"&gt;http://www.cmg.org/measureit/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3016007598259713220?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3016007598259713220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/my-cmg-paper-on-crunching-data-in-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3016007598259713220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3016007598259713220'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/my-cmg-paper-on-crunching-data-in-cloud.html' title='My CMG paper on Crunching Data In the Cloud is published in MeasureIT'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5237741751724872390</id><published>2010-03-27T21:35:00.000-07:00</published><updated>2010-03-27T21:48:10.947-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage - Working on Saturday</title><content type='html'>The concrete team were back today, putting in more rebar and tidying everything up. Chris Ramoutar the Electrician was also here putting in a 2-inch pipe to carry power to the garage. I'm having a high spec 220V and 200Amps dedicated circuit configured so that it's ready to recharge electric cars in the future. I got a work-out clearing up the felled fir tree and chipping the small branches, and collecting large rocks that had been dug up, and arranging them around the pond.&lt;br /&gt;&lt;br /&gt;Here's a view from the deck, you can see the apron on the right, and the garage foundation on the left, and Chris working in the trench that takes the power line.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BXNMRLEUkRQ/S67ds52MkBI/AAAAAAAAAQU/58ffGWqRFn8/s1600/deck-rebar.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_BXNMRLEUkRQ/S67ds52MkBI/AAAAAAAAAQU/58ffGWqRFn8/s320/deck-rebar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5453539962304368658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a view from where the driveway will be as it joins the apron, you can see the walkway to the left of the garage.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/S67dtXP0liI/AAAAAAAAAQk/EeogfO9bJas/s1600/drive-rebar.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/S67dtXP0liI/AAAAAAAAAQk/EeogfO9bJas/s320/drive-rebar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5453539970196477474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Later that evening some very confused deer wandered over the foundations, since it has been built over their usual path from the forest out to the front yard.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BXNMRLEUkRQ/S67dtFn2RcI/AAAAAAAAAQc/0kq-wYrc84Q/s1600/deer-rebar.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_BXNMRLEUkRQ/S67dtFn2RcI/AAAAAAAAAQc/0kq-wYrc84Q/s320/deer-rebar.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5453539965465413058" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5237741751724872390?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5237741751724872390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-working-on-saturday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5237741751724872390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5237741751724872390'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-working-on-saturday.html' title='Garage - Working on Saturday'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BXNMRLEUkRQ/S67ds52MkBI/AAAAAAAAAQU/58ffGWqRFn8/s72-c/deck-rebar.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5237844435408708581</id><published>2010-03-26T21:15:00.000-07:00</published><updated>2010-03-26T21:27:58.179-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Site - rebar ready</title><content type='html'>Another stop motion video at 30s intervals shows most of the day's work. The tree that was falling over was pushed back the other way and cut up, and they added the parking "apron" in front of the garage.&lt;br /&gt;&lt;br /&gt;There is a 4ft wide walkway along the side of the garage by the house, so the main pad is 36 by 36ft. It slopes to the right by three inches over that width so it will drain. The walkway slopes away from the garage by one inch. The apron is 26ft deep, 36ft wide and slopes by 12 inches (4%). The driveway will connect to the side of the apron that is nearest the house.&lt;br /&gt;&lt;br /&gt;&lt;object width="420" height="255"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3EqiVgEcbsw&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3EqiVgEcbsw&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="255"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5237844435408708581?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5237844435408708581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-site-rebar-reader.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5237844435408708581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5237844435408708581'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-site-rebar-reader.html' title='Garage Site - rebar ready'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3708400389223019259</id><published>2010-03-25T23:00:00.000-07:00</published><updated>2010-03-25T23:13:35.889-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Site - digging the foundations</title><content type='html'>Today the new leach-field pipe was inspected, and the foundations were dug, I did a stop-motion video using iStopMotion on an old MacOS laptop looking down from the house, and most of the day's work is compressed into one minute.&lt;br /&gt;&lt;br /&gt;&lt;object width="420" height="255"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Qy_CpzdjxHI&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Qy_CpzdjxHI&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="420" height="255"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Tomorrow they will do the detailed preparations for the pour on Monday of the garage slab itself (6" thick), perimeter foundation (at least 18" deep, more on the downhill side where it is on in-fill), a walkway down the side of the garage, an "apron" in front of the garage to park on, and pads for the propane tank and generator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3708400389223019259?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3708400389223019259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-site-digging-foundations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3708400389223019259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3708400389223019259'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-site-digging-foundations.html' title='Garage Site - digging the foundations'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4420246454392881851</id><published>2010-03-24T22:37:00.000-07:00</published><updated>2010-03-24T22:50:27.060-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Site - full speed ahead</title><content type='html'>Pictures taken this morning, before digging started for the new leach field pipe that's getting inspected and filled back in on Thursday. The foundation layout and trenching will be done on Thursday and Friday, hopefully pouring concrete Monday and inspections on Tuesday. Everything just went from glacially slow to full speed....&lt;br /&gt;&lt;br /&gt;In the first picture, taken from a window in the house, the white blob is the propane tank, and you can see the leaning tree.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/S6r3Bx0CNwI/AAAAAAAAAQE/5vmZf3X5-VE/s1600/GarageSiteBefore1.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/S6r3Bx0CNwI/AAAAAAAAAQE/5vmZf3X5-VE/s320/GarageSiteBefore1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5452441908808922882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The second picture is looking back from by the tree. The two low black things by the house are the caps for the septic tank.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/S6r3CGpo9VI/AAAAAAAAAQM/WOCKQU0yuK8/s1600/GarageSiteBefore2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/S6r3CGpo9VI/AAAAAAAAAQM/WOCKQU0yuK8/s320/GarageSiteBefore2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5452441914402469202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm setting up a stop motion camera, will try to capture the building process. The MacOS iStopMotion app seems to work fine and has a five day free trial, so we will see how that goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4420246454392881851?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4420246454392881851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-site-full-speed-ahead.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4420246454392881851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4420246454392881851'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-site-full-speed-ahead.html' title='Garage Site - full speed ahead'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BXNMRLEUkRQ/S6r3Bx0CNwI/AAAAAAAAAQE/5vmZf3X5-VE/s72-c/GarageSiteBefore1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8635357462907857013</id><published>2010-03-24T12:31:00.000-07:00</published><updated>2010-03-24T12:39:15.309-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Permit - now the fun starts</title><content type='html'>I went into the county office and picked up the permit, paid them some more money to cover their costs of inspecting the work as we do it. They gave me back one of the marked up copies of the final site and building plans, and the permit sheet, and I stopped off at a Fedex office to get several copies made. Next stop is Tuffshed, to talk to the foreman who gets it built, and the concrete contractor (Jose Amaya Concrete of Morgan Hill) who normally works with Tuffshed. Jose is available immediately so we may actually get going fairly quickly. First step is to mark out the foundation and pour it.&lt;br /&gt;&lt;br /&gt;The new septic tank connection pipe is going in today and being inspected tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8635357462907857013?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8635357462907857013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-permit-now-fun-starts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8635357462907857013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8635357462907857013'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-permit-now-fun-starts.html' title='Garage Permit - now the fun starts'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5999475430319871511</id><published>2010-03-23T22:18:00.001-07:00</published><updated>2010-03-23T22:18:22.273-07:00</updated><title type='text'>The Periodic Table of Periodic Tables</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/bk/4455590301/" title="photo sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2699/4455590301_fbe525d0b2_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;&lt;a href="http://www.flickr.com/photos/bk/4455590301/"&gt;The Periodic Table of Periodic Tables&lt;/a&gt;&lt;br /&gt;Originally uploaded by &lt;a href="http://www.flickr.com/people/bk/"&gt;★keaggy.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;Excellent science geekery&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5999475430319871511?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5999475430319871511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/periodic-table-of-periodic-tables.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5999475430319871511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5999475430319871511'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/periodic-table-of-periodic-tables.html' title='The Periodic Table of Periodic Tables'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2699/4455590301_fbe525d0b2_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-977705462505853383</id><published>2010-03-19T22:49:00.000-07:00</published><updated>2010-03-19T23:01:17.517-07:00</updated><title type='text'>Garage plans approved</title><content type='html'>The county turned around the final update immediately and I got a letter in the mail today! Now I just need to visit them to get the actual permit document.&lt;br/&gt;&lt;br/&gt;I'm getting started with the first step next week... &lt;div class="iblogger-footer"&gt;&lt;br clear="all"/&gt;&lt;p style="text-align:right;font-size:10px;"&gt;[Posted with &lt;a href="http://illuminex.com/iBlogger/index.html"&gt;iBlogger&lt;/a&gt; from my iPhone]&lt;/p&gt;&lt;br/&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-977705462505853383?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/977705462505853383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-plans-approved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/977705462505853383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/977705462505853383'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-plans-approved.html' title='Garage plans approved'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8659944888976132909</id><published>2010-03-19T12:46:00.000-07:00</published><updated>2010-03-19T12:55:05.767-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Spring Equinox Update</title><content type='html'>Spring is here, and we just had a few clear days, shown below. The sunrise and sunset are about 12 hours apart. We installed the system just before the fall equinox, so we now have a good calibration of the output levels through the least sunny part of the year, from now on it will be interesting to track the output as we go to the longest day.&lt;br /&gt;&lt;br /&gt;Actual average output over the last 200 or so days is about 14.3 KWh/day. Yesterday was 22.5 KWh, and &lt;a href="http://perfcap.blogspot.com/2009/12/solar-power-winter-solstice-and-new.html"&gt;at the winter solstice low point it was 16 KWh on a clear day&lt;/a&gt; as previously blogged.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/S6PU1Sua05I/AAAAAAAAAP4/duEJVOhzAQg/s1600-h/Screen+shot+2010-03-19+at+12.45.33+PM.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 158px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/S6PU1Sua05I/AAAAAAAAAP4/duEJVOhzAQg/s320/Screen+shot+2010-03-19+at+12.45.33+PM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5450433986073121682" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8659944888976132909?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8659944888976132909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/solar-power-spring-equinox-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8659944888976132909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8659944888976132909'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/solar-power-spring-equinox-update.html' title='Solar Power - Spring Equinox Update'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BXNMRLEUkRQ/S6PU1Sua05I/AAAAAAAAAP4/duEJVOhzAQg/s72-c/Screen+shot+2010-03-19+at+12.45.33+PM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-170587302396578904</id><published>2010-03-17T12:04:00.000-07:00</published><updated>2010-03-17T12:21:17.341-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Plan Resubmitted</title><content type='html'>This morning I took the requested clarifications on the building design into the county offices. We should hear back in a week or two, it's minor stuff so I hope this is the last step. We already have our permit for the leach field repair, so I'm starting on that work. We got the septic tank pumped and inspected (it was in good condition) this week, and filed the inspection results with the county, so the next step is to put in a new re-routed pipe and diversion valve between the tank and the leach field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-170587302396578904?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/170587302396578904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-plan-resubmitted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/170587302396578904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/170587302396578904'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-plan-resubmitted.html' title='Garage Plan Resubmitted'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3956124775263610824</id><published>2010-03-13T18:52:00.000-08:00</published><updated>2010-03-13T19:28:23.704-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>Garage Plan Detail</title><content type='html'>To get everything approved we had to survey the land and get a detailed plan drawn up by a Civil Engineer - we used&lt;a href="http://tscivileng.com"&gt; Terry Szewczyk&lt;/a&gt; and he was helpful, competent and kept the costs to a minimum. The picture below is a detail from one of the drawings, which were produced at 1inch to 20ft scale, and shows the important part where the garage goes. For some reason the contour lines altitude is shown based around 2000ft, whereas the real altitude is about 2400ft, but no-one seems to care if that aspect of it is accurate.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BXNMRLEUkRQ/S5xPpw0x3pI/AAAAAAAAAPU/dzNolhsXaKY/s1600-h/garageplandetail.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 315px;" src="http://3.bp.blogspot.com/_BXNMRLEUkRQ/S5xPpw0x3pI/AAAAAAAAAPU/dzNolhsXaKY/s320/garageplandetail.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5448317228110962322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Our first step is to replace the pipe that goes from the septic tank to the diversion valve and the remaining leach field, so we start by getting the tank emptied (which needs to be done every few years anyway). The pipe has to dive down a bit then go across under the concrete "apron" that will lead up to the garage, and it won't be buried very deep, so we will be putting down a 4" pipe that is placed inside a 6" pipe for the part that goes under the driveway, to give it extra protection from being crushed.&lt;br /&gt;&lt;br /&gt;The final detailed changes we need on the building design plan are now in hand (the layout plan shown above is already approved), so I'm back to the county office again next week to resubmit them and hopefully get the permit.&lt;br /&gt;&lt;br /&gt;The other details you can see on the plan are the electrical connection, which will be a 220V -200Amp dedicated circuit capable of charging electric cars one day. The propane tank will be relocated, and hooked up to a generator and the house. There is also a water connection to a fire sprinkler system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3956124775263610824?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3956124775263610824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-plan-detail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3956124775263610824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3956124775263610824'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/garage-plan-detail.html' title='Garage Plan Detail'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BXNMRLEUkRQ/S5xPpw0x3pI/AAAAAAAAAPU/dzNolhsXaKY/s72-c/garageplandetail.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1900955246148694090</id><published>2010-03-10T19:56:00.000-08:00</published><updated>2010-03-13T18:42:33.255-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WiFi'/><title type='text'>WiFi upgrade</title><content type='html'>My five year old wifi hardware got flaky and slow, so I looked around and decided to go with the D-Link DIR-825 as my central node and a DAP-1522 to bridge to my TV etc.&lt;br /&gt;&lt;br /&gt;They are both N spec dual frequency systems. Arrived today from Amazon for $225 for the pair.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[Update: they are working fine, I have a 130Mbit/s link speed reported on the 5GHz link between the DIR-825 and the DAP-1522, and I've shut down all the old WiFi networks].&lt;div class="iblogger-footer"&gt; &lt;p style="text-align:right;font-size:10px;"&gt;[Posted with &lt;a href="http://illuminex.com/iBlogger/index.html"&gt;iBlogger&lt;/a&gt; from my iPhone]&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1900955246148694090?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1900955246148694090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/03/wifi-upgrade.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1900955246148694090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1900955246148694090'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/03/wifi-upgrade.html' title='WiFi upgrade'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4734408740223890009</id><published>2010-02-26T23:49:00.000-08:00</published><updated>2010-02-27T00:18:08.998-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>sketching the new garage</title><content type='html'>While figuring out what we wanted to build, I used &lt;a href="http://sketchup.google.com/"&gt;Google Sketchup&lt;/a&gt; (the free version) to create a 3D model of the house and garage. Working with 3D takes a bit of getting used to, but it's very similar to the solid modeling I was doing to make custom 3D printed parts for my homebrew phone, and Sketchup is very good at getting these kind of artists-impression images created.&lt;br /&gt;&lt;br /&gt;The house really is a box, and the full width deck with steps going back down the side doesn't exist yet, but I was able to get the relative position and size of the garage about right so we could see if it fitted in. We then &lt;a href="http://www.tuffshed.com"&gt;went to TuffShed&lt;/a&gt; and got them to draw up plans for our oversized garage. If you get a garage custom "stick built" at the site, the cost is quite high, mostly labor. Tuffshed pre-fabricate the parts, ship them in, and put up the entire building in about three days. The cost (not including foundations) is about $30K for an 1150 square foot triple wide garage (32ft wide, 36ft deep), with a 16ft wide double door, 8ft wide single door, and 10ft high ceilings. The basic cost is more like $20K, but it cost extra to go from 8ft to 10ft ceilings, and we added a bunch of other extra options.&lt;br /&gt;&lt;br /&gt;So far, we have had a few minor issues getting the Tuffshed plans approved by the county planning department. Really just clarifications of materials and codes on the drawings, but the first two tries have failed. Everything is now approved apart from the final tweaks to the drawings of the garage, so I'm hoping to get it taken care of next week.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BXNMRLEUkRQ/S4jO-yfpubI/AAAAAAAAAPE/Aivi7cJTinc/s1600-h/Garage2009+Tuffshed.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://3.bp.blogspot.com/_BXNMRLEUkRQ/S4jO-yfpubI/AAAAAAAAAPE/Aivi7cJTinc/s320/Garage2009+Tuffshed.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5442827727778986418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/S4jO_P_3PeI/AAAAAAAAAPM/ZvezjDKVahY/s1600-h/Garage2009+Tuffshed+2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/S4jO_P_3PeI/AAAAAAAAAPM/ZvezjDKVahY/s320/Garage2009+Tuffshed+2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5442827735698718178" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4734408740223890009?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4734408740223890009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/02/sketching-new-garage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4734408740223890009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4734408740223890009'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/02/sketching-new-garage.html' title='sketching the new garage'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BXNMRLEUkRQ/S4jO-yfpubI/AAAAAAAAAPE/Aivi7cJTinc/s72-c/Garage2009+Tuffshed.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7220807761978454603</id><published>2010-02-23T22:56:00.000-08:00</published><updated>2010-02-27T00:21:05.320-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>the garage saga, it gets complicated</title><content type='html'>We live out of town, on top of the Santa Cruz mountains. This makes a few things easier, we only have Santa Clara County to deal with, no city rules. We also have more space. The downside is that it can be hard to find people to work on the house, and it can cost more to deliver heavy stuff like gravel than it costs to buy it. &lt;br/&gt;&lt;br/&gt;The complications start with a scenic highway. We can't build anything within 100ft of the road, Then there is a well, we can't do things within a 100ft radius of that. Then there is a septic tank and leach field. The leach field is two banks of 250ft long buried perforated pipes which occupies a lot of space, including the space that we want to put a garage on. Then a driveway has to find it's way through and have a turn around area big enough to take a fire engine. All of a sudden, a few acres of land is full.&lt;br/&gt;&lt;br/&gt;A few years ago we got a plan drawn up for a modified leach field layout. This removed the upper 250ft field so that we could put the garage there, and added a new 250ft field below. To comply with planning rules we had to show that we could on theory add another 500ft of leach field if the first one failed. So that took up almost all the space.&lt;br/&gt;&lt;br/&gt;After all that the biggest possible garage we could fit is a free standing building 32ft wide and 36ft deep. It will have one single and one double door and sit alongside the house about 20ft away and slightly downhill.&lt;br/&gt;&lt;br/&gt;To prove that the space existed I got my local ground moving specialist Bob Whalen to use an excavator to dig holes and locate the leach field pipes, and made a big flat area in the right place. Along the way we destroyed the upper leach field before I got permission, we got told off but since the rest of the plan made sense we got away with it and were able to move forward. &lt;br/&gt;&lt;br/&gt;At some point the county realized that the plan they had for my driveway bore no relation to what had been put in by the people who built the house, this raised the spectre of a grading violation and possible grading permit, which would be needed if we had to move more than 150 cubic yards to get a driveway that conformed to code.&lt;br/&gt;&lt;br/&gt;With a lot of help from Terry and crew at TS Civil Engineering we ended up with a plan for the driveway and leach field that met code, didnt raise a violation and didn't need over 100 cubic yards of grading. With a few tweaks the county finally approved the plan. &lt;div class="iblogger-footer"&gt;&lt;br clear="all"/&gt;&lt;p style="text-align:right;font-size:10px;"&gt;[Posted with &lt;a href="http://illuminex.com/iBlogger/index.html"&gt;iBlogger&lt;/a&gt; from my iPhone]&lt;/p&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7220807761978454603?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7220807761978454603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/02/garage-saga-it-gets-complicated.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7220807761978454603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7220807761978454603'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/02/garage-saga-it-gets-complicated.html' title='the garage saga, it gets complicated'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-621166878081189432</id><published>2010-02-23T00:36:00.000-08:00</published><updated>2010-02-27T00:20:44.288-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='garage'/><title type='text'>cars and a place to keep them...</title><content type='html'>I'm going to blog about cars over the coming months, partly because I'm about to start building a big garage to keep them in and I want to document the process.&lt;br/&gt;&lt;br/&gt;We bought a house about 5 years ago that had a wooden shed as it's single garage. We had five cars at the time and there seemed to be enough space to build a big garage. However other priorities intervened and it wasn't until the middle of 2009 we finally got serious.&lt;br/&gt;&lt;br/&gt;The first action was to make a large flat space, to see how big it could be, then we got bogged down in the planning process and this week we finally have the key approvals in place!&lt;br/&gt;&lt;br/&gt;More details to come....&lt;div class="iblogger-footer"&gt;&lt;br clear="all"/&gt;&lt;p style="text-align:right;font-size:10px;"&gt;[Posted with &lt;a href="http://illuminex.com/iBlogger/index.html"&gt;iBlogger&lt;/a&gt; from my iPhone]&lt;/p&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-621166878081189432?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/621166878081189432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/02/cars-and-place-to-keep-them.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/621166878081189432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/621166878081189432'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/02/cars-and-place-to-keep-them.html' title='cars and a place to keep them...'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4915171662083551461</id><published>2010-02-18T18:23:00.000-08:00</published><updated>2010-02-18T21:58:38.596-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>Netflix Free Trial link</title><content type='html'>If you were thinking of joining Netflix, &lt;a href="http://clickserve.cc-dt.com/link/click?lid=41000000030334633"&gt;click this link to get a two week free trial&lt;/a&gt; - it's a new affiliate program that Netflix is starting via the Google Advertiser Network. I will update the free trial link in my iPhone app in the next version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4915171662083551461?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4915171662083551461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/02/netflix-free-trial-link.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4915171662083551461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4915171662083551461'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/02/netflix-free-trial-link.html' title='Netflix Free Trial link'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4668665123540478117</id><published>2010-02-12T07:55:00.001-08:00</published><updated>2010-02-12T07:55:38.642-08:00</updated><title type='text'>Bil2010 Millicomputing - The Future In Your Pocket</title><content type='html'>Here are my slides for BIL tomorrow, predictions for 2010 and 2011: &lt;div style="width:425px;text-align:left" id="__ss_3157473"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/adrianco/bil2010-millicomputing-the-future-in-your-pocket" title="Bil2010 Millicomputing - The Future In Your Pocket"&gt;Bil2010 Millicomputing - The Future In Your Pocket&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bil2010-millicomputing-100212094803-phpapp02&amp;stripped_title=bil2010-millicomputing-the-future-in-your-pocket" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bil2010-millicomputing-100212094803-phpapp02&amp;stripped_title=bil2010-millicomputing-the-future-in-your-pocket" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/adrianco"&gt;Adrian Cockcroft&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4668665123540478117?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4668665123540478117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/02/bil2010-millicomputing-future-in-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4668665123540478117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4668665123540478117'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/02/bil2010-millicomputing-future-in-your.html' title='Bil2010 Millicomputing - The Future In Your Pocket'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7572395262413520665</id><published>2010-01-24T13:55:00.000-08:00</published><updated>2010-01-24T16:37:40.518-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='web interfaces'/><title type='text'>Book: Release It! Design and Deploy Production Ready Software by Michael Nygard</title><content type='html'>Essential reading for anyone architecting web sites. It contains clear explanations and real-life anecdotes of many of the patterns and anti-patterns that I've run into over the years, and I'm learning some new ones. Now I just have to get all the engineers on my team to read it... &lt;a href="http://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers/dp/0978739213/"&gt;Here it is on Amazon&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7572395262413520665?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7572395262413520665/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/01/book-release-it-design-and-deploy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7572395262413520665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7572395262413520665'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/01/book-release-it-design-and-deploy.html' title='Book: Release It! Design and Deploy Production Ready Software by Michael Nygard'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4223953448870540378</id><published>2010-01-02T16:50:00.000-08:00</published><updated>2010-01-02T17:01:13.848-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>My iPhone apps 2009</title><content type='html'>the apps that I use most frequently: Echofon, Skype, Newsstand, Instant Queue Add for Netflix, Amazon, Kindle, Pandora, WootWatch, CoPilot.&lt;br /&gt;&lt;br /&gt;In particular I get most of my news via rss feeds using Newsstand, which synchronizes very well with Google Reader on my laptop. I don't own a kindle, but whenever possible I buy books to read on my iPhone using the kindle app.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4223953448870540378?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4223953448870540378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/01/my-iphone-apps-2009.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4223953448870540378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4223953448870540378'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/01/my-iphone-apps-2009.html' title='My iPhone apps 2009'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5181529746133031110</id><published>2010-01-02T16:04:00.000-08:00</published><updated>2010-01-02T16:46:17.973-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>My Music 2009</title><content type='html'>an eclectic list of the CDs that  I played most: by Amanda Palmer, The Duckworth Lewis Method, Fractal, Japonize Elephants, Zoe Keating, Tony Levin, Mirthkon, Muse, Queens of the Stone Age, Neil Young.&lt;br /&gt;&lt;br /&gt;Some of it was released in 2009, some of it was new to me in 2009, here are links to the albums.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://amandapalmer.net/"&gt;Amanda Palmer - Who Killed Amanda Palmer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dlmethod.com/"&gt;Neil Hannon - The Duckworth Lewis Method&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/album/sequitur/id305514613"&gt;Fractal - Sequitur&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/album/40-years-of-our-family/id261066718"&gt;Japonize Elephants - 40 Years of our Family&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/album/one-cello-x-16-natoma/id97723501"&gt;Zoe Keating - One Cello x 16: Natoma&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/album/stick-man/id266688708"&gt;Tony Levin - Stick Man&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mirthkon.com/"&gt;Mirthkon - Vehicle&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/album/the-resistance/id326492721"&gt;Muse - The Resistance&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/album/era-vulgaris/id257091632"&gt;Queens of the Stone Age - Era Vulgaris&lt;/a&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/album/fork-in-the-road/id310330195"&gt;Neil Young - Fork in the Road&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5181529746133031110?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5181529746133031110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2010/01/my-music-2009.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5181529746133031110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5181529746133031110'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2010/01/my-music-2009.html' title='My Music 2009'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8461810654272137743</id><published>2009-12-24T11:49:00.000-08:00</published><updated>2009-12-24T12:17:15.532-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Winter Solstice and New Ducting Update</title><content type='html'>I've previously shared the first few months of output from our solar system, we turned it on at the start of September, and on a clear day we were getting around 24KWh. As the days got shorter and the Sun got lower in the sky, the clear day output dropped off, and earlier this week we hit the winter solstice, the shortest day. Wednesday was a clear day, and we generated about 16KWh, as shown in the plot below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SzPGqafjXZI/AAAAAAAAAO8/Tpz9MzmIp9I/s1600-h/winter-solstice.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 157px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SzPGqafjXZI/AAAAAAAAAO8/Tpz9MzmIp9I/s320/winter-solstice.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418893208625307026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We have also seen the benefit of our E6-time of use rate plan. We generate electricity during the week while we are mostly out of the house at the highest rate, and use it at the cheapest rate. So we continue to be net consumers of electricity, generating between 50% and 70% of what we use, but our electricity bill is basically zero at this point. In addition, PG&amp;E just gave us a rebate of $67 due to lower energy costs, so the standing charge of $11.50/month is zeroed out for almost six months.&lt;br /&gt;&lt;br /&gt;We converted our gas appliances to electric, for heating water, drying clothes and cooking, and currently only use gas for the furnace that heats the house. We looked into replacing the furnace with a ground source heat pump (GSHP) but got wildly varying designs and costs from everyone we talked to so have postponed that idea. The one thing everyone agreed on was that our ducting was sub-standard, with insufficient flow for A/C and barely enough for the furnace, and it was poorly constructed using the lowest quality materials.&lt;br /&gt;&lt;br /&gt;So we have just replaced the ducts throughout the house, changing the configuration to include separate zones for upstairs and downstairs, adding a new return path from upstairs and one extra outlet. The ducts are insulated to R8, rather than R4.2, so they don't lose heat, and they have fewer leaks and a properly designed balance of air flow into each room. This is done using something called a Manual-J calculation, and there is also an independent analysis service that verifies that everything is working correctly. The main effect of this is that we will use less propane, and have much better control over temperature upstairs. We often want to heat the bedrooms without wanting to heat downstairs to the same level, and we now have a thermostat in the main bedroom for upstairs, as well as one downstairs.&lt;br /&gt;&lt;br /&gt;I'm planning to blog some more about GSHP options, its  quite complicated....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8461810654272137743?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8461810654272137743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/12/solar-power-winter-solstice-and-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8461810654272137743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8461810654272137743'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/12/solar-power-winter-solstice-and-new.html' title='Solar Power - Winter Solstice and New Ducting Update'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BXNMRLEUkRQ/SzPGqafjXZI/AAAAAAAAAO8/Tpz9MzmIp9I/s72-c/winter-solstice.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1243129515938071386</id><published>2009-12-16T01:48:00.000-08:00</published><updated>2009-12-16T03:06:00.783-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='global warming'/><category scheme='http://www.blogger.com/atom/ns#' term='350.org'/><category scheme='http://www.blogger.com/atom/ns#' term='climate change'/><title type='text'>Global Warming</title><content type='html'>Two essential books to read: Climate Cover-Up: The Crusade to Deny Global Warming by James Hoggan - how the oil and coal industries are behind the denialist spin doctors - will make you angry. Storms of My Grandchildren: The Truth About the Coming Climate Catastrophe and Our Last Chance to Save Humanity by James Hansen - will make you scared.&lt;br /&gt;&lt;br /&gt;James Hansen is the NASA scientist who is probably the worlds top climate expert. Industry and politicians don't want to hear the message he has been trying to get through for years, that the situation is much worse than the IPCC projections already. He provides the research background for the safe limit of 350ppm of CO2 that is being promoted by some at Copenhagen at the moment. We are already at 387ppm, and increasing rapidly, and we are seeing irreversible changes in climate as the ice melts. James is calling for a worldwide moratorium on building coal fired power plants as a first step. The oil and coal has to be left underground.&lt;br /&gt;&lt;br /&gt;Human civilization has occurred during a time of very stable sea levels, over the last 7000 years. Before that sea levels have changed more rapidly and over a range of hundreds of feet. Human induced global warming is forcing change an order of magnitude stronger than the natural changes in climate, and is still accelerating. With very unstable sea levels, ports and coastal areas are going to flood, and it will not be possible to establish new ports on a permanent basis, as they will be flooded in turn within the lifetimes of our children and grandchildren. The huge numbers of refugees is an even bigger problem.&lt;br /&gt;&lt;br /&gt;What can we do?&lt;br /&gt;Read those two books.&lt;br /&gt;Sell coastal property while there are still people who will buy it.&lt;br /&gt;Don't invest in oil, coal and insurance companies.&lt;br /&gt;Put up solar panels and switch from gas to electric appliances.&lt;br /&gt;Sign up at &lt;a href="http://www.350.org/"&gt;the 350.org web site&lt;/a&gt;, &lt;a href="http://www.facebook.com/350.org"&gt;join the 350org facebook group&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I get books via the Kindle service and read them on my iPhone, instant delivery, and always with me to read.&lt;br /&gt;&lt;a href="http://www.amazon.com/Climate-Cover-Up-Crusade-Global-Warming/dp/1553654854/"&gt;Climate Cover-Up: The Crusade to Deny Global Warming&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Storms-My-Grandchildren-Catastrophe-Humanity/dp/1608192008/"&gt;Storms of My Grandchildren: The Truth About the Coming Climate Catastrophe and Our Last Chance to Save Humanity&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A good summary of the arguments is at &lt;a href="http://www.skepticalscience.com/"&gt;Skeptical Science&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have read everything I can find on this subject over the last year or two, I have an Applied Physics degree and enough science and statistics that I can tell who and what makes sense and who doesn't. Every single denier and contrarian that I have heard of is backed by the coal and oil industries, often through opaque organizations and astroturf groups with innocent sounding names. They have been exposed as liars and cherry pickers, but really they are spin doctors sowing confusion. If you listen to them you are deluding yourself, and you should be investing in real estate in Florida...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1243129515938071386?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1243129515938071386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/12/global-warming.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1243129515938071386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1243129515938071386'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/12/global-warming.html' title='Global Warming'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6469252653268382008</id><published>2009-12-12T12:15:00.000-08:00</published><updated>2009-12-12T12:38:04.155-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmg'/><category scheme='http://www.blogger.com/atom/ns#' term='cmg09'/><category scheme='http://www.blogger.com/atom/ns#' term='velocity conference'/><title type='text'>CMG09 - Last Time Attendee</title><content type='html'>I presented a half day training class and a paper at CMG09 in Dallas last week. I won't be at CMG10. The conference has shrunk to a few hundred attendees, mostly mainframe oriented, a few vendors, and a bunch of independent consultants. Its main value for me was to maintain and extend my social network of capacity planning and performance people. There were some useful and interesting papers, but not enough to justify a full week long conference in a very expensive hotel. CMG10 is in Orlando FL, and I can't justify traveling to the east coast for more of the same.&lt;br /&gt;&lt;br /&gt;A few years ago I discussed with the CMG board members what was needed to keep CMG from shrinking into irrelevancy, at the time I was at eBay, and early December is the peak business level for retail industry, so very few capacity/performance experts from retail can get away at that time of year, and I suggested they move the date. The dominant industries attending CMG have been banking, insurance and finance, which have been hit hard in the recession. The other change I advocated was that CMG should be held in the Bay Area, so that it could attract a lot more people from the major Web companies and computer hardware and software companies that are based here. Unfortunately CMG is locked into a long series of Hotel commitments for several years, and can't change its plans.&lt;br /&gt;&lt;br /&gt;So my position now, is that I will attend CMG again when it comes to me. In the meantime, I will encourage the people I met every year at CMG to attend the Velocity Conference in San Jose next June. &lt;a href="http://en.oreilly.com/velocity2010"&gt;http://en.oreilly.com/velocity2010&lt;/a&gt; - the call for papers closes in January, so we have a few weeks to come up with abstracts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6469252653268382008?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6469252653268382008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/12/cmg09-last-time-attendee.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6469252653268382008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6469252653268382008'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/12/cmg09-last-time-attendee.html' title='CMG09 - Last Time Attendee'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-259947640928588669</id><published>2009-12-08T15:41:00.000-08:00</published><updated>2009-12-08T15:47:37.550-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmg'/><category scheme='http://www.blogger.com/atom/ns#' term='cmg09'/><title type='text'>Heading to CMG09 in Dallas today</title><content type='html'>various talks on capacity planning in the cloud on Wed, then I'm presenting on Thurs. My slides are at http://www.slideshare.net/adrianco - this is probably my last visit to CMG, its been shrinking for a while, we will see how it looks on the ground.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-259947640928588669?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/259947640928588669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/12/heading-to-cmg09-in-dallas-today.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/259947640928588669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/259947640928588669'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/12/heading-to-cmg09-in-dallas-today.html' title='Heading to CMG09 in Dallas today'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-523690866835834457</id><published>2009-10-24T17:38:00.000-07:00</published><updated>2009-10-24T18:11:53.970-07:00</updated><title type='text'>HPTS at Asilomar</title><content type='html'>I'm attending the High Performance Transaction Systems workshop http;//hpts,ws over the next few days. I'm chairing a session on moving to the cloud. Quality crowd - Bechtolsheim, Stonebraker, Patterson, and so on, see the Agenda... Second time for me, it's an honor to be invited back. &lt;div class="iblogger-footer"&gt;&lt;br clear="all"/&gt;&lt;p style="text-align:right;font-size:10px;"&gt;[Posted with &lt;a href="http://illuminex.com/iBlogger/index.html"&gt;iBlogger&lt;/a&gt; from my iPhone]&lt;/p&gt;&lt;br/&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-523690866835834457?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/523690866835834457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/10/hpts-at-asilomar.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/523690866835834457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/523690866835834457'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/10/hpts-at-asilomar.html' title='HPTS at Asilomar'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6307291797030043939</id><published>2009-10-23T09:39:00.000-07:00</published><updated>2009-10-23T09:43:34.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>FREE this weekend, iPhone Instant Queue Add for Netflix</title><content type='html'>The latest version 5 of IQ+ was released this week, and it is currently Free until Monday morning.&lt;br /&gt;&lt;br /&gt;You get your queue, recently watched, and up to 100 movies per list for new releases, new TV, the 12 top level genres, movies you'll love, and seven highly personalized sub-genre and similars lists. All the lists are personally optimized for you by Netflix and will be the same as the lists currently shown on Xbox 360 or Media Center if you have one. &lt;br /&gt;&lt;br /&gt;It's a free update for existing users (the app has been out for over a year now) and normally 99c for new users. The app also provides searching the instant catalog and sorting the lists by title, rating, maturity, ending soon etc. Sorting the queue doesn't (yet) change it at Netflix, but helps you find titles that you can then pop to the front or back of the queue with one click. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=293419823&amp;mt=8 "&gt;http://itunes.apple.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please review/rate the latest release. So far thousands of existing users have upgraded, iPhone OS 3.0 or later is required.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6307291797030043939?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6307291797030043939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/10/free-this-weekend-iphone-instant-queue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6307291797030043939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6307291797030043939'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/10/free-this-weekend-iphone-instant-queue.html' title='FREE this weekend, iPhone Instant Queue Add for Netflix'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1284804143446366207</id><published>2009-10-07T08:43:00.000-07:00</published><updated>2009-10-07T08:51:57.276-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='copilot'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>iPhone Copilot GPS navigator</title><content type='html'>this excellent app is a turn by turn talking navigator that works like a dedicated Garmin or Tomtom unit but it cost $35, with no additional subscription charges, and is amazing value. It's fast, has a very clear  display and easy user interface. To mount and power it in the car I got a Belkin TuneBase FM ($89 at Frys) that plugs very firmly into the lighter socket and has a gooseneck that lets you adjust the position. The iPhone clamp works with a case fitted, and I was able to tune the car FM to hear the turn by turn directions along with the music playing. There is an output jack if you have an aux input socket on your car stereo, and a USB to charge a second iPhone on long trips or whatever else you have.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1284804143446366207?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.alk.com/copilot/iphone/' title='iPhone Copilot GPS navigator'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1284804143446366207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/10/iphone-copilot-gps-navigator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1284804143446366207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1284804143446366207'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/10/iphone-copilot-gps-navigator.html' title='iPhone Copilot GPS navigator'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-2339803506285822312</id><published>2009-10-05T23:49:00.000-07:00</published><updated>2009-10-06T00:58:22.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pge'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - High and low usage and costs for the first month</title><content type='html'>The solar array continues to generate over 20KWh on a clear day, but our daily consumption varies a lot. On Sunday we were running the washing machine, dryer, pumping water from the well for a few hours, watching TV and baking/cooking/dish-washing for seven people, and we hit an all time high using almost 50KWh.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SsrpcvqeTVI/AAAAAAAAAOQ/aC2qLuTWDrE/s1600-h/Picture+17.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 120px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SsrpcvqeTVI/AAAAAAAAAOQ/aC2qLuTWDrE/s320/Picture+17.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5389376584142441810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The next day, running pretty close to the minimum possible, we used about 13 KWh.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SsrqBuimU5I/AAAAAAAAAOY/2KHOG1wQAfk/s1600-h/Picture+18.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 120px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SsrqBuimU5I/AAAAAAAAAOY/2KHOG1wQAfk/s320/Picture+18.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5389377219496137618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Our total generation for the month of September was about 700 KWh. The output is dropping as the day gets shorter and the sun gets lower, so our 4.2KW system peaked at about 3.4KW at the start of the month, after a rain shower cleaned the panels and the air we saw a peak of 3.7KW for a short period of one day, then it dropped back to 3.3KW and it ended the month at 3.2KW. The daily output on a clear day was 26KWh at the start of September and 24KWh at the end.&lt;br /&gt;&lt;br /&gt;Our approximate total consumption for september was 1100 KWh, and since we are on the time-of-use E6 rate the net metering subtracted the 700 we generated and broke down the rest as -100 KWh at peak time (1-7pm), and 500 KWh mid and off-peak. We were billed $11.50 which is the base level for PG&amp;E, and a total of $17 for 400 KWh was added to the annual accumulation.&lt;br /&gt;&lt;br /&gt;In a year's time the net for the year is due to get settled. &lt;a href="http://www.pge.com/tariffs/tm2/pdf/ELEC_SCHEDS_E-6.pdf"&gt;The very complex details are available from PG&amp;E&lt;/a&gt;, but basically instead of costing us on a sliding scale of 11c-38c per KWh, the solar array keeps us at the bottom end of the scale and at the E6 rate it costs 8c off peak, 14c mid peak, and while we are running the meter backwards at peak PG&amp;E pay us 30c per KWh. So our typical electric bill of $250 was reduced to $28.&lt;br /&gt;&lt;br /&gt;I have been asked about the payback time for the installation. This is part of the calculation that the vendor sales-rep makes for your particular situation. In my case we made it much more complex by replacing the roof shingles, shutting down our use of propane, buying new appliances and increasing our use of electricity. However If we ignore all that and average $200/month savings, then after all the rebates the solar system installation of about $20K has a payback time of less than 8 years on a naive calculation. If we take into account a 5% interest rate on the installation cost it's more like 12 years, and if we assume that electricity costs would rise over that time it's somewhere in-between. I'm also assuming that the value of the house has gone up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-2339803506285822312?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/2339803506285822312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/10/solar-power-high-and-low-usage-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2339803506285822312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2339803506285822312'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/10/solar-power-high-and-low-usage-and.html' title='Solar Power - High and low usage and costs for the first month'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BXNMRLEUkRQ/SsrpcvqeTVI/AAAAAAAAAOQ/aC2qLuTWDrE/s72-c/Picture+17.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6526608082056932354</id><published>2009-09-27T08:16:00.000-07:00</published><updated>2009-09-27T08:44:18.415-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSHP'/><category scheme='http://www.blogger.com/atom/ns#' term='welserver'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><title type='text'>Power Usage Logging with the WELserver</title><content type='html'>Reading some forums about ground source heat pump installations, we noticed references to a logging system called the Web Energy Logger that collects data in your house and provides you with a detailed and customized view of how the systems in your house are operating. I bought a &lt;a href="http://welserver.com/"&gt;WELserver&lt;/a&gt; kit and have started installing some of the data collectors.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://welserver.com/"&gt;Here's the summary of what it does&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Simply put, the Web Energy Logger (or WEL) is the most economical way to monitor lots of temperature sensors, and a host of other energy related devices in your home or office. It's ideal to verify the performance or a solar thermal system, or to calculate the efficiency of a geothermal installation, or even to prove that your home really is Net Zero.  Not only does the WEL give you a window into your energy environment, but it also provides a live snapshot and a range of trend charts that you can share on the WEB in real-time.  Finally, the WEL records all your sensor data in monthly log files that are easy to download and import into programs like Excel.      It's compact, versatile, and extremely configurable.&lt;br /&gt;&lt;br /&gt;The minimal WEL in a Box is ideal for a DIY'er, and costs $375.  In contrast, the more complete WEL Starter Kit is ready to run out-of-the-box with 10 temperature sensors and costs $525.  All WEL's come with full monitoring software on the board, and a dedicated WEL logging site included in the price.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The monitors are all strung together in a daisy-chain configuration on a single twisted pair wire using the Dallas 1-Wire signaling technology. I got one of the optional current sensors and installed it in the electric hot water tank. Here is the sensor, one of the power wires needs to be threaded through the hole so it can detect current flow.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FjhVjO7I/AAAAAAAAANw/ZH4Z0Bnh1H8/s1600-h/IMG_0274.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FjhVjO7I/AAAAAAAAANw/ZH4Z0Bnh1H8/s320/IMG_0274.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5386170524649077682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FjF_aFrI/AAAAAAAAANo/Yq1PIkpu-UE/s1600-h/IMG_0273.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FjF_aFrI/AAAAAAAAANo/Yq1PIkpu-UE/s320/IMG_0273.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5386170517308446386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the water tank. The orange wire had been installed without its protective shielding, so when that was fitted, we took the opportunity to add the sensor.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FkLUAoaI/AAAAAAAAAN4/mq74k09jsgY/s1600-h/IMG_0277.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FkLUAoaI/AAAAAAAAAN4/mq74k09jsgY/s320/IMG_0277.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5386170535916904866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The recess in the top of the water tank has enough space to hold the sensor, with the black wire threaded through the hole.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/Sr-Fkj4tT1I/AAAAAAAAAOA/6uppuH3-S9c/s1600-h/IMG_0278.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/Sr-Fkj4tT1I/AAAAAAAAAOA/6uppuH3-S9c/s320/IMG_0278.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5386170542513278802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The cover is in two parts, which gives easy access to the wiring again if needed.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FlGMe8mI/AAAAAAAAAOI/FOW9-hK6JJ4/s1600-h/IMG_0280.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FlGMe8mI/AAAAAAAAAOI/FOW9-hK6JJ4/s320/IMG_0280.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5386170551723029090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At this point, I don't have the WEL configured. I need to add temperature sensors to the water pipes, and work out how to monitor the heat pump once we get it installed in place of the propane furnace. The WEL control box has an ethernet connection, and I'm not sure whether to run ethernet into the basement, or run the 1-wire cable around the house to monitor all the rooms. Spare wires in the existing telephone cabling can be used for this purpose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6526608082056932354?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6526608082056932354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/09/power-usage-logging-with-welserver.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6526608082056932354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6526608082056932354'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/09/power-usage-logging-with-welserver.html' title='Power Usage Logging with the WELserver'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BXNMRLEUkRQ/Sr-FjhVjO7I/AAAAAAAAANw/ZH4Z0Bnh1H8/s72-c/IMG_0274.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3748482247989741871</id><published>2009-09-25T00:52:00.000-07:00</published><updated>2009-09-25T00:53:23.269-07:00</updated><title type='text'>GP Musumeci joins Netflix....</title><content type='html'>&lt;a href="http://perfcap.blogspot.com/2009/08/are-any-ex-pae-snorclers-looking-for.html"&gt;Adrian Cockcroft&amp;#39;s Blog: Are any (ex-)PAE Snorclers looking for a new career?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My call was answered.... GP Musumeci started work last week at Netflix. He's the author of O'Reilly System Performance Tuning, and we worked together at Sun PAE in 2000-2002. Since then he worked on the operations side, building Time Warner AoL's video streaming service, and Salesforce.com's infrastructure, then moved to become a developer of recommendation systems and distributed databases. The perfect mix...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3748482247989741871?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://perfcap.blogspot.com/2009/08/are-any-ex-pae-snorclers-looking-for.html' title='GP Musumeci joins Netflix....'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3748482247989741871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/09/adrian-cockcrofts-blog-are-any-ex-pae.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3748482247989741871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3748482247989741871'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/09/adrian-cockcrofts-blog-are-any-ex-pae.html' title='GP Musumeci joins Netflix....'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-47642008347654330</id><published>2009-09-25T00:23:00.000-07:00</published><updated>2009-09-25T00:43:53.666-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Monitoring Consumption</title><content type='html'>We finally got Solarcity to install the consumption monitor, and we are now figuring out what the various bumps in the graph correlate to in terms of appliances. The first graph shows consumption on a hot day, with a portable room A/C unit left on all day. There is a characteristic bump in the morning that seems to correlate to re-heating hot water after showers, and random bumps during the day that are probably the hot tub cycling on to filter and maintain water temperature.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SrxxWDWz1wI/AAAAAAAAANY/Mv15bY4HOKQ/s1600-h/Picture+15.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 154px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SrxxWDWz1wI/AAAAAAAAANY/Mv15bY4HOKQ/s320/Picture+15.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5385303878100309762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another day where we didn't leave the A/C unit on shows much lower consumption. One of the common psychological effects of measuring something is a compulsion to optimize it, so we are now challenging ourselves to try and reduce consumption...&lt;br /&gt;&lt;br /&gt;Since we are now on a time-of-use meter, the cost of electricity at nights and weekends is very low, and the cost in the afternoons during the week is high, but that is when we are generating more than we are using, so in $ terms, the meter is running backwards at high speed, and forwards slowly. This also makes it very hard to calculate the cost savings.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SrxxpYTCWgI/AAAAAAAAANg/tnigiUro-oI/s1600-h/Picture+14.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 156px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SrxxpYTCWgI/AAAAAAAAANg/tnigiUro-oI/s320/Picture+14.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5385304210139142658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Total generation for the month is looking good. We turned on the system right at the start of the month, so the lifetime total includes a week or so before the output monitoring started to log data, and you can see the last few days of consumption data. We have had typical (for us) weather, sunny from the start of the day most days. We drive down into the clouds each morning. The drop off a few weeks ago was a cloudy spell that included about 0.25in of rain, enough to make sure the solar panels are nice and clean. There is a slow downward trend in the daily output, since the days are getting shorter and the Sun is lower in the sky every day. It's around the equinox at the moment. Over-all, I'm happy with how much energy we are getting, I expected to get longer effective days than most people, and it looks as if we will be generating about 600 KWh this month, our typical consumption has been around 1000 KWh.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SrxxGeVmy2I/AAAAAAAAANQ/kD0vnQ9N_Cg/s1600-h/Picture+16.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 154px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SrxxGeVmy2I/AAAAAAAAANQ/kD0vnQ9N_Cg/s320/Picture+16.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5385303610465110882" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-47642008347654330?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/47642008347654330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/09/solar-power-monitoring-consumption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/47642008347654330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/47642008347654330'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/09/solar-power-monitoring-consumption.html' title='Solar Power - Monitoring Consumption'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BXNMRLEUkRQ/SrxxWDWz1wI/AAAAAAAAANY/Mv15bY4HOKQ/s72-c/Picture+15.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3775138571261282585</id><published>2009-09-06T11:59:00.000-07:00</published><updated>2009-09-06T12:08:18.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Monitoring Output</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SqQG8Ve-mMI/AAAAAAAAANI/n30YVT-Y6Vs/s1600-h/Picture+13.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SqQG8Ve-mMI/AAAAAAAAANI/n30YVT-Y6Vs/s320/Picture+13.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5378431488616208578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The SolarCity web based monitoring system didn't work at first, there was a problem with the data-logging board in the inverter but they were helpful and sent someone round to fix it. So now we can track how much power we are generating. The graph updates every 15 minutes, and it reports the amount of power every half hour, so when it shows 1.7 KWh that is equivalent to 3.4KW averaged over 30 minutes. So far the highest peak instantaneous output reported on the Inverter is about 4.2KW.&lt;br /&gt;&lt;br /&gt;We are still waiting for the energy consumption metering to be added, which puts a second line on the same graph.&lt;br /&gt;&lt;br /&gt;The day shown was a typical day up here on top of the mountain, it was cloudy elsewhere, but we had basically clear sky all day. and generated over 25KWh.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3775138571261282585?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3775138571261282585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/09/solar-power-monitoring-output.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3775138571261282585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3775138571261282585'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/09/solar-power-monitoring-output.html' title='Solar Power - Monitoring Output'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BXNMRLEUkRQ/SqQG8Ve-mMI/AAAAAAAAANI/n30YVT-Y6Vs/s72-c/Picture+13.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1853809219843537899</id><published>2009-08-31T23:52:00.000-07:00</published><updated>2009-09-01T00:09:02.188-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='jobs'/><title type='text'>Are any (ex-)PAE Snorclers looking for a new career?</title><content type='html'>I'm looking for someone who has been benchmarking and testing web services/cloud performance to work in Los Gatos CA, no remote work, sorry.&lt;br /&gt;&lt;br /&gt;For the uninitiated, PAE = Performance Applications Engineering, one of the groups I was in years ago at Sun that built benchmarks and did performance analysis for a living. Snorcle = Sun + Oracle sinking beneath the waves...&lt;br /&gt;&lt;br /&gt;This is a great time to join Netflix, we are growing fast, there are a lot of open positions and we pay very well for star players.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1853809219843537899?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1853809219843537899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/08/are-any-ex-pae-snorclers-looking-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1853809219843537899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1853809219843537899'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/08/are-any-ex-pae-snorclers-looking-for.html' title='Are any (ex-)PAE Snorclers looking for a new career?'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-9177324924528106188</id><published>2009-08-30T18:03:00.000-07:00</published><updated>2009-08-30T18:14:50.271-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - "City" Inspection</title><content type='html'>We passed last week (we live outside the city, so it was actually Santa Clara County), and how have another 12 days for PG&amp;E to put in a new time-of-use power meter and bless the installation so we can turn it on.&lt;br /&gt;&lt;br /&gt;It took a bit of prodding for SolarCity to get the inspections setup, at least that's the way it seemed. After the install, they sent me an email saying please pay the invoice, but they hadn't sent me an invoice. I waited a few days then asked them if they were going to send me one, then they sent it. After they get paid they are supposed to schedule the inspection. They say it can take a month or so to complete the inspections. After a week or two I emailed and asked when the inspection might happen, and a few days later it was scheduled for the following week. They sent someone to wait at my house for the inspector, so we didn't need to be there, other than making sure they had access to the basement where the inverter is installed.&lt;br /&gt;&lt;br /&gt;The ground source heat pump is taking a bit longer than hoped. The supplies have been hard to source on the West Coast, it seems that there are relatively few GSHP installations in California so far. I'm hoping to get the detailed planning approval and install done in the coming week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-9177324924528106188?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/9177324924528106188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/08/solar-power-city-inspection.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/9177324924528106188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/9177324924528106188'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/08/solar-power-city-inspection.html' title='Solar Power - &quot;City&quot; Inspection'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3769564539681374772</id><published>2009-07-29T22:42:00.000-07:00</published><updated>2009-07-30T15:01:08.483-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><category scheme='http://www.blogger.com/atom/ns#' term='carrier'/><title type='text'>Solar Power - Installation Day 4</title><content type='html'>All the panels are on the roof, the trench has been re-filled, the wiring is done, it was tested and span the meter backwards. Next step is inspections that can take a few weeks before we can turn it on for real....&lt;br /&gt;&lt;br /&gt;I installed the Solarcity Internet monitoring system base station by plugging it into a spare Ethernet port on my DSL modem. It flashed some lights that told me that it had connected to Solarcity successfully, then started scanning to find the monitored devices. It talks to the inverter to track how much power is being generated, and I will have an optional consumption monitor that tells me how much power the house is using. I have to wait for the install to be complete before I can &lt;a href="http://solarcity.com/residential/solarguard-system-monitoring.aspx"&gt;see any output on the solarcity.com web site&lt;/a&gt;.&lt;br /&gt;Also, they were out of stock of the consumption monitor, so it will need to be added on later, but it doesn't affect the operation of the system.&lt;br /&gt;&lt;br /&gt;I have also figured out the Ground Source Heat Pump, I'm going for a vertical well based installation, &lt;a href="http://www.residential.carrier.com/products/geothermalheatpumps/index.shtml"&gt;its a 3-ton A/C unit and heater made by Carrier&lt;/a&gt; that hooks up to my existing propane furnace ducting, and includes a water heater that replaces my propane hot water tank. It exchanges heat with the ground using three 200ft deep wells, and for every KW of electricity it uses, it pumps around 4KW of heat in or out of the house. This is over twice as efficient as a conventional air based A/C unit. It costs more, but there is a 30% federal tax credit on the full price, just like the solar power installation, thanks to Obama's stimulus package (this credit started in February 2009). I'm hoping to have enough solar power to zero out the running costs, we will see how that goes over time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3769564539681374772?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3769564539681374772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3769564539681374772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3769564539681374772'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-4.html' title='Solar Power - Installation Day 4'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1800883474534049648</id><published>2009-07-29T07:29:00.000-07:00</published><updated>2009-07-29T07:40:46.673-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='la dolce vita automobili'/><category scheme='http://www.blogger.com/atom/ns#' term='citroen'/><category scheme='http://www.blogger.com/atom/ns#' term='monterey'/><title type='text'>Classic car events in August</title><content type='html'>I go to the Monterey Historic Races every year, and this year I'm also taking my Citroen SM to a new event&lt;a href="http://www.montereybayconcours.com/"&gt; La Dolce Vita Automobili&lt;/a&gt; - it's set up to be a smaller and more fun alternative to the Concorso Italiano, which is on the same day Friday August 14th.&lt;br /&gt;&lt;br /&gt;Here is the SM at Crater Lake a few weeks ago.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BXNMRLEUkRQ/SnBe1gViZrI/AAAAAAAAANA/L61vhLFz_lA/s1600-h/SANY0312.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_BXNMRLEUkRQ/SnBe1gViZrI/AAAAAAAAANA/L61vhLFz_lA/s320/SANY0312.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363891429504607922" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1800883474534049648?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1800883474534049648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/classic-car-events-in-august.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1800883474534049648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1800883474534049648'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/classic-car-events-in-august.html' title='Classic car events in August'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BXNMRLEUkRQ/SnBe1gViZrI/AAAAAAAAANA/L61vhLFz_lA/s72-c/SANY0312.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6029777876748974509</id><published>2009-07-28T22:27:00.000-07:00</published><updated>2009-07-28T22:47:38.731-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Installation Day 3</title><content type='html'>Today about half the panels were put in place on the roof, and a lot of wiring was put in place.&lt;br /&gt;&lt;br /&gt;Here are the installers starting to put panels in place in the morning.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/Sm_eox6V1kI/AAAAAAAAAM4/NPtpffmru-s/s1600-h/IMG_0077_2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/Sm_eox6V1kI/AAAAAAAAAM4/NPtpffmru-s/s320/IMG_0077_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363750473395721794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the evening the lowest row of 20 are in place, and about half of the next row. There will be a total of 60 panels when it's done.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/Sm_eoh5Vp7I/AAAAAAAAAMw/u_m7wriHVXI/s1600-h/IMG_0078_2.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/Sm_eoh5Vp7I/AAAAAAAAAMw/u_m7wriHVXI/s320/IMG_0078_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363750469096548274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is the underside of a panel, in a shipping rack on the truck.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/Sm_eoMB_j-I/AAAAAAAAAMg/OvFDtVArUIw/s1600-h/IMG_0064.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/Sm_eoMB_j-I/AAAAAAAAAMg/OvFDtVArUIw/s320/IMG_0064.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363750463227269090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A closeup of the panel's specification label, as I mentioned before, its a&lt;a href="http://en.wikipedia.org/wiki/Solar_cell"&gt; Cadmium Telluride CdTe thin film technology&lt;/a&gt; panel from First Solar. Each panel is rated at 75W, and the total installation is rated at 4.5KW.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BXNMRLEUkRQ/Sm_en-BvFyI/AAAAAAAAAMY/FwJPsAbfC5k/s1600-h/IMG_0063.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://4.bp.blogspot.com/_BXNMRLEUkRQ/Sm_en-BvFyI/AAAAAAAAAMY/FwJPsAbfC5k/s320/IMG_0063.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363750459468093218" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6029777876748974509?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6029777876748974509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6029777876748974509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6029777876748974509'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-3.html' title='Solar Power - Installation Day 3'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BXNMRLEUkRQ/Sm_eox6V1kI/AAAAAAAAAM4/NPtpffmru-s/s72-c/IMG_0077_2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6778324091307609551</id><published>2009-07-28T00:31:00.000-07:00</published><updated>2009-07-28T01:02:57.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSHP'/><category scheme='http://www.blogger.com/atom/ns#' term='generac'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='standby generator'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Installation Day 2</title><content type='html'>More mounting hardware is now on the roof, the brackets that hold the panels to the rails are now in place. Since the PG&amp;E meter isn't mounted on the house itself, they also had to dig a trench. Tomorrow a county planning dept. inspector will come by to make sure everything is to code.&lt;br /&gt;&lt;br /&gt;I also got an email from PG&amp;E today, informing me that they know I have solar being installed and will schedule an appointment to do their own verification and turn the system on, once the hardware is in place.&lt;br /&gt;&lt;br /&gt;One subtlety, since I also want to connect a generator for when we get power cuts (I'm on top of the Santa Cruz mountains) we had to decide what order to wire everything together. The sequence is &lt;br /&gt;&lt;br /&gt;PG&amp;E service meter - Solar Power system - Generator - House breaker panel&lt;br /&gt;&lt;br /&gt;The generator is only wired into a subset of the house circuits, so it is looped into the house breaker panel. When installed, it will have a sensor that can tell whether there is any incoming power from PG&amp;E, and if not, it fires up after 20 seconds or so.&lt;br /&gt;&lt;br /&gt;The solar power system detects the PG&amp;E power, synchronizes to the 60Hz phase and adds its own power by providing a few volts more than PG&amp;E, to get the power to flow into the system. If PG&amp;E goes away, the solar system also shuts down, then the generator detects no power, isolates the downstream components and takes over powering the house.&lt;br /&gt;&lt;br /&gt;At one point I looked at having batteries rather than a generator, but it is a lot less efficient, they don't last very long and they are far more expensive. A 6KW battery system with inverter was around $10K, while I can get a 8KW propane generator for $2K, and I'm thinking of &lt;a href="http://www.amazon.com/Guardian-5503-Air-Cooled-Automatic-Generator/dp/B001DZLKHI/ref=sr_1_15?ie=UTF8&amp;s=hi&amp;qid=1248767206&amp;sr=1-15"&gt;putting in a 14KW Generac 5503 that is currently available from Amazon for $3.3K delivered&lt;/a&gt;, since that can supply a 40A 220V circuit for the heat pump. I'm likely to need it for up to a week each year, and that will be the only thing that uses propane at that point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6778324091307609551?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6778324091307609551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6778324091307609551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6778324091307609551'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-2.html' title='Solar Power - Installation Day 2'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-2858037980688619396</id><published>2009-07-25T15:10:00.001-07:00</published><updated>2009-07-25T15:27:20.126-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Installation Day 1</title><content type='html'>Here's the house, showing the mounting points and rails on the roof.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SmuDFJyjynI/AAAAAAAAALg/HRVSL1ycwhs/s1600-h/SANY0322.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SmuDFJyjynI/AAAAAAAAALg/HRVSL1ycwhs/s320/SANY0322.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5362523905865271922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Top end of conduit at the roof line.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SmuDgY9XLkI/AAAAAAAAAMQ/QUfmLA9rq_0/s1600-h/SANY0330.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SmuDgY9XLkI/AAAAAAAAAMQ/QUfmLA9rq_0/s320/SANY0330.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5362524373793582658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bottom end of conduit at the basement level.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SmuDaIebRYI/AAAAAAAAAL4/e5CZesg64FQ/s1600-h/SANY0327.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SmuDaIebRYI/AAAAAAAAAL4/e5CZesg64FQ/s320/SANY0327.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5362524266289644930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bottom end and A/C shutoff switch on the front of the house at basement/ground level.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SmuDZ_gV7OI/AAAAAAAAALw/PozpRy-I99c/s1600-h/SANY0326.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://2.bp.blogspot.com/_BXNMRLEUkRQ/SmuDZ_gV7OI/AAAAAAAAALw/PozpRy-I99c/s320/SANY0326.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5362524263881764066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A/C shutoff switch. Safety rules mandate that this is easily accessible on the outside of the house.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BXNMRLEUkRQ/SmuDZj9IvcI/AAAAAAAAALo/kuXZmdH3qpo/s1600-h/SANY0325.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://4.bp.blogspot.com/_BXNMRLEUkRQ/SmuDZj9IvcI/AAAAAAAAALo/kuXZmdH3qpo/s320/SANY0325.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5362524256486342082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Inside the basement, showing the connection to the back of the A/C cutoff switch on the right. In the middle is the D/C cutoff switch that has the conduit from the roof routed to it. There will be another D/C shutoff switch on the roof itself, again for safety.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BXNMRLEUkRQ/SmuDagxz-RI/AAAAAAAAAMI/WzqYXBnmk7c/s1600-h/SANY0329.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://3.bp.blogspot.com/_BXNMRLEUkRQ/SmuDagxz-RI/AAAAAAAAAMI/WzqYXBnmk7c/s320/SANY0329.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5362524272813406482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the inverter on the left, and the D/C shutoff switch on the right. The pipe coming up carries the phone line into the house.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SmuDaery8wI/AAAAAAAAAMA/stEmPbfXU4s/s1600-h/SANY0328.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 239px;" src="http://1.bp.blogspot.com/_BXNMRLEUkRQ/SmuDaery8wI/AAAAAAAAAMA/stEmPbfXU4s/s320/SANY0328.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5362524272251302658" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-2858037980688619396?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/2858037980688619396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2858037980688619396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2858037980688619396'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-day-1.html' title='Solar Power - Installation Day 1'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_BXNMRLEUkRQ/SmuDFJyjynI/AAAAAAAAALg/HRVSL1ycwhs/s72-c/SANY0322.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6082459135516776181</id><published>2009-07-23T12:33:00.000-07:00</published><updated>2009-07-23T12:40:18.996-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - Installation Scheduled</title><content type='html'>The plans were approved earlier this week, and Solarcity called me on the phone and emailed to setup an installation time, which I was able to arrange very conveniently via email. The assigned installation team are finishing up another job, then I'm next, starting tomorrow (Friday 24th July) for a few days.&lt;br /&gt;&lt;br /&gt;There has been nothing to show so far, but I will be taking pictures and posting them.&lt;br /&gt;&lt;br /&gt;Looking at the options for electric water heating led us to consider a ground source heat pump (GSHP), plans are still in flux, but I'm looking at adding a heat pump that will heat hot water as well as heat and cool the house. The ground source part is that it doesn't have a conventional air fan based heat exchanger, it runs water through underground pipes. This is relatively expensive, but there are rebates, and it is very efficient. More later...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6082459135516776181?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6082459135516776181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-scheduled.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6082459135516776181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6082459135516776181'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-installation-scheduled.html' title='Solar Power - Installation Scheduled'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6053485772229257386</id><published>2009-07-02T07:37:00.000-07:00</published><updated>2009-07-02T07:40:59.984-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='velocity conference'/><title type='text'>Velocity conference summary</title><content type='html'>&lt;a href="http://radar.oreilly.com/2009/07/velocity-making-your-site-fast.html"&gt;Steve Souders writes a good summary&lt;/a&gt; of the Velocity Conference. I'd like to present something next year, I have a few ideas already, and have been inspired to try some latency testing projects at work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6053485772229257386?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6053485772229257386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/velocity-conference-summary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6053485772229257386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6053485772229257386'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/velocity-conference-summary.html' title='Velocity conference summary'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4714163175070527957</id><published>2009-07-01T17:53:00.001-07:00</published><updated>2009-07-01T17:58:41.163-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - plan submitted</title><content type='html'>solarcity.com emailed me a very detailed pdf of the plan for 4.5KW on my roof, and submitted it to the County for planning approval today. Meanwhile the house is being re-wired this week for 220V and a 200Amp feed to replace the 110V/100A setup. Also putting in 220V outlets for the kitchen range, hot tub, dryer and hot water heater. Propane tank is now disconnected and I have to go shopping for new appliances...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4714163175070527957?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4714163175070527957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-plan-submitted.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4714163175070527957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4714163175070527957'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/07/solar-power-plan-submitted.html' title='Solar Power - plan submitted'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5984392195039934057</id><published>2009-06-14T22:28:00.000-07:00</published><updated>2009-06-14T22:34:55.511-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cmg'/><category scheme='http://www.blogger.com/atom/ns#' term='amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><category scheme='http://www.blogger.com/atom/ns#' term='elastic map reduce'/><title type='text'>Playing with Hadoop in the Cloud</title><content type='html'>I just finished writing a paper for CMG that is a tutorial on Amazon Elastic Map Reduce. I signed up, it was easy, and after I ran two of their demo jobs I owed them 26 cents. Very cool...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5984392195039934057?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5984392195039934057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/06/playing-with-hadoop-in-cloud.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5984392195039934057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5984392195039934057'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/06/playing-with-hadoop-in-cloud.html' title='Playing with Hadoop in the Cloud'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3524504396685254222</id><published>2009-06-03T21:39:00.000-07:00</published><updated>2009-06-03T23:09:59.090-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power - first step</title><content type='html'>There is a rebate for solar power systems, and the first step is that the power company (PG&amp;E) reserves a rebate and notifies me and SolarCity that if we install a system by a deadline we will get a certain amount of rebate. I have also got an appointment on Monday for the SolarCity engineer to come and spend a whole day taking measurements and designing the system installation.&lt;br /&gt;&lt;br /&gt;Last week we got the shingles replaced, since the old ones were getting near the end of their life, and its a good idea to put the solar panels over a roof that will last for a long time, so they won't need to be removed to fix anything.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3524504396685254222?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3524504396685254222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/06/solar-power-first-step.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3524504396685254222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3524504396685254222'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/06/solar-power-first-step.html' title='Solar Power - first step'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1389781003878789585</id><published>2009-06-03T21:35:00.000-07:00</published><updated>2009-06-03T21:38:28.112-07:00</updated><title type='text'>I will be at Usenix 09 - San Diego - June 15-17</title><content type='html'>I'm attending a tutorial on care and feeding of Hadoop on Monday, teaching my own tutorial on tuning and tools tuesday, and staying for the first day of papers on wednesday. See you there...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.usenix.org/usenix09/promote"&gt; &lt;img src="http://www.usenix.org/events/usenix09/art/usenix09_button.jpg" border="0" width="125" height="125" alt="USENIX '09"&gt; &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1389781003878789585?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1389781003878789585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/06/i-will-be-at-usenix-09-san-diego-june.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1389781003878789585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1389781003878789585'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/06/i-will-be-at-usenix-09-san-diego-june.html' title='I will be at Usenix 09 - San Diego - June 15-17'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-7626214799760008770</id><published>2009-06-02T23:31:00.000-07:00</published><updated>2009-06-03T00:02:22.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MirthKon'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>New music: MirthKon's Vehicle</title><content type='html'>Some of the most inventive new music is coming from "unknown" bands in the greater San Francisco region. Through my connections with Fractal I have been a fan of Headshear for many years and now MirthKon have released their first full CD, "Vehicle". Fractal and Headshear have played many gigs together, and MirthKon founder Wally Scharold played in Headshear for a while a few years ago.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mirthkon.com/"&gt;I have seen MirthKon play a few times, and they are currently on a west coast tour&lt;/a&gt;, having recently played SF and Berkeley, they are in Hollywood on June 5th and San Diego on June 6th, then Chico on June 18th, and Eugene and Portland on June 19th and 20th. They have a conceptual video extravaganza to enhance the musical experience at live shows.&lt;br /&gt;&lt;br /&gt;So, what do they sound like? Well, lets start by saying that if you like Frank Zappa, and wished he was still putting out new music, then you will be very happy to take this Vehicle for a ride to Joe's Garage. Its impossible to really say what Zappa sounds like, since the mix of styles and influences is so diverse, but MirthKon have some of the same elements, along with their own unique character. There is a strong dose of humor, very complex rhythms and time signatures, some jazzy vocals on a few tracks, but a largely instrumental mix that combines clarinet and saxophone with guitar, bass and drums&lt;br /&gt;&lt;br /&gt;They dub it "The first full-length CD from the Bay Area's most hyphenated thrash-jazz-prog-chamber-core ensemble", which probably doesn't help much. I have been happily playing it over and over again in my car for the last week, expand your musical horizons and support local music by getting your own copy....&lt;br /&gt;&lt;br /&gt;miRthkon is: &lt;br /&gt;Wally Scharold - guitars, vocals, composition, sound design, conceptual design, text, video, producer &lt;br /&gt;Rob Pumpelly - guitars, composition &lt;br /&gt;Nat Hawkes - bass guitar, vocals &lt;br /&gt;Carolyn Walter - piccolo, flute, clarinet, bass clarinet, alto saxophone, tenor saxophone &lt;br /&gt;Jamison Smeltz - alto saxophone, baritone saxophone, vocals &lt;br /&gt;Matt Guggemos - drums and percussion &lt;br /&gt;Jarred McAdams - video, text, conceptual collaborator&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-7626214799760008770?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.mirthkon.com/' title='New music: MirthKon&apos;s Vehicle'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/7626214799760008770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/06/new-music-mirthkons-vehicle.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7626214799760008770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/7626214799760008770'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/06/new-music-mirthkons-vehicle.html' title='New music: MirthKon&apos;s Vehicle'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5614225808815392922</id><published>2009-05-26T23:01:00.000-07:00</published><updated>2009-05-26T23:35:54.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='solarcity'/><title type='text'>Solar Power order placed</title><content type='html'>I signed up with http://www.solarcity.com for 4.5Kw of thin film panels (60 of them). Their web site is slick, walks you through the install process, they have online monitoring of the output of the solar array and I also added the option of monitoring the house's consumption of electricity, which is integrated into the same web based monitoring and graphing package. They visit later this week to do the engineering assessment, then I get plans (provided online) and planning approval etc. follows. Should be all done in 2-3 months.&lt;br /&gt;&lt;br /&gt;Thin film is better in partial light, and high temperatures, and it can be mounted closer to the roof tiles since it doesn't need an air gap underneath to cool it. We have a hot microclimate with no shade, at 2400ft altitude, above the morning mist most of the time, so the longer power delivery period per day should compensate for the slight reduction in peak efficiency compared to silicon. Solarcity offered both at the same price. There is a combination of a rebate and a tax credit at the moment. The tax credit is about 30% of the cost, and was added recently by Obama's stimulus package.&lt;br /&gt;&lt;br /&gt;As it progresses I will post pictures and updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5614225808815392922?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5614225808815392922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/05/solar-power-order-placed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5614225808815392922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5614225808815392922'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/05/solar-power-order-placed.html' title='Solar Power order placed'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-2461737972973444375</id><published>2009-05-25T08:53:00.000-07:00</published><updated>2009-05-25T09:00:15.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gumstix'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='SVHMPC'/><title type='text'>FLOW - a homebrew Android gumstix phone (finally)</title><content type='html'>&lt;a href="http://www.gizmoforyou.com/e107_plugins/content/content.php?content.32"&gt;See more here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A few years ago the Silicon Valley Homebrew Mobile Phone Club (SVHMPC) formed out of frustration with the closed market for phones, and set out to build something we could program in our pocket. We made some progress but the prototype Gumstix Goliath board never made it into production, and along came the iPhone, which gave some of us the application platform we were looking for to customize. The OpenMoko project is also limping along, and Google Android is finally out there in volume. The FLOW project is open hardware running Android with a Gumstix CPU module. Nice combination for making custom devices.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-2461737972973444375?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.gizmoforyou.com/e107_plugins/content/content.php?content.32' title='FLOW - a homebrew Android gumstix phone (finally)'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/2461737972973444375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/05/flow-homebrew-android-gumstix-phone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2461737972973444375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2461737972973444375'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/05/flow-homebrew-android-gumstix-phone.html' title='FLOW - a homebrew Android gumstix phone (finally)'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-2388350497768074968</id><published>2009-05-20T18:45:00.000-07:00</published><updated>2009-05-20T18:50:48.617-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='niagara'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached'/><title type='text'>Memcached 500K ops/s on Niagara T2</title><content type='html'>This is some nice work, scalability analysis to fix lock contention in memcached, then running on an out of the box Solaris T2 gets 500K ops/s or 9.6Gbits/s depending on payload size. The Niagara 2 based T2 has built-in 10Gbit network, and 8 cores with 8 threads in one chip. Sub-millisecond response.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.sun.com/zoran/entry/scaling_memcached_500_000_ops"&gt;http://blogs.sun.com/zoran/entry/scaling_memcached_500_000_ops&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-2388350497768074968?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.sun.com/zoran/entry/scaling_memcached_500_000_ops' title='Memcached 500K ops/s on Niagara T2'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/2388350497768074968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/05/memcached-500k-opss-on-niagara-t2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2388350497768074968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/2388350497768074968'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/05/memcached-500k-opss-on-niagara-t2.html' title='Memcached 500K ops/s on Niagara T2'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-643974912792772125</id><published>2009-05-15T18:15:00.000-07:00</published><updated>2009-05-15T18:17:47.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><title type='text'>Netflix App Gallery</title><content type='html'>The Netflix API now has an &lt;a href="http://www.netflix.com/AppGallery"&gt;App Gallery http://www.netflix.com/AppGallery&lt;/a&gt; which features my Instant Queue Add for Netflix iPhone app.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-643974912792772125?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.netflix.com/AppGallery' title='Netflix App Gallery'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/643974912792772125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/05/netflix-app-gallery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/643974912792772125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/643974912792772125'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/05/netflix-app-gallery.html' title='Netflix App Gallery'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1417130348139522671</id><published>2009-05-02T22:52:00.000-07:00</published><updated>2009-05-02T23:08:27.467-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='usenix'/><title type='text'>Usenix 09 - San Diego in June</title><content type='html'>I'm presenting again next month, &lt;a href="http://www.usenix.org/events/usenix09/"&gt;at Usenix 09 in San Diego&lt;/a&gt;. I'm giving an all day workshop/tutorial on Tuesday June 16th. I have just updated my slides, combining the talks I have been developing over the years into Solaris/Linux Performance Tools and Tuning, which includes the Capacity Planning with Free Tools material that Mario Jauvin and I developed for CMG.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.usenix.org/usenix09/promote"&gt; &lt;img src="http://www.usenix.org/events/usenix09/art/usenix09_button.jpg" border="0" width="125" height="125" alt="USENIX '09"&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have also posted the slides to &lt;a href="http://www.slideshare.net/adrianco"&gt;http://www.slideshare.net/adrianco&lt;br /&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please come along, I look forward to seeing you in San Diego.&lt;br /&gt;&lt;br /&gt;Cheers Adrian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1417130348139522671?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.usenix.org/events/usenix09/' title='Usenix 09 - San Diego in June'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1417130348139522671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/05/usenix-09-san-diego-in-june.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1417130348139522671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1417130348139522671'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/05/usenix-09-san-diego-in-june.html' title='Usenix 09 - San Diego in June'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-8847060466193201300</id><published>2009-04-21T22:26:00.000-07:00</published><updated>2009-05-02T23:05:30.344-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solar power'/><category scheme='http://www.blogger.com/atom/ns#' term='lawnmower'/><category scheme='http://www.blogger.com/atom/ns#' term='earth day'/><title type='text'>What I did for earth day...</title><content type='html'>Update: the electric mower works well, cuts better than my old gas mower, and the drive option works very well. Since the batteries make it heavier than a gas mower, the power drive makes a big difference. Hacking through very long grass, the batteries last about half an hour, keeping previously cut grass trimmed short I think it would last a lot longer. Its enough for me]&lt;br /&gt;&lt;br /&gt;Actually, what really happened was that I tried to mow the grass last weekend and decided that my old gas lawnmower wasn't up to the job, so I did some research and bought an electric one. Its quiet, doesn't need gas, the throttle and air intake don't need cleaning out and just starts when I want it to.&lt;br /&gt;&lt;br /&gt;I ordered it from Amazon.com on Sunday evening, as usual, with the free 5-7 day shipping option, and it arrived on Tuesday. I guess Amazon had nothing better to do than ship stuff... but it was nice to save $67 for shipping a 100 lb package and still get it very fast.&lt;br /&gt;&lt;br /&gt;I got the latest biggest electric I could find, the &lt;a href="http://www.amazon.com/21-Inch-Cordless-Propelled-Discharge-EP21H/dp/B001PKTRTO/"&gt;Epic EP21H 24Volt cordless self propelled 21 inch&lt;/a&gt;. The rear wheels are belt driven from the main motor via a gearbox. It has a high efficiency brushless motor that drives the blade directly and two 12V lead acid batteries and should run for 40-50 minutes per charge. This is plenty of time for me to get fed up with mowing and charge it overnight. Its a bit bigger and more rugged than my old 4HP 20inch gas mower, and has a side discharge option so won't get clogged trying to mulch tall grass. I'll try it out after work.&lt;br /&gt;&lt;br /&gt;I've also been looking forward to getting solar power installed on my roof, and I'm finalizing plans to make a commitment to get it done this year. I will blog my way through the process as it happens...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-8847060466193201300?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.amazon.com/21-Inch-Cordless-Propelled-Discharge-EP21H/dp/B001PKTRTO/' title='What I did for earth day...'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/8847060466193201300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/04/what-i-did-for-earth-day.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8847060466193201300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/8847060466193201300'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/04/what-i-did-for-earth-day.html' title='What I did for earth day...'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1868213991836779836</id><published>2009-04-13T07:15:00.000-07:00</published><updated>2009-04-13T07:20:27.392-07:00</updated><title type='text'>Fractal iPhone app source code</title><content type='html'>&lt;a href="http://code.google.com/p/fractal-band-iphone-app/"&gt;I have posted the source to Fractal's iPhone app to google code&lt;/a&gt;. I'm hoping that other bands can replace the artwork and URLs and quickly get their own promotional apps out there. If we end up with bug-fixes and improvements, then everyone gains....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1868213991836779836?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://code.google.com/p/fractal-band-iphone-app/' title='Fractal iPhone app source code'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1868213991836779836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/04/fractal-iphone-app-source-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1868213991836779836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1868213991836779836'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/04/fractal-iphone-app-source-code.html' title='Fractal iPhone app source code'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-1773489221105750831</id><published>2009-04-09T10:29:00.000-07:00</published><updated>2009-04-09T10:34:31.340-07:00</updated><title type='text'>iPhone apps that don't work on 3.0beta2</title><content type='html'>Both dictionary.com and PocketFlix fail immediately after they launch with iPhone os 3.0beta2&lt;br/&gt;&lt;br/&gt;Most other apps seem to be working, and beta2 is faster and more stable. &lt;div class="iblogger-footer"&gt;&lt;br clear="all"/&gt;&lt;p style="text-align:right;font-size:10px;"&gt;[Posted with &lt;a href="http://illuminex.com/iBlogger/index.html"&gt;iBlogger&lt;/a&gt;]&lt;/p&gt;&lt;br/&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-1773489221105750831?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/1773489221105750831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/04/iphone-apps-that-don-work-on-30beta2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1773489221105750831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/1773489221105750831'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/04/iphone-apps-that-don-work-on-30beta2.html' title='iPhone apps that don&amp;#39;t work on 3.0beta2'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-4746888461741425532</id><published>2009-04-05T09:02:00.000-07:00</published><updated>2009-04-05T09:09:33.636-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fractal'/><title type='text'>Fractal - free iPhone app</title><content type='html'>&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=309131446&amp;mt=8"&gt;App store link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's finally ready for download.... Don't forget, Hotel Utah SF Sat April 18th is the next gig.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-4746888461741425532?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=309131446&amp;mt=8' title='Fractal - free iPhone app'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/4746888461741425532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/04/fractal-free-iphone-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4746888461741425532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/4746888461741425532'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/04/fractal-free-iphone-app.html' title='Fractal - free iPhone app'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5844994439701970296</id><published>2009-03-18T09:41:00.000-07:00</published><updated>2009-03-18T09:50:52.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>Using iPhone 3.0 beta</title><content type='html'>So far its working well, all the previously installed apps that I have tried work. I did a cut and paste from notes to Facebook, listened to some Pandora, downloaded a new app from the AppStore. I was a bit concerned about jumping on the release so early, but haven't found any downsides yet.&lt;br /&gt;&lt;br /&gt;I have an older Mac that my first gen iPhone treats as its home machine, I upgraded that one to SDK3.0beta and also used it to do the full backup and restore and re-sync needed to get my iPhone running 3.0. I have a newer MacBook Air that is my work machine, and I have left that with SDK2.2.1, so I can work on current apps and make sure they run on 3.0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5844994439701970296?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5844994439701970296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/03/using-iphone-30-beta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5844994439701970296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5844994439701970296'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/03/using-iphone-30-beta.html' title='Using iPhone 3.0 beta'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-9118905548698234657</id><published>2009-02-26T01:00:00.000-08:00</published><updated>2009-02-26T01:07:43.406-08:00</updated><title type='text'>What's on my iPhone: Basic Instructions</title><content type='html'>One of my &lt;a href="http://basicinstructions.net/"&gt;favorite cartoons&lt;/a&gt;, a collection of them is bunded as an app. Its not a live feed, but its good to be able to show people "&lt;a href="http://basicinstructions.net/?p=366"&gt;how to wash a cat&lt;/a&gt;"... There is also a book out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-9118905548698234657?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/9118905548698234657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/02/whats-on-my-iphone-basic-instructions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/9118905548698234657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/9118905548698234657'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/02/whats-on-my-iphone-basic-instructions.html' title='What&apos;s on my iPhone: Basic Instructions'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-3181759100690560522</id><published>2009-02-24T07:56:00.000-08:00</published><updated>2009-02-24T08:01:49.217-08:00</updated><title type='text'>What's on my iPhone: GoSkyWatch</title><content type='html'>Years ago when I had a Treo, a my friend Gred Oakes introduced me a to planetarium app, and I really liked being able to look up at night, and be able to identify the stars and planets. I live on top of a mountain, and have a great view of the night sky, and one of the first apps I paid for on my iPhone was GoSkyWatch. It has a cool feature that the accelerometer can tell you are holding it upside down snd it attempts to align its view with what you should be seeing. On a 2G iPhone with no GPS it doesn't know which way north is, so that doesn't work so well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-3181759100690560522?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/3181759100690560522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/02/whats-on-my-iphone-goskywatch.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3181759100690560522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/3181759100690560522'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/02/whats-on-my-iphone-goskywatch.html' title='What&apos;s on my iPhone: GoSkyWatch'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-6607152305670926454</id><published>2009-02-17T07:20:00.000-08:00</published><updated>2009-02-17T07:27:24.805-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='skype'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>What's on my iPhone: Fring (Skype and IM's)</title><content type='html'>When I want to make an international call from my iPhone (or from my home phone) I use Skype. There is no native Skype application for the iPhone, so I use Fring, &lt;br /&gt;&lt;a href="http://share.skype.com/sites/en/2009/02/nokia_and_skype_partnering_in.html"&gt;although today's announcement of a deal with Nokia&lt;/a&gt; includes hints that they are working on more mobile platforms. They support Android already, so their main missing link at this point is the iPhone.&lt;br /&gt;&lt;br /&gt;Fring is a decent substitute for now. I mostly use it to keep up with Skype and YIM chat sessions when I'm away from my laptop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-6607152305670926454?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/6607152305670926454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/02/whats-on-my-iphone-fring-skype-and-ims.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6607152305670926454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/6607152305670926454'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/02/whats-on-my-iphone-fring-skype-and-ims.html' title='What&apos;s on my iPhone: Fring (Skype and IM&apos;s)'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7434008.post-5243040727474049450</id><published>2009-02-07T00:31:00.000-08:00</published><updated>2009-02-07T00:35:51.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netflix'/><category scheme='http://www.blogger.com/atom/ns#' term='web interfaces'/><category scheme='http://www.blogger.com/atom/ns#' term='bill scott'/><title type='text'>Bill Scott's Designing Web Interfaces book - and he's hiring...</title><content type='html'>Here is a (long) slideshare presentation of Bill's talk, &lt;a href="http://looksgoodworkswell.blogspot.com/2009/02/oreilly-designing-web-interfaces.html"&gt;there is a webcast of it&lt;/a&gt; as well. Bill is also hiring for his group of UI engineers at Netflix, so if you are the &lt;span style="font-style:italic;"&gt;best of the best of the best&lt;/span&gt; and want to work with the master himself, go for it!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px;text-align:left" id="__ss_986235"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/billwscott/designing-web-interfaces-book-oreilly-webcast?type=presentation" title="Designing Web Interfaces Book - O&amp;#39;Reilly Webcast"&gt;Designing Web Interfaces Book - O&amp;#39;Reilly Webcast&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=dwi-1233708570866247-2&amp;stripped_title=designing-web-interfaces-book-oreilly-webcast" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=dwi-1233708570866247-2&amp;stripped_title=designing-web-interfaces-book-oreilly-webcast" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/billwscott"&gt;Bill Scott&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/rich"&gt;rich&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/ajax"&gt;ajax&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7434008-5243040727474049450?l=perfcap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://looksgoodworkswell.blogspot.com/2009/02/oreilly-designing-web-interfaces.html' title='Bill Scott&apos;s Designing Web Interfaces book - and he&apos;s hiring...'/><link rel='replies' type='application/atom+xml' href='http://perfcap.blogspot.com/feeds/5243040727474049450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://perfcap.blogspot.com/2009/02/bill-scotts-designing-web-interfaces.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5243040727474049450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7434008/posts/default/5243040727474049450'/><link rel='alternate' type='text/html' href='http://perfcap.blogspot.com/2009/02/bill-scotts-designing-web-interfaces.html' title='Bill Scott&apos;s Designing Web Interfaces book - and he&apos;s hiring...'/><author><name>Adrian Cockcroft</name><uri>http://www.blogger.com/profile/14695336135416848505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
