Welcome

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.

Had to Put Down a Long Time Friend Today

Posted by Keith Elder | Posted in Family | Posted on 05-02-2012

After 7+ years of loyal service I had to put down a long time friend this morning. He was an amazing and loyal friend that I spent many hours with each and every day. He was such a trooper, always there for me when I needed him. No matter if it was early in the morning, or late at night or even during 10-12 hour work days. We shared many memories together over the years and I am incredibly sad to see him go.

The last several months he was in a lot of pain though. He didn’t once complain but I knew he was suffering and his time was nearing the end. He had lost usage in a couple of his legs and his arms were… well… let’s just say they’ve seen better days. He was no doubt suffering and I just couldn’t stand to see him suffer any longer. This morning filled with emotion I said my goodbyes and carried him outside to prepare him for his final resting place among the stars.

It is funny the things we remember when we have to part with something that just did its job day in and day out. My friend and I wrote many lines of code together over the years. We’ve answered hundreds of thousands of emails, read hundreds of thousands of web sites, watched thousands of Youtube videos and connected with friends online via Facebook and Twitter together.

We were together during the creation of many presentations I’ve given to the community. He was there when we bought our first house. He was there with me when I first read about the passing of a loved one, or the birth of a new family member. He was there to help me catalog the memories of my life digitally, whether it was creating a movie or uploading photos. He was there to help pay the bills throughout the years. He was there to make sure my time at work was comfortable.  He was there when we learned of tragic events like earthquakes, tornados, and even tsunamis. He was there everyday listening to the music I liked, and never once said change the channel I don’t like this one.

Dear friend, my office chair, it is sad to see you go. We made lots of memories together. Rest in peace.

-Keith

Fishin’ With Geeks 2012

Posted by Keith Elder | Posted in Fishing | Posted on 23-01-2012

Some call it “Catfishing with Keith”, others call it “Fishin’ with Geeks”, others call it “Fishin’ with Friends”, whatever you call it plans are underway for 2012. You’ll find all you need to know about this annual event among the links below.

http://keithelder.net/catfishing-with-keith/

Links of Interests

Any questions that aren’t clear or unanswered please contact me.

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:

http://keithelder.net/Presentations/RulesEngineWithIronRuby/RulesEngineWithIronRuby.zip 

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.

SNAGHTML29cde5e7

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.

SNAGHTML29d09da1

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.

SNAGHTML29d205e5

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

SNAGHTML29d4666b

This will open a form that has questions and answers.

SNAGHTML29d5267f

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).

DISCLAIMER

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.

Enjoy.

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
Directions:
5912 U S HIGHWAY 49 SUITE H1
HATTIESBURG, MS 39401-7584
Map:
http://bit.ly/eDXYij

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.

image

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.