Friday, 04 September 2009

An Eye Opening Apology

Sometimes (always?), things don't go as planned. I wanted my next blog post to be about my new perspective on community events and how they can provide the most value to the developer community, but I needed to separate that topic from my experience attending the Jacksonville code camp. I wrote a post telling the tale of my trip to Jacksonville and the frustration I experienced there in order to keep the two issues discrete. One would be a stepping stone to the other. At least, that's how I meant for things to play out.

It turns out that in my rush to get out the first post, I did not take the time and care necessary to communicate with clarity and accuracy. I wrote the post, spellchecked it and re-read it. It said what I wanted to say, so I published it. It did not, however, say what I wanted people to hear. That is, I did not read the post from the point of view of readers unfamiliar with the events described, which turned out to be everyone but me.

Upon posting, I immediately got feedback that indicated that I had failed in my intentions. In fact, the feedback on my previous post has been universally negative. When everyone tells me I'm wrong, I'm willing to consider the possibility. :-)

Honestly, I violated the directive given to me by my friend Jeff McWherter which is: "Dude, don't be a dick." And so, I am sorry for being a dick. I am not angry with anyone associated with the Jacksonville Code Camp. At this point, I'm only angry with myself for confusing the issues.

As I stated in my final email, I was coming to Jacksonville no matter the status of the Community Courtyard. My wife and I planned to stay with friends, and we were going to visit with them whether or not I attended the code camp. Ultimately, I left JaxCC at lunch and spent the rest of that Saturday in St. Augustine having a wonderful time.

My point all along has been to tell the tale of how this experience shocked, frustrated and disappointed me to the point that I stepped outside my normal frame of observation and began to see things from a different and larger perspective. What has been most frustrating to me this week is that I created drama, through my own incompetence, which distracted from and delayed that discussion.



 Monday, 31 August 2009

An Eye Opening Experience

Being dissed at the Jacksonville Code Camp (JaxCC) last weekend was the best thing that could have happened to me. I had to ask myself what I was doing and what I hoped would result from my actions. The result: I've decided to find something better to do with my time, energy and money. More on that at another time.

Here's what happened. I drove 8+ hours to facilitate a Community Courtyard at JaxCC. I've hosted Community Courtyards successfully at other Code Camps this year, and I've never made it to a Florida event before. It seemed like a good opportunity to meet some new folks and engage a broader audience.

Here's the problem, after I committed to hosting a Community Courtyard at the Jacksonville event, I started a new job that requires me to be out of town for two weeks at a stretch for the first 90 days. JaxCC fell at the end of one of those two week trips.

I've seen people bail on their talks the day of the talk, when they were already at the event. I've had speakers bail on me the day of a user group meeting and I've had people just not show up. Whenever possible, I follow through on my commitments.

The last time I bailed on a talk I had just flown in on a red eye (it was another case of satisfying a pre-existing commitment). I had two talks scheduled and I asked to do only the second one, so that I could get a nap and at least give one decent talk. My friend Michael Neel filled in for me in the open slot.

I've worked with lots of terrific event organizers. I'm pleased that many of them have become personal friends. I do not commit to participate in an event lightly because I know that organizers will count on my presence, in part, for the success of their event.

So the scene is me returning to Knoxville Thursday night after two weeks away without seeing my wife or kids. Early Friday morning, my wife and I hit the road for Jacksonville as planned. I did not have time to see my kids before leaving.

Saturday morning, I was on site bright and early to check in and get my space organized. I was not on the speaker list. Nobody knew who I was. I asked to speak with an organizer and I was directed to one of two speaker coordinators. After introductions, he said "I got an email from you."

He was referring to the email I sent as I left Knoxville asking for confirmation that they were still expecting me. He did not respond, although he admitted seeing it. Nor did anyone else from the JaxCC respond to my request for confirmation. I copied two other Florida contacts on the email, Sean Chambers and Joe Healy, and both responded to me.

In the end, there was no Community Courtyard at JaxCC, and I traveled 1400+ miles round trip seemingly for nothing. I was furious. I felt like a victim. I blamed the organizers for being disrespectful and disorganized. But in the end, I had to take full responsibility for my situation. When I did, I saw things differently.

As of now, Monday evening two days after the event, I have received no word of apology. I should have seen the signs. When I initially contacted the organizers using the email address on the JaxCC website, I got no response. I contacted Sean Chambers to put me in touch with the organizers, which he did. The entire email thread is copied below.

Open Space/Community Courtyard at Jax Code Camp

Sean Chambers - Wed, Jun 3, 2009 at 10:03 AM
To: Eugene Chuvyrov , Bayer White
Cc: Alan Stevens
Hey Eugene & Bayer

I passed along both of your e-mails to Alan Stevens. He is interested in discussing the possibility of him doing an open space within the jax code camp. I also cc'd him on this e-mail.

Just giving you the heads up.


Bayer White - Fri, Jun 19, 2009 at 6:49 PM
To: Sean Chambers , Eugene Chuvyrov
Cc: Alan Stevens
Thanks Sean,

Email has been crazy;-)

Alan Stevens - Thu, Jun 25, 2009 at 3:05 PM
To: Bayer White
Cc: Sean Chambers , Eugene Chuvyrov , Joe Healy
Hi All,

I'd like to come down for the Jax Code Camp. I can submit talks if necessary, but lately I've been getting good feedback on hosting a Community Courtyard at Code Camps in Atlanta and Richmond. I'd like to host a CC at the Jax event if possible. This will require a space all day and an opportunity to explain the space at the opening keynote. A dedicated room is great, but at Atlanta we just had a conversation area off the cafeteria and that worked fine.

Please ping me back with any questions and feel free to contact Jim Wooley in Atlanta and Andrew Leonard in Richmond on what value they saw in having a CC to their events.

BTW, I added Healy to this thread because if nothing else, he can confirm that I make a good drinking companion. :-)


Joe Healy - Thu, Jun 25, 2009 at 3:30 PM
To: Alan Stevens , Bayer White
Cc: Sean Chambers , Eugene Chuvyrov , Kevin Randall
gmail?  I don’t know anyone who uses gmail....

On a positive note, Alan can pull off a openspace deal if ya'll want to gun it.  And he can drink beer on a "kevin randall" level.

Sounds like a good value add to me.

Bayer White - Sat, Jun 27, 2009 at 10:36 AM
To: Joe Healy, Alan Stevens
Cc: Sean Chambers, Eugene Chuvyrov, Kevin Randall
I am game Alan and I think we can accommodate! I need to work out the space as we are trying to get more based on the number of speakers that have shown interest. Can you let me know the details?


Alan Stevens - Fri, Jul 17, 2009 at 4:01 PM
To: Bayer White
Cc: Joe Healy, Sean Chambers, Eugene Chuvyrov, Kevin Randall
Sorry this thread got deferred for a while. I've been wrangling a new gig that starts Monday.

A Community Courtyard would ideally replace a speakers lounge. It is a place for people to gather and discuss topics of their own choosing. It is entirely appropriate to have a projector in the room for people to share code.

A CC is a great place for speakers to invite their audience to join them for further discussion after their talks. I typically make an announcement before the keynote, or during the opening gathering. I like to talk to speakers directly about the CC at the speaker's dinner if their is one, but I can email the speakers list if you have one.

I only require a space typically a room, but a conversation nook, or a hallway with chairs will work too. I start the day by having people suggest topics and we build a backlog of topics that is added to throughout the day. People can schedule a topic during a given time slot if they like. I also ask the group at the beginning of each time slot what they want to talk about and we break up into groups around the chosen topics.

This differs from an open space in that there is no open or closing and I am an active participant. My role is to act as a catalyst for discussion and sharing. I try to keep people engaged and occasionally I push peoples buttons to make them react. I'm happy to be the devils advocate on any topic. :-)

I encourage people to share code as the highest fidelity way for developers to communicate, and these exchanges are often the most satisfying. I'm stoked about the opportunity to engage the FL community. Thanks for letting me do this.



Alan Stevens - Fri, Aug 28, 2009 at 8:50 AM
To: Bayer White
Cc: Joe Healy, Sean Chambers, Eugene Chuvyrov, Kevin Randall
Hi All!

I'm about to embark on an eight hour road trip to Jacksonville. I just want to confirm that you guys still want to do a CC. Do you have a space set aside? I'll be there either way.



Joe Healy - Fri, Aug 28, 2009 at 9:38 AM
To: Alan Stevens, Bayer White
Cc: Sean Chambers, Eugene Chuvyrov, Kevin Randall

Call me on cell when you get in.  Cell is below.  Looking fwd to some beers.  I'm here now, pickup up Kabza around 100p.  Prob be at orange park poker room until party time (if I get my work done).

As is tradition, Jacksonville is doing its best to draw in a hurricane for codecamp, but it looks like they won't succeed this time!

Sean Chambers - Fri, Aug 28, 2009 at 7:26 PM
To: Alan Stevens
Did you ever hear back from them? Did you make it to jax?

Was I too trusting? Should I have followed up sooner? Of course! This experience has only served to confirm what I knew already; that I’ve worked with some fantastic event organizers in the developer community. These folks just weren’t among that esteemed group.

A Course In Miracles teaches that to see differently is the definition of a miracle. I am grateful for the gift I received. I will make improvements in my life as a result. I am still organizing my thoughts on the new perspectives this experience spawned and I hope to share them here soon.



 Wednesday, 22 April 2009

The Cheese is Moving (Yet Again)

Who Moved My CheeseI enjoyed the little fable of Who Moved My Cheese when I read it years ago. While I didn’t find it new or life changing, I liked the message that we should always be ready for new things. Even though I no longer eat cheese (I went vegan this year), I try to be prepared for when the metaphorical cheese starts moving.

Yesterday, my manager and my team lead sat down with me in a conference room to tell me that my contract had been cut from the budget as of May 1, 2009. I was not surprised at all. I had been asking about the status of my contract for over a month. My client had lost nearly half a billion dollars in the first quarter of 2009. I could read the writing on the wall.

Still, I had been lax about preparing for the transition. It is easy to be lulled by the familiar. As a result, I had to scramble to update my resume last night and get the word out that I was looking for a new opportunity. I was better prepared than I have been in the past, but I’d still like to keep my resume more up to date.

I’ve already had several leads come my way from my Twitter tribe and the extended developer community. If I have any down time, I expect it to be brief. If you have the time, please review my resume and provide any feedback or suggestions in comments or using the contact link at the top of the blog.


 Sunday, 22 March 2009

Southern Ohio User Group Tour

This week, I'll be traveling around Southern/Central Ohio giving talks at User Groups and at least one corporate office. The schedule is:

Here's the abstract to my talk. I'll elaborate on the content more below:

Come learn about the idea of deliberate practice as applied to the craft of software development. Alan Stevens will perform (less than) amazing feats of coding and he will do it for your enjoyment in real time.

OK, I admit, that's a pretty lame abstract. The explanation of the lameness is that I didn't really know what my talk was about until a few days ago. I've had a lot of ideas in my head that I've been trying to put together into a consistent theme. It was only after explaining to my wife recently what I wanted to talk about, that I saw the unifying theme.

And so, dear readers, I present you with the unifying theme of my talk this week:

In order to get better, you must be willing get worse.

This means that if you want to constantly get better, you have to be willing to suck, at least for a while.

So, come to my talk if you want to learn how to suck with gusto, and as a result become a better developer. If enough of us take this approach, we might just improve the industry, at least a little.

See ya' in the Buckeye State,


 Wednesday, 25 June 2008

Speaker Idol Talk at TechEd

While I was in Orlando for TechEd developers earlier this month, I participated in competition called Speaker Idol hosted by Carl Franklin. Contestants had to give a five minute presentation on a topic of their choice. I chose to explain Test-Driven Development (TDD). I also made the decision not to give a demo in such a short time.

I made it to the finals where I came in as the runner-up and won a BlackJack II Windows Mobile phone. Eric Shupps won a speaking slot at next year's TechEd with an excellent talk that included a well executed demo.

I have embedded a clip of my talk below. You can download the clip here, or watch the entire Speaker Idol finals here.



 Thursday, 10 April 2008

Getting My Mojo Back

I just finished spending over 60 days without a steady gig. I did some contract work, but nothing long term.

I'm happy to report that I have a steady development contract with a Chicago based company.

I'll be working remotely with regular trips to the office. This opportunity plays to my strengths while still providing opportunity in new technologies.

The most significant change I've noticed after starting this contract is that I feel more outgoing. Looking for work wears me down, and I had started to withdraw without realizing it.

I actually gave four presentations during the first quarter of the year, but I never felt motivated to blog about them. I've been having a great time showing people the ASP.NET MVC framework, and the support for test-driven development that it provides.

If you're interested in hearing me talk about these topics, you can come by the NashDotNet meeting tonight. I will be giving an intro and a deep dive on TDD with the MVC framework at the Indianapolis Code Camp so mark your calendar.



 Wednesday, 30 January 2008

No NuSoft Solutions For You!

For the last week, I've been listening to Al Green and attempting to grok the ASP.NET MVC Framework in fullness. I have not been looking for a job. You see, on Monday of last week I had a three hour dinner with a hiring manager which ended with us agreeing to work together.

Because I have been around the block before, I did not crow from on high that I had found a job. Nothing is real until it is written up and signed by all parties. I know this, but NuSoft Solutions had been very forthcoming with me, to date. Prior to our dinner, this hiring manager had met with his superiors to confirm that my travel needs were acceptable. He called me to confirm that we were all on the same page regarding travel before scheduling our dinner meeting.

This morning, eight days after our meeting, I received word from my HR contact that I would not be hired. When I asked the reason, I was told that my travel costs would be too much. I find this scenario totally unprofessional, disrespectful to me and my family, and thoroughly unacceptable.

I am disappointed this morning, not just because I'm unemployed, but because this opportunity was such a good fit for me. I want, most of all, for my next position to be a good opportunity for my employer as well as for me. I know that I would have made very positive contributions to this organization, while working on a personally satisfying variety of solutions and technologies.

I will not slander NuSoft Solutions, but if any of my contacts in the developer community ask me about the company I will relate my experience and have them draw their own conclusions.

With all that said, I am still looking for a challenging and fulfilling new opportunity. Please have a look at my resume and contact me if you know of any appropriate opportunities. Finally, if you are reading this because you are considering me as a job candidate, please perform thorough due diligence before offering me a position.



 Thursday, 20 December 2007

Dude, where's my job?

I found out recently that I will be available for exciting, new job opportunities at the start of next month. It's not my fault, honestly. These things happen. In this case, things happen to me and 22 of my co-workers.

