Last week I wrote about the iRules challenge issued to the FSEs again, and showed my intended solution.  Go take a look at that post for a point of reference if you like, or just dive in.

Today I want to give props where props are due, and show off the winner and two runners up of the FSE iRules Challenge.  Big congrats to Harry Kleinbourg, Sudarshan Sivaperumal, and the winner, Karl Vogel.  Excellent work, guys!  There were many solid entries so the judging was surprisingly close, but these three engineers came the closest to the complete solution while keeping an eye towards efficiency and readability. Really an impressive feat for being so new to the technology.

Okay, enough congratulating, on to the code!  First we’ll give you the winning iRule, from Karl Vogel. 


Karl’s iRule made proper use of the class command, the getfield command and figured out the trick logging hurdle nicely, rather than getting caught in the intentionally laid trap of trying to log to the mgmt interface directly from the iRule, which is a no go. Another major blunder he avoided was setting the cookie in the request. This was a big one and I knew it would trip up a lot of people (and it did) but Karl handily avoided that pitfall and properly inserted the cookie in the response, as intended. He also showed some stylish HTTP::response formatting that caught my eye, and came very, very close to accomplishing the entire task in his iRule.  Karl also made sure that the code was easy to read and maintain, and efficient. Extra points there for sure.  There were a few places that could use improvement, and I’ve offered that feedback as well, but all in all, job very well done! A much deserved win after the time and effort invested, and the product produced.


First Runner Up

In second place we have Sudarshan Sivaperumal, whose iRule was so close to being perfect it was excruciating. Sudarshan was following almost the exact same thought process that I was and at first while reading through his iRule I thought he may have the exact solution I was looking for. He was using classes, logging correctly, responding to the client appropriately and his code was wonderfully compact and neat. The only thing that threw a wrench in the works here was the aforementioned cookie being set in the request and a little formatting around class requests. That being said, this was an extremely solid attempt and the base knowledge of how to solve the problems laid out is definitely there. With a little fine tuning and some more experience working with the products, Sudarshan is going to be an iRuling force to be reckoned with. Well played, sir, and keep at it.


Second Runner Up

Last but definitely not least, in third place we have Harry Kleinbourg, who put forth a very fine effort in this challenge. Harry showed some out of the box thinking by using the event disable command, had the cookie being inserted in the response, the logging problem was solved…it was a very promising looking rule.  The big rub for Harry was that he confused the intent of the challenge and as such ended up re-writing the wrong part of the URL. Confusion will happen and I can’t hold that against him too harshly given how well written the code is in general. He’s got a bright future in the FSE world if he keeps up this kind of effort in researching and executing solutions to the problems that face those that he’s helping. Very strong effort indeed.


Huge congratulations to our winner and finalists. You really deserve a massive amount of props for churning out such solid solutions with so little exposure to the technology. I’m duly impressed, as were others that I’ve shared the challenge and results with. Keep pushing the ball, digging through DevCentral and learning the ins and outs of this outstanding tech.

Now that it is all said and done, this iRules challenge has been amazingly fun, educational and rewarding, at least for me. I hope those involved all got something out of it as well, and I’m looking forward to doing it again as long as I didn’t mess it up too badly this time. A big thank you to everyone that participated and again to Clint for getting me involved.