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,612
|
Comments: 51,245
Privacy Policy · Terms
filter by tags archive
time to read 1 min | 122 words

I had the feeling that I am doing a lot more blogging lately. But I finally bit the bullet and learned how to use pivot tables, so now I also have the graphs to prove it.

image 

KaizenConf gave me a huge boost of energy, but I the reason for the surge in the number of post is mostly the new project. I hate starting a new project, that is the most annoying part in the whole lifecycle.

I am pushing my frustration as posts. It also helps that I think while writing, so I am hitting a problem, post about something (which can be completely different), and go back and solve the problem.

My Bio

time to read 2 min | 213 words

Every now and again, I find myself having to cough up a bio. Usually for conferences, talks and the like. Since I tend to dislike talking about myself, I often neglect that. The last time I updated my bio was in 2006. Time for a fresh one.

Oren Eini is an independent consultant based in Israel. His main focus is on architecture and best practices that promote quality software and zero-friction development.

Oren is the author of Rhino Mocks, one of the most popular mocking frameworks on the .NET platform, and is also a leading figure in other well known open source projects including the Castle project and NHibernate.

An internationally known presenter, Oren has spoken at conferences such as DevTeach, JAOO and Oredev, and is the author of the book "Building Domain Specific Languages with Boo", soon to be published by Manning.

Oren, using his pseudonym as Ayende Rahien, is a frequent blogger at http://www.ayende.com/Blog/. His hobbies include reading fantasy novels, reviewing code, and writing about himself in the third person.

Update: I honestly forgot.

Oren is also a Microsoft MVP, a fact that he tends to forget when writing a bio.

Thoughts?

And thanks to James Avery, Avish, Al Gonzalez, Tobin Harris and IMH for proof reading it.

Blog updated

time to read 1 min | 101 words

I updated the site to Subtext 2.0. So far, it looks good.

Reason for upgrade? I wanted to get the ability to future post. That should give me a way to throttle my blogging bandwidth.

This post, for that matter, is posted with 4 minutes delay.

Broken: I manage to forget that this blog also has a lot of links built from the old old blog, using dasBlog. It run for the last year and a half with no issues, so I just didn't notice that. Trying to fix it now, but it may be delayed for tomorrow.

time to read 3 min | 537 words

I was having dinner with Dru Sellers and Evan Hoff and Dru brought something up that really sparked my imagination. To put it in more concrete words, what Dru said started a train of thought that ended up with another mandatory requirement for any non trivial application.

Your application should have a blog.

Now, pay attention. I am not saying that the application team should have a blog, I am saying that the application should have one. What do I mean by that? As part of the deployment requirements for the application, we are going to setup a blog application that is an integrated component of the application.

Huh? I am building Order Management application, why the hell do I need to have a blog as part of the application? Yes, PR is important, and blogs can get good PR, but what are you talking about?

This is an internal blog, visible only for the internal users, and into it the application is going to blog about interesting events that happened. For example, starting up the application would also cause it to post to its blog about that, which can look like this:

image

This looks like log messages that were written by a PR guy. What is the whole point here? Isn't this just standard logging?

Not quite. This is an expansion of the idea of system alert, where the system can proactively determine and warn about various conditions. This idea is anything but new, you are probably familiar with the term the Operation Database. But this approach has one key factor that is different.

Social Engineering

Using a blog, and using this style of writing, making it extremely clear what should and should not go there as a message. You obviously are not going to want to treat this as a standard log, where you just dump stuff in. From the point of view of actually getting this through, this make a task that is often very hard into a very simple "show by example".

From the point of view of the system as a whole, now business users have a way to watch what the system is doing, check on status updates, etc. More than that, you can now use this as a way to post reports (weekly summary, for example) and in general vastly increase the visibility of the system.

Using RSS allows syndication, which in turn also also easy monitoring by an admin, without any real complexity getting in the way. For that matter, you can get the business user to subscribe to it with Outlook (if they don't already have a standard RSS reader) and get them on board as well.

Now, this is explicitly not a place where you want to put technical details. This should be reserved to some other system, this is a high level overview on what the system is doing. Posts are built to be human readable and human sounding, to avoid boring the readers and to ensure that people actually use this.

Thoughts?

time to read 2 min | 320 words

I am working on the versioning chapter for the DSL book, and it is going amazingly well. When I started it I had only the vaguest of idea how to go about writing it, but I wrote 10 pages today, and it is going very fast, and the flow seems to be good. What creeps me out is that I spent months thinking about this, without getting any concrete idea about how to express myself, and than it all flow at once.

The problem, of course, is that it doesn't really flow into the book, here is my current blogging queue (unordered):

  1. NHibernate Interception with Post Sharp
  2. Entities dependencies best practices
  3. Creating logging interceptor with Castle Windsor
  4. Evaluating Prism
  5. Usage scenarios for Cloud Computing
  6. Evaluating Kym
  7. Distributed Hash Tables: Locks usage best practices
  8. Distributed Hash Tables: Locality
  9. Distributed Hash Tables: Namespaces
  10. Distributed Hash Tables: Time sensitive updates
  11. Distributed Hash Tables: Lookup by property
  12. Distributed Hash Tables: Lookup by range
  13. Code Critique: Transactional Queue
  14. Rhino Queues
  15. Useless Java
  16. A DSL trip to the Zoo
  17. I'll get to your application in a week- First, we need to build the framework
  18. Production Quality: A DSL Sample

And I am probably forgetting a few along the way. Just getting this turned around would be hard enough, but I also have three webcasts that I need to record & edit:

  • First Steps With Rhino Commons
  • Building Domain Specific Language with Boo
  • Production Quality Software

Way too much on my plate, I am going to bed.

time to read 2 min | 296 words

I did this a year and a half ago, so it probably about time to do it again. I am using the same approach I outlined in this post.

  • Active since: April 2004 ( I am doing this for 4 years! Wow! )
  • Number of Posts: 3,437 (was 2196)
  • Number of Comments: 12,958 (was 3030)
  • Avg. Comments Per Post:  6 (was 3)
  • Avg. Posts per Month: 71 (was 60)
  • Avg. Posts per Month Last Year: 51 (was 82)
  • Avg. Posts per Week Last Year: 11 (was 19)
  • Avg. Comments per Month Last Year: 550 (was 108)

Posts to comments, over time. I actually got to the point where I can't fit everything in a single graph, so I split them by year. Note that the scale for each graph is different!

2004

image

2005

image

2006

image

2007

image

2008

image

It is especially interesting if you look at the amount of posts per month over the entire period:

image

And now compare this to the number of comments per month over the entire period:

image

I thought about putting the most popular posts here, like in last year, but I find the list depressing.

time to read 1 min | 94 words

Well, after a long time of bugging him about it, I finally decided to give Craig the first Hostile Blogging Award. So Craig has a blog now, which is wonderful.

Who is Craig and why should you care to read what he is thinking about?

  • A friend
  • Committer to both Castle Project and Rhino Tools
  • Main guy behind Binsor 2.0
  • Main guy behind Zero Config WCF
  • All around interesting guy

Subscribed, and very excited.

Post #3,000!

time to read 3 min | 405 words

imageI have been doing it for quite a while, sometimes it seems like forever. Somehow, I am not quite sure how, I got to this post, the third thousand one.

By sheer coincidence, this is also my birthday by the Hebrew calendar.

I am not quite sure what I am supposed to do about it, since the big surprise is planned for a few months from now, so I decided to go with the traditional route and do a retrospective.

I used these two posts to gather the information:

  • Active since: April 2004
  • Number of Posts: 3000
  • Number of Comments: 8,462
  • Avg. Comments Per Post:  5
  • Avg. Posts per Month: 73
  • Avg. Posts per Week Last Year: 19
  • Avg. Comments per Month: 208

The most popular posts, based on web views, aggregator views and comments. The results are quite surprising to me, I am not sure that I can readily explain it.

  1. Hibernating Rhinos - Episode #4: Hibernating Forums - Part I - Testable & Painless Persistence
  2. Hibernating Rhinos - Episode #2 - Select * From MonoRail.Customers
  3. Dependency Injection in Web Forms MVC
  4. Implementing Linq for NHibernate: A How To Guide - Part 1
  5. Challenge: Windsor Null Object Dependency Facility
  6. Rhino Mocks stats
  7. Documentation Contributions
  8. Supporting OSS in the .Net Space
  9. Linq for NHibernate
  10. Rhino Mocks 3.1 - Released!
  11. SSIS' 15 Faults
  12. Rhino Mocks 3.0 Released!
  13. ASP.Net Ajax vs. Unit Tests
  14. Building a Space to Grow
  15. MS-Innovation
  16. Rhino Mocks 3.3
  17. Must resist... decoding
  18. MVC in WebForms: The impossible fight to get rid of the views centric world
  19. Rhino Commons, Repository<T> and Unit Of Work
  20. Introducing Boobs: Boo Build System
  21. Using NHibernate With Stored Procedures
  22. Simple != Poor Quality, period!
  23. On SubSonic & NHibernate
  24. Hibernating Rhinos - Episode #1: Rhino Mocks 101
  25. 7 Approaches for AOP in .Net
  26. Visual SVN: Another Zero Friction Tool In The Toolbox
  27. Entities, Services and what goes between them...
  28. The Correct Separation Of Concerns
  29. Dev / Team estimation
  30. Maintainable, but for whom?
time to read 2 min | 358 words

Luke Breuer has the following to say about this blog.

Perhaps you do not care, but Subtext is getting on my nerves.  I love reading your blog, love reading comments, and feel that I have learned a lot from you.  Hopefully you have learned at least one useful thing from my comments.  With that said:

  1. I cannot track comments unless I write something manual to do it.  (To be fair, I have asked the commentful folks to add support for SubText, and gave them all the XPath/ID/Class information they need to do it.)
  2. Code looks horrible in comments.
  3. Refresh is BROKEN in Firefox 2.0.  It does not show new comments.  I have to activate my URL bar and hit [enter].  I think Javascript is the culprit, as it seems to be hiding new comments right after the refresh.
  4. Post categories are not show for posts (only a list of all post categories is findable).
  5. Comment URLs are not auto-linkified.
  6. Your comments are the most beautiful ones I have seen.  I like cleaner separation between posts.  However, this is definitely personal opinion, hence its last position in this list.
  7. Why should I have to type in the four-letter code when I've made plenty of comments that weren't spam, all from the same IP that has never submitted spam? :grrrr:

I mostly agrees with his comments. Some of them are fixable with the skinning abilities of SubText, some may require changing the code base, etc.

I will say in advance that I have looked into SubText only long enough to know how to make it work for this site. I don't have the time or the inclination to go ahead and try to fix those issues.

Therefor, I would like to ask you, dear reader, for help. This blog is running SubText 1.9.3.51, no fancy customizations or anything like that. It is run in a single user mode.

The blog skin is avialable here: http://ayende.com/Files/AyendeBlogSkin.zip

Suggestions to upgrade to a newer version (assuming it supports these new features/fixes) or patches that support it are welcome.

Thanks in advance,

~ayende

time to read 2 min | 278 words

image image Okay, let us see if I can get this post readable. If I am successful, you are supposed to see two images, one to the left and one to the right.

Those images represent two blog posts, they are blurred on purpose, I don't want to talk about the content, I want to talk about the presentation here.

The main difference between those two posts is the amount of text that goes into one paragraph. This has a direct correlation to the way that I read content.

The post on the left is painful to read, it has massive amount of text that I need to parse and read. I actually stopped reading it when I figure out that I was merely scanning it to avoid actually reading the content.

By reducing the amount of text per paragraph, you are making it easier to read the content, you let the eye skip to the next one naturally, instead of having to parse it.

Books can get away with it somewhat, because they have much higher resolution, but on the web, you cannot. You have to pay attention to the way you are writing.

Short paragraphs make it more pleasant to read the content. Dense content is painful to read, and it gives the feeling that it is dry, even if it is the most fascinating subject on the world.

And that was a whole post that could be surmised as "just hit enter more often, dude", sorry.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. Recording (18):
    29 Sep 2025 - How To Run AI Agents Natively In Your Database
  2. Webinar (8):
    16 Sep 2025 - Building AI Agents in RavenDB
  3. RavenDB 7.1 (7):
    11 Jul 2025 - The Gen AI release
  4. Production postmorterm (2):
    11 Jun 2025 - The rookie server's untimely promotion
  5. RavenDB News (2):
    02 May 2025 - May 2025
View all series

Syndication

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