Scott Hanselman

Sharpen the Saw for Developers

August 22, '07 Comments [47] Posted in Learning .NET | Programming
Sponsored By

George emailed me with an interesting question. Paraphrasing George, liberally, what's are some good ways to keep developers sharpening the saw - Covey Habit #7? There's been lots of talk about being a better developer, but what about the unmotivated masses? (Don't worry, we can talk about them, because, since they are unmotivated, they aren't reading blogs.) ;)

The assumption being that for every totally-amped developer who is always striving to get better, there's at least 10 developers who are saying, "Hey, it's 5:01pm, I've just checked in massive changes, can I punch out?"

Here's some ideas, some mine, some Georges. I'm interested in yours:

  • Give the developers actual set-aside time at work to read technical books.
  • Build a library of technical books at your office, and dedicate a space or room for reading and reference.
  • Host technical brown-bags at least twice a month and encourage everyone to present at least every year. (I would say even more...do them weekly at lunch and everyone needs to present at least twice a year)
  • Encourage developers to attend a local Nerd Dinner to get in touch with other local developers. If you don't have Nerd Dinners, create one.
  • Have all your developers attend your local .NET User Group. Go one further and get them to present.
  • Create a formal mentorship program. Build it into the HR Title System. Senior Developers mentor Junior, etc. Formalize the goals for the program with HR and build it into their job description.
  • Give homework. "We're doing a lot of Threading work lately, here's some assigned reading."
  • Inspire a culture of learning. If you're (assuming you're the Alpha Geek) not giving off an encouraging and enthusiastic vibe, your developers have little reason to be excited themselves.
  • Create a Thanks A Bunch Cabinet. Corillian had a great system where peers could reward peers. Our administrator, Kate, had a budget given her by the Engineering Department. I think it was less than $1000 a quarter. She'd go and get as much cool stuff as she could, each under $25. This included iTunes cards, stuff from Sharper Image, Flashlights, just nerdy stuff. If you went above and beyond in some aspect of your job, one of your peers could reward you by sending you to the TABCab. You get to go home with a cool, unexpected free gift, and your peers get to tell you you're appreciated. It was a great system.
  • Have a real written-down Training Commitment. Your company likely has Health Care as part of the benefits system, and your Human Resources could tell you how much it costs per developer. Get an amount of money (usually a percentage of their pay) dedicated to training, where training is not just in-class time, but also books and conference attendance.
  • Let your programmers attend Conferences. If culturally appropriate, use the attendance as a carrot.
  • Twice a year, hold an offsite Company Code Camp. This was another cool thing Corillian did. We included everyone, admins, accounting, sales, everyone. We gave out an interesting problem, created diverse teams, and set them to work to design algorithms, define, write, document, and test some application. The application needs to have universal appeal, so sales and accounting can have fun. One year we did a Word Search (like the kind in the newspaper). Everyone participated and there were reasonably significant prizes.

What do you think, Dear Reader? How do you motivate, inspire, teach, beat encourage your team? 

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

The Weekly Source Code 2

August 22, '07 Comments [4] Posted in Source Code
Sponsored By

In my new ongoing quest to read source code to be a better developer, I now present the second in an infinite number of a weekly series called "The Weekly Source Code." Here's some source I'm reading this week that I enjoyed.

  • DasBlog 2, SubText, BlogEngine.NET, SingleUserBlog - All these blog engines are FULL of good (and bad) source. Each is a treasure trove of patterns, anti-patterns, techniques, libraries, ideas and good fun. I love firing up the source to a new blog engine as the specification is well-known and the solutions are endless.
  • OpenTheme - A really strange but truly fascinating XML-based GUI toolkit (ala XAML). The article is tiny, but the source is pretty expansive.
  • Charles Cook is the reigning king of XML-RPC on .NET with his very clean XML-RPC.NET library. However, Clemens has been causing trouble (the good kind) on the dasBlog team lately, and is currently moving our prototype dasBlog 3.5 forward with WCF for all non-HTML endpoints. He's using this opportunity to create XML-RPC using WCF (Indigo) (download source). If you're familiar with the crazy XML-RPC format and you're looking to learn about how WCF isn't just about SOAP, this is a good sample to start with. (Windows Live Writer uses XML-RPC to talk to most blogs, by the way.)
  • While browsing Charles Cook's site, I noticed this post from January about Wesner's Hard Problems, Simple Solutions post. Wesner points to a regular expression engine in 14 lines of Python and suggests this could be ported to C# using iterators and anonymous functions. Charles responds with some really interesting C# code that I'm still getting my small head around. I believe what Charles is asking for is extension methods.
  • And jagged segue...speaking of using XML-RPC on the server-side, Charles put up a sample earlier this year on how to use System.Net.HttpListener as a basis for an XML-RPC server. Both his and Clemens samples give you the building blocks to start using Windows Live Writer or BlogJet as a content management front end to your (whatever it may be) own content management system; you might also use these samples to add XML-RPC to your own blog engine...and that brings this Weekly Source Code full circle.

Feel free to send me links to cool source that you find hasn't been given a good read.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Hanselminutes Podcast 77 - Moving your Email into the Cloud - Google for Apps and Live Custom Domains

August 22, '07 Comments [7] Posted in Podcast
Sponsored By

My seventy-seventh podcast is up. In this show, Carl and I about my family's recent move to Google Apps and Carl considers moving to Live Custom Domains. What are the pros and cons of moving your life into the cloud?

If you have trouble downloading, or your download is slow, do try the torrent with Āµtorrent or another BitTorrent Downloader.

Links from the Show

Migrating a Family to Google Apps from Gmail, Thunderbird, Outlook and others: The Definitive Guide (ruq)
Windows Live Custom Domains Blog (rut)
Google Apps APIs (ruv)
Google Apps (rur)
Windows Live Custom Domains SDK v2 (ruu)
Hanselminutes Forums (ruw)
Windows Live Custom Domains (rus)

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show.

Check out their UI Suite of controls for ASP.NET. It's very hardcore stuff. One of the things I appreciate about Telerik is their commitment to completeness. For example, they have a page about their Right-to-Left support while some vendors have zero support, or don't bother testing. They also are committed to XHTML compliance and publish their roadmap. It's nice when your controls vendor is very transparent.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

DNRTV Screencast - ASP.NET Debugging and Tracing Part 2

August 22, '07 Comments [2] Posted in ASP.NET | Screencasts | Speaking
Sponsored By

Last week Carl and I did another episode of DNRTV. We picked up exactly where we left off last time on ASP.NET Debugging and Tracing. So, I guess this ASP.NET Debugging and Tracing Part 2

As with all my DNRTV episodes rather than planning Carl and I just start talking and see what happens. It seems more genuine that way, to me. We screw around with Symbols and Process Explorer in this episode.

We also look around the ASP.NET Temporary files and take a look at the assemblies that are generated from your ASPX files, then we add a few string literals and see where in the generated code (and control tree) they show up. All in all, I thought it was a pretty decent show.

It's 36 minutes long with a 3 minute advertisement in the middle. I hope you enjoy it.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Installing iTunes 7 on 64-bit Windows Vista

August 16, '07 Comments [22] Posted in Musings
Sponsored By

Administrator CWindowssystem32cmd.exe We're going on a trip tomorrow so I needed to get my iPod setup quickly and sync'ed beforehand. However, I hadn't put iTunes on my new Vista 64-bit system, and I was shocked to see the iTunes installer fail to install saying "cannot find Quicktime." A little file system sniffing solved the problem.

Since both apps are 32-bit apps running on 64-bit Vista, they are each installed to "c:\program files (x86)." Apparently iTunes has hardcoded "c:\program files" so iTunesSetup goes looking for QuickTime in "c:\program files\quicktime" rather that where it really ended up.

So, before I ran iTunesSetup again, I needed to "lie" to the installed by making a directory link to where QuickTime actually got installed.

  • Hit the Start Menu, type cmd.exe and Right Click then choose Run as Administrator.
  • Type
    md "c:\Program Files (x86)\QuickTime"
  • Type
    mklink /d "c:\Program Files\QuickTime" "c:\Program Files (x86)\QuickTime"
    to create a link FROM Program Files\Quicktime to where it really is. Note this is all one line. 
  • Install iTunes by running iTunesSetup.exe and you're all set.

Ridiculous that I should have to do this. Apple really doesn't make it easy on Windows users. Heh, I wonder why not? :)

UPDATE: Nick has a good writeup on this issue with more detail, so check it out!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.