Saturday, June 22, 2013

Community Conferences Changed My Life, and They Can Change Yours

2012 was the first time I attended a community conference.  I'd been hearing for years about Codemash, and I finally got it approved so that I could attend.

No kidding, the conference changed my life.

Up until then, I'd been a corporate drone.  Excited about my craft, sure, and always engaged in learning more.  But otherwise shielded from the true development community by a familiar company directive: "We're not a software company; we're a <insert domain here> company."

Codemash really opened my eyes to the world behind the world.  It woke me from the Matrix.  And since then I've decided to speak up, and be part of The Cult of Do.  I want to be a driver, not just in my life, but in the community that I see can benefit us all so much.

It motivated me so much that I decided to commit to something crazy.  I decided that I was going to become a voice in the community and recently gave my first big-boy technology presentation at the Lake County .NET User Group meeting.  Another great community organization dedicated to making great technologists even better.

And yeah, I'm a .NET guy.  I have been since 2001, and I know it best.  But I'm interested in all kinds of technology.  I had a great time meeting up with the guys at OpenHack Naperville and talking Ruby, for example.  I love mobile and HTML5 development.  All of it is fun, and it's like I've rediscovered everything I liked about programming.

Now I don't want to diss big conferences like Build, Mix, or TechEd.  They have their place, and I've learned a lot from them.  The community conferences, however, are so much more vibrant and full of life.  They are places of people sitting and coding in the hallways.  They are places where the speakers are so excited about their topics that they donate their time to evangelize.

And then Clark Sell and I got to talking.  He was starting up a community conference in the Wisconsin Dells called That Conference.  I had to be part of it.  I worked with a fantastic group of volunteers to put on what was the best technology conference I've ever been to.  The most energetic, the most engaging, and the most educational conference I could have asked for.

That was just the first year.  Last August.  2012.

Recently I had a discussion with an engaged, enthusiastic, and very talented developer I work with about the relative merits of TechEd and That Conference, both of which he's been to in the past year.  He told me that TechEd was good, but that the enthusiasm of That Conference was infectious.  The speakers didn't all have the same corporate polish, but what they brought was something more.  Something different.

And that's what we're offering with That Conference.  It's the importance of community. It's completely technology agnostic, and there are sessions for everything from hardware to software. I think you should come out and join us.

Better still, we've inked a deal with the Kalahari Resort and got That Conference scheduled out for 2014 and 2015 already!  Plan your training budgets accordingly!

Change your life.  Enjoy your career.  Come have dinner or a beverage with me, and let's talk about how community can work better for you.  Or contact me through my website.

Saturday, May 11, 2013

How to Learn Even Faster


AHA!  I figured out how to cram even more into a day, lunch hour, etc.  Y’all may have known this - and if so, shame on you for not sharing – but Windows Media Player allows you to speed up playback up to x2, meaning that 20 minute tekpub video you’ve been meaning to watch will only take 10 minutes!  Here’s the steps:

For easy use, right-click the play button and select Fast Playback (ctrl shift g) (which is 1.4 x speed)

Or bring up the main right-click context menu and select Enhancements > Play speed settings


That will bring up a dialog that will allow you to fine tune the speed all the way up to 2x (I’ve found that to be like dialing up to 11, so I generally just settle on the easy approach).


Now, no excuse not to learn that new framework you’ve been thinking about.

Monday, April 22, 2013

These Are a Few of My Favorite Things

I read.  A lot.  I do currently, and I have done.  I used to read fiction, to be sure, but I am currently a ravenous reader of non-fiction.  I collaborate with a lot of other people that love to read, too.  I ask for recommendations, and I get asked fairly frequently about recommendations I would give.  I thought it would be useful to collect them all in one place.

Note, I couldn't possibly come up with a list of books that I've read.  There have been too many, and my memory is shot by years of looking stuff up online.

No, these are the books I remember.  The ones that influenced me in some material way.  I'm going to categorize them, but not put them in any particular order.  I'm brainstorming here, so if you know me and know I'm missing one, you're right.

Programming Books

Pop Psychology

Monday, April 15, 2013

Overheard in the Office

Amusing quotes overheard in the workplace.  In all cases, the speaker was trying to say one thing when they meant another.  In all cases, the resulting turn of phrase is maybe even more awesome than the original would have been in the context.
  • At the epic center (not epicenter)
  • When push comes to shovel (not shove)
  • There's another caviar on the first point (not caveat)
Just goes to show how malleable and cool language can be.

Tuesday, April 9, 2013

Microsoft Marketing's Secret Naming Document Leaked

I was doing some research with insiders deep inside Microsoft after a chalk-talk session about Sharepoint and related products.  Someone I was corresponding with accidentally sent me the following scanned meeting notes as an attachment.  I'm sure it wasn't meant for me, but it does offer a window into the mind of the Marketing Department at Microsoft:

Monday, April 8, 2013

Fixing My Custom TFS 2010 Activities to Run on TFS 2012

