Oren Eini

aka Ayende Rahien

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,575
|
Comments: 51,194

Copyright ©️ Ayende Rahien 2004 — 2025

Privacy Policy · Terms
filter by tags archive
stack view grid view
  • architecture (606) rss
  • bugs (450) rss
  • challanges (123) rss
  • community (377) rss
  • databases (481) rss
  • design (893) rss
  • development (640) rss
  • hibernating-practices (71) rss
  • miscellaneous (592) rss
  • performance (397) rss
  • programming (1085) rss
  • raven (1442) rss
  • ravendb.net (526) rss
  • reviews (184) rss
  • 2025
    • May (7)
    • April (10)
    • March (10)
    • February (7)
    • January (12)
  • 2024
    • December (3)
    • November (2)
    • October (1)
    • September (3)
    • August (5)
    • July (10)
    • June (4)
    • May (6)
    • April (2)
    • March (8)
    • February (2)
    • January (14)
  • 2023
    • December (4)
    • October (4)
    • September (6)
    • August (12)
    • July (5)
    • June (15)
    • May (3)
    • April (11)
    • March (5)
    • February (5)
    • January (8)
  • 2022
    • December (5)
    • November (7)
    • October (7)
    • September (9)
    • August (10)
    • July (15)
    • June (12)
    • May (9)
    • April (14)
    • March (15)
    • February (13)
    • January (16)
  • 2021
    • December (23)
    • November (20)
    • October (16)
    • September (6)
    • August (16)
    • July (11)
    • June (16)
    • May (4)
    • April (10)
    • March (11)
    • February (15)
    • January (14)
  • 2020
    • December (10)
    • November (13)
    • October (15)
    • September (6)
    • August (9)
    • July (9)
    • June (17)
    • May (15)
    • April (14)
    • March (21)
    • February (16)
    • January (13)
  • 2019
    • December (17)
    • November (14)
    • October (16)
    • September (10)
    • August (8)
    • July (16)
    • June (11)
    • May (13)
    • April (18)
    • March (12)
    • February (19)
    • January (23)
  • 2018
    • December (15)
    • November (14)
    • October (19)
    • September (18)
    • August (23)
    • July (20)
    • June (20)
    • May (23)
    • April (15)
    • March (23)
    • February (19)
    • January (23)
  • 2017
    • December (21)
    • November (24)
    • October (22)
    • September (21)
    • August (23)
    • July (21)
    • June (24)
    • May (21)
    • April (21)
    • March (23)
    • February (20)
    • January (23)
  • 2016
    • December (17)
    • November (18)
    • October (22)
    • September (18)
    • August (23)
    • July (22)
    • June (17)
    • May (24)
    • April (16)
    • March (16)
    • February (21)
    • January (21)
  • 2015
    • December (5)
    • November (10)
    • October (9)
    • September (17)
    • August (20)
    • July (17)
    • June (4)
    • May (12)
    • April (9)
    • March (8)
    • February (25)
    • January (17)
  • 2014
    • December (22)
    • November (19)
    • October (21)
    • September (37)
    • August (24)
    • July (23)
    • June (13)
    • May (19)
    • April (24)
    • March (23)
    • February (21)
    • January (24)
  • 2013
    • December (23)
    • November (29)
    • October (27)
    • September (26)
    • August (24)
    • July (24)
    • June (23)
    • May (25)
    • April (26)
    • March (24)
    • February (24)
    • January (21)
  • 2012
    • December (19)
    • November (22)
    • October (27)
    • September (24)
    • August (30)
    • July (23)
    • June (25)
    • May (23)
    • April (25)
    • March (25)
    • February (28)
    • January (24)
  • 2011
    • December (17)
    • November (14)
    • October (24)
    • September (28)
    • August (27)
    • July (30)
    • June (19)
    • May (16)
    • April (30)
    • March (23)
    • February (11)
    • January (26)
  • 2010
    • December (29)
    • November (28)
    • October (35)
    • September (33)
    • August (44)
    • July (17)
    • June (20)
    • May (53)
    • April (29)
    • March (35)
    • February (33)
    • January (36)
  • 2009
    • December (37)
    • November (35)
    • October (53)
    • September (60)
    • August (66)
    • July (29)
    • June (24)
    • May (52)
    • April (63)
    • March (35)
    • February (53)
    • January (50)
  • 2008
    • December (58)
    • November (65)
    • October (46)
    • September (48)
    • August (96)
    • July (87)
    • June (45)
    • May (51)
    • April (52)
    • March (70)
    • February (43)
    • January (49)
  • 2007
    • December (100)
    • November (52)
    • October (109)
    • September (68)
    • August (80)
    • July (56)
    • June (150)
    • May (115)
    • April (73)
    • March (124)
    • February (102)
    • January (68)
  • 2006
    • December (95)
    • November (53)
    • October (120)
    • September (57)
    • August (88)
    • July (54)
    • June (103)
    • May (89)
    • April (84)
    • March (143)
    • February (78)
    • January (64)
  • 2005
    • December (70)
    • November (97)
    • October (91)
    • September (61)
    • August (74)
    • July (92)
    • June (100)
    • May (53)
    • April (42)
    • March (41)
    • February (84)
    • January (31)
  • 2004
    • December (49)
    • November (26)
    • October (26)
    • September (6)
    • April (10)
