Thursday, July 02, 2009 #

CodeStock 2009!!!!

I had the honor of speaking at CodeStock this year, and it was an awesome experience.

The highlights of the weekend include:

1) Getting picked up at the airport by Alan Stevens with his awesome sign.

photo

2) The pre-conference get-together where I met many of my tweeps FINALLY… and they were all as awesome in IRL!

3) Rocking “Thriller” in Alan’s van after we learned that Michael Jackson had died (RIP).

4) The impromptu pool party at the ghetto hotel where we dueled with the kiddies to see who could be the most obnoxious.

5) Singing ‘round the campfire at the after-party.

6) Leon’s (fallenrogue) Ruby Koans tutorial session.

7) Staying up with my room mate Rachel Reese and talking into the very wee hours of the morning. We were both sitting on opposite sides of the little table in the hotel room that served as a desk and communicating via Twitter. Every time I heard her laugh and then start furiously typing I knew she had just read one of my tweets to her. (we missed BOTH days’ keynotes, which I heard were awesome, but oh well.)

(8) Going straight from Alan’s party to the airport at 4am and getting lost, then Tobin Titus trying to kill me when he turned the wrong way down a divided highway. A quick detour over the grassy median got us out of harm’s way.

Yeah, this event was all about com

munity- forming new relationships, and strengthening existing ones. Drinking from the firehose and having fun. A big shout-out to the organizers and to Alan Stevens for his hospitality. I am already looking forward to next year!!

posted @ Thursday, July 02, 2009 3:09 PM | Feedback (0)

Thursday, May 21, 2009 #

Visual Studio 2010 Beta Screen Shots

Here are some screen shots from VS2010 Beta. The first thing I noticed is that Team Explorer is (finally) installed with the base install.

The new look has an Expression-Blendy feel to it…

Also, I noticed that it defaults to a single tool bar line at the top. Nice!

VS2010 Welcome Screen

VS2010_welcome_screen

 

Home Screen

 

VS2010_home_screen

 

Projects Tab

Projects_tab

 

Visual Studio Tab

Visual_studio_tab

 

New Project Dialog Box

new_project_dialog

 

Open XAML Document with common windows open

open_document_with_common_windows_opened

Technorati Tags: ,

posted @ Thursday, May 21, 2009 9:51 AM | Feedback (0)

Monday, May 18, 2009 #

Rehearsing..

A couple of blogs have gone up about about how to be a better speaker. One in particular stresses rehearsing your talk. I can really relate to this one…

In my last talk at Iowa Code Camp I was coding XAML live. I had given this talk previously at Twin Cities Code Camp, and it had gone well. The live coding worked out, even though it was XAML, with no intellisense, I was able to code along at the pace that I was speaking. However, this time, it was not so smooth. I struggled with the syntax, and had dead-air. One person who stayed only for the first 10 minutes of my talk told me it pretty much sucked. (The second part of the talk, which was in the code-behind, went much more smoothly.)

I was trying to figure out why I had done so well at the live XAML at Twin Cities Code camp, but struggled at Iowa Code Camp. Then it hit me- the only difference was at Twin Cities Code camp I had forgotten my cheat sheet, and there was no printer. So over the lunch break I wrote out all the code by hand on a sheet of paper.

I have always been one of those people who remember something much better by writing it down. And putting pen to paper in this case burned the syntax into my brain better than just typing it.

So, for all my live-coding demos going forward, I am going to write out the code long-hand as part of my preparation.

 

posted @ Monday, May 18, 2009 4:12 PM | Feedback (0)

Thursday, May 14, 2009 #

My Coding Hill

I am fortunate to live on a vast network of trails that start literally in my backyard… there is a trailhead two feet from the end of my driveway. These asphalt trails are plowed in the winter and wind through the backyards and parks, around the lakes, and along the streams of my suburban neighborhood. There are 20+ miles of trails available without ever stepping foot onto a roadway.

As I was finishing a run a little over a year ago, it occurred to me to wonder why I was running on the street instead of the trail.  I realized that I actually rarely run that piece of trail, and it is one of the most scenic and peaceful stretches of trail in the system. This was very curious to me… why would I be in the habit of avoiding this section of trail?

As I thought about that stretch of trail, I realized that one if its characteristics was it is not flat. There are several small hills, and you always seem to be going either up or down for about a mile. I additionally realized that since I have been running with my Garmin watch, I am always keeping track of my pace, even if at a subconscious level. Even for runs that are not pace-focuses, I am always keeping score in my head of the effort-level of whatever pace I happen to be running, with the ever present goal of decreasing the effort needed to maintain a certain pace.

Of course, hills slow me down. The effort needed to maintain a certain pace is vastly greater on a hilly run than on a flat run. What had been happening was that focusing on a particular metric, I have subtly altered the way in which I perform that activity. And that change extended to runs where that metric was absolutely meaningless. Subconsciously my mind was trying to optimize for something that didn’t matter, and I unwittingly made tradeoffs- in this case, in the form of a less scenic running route.

I wondered where this applied in other areas of my life. What things do I avoid unconsciously because of some optimization I am trying to make or avoidance of effort?

I have spent my career focusing on middle and backend tiers because I am NOT a designer. Anyone who has seen my demos can attest to this. But I realized that having a creative deficiency in terms of visual aesthetics does not mean that I cannot dive into the technologies behind the UI tier. And so I began to hit up JavaScript and AJAX, and began my journey in WPF and SilverLight- technologies I had always avoided. I finally realized that I don’t have to make pretty designs to write good code. When I stopped being focused on the “pretty” metric, I was free to explore and learn without holding myself back behind self-created limitations.

And yes, my designs still suck, and the UIs are definitely not pretty. But there is some darn cool code underneath!

Technorati Tags: ,

posted @ Thursday, May 14, 2009 7:11 AM | Feedback (3)

Monday, May 04, 2009 #

Iowa Code Camp in the Rearview Mirror

The third Iowa Code Camp was another first-class event. Those guys do a fantastic job every time.

It is a tradition at Iowa Code Camp to intersperse pictures of cows randomly throughout your slide deck. On my way to the event, I made a quick stop at Greg Wilson’s house. Greg has cows, and had used a marking spray from the vet to write on three of his cows:

P1000960

I was scheduled to do one session on WPF data binding as part of a three-part series with Bryan Sampica and  Greg Wilson. Just as I was settling into my first session of the morning as an attendee, Javier Lanzano came and grabbed me- “We need you  next door!” As it turned out, Bryan Sampica had a  work emergency and was not able to make it. Greg and I gave a completely impromptu session with Greg talking and  me coding. We had no slides or demo code. We made it all up on the spot. We really found a flow and totally rocked it! It was fun.

Right after that I was up for my session. It was a quick transition and I was discombobulated the first ten minutes or so. Before long I got rolling again and I think it was a good session.

Thanks guys for a great event!!!

P1000963

 

Technorati Tags: ,

posted @ Monday, May 04, 2009 4:14 PM | Feedback (0)

Tuesday, April 28, 2009 #

Iowa Code Camp

I will be speaking at Iowa Code Camp this weekend. Greg Wilson, Bryan Sampica, and I are doing a series on WPF data binding. It should be a great time, so come on out!!

P1000689

These guys always put on a first class event. And the after party (the most important part of the weekend) is always awesome.

(As for the cows, it’s an Iowa Code Camp thing. You kinda had to be there.)

 

Technorati Tags: ,

posted @ Tuesday, April 28, 2009 2:38 PM | Feedback (0)

Thursday, April 23, 2009 #

Twin Cities Code Camp 6

A couple of weeks ago I presented WPF databinding at TCCC6. It was the end of a very hectic couple of weeks. I do not often post personal stuff to this blog, but in this the story is just too crazy.

It all started during my family’s annual trip to Mexico. My nephew Drew has Spinal Muscular Atrophy, is wheelchair-bound, and the slightest illness poses a serious threat to him. I stayed with my family in Mexico for one week, then I returned home. My family was scheduled to stay for an additional week.

I left on a Saturday, and that morning Drew fell ill. On Sunday my family decided that he needed an American hospital so they got seats on a Sunday afternoon flight (at an enormous expense) for this medical emergency. When they arrived at the Cancun airport, however, the corrupt Mexican officials had sold their seats, pocketed the cash, and refused to let my family board. It is a long story, but the day ended with my mother telling the corrupt Mexican gate official “I am getting on this plane with my grandson. You just try to stop me”, then proceeding to board sans boarding pass- they were never even on the flight manifest.

