Couchbase, UnQL and Linq?

by jmorris 10. January 2012 22:37

I came across the following press release (a bit old) and liked what I read. Specifically, that Couchbase was working on UnQL support with MS:

“Couchbase unveiled and released to the public domain the UnQL query
language, (UNstructured Query Language). Jointly developed with
Microsoft and SQLite, UnQL is designed to provide a common query
language for NoSQL developers and help drive widespread adoption of
NoSQL technology. Each company has committed to delivering product
support for UnQL in 2012.”

By going to UnQL and partnering with MS, this puts Couchbase in an awesome position to develop a Linq (IQueryable) implementation of UnQL. If this happens, then querying a NOSQL or a RDBMS (or anything else) will be unified from the CLR perspective.

For instance, the following Linq query in the CLR (C# syntax):

var query = (from f in Context.Foo
                   where f.Something.Equals(“something”)
                   select new f).

Could emit UnQL if Context is NOSQL or SQL if RDBMS…genius. If only Java had something like IQueryable <sigh>.

It also looks like Couchbase is dumping the CouchDb HTTP REST API for the binary Memcached protocol, which should be a big win from a performance perspective (sorry CouchDb users). Membase already uses the protocol, so it’s just matter of switching the HTTP REST API for UnQL.

Another develpoment in Couchbase is that CouchDb has been forked.  The good news it’s still going to be open-source:

“As J. Chris Anderson notes in the comments, Couchbase is completely open source and Apache licensed:
Everything Couchbase does is open source, we have 2 github pages that are very active:

Probably the most fun place to jump into development is the code review:
Let me clarify, if you like Apache CouchDB, stick with it. I'm working on something I think you'll like a lot better. If not, well, there's still Apache CouchDB.”

While possibly a bit traumatic for CouchDb afficiandos, this should be a huge win for Couchbase fans and for companies investing in Couch as stable, NOSQL solution.



Obama’s Website Reminds me of Couchbase’s and other Notes

by jmorris 15. December 2011 13:32

This is what inspires me to blog again after months of inactivity:

image image

Is it just me or don’t they, kind of look alike?

That observation aside, the Obama website is kind of creepy. It has an several forms for soliciting contact information from the sheeple:

And this one which collects more data, allows you to make a donation and enter a Republican you knows contact info and they will send them a message:

“This holiday season, we're giving you a chance to have a little fun at the expense of a Republican in your life by letting them know they inspired you to make a donation to the Obama campaign.

Simply enter their name and email address below. Then, we'll send them a message letting them know they inspired you to donate. (Don't worry—we won't hold on to any of their information.)”

Immature and trite, if not weird action from the POTUS…meh politics.

Another interesting “feature” of the website is this splash page that comes up the first time you hit the site (try clearing cookies):


Note that it attempts to immediately get your email and zipcode? More point-of-contact and demographic information for the the big “B’s” big data machine. Notice how small the “continue to the website…” part is? It’s even in a muted color (in comparison to the “SHOP NOW” button).

Inspiration, wherever it may find me…



Twitter Fail

by jmorris 12. September 2011 05:50


I find it hard to believe that twitter is still experiencing problems of scale given it’s popularity and available resources. Mind boggling, really.




by jmorris 30. August 2011 20:05




Looks like the cloud evaporated…



MonoDroid and MonoTouch Alive!

by jmorris 20. July 2011 22:11

There was a lot of noise and confusion on the Monodroid mail group when it was reported that Novell had been sold to Attachmate and subsequently laid off the entire Mono team. The two major products that the team had been working on, Monodroid and Monotouch (cross platform .NET platforms for Android and iOS development) apparently were dead.

Well, it looks like Miguel and his team have worked a deal with Attachmate:

Through an agreement with SUSE*, a business unit of The Attachmate Group (the company that acquired Novell in April 2011), Xamarin has a broad, perpetual license to all intellectual property covering Mono*, MonoTouch, Mono for Android and Mono Tools for Visual Studio. Xamarin will also provide technical support to SUSE customers using Mono-based products and assume stewardship of the Mono open source project


This is good news indeed for open source .NET development and all involved.

Tags: ,


The Mysterious +<>c__DisplayClass1

by jmorris 9. July 2011 01:23

While unit testing a a VirtualPathProvider today, I came upon an interesting exception:

System.Runtime.Serialization.SerializationException : Type 'Foo.Web.Core.UnitTests.Plugins.Modules.PluginRegistrarTests+<>c__DisplayClass1' in assembly 'Foo.Web.Core.UnitTests, Version=, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

I was stumped by this…what, where and who  is +<>c__DisplayClass1'? Granted my scenario was somewhat complex in that I am testing in a by using a fake AppDomain that mimics the ASP.NET HostingEnvironment ala this post.

When I saw that error, I immediatly thought the problem was that I was missing the Serializable attribute, since the exception explicitly states: “[type] is not marked as serializable.” I added that attribute to class that I was loading into the faux AppDomain for the same result:


WTF? I was stumped! I googled around a bit and got side tracked by some discussions of MarshalByRefObject and finally stumbled upon something on Ode2Code. I wasn’t quite sure of what the problem was until I read some of comments. Most notable this one. A quick check of the IL with ILSpy confirmed my suspicions:


Fix was easy: simply move the declaration of the FakeHttpApplication class to within the scope of the delegate itself. Here is how I had it defined:


And after I moved into the scope of the delegate:


So, what was the problem? Basically it comes down to the scoping of Anonymous methods and how the compiler generates code to support them. Anonymous methods are simply compiler generated types. The generated type c__DisplayClass1 is not marked as serializable, so it fails when passed into the scope of the Anonymous delegate call…which is executing in another AppDomain (that does not contain the Anonymous type definition).

Tags: ,

Unit Testing

Monodroid and Monotouch Dead?

by jmorris 16. May 2011 23:01

A couple of weeks back Novell was sold to Attachmate and there was a lot of speculation about what would happen to Monodroid and Monotouch, the Mono based development tools for targeting IOS and Android apps using C#. Well, it looks like they are both dead in that Attachmate laid off the development teams for both.

However, it looks like Miguel de Icaza, the main man behind Mono, has started a new company that will develop tools for developing Mono apps for IOS and Android:

While the death of Monodroid and Monotouch is a bummer for those who have invested their time, money and effort in them, there will still be tools being developed that will allow C# on these popular platforms. Also, no longer being tied to large company has it’s benefits and undoubtedly the Miguel’s new company will be better equipped to meet the needs of developers.

I was pretty close to committing to Monodroid for my personal droid development, but now I am glad I simply chose the Eclispe/Android toolkit solution. Java and Eclipse are a bit rough of a development stack, but it’s relatively easy to switch between C#/VS.

So, a short step back for Mono, but in the end I think this will lead to good things. At least I hope.

Tags: ,


Using JQuery Plug-in with WCF Services part Duex

by jmorris 29. April 2011 23:51

My older post on using the JQuery Datatables plugin with WCF has been a very popular post, even now, a year later. One thing that people keep asking for and I never have gotten around to doing, is posting the source code. The original post was based upon code I used within the company that I worked for and definitely could not release, however, i was able to strip out and/or stub most of the dependencies and post a working example on github:

I hope this helps :)


Book Review: NHibernate 3.0 Cookbook by Jason Dentler

by jmorris 28. April 2011 23:06

This is one of the most timely and practical books I have ever read. If you are using NHibernate 3.0 and any of it’s “satellite” FOSS projects and you need a reference on how the community is using it, buy this book.

As the name implies,  the book is laid out in the same manner as a “cookbook” with each chapter grouping together several “recipes”. These recipes illustrate how the community in general is using NHIbernate each feature or API and while they may not cover every scenario, are usually enough to get you going in the right direction.


The chapters each cover one of the major components of NHibernate, for instance, there are chapters covering of fundamentals of NHibernate:

  • Models and Mappings
  • Configuration and Schema
  • Session and Transactions
  • Queries

Plus additional chapters on the practical usage of NHibernate:

  • Testing NHibernate
  • Creating a Data Access Layer
  • Extending NHibernate
  • Using the NHibernate Contribution Projects

Each chapter is divided into a series of “recipes”, for instance Using the Conversation per Business Transaction Pattern, and then offers an explanation of what the said topic is or does. Then it goes into sections on:

  • How to do it: detailed description what you need to do to get the example working
  • How it works: detailed description about what is going on behind  the scenes
  • There’s more: any additional information or examples that adds value to the recipe
  • Getting Ready: gives information that is required to get the recipe to work – e.g. download the project binaries from


  • Easy to read
  • Packed full of timely examples
  • Layout is easy to follow and comprehend
  • Will get you up and running with NHIbernate very quickly


The author’s blog:

Tags: ,

Book Reviews

What Am I Missing Here?

by jmorris 9. March 2011 07:16

So I am trying to purchase VS2010 for home use, side projects, etc…I google VS2010 price and click on the first “relevant” result:

And click the “BUY NOW” link which opens:


Great $549 for VS2010, way to expensive but within the budget. So click on the link to purchase and this is what I am presented:


$799.00? WTF? But wait, full version $549.00 (my only option, really). And what do I see in the cart?





Jeff Morris

Tag cloud

Month List

Page List