RavenDB - High-Performance NoSQL Document Database
  previous post next post  
Aug 21 2009

Help requests that make me want to cry

time to read 1 min | 84 words

This showed up on my mail box, with the following text:

When i try to insert an item to db, VS gives a stackoverflow exception. is it because of that i am using generic classes??

image

I am not going to comment further, I am stepping away from the keyboard and going to have a lie down.

Tweet Share Share 44 comments
Tags:
  • WTF?!

  previous post next post  

Comments

Harry S.
21 Aug 2009
00:56 AM
Harry S.

Wow... just... wow..... I read that and got an instant headache.

Phillip Haydon
21 Aug 2009
01:41 AM
Phillip Haydon

Some people you really need to hold their hand all the way through life huh...

JW
21 Aug 2009
01:54 AM
JW

I believe the correct response is just to email back "No".

Jose Miguel Rivero
21 Aug 2009
02:01 AM
Jose Miguel Rivero

actually I'm more amazed that you spend time to help people, any advice to be more productive?

firefly
21 Aug 2009
02:05 AM
firefly

I don't know whether to laugh or to cry...

Howard Pinsley
21 Aug 2009
02:13 AM
Howard Pinsley

Well there you have a generic case of recursion!

Haacked
21 Aug 2009
02:57 AM
Haacked

"yeah, it's because you used generics. In fact, it's because you wrote code. Step away from the keyboard and never write code again or this bug will come back."

Emmanuel
21 Aug 2009
03:13 AM
Emmanuel

This belongs to the dailyWTF.com.

Bala
21 Aug 2009
03:30 AM
Bala

Yo dawg, i herd you like inserts...

Barry
21 Aug 2009
03:41 AM
Barry

ah, those generic classes can be tricky :)

csokun
21 Aug 2009
04:11 AM
csokun

Lesson learn : If you inherit from ActiveRecordBase <t don't try your own Insert

RobC
21 Aug 2009
04:24 AM
RobC

Time for a career change for the submitter ! They should not be in the field at all.

Set
21 Aug 2009
05:56 AM
Set

Half the people working in my company are as useful...

At least there are some generics :P

Half the wtf I'm seeing everyday would make half of the posters here shoot themself :P

JWB
21 Aug 2009
06:32 AM
JWB

The curly bracket is clearly the problem, since it is highlighted. Probably too much curly brackets.

serdar
21 Aug 2009
06:56 AM
serdar

Isn't that interesting? Someone is trying to use repository pattern, Activerecords, generics hey lol, where did you learned that stuff? You don't know how to code in the first place. I think he's a stackoverflow programmer, he may go to stackoverflow web site and ask for some solution maybe. There are good people there, they always help.

Martin
21 Aug 2009
06:57 AM
Martin

I just hope someone's pulling your leg Ayende (seems to be quite fun, and you get a response). Or at least that the person was drunk when deciding to send that e-mail.

Arnis L.
21 Aug 2009
07:06 AM
Arnis L.

Troubleshoot tip seems pretty obvious.

Dave
21 Aug 2009
07:07 AM
Dave

So let me understand, a coding newb is taking his first steps with NHibernate and Activerecord, does something stupid, and requests your help.

You, on the other hand do find the inner powers to answer him (or at least refer him to some 101 course), but somehow overcomes the exhaustion and find it inside you to humiliate him just to recieve another set of claps from your admirers.

Obnoxious.

Joe Gutierrez
21 Aug 2009
07:13 AM
Joe Gutierrez

If a bit bucket overflows does it make a mess?

Dave Mertens
21 Aug 2009
07:16 AM
Dave Mertens

I've seen those Recursive calls more that I like. But In this case the developer only forgot the 'base' identifier. But the question is rather silly.

But I thought I read some weeks ago that repositories were obsolete. Haven't you told them..

At least you get a email. I usually find out at the end of the day that a developer has an problem. Because he don't want to look stupid, he's not gonna ask for help..

Frank Quednau
21 Aug 2009
07:27 AM
Frank Quednau

Dave, fair enough,

even so, this has nothing to do with NHibernate or ActiveRecord or whatever. The error is so obvious, it took me minutes to see it. The guy stays anonymous. Every stupid humiliation show on TV is worse than this and reaches millions. Agreed, if the guy reads this blog he will not be happy, but looks like he caught Oren on the wrong foot. To send a mail like this is quite insulting to the intellect. If you retaliate immediately, this is what you get. I tend to take a break before reaction, but show me the person who never executed his immediate desire because of an abuse of his neuronal wiring.

Jamie
21 Aug 2009
07:56 AM
Jamie

The sooner people READ error messages (and the often helpful text that is in the Troubleshooting Tips section) the better.

Even a simple breakpoint would highlight what is happening!

Dave
21 Aug 2009
08:10 AM
Dave

@Frank

I can agree that sometimes someone just steps on your tows, but i dare saying this is not the case.

First, this is email. Staying cool is much easier on email.

Second, this was a future post hanging out there for several days, more than enough time for ayende to cool down and realize he is doing something immoral.

Third, even if you are keeping someone anonymous, posting content of a personal mail sent to you, is just, well, just not right.

Also, it seems to me, that chances are that this person is a newb, but still he is practicing NHibernate & ActiveRecord. That is something ayende should gladly encourage, as he now has certain responsibility towords the community. If someone at a learning stage - after such expirience - decides to take another path, who can blame him?

And once again, if you find an email insulting, don't answer it.

firefly
21 Aug 2009
08:40 AM
firefly

@Dave,

Whatever happen happen for the best. Maybe it would be best for him to take another path at this stage, or perhaps he'll learn how to be more self reliant next time. With the troubleshooting tips, the error become blazing obvious.

Though I agree with Martin somebody probably want to pull Oren leg :)))

Mats Helander
21 Aug 2009
08:58 AM
Mats Helander

Hands up anyone who hasn't written that very bug in the last month (variations count, such as public string Name get { return this.Name; } } ), I know I have - several times. The only reason I saw so quickly what was wrong is that I've written this very bug so many, many times myself.

But I guess that at one point, I wrote that bug for the first time. Probably took me a good while to figure it out that time, since it is really the kind of spelling bug that will have you waste hours reading through all your code in search of the logical error which is not there. The poster obviously asked about generics because he was unsure about that mechanism and suspected the logical bug he could not find might be hiding there.

Perhaps a beginner, but no reason to suspect the guy's an idiot.

/Mats

Peter Morris
21 Aug 2009
09:09 AM
Peter Morris

The problem is indeed a generic class.

A generic class of ......

firefly
21 Aug 2009
09:11 AM
firefly

@Mats,

We all make mistake. I probably make more than most :). Though if it truly a brain-dead moment then I don't see why he wouldn't be able to laugh it off. Not sure what kind of error will throw in your case but if an exception is throw then it shouldn't take long to track down at all.

Not suspecting that the guy is an idiot but there is no reason to think this post is some kind of cruel joke either.

Stephen
21 Aug 2009
11:00 AM
Stephen

Hmm, I'm guilty of asking your opinions on things via your blog- but I'm really confused as to why you are getting these direct 'I can't code, can you do it for me' requests, do you send your rates back and ask for a PO number?

Kelly
21 Aug 2009
13:27 PM
Kelly

Ayende, you've been trolled

PDizzle
21 Aug 2009
13:34 PM
PDizzle

I saw similar source code in rhino.commons

fred
21 Aug 2009
14:13 PM
fred

We have all started to program and got to similar situations... let's just remember that.

Kelly Stuard
21 Aug 2009
14:24 PM
Kelly Stuard

I agree with the other Kelly - some drunk guy got the error and said: "Hmm, should I send this to dailyWTF or Ayende? He flipped a coin and tails came up.

Jason Y
21 Aug 2009
18:25 PM
Jason Y

When it's revealed that the person asking for help is 7 years old, most of you will look rather stupid... unless it is a joke, in which case I would look stupid. I shall take such a risk.

The right thing to do is tell him what he should do:

-Whenever you get an exception, Google it first. (No need to give him a fish he can catch himself w/ some instruction.)

-Send appropriate questions to the appropriate places.

alwin
21 Aug 2009
19:23 PM
alwin

I know someone who barely googles anything at all nowadays. He just dumps his question on Stack Overflow. The things people there will do for some rep points...

He is a beginning programmer, and I tell him: "you need to try to fix it yourself first, to train your problem-solving skills and to look deeper than just the error." But he won't listen and IMO he is just too lazy.

I'm eagerly awaiting his question on SO nobody can answer, and he has to find the answer himself. That'll make him sweat :)

gunteman
22 Aug 2009
00:06 AM
gunteman

@Dave,

Couldn't agree more. This could have been a DailyWTF if it was code found lingering in some project you've just been handed, but in this case it was someone asking for help. Yes, the lack of problem solving skills is a problem, but I doubt that the cure is public humiliation.

Stephen
22 Aug 2009
00:25 AM
Stephen

@Jason, can't really remember what I was doing at 7, but I imagine it wasn't implementing generic repository patterns and reading developer blogs..

But maybe thats my flaw ;)

firefly
22 Aug 2009
02:48 AM
firefly

heh I bet any 7 years old who can do this stuff probably can do it better than most of us here... :) This is not even a case that require google... this is a case that require reading, though it might be hard for some :)

Mark Nijhof
22 Aug 2009
13:02 PM
Mark Nijhof

Let him place a debug break point inside the try statement and ask him to count the number of times it gets hit and let him report that back too you.

Jimmy Zimms
22 Aug 2009
19:41 PM
Jimmy Zimms

Perhaps a beginner, but no reason to suspect the guy's an idiot.

No he/she's just lazy. Yes it's an easy bug to write. But that is NOT what is getting ragged on here in reality. What the issue is that on the first sign of trouble the person didn't even think about say setting a break point, reading the type summary of what StackOverFlowException means, or performing any number of simple checks. Instead they go, "it's broken and buggy and doesn't work" and sends a support request. That is laziness personified.

Joe Chung
22 Aug 2009
23:48 PM
Joe Chung

In order to understand recursion, one must first understand recursion.

Rick
24 Aug 2009
06:05 AM
Rick

Maybe it was my son, he is just 11 but wants to learn how to program with c#..

I told him: "Son please stop NOW!, or you will loose all your social habilities and will end up insulting newbies like you in the future!!!"..

austin
31 Aug 2009
15:04 PM
austin

see i know if i constrate on the what i am studying i will be a better man

but i cannot because u can say like i am lazy type person and one more think when were i think to study or do some active work then again the lazy think accour and the main reson is that i all the time i think only about the sex and porn and befautiful ladies to see there boobs and pussy help me if u can i know this also dont work then can i just sending this to u for making me a relif for some time

Anthony Gatlin
01 Sep 2009
18:10 PM
Anthony Gatlin

That's absolutely hilarious! Thanks for brightening my day.

Nate Gupta
02 Sep 2009
17:07 PM
Nate Gupta

With that amazing piece of code, the dude also discovered a bug in Microsoft .Net framework - The exception was not handled by the Catch block ;~)

On a different note, I agree with some of the posts - humiliation is anything but constructive!

  • Nathan

Comment preview

Comments have been closed on this topic.

Markdown formatting

ESC to close

Markdown turns plain text formatting into fancy HTML formatting.

Phrase Emphasis

*italic*   **bold**
_italic_   __bold__

Links

Inline:

An [example](http://url.com/ "Title")

Reference-style labels (titles are optional):

An [example][id]. Then, anywhere
else in the doc, define the link:
  [id]: http://example.com/  "Title"

Images

Inline (titles are optional):

![alt text](/path/img.jpg "Title")

Reference-style:

![alt text][id]
[id]: /url/to/img.jpg "Title"

Headers

Setext-style:

Header 1
========
Header 2
--------

atx-style (closing #'s are optional):

# Header 1 #
## Header 2 ##
###### Header 6

Lists

Ordered, without paragraphs:

1.  Foo
2.  Bar

Unordered, with paragraphs:

*   A list item.
    With multiple paragraphs.
*   Bar

You can nest them:

*   Abacus
    * answer
*   Bubbles
    1.  bunk
    2.  bupkis
        * BELITTLER
    3. burper
*   Cunning

Blockquotes

> Email-style angle brackets
> are used for blockquotes.
> > And, they can be nested.
> #### Headers in blockquotes
> 
> * You can quote a list.
> * Etc.

Horizontal Rules

Three or more dashes or asterisks:

---
* * *
- - - - 

Manual Line Breaks

End a line with two or more spaces:

Roses are red,   
Violets are blue.

Fenced Code Blocks

Code blocks delimited by 3 or more backticks or tildas:

```
This is a preformatted
code block
```

Header IDs

Set the id of headings with {#<id>} at end of heading line:

## My Heading {#myheading}

Tables

Fruit    |Color
---------|----------
Apples   |Red
Pears	 |Green
Bananas  |Yellow

Definition Lists

Term 1
: Definition 1
Term 2
: Definition 2

Footnotes

Body text with a footnote [^1]
[^1]: Footnote text here

Abbreviations

MDD <- will have title
*[MDD]: MarkdownDeep

 

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. RavenDB News (2):
    02 May 2025 - May 2025
  2. Recording (15):
    30 Apr 2025 - Practical AI Integration with RavenDB
  3. Production Postmortem (52):
    07 Apr 2025 - The race condition in the interlock
  4. RavenDB (13):
    02 Apr 2025 - .NET Aspire integration
  5. RavenDB 7.1 (6):
    18 Mar 2025 - One IO Ring to rule them all
View all series

RECENT COMMENTS

  • Scooletz, Yes, we look at other stuff. Most of those are _not_ allowing you to build themselves incrementally nor are they...
    By Oren Eini on Scaling HNSW in RavenDB: Optimizing for inadequate hardware
  • Have you considered other approaches, DiskSpan, Spann etc.? HNSW, as far as I know, is terrible in regards to updates and det...
    By Scooletz on Scaling HNSW in RavenDB: Optimizing for inadequate hardware
  • Steve, The check is for _equality_ - if the current version matches the value in the versions array. When the `_version` ...
    By Oren Eini on Optimizing the cost of clearing a set
  • I'm not following that part, the first 65K times (until ushort.MaxValue) it will be smaller so you'll enter the if/return, bu...
    By Steve on Optimizing the cost of clearing a set
  • Steve, No, I don't need to. It is going to wrap around anyway, after all
    By Oren Eini on Optimizing the cost of clearing a set

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats
}