Drew’s parents were still stuck in Mexico, so I picked my Mom and Drew up at the airport at 10pm on Sunday night, then helped my Mom take care of Drew. We managed to keep his O2 sats up with the treatments all night. On Monday morning I went straight from my nephew’s house to work to the airport for my flight to St. Louis where I was presenting at the Microsoft Best Practices tour the following day. Drew’s mom and dad flew in Monday afternoon.

By this time I had caught whatever Drew had, and was feeling pretty crappy. Our flight to St Louis was late and we didn’t get to the hotel until after 9 pm. I went straight to bed. I awoke at 4am and didn’t even have to get out of bed… I knew from the sticky glop gluing my eye shut that I had a raging case of pink-eye. And I was to present in less than 12 hours. Wonderful. I called the nurse line at my home clinic and they sent a prescription to a local St Louis Walgreens. The next morning Jeff Brand (I didn’t have a car) drove me to pick it up, we then went to the Best Practices event.

So, I was sick, had not slept in two nights, and now had the ugliest eye I had ever seen. Yup! I was ready to present! At 10am I got word that Drew’s O2 sats had fallen and he had been admitted to the hospital. I was really demoralized, because I knew it would be a long haul for him and his family, and indeed, it was a three-week stay. More on that later.

I got up to give my presentation, and my laptop would NOT communicate with Microsoft’s projection system. This had never happened before, furthermore, Jason Bock’s laptop, which is the exact same as mine, had no problems. After ten minutes of fussing with it, I decided to throw my presentation onto someone else’s laptop. My laptop decided to really help me out at this point by taking more than two minutes to copy the files over. Which doesn’t sound like a long time unless you are standing at the front of a room with a few hundred people waiting for you to start your presentation.

I finally got my content copied to Ray Lewallen’s MBP, but of course he did not have the right environment for all of my demos to work. Oh well, I was halfway through my time at this point. I flew through my presentation, then thoroughly traumatized, I packed up and we all headed back to the airport. I felt like crap, my eye hurt, my presentation sucked, my nephew was in the hospital, and I was ugly (pink-eye). Life somewhat sucked. But, as they say, tomorrow is another day!

I finished out the week trying to catch up on sleep, work, hospital visits, and family time.

The weekend passed with no progress for Drew, and on Sunday he was admitted to the pediatric intensive care unit and intubated. We were happy that he wasn’t struggling so hard to breathe anymore, but, at the risk of repeating myself, this REALLY sucked.

On Tuesday I gave my second presentation of the Microsoft Best Practices Tour. This one went off without a hitch (my laptop still didn’t work, but with the advance warning I was able to set up Jeff Brand’s laptop in plenty of time for all my demos to work.)

I spent the week of my second presentation splitting my time between work, my kids, and the ICU. The following Saturday was Twin Cities Code Camp.

I had never been as unprepared for a talk as I was at TCCC6. I had spent the previous month focusing on my Best Practices Tour Unit Testing talks, and had not anticipated spending the week and a half leading up to TCCC6 at the hospital.

I pulled off a pretty good presentation, the reviews were favorable. A BIG shout-out goes to Bryan Sampica for all of his help… I could not have done it without you!!

Right after I successfully pulled off my presentation, I received word that my little fighter had finally made a turn for the better. After days and weeks of no progress, or backwards progress, they were starting to pull secretions from Drew’s lungs. This was a huge milestone… I was on cloud nine. I didn’t win anything at the end-of-day raffle, but I felt like the biggest winner in the room. And, that ends my saga of TCCC6.

Drew came home on Easter Sunday. He is 100% percent recovered. He had been heavily sedated during his stay in the PICU, and when we told him, “Drew, you were sleeping for almost two weeks!” his response was: “I was hibernating!”

If you are still hanging in there on this LONG blog post, you can check out Drew’s story at www.drewbie.info

Next blog post I might even talk about the content of my presentations!

posted @ Thursday, April 23, 2009 10:10 PM | Feedback (1)

Debugging XMAL Parser Exceptions

In Visual Studio click on Debug –> Exceptions, and when the dialog box appears click “Add”. Fill it in as below:

ParserException 

Be sure to check when “Thrown”. Now your code will break on the C# code where the error is thrown and you can find it more easily.

 

parserex2

 

 

Technorati Tags: ,,

posted @ Thursday, April 23, 2009 4:53 PM | Feedback (1)

Monday, April 20, 2009 #

And All the Geeks Screamed Like Teenage Girls

