Darrell Hawley: Home Page

Thursday, June 19, 2008

Speaking at GLUG.Net Tonight

I'll be giving my now re-tooled introduction to IronPython this evening at the Greater Lansing User Group .Net meeting. Entitled "Getting Started with IronPython", I'll be focusing on the syntax, rules and "gotchas" of IronPython by making comparisons to C# as well as writing lots of code. My end point - if there's enough time -  is to get started on a very simple windows application. Hope to see you there.

Thursday, June 12, 2008

AADND and Lessons Learned on Speaking

I gave my Looking Out For IronPython talk at AADND last night which went really well. People were asking questions and genuinely seemed engaged. But as far as knowledge gained is concerned, I think I was the big winner last night. After the meeting had cleared out, Bill Wagner gave me the most in-depth speaking critique I have ever gotten. Typically, the only feedback a speaker gets is a stack of evaluation forms with a bunch of numbers circled and an occasional useful comment. Bill's comments focused not only content, but also pace and physical movement. His comments in summary...

  • Only move to different locations in the room if there is a purpose in doing so. I have a tendency to pace which only distracts the audience from your point. Check out this post by Josh Holmes to hammer home the point. If you have the time, browse his blog in it's entirety. He has a lot to say about public speaking.
  • Posture is important. It magnifies your presence and conveys confidence. Putting your hands in your pockets kills your posture and thus your presence. Even worse, you loose credibility with your audience. Stand tall, keep your hands out of your pockets and use hand gestures only if necessary.
  • It's OK to say, "I don't know," but it's not OK to advertise it (yes, there is irony in this post). When you speak, you become the self-professed expert in the room. In this context, I viewed any question from the audience that I couldn't answer as a failure. Now that I've learned differently, I seemed to have gone too far. I LIKE to talk about the issues I'm trying to solve. Great for personal growth, not so much for presentations. I need to focus on what I know.
  • Looking out for IronPython was intended to be an introductory talk. People are showing-up to learn the basics of IronPython, not to be wowed by what IronPython can do. I spent too too much time on complex examples that had little value to the audience.
  • My talk was structured so that the first half was entirely PowerPoint and the second half was entirely code. This sort of thing can be taxing on an audience's attention span. Do a few slides, show a demo, do some more slides, then do another demo. This breaks things up into smaller, more digestable chunks.
  • Showing an audience something they already know and then morphing it into something new is an effective teaching technique. I did it in Looking out for IronPython and I should consider it for future talks.
  • Humor is risky which is why I have made the conscious decision to stay away from a lot of jokes in my presentations. I did insert one slide that last nights audience found entertaining (earlier audiences did not), but it was directly relevant to my point. My lesson here? Don't plan a joke. If the opportunity comes, jump on it. Otherwise, just be yourself.

Bill's comments were a nudge in the right direction. If I'm really serious about improving though, I need to find the nearest Toastmasters group. All I have to do is find the time!

I know I promised a post of IronPython resources. I'm still compiling my list and hope to have those posted by this weekend.

Tuesday, June 10, 2008

Speaking at AADND

I'll be speaking at the Ann Arbor .NET Developers meeting tomorrow evening starting at 6:30. If you're interested, get there by 6:00 to present a topic of your choosing at the AADND lightning talks. These short presentations (up to 10 minutes) are a great way to ease your way into speaking in front of groups. Even if you have no desire to speak at user groups or conferences, giving an effective presentation to management or your fellow developers has a lot of advantages. Our meeting is held at SRT Solutions, 206 S Fifth Ave Suite 200 in Ann Arbor (click here for a map). Hope to see you there!

NUnit and IronPython

A while back, I came across this post from the Bitter Coder telling you how to use IronPython with NUnit. It's an interesting approach in that you actually put your *.py files inside of a C# project. Though you won't be able to easily test external IronPython code without using the Hosting APIs, it actually is a great way to introduce Python (and unit testing) into your environment. Of course you'll need to be willing to rip your tests apart as our method of communicating with the DLR languages evolves.

When you download the source code from the Bitter Coder, you'll need to make a couple of tweaks.

  • Rename IronPythonTest.Framework.PythonSuiteAttribute to PythonFixtureAttribute. Make sure you use a refactoring tool (either the one that comes with Visual Studio or a third party tool) so that you can be certain that all instances of PythonSuiteAttribute are changed.
  • I needed to update my nunit.framework reference in the IronPythonTest.Addin project. It may behoove you to update all of your NUnit references to the version you are using.
  • The nunit.framework reference I just mentioned was also set to copy local. This doesn't really hurt, but none of the NUnit libraries are set to do this. It's just aesthetics.
  • There are a couple of references throughout the solution - nunit.addin for one - that can't be found. They seem to be artifacts from an earlier iteration and can be removed.

That should do it. Tip o' the hat to the Bitter Coder.

Wednesday, June 04, 2008

So Why Did I Wait So Long to Switch to Gmail?

I've been asking myself that question ever since my switch to Gmail, but really that is only one of many changes I've made. Sure, my life with email has been simplified for a number of reasons (backups are simpler, labeling makes email more searchable and my laptop is not nearly as busy) and I'm really excited about it, but my switch also encouraged me to investigate more of Google's offerings.

One item that has really bothered me for quite a while are RSS readers. I've used various readers over the years and I've never been able to adequately fold them into my daily habits. Every reader I've ever used has always required me to explicitly do something to view updated blogs as opposed to simply delivering the news. I want my RSS reader to act like a paperboy, not a newsstand. To my delight - and annoyance - Google Reader works exactly like a paperboy (reliability issues notwithstanding). If I open up Google Reader, all my news appears as a simple list of articles. No searching through feeds for new posts. It's that simple. What's the annoying part? Paperboys don't typically keep the five most recent papers on your doorstep. They keep delivering. It's up to you to get rid of old papers. In my world, an RSS aggregator should afford me the option of telling the paperboy to discard old news. With current tools, I have to separate my feeds from my news to avoid having 2,714 unread items when I get back from vacation.

Yes, I know many aggregators automatically update and some of them can even give me a view that I can acuatlly digest, but can you get them to show-up next to your unread email and upcoming appointments without scrolling or switching tabs? Using iGoogle, you can do exactly that with Google Gadgets. Below is a snapshot of my iGoogle page with my Google Calendar, unread Gmail, Google Reader feeds, several news feeds and a few miscellaneous tools.
iGoogle

Wow! The ability to absorb that amount of information in just a few seconds is simply astounding. Did I mention I can sync my phone directly to Google? All this because I decided to give Gmail a serious look. I can't help but wonder why it took me so long for me so long to switch to Gmail.