Ninject Forever

by Nate on February 25, 2010

I’m happy to announce that after quite a while in beta, Ninject 2 is finally official! It was actually one year ago today that I announced the beta version of Ninject 2. I had originally planned to release no later than March of last year, but in the meantime I had this crazy idea to launch a startup.

As you might imagine, I quickly found that running a business has a tendency to sap your free time.

Fortunately, after Ninject laid dormant for a bit and I was conspicuously absent on the user group, Ian Davis contacted me to offer his help. Ian was a user of Ninject since way back (when it was still called Titan), had committed patches, written extensions, and had more or less taken over answering questions on the group in my absence.

So, please join me in a officially welcoming Ian Davis as co-maintainer of Ninject! Without his help, we probably wouldn’t have made it to an official 2.0 release, at least for another year or two. :)

Note: Ninject 2 is a ground-up rewrite of Ninject 1, and as such, there are some breaking changes. We’re still working on getting the documentation migrated over (along with upgrade guides), but you can see a quick overview of the differences on the Ninject 2 wiki. I’d strongly recommend upgrading, because no future work will be done on the Ninject 1 line, other than critical bug fixes.

The official source repositories for both Ninject 1.5 (the final version of the Ninject 1 line) and Ninject 2.0 are on Github:

The subversion repository on Google Code has been discontinued for awhile, and will be removed soon. You can also grab binaries from the shiny, newly-redesigned website. (Now with even more ninja references!)

Thanks to everyone that uses Ninject, and thanks for your patience as we scrounged the time to get this release out the door! As always, if you have any questions or feedback, please feel free to post them in the user group.

Note: the title of the post comes from James Avery, who had taken to calling Ninject 2 “Ninject Forever,” in reference to Duke Nukem Forever. At least we finally released something! :)

{ 15 comments }

Justin Etheredge’s LINQ Challenge

by Nate on January 8, 2010

Justin Etheredge just wrapped up a series of videos on LINQ for TekPub, and when announcing it, he offered a challenge with the following rules:

  1. You have to blog about a single LINQ query which starts with Enumerable.Range(1,n) and produces a list of prime numbers from the range.
  2. You can’t cheat. This is determined by me, and includes hardcoding values in the results. You’ll know if you cheated.
  3. Uses no custom LINQ methods.
  4. Will return all of the prime numbers of the sequence. It doesn’t have to be super optimal, but it has to be correct.
  5. Be one of the first 5 people to blog a correct answer and then tweet this "I just solved the @tekpub LINQ challenge: <link to post>" will get any single TekPub screencast. The time of your solution will be based on your tweet! So be prompt!
  6. You must link to both TekPub’s website and this post in your blog post.

I can’t resist a good brainteaser, so here’s my answer. I’m sure it’s not the most efficient way of solving the problem, but it works:

var max = ...;
var primes =
  Enumerable.Range(1, max)
    .Where(x =>
      x != 1 &&
      !Enumerable.Range(2, (int)Math.Sqrt(x)).Any(y => x != y && x % y == 0));

But, I’ve already got a subscription to TekPub, so I don’t need the prize! Instead, I’m going to give it away to the first person who comments on this post. If you haven’t seen TekPub yet, you should check it out! It’s a great resource for programmers of all levels of skill.

{ 8 comments }

Guarantees, SLAs, and Hollow Promises

December 7, 2009

Since we launched Zen, we’ve received an interesting question a few times from prospective customers: if a company commits to using Zen in their organization, what happens if we go out of business? As a startup, what sort of guarantee can we offer to our users that we’ll be around years from now?
It’s a reasonable [...]

Read more →

A Few Lessons Learned

August 17, 2009

Running a business is nothing if not a learning experience. Every day presents a situation that you haven’t encountered before, and you have to be ready to shift your perspective and learn quickly in order to adapt. Here are a few tidbits of information that I’ve learned (sometimes the hard way) so far as we’ve [...]

Read more →

Open Source is not a Zero-Sum Game

August 10, 2009

I had originally left off the name of the person I was talking about because this post isn’t intended to make him sound like a bad guy. However, he felt I wasn’t being conversational, so the person that triggered this post is Sebastien Lambla, author of OpenRasta. Read his response here.

I caught some flak on [...]

Read more →

Siesta: Painless REST via ASP.NET MVC

August 10, 2009

Zen uses quite a few open source libraries, and I feel a sense of responsibility to contribute back where I can. To that end, I’m releasing the basic infrastructure that powers the Zen API under the name Siesta.
Siesta is a simple and flexible REST system driven by ASP.NET MVC. While you can take the Siesta [...]

Read more →