Company President and CEO Brian Jones said Wednesday that the layoffs would be necessary if the Defense Information Systems Agency follows through with a plan to reduce the amount of a software development contract with the Oak Ridge National Laboratory.


ORNL spokesman Billy Stair said the contract's annual appropriation has varied. The agency is considering reducing the amount from about $12 million to about $7 million, he said.

There you have it kids.  That's seven meeellion dollars that used to pay my bills, and it's going bye bye.  Such is life.

I've had a good run with DPRA.  If you recall, I was very happy to come on board, and I have no regrets. I am, however, ready to start my next geeky adventure.

If you, or someone you know, is looking for a first class geek for hire, I may be your man.  Have a look at my resume. Download copies and share them with friends. :-)



 Monday, 10 December 2007

Bringing Cheer to West Nokomis Circle

I stood on a ladder and cursed for a couple of hours yesterday.   Oh, and some lights got hung somewhere between the expletives. :-)

Feliz Navidad,


 Wednesday, 31 October 2007

Speaking at Memphis Day of .Net 2007

I'm excited to be speaking at Memphis Day of .Net 2007 next weekend.  I'm a former student at Memphis State... er, I mean University of Memphis, where the event is taking place.  This will be a bit of a homecoming.

I'll be talking about VSX, and getting into more detail than I have previously.  I've been digging deep into the Visual Studio 2008 SDK as work ramps up on VFP Studio.  Now that I have a better understanding, I'll be able to show how to create and access services in the shell.  Here's the session description:

VSX: Xtreme Xtensibility with the Visual Studio 2008 Shell and the Managed Package Framework

During this session we will look at ways to extend Visual Studio 2008 using the VS 2008 SDK. We will build extensions using the Managed Package Framework that access the same APIs that the Visual Studio team uses. We will explore the opportunities for distributing tools as packages to users without Visual Studio installed. Finally, we will examine the new possibilities for developing commercial software on top of the Visual Studio platform leveraging the Visual Studio 2008 Shell Isolated Mode.

Check out the rest of the sessions here.  It looks like a great lineup.  I hope to see you there!


 Sunday, 08 July 2007

My 2007 Speaking "Tour"

In 2005, I began giving talks at our local user group.  In 2006, I spoke at the Atlanta Code Camp, FoxForward and DevLink.  This year, I joined Toastmasters in anticipation of even more speaking opportunities.  I have not been disappointed.

In January, I delivered a talk on Creating Windows Services at the NashDotNet users group.  I am currently preparing six talks for three different conferences on a wide variety of topics.  Fortunately, I picked the topics. ;-)  Each of these presentations is on a topic of great interest to me.

In September, I'll be at FoxForward near Atlanta, discussing TDD and an approach to application architecture I call OGLE. In October, I'll first head to Nashville for DevLink, where I'll be talking about VSX, and the Entity Framework.  The following week I'll be in Phoenix at Southwest Fox, where I'll do a longer pre-conference session on TDD, and a regular session on extending Visual FoxPro applications with Windows Forms elements.

In addition to these great events, I've committed to speak at the Memphis Day of .NET in November.  Details are still being finalized for that event.  I'll also be giving a talk introducing the Entity Framework at ETNUG, most likely at the August meeting.  I'm hoping to add a couple more engagements before the end of the year.  I'll let you know if anything works out.

If you have ever considered giving a technical presentation at a user group, or regional event, I encourage you to act on that thought.  Sharing ideas and interacting with other members of the community at these events has been extremely rewarding for me.  If you attend any of these events, please introduce yourself.



 Thursday, 05 July 2007

Fun With New Macbook video drivers on Vista

I run Vista on my Macbook.  It's a great machine, but some of the drivers are flaky, because they were intended for XP.  Until Apple updates Boot Camp for Vista, you must use the XP drivers.

Today, I noticed a Windows Update for the chipset drivers.  I was feeling bold, so I let it install.  I hadn't noticed a difference until a few moments ago while surfing a web page.  I wanted to return to the top of the page, so I pressed "fn+ctrl+left arrow" (which is the equivalent of ctrl+home), or so I thought. 

Actually, I pressed "ctrl+alt+left arrow" and my display rotated 90 degrees to the right!  I realized what I had done, and tried "ctrl+alt+right arrow" to remedy the situation.  That put the display 90 degrees rotated to the right.  Finally, I tried "ctrl+alt+up arrow" and the screen returned to normal.  Can you guess what I tried next? :-)


 Wednesday, 04 July 2007

Congratulations to John Kellar

I just read on Rob Foster's blog that my buddy John Kellar in Nashville was recently named a Microsoft MVP.  I can't think of anyone more deserving.  John is the inspiration (and much of the blood, sweat and tears) behind DevLink.

Speaking of DevLink, I need to get my session descriptions to John before he takes me off the speaker list. :-)  In honor of John's incredible efforts for the .NET community in Tennessee, I would like to dub him "The Hardest Workin' Man in Software."  We'll see if it sticks.



 Thursday, 28 June 2007

Is LinkedIn Useful?

View Alan Stevens' profile on LinkedInYesterday, I responded to some requests for connections on LinkedIn.  I'm terribly lazy about this.  Both of these invites had languished in my inbox for over a week.

Once I logged into my account and accepted the invites, I began looking around for evidence of value.  I had a few connections with co-workers and people in the .NET community, but I couldn't see what good it had done me.

I added a link to my LinkedIn profile to this blog a while back during my blog renovations.  That allowed one person I met at Tech Ed to get in touch with me.   Because of that, I decided there may be value in this service.

I began searching all the connections of my connections, that I knew, and inviting them to connect directly to me.  I dug around for email address online of people I didn't have in my address book.  I added my address books from Outlook and Gmail, and invited anyone I thought might be interested.

On a roll, I installed the Outlook plugin for LinkedIn and had it search my archived mail for contacts. I have to admit that this became addictive.  I would send a batch of invites, and wait for email confirming that people had accepted.  I drooled like one of Pavlov's dogs every time I saw the blue toast in the corner of my screen.

This went on well into the evening.  I was very happy to get an email response from an old friend whom I hadn't seen in a few years.  We caught up.  I learned that he was in Memphis and engaged, while he learned about my marriage.  This was a very pleasant exchange, and one that I could have initiated with a simple email, but it resulted from inviting him to join my network.

This morning I moved on to collected business cards.  I was pretty bold by this point and I invited people whom I had barely been introduced to.  This surprised one person who asked how I got his email address!  I explained that I had interviewed for a job with him two years ago, and wanted to connect with him because he supervised many developers who might be interested in our user group.  He was pleased with this, and accepted the invitation.  He also asked me to send him information about the user group meetings, so he could distribute it to his employees.  Now, I was seeing some value.

I believe the best proof of value came when I connected with another user group leader I met at Tech Ed.  He responded to my invite by asking me to speak it their "Day of .NET" in November.  That was definitely a valuable connection.  Again, it was a circumstance that I could have initiated through simple email, but it happened by connecting on LinkedIn.

I still have a couple dozen invites pending.  I'm considering inviting all the regular attendees of the user group, so we can build a network for ETNUG on LinkedIn.  I'm also adding my LinkedIn profile to my email signature.  I'll report back in a month or so to let you know if any of this was worthwhile.  My fear is that LinkedIn is just another friendster dressed up to be appealing to us "professionals".

We shall see,


 Monday, 25 June 2007

My Birthday is Overdue?

Upon logging in at the office this morning, I was greeted with an Outlook reminder that Alan Stevens' Birthday is two days overdue.  Perish the thought!  My birthday is a commitment I always keep. :-)

Wally completed another circle of the sun yesterday.  Cheers mate!


 Wednesday, 06 June 2007

Tech Ed 2007 Day 2

Tuesday started with a good conversation with a member of the SQL Server Replication Services team over breakfast.  I love sitting down at a table with someone in a blue Microsoft shirt and asking what they work on. 

I was too late to bother with the first session of the day, so I headed over to the Hands on Labs.  I started a session on the new Acropolis application framework.  This was a totally new technology to me, so I spent most my time reading the manual.  I saved my partial session for later resumption.

There were lots of great sessions to choose from, but I settled on Joel Semeniuk's "Best Practices for Team-Based Software Development."  Joel is an excellent speaker with lots of great insight to share on this topic.  The room was packed, and I sat on the floor, but it was worth it.  I'll be sharing the slides from this session as soon as I return to the office.

I grabbed my lunch in a take-out box, and headed to a Birds of a Feather sessions called "Exiting the Zone of Pain: Static Analysis with NDepend."  This was an interesting discussion on a topic I was familiar with, code profiling metrics, and a tool I was not familiar with. 

It was during this lunch session that I bumped into Cam Soper for, at least, the fourth time.  It's obvious that Cam has excellent taste in parties and sessions. :-)  This time, we finally exchanged business cards.

I tried to attend Joel's interactive discussion after lunch, but it was packed again.  My Acropolis session from the morning took too long to resume, so I took the opportunity to work on a Hands On Lab on WPF.  I completed a couple of exercises, and enjoyed getting more familiar with the new GUI coding model.  I'll do more later.

For my last session, I attended "Developing Data Driven Applications Using the New Dynamic Data Controls in ASP.NET", but I left just as it got started to deal with a weird technical difficulty.  I'll find out more about these new controls later.  They look very interesting.

Shortly after lunch, I ran into Ken Levy, who has changed teams once again.  He is now doing community development for Visual Studio extensibility.  I promised to stop by later in the week to show him some extensibility I've been doing to bring VS features into VFP, and get his feedback.

In thinking about doing this demo, I realized that I didn't have the Team Foundation Server client installed on my laptop.  While I was sitting in afternoon sessions, I downloaded the client from Codeplex, and grabbed an ISO extractor from a Google search.  I extracted the image and tried to install, but I kept running into missing files.  I downloaded the 180 trial of TFS and performed the same routine with similar results. 

After fighting the issue for half an hour, I realized that the people who wrote the installer were standing 50 feet away.  I went over and asked for help, and received lots of it.  In the end, it was Chris Menegay who determined that the ISO extractor I used, WinISO, was chocking on path lengths over a certain point, and couldn't even read the files to extract them. 

I felt humbled, but grateful to get back on track.  When I got back to my room, later that night, I downloaded WinRar, extracted and installed without problems.  Moral:  don't download unknown software you find on Google. 

Once Chris identified my problem, he and I headed off to meet up with the rest of the Central Region group for our party.  Drew Robbins put together a cool event at the Skyventure Orlando indoor skydiving attraction.  I had never done anything like this before, and it was a blast.  I couldn't stop grinning.


What will tomorrow bring?


 Tuesday, 05 June 2007

Tech Ed 2007 Day 1

Day 1 started well.  I realized I could drive to a nearby hotel to park, and then ride the bus to the Convention Center.  Once onsite, I ran into a fellow Knoxvillian and ETNUG member at breakfast.  I did my best to recruit him for the "Best of Tech Ed" session at our June meeting.

After checking email and blogging a bit, I attended a session called "A Lap Around Visual Studio Orcas."  Unfortunately, the presenter's VPC was locked when he tried to do his first demo.   I've seen the presenter before, and he is awesome, but I'm tired of watching people fight VPC on stage, so I left. 

I went down to the cabanas, or whatever they're calling them this year, to talk to some Microsoft people.  I stopped at the dynamic languages kiosk to find out about the future of tool support in VS for dynamic languages.  I explained to the two members of the team present, about the development style in VFP.  During the conversation, Mahesh Prakriya, the PM for dynamic languages, joined us. 

I asked Mahesh if he knew any members of the VFP team, and he happily reported that he was friends with Alan Griver from his time on the SQL Server team.  We went on to discuss the role that iterative execution plays in development with dynamic languages.  Mahesh used the example of Query Analyzer as a tool that supports dynamic execution.  While he couldn't make any promises, he said his confidence was high that Visual Studio would support a dynamic execution model in the VBx time frame.

I went on to chat with Chris Menegay about the challenges of convincing managers to adopt best practices when using Team Foundation Server.  While we were talking, I was introduce to Juan Perez.  Juan is a very friendly guy, and I thanked him for producing TeamLook, which allows users to access TFS from within Outlook.

Once the vendor area was open, I stopped by to see Eric Sink.  I just wanted to say "Hi", but I ended up discussing the DiffMerge tool that SourceGear produces.  I am very dissatisfied with the diff tool that ships with Team Explorer, so I asked how much SourceGear's tool costs.  It turns out that this tool is fee, and they've just released a new version.  Eric asked me to try it out and email him with my impressions.  Turns out, he blogged about it in detail yesterday.

I lingered too long at lunch, so I missed Don's session on extending VS.  Instead I wandered over to the Hands On Labs, to see what I've been missing the past two years.  I found the labs easy to use, but there were some technical difficulties.  I chose a lab on using LINQ.  I completed the first exercise successfully, but the second exercise required connecting to the Northwind database, and I couldn't find it.  The instructor verified that it was not installed, and sought assistance.  Apparently, that is a flaw in their VPC image, and I won't be able to perform that exercise.  While this was disappointing, I enjoyed the first exercise, so I'll probably try some other labs this week.

Next I attended a session titled "A Lap Around Windows Presentation Foundation."  I've seen a few WPF overviews, but it is still a foreign technology to me.  I was fairly bored until the presenter demonstrated this.  I work on logistics applications, and this animation was the first example I've seen where WPF could add dramatically to our applications.  I left the session early to IM my coworkers about this cool discovery.  I'll try some of the WPF Hands On Labs before I leave, so I can understand better how to produce such exciting data visualizations.

My final session of Day 1 was on the Entity Data Model.  I've read some about this, but I never understood where it fit with LINQ.  My understanding today, is that EDM is an ORM technology that will ship as part of ADO.NET.  This means that I can use stock ADO, and still manage my data without using datasets.  This is good news indeed!  Once the objects are in memory, LINQ can be used to query against the model.  This is good stuff, and I'll be exploring it further during the week.

During the EDM session I heard a quote that was new to me, but the message was familiar.  "Normalize 'til it hurts. Denormalize 'til it works."  Perhaps this could be restated that in practice, theory is only theoretical. :-)

The evening ended with a reception in the vendor area with free food and "beverages."  Here's Geff getting his fair share.


I filled my bag with swag, ate and drank my fill, then headed home to collapse and rest up for Day 2.



 Saturday, 02 June 2007

I'm Off To Tech Ed

I'm on an early flight to Orlando tomorrow.  This will be the first time I've stayed at "unofficial" lodging for Tech Ed.  This means I won't be able to take advantage of the free bus transport, which, in turn, means I will have to watch how many beers I consume at the evening events. :'(

On a brighter note, I will be co-moderating a Birds of a Feather session with Shawn Weisfeld from the Orlando .NET Users Group on Friday morning.  I love the BOF format because it allows many points of view to be shared.  Join us if you can.  Here are the details:

BOF26 - Binding GridView, DropDownList, etc. with CRUD

Friday, June 8 10:45 AM - 12:00 PM, S331 A 

Join in a discussion of binding with ASP.NET controls such as GridView, DropDownList and DetailView and others. Share in the discussion of techniques using automatic code generation, using the List<> generic to bind data in a form to data in a database, and using other techniques that have worked well and not so well. We Birds of a Feather can help each other by promoting discussions of how to bind into templates for highly customized views of the data with nearly zero code, providing for GUIs.

See you in sunny Florida,


 Friday, 01 June 2007

Follow My Web Browsing

I've been using Google Reader as my feed reader for six months.  Scoble uses his reader to create a link blog.  I've been using this feature for a while, and find it very useful.

If I see something interesting in my feeds, but I don't want to read it immediately, I can add it to my shared items, and read it at my leisure.  This is less formal than a bookmark.  Later, if I think the article is interesting enough, I can bookmark it.

Because these shared items are public, you can follow along with me.  There is also a feed, so you can track my feed reading in your feed reader.  Think of it as a recursive feed.  I've added the links to the navigation section at the right.



 Thursday, 31 May 2007

Blog Redecorating

If you read this humble blog in the browser, rather than a feed reader, you will notice some updates.  I have replaced the three-years-out-of-date photo with one from May 2007, and provided a link to the source image.  If you've ever wondered why this humble author is smiling, you can now click the pic to see the answer.

I've added some flair.  I'll try to include any events I am attending whether I am speaking or not.  Please explore the links in the flair section, they are all valuable, to me anyway.

I have updated my blogroll, and it was a lot of work.  It now consists of all the  developer blogs I follow, ordered by the author's name.  Some are .NET, some VFP, and some are none of the above.  This list represents the single most valuable resource in my developer toolkit.  I am constantly caught up in an ongoing conversation with the great minds represented there.  The conversation has been largely one sided for quite a while, but I'm beginning to interact again. 

2005 and 2006 were filled with upheaval as I changed jobs, and watched my marriage and my children's home fall apart.  This year began with my marriage to the most amazing partner I could ever imagine.  We set up a new household with four (sometimes five) children, and began the task of finding a new groove.  I'm happy to report that we have achieved that groove, and I am now able to direct more energy outside my home life.

This is why I'm updating the blog, I've got a lot to share, and I have the energy to do so, once again.  I'll be at Tech Ed in Orlando, next week, so look for lots of updates on the goings on there.



 Wednesday, 30 May 2007

Your Code is Suboptimal (Even at Graceland)

I'm dusting off the blog, and making a fresh start.  I have plenty to say about technology, but first I need to thank Eric Sink for the excellent t-shirts.


If you want one of these cool t-shirts, you can pick one up at Tech Ed, or just ask.



 Thursday, 21 September 2006

Next time, tell me something I don't know!

Pure Nerd
78 % Nerd, 34% Geek, 26% Dork

For The Record:

A Nerd is someone who is passionate about learning/being smart/academia.
A Geek is someone who is passionate about some particular area or subject, often an obscure or difficult one.
A Dork is someone who has difficulty with common social expectations/interactions.
You scored better than half in Nerd, earning you the title of: Pure Nerd.

The times, they are a-changing. It used to be that being exceptionally smart led to being unpopular, which would ultimately lead to picking up all of the traits and tendences associated with the "dork." No-longer. Being smart isn't as socially crippling as it once was, and even more so as you get older: eventually being a Pure Nerd will likely be replaced with the following label: Purely Successful.

Now it's your turn. :-)



[UPDATE]  I found this test, and only scored 72.

I am nerdier than 72% of all people. Are you nerdier? Click here to find out!
 Thursday, 27 July 2006

"My Big Fat Greek Shredding"

My good friend Wade went to Greece recently. Here's a photo he sent. Mouse over the image to see the outcome. :-)

Uh oh!

 Saturday, 17 June 2006

Tech Ed 06 Day 5

The last day of Tech Ed is different from all the others.  Many people have left already, and all the big announcments have been made.  They do schedule some excellent presentations for Friday, so it is worth hanging around for.

I did manage to attend another session Thursday afternoon.  Steve Lasker gave a presentation about occasionally connected systems.  This talk covered the current and future technologies available from Microsoft to deal with moving data offline, then syncronizing with the server when after returning online.  Good session on a very relevant topic.

Thursday night's party was great fun.  I skipped the ball park food, and went to the upper levels where they had a buffet, and beer options beyond Budweiser products.  I met up with my buddy Jim Topp, and we took in the concert, as well as a significant number of Samual Adams Boston Lagers, together.

The opening act was fine, but not inspiring.  Train was excellent.  They are definately a party band.  Along with all their own songs, they did two Zepplin covers, and closed with Aerosmith's "Dream On".  I would definately pay to see them again.

By Friday morning, I had answered, or at least addressed all of my TFS issues.  Before leaving for the party on Thursday, I brought Randy Miller a printout of CMMi KPAs not fullfilled by the MSF Guidance that my CMMi manager put together.  Randy's response was, "You rock!"  I'm looking forward to working with Randy, and Kevin Kelly as we move forward.  One member of the team with whom I didn't get to talk to enough was Noah Coad.  Noah was at the BOF sessions on Tuesday, but we only spoke briefly Wednesday morning. 

My first session on Friday was Architecting Your Own Enterprise Framework with Brian Button.  Brian shared the lessons he learned working on the Enterprise framework in the Patterns and Practices group.  I plan to download the slides when I return to my office, so I can review the wisdom contained therein.  Brian shared what worked for his team, and what didn't.  The most prominent idea that I left with was the "Rule of 3".  If you see a solution implemented three times, then it should go into a framework, but not before.  According to Brian, frameworks are not developed in the heads of designers, but should be extracted from working code.  This guidance basically follows the YAGNI principle.

During a half-hour break, I caught up with /\/\o\/\/ again to ask him about PowerShell resources for developers.  He pointed me to  Windows PowerShell Programmer's Guide  Unfortunately, it is not currently available in a printable format, but this is an exciting find. 

My next session was Rapid Development of Data End-to-End Solutions and How They Work in an N-Tier Model given by Jay Schmelzer. This was the most code-intensive session I saw all week.  Jay dispensed with slides, and built a data access compenent and windows form to connect with Northwind.  Next he migrated his DAL to a webservice, and showed the changes required to maintain full functionality in the application.  Jay is very energetic, and this was a fantastic session.

My final session after lunch was Architecting Applications for a Service-Oriented World.  Beat Schwegler did an admirable job making SOA appear to be a real technology/architecture.  In contrast to the previous session, Beat used slides exclusively to walk us through a conceptual scenario focusing on maintaining existing IT systems investments, while adding additional value by connecting legacy systems through service contracts.  This is the first time someone has convinced me that SOA is more than just a marketing term from Microsoft.

Throughout the conference, the continuous themes were quality and value.  Microsoft is providing tools to insure quality in the software I produce, while it is up to me to insure that I am producing the right software.  If I build a quality product that doesn't meet the needs of the user, then I have not added any value.

 Thursday, 15 June 2006

Tech Ed 06 Day 4

Rain this morning. :'(  I hope this clears up before the concert at Fenway tonight.  I'm jazzed about seeing Train perform.

Yesterday afternoon was increadably productive.  I attended a session on Developing Custom Process Templates, Work Item Types and Policies by Kevin Kelly.  This session was similar to the presentation by Dennis Minium at Tech Ed 05, but Kevin had some new content when he got the the demos.

Next, I attended a BOF called "Enhance Your Business and Professional Life By Getting The Most Out of the Local Developer Community".  This session totally exceeded my expectations.  The facilitators did an excellent job of correcting my thinking about my user group.  The take-away quote was "running a user group has nothing to do with coding."  The moderators had plenty of tips about how to get people involved in the group, how to vary the agenda, and how to focus on the community building aspects first with technology placing a far second.

My final session of the day was the best so far, and that is saying a lot.  I have found my guru for deploying Team Foundation Server and his name is Sam Guckenheimer.  Sam refers to himself as a coach, but I will be following his sage nuggets of wisdom like a devotee to his master. ;-)

Sam gave me a copy of his book, and I read the first 20 pages last night.  This is the guide I intend to use for our road ahead.  The key piece of wisdom he gave me at the end of his session on "Using Metrics to Manage and Troubleshoot Your Projects" was this:  "The heart of CMMi is process improvement."  Sam totally understood the dissonance between developers trying to implement functionality in an iterative manner, and auditors focused on building to spec.

One of the biggest additions to my understanding of TFS at this conference has been the clarifying the difference between the map and the territory.  The spec is a map.  The MS Project file is a map.  These are maps of where we want to go, but the model needs to reflect reality.  With all the rich access to metrics provided by TFS, we can get a clear picture of the territory and adjust our maps to reflect reality.


[Update]  The rain has cleared off, so the concert should be lots of fun. 

My first session today was with Rocky Lhotka.  Rocky was actually very kind to datasets, and didn't harp on the lack of encapsulation.  He showed the advantages of isolating code in partial classes in .NET 2.0.  Of course, this being a Rocky Lhotka session, the ultimate solution was shown to be CSLA.NET.  I asked Rocky if his objects implemented the correct behavior when the user presses the escape key, and he responded that they do.  When he pressed the escape key, the expected behavior didn't happen.  I'm glad to know that these situations still happen to someone of Rocky's stature and experience.

I ate lunch with members of the MOM team, and asked them many questions about connecting MOM and TFS.  They pointed me to AVIcode.  I found the AVIcode booth, and talked with them.  I'll be exploring the resources on their website more upon my return.

I have been haunting the PowerShell booth trying to catch up with /\/\o\/\/.  I went to talk to members of the Visual Studio team about the possiblity of a PowerShell add-in for VS.  They've never heard of PowerShell!  They gave me some good tips on how to follow up through the forums and the feedback site.

While I was talking to a member of the VS team, I asked him about the future of Windows Forms, and he introduced me to CrossBow.  This is exactly the kind of solution I like to see Microsoft producing.  My existing code is not made obsolute by a new presentation technology.  Windows Forms lives!

Probably my last session for today was "Visual Studio 2005 Team System and Microsoft Solution Framework: Implementing an Agile or CMMI Process" with Randy Miller.  This was one of my "must attend" sessions.  My challenges in deploying TFS at this point all revolve around how to make use of the MSF guidance and templates.  Randy gave us the model behind MSF, and offered to email chapters of his MSF book as he writes them.  This was an important session for me.

Upon returning to the Technical Learning Center, I made another stab at talking to someone on the Visual Studio team about PowerShell.  I spoke to Kit George, a Program Manager on the CLR Team, and he had never heard of PowerShell!  He gave me his card, and told me he would follow up on this if I eamil him.

The capstone of the day (so far) was some quality time with Sam Guckenheimer.  I sat down with Sam and reviewed a workflow diagram I made after gathering requirements from my QA department.  Sam had some excellent feedback, and thought through the problem fully.  I made notes to share with my team upon my return.  Sam rocks!

I would be remiss if I did not mention the embarassing situation I went through trying to demo problems I was having with notifications to a member of the VSTS team.  He let me use his laptop to remote into my work desktop and demonstrate the problem.  The real problem turned out to be that the problem no longer exists!  I apparantly had not tried the subscription feature since Beta 3.  When it didn't work, I filed it as an issue in need of further investigation.  The Microsoftie (I didn't get his name) was very gracious, and I was very red faced.  In the end, I'm just happy it works.

 Wednesday, 14 June 2006

Tech Ed 06 Day 3

I attended BOF (Birds of a Feather) sessions until 10:00 last night.  I accidentally attended one on developing on virtual machines, which was actually informative, if unexpected.  Next was a very useful session on MSF, where the moderator directed me to David Anderson's Blog for more information.  He also suggested that I Google for "Agile CMMI"

The final session was on migrating to Team Foundation Server and was moderated by Jean-Luc David.  It turns out that Jean-Luc spoke at the Atlanta Code Camp also.  It is odd that we missed each other there.  There was some lively discussion about branching procedures in this BOF.  I enjoyed it completely, and was reassured that we are adopting TFS in a recommended manner at my employer.

I made it to the jam session last night, and didn't get back to my room until 1:30, but I'm feeling fit this morning and ready to take in more tech goodness.


[Update] My first session on "Applying Version Control, Work Item Tracking and Team Build to Your Software Development Project" with Brian Harry, was a big disappointment.  I was expecting some prescriptive guidance for integrating these tools into an existing project.  Instead, I sat through the same presentation I saw last year at Tech Ed.  This introductory/marketing style session are tiresome.  The companion session this afternoon promises to dig into customizing the system.  We shall see, I suppose.

At lunch I finally hooked up with Randy Miller.  We had tried to get together yesterday, but he had a conference call run way late.  Randy was very interested in the issues my company is having in resolving the impedence mismatch between the CMMI KPAs and the MSF process guidance.  He took careful notes, and thanked me frequently for providing detailed feedback.  He promised to put me in touch with David Anderson, who owns the CMMI template in TFS.  Randy assured me that David would be interested in following our progress and assisting us with any problems.  This is why I came to Tech Ed!

 Tuesday, 13 June 2006

Tech Ed 06 Day 2

The first session I tried to attend was full!  I can usually walk into a session late and sit on the front row.   Apparantly, LINQ is a popular topic.  I'll catch the replay on the DVD.

I did attend a session on "Evolving to Patterns" which was actually refactoring to patterns.  I discovered that something I've been doing for years is called Dependency Injection.  It's nice to be assured I'm on the right track. 

The speaker recommended Working Effectively with Legacy Code, which looks like a useful text for my current job.  He also liked Refactoring to Patterns.  I plan to check them both out.


[Update] I met Josh Holmes at breakfast this morning.  I also got the skinny from Steve about a cool cigar bar here in Boston. ;-)  Steve is actually blogging again, so check it out.

I had a good, long talk with two members of the SQL Everywhere team this morning.  They were very interested in my concerns about FoxPro interoperability.  I had to take some time to explain the VFP development model, but they listened carefully.  The biggest roadblock I see at this point, is the lack of ODBC connections in SQL Everywhere.  They do support OLEDB connections, but the native SQLCONNNECT() function uses ODBC.  I will download the CTP and play with it when I get home.  I promised to post my feedback to the forum for their benefit.

The BCEC is enourmous and attractive, but it is difficult to navigate.  It is sometimes impossible to get from A to B.  Furthermore, the bathrooms are totally inadequate.  This is a modern building, and I expect an abundance of facilities!

[Update2] I got some time in with Ken Levy, and I was blown away.  It turns out that Live is another case of lousy branding by Microsoft.  Live is actually a collection of Web APIs that the team is attempting to normalize.  They will all eventually have common programming models.  In addition, they are implementing javascript libraries with similar programming models, so that a developer can program against a client side javascript object and allow that to converse with the web services.  I was very excited by this demo.

During lunch, I attended a session on managing requirements with Team Foundation Server and MindManager.  Michael Scherotter put together a tool that provides bi-directional interaction with TFS work item tracking.  This is very exciting for visualizing requirement/task dependencies at various levels in the task hierarchy.

[Update3] I just spoke with Steve Lasker about SQL Everywhere and Visual FoxPro.  He is a former VFP developer, and understood my concerns.  He mentioned that he is in regular contact with Calvin Hsia, which put my mind at ease.  Steve also pointed me to this recent blog entry where Calvin demonstrates working with SQL Everywhere.

[Update4] I just finished the first Birds of a Feather session this evening.  Joel Semeniuk led an informative discussion about project management with Team Foundation Server.  I picked up some tricks about configuring MS Project to work properly with TFS.  I'll share the details once I have tried them out.  More BOF sessions to come.

 Monday, 12 June 2006

Tech Ed06 Day 1

Today was the first "real" day of the conference.  I planned to do too much, and now I'm exhausted. 

Initial impressions: 

Travel:  Boston's airport is bigger than any airport has a right to be. 

The Silver Line is freaking cool!  The articulated bus runs by the airport, then stops at a station where it connects to overhead cables, and the engine shuts off.  Next the bus/trolley travels into its own tunnel.  

Lodging:  Hotel Marlowe in Cambridge is as cool as it looks on the website.  I have no regrets about choosing this funky establishment. 

Food:  There's too damn much of it.  My genetic code tells me to eat when food is available.  Unfortunately, there is always food available.  Breakfast and Lunch were excellent, and the evening reception with free "refreshments" was equally tasty.

People:  I had the opportunity to hang with Eric Sink, Martin Woodward and Don Demask.  I also ran into Matt and Brendan.  I saw Ken Levy, but he was busy pitching Windows Live.  I'll bend his ear tomorrow.  I also ran into Steve Loethen and Drewby.  Steve is my Developer Evangelist, and Drew is the DE in the district north of me.  I hope to get in on some code camps in Drew's district in the coming year.

Technology:  SQL Everywhere looks like a great migration path for users of Jet or Visual FoxPro.  My other sessions where about Team System, and my passions there are well documented.   I'm looking forward to a PowerShell session tomorrow.

I'm off to the jam session. 


[Update] No jam session for me. :'(   I went to the hotel to drop off my bag, and the leopard print robe and faux-fur throw looked soooooo comfy.  I was exhausted, and knew that I wouldn't get the most out of Tuesday if I pushed myself too hard.

 Tuesday, 30 May 2006

Atlanta Code Camp Feedback

I got my feedback from the Atlanta Code Camp today.  I admit, I am terrible about providing feedback at events such as this.  Not until today, did I realize how useful those little forms are to the presenter.  So, as a sign of thanks to the people who took the time to provide this data, I want to share it with the world along with my responses.

Score Comments My Response
3 more evangelist than teacher This is possibly accurate, but I could use some examples to back it up.  I'm sorry you didn't get more benefit from your time.
5 (5 lines of comments were blacked out) Pity, those five lines may have been very helpful.
5 very passionate, however demo unorganized, started slowly.  Took 15 minutes to introduce - could have done it in 1. Accurate. I blew the demo despite my rehearsal. I get excited, then I rush, then I make mistakes. Unfortunately, what the commenter calls the intro was intended to be half the material.
6 A little disappointed because the presenter didn't touch the team system from Architecture point of view.  I think the introduction could have been smaller Fair. I intentionally ignored the system architecture, and focused on the development process.
7 1.  very knowledgeable  2.  as individual programmer/consultant, was not aimed at me Useful. I work in a team environment, and intended to focus my comments on development teams.
7 needed to scroll some of the scripts being shown to the top of the screen so we could see over the heads of those in front Very helpful. I will definitely keep these comments in mind at my next presentation.
7 well prepared, new insite [sic] on new technology.  Really helpful Thanks.
7 lots of good information, very applicable Thank you.
7 wandered a bit. Demo could have been planned better Useful.  There is a theme here about focus and precise demos.
7 too much generalization Hmmm… My intent was to back up from the tool, and focus on how it fits into a developer’s work life.
8 good speaker and good intro to the "team" aspects of the team system Thanks, that’s what I was going for.
9 very good, detail Much appreciated
9 great speaker, good overview and content Wow, thank you.
9 excellent combination of VS team systems and GTD.  Very informative Glad you enjoyed it.

My reading of this table is that I need to make sure my demos are bulletproof, and insure visibility for the back rows when showing code.  The most important trend I see here is a need to set clear expectations.

What is fascinating to me, is that I spent a good deal of time at the beginning setting the tone of the presentation, and multiple commenters felt I was wasting time.  My intention was to clearly separate this discussion from a purely technical overview of the tool.  I will be more explicit about this point at my next presentation of this material.

If you attended my session in Atlanta, I would love to hear your comments and suggestions in the comments to this post.  I would also like to hear if anyone thinks I am misreading this data.

This was my first presentation "in the wild."  I've given two talks at the local user group, and many inside my corporate mother ship.  I'm sure that my next presentation will be better as a result of these comments.  I'm equally sure that I will take the time to offer feedback to the speakers at Tech Ed next month.


 Saturday, 20 May 2006

It's a Good Life

Nothing unique happening today. It's a kid weekend, and if you live your life according to a parenting plan, you know what I mean. For the rest of you, it means the kids are staying at my house this weekend, and I'm loving it.

We live in a terrific neighborhood with a park across the street and lots of playmates as neighbors.  I guess I'm feeling grateful that I can provide this environment for these amazing little humans.  They're doing great, and I'm doing better than I ever have in every aspect of my life.


 Thursday, 18 May 2006

Real Hosting for Cave Markings

I finally gave in and purchased hosting.  I hosted this site myself up until yesterday.  I have been intending to secure hosting for months.  This week, I sent a link for one of my posts to a Microsoft employee, and he couldn't access the site.  That was the motivation I needed.

Yesterday, I migrated everything to BoundGrid Technologies and turned off my web server.  This morning DNS appears to be sorted out.  I didn't move the DNS hosting, but just updated the A records. 

BoundGrid was recommended as being dasBlog friendly, and they certainly are.  I used their web file management tool to move my directories to their server, renamed index.html, and et voila!  Cave Markings was live.  I'll post some pictures of my previous "hosting" configuration soon.


 Monday, 15 May 2006

Atlanta Code Camp Followup

I enjoyed presenting at the Atlanta Code Camp this weekend.  We had a speakers' dinner the night before, and I got to meet most of the other presenters.  The room was long and narrow, though, so I did not meet a few people at the other end of the room.

In particular, I enjoyed discussing LINQ with Jim Wooley and Wally.  I got a good introduction to Visual Studio extensebility from Vinay Ahuja.  I had a fun exchange with Charlie Arehart and Geoff Hiten about the impedance mismatch that occurs between developers and DBAs on where to put data access logic.

My father traveled with me, which was fun.  This was my first Code Camp, and I was surprised by the amount of organization and coordination required to pull it off smoothly.  Brendon, Matt and Doug as well as the rest of the volunteers deserve lots of credit for putting this together for the community.

My session was in the first time slot of the day, and was well attended.  The audience seemed engaged in the material, and I enjoyed presenting.  I had to high-tail it back to Knoxville immediately following my session in order to attend my daughter's ballet recital, so I didn't get to see any of the other sessions.

There was some discussion of another Atlanta Code Camp in February.  If it happens, I would love to present again.  In addition to more Team System talks, I would like to do a developer focused presentation on Windows PowerShell.  Most of the current material is slanted toward administrators.

Finally, I owe a HUGE "thank you" to Noah Subrin for loaning me his laptop power cord.  I left mine sitting on the desk in Knoxville, where I tested everything before packing for Atlanta.  What a typical rookie mistake.  Thank's Noah, you rock!


 Wednesday, 10 May 2006

Google Juice

I use a RSS aggregator to read the web.  This is a great way to organize and prioritize information.  Last week, however, I was surprised to see the following headline in my reader:

Alan Stevens from Knoxville

This was from a post on Wally McClure's blog.  Wally and I are both speaking this weekend at the Atlanta Code Camp, and in October at DevLink.  I thought it was cool of Wally to publish this post, and link back to Cave Markings.  In fact, Wally is generally a cool guy, and you should check out his podcast if you haven't already.

What is totally surprising to me, is that Wally's post is the #4 result for Alan Stevens on Google this evening.  Furthermore, this humble blog is the #5 result!  Wow, thanks for the love, Wally.


 Tuesday, 09 May 2006

Behold the Fire Pit

Two Saturdays ago, I embarked on a project that I had been contemplating all winter.  I restored  the remains of a fire pit I built in 1994.  It had seen lots of neglect.  The brick lining had been removed, and it had eroded to a large bowl shape.

I improved on my initial design by making it deeper, and lining the bottom with brick, as well as the sides.  The top ring is composed bricks with one rounded edge, which looks quite nice.

Here's a picture, but since a hole in the ground isn't terribly interesting, I chose one with a pretty lady in it.  <G>


 Thursday, 19 January 2006

The Military-Industrial Complex and Me

I did it.  I allowed myself to be assimilated, and I have no regrets.  Maybe it’s because I’m approaching forty.  Maybe my values have changed since college, or at least I hope they have.  :-)  Monday, January 9, 2006, after completing a six month stint as a contractor, I started as a full-time employee of a defense contractor.  We develop software specifically for the Department of Defense, and we do it very well. 

The company is DPRA Incorporated.  I work for the Defense Systems Group, or as a co-worker calls it “The Developer’s Paradise.”  DSG is run by a Senior VP who is also a software developer.  He can discuss with familiarity the ideas of Fredrick Brooks and Tom Demarco.  In fact, he told me that everyone has an office with a door because of Tom Demarco’s book Peopleware.

That’s right kids.  I have an office with a door!  I also work uninterrupted.  Other than our weekly team meeting, if I want anyone to know about my progress, I have to find them, and let them know. 

This doesn’t mean we are immune to the realities of software development.  Last fall I had to meet a deadline, and I assembled my project in a decidedly slap dash manner in order to fulfill the requirements of the contract.  What is unique is that after we met the deadline,  I had time to refactor my work into a more maintainable form before release.

Besides the creature comforts, my coworkers are smart, talented and professional.  This may sound like hyperbole, but I assure you that I work with some of the best people in the industry.  Last summer I went to TechEd and got a feel for the best and the brightest.  I’ve met the best of the best, and I work with some of them on a daily basis.

It used to be that the three companies I most wanted to work for were (in order of preference):  FogCreek, Microsoft & Wintellect, but not anymore.  I’m home, and I don’t have any intention of leaving.  If you’d like to join me, then keep your eyes open.  We hire regularly.

 Thursday, 15 December 2005

Windows' DPI Setting

I spend my days looking at high resolution monitors; 1600x1200 at work and 1920x1200 at home. :-D  One suggestion I read for using high resolutions, is to bump up the DPI Setting in display properties from 96 to 120dpi.  This seemed like a good idea until I tried it.

All the title bars become too large and some applications can't cope with non-standard dpi settings.  I see enough bad formatting on the web. I don't need it on my desktop too, so I changed the setting back.  Unfortunately the window captions were still the wrong size.  I fixed this by going to Display Properties -> Appearance -> Advanced and playing with the title bar settings until things appeared normal.

This would seem to end this chapter in my battle with Windows(tm) except that I earn my living using two Integrated Development Environments: Visual FoxPro and Visual Studio.  Both IDEs make use of sub-windows with half-height captions.  After my DPI Setting experiment, these captions were twice as tall as they should be with complementary giant, blocky icons. :-P

I have put up with this situation for months, until today.  Today I found my limit in tolerating ugly displays and set about correcting the issue.  Unfortuanately, Google did not provide me any leads.  I find it unlikely that nobody else has had this problem.  Given my state of mind, I perceviered.

I set  about searching the registry for vaious keywords.  I eventually found the WindowMetrics key under Users\.Default.  I exported that key, edited the path, and imported it into the equivalent key in the CurrentUser node.  After a quick logoff/logon to reload the registry, Bob's your uncle!

The attached file should serve to correct this situation for any other users with this affliciton.  Change the extention from .reg.txt to .reg, double-click, select OK, and you'll be golden.


WindowMetrics.reg.txt (4.4 KB)
 Thursday, 10 November 2005

A New, Old Dog

Last night, the kids and I visited a dog that was available for adoption. Her name is Lady Theodora, but she responds to Teddy. We all fell in love with her, and voted unanamously to make her part of our family. She is hardly a puppy, but she is very well mannerd and playful, which makes her a good match for the kids. She will join three humans and one feline as the fifth resident of The Netcave.

 Sunday, 26 June 2005

Still crazy after all these weeks...

There is much to report in this space, but I have been too busy having experiences to stop and document them.

TechEd was exhausting, and extremely fun.  If anyone knows how I can get a RSVP code for PDC, click the contact link, please.

I'm getting divorced and moving to a new residence.  If that wasn't stressful enough, I started a new job last week, and I'm presenting the fruits of my TechEd experience at the East Tennessee .NET Users' Group tomorrow night.  Whew!

 Friday, 29 April 2005

Tech Ed Bound!

The happy email reads:

Dear Alan Stevens:

Thank you for registering for Microsoft® Tech Ed 2005. Your enrollment was submitted successfully. You will receive a confirmation e-mail containing your hotel arrangements (if applicable) and additional airline information within two business days.


 Thursday, 31 March 2005

About Alan

Alan Stevens is a father, geek, vegan and software artisan living in Knoxville, TN. Alan regularly speaks at industry conferences and user groups.  Alan is an Open Space Technology facilitator. Alan is a Microsoft Most Valuable Professional (MVP) in C#. Alan is a member of ASP Insiders. When Alan is not playing with his kids, enjoying a fine cigar, singing or playing his acoustic guitar, he occasionally updates his blog at

Facilitating Open Spaces at Devlink 2008

Alan's Resume

You can download the resume in various formats using the links below.