Oren Eini

CEO of RavenDB

a NoSQL Open Source Document Database

Get in touch with me:

oren@ravendb.net +972 52-548-6969

Posts: 7,642
|
Comments: 51,261
Privacy Policy · Terms
filter by tags archive
time to read 2 min | 217 words

Okay, here is an interesting issue. I am currently building a big project using NHibernate 1.0.2, and I need some features on NHibernate 1.2, mostly with regard to the new critieras. At the moment, we can't move to 1.2, there are concerns about it being beta and other changes that will keep us busy with technical stuff rather than building business stuff. Those are valid concerns, but I still feel that it will take more time in the end to move to the new version.

I can solve the problem with 1.0.2, but not cleanly. I can back port the new stuff that I need (basically, a single class) and use it against NHibernate 1.0.2 (without modifications to NHibernate). The issue I wonder about is how to prepare for the eventual move to NHibernate 1.2. The last thing that I want is to have two ways to do something, or using the inferior method to handle it.

I already have a big comment right there:

//TODO: Fix this by XYZ when moving to NHibernate 1.2

 Any other suggestions?

time to read 5 min | 889 words

I found that I need to group a collection by a certain attribute of its member quite often. Usually because I'm trying to do some crazy things with deeply nested and timed to put some data on the screen.

Anyway, here is the code:

public static IDictionary<T, ICollection<K>> GroupBy<K, T>(ICollection<K> collection, Converter<K, T> converter)

{

       Dictionary<T, ICollection<K>> dic = new Dictionary<T, ICollection<K>>();

       foreach (K k in collection)

       {

              T key = converter(k);

              if (dic.ContainsKey(key) == false)

              {

                     dic[key] = new List<K>();

              }

              dic[key].Add(k);

       }

       return dic;

}

It is not earth shattering or anything like it, but it is going to make a lot of tasks a lot easier now.

(BTW, this is now a part of Rhino Commons).

Rude installer

time to read 1 min | 61 words

For a while, I was sure that I had a spyware on the machine, but it turned out to be just VS2005 SP1 Beta1 installer (from now on, known as SP1, because it is quite a mouthful).

(Image from clipboard).png

It kept pegging the CPU for about 20 minutes!

At least I managed to uninstall it and got back my Web Application Projects.

time to read 2 min | 314 words

I just found the text below on the NUnit forum (removed since then), and I couldn't stop laughing.

Please do not develope components for .NET  It has become required for a few companies apps like Sony and ATI. It installs over 15,000 registry entries!

It is a complete hostile takeover of a system. It does not benefit the user.

It is very similar to a Vampire. A vampire must be invited in to give it power.

The .NET component must be downloaded of your own free will to give it power.

They cannot sell it to you as that would be illegal due to what it does once it is installed. Please study this issue carefully through forensic examination to reveal exactly what .NET is actually doing for both you and for the master controllers. This is a dangerous trend in computing. Please do not support it and especially do not support companies that require it.

I will be going to look for my tinfoil hat now...

time to read 2 min | 265 words

Yesterday the beta for NHibernate 1.2 was released, the new features that interests me are:

  • Native generics (you no longer have to use the NHibernate.Generics compatability library).
  • Batching support (SQL Server only) - huge perforamance increase in some scenarios.
  • Support for using Stored Procedures.
  • Support for named connection strings.
  • SQL Server 2005 and SQL Server 2005 Everywhere dialects
  • Parametrized types and User Collection Types - for the really advanced scenarios :-)
  • Support for projections in criteria queries - This one looks especially interesting
  • IL-based reflection optimizer - another big performance boost.

You can get the new beta release here, and the full release notes are here.

time to read 1 min | 122 words


Old Man's War

Only occasionally I get to read a book that make go "Wow!", merely because the strength of the plot and the charm of the charaters. Scalzi creates a full fledge world (universe, actually) very quick, very easily and very convincingly.

The story reminded me strongly of Hienlien's Starship Troopers (although the only common plot idea is war among the stars). As someone who grew up on Hienlien's books, that is a high praise.

There are two other books in the same universe, and I'm looking forward to reading them...

time to read 1 min | 84 words

I am currently listenining to Hansleminutes #33 and found out that Mac users has an advantage over Windows users in the laptop department. Apperantly Mac user can simply shut the lid, put it in the bag and go on.

I've been doing the exact that with my laptop, whose uptime at the exceeded the 40 days mark before the @#$% Windows Update decided that it is a good time to force a shutdown, with nary a problem.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. API Design (10):
    29 Jan 2026 - Don't try to guess
  2. Recording (20):
    05 Dec 2025 - Build AI that understands your business
  3. Webinar (8):
    16 Sep 2025 - Building AI Agents in RavenDB
  4. RavenDB 7.1 (7):
    11 Jul 2025 - The Gen AI release
  5. Production postmorterm (2):
    11 Jun 2025 - The rookie server's untimely promotion
View all series

Syndication

Main feed ... ...
Comments feed   ... ...