You have reached the blog of Keith Elder. Thank you for visiting! Feel free to click the twitter icon to the right and follow me on twitter.

NYC Code Camp Saturday / MIGANG Wednesday

Posted by Keith Elder | Posted in .Net, Asp.Net, C#, Presentations, SignalR, Speaking | Posted on 13-09-2013


NYC Code Camp Saturday 9/13/2013 – Simplicity Is Genius

Saturday I will be attending my first New York City Code Camp (@codecampnyc ). I’m traveling thousands of miles to help you make you a better you. I’ll be doing the talk “Simplicity Is Genius”. Looking at the list of sessions this is the ONLY real Soft Skills session on the menu so I really encourage the New York faithful to attend. If you don’t come you are doing yourself a disservice. Putting technical content in the brain is great but you need to work on YOU some as well.

In this session we’ll take a break from code and focus on the other skills developers need called Soft Skills. We’re going to go deep on what "Simplicity is Genius" really means from the eyes of Forrest Gump and look at many of the life lessons Forrest was trying to teach us in the movie. After attending this session you will learn the value of providing value, how to better communicate with team members, the importance of being nice, and how to leverage techniques used successfully by salesmen backed by scientific research so you can ultimately… tell IT like Forrest Gump.

MIGANG Wednesday 9/18/2013 – Web Applications Re-Imagined for Today’s Demanding End Users

After CodeCampNYC I’ll be heading to Detroit to work onsite for the week. The timing works out so I can make the MIGANG on Wednesday night. I’m really looking forward to it and stressing at the same time as I’m giving a brand new talk entitled “Web Applications Re-Imagined for Today’s Demanding End Users”. If I can pull everything off I want this should be fun, enlightening, dangerous, scary, exhilarating all at the same time.

In this talk we are going to take an extreme departure from a typical three-tiered web application and look at how we can leverage asynchronous messaging, queues, and events in exciting ways.  We’ll be architecting a web application utilizing SignalR, TopShelf, Asp.Net, RabbitMQ, and ServiceStack to create a scalable, highly available, buzzword filled, real-time web application.  We’re going to look at how we’ll handle long running business processes that cross service boundaries using command queues and events to push notifications back to our end users. We’ll learn that we’ve actually made our application stronger, faster, and simpler to write (even transactional when we need it). In the end we’re going to try to break our application to find out if it is truly Engineered to Amaze.

If you are in the area I hope to see you at either event, don’t forget to say hi!

Building an English-Based Rules Engine in .NET with IronRuby Slides and Demo

Posted by Keith Elder | Posted in .Net, C#, CodeMash, IronRuby, Presentations, Speaking | Posted on 19-01-2012


As promised at CodeMash to those that attended my session I finally am getting around to getting the slides and demo from my talk posted to my web server. You can download everything at this URL location:


What you will need to run the demo:

  • Visual Studio 2010

To run the demo you should be able unzip it, open it up in Visual Studio and hit F5.

Once the demo opens you’ll be presented with this.


In the middle of the screen you’ll see sample rules for the survey already loaded.

To convert these rules to Ruby script click on the “SurveyRuleSet” option listed under “Rule Sets”. This will load all of the available rules for that rule set.


Once you have the rules loaded for the SurveyRuleSet you can then click “Convert To Ruby Script” button and the English text in the middle of the page will be converted into Ruby Script.


Once you have the Ruby script generated click the “Use Script in Survey”.


This will open a form that has questions and answers.


Once the form is open just press “Submit” and the rules will fire. You can close the form, change the rules, re-gen the script and then re-run the form to see new rule values run.

When the “Submit” button on the Survey form is called, this is when the IronRuby engine gets invoked.

You can also load the SouthernRuleSet and then load the pre-typed Southern rules to see a “Southern DSL” of the same rules.

In Visual Studio you can open the SurveyRuleSet.cs file and uncomment the other attributes to enable Spanish instead of English (just as an example).


What you should try to take away from this the most are what it is doing and what is possible. We are running something very similar to this in production so this isn’t smoke and mirrors. There are a lot of things that are missing in the demo, but they are completely doable with some additional work. For example grouping isn’t done in this example, other rules like greater than, lesser than etc could all be added to the base ruleset class. Use your imagination and go wild.


Speaking at Hub City NUG Thursday Jan 19th 2012

Posted by Keith Elder | Posted in .Net, Presentations, Speaking | Posted on 17-01-2012


Not everyone can make it to CodeMash so I’m doing what I can to bring CodeMash back to you. This coming Thursday January 19th, 2012, I will be giving the talk I gave at CodeMash at the Hub City .Net User Group located in Hattiesburg, MS. The talk will start at 7:00 PM with food being served starting at 6:30 PM.

Presentation: Building an English-based Rules Engine Using .NET and IronRuby

Abstract: In this session we will explore writing an English-based rules engine that allows developers to create domain-specific rules for an application that can be easily understood by anyone. We will use a combination of C# and the DLR (dynamic language runtime) with IronRuby on the .NET platform to create a way to write, manage, and process rules for an application.

Time: 7:00 PM (6:30 PM food starts)
Location: Deloitte Hattiesburg
HATTIESBURG, MS 39401-7584

Deloitte’s entrance is an outside facing door to the right of Cloverleaf Mall’s food court.

English Based Rules Using .NET and IronRuby– Details on my Codemash Talk this coming Friday

Posted by Keith Elder | Posted in .Net, Presentations, Speaking | Posted on 09-01-2012

Tags: , ,


Geeks from all across the United States and across the pond with varying backgrounds will gather in Sandusky, OH during the heart of Winter once again, that’s right, it is CodeMash week. This year over 1,300+ attendees will be gathering for a new and improved experience that sold out in just a few hours. The Kalahari Resort has made some major upgrades (their ribbon cutting is even today!) to expand their conference center so CodeMash will be bigger than ever! And to top it off, they’ve asked me to be the MC again this year which is an honor within itself.

On Friday at 9:30 AM I’ll be speaking about how to represent business rules in plain English. I wanted to provide a few more details because honestly a one paragraph abstract doesn’t really explain what we’ll be covering and how excited I am about this talk. The cool factor and impact this could have on a business is pretty staggering. Here’s the abstract:

In this session we will explore writing an English-based rules engine that allows developers to create domain-specific rules for an application that can be easily understood by anyone. We will use a combination of C# and the DLR (dynamic language runtime) with IronRuby on the .NET platform to create a way to write, manage, and process rules for an application.

Ok, so what does that *really* mean? Well, it means a few things. For starters most all applications have rules of some sort. Some line of business applications have 1,000’s of rules. Imagine for a moment all of the rules needed to say… close a home loan, or process an insurance claim. In order to manage all of these rules businesses use what is called a “Rules Engine”. These rules engines are typically very expensive applications. They require lots of setup, training and offer many many features. With the majority of these one has to define a dictionary, vocabulary, and then write rules based on that. Managing these rules becomes very complex down the road.

What I am focusing on in this talk is taking something like plain old English (POE) that can be easily ready and understood and turn that into executable code. Here’s an example.

Let’s say we have this simple survey or set of questions or form data we are collecting.


Pretty simple form. But let’s say these are the rules your marketing department wanted you to implement (which you very well know are going to change at some point on a whim).

If answer to question 1 is Very Satisfied
And client is a repeat client
Then send them a discount coupon in the mail
If answer to question 1 is Very Unsatisfied
Then send survey via email to clientrelations@boyhowdy.com
If answer to question 3 is Yes
Then subscribe them to newsletter
If answer to question 4 is Yes
Then schedule a follow up call in 6 months

So you either A) hard code them or B) you use a rules engine. What we are going to do on Friday at CodeMash is take those plain English rules above and execute them using a combination of IronRuby and C# on the .NET platform dynamically.

Do I have your attention now? I hope so. See you on Friday.

Southeastern Louisiana Speaking Tour Next Week!

Posted by Keith Elder | Posted in Community, Presentations, Speaking | Posted on 06-04-2011


I will be speaking at two .NET User Groups in Louisiana next week.

Greater New Orleans April 12th

The first place I’ll be speaking is on April 12th at the Greater New Orleans .NET User Group which meets in Metairie, LA. Here I will be doing a talk on Silverlight, RIA Services and Entity Framework.


Building the Nullius Filius of Twitter and Facebook in Silverlight, RIA Services and Entity Framework


Let’s imagine for a minute Twitter and Facebook had a passionate love affair and produced a child (nillius filius) named Johnny. Although Johnny was born from web-based parents there was a genetic defect that caused Johnny to be born a Rich Internet Application (RIA). In this talk we are going to look at the lessons, trials, tribulations and successes Johnny had growing up being a Rich Internet Application. We’ll take a look at the journey of building a REAL Silverlight application  (Johnny) for the enterprise (not some simple demo) and talk about the pain, the joy and lessons learned. Hopefully we’ll answer the question: “Is Johnny happy with himself or does he wishes he was born from different parents so he wasn’t a RIA.”

Hammond .NET User Group April 13th

On Wednesday I’ll be speaking at the Southeastern Louisiana University campus for the Hammond .NET User Group. Since this group is mostly students I thought the best thing to do was an intro class to get everyone up to speed about .NET. After that I’ll do a Q&A and we’ll see where that leads us.


Back to the Basics: What is .Net?


No other name in history has confused more people on the planet than when Microsoft named their development platform .NET. For a lot of developers .NET remains a mystery and it is often confused with many things. This session goes back to the basics and is a primer for anyone that is starting at ground zero with .Net. In this session we’ll look at what .Net really is, the benefits of the platform, bust a few myths and show some sound reasons why you should consider it as a platform and look at lots of demos. At the end of the session, hopefully we’ll answer one of life’s most puzzling questions: What is .NET?