# Monday, November 10, 2008

The slides for my MEF presentation are now available on Slideshare.  I have embedded it below.

I delivered this presentation at the ann arbor Day of .Net in October and at a Sogeti grok talk in November.

I just signed up for Slideshare and I like the concept but it doesn't seem to support any of the animations or transitions in my slides.  I may need to go to a video sharing service for more dynamic slideshows.

Managed Extensibility Framework
View SlideShare presentation or Upload your own. (tags: mef .net)

Monday, November 10, 2008 12:23:06 PM (GMT Standard Time, UTC+00:00)
# Thursday, October 23, 2008

Saturday I had the pleasure of speaking at the ann arbor Day of .Net

The event drew presenters and attendees from Michigan, Ohio and Indiana, demonstrating what an impressive software development community we have here in the Midwest.

My friend Nino drove up Friday night to stay at my place and we met other out-of-towners for dinner Friday night.

I delivered a presentation on Microsoft's Managed Extensibility Framework ("MEF").  The presentation was well-received.  The audience had many questions about the technology afterwards and I noticed a few people from the audience posting on Twitter about MEF in the days following the event.

A new job and a tight project deadline kept me from working on my presentation until a couple days prior to the event.  The good news is that I had presented on MEF three times in the past.  The bad news was that the API had changed radically since I developed my original presentation.  So I not only had to expand the presentation to fit the time allotted, I had to completely rewrite my demo to match the current API.  I was up most of Friday night and missed all the morning sessions of the conference to finish on time for my 1PM presentation.   Luckily I finished successfully and the demos went off without a hitch.  

I discovered a blog entry by Brad Abrams that helped immensely.  Brad wrote a set of samples using MEF that I loved for their simplicity.  Don't tell Brad, but I borrowed liberally from his samples to populate one of my demos.

After my presentation, I was able to settle in and enjoy the conference.  I attended two sessions, both in the same room which suited my tired body.  Jennifer Marsman showed a bunch of new features in .Net 3.5.  Next Brian Prince discussed the role of an architect on a project.  I've heard Jennifer and Brian speak many times in the past, so I knew they would be good and I was not disappointed.

I did have time to poke my head into a few presentations long enough to snap a photo or two.  If you heard a clicking coming from the doorway, that was me.

After the event, many of us met at a local watering hole for some food, drink and fellowship.  My new employer Sogeti was kind enough to spring for the food and drinks.  I was well worn down but it was great to reconnect with people who share many of my passions.

I actually volunteered to be something called a "Venue Coordinator" for this event.  But, as this was the fourth time the event was held, the folks at Washtenaw Community College knew everything that needed to be done and delivered to perfection.  I ended up doing no work for this role, so I may volunteer as venue coordinator next year as well.

I took some photos at the event, which you can see here.

I also put together a slideshow with a Warren Zevon soundtrack that you can see and hear below: 

Thursday, October 23, 2008 6:11:42 PM (GMT Daylight Time, UTC+01:00)
# Thursday, September 25, 2008

Saturday October 18 is the next ann arbor Day of .Net.

I'll be delivering a presentation on Microsoft Managed Extensibility Framework.  It should be quite different from the talk I gave last week on this subject because the API recently changed (which means I have some work ahead of me).

This makes the fifth Day of .Net I've attended and the second one at which I've presented.

The other speakers make up an impressive list so I'm excited to be part of this event. 

This event is free but typically fills up so you will need to register in advance if you plan to attend.

Click the image below to get more information and to register.

Day of .Net October 18, 2008 - Be there!

Thursday, September 25, 2008 2:40:28 AM (GMT Daylight Time, UTC+01:00)
# Monday, September 22, 2008

As promised, here are the slides for the presentations I delivered last week in Toledo, Southfield and East Lansing

Microsoft Distributed Cache (aka "Velocity")

Microsoft Managed Extensibility Framework


Monday, September 22, 2008 2:26:18 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, September 17, 2008

Today I start a new job. 

My last employer and I parted ways about a month ago when they decided to close their Michigan office.  I've been extremely busy since then - interviewing; writing articles; preparing and delivering presentations; attending DevLink; and spending time with my family.  I even managed to sneak in a California vacation last month. 

