Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,319 | Comments: 46,927

filter by tags archive

A code base has its own style

time to read 1 min | 104 words

Here is an observation, once a code base has reached a certain size, either in time or in size, it usually takes on a style and identity of its own. This is far more than just a coding style that I am talking about. I don't care where you put the braces. I am talking about the repeated patterns that you see over and over in side that code base.

An example would be Castle-inspired projects. You are far more likely to see things named SmartXYZ or IAbcAware, with the usual implications that there are there.

What are the styles that you have noticed?

Random Impressions from JAOOWeb Forms on the Enterprise

time to read 1 min | 71 words

When Hamilton and me gave the MonoRail talk to the Enterprise Application track, we asked how many people were .NET vs JAVA vs Ruby. The results where roughly 43%, 43% and 4%, respectively.

The interesting part was when I asked how many of the .NET guys used Web Forms, almost all of them said that they do. Then I asked how many enjoyed using Web Forms.

No one raised their hands.

Random Impressions from JAOOAgile Adoption is not relevant

time to read 1 min | 105 words

It is not relevant because it is a thing of the past. Quite a few of the people that I met there, both speakers and attendees are taking agile and its practices as granted.

As in: Well, obviously this is how you build a software project, how can you do it any other way?

My company doesn't do agile development, lots of background here, and I am not going into it, and my own efforts seems both puny and diminishing values at some points, it was incredible to see people with that kind of mind set, and to know that this was basically everyone there.

Home, at last

time to read 1 min | 99 words

Okay, I am finally home. After running into three late consecutive flights, slow bus, late train and one sweat car ride home. All in all, it was about 20 hours on the road (from the moment I left the hotel to the moment I reached home). I am suddenly reminded of all the reasons why I don't really like to travel. Couldn't sleep the whole trip, so I am acting very funny now, got a whole torrent of stuff out in one go when I got home, got pretty funny responses, as well.

I am going to crash soon...

JAOO - Day 3

time to read 2 min | 348 words

We started with the MonoRail talk, which went fairly well. That wasn't recorded, but Hammett and I had recorded the rehearsal, so I think we will publish that.

The next session was about choosing a web framework, and the focus was on Java frameworks. Interesting to see the design decisions that they take, although I remain firm in my opinion that Java has too much XML involved.

The next session that I took part of (again, had to drop off because I was feeling very bad) was about the Guradian UK site, and how they manage to scale it up. Stateless, multi level caching and some very interesting smarts around fail over (stopping the cache from expiring anything in case of a downed DB, for instance). Something very interesting was to explore the scalability features of your DB, because too often people just ignore the perf benefits that the DB can do, and try to do everything in the application.

The Enterprise Application Panel was interesting, it was mostly focused on future directions, and the main conclustion is that we are in the end of a shakedown in terms of web frameworks and environments, at the end of which you are likely to have far clearer idea about what are the sweet spots for each framework / environment.

Flash and Silverlight were mentioned, as well as a 1MB JVM, but I am sceptical of those as a general purpose development platforms, simply because the constraints that they have are so severe. Flash doesn't handle Hebrew very well, and Silverlight doesn't support it at all (Justin is working on that, though). By the same token, it doesn't handle Arabic or Chienese very well. And limiting the programming environment means that you are left with very bad model to develop on.

I see a lot of value on building specific components or parts of the application in those technologies, but not doing it across the board, at least not in the kind of applications that I tend to write.

I'll have another post summrizing the entire conference in a while...

JAOO - Day 2

time to read 1 min | 110 words

We had the wierd Eric Meijer keynote, and then me and Hamilton gave the Active Record talk. It went very well, I think, although we could have probably used twice the alloted time :-)

It was recorded, and should probably appear on InfoQ sometime soon.

Later we went to Eric Evans talk about Strategic Design. I read the blue book, and I thought I understood it, but just listening to Eric talk for an hour was quite an eye opener in many respects.

After that talk I basically crashed, I had a terrible cold that was a real PITA when we presented, so that was JAOO's second day for me.

What happen to "everything in the cloud" when you die?

time to read 1 min | 198 words

At my house I have literally several boxes that they used to belong to my grandmother, before she passed away, and they contain an odd mix of junk and precious family history.

I am sure that this is not an uncommon story, and a lot of our history is composed of letters that were read after the sender / reciever were dead. A lot of the time this offers an unreplacable view of what really happened.

And if we try to look at less than the human history, then just having the possibility of going through the mail / documents of someone allows you to understand what is going on, and take actions with regards to it. (Such as paying the mortage)

I don't get any written letters anymore, excepts bills. Everything is done using emails. I am not unique. I keep a lot of what I do up in the cloud.

So, what happens when someone dies? To the best of my knowledge, there is no real process / precedant for that.

Even assuming that you have access to the passwords, would anyone would go through those emails in a hundred years? Would they be able to?

Erik Meijer on Democratizing the Cloud

time to read 1 min | 136 words

This talk was the keynote for yesterday, and I came out of it with a profound sense of shock. If this is where Microsoft is headed, then they are in a real problem.

Some of the things that really bothered me:

  • Don't learn anything new, let Microsoft chew it up for you first.
  • Let us compile our C# to JS (good) and then just make some of the calls a remote ajax calls (bad).
    I would have thought that they would have learned from the DCOM debacle, if nothing else. Location Transperancy is a Bad Thing.
    In general, Too Much Magic is a bad thing.
  • SQL and JS are assembly language concepts, you should only work in C#, and let Microsot handle them.

That was so wierd, and so out of touch with reality...

The "I am really not drunk" post

time to read 1 min | 143 words

image Just got from the bar, and I have met a bet with a few of the guys there, that I am not really drunk.

To prove that, I need to write correct multi threaded code. I started to write parallel sort routine, Erlang fashion, in C#, but that is too complex for me when I am not under suspiction of being drunk.

So I wrote Hello World.

It is 400 lines of code and it has got five threads, so I guess that officially proves that I am not drunk.

Now all I need is to figure out why the code is all wavy and flowing.

I don't care about fluent interface or not, but I am pretty sure that Visual Studio doesn't have the "crawling ants" features...


  1. Low level Voron optimizations: Transaction lock handoff - 11 hours from now
  2. RavenDB Conference Videos: Delving into Documents with Data Subscriptions - about one day from now
  3. Low level Voron optimizations: Primitives & abstraction levels - 2 days from now
  4. RavenDB Conference Videos: Replication changes in 3.5 - 3 days from now
  5. Analyzing RavenDB 4.0 with NDepends - 6 days from now

And 6 more posts are pending...

There are posts all the way to Mar 14, 2017


  1. RavenDB Conference videos (12):
    27 Feb 2017 - Building Codealike
  2. Low level Voron optimizations (5):
    20 Feb 2017 - Recyclers do it over and over again.
  3. Implementing low level trie (4):
    26 Jan 2017 - Digging into the C++ impl
  4. Answer (9):
    20 Jan 2017 - What does this code do?
  5. Challenge (48):
    19 Jan 2017 - What does this code do?
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats