Ayende @ Rahien

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

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 5,972 | Comments: 44,518

filter by tags archive

Phone shots


I just discovered the usb cable that allows me to connect the cellular phone to the computer, so I am going through the pictures I have taken. The end result is that I am about to subject you to several pictures I have taken in the last six months or so.

 From the Agile FDD Talk

CowShot.png

I assume that I am Herd because "I am legion" :-) This gets really funny when taken out of context.

From the store

LiverDeath.png

Click on the link to see, it is a Tube of Vodka. Instant Liven Transplant is required after consuming this.

From Microsoft

MsBob.png

Do you need an introduction?

Back from the Microsoft Developers Academy


I gave my IoC talk, and I got some good feedback. I have a hard time evaluating myself in this matter, there was a lot more power point that I usually like, and not enough code. I did get some involvement from the crowd, including some fairly interesting quetsions. I'll wait to get the official feedbacks.

I also took part in a couple of panels, and just because I could, some OSS work when I had free time. I liked the irony :-).

I'm dead tired, so this is probably going to be it today, to everyone that mailed me with patches, bugs, etc. I saw it, but I probably won't respond until the weekend.

 

Is Linq For Mortals?


Mike Taulty has posted about Linq syntax, at the end, he shows a simple way to do joins and then aggregation between two collections. The code looks like this:

var a = products.Join(
      
sales,
        p => p.Id,
        s => s.ProductId,
      (p,s) => new { Country=s.Country, Sales=s.Sales, Product=p.Name })
.GroupBy( p => new { p.Country, p.Product })
.Select( gp => new { gp.Key, TotalSales = gp.Sum(s => s.Sales) });

I am sorry, but I cant read this. I can't even understand what this is meant to do. Now, I am the first to admit that my knowledge of Linq is weak at best, but still... Assume that I have a bug in such a code, how do I debug it?

That is a much bigger concern to me, I am not worried about learning the new stuff, I am worried about what I need to do when they break. I have some experiance in debugging applications via Reflector, and that is not nice. Especially if the compiler is doing funky magic and you are left reading the IL.

NHibernate In Action


Looks like Ben Scheirman have found the big secret.

Just one question, what is this picture or?

Aside from that, I can say that Hibernate in Action is a the best for anyone developing NHibernate. With the advent of NHibernate in Action, it is going to be even easier (no need to mentally translate from Java and EJBs anymore).

I am looking forward to July 1th, when this book is coming out.

Coding Metrics


Take a look at those:

Castle: (removed image)

Rhino Tools: (removed image)

I run Ohloh before, but this time it is for my own stuff, and it looks like my Rhino Tools projects is over 70,000 Lines of code, and is worth close to 1 million dollars. I find it interesting that it is valued at 17 man years, though :-)

If you can't see the metrics below, your client doesn't allow javascript, go to the website and you'll be able to see them.

Microsoft Academy Insights


Since I am giving a talk, I also have access to all the presentations ahead of time, and I spent some time going through them. Some people has clearly spent a lot of time trying to turn Power Point into Maya 3D. Anyway, I am seeing some really cool stuff there, things that make me want to start coding.

I am giving a talk and participating in two panels, so I probably won't be able to see the talks (will have to wait for the videos), but it certainly makes sure that I would need some spare time after this is over to go over some of those talks.

The Zen Of Python


I opened the python shell and entered "import this", here is what came out:

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

I like it. ;-)

My Debugger is Broken


I started to get errors like this recently, and the whole debugging experiance has gone to the toilet ever since.

DebuggerBroken.png

Specifically, it looks like it is not able to do break on exception now. And I can't figure out what it the issue. It happens just when I am using TestDriven.Net, and not when I am attach to a different process. Right now it seems to have fixed itself, but it drove me mad.

Googling doesn't find anything useful :-(

On Hiring Bloggers and Open Source Developers


Phil Haack has a post On Hiring Bloggers and Open Source Developers. I guess that I have no choice but to +1.

And if you get the joke, I would like to hire you.

In a recent inteview I had a candidate that had serious issues with:

  • Writing an INSERT statement
  • Reversing a string
  • Searching google*

* That is a skill that you need to have. If you are searching for Reversing a String in C# and you manages to go to the only example I C in the page, that is a major minor point.

FUTURE POSTS

  1. Reducing parsing costs in RavenDB - 16 hours from now

There are posts all the way to Aug 04, 2015

RECENT SERIES

  1. Production postmortem (5):
    29 Jul 2015 - The evil licensing code
  2. Career planning (6):
    24 Jul 2015 - The immortal choices aren't
  3. API Design (7):
    20 Jul 2015 - We’ll let the users sort it out
  4. What is new in RavenDB 3.5 (3):
    15 Jul 2015 - Exploring data in the dark
  5. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats