Just Finished Reading (Lean Edition)

Lean Software Development : An Agile Toolkit, Mary Poppendieck and Tom Poppendieck. An excellent resource on how the lean principles from product manufacturing can be applied unto software development. A good overview of content can be found in their 2002 paper here (pdf) and the Wikipedia article on Lean. Overview Each chapter in the book describes several “thinking tools” for the 7 Lean Principles. Eliminate waste describes how to identity and remove waste in order to maximize the flow of the value stream. [Read More]

Dependency injection - the what and the how

Background: We’ve started a weekly patterns & practices meeting at work with some of our senior developers where our discussions and actions will hopefully bring some improvement to the current development environment. Once a week one of us has an opportunity to showcase a new topic – much akin to knowledge transfer session but more fine-grained and at a higher level than the technology. Gareth Stephenson suggested we blog about the content for the benefit of others, which I think is not a bad idea at all. [Read More]

Just finished reading...

The Passionate Programmer: Creating a Remarkable Career in Software Development (Chad Fowler) and The Pragmatic Programmer (Andrew Hunt and David Thomas). I wish I had read The Pragmatic Programmer earlier in my career as it provides an excellent overview of many good practices in software development. Reading this a couple of years ago would have avoided/shortened many a learning experience. The Passionate Programmer is a truly inspiring book, and comes highly recommended if you [Read More]

NGenerics - new team member

A hearty welcome to David Schmitt who joined the NGenerics Team. David’s bio : David is a Debian Admin and .Net Developer living and working in Vienna, Austria. He’s partner in a small tech company startup at http://dasz.at/. His current interests with NGenerics is the implementation of the Immutable namespace. As stated in his bio, David will be working on implementing a selection of immutable data structures.

Photo by rawpixel.com on Unsplash

NGenerics 1.4.1 Beta released

You can find it on our new project site. This build includes the following (straight from the release notes) : New Platforms NGenerics now has a Silverlight version in this release targeting Silverlight 3. New data structures Single-Valued (i.e) not KeyValuePair version of the RedBlackTree. A generic version of the priority queue that can have a key implementing IComparable, or any object with an IComparer instance. New Patterns Added the Converter pattern under NGenerics. [Read More]

NGenerics has moved

The home of NGenerics has moved to Google Code from it’s original project site on CodePlex. We’re still in the process of migrating some of the content like the downloads, but for the most part we’re up and running. If you have any issues or feature suggestions, please submit them to the Google Code project site.

Edit:

NGenerics is now hosted on GitHub here.

Photo by Joey Kyber on Unsplash

NGenerics project move update

Content migration for NGenerics went well - but please note the following changes: All downloads for releases moved to the new project site. Due to Google not being willing to add the MS-PL license to Google Code, we’ve had to re-license NGenerics under the LGPL. LGPL is practically the same license but more wordy. A User Voice site is available for feature requests - please log (and vote for) any features you would like to see in NGenerics. [Read More]

NGenerics overview - the Priority Queue

Previous instalments General Data Structures HashList ObjectMatrix Trees GeneralTree and the Visitor Pattern Binary Trees and Binary Search Trees The Priority Queue data structure has the same basic behaviour and operations as the classic queue found in .NET. A queue applies a first-in, first-out (FIFO) approach to a list of objects. This data structure is typically used in message processing to process messages in order of arrival. Queue implementations tend to have the following operations available : [Read More]

Emitting a Type that inherits from a base type referencing the built Type

Incredibly simple, yet it took me a while to craft the correct search terms to come up with this solution. I can’t even find that forum post now, so hopefully this entry will save someone else some time. In a lot of solutions there exists a base class that would take the inheritor as a type reference to be able to do some work on it - you’ll typically see this pattern in fluent interfaces and classes that use reflection. [Read More]
dotnet