After weeks of interviewing, I ended up with four job offers.  I chose Sogeti primarily because of the people I met.  They have hired a number of very bright developers in Michigan during the last year and the prospect of working with them excites me.  I didn't choose the highest offer or the shortest commute (although these were both factors, of course).  I chose the position that I felt would benefit me the most in the long term.  I tried to see myself a year after working for each company and I believe I chose the one that would enhance me the most professionally.  I relish the idea of learning from people smarter than me.

I'm nervous for the unkown but excited for the challenge.

Wednesday, September 17, 2008 11:57:13 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, September 16, 2008

I will be speaking at three different user groups this week.  If you are in the area, please come out and listen and say 'Hi' afterward.

I will be delivering two presentations each night:

Extending your Application with the Managed Extensibility Framework

Microsoft Managed Extensibility (MEF) framework allows developers to add “hooks” into their application to make it extensible at runtime.  These hooks allow you or a third party to extend your application dynamically in the future.  In this session, we will review the MEF tool set and build an extensible application and then extend that application using MEF.

Using Microsoft Distributed Cache to speed your application

Retrieving data from a disc or a database can be a time-consuming operation.  Data that is accessed frequently can be stored in an in-memory cache, which can speed up its retrieval considerably.  Microsoft Distributed Cache (aka “Velocity”) provides a framework for storing and managing cached data.  In this session, we will discuss how to use this framework in your application and demonstrate some code that implements this framework.

Tuesday, September 16, 2008 5:39:13 PM (GMT Daylight Time, UTC+01:00)
# Thursday, September 11, 2008

I was working at a large utility company in downtown Cincinnati on the morning of September 11 2001.  I had only been at my desk an hour when I heard the rumors: someone had flown a plane into the World Trade Center.  I checked CNN.com but was unable to access its site.  Every news site I tried reported that their server was too busy to respond. 

Instant messages began to trickle in.  Co-workers relayed phone calls from their families.  The office was filled with rumors: a second plane had hit the other tower; one tower had collapsed; another tower had collapsed; the Pentagon was hit; the White House was hit.  It became difficult to separate truth from fiction.  It became nearly impossible to focus on work.  Eventually someone wheeled a TV up to our floor and we were able to watch live reports and hear the news with at least some credibility.

If an enemy attacks the US, Cincinnati could be considered a likely target - many federal government offices, including the IRS and Court of Appeals are there; Procter & Gamble, one of the world's largest companies is headquartered there; and a nuclear power plant sits a few miles west of the city.
The department manager walked through our floor around 10AM to announce that management had considered the issue and decided all employees should remain at work.  A half hour later, he returned and informed us that they had changed their mind - the building was closing and all employees were to go home. 

I was one of the last to leave the building because I told a friend that I would drive him home if he couldn't find a ride from someone who lived near him (By that time, the buses were not running)  He found a ride from someone else, but by the time he told me, the building was nearly empty.

When I walked outside, it was nearly midday but the city was eerily quiet.  There were no cars, no buses and no people.  No boats sailed on the Ohio River that morning.  From horizon to horizon, no airplanes appeared in the sky.  Even the birds were gone.

In those days, I used to park about a mile from my office and I didn’t see a soul on my walk.  It could have been 3AM Sunday except for the sun burning overhead.  I was reminded of movies in which the protagonist awakes and goes outside to discover he is the only living man left in the world. 

I drove straight to the school where my two sons (1st and 5th grade) were enrolled.  I walked to one boy's classroom and stood at the window and watched him silently.  I'm not sure how long I stood there but the bell eventually rang and I stopped him as he exited for his next class and chatted for a few minutes, telling him nothing about the attack.  I told him I loved him.  Then I walked to my other son's classroom and did the exact same thing.  I spoke to my wife, who worked at the school.  We had little to say to each other.  School was not dismissed early that day and I left before the boys did.

On the way home, I stopped at a coffee house and sat, numb thinking of the day's events.  I knew thousands had died in New York, but I didn't know what it meant to the rest of us.  I didn't know what would happen in the coming weeks and months.  Were we at war?  Would we be attacked again soon - closer to home this time? 

I once read that everyone in America remembered where they were when they heard about John F Kennedy's assassination.  I was a year old in 1963 and wasn't aware of it until years later.  But I believe the same can be said of September 11.  It is our generation's Kennedy.  I haven't met anyone above the age of 20 who doesn't remember exactly where they were and what they were doing when they heard of the World Trade Center Attack. 

It turned out that the outward changes in our lives were minimal - no further attacks of this magnitude were carried out and no terrorists came near Cincinnati.  But I think we were all changed that day. 

But our attitudes changed that day.  As a country, we became more vigilant and more suspicious.  Security tightened noticeably in public places and most people did not complain about the inconvenience.  People now have a greater appreciation of the risks taken by firefighters, policemen and soldiers as they carry out their duties.  Most of us take our safety less for granted than we did before.

Our lives were instantly separated into the time before September 11 and the time after.  Seven years ago, we didn't how - but we knew that things had changed.

Thursday, September 11, 2008 3:00:14 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, September 10, 2008

I will be delivering two presentations next Tuesday September 16 at the next Northwest Ohio .Net User Group beginning at 6PM.  The topics are:

Extending your Application with the Managed Extensibility Framework

Microsoft Managed Extensibility (MEF) framework allows developers to add “hooks” into their application to make it extensible at runtime.  These hooks allow you or a third party to extend your application dynamically in the future.  In this session, we will review the MEF tool set and build an extensible application and then extend that application using MEF.

Using Microsoft Distributed Cache to speed your application

Retrieving data from a disc or a database can be a time-consuming operation.  Data that is accessed frequently can be stored in an in-memory cache, which can speed up its retrieval considerably.  Microsoft Distributed Cache (aka “Velocity”) provides a framework for storing and managing cached data.  In this session, we will discuss how to use this framework in your application and demonstrate some code that implements this framework.

HCR Manorcare building at 333 North Summit St. in Toledo.  Click here to view a map.

I'm looking forward to my first visit to this user group in at least five years.

You can read more at http://www.nwnug.com/PermaLink,guid,1877615d-a53b-4b05-b6f6-5d650208af6f.aspx

Wednesday, September 10, 2008 3:47:20 PM (GMT Daylight Time, UTC+01:00)
# Monday, September 8, 2008

Day 1

Cramped into an overcrowded airplane, my two sons – Nick and Timmy - and I flew across the continent bound for San Francisco. 

I made minimal arrangements for this trip - I had a westbound flight Wednesday and a return ticket Sunday morning; my cousin Sharon and her husband Greg had generously agreed to allow us to stay at their Marin County home for a few days; and I had tickets to the Michigan State – Cal football game Saturday night.  Other than these, I had made no plans for the week. 

A rented car, a drive across the Golden Gate Bridge, and a climb up the hills of San Rafael brought us to Sharon and Greg’s house in time for a dinner of grilled salmon and roasted garlic.  I’ve promised myself that I will roast garlic at my home in the near future.  He used a grill but I don’t think I can control the temperature of my charcoal grill well enough for this task, so I plan to try this recipe.

Sharon and Greg have two small children – Billy is the older and he does not seem to sleep and he is full of energy and chatter.  It was his job to make sure we were awake each morning 60 minutes before we wanted to be.  Elena is younger.  She is shy and quiet and pretty and has eyes like a china doll.  It was her job to cuddle her mother at every opportunity.  Both children are very cute and provided entertainment when we were in their home.
After dinner, when any sane person would be overcome with jet lag and ready for bed, my teenagers insisted they were bored, so we drove to downtown San Rafael to eat ice cream, watch the hippies and shoot pool.

Day 2

The week quickly began to take shape.   Nick wanted to play golf so Greg called his golfing buddy who recommended the Lincoln Park course next to the Presidio Park, overlooking the Pacific Ocean.  Great call.  I’m a pretty poor golfer but I enjoyed the spectacular views of the ocean from the cliffs on which the course sits. 

We ate lunch at the Cliff House which boasts excellent Pacific views and fair entrees.

I relaxed at Sharon and Greg’s house while the boys – still full of energy – found the nearest YMCA and headed there to play basketball. 

Day 3

Before retiring Thursday night, I ordered tickets for a San Francisco Bay boat cruise that included stops at Angel Island (a former immigration station and military outpost) and Alcatraz (most famous as a maximum security prison in the 20th century) 

The contrast between the two islands is stark.  Angel is a lush place with a great diversity of wildlife and flora.  Alcatraz is a near-barren rock with no large indigenous animals and a few bushes and trees clinging to its craggy surface.  Both islands served as prisons at some point in their past.  Japanese immigrants were detained on Angel Island during World War II and enjoyed far fewer privileges than the convicted felons incarcerated at the infamous Alcatraz Penitentiary.

