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,317 | Comments: 46,916

filter by tags archive

How to (not) develop big applications...

time to read 3 min | 433 words

Check this out. This is a short explanation on how Microsoft manages to produce Windows.

After reading this;

  • four to six months to get the dependencies that you need for a feature?!
  • the same length of time until other people get to use your code and you hear some feedback?!
  • 64 people who has a say in the freaking Off menu?!
  • a year to develop a menu with seven options?!

I literally can't grasp how they manages to do anything done. This puts Big Bang integration to shame, it is a Continious Big Bang, but six months too late. Some of the immediate implications is that until very late into the product, there is no authorotive source for Windows. No wonder they had to do a recylce two years ago, they were trying to do that and build WinFX on top of the (moving) .net 2.0 / 3.0. Exactly how many pieces do they think that they can juggle at one time?

And why on earth are there 64 people with a say on single feature? A feature should have at most two owners, the business-side owner and the tech owner (usually the tech lead / developer), everyone else is a dependency either you on them or they on you. They don't get to make decisions. At one time when I was in the army I had 9 people who were my direct commands, and at one point i literally had 28 ocnflicting orders. I went home and let them deal with it (a very good way to deal with annoying people, by the way).

There are few (if any) software projects on the level of Windows, but I don't think that it is possible to develop software in this manner. There are all too many people in the way for it to work. Also, this information made Microsoft a lot less attractive place to work with. I don't like being in a no-code/all-meeting days, and there are very few things that annoys me more then people telling me things that they already did.

No wonder that they are bleeding the good people out. They are going to find places they can actually work for.

Vista: What Is The Killer App

time to read 2 min | 213 words

So, I have installed vista, wasn't very happy about it, and went back to XP. This raise the question, what is the killer application for Vista? Even in my brief use of Vista, I could see a lot of stuff that I liked. But none of them was really good in the level of "Oh, I must have this!"

Just repaving a system is something that take me days/weeks to recover from. Moving from XP/2003 to Vista is something that is going to take even longer. There should be something that would make me (and other users) want to move. For Windows 3.0, that was Excel / Word. For Windows XP, it was a very long process of just getting it out of the box (I can't recall any reason to upgrade from 2000, and indeed, I didn't for a long time).

According to several people who already jumped on the Vista wagon, the impvorements to the OS are many incrememntal ones, and not several big ones. This is a Good Thing, except that it takes a long while to get used to those improvement, and get annoyed when they are not there.

Is there a killer application for Vista?


time to read 3 min | 492 words

My Vista Install Experiance:

  • I couldn't upgrade the machine, got some error about file corruption in:
  • I burned to DVD and installed from scratch, and then it worked.
  • Attempting to install VPN client (checkpoint, for what it worth) caused a blue screen and resulted in an un-operational system.
  • I repaved the machine again with Vista, this time not trying to install the VPN.

My Vista User Experiance:

  • It is pretty, and it has a lot nice effects.
  • Just about every action that I made at the start of the system cause a security dialog. This security dialog is accompanied with a screen flicker, which looks excatly like the start of a blue screen. I imagine that after stabalizing the system, I won't have to run into those so often, but it is still highly annoying.
  • IE7 is Not FireFox - It looks a lot alike, but it behaves differently, very annoying.
  • Microsoft has still not learned about Fitt' Law as it applies to the taskbar, or they never tries to use Vista with the taskbar set to more than one row.
  • There are a lot of UI features that I say "Wow, this is nice", and some that I have already to say "Wow, this is useful".
  • Visual Studio / Sql Server / MSDN - Refused to install.
  • Couldn't get the screen (LG L1800P) to portrait mode.
  • I spent most of the day reading Agile Development With Rails, since Rails does work on Vista.
  • I kept waiting for it to crush, since application did so with regular consistency. I never did actually install anything on it, just some Portable Applications, and that was it.

I am writing this on my "old" XP mahcine, where I can use VPN, use the screen in portrait mode and actually do some useful work.

I might try it again when there would be a consumer release, and all the drivers/applications would be more mature (or even exist). But for now, I don't see the benefit.

On Vista

time to read 2 min | 208 words

That took quite a while. At first I got the 0x80070241 error midway through install, which seems to only happen on upgrades. I finally just installed from scratch, which is very annoying, but at least worked.

As a matter of fact, I installed twice. The first time I tried to install CheckPoint SecureClient, and all hell broke lose. Blue screens all over the place, it got to the point that I couldn't even boot. I finally decided to scrap that install and install again from scrtach.

The annoying security dialogs are indeed annoying, what is more, the second before they appear, the entire screen blinks, I assume that this is because of the new desktop being created. the problem with that is that it looks excatly like it is going to blue screeen.

So far, I can't say that I am particularily impressed with anything there. The enw webby Look & Feel drives me nuts because I don't know if I need to double click or single click, for instnace.

It is prettier, I will give it that.

The problem is that until I get the VPN issue straighten out I literally can't do anything with the computer. No Visual Studio, no Office, nothing.

In the meantime, I think that I will purp


time to read 1 min | 67 words

Wish me luck, I am going to try upgrading my machine from XP to Vista. I don't want to rebuild my enviornment from scratch (several days at least), so I am upgrading. I have no idea if I will end up with a usable machine.

The compatability tools says I am fine, but I guess that I'll have to see...

Presenting Trac UI

time to read 1 min | 182 words

So, after praising Trac so much, I decided that I need another this from it, and that was a windows client. Specifically, what I wanted is for QA to be able to enter bug reports that included screen shots without a lot of hassle. There is nothing that explains most bugs better than a screen shot with some marking.

The result is this:

(Image from clipboard).png

(Image from clipboard).png

(Image from clipboard).png

(Image from clipboard).png

The easiest part of this application was capturing the screen, actually. The hardest was interfacing with Trac. Xml RPC is not as easy as it can be when you are used to wsdl generated code, I am afraid.

Note: This is not public yet. The code is in the rhino tools repository, but I want to test it in more scenarios, specifically, ones hat involve windows authentication.

I love Trac

time to read 2 min | 270 words

After searching high & low for a bug tracker to use, I have finally settled into Trac, but only recently I have had the time to really take a deep look at it. The #1 issue with Trac is that it is hard to setup for the first time. I am used to web applications that are either drop in (ScrewTurn Wiki) or Drop In, mess with config, done (just about anything else). Trac has a very different approach, in which most of the management of the project is done via a command line tool. It took me a while to grasp that, and then it was a lot easier.  (Yes, I know about web admin).

The #2 issue with Trac is the version number, it is currently 0.10.2, for a product that is feature rich and stable enough to call 1.0. I am used to OSS projects have ridiciously low version numbers, so it is not surprising, but I do believe that this would be a turnoff for many people. I believe that the low version number is because they are making breaking changes to the code base fairly often.

So far I have been very impressed with the amount of stuff I can do it. It is highly customizable via configuration, and there are all sort of really interesting plugins that exists for it. Gantt chart and export as PDF are the ones that are really cool. But there are others that seem to fit just about any concatenation of features that I can think of.

Mem Cached Information Util

time to read 1 min | 155 words

I have been doing a lot of work with Mem Cached lately, and I have been frustrated with the lack of information that I have from it as I tried to use it. The main problem is not that the information isn't avialable, it is that I feel that telneting to a service and querying its status using text commands (and them trying to turn bytes to MB in my head) is a bit primitive.

This utility will simply query the MemCached server every 5 seconds, and display a more friendly status. You can configure its server via the app.config. Needless to say, this is a one off application, so it isn't meant to be very robust or maintainable (not that it does that much).

You can get it here. And the source (for the curious) is here.

Have fun...


  1. Feature intersection bugs are the hardest to predict - 6 hours from now
  2. RavenDB Conference videos: Implementing CQRS and Event Sourcing with RavenDB - about one day from now
  3. How did the milk get to the fridge? - 2 days from now
  4. RavenDB Conference videos: Building Codealike: a journey into the developers analytics world - 5 days from now
  5. Low level Voron optimizations: Transaction lock handoff - 6 days from now

And 8 more posts are pending...

There are posts all the way to Mar 10, 2017


  1. RavenDB Conference videos (12):
    21 Feb 2017 - Zapping ever faster
  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