Archives
-
CQRS: Command Query Responsibility Segregation
Jason Gerard and I were talking about document databases the other day, and he said "Have you heard about CQRS?" This was news to me, so I started doing some research. Wikipedia, which usually provides good information, said the following "CQRS is simply the creation of two objects where there was previously only one. The separation occurs based upon whether the methods are a command or a query (the same definition that is used by Meyer in Command and Query Separation, a command is any method that mutates state and a query is any method that returns a value)."
-
Code Camp 2010 in Words & Pictures
-
Netflix Instant Streaming comes to iPhone & iPod touch
It's here! Netflix has brought their awesome instant streaming technology to the iPhone & iPod touch. I've tried it over WiFi and it is awesome. Apparently it works over 3G too.
-
Jacksonville .NET Code Camp 2010
This Saturday is the 6th Annual Jacksonville .NET Code Camp! It's an all day geek fest focusing on code and not marketing fluff.
-
Adam Savage Presents Problem Solving: How I Do It
One of the key ingredients to software development is problem solving. Knowing all the technology buzzwords is great, but if you don't have problem solving skills it is a waste. Solving these problems is also what makes software development fun. At a recent Maker Faire, Adam Savage of MythBusters fame gave a great presentation on Problem Solving. It is an excellent view. He also mixes in some "behind the scenes" stories about his MythBuster experience as an added bonus.
-
Document Databases Compared: MongoDB, CouchDB, and RavenDB
Hopefully my last post, An Introduction to Document Databases, piqued your interest in this new frontier for database technology.
-
An Introduction to Document Databases
When most people say database, they mean relational database. Edgar Codd defined and coined the term at IBM's Almaden Research Center about 40 years ago. Since that time, relational databases have become the foundation of nearly every enterprise system. However, Internet-scale systems have begun to push the limits of this venerable technology. What has sprung up to fill the need? Various next generation databases addressing some of the following points: being non-relational, distributed, and horizontal scalable. These attributes are characteristics of the "NO SQL" movement. In this case, NO stands for "Not Only". So how many NO SQL databases are there? More than I care to count. But most of the fall into the following categories: Document, Graph, Key/Value, and Tabular/Wide Column.
-
Virtualization of Developer Workstations
Virtualization is everywhere. We're using it for instancing our development, test, and production server environments. A couple years back, I read a blog post by a development manager who virtualized his developer's PCs. The idea made a lot of sense, so I went to our CIO and pitched the case. We've been running like this for the past two years and it has been working great.
-
C# compiler as a service
Having the C# compiler as a service is an interesting new feature in Mono that was announced by Miguel de Icaza in his blog. Miguel leads the Mono project for Novell. This new feature supports the following scenarios:
-
Json.NET Dynamic Extensions
I've been working with RavenDB and Json.NET lately. RavenDB has some interesting schema-less capabilities using JSON documents. When interacting with the API, you either get serialized objects or JSON.NET classes. These are great, but it seemed like mixing in the Dynamic features of C# 4.0 would make things interesting.
-
DynamicDuck: Duck Typing in a Dynamic World
When dynamics came to C#, I hoped that we'd be able to use interfaces to bridge the gap between dynamic & static typing.