Following the cruise, we searched downtown San Francisco for Lombard Street, famous for its hairpin turns and steep slopes.  After a half hour searching among the various one-way streets and dead ends, we found it and wound our way down it.

When you fly across country to visit family, it’s a pretty sweet deal if you can then get family to drive to where you are staying.  This happened Friday evening when we had dinner with an aunt, an uncle, two cousins and five second cousins.   It was a great time visiting those whom I don’t see nearly enough.

Day 4

Timmy and the two younglings wanted to go to the beach so to the beach we went early in the morning.  It was overcast and a bit chilly and water was closed to swimmers due to a recent shark sighting.  Still it was a nice drive and it was fun to watch the little ones chasing birds for an hour.

In the afternoon, we headed to Berkeley.  My cousin John, his wife Becky and their daughter Jennifer live on the east side of San Francisco Bay and they agreed to drive to Berkeley to meet us for lunch.  I haven’t seen John and his family for five years so this was a real treat.  Had we arrived a week earlier, we might have caught the rest of John’s kids before they headed off to college, but it was fun to catch up.

The football game began at 5PM local time.  I had a good feeling as I was able to secure a parking spot on the street within 3 blocks of the stadium for under $2. (The lots nearby were charging $40-50 for parking.)  My Spartans fought a valiant game that night.  They responded time and again and pulled to within 7 points, despite having two touchdowns erased from the scoreboard.  But eventually the defense ran out of gas and could not stop Cal’s offense on three straight 3rd and long plays.   In the end, Cal defeated MSU 38-31.

Following the game, we met up with my old roommate Pat and his wife Susan.  Susan attended Berkeley years ago and they both had friends in the area.  I drove them to a restaurant near their hotel and was surprised to learn they had walked from the hotel to the game, as we drove at least six miles to get there.

This football game was the beginning of their vacation.  They planned to travel up the Pacific coast in the coming days.  Rather than exchanging gifts on birthdays and holidays, Pat and Susan now exchange vacation plans.

Day 5

It was nearly midnight when we returned to Sharon and Greg’s dark house.  The rub is that our flight for home departed SFO at 6:30AM, which meant I woke up shortly after 3.   A strong cup of coffee and some groggy hugs and goodbyes and we were on our way to the airport.

After a layover in Minneapolis, we finally headed home, tired and sated.

It was a whirlwind trip filled with unplanned activities and little sleep; It was a chance to catch up with family that I only get to see every couple years; It was another little stack of memories for my kids to have about their childhood; It was well worth the time and money spent.

Thanks Sharon.  Thanks Greg.  Thanks Nick and Timmy.  Now back to the world.

      Note: Click here to view photos of my California trip.

Monday, September 8, 2008 4:26:13 PM (GMT Daylight Time, UTC+01:00)
# Sunday, September 7, 2008

I stopped by the Agile Summer Camp near Brighton, MI yesterday.

The purpose of the event was to gather together people from the software community in an isolated environment to discuss the issues of agile development.  The event was held at a campground in order to isolate people from the distractions of e-mail, web and home responsibilities.  Discussions were held in an "open spaces" style, meaning participants sat in a circle, were given a starting topic, and were free to take the discussion to any point it logically evolved.

I can't evaluate the success of the open spaces as I was only there for a couple hours and my visit coincided with the dinner break, but those I talked to all gave me positive feedback about the day they had spent at the camp so far.  There was no open space discussion scheduled during dinner, but there were still many conversations about agile methodologies, software development, and all the things these folks have in common. 

Most camp participants stayed from Friday evening until Sunday morning and slept in log cabins without electricity or plumbing.  Family obligations prevented me from spending the weekend, but I wanted to stop by because I heard there would be a lot of bright, passionate people in attendance. There were.  Despite surviving the first 24 hours of primitive conditions, the group still radiated a lot of energy.

I applaud this event, not only because those who participated seem to have got a great deal out of it; but because it is one more example of people in the community creating something that will enhance others in the community.  This spirit of cooperation, support and fellowship is one of the reasons I enjoy doing what I do.

Note: Click here to view photos of the 2008 Agile Summer Camp.

Sunday, September 7, 2008 2:19:12 PM (GMT Daylight Time, UTC+01:00)