Showing posts with label TDD. Show all posts
Showing posts with label TDD. Show all posts

Sunday, August 16, 2009

CFUnited Presentation Roudup

CFunited was busy for everyone involved so I have no excuse for falling behind in making blog entries as many others just as busy as I did kept up just fine. I'll only post 2 entries for CFUnited this one with all my presentations and then a second one recapping my CFUnited experience (spoiler: It kicked ass!). On with the recap!

Red Green Refactor
PDF Keynote

I was fortunate enough to be given the opportunity to present this topic 2 times at the conference. I feel like both presentations were solid and entertaining; including a reference to old Purple Pants (if you do not know, probably best not to ask :) ). Barney B was disappointed in my lack of gratuitous vulgarity, I'll attempt to not let him down next year. I got really good feedback, even testimonial that TDD does speed up development!

Fusebox Past Present Future (Busy Developers Guide to Fusebox)
PDF Keynote

This was a bit awkward given the current situation surrounding Fusebox and Myself. The first half I did my best to sell on the framework and break down some of the old myths. At about 5:55 I entered my 5th Myth: Fusebox is Dead and instead of really getting into that I made the attendees aware of the current state (at the time) and announced I was resigning. I think spent the second half of the presentation talking about FuseNG (or Fork-a-doodle-doo). Expect more entries soon surrounding FuseNG 1.0 (code named Cuddles).

Code Review and Team Dynamics
PDF Keynote

This started my 3 hour marathon of presenting. It was also a late add to the conference, I was subbing for Jake Munson who was unable to present do to person reasons. I love this presentation, I've given it a few times previous. I felt really good about my delivery and I think everyone got something out of the presentation. I think I might create a new presentation on the same vein but with more emphasis on Team Dynamics and mentoring for next years conferences. I appreciate all the positive feedback from everyone!

Busy Developers Guide to Java Part 1
PDF Keynote

This was one of those presentations with so much content it has to go perfect or you run out of time. I screwed up 2 times and ran over. I was also called Drill Sgt. and Reverend after this presentation. Apparently I was too brash haha! I felt everyone still learn a great deal about java and I got some great positive feedback as well, definitely help enable folks in this one. This was the second session I got to repeat. The second iteration I tried not to preach as much I also pulled some content that might have been too preachy. I ended right on time and had some great interaction, just like the first time. I think this session has great replay potential for future conferences.

Busy Developers Guide to Java Part 2
PDF Keynote

This was my final presentation of the 3 hour presentation marathon. I'll admit that about halfway through the Part1 session I felt ill. This continued into part 2. About half ways through one of the most embarrassing things happened, I had to excuse myself from the presentation for a moment. Luckily this was the last session of the day and everyone was very understanding and allowed me to run over the time and finish the content. I appreciate everyone's patients with me. Aside from the total misery I was in as far as how I felt I think this presentation was awesome. I got good participation from the attendees and very positive feedback from many folks. Anytime I stick around after a session to answer additional probing questions seeking to learn more is awesome.

Overall I had a blast presenting. I hope everyone attending my presentations was entertained and learned or was motivate. As long as I was able to positively affected at least one individual that is all the more I can ask for as a presenter the rest is gravy. Our community is growing and I am glad to be part of the growth. Here's to CFUnited and any other conference that facilitates collaboration and growing! Thanks Stellr for organizing, promoting and kicking ass.

Wednesday, April 01, 2009

MXUnit ExpectedException

I'm glad to see the next minor release of MXUnit :) I'm even happier to see ExpectedException make it into the release. I'd been doing a lot of development in Java and using the latest JUnit and the expected exception annotation was so nice. When I went back to writing test cases for Fusebox I found myself avoiding writing tests that would throw errors (like testing bad paths for Fusebox parsed files). Well long story short I found myself one night debugging something in Fusebox only to find Fusebox should have been throwing an error. Since I never tested for it I never caught that Fusebox was not throwing an error. That motivated me enough to spend the 30 or so minutes it took me to write a couple test cases and add the functionality to MXUnit.

So the old way to test for an error was something like this:

<cffunction name="ensure_error_on_load_extentions_with_bad_path">
<cftry>
<cfset extManager.loadExtensions(getDirectoryFromPath(getCurrentTemplatePath()) & '/notthere') />
<cfset Fail("Last line should have thrown an error") />
<cfcatch type="mxunit.exception.AssertionFailedError">
<cfrethrow>
</cfcatch>
<cfcatch type="fusebox.BadDirectory" />
<cfcatch type="any">
<cfset debug(cfcatch) />
<cfset fail("Bad Error")>
</cfcatch>
</cftry>
</cffunction>

Now all we have to do is this:

<cffunction name="ensure_error_on_load_extentions_with_bad_path" mxunit:expectedException="fusebox.BadDirectory">
<cfset extManager.loadExtensions(getDirectoryFromPath(getCurrentTemplatePath()) & '/notthere') />
</cffunction>

I love the feature, and I hope others enjoy it too.

Monday, January 12, 2009

CFUnited session # 2!!

I know at least one man will be very happy to know I will be presenting Red Green Refactor at CFUnited! I gave a presentation at bFusion about TDD and MXUnit with the same title that got a lot of great feedback. This presentation will follow a similar tone as that one, only less MXUnit and more rants about BDD. I've previously ignored talking specifically to BDD as I felt (and still feel to an extent) that BDD is really just TDD done right. After the recent cfSpec announcement I got to talking to Sean Corfield about BDD and he made a comment of getting BDD over TDD. This leads me to think I should talk more about BDD (it seems to make more sense to more folks). I'm still of the mindset that BDD is little more than TDD done right but, I think BDD is starting to become more relevant as the concepts mature and evolve. I will probably focus more on some BDD concepts than I previously had planned. This should give me a chance to learn more about BDD in the process, I can't wait to give this presentation!

Wednesday, September 03, 2008

bFusion Marterials

I've spent a lot of time working through the hands on work for my TDD presentation at bFusion. Though the result may not seem like it as there are no materials (files) that you will need for the presentation. You will still want everything installed and running (coldfusion, eclipse, mxUnit) but you will need no additional files from me. You see I wanted a nontrivial example to work through but the problem with this is even if I did not speak at all 1.5 hours is not enough time to do a non trivial example. Besides TDD is much less about writing a test (anyone can do that) and much more the thought process. So inside of throwing you to the wolves to work hands on I will present and answer questions for around 30-40 (depends on ???s) minutes and the remainder of the time we work together to solve as much of the non trivial problem as we can. This will everyone understand what types of things we should think about when writing tests and how to work TDD into a real project. The reason the presentation jumped in amount of time is during the presentation we'll be dropping into the IDE a quite a few times to work through things together. I hope everyone will work along with me as you will get much more out of the session if you work along with me, as well as provide feedback!

Thursday, August 14, 2008

Speaking at bFusion

Bob Flynn and is once again hosting bFlex and this year has added bFusion! bFusion is an awesome 1 day FREE(!!) event at Indiana University (Bloomington Indiana) followed by a 1 day FREE event for Flex. I won't get into the sales pitch just check out the site. I do want to pimp my 2 sessions though both of which are very near and dear to me. First is Open Source CFML Engines and second being Headfirst TDD.

In my Open Source CFML session we'll explore the open source business model and take a deep dive into how open source CFML engines will help shape the future of CFML development. There is a lot more to Open Source than just the free cost aspect we'll explore this for a brief while. We'll also discuss the differences between Platform and language. I think its just as important to recognize the value of ColdFusion as it is to see the value in CFML. At the end of the session you'll walk away armed with the knowledge you need to make a conscious well informed decision if open source CFML is the right option for you!

My second session, Head First TDD, is pretty much what the title describes it to be. We'll be diving head first into how to start developing with Tests in mind. The cool part is the Head First TDD will be hands on. I won't tell you how you should do TDD you will follow me and work with others and PRACTICE TDD. In the 1.5 hour session there might MIGHT be 20 minutes worth of presentation the remainder of the time will be used to explore TDD together with, hopefully, non-trivial examples. Since this is hands-on and interactive you'll need ColdFusion (or Railo should work), Eclipse, cfEclipse and mxUnit installed. If you'd rather you can just use pulse and get my profile, which I have talked about before. You'll still need to install a CFML engine and have mxUnit's CFML code downloaded and preferably running in ColdFusion. You'll also need an open mind and bring a little extrovert along b/c you will be working with others! You'll also need to download some CF files for the hands on but the examples I have are very boring and I am trying to come up with new ones, ones I have not finished yet. Most likely that will be done the week of the bFusion as I procrastinate and have a lot on my plate. I'll post them as son as I am happy with them.

Welp that's all I have to say for bFusion, I can't wait to see you all there!