Wow, what a technologist.  A post or two a month about everything except technology.  Well today, I'm going to document one of my most recent struggles in the hope that someone will benefit.

Started off getting this error.

TF215097: An error occurred while initializing a build for build definition \<My Project Build Name> The values provided for the root activity's arguments did not satisfy the root activity's requirements:'DynamicActivity': Expected an input parameter value of type 'Microsoft.TeamFoundation.Build.Workflow.Activities.BuildSettings' for parameter named 'BuildSettings'.'DynamicActivity': Expected an input parameter value of type 'Microsoft.TeamFoundation.Build.Workflow.Activities.TestSpecList' for parameter named 'TestSpecs'.Parameter name: rootArgumentValues

Bizarre.  So what it comes down to is that 2012 does not work with artifacts either built against or referencing a component from 2010.  A 2012 build controller won't run custom build activities (which I had) that were compiled against the TFS 2010 binaries.  Further, the custom XAML files were polluted by the workflow designer, said to be a bug in the designer, but that smells fishy to me.

Here's the steps I took.

  1. I rebuilt my custom activities with all the references pointing at the new 2012 TFS .dlls.  
  2. I overwrote the old custom activity .dlls in the $\BuildProcessTemplates\CustomActivities directory and checked them in.
  3. After that, my builds still didn't work, failing with essentially the same error, so I used the XAMLCleaner code I found here to scrub my custom build workflow templates (.XAML files).
  4. Running anything and causing one of these version issues requires the build controller to be reset.  Use the TFS admin console to do so.
  5. My *.CI builds all use the DefaultTemplate.xaml.  The upgrade gave me a DefaultTemplate.11.1.xaml.  I deleted the DefaultTemplate.xaml locally, renamed the DefaultTemplate.11.1.xaml to DefaultTemplate.xaml, and checked it in.  .CI builds ran fine.
  6. Once I had made all these changes, I checked everything in and ran my custom web and default release builds, and they worked.

Hope this can help someone.  I love TFS ALM, but sometimes the stuff is daunting.  The two links above really helped me out.

Tuesday, April 2, 2013

The Boredom Factor

I mess around on my cell phone.  A lot.  I’ve never been diagnosed with any kind of concentration disorder (ADD, ADHD or the like), but I always feel at least a bit distracted, and as a result, I often fidget by checking something on my phone.

So it’s not a bit surprising that when I’m in a meeting that has become tedious, or when I’m not directly involved, I mess around with my phone.  Sometimes I check the weather, or search for something that has just come into my mind tangentially related to the discussion.  And I don’t necessarily think this is a bad thing.

Other people have their own meeting coping mechanisms for dealing with tedium.  They daydream, twirl their pens, doodle, think about going home, think about next tasks or a meeting they have to prepare for themselves.  I think before I had something so easy to distract me, I did all things during meetings.

I actually used to get so bored in meetings I defined a metric that I call The Boredom Factor.  It’s defined as 
Where t = time elapsed before checking the clock for the first time and T is the total scheduled meeting time.

The closer the number is to 100, the more boring the meeting.  Say, for example, I look at my watch 10 minutes into an hour-long meeting (1-10/60)*100 = 83.  Pretty boring.  Contrast to looking at my watch 25 minutes into a half hour meeting (1-25/30)*100 = 17.  Not really that boring.

That’s right, I was so bored I invented a boredom metric.

So first things first.  I actually think I pay more attention with my phone out and on than if I were daydreaming.  With the phone taking up the “bored” part of my mind, it’s keeping me acutely there and in the room.  I’m not devoting 100% of my attention to the meeting topic, but I’m no longer ignoring it outright by daydreaming.  50% there is still better than 0%.  But still not the same as involving me and getting 100% of my time.  Oftentimes the distraction makes me feel more energetic and willing to contribute.

Realistically and practically, however, if I’m not 100% engaged in the discussion, then I’m being pulled out of it.

That is, if I’m in a meeting you’re running, and I’m on my phone, you can criticize me for being rude all you want, but the truth is that you are not engaging everyone in the room fully.  Consider turning the critical eye inward to see what might be keeping people from being engaged.  One of the following be the problem:
  • The meeting may not be focused enough – too many topics that not everyone is interested in. Are you just filling time?
  • The meeting has too many people – you may not need my participation the whole time. Could this meeting have been several quick short hallway conversations?
  • The meeting time slot is too long – you may be just filling up time when you could have made the whole process tighter. Are people showing up late? Are you prolonging the meeting because you have another stacked up afterwards and don't want to go back to your desk.
  • You didn't come with an agenda or a set of goals – I may not know where you’re trying to get to, so I’m biding my time until I hear that you’re finally on a track. Can you prepare better next time? 
  • People may be exhausted from too many meetings – meeting fatigue is real, and eventually people need a break. Too many mid-level managers do nothing but go to meetings all day every day. Are you contributing or creating that kind of culture?
Finally, I will leave you with the idea that respect is similar to attention, in that you need to earn it from folks.  If you are not getting mine, you should consider the possibility that you are not earning it.