On May 8 the ugMIX Event is coming to Minneapolis. This will be a special presentation of the highlights from MIX, followed by the main attraction… A private screening of the new Star Trek movie!!

I can’t wait! this is turning out to be geek heaven for any .NET developer. See you there!

 

Technorati Tags: ,,

posted @ Monday, April 20, 2009 10:44 AM | Feedback (1)

Thursday, April 16, 2009 #

Vote for Me!!!!

This year Codestock is selecting their sessions by attendee votes. As people register for Codestock, they are are asked to select the sessions that they would most like to see. While I think this is a way cool and awesome method for selection, it is driving me crazy wondering what the results will be!!

Here are the sessions that I have submitted. If you would like to see these at Codestock, register online and vote for me!!


Speaker Name    Kirstin Juhl
Session Name    WPF Databinding ++
Technology    WPF
Level    Intermediate
Length (Reg, Ext, Both)    Reg
Abstract   
Everyone knows that WPF takes databinding  to a new level. But just how cool does it get? In this presentation learn about observable collections, commanding, and complex nested collection binding. A sample application uses the same, easily understandable example (an address book application) to work through increasingly complicated scenarios and demonstrates how to use WPF in several data use case scenarios.



Speaker Name    Kirstin Juhl
Session Name    Wading into WPF and Databinding
Technology    WPF
Level    Beginner
Length (Reg, Ext, Both)    Reg
Abstract    You have heard about WPF and databinding in the XAML, but you are hesitant to dive in. In this presentation, stick your toe into the water and see WPF databinding in action. In this presentation we will build a simple WPF address book from scratch and you see how you can go from zero to databound in less than 60 minutes.



Speaker Name    Kirstin Juhl
Session Name    Writing Good Unit Tests
Technology    Application Development Best Practices
Level    Intermediate
Length (Reg, Ext, Both)    Reg
Abstract    Unit Testing is good. Writing good Unit Tests is hard. In this session we will explore how to write unit that accelerate your development rather than hinder it. We discuss how good unit tests can drive good practices into your application development from the bottom up.  Prepare to engage in a lively discussion on what makes good and bad unit tests. Please leave sharp objects at home!


Speaker Name    Kirstin Juhl
Session Name    Introduction to Unit Testing
Technology    Application Development Best Practices
Level    Beginner
Length (Reg, Ext, Both)    Reg
Abstract    This session will introduce attendees to the art and practice of Unit Testing. We will cover the basic fundamentals of what units are and why and how they should be used.  The presentation will cover common tools used in unit testing and contain a brief discussion of Unit Testing within the Test-Driven-Development context. We explore the tools and write some basic unit tests, and watch them run, fail, and pass.


Speaker Name    Kirstin Juhl
Session Name    Learning NHibernate with Castle  Active Record
Technology    NHibernate
Level    Intermediate
Length (Reg, Ext, Both)    Reg
Abstract    Castle is an open source implementation of the Active Record pattern. This framework sits on top of NHibernate and wraps much of NHibernate’s complexity, making it an ideal vehicle for introducing yourself to NHibernate. In this presentation, we will build a business/data layer from scratch, then take a deep dive into the code to see what is going on in the Active Record framework and how it uses Nhibernate.


Speaker Name    Kirstin Juhl
Session Name    Learning NHbernate with code generation
Technology    NHibernate
Level    Intermediate
Length (Reg, Ext, Both)    Reg
Abstract    NHibernate is an open source data access framework that has gained many accolades from the development community. Learn how to flatten the initial slope of the NHibernate learning curve by using a code generation tool. In this presentation we will implement a working instance of NHibernate for an application within minutes, then explore how it works. See how to use code generation for the luxury of running NHibernate in your application using your examples and give you a leg up on understanding the framework.


Speaker Name    Kirstin Juhl
Session Name    Continuous Integration in your project… tomorrow!
Technology    Application Development Best Practices
Level    Beginner
Length (Reg, Ext, Both)    Reg
Abstract    Everyone knows that Continuous Integration is a good idea, yet many projects fail to implement this practice because “we don’t have time”. The reality is that you don’t have time to NOT implement Continuous Integration. This presentation will show how to implement Continuous Integration practices into your project no matter what phase you are in. An incremental implementation is often required when management has not “bought in” to Continuous Integration. Learn how to accomplish this in this presentation.

posted @ Thursday, April 16, 2009 12:19 PM | Feedback (0)

Copyright © Kirstin Juhl

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski