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,970 | Comments: 44,493

filter by tags archive

The NIH dance


I started thinking about all the type of stuff that I had to write or participated at, and I find it… interesting.

  1. Database – Rhino.DivanDB (hobby project).
  2. Data Access – Multitude of those.
  3. OR/M – NHibernate, obviously, but a few others as well.
  4. Distributed caching systems – NMemcached – several of those.
  5. Distributed queuing systems – Rhino Queues actually have ~7 different implementations.
  6. Distributed hash table – Rhino DHT is in production.
  7. Persistent hash tables – Rhino PHT, of course, but I actually had to write a different implementation for the profiler as well.
  8. Mocking framework – Rhino Mocks, obviously.
  9. Web frameworks– I am referring to MonoRail, although I only dabbled there, to be truthful. Rhino Igloo was a lot of fun, too, if only because I had to.
  10. Text templating language – Brail
  11. Inversion of Control containers – Windsor, and a few custom ones.
  12. AOP – I actually built several implementation, the most fun was with the Code DOM approach :-)
  13. Dynamic Proxies & IL weaving – Castle Dynamic Proxy, not the recommended way to learn IL, I must say.
  14. CMS systems – several, but I really like Impleo and the concept behind it.
  15. ETL system – Took 3 times to get right.
  16. Security system – Rhino Security was fun to design, and quite interesting to implement.
  17. Licensing framework – because trying to buy one commercially just didn’t work.
  18. Service Bus – which I consider to be one of my best coding efforts.
  19. CI Server – so I can get good GitHub integration.
  20. Domain Specific Language framework – well, I did write the book on that :-)
  21. Source control server – SvnBridge

I haven’t written a testing framework, though.

I am probably forgetting a lot of stuff, actually…


Comments

FallenGameR

ETL system – Took 3 times to get righ

Is the right approach shown in your DSL book?

Joannes Vermorel

NIH is a widespread antispattern that should be avoided at all cost. One of the few known exception to this rule is known as the "ayende" exception, because "ayende" happens to improve stuff he reinvents. The "ayende" exception should kept confidential because way too many people tend to think they can be an "ayende" exception too :-)

Rafal

Wow, lots of stuff. Implementing was probably a pleasure but how do you feel about maintaining and bug-fixing all of it?

mqaa

And you still manage to find time for eating, sleeping, writing posts and have some sort of social live? That would be the real amazing thing about this list!

Joe
Joe

Castle, NH (with NHProf) and Rhino Mocks are mandatory in my projects now. I've just code spiked Rhino Security and I love what I've seen. Also, I can see myself checking out Rhino ETL in the future.

So a big thank you for making my development work look a whole lot better than it ever would have been.

Grimace of Despair

You know, you can get medical treatment for this...

Demis Bellot

NIH is a widespread antispattern

I disagree, there's usually a cost/benefit ratio whenever you need to choose to NIH or not. It normally costs you the time to develop and a reduced number of features but it saves you some time learning someone else's api .

Another benefit to rolling your own, is that you'll know your software intimately, how it works/performs so when there is a bug rather than trolling through forums looking or waiting for a fix you can do it yourself.

Mark

Better get started on that testing framework then, Ayende ;)

Josh

i don't know how you find the time. between paying clients, fluentmigrator, occasional blogging, 2 side projects, and my family, i just don't have time for much else. let alone all that you are involved in.

NIH
NIH

What is NIH means ?

Bunter

Good you haven't started on compiler and build system...

Ayende Rahien

Bunter,

I DID do a build system, I just remembered.

And while it isn't full blown compiler, I would say that my DSL work is pretty close

gfy
gfy

Good for you, good. for. you.

Bunter

At least I hope you haven't done the ultimate developer NIH - IDE :)

Dave

Rhino OS :)

Bunter

Does this IDE has ASharper as well?

Ayende Rahien

Bunter,

No :-)

Admittedly, I did implement Ctrl+Alt+V (Extract Business Term) in one IDE, but that is about it.

Kevin Stevens

Are you going to bootstrap TDD your testing framework, like the original LISP compiler?

NC
NC

Was curious what SVNBridge was so i googled it and saw it on codeplex.

I realise you don't support it, lost interest?

Could you list the stuff you've written that you support?

Me
Me

It's easy with no steady girlfriend, wife, or kids to please.

Gosh I remember those days. Eat code, eat code, eat code, sleep a litte, code, then code some more. Then got married. Eat, code, listen to bitching, do crap to shut her up, then back to coding. For some reason she thinks I like my computer more than her.

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

No future posts left, oh my!

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

RECENT COMMENTS

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats