Oren Eini is a senior developer / architect, focusing on architecture, data access and best practices. Most often, he is working on building complex business systems using .Net 2.0, NHibernate and Castle's Frameworks, providing training and guidance for the use of Object Relational Mapping, Inversion of Control, Domain Driven Design and other exciting topics. Oren is an active member in several leading Open Source projects, including (but not limited :-) ) NHibernate, Castle and Rhino Mocks.
Ayende @ Rahien | 21 Apr 2017 09:00
Oren Eini writes "....I have been re-thinking about some of my previous positions with regards to development, and it appear that I have been quite wrong in the past. In particular, I’m talking about things like: non virtual by default. Representative post. abstract..."
Read more » I was wrong, reflecting on the .NET design choices
Ayende @ Rahien | 20 Apr 2017 09:00
Oren Eini writes "....I run into the following bit of code while doing a code review on a pull request: This was very strange, because the code appeared to compile properly, but it shouldn’t. I mean, look at it. The generic parameter is not constrained, and I don’t have..."
Read more » A tricky bit of code
Ayende @ Rahien | 19 Apr 2017 09:00
Oren Eini writes "....During benchmarking RavenDB, we have run into several instances where the entire machine would freeze for a long duration, resulting in utter non responsiveness. This has been quite frustrating to us, since a frozen machine make it kinda hard to..."
Read more » Overloading the Windows Kernel and locking a machine with RavenDB benchmarks
Ayende @ Rahien | 18 Apr 2017 05:12
Oren Eini writes "....So we got an emergency support call during the Passover holiday, and as you can imagine, it was a strange one. Our investigation of the error basically boiled down (cutting down a lot of effort in between): “This can’t be..."
Read more » Sometimes it really IS not our fault
Ayende @ Rahien | 17 Apr 2017 09:00
Oren Eini writes "....We have RavenDB Bootcamp ready to go. If you want to learn about RavenDB, we have 18 parts series that take you through working with RavenDB in easily digestible pieces. You can either go through them all or register to get them once a day via..."
Read more » RavenDB Bootcamp
Ayende @ Rahien | 14 Apr 2017 09:00
Oren Eini writes "....Consider the case when you need to call a function, and based on the result of the function, and some other information, do some work. That work require additional information, that can only be computed by calling the function. Sounds complex? Let..."
Read more » Reducing the cost of occasionally needed information
Ayende @ Rahien | 13 Apr 2017 09:00
Oren Eini writes "....After talking about what specifying LZ4 acceleration do, let us get down and talk about how we use it. In our benchmark, we run into a problem. Our benchmark hardware is too fast. I’m testing on a disk that can deliver 250,000 IOPS and can write..."
Read more » Dynamic compression acceleration
Ayende @ Rahien | 12 Apr 2017 09:00
Oren Eini writes "....LZ4 has an interesting feature, acceleration. It allows you to modify the compression ratio (and the corresponding compression speed). This is quite interesting for several scenarios. In particular, while higher compression rate is almost always..."
Read more » How does LZ4 acceleration work?
Ayende @ Rahien | 11 Apr 2017 09:00
Oren Eini writes "....As we continuously optimized more and more of our code, we kept seeing faster and faster benchmarks. In fact, the more we optimized, the faster we became. One would think that there is some sort of correlation there.
However, that is a mere theory..."
Read more » Performance optimizations: One step forward, ten steps back
Ayende @ Rahien | 10 Apr 2017 09:00
Oren Eini writes "....One of the things that we did in RavenDB 4.0 was support running on Linux, which meant giving up on Windows Authentication. To the nitpickers among you, I’m aware that we can do LDAP authentication, and we can do Windows Auth over HTTP/S on Linux...."
Read more » Single roundtrip authentication