notsotrivial.net

Non-trivial matters of interest to software architects and other like minded geeks.

In a way, I'm grateful for those "I'm a Mac, I'm a PC" ads. It's forced Microsoft to take a hard look at our perception with consumers. It's also forced us to get off our butts and start focusing on innovation. I've highlighted World Wide Telescope ahd Photosynth in past goodie bags. These are very cool innovative applications but aren't necessarily meant for general consumers. Yesterday we released AutoCollage and I think this is one product that everyone who takes pictures will enjoy using. I can see myself using it for presentations as well as slideshows and home videos. It takes a directory of images, identifies those that it finds interesting (faces, high contrast, plus other top secret heuristics) and automatically generates a beautiful collage.

 

 

Give it a try. I think you'll find creating and sharing these collages with your family and friends very rewarding.


While I was on leave with my new baby, Denny Boynton called me out to participate in a Software Development Meme that's been making it's way around the online development community. The current call stack for this meme has grown quite large:

Michael Eaton (post) —> Sarah Dutkiewicz (post) —> Jeff Blankenburg (post) —> Josh Holmes (post) —> Larry Clarkin (post) —> Brian Moore (post) —> Denny Boynton (post) —> me

I've finally put off my response long enough, so here goes...

 

 image

How old were you when you started programming?

I was twelve years old when we moved to Florida and met two brothers down the street (Randy and Gary Chambliss). They were fellow military brats who owned a TRS-80. It was mid-summer and it was so damn hot that we couldn't go outside after 9 am. I hung out at their house almost every day and they taught me to play some of their text based games like Kingdom, Star Trek, and Adventure. They knew enough about the computer and software to set breakpoints, view the source code, and muck with it. That was my first introduction to programming. We spent the better part of three weeks writing our own program to display our names as a scrolling sine graph down the screen. It finally cooled off and we migrated to the outdoors, but I was hooked. I begged my parents to get me a computer and by Christmas we had a Commodore 64 and matching floppy drive. Ironically, the two brothers who introduced me to computers did not go into software development. Last I heard, Randy owned a cabinet making business and Gary was an air-traffic controller.

 

What was your first language?

BASIC - first on the TRS-80 and then on the C-64.

 

What was the first real program you wrote?

The first real program I wrote was a character generator for Dungeons & Dragons in BASIC on the C-64 (yes, I am that much of a dork!). It randomly generated a character's stats and if you didn't like them, you could discard and get a new set. It would then print out a simple character sheet to get you started.

 

What languages have you used since you started programming?

My dabbling in BASIC lead to Pascal, which led to Modula-2 and then Turbo-Pascal with Objects. By then I realized that all the cool programmers were using C, so took a continuing ed class on C and picked up C++ so I could land my first real programming job. During the COM+ days, I migrated from C++ to VB6 so that I could get more work done with less aggravation. Once .NET hit the streets, I immediately quit and found a new position at Bid2Win that called for learning C# and architecting a large scale commercial application. My personal interests in game development have led me to try out a number of scripting and dynamic languages - UnrealScript, LUA, Python, and Ruby.

 

What was your first professional programming gig?

My first professional programming was working at Bisk Education, writing multimedia computer based training software for accountants and lawyers. We quickly jumped onto the Internet and expanded to include delivery of college courses. I'm proud to say that they are one of the largest and best providers of distance education on the Internet.

 

If you knew then what you know now, would you have started programming?

Absolutely. If there's one thing this career has taught me, it's to follow my passions. My passion for developing software has led me on a great adventure.

 

If there is one thing you learned along the way that you would tell new developers, what would it be?

It's all about people! You're not writing software for yourself - you're writing it for others. Despite what your experiences might have been in high school or college, to build something worthwhile you'll have to work with others and ultimately deliver something of value to someone else.

 

What's the most fun you've ever had ... programming?

This is a tough one...I had a lot of fun working with great people at Bisk Education. The atmosphere was very loose and creative and we joked a lot and always had a movie quote to fit the current situation. Bid2Win was my most satisfying experience because of the pressure that comes with delivering a make it or bust commercial product. We had a great team and everyone had a ship it or die mentality. Life is a series of stresses and reliefs. You've got to have both to feel like you accomplished something worthwhile.

 

Who am I Calling Out?

Chris Deweese

Doug Butscher

John Alexander

Muljadi Budiman

Scott Spradlin


With all the planning for Microsoft’s new fiscal year, our event schedule has been off to a slow start but we're finally getting the gears moving. This quarter’s ArcReady talk will be about architecting large scale distributed systems using all the latest technologies. We'll be showing off a great new architecture analysis technique that I think you will benefit from greatly on your projects. It’s some of the best architectural guidance I’ve ever seen come out of Microsoft.

 

Events will be held in 4 cities across Microsoft’s North Central District.  Please join us for one of these free events.

Minneapolis, MN September 16, 2008 9:00am – 11:30 am

Omaha, NB September 18, 2008 9:00am – 11:30 am

Kansas City, MO September 23, 2008 9:00am – 11:30 am

St. Louis, MO September 25, 2008 9:00am – 11:30 am

 

Hope to see you there.


Framework Design Guidelines - Conventions, Idioms, and Patterns for Resusable .NET Libraries by Krzysztof Cwalina and Brad Abrams

This book is the result of an internal effort at Microsoft to share framework design best practices during the development of the .NET 1.0 framework. Krzysztof and Brad were part of a team that conducted API usability studies and reviews of the emerging framework APIs with the development teams doing the work. It began as a word document and review consultations with teams but eventually turned into a series of internal lectures offered to all developers working at Microsoft. That was where I first heard about this effort. The lectures were recorded and for a while made publicly available (they have since been removed). The series ultimately let to the creation of this book, which is jam packed with years of wisdom and anecdotes about good API design. If you work on shared libraries, this book is a must read. P.S. I still keep a dvd with the original lectures in my backpack. Catch me at an event and I'll share.


image This week I've got something special to share with you - an interview with Peter Provost. Peter was formerly a developer and development manager at Microsoft Patterns & Practices. He's currently a Senior Program Manager working on the next version of the Visual Studio Team System Architecture Edition. This team has been doing some amazing new things that I want other Architects to know about. In fact, Peter's recently been seen showing off the new UML modeling capabilities of Architect Edition. Microsoft doing UML? Yes! Finally! I thought it would be great to get in touch with Peter to get to know him better and glean some insight into what's going on with his team.

  

Clint: Can you tell us little about yourself?

Peter: I grew up moving around the world. My dad was in the oil business and we moved every three or four years. By the time I was graduating high school, we were in Denver, Colorado and I knew I wanted to stay in Colorado so I chose CSU in Ft. Collins. College was fun… sometimes too fun… as I tried to figure out what I wanted to study. I’d been programming since I was 10 years old, but didn’t want to mix hobbies and career so I tried a bunch of majors before dropping out and moving to Edmonton for a “time to grow up” break. After a year I returned to the scene of my crime, switched to Comp Sci and graduated in 18 months. After college I spent thirteen years in Denver doing consulting and working in a couple of startups. Along the way I got involved in the Agile Development scene, where I met Jim Newkirk. At an MVP dinner in Seattle, he and Scott Densmore pitched the idea of me joining patterns and practices, and the rest, as they say, is history.

 

Clint: What attracted you to the Visual Studio team?

Peter: I’ve always had an affinity to developer tooling. Early in my career I was that guy who would write a tool the second time I hit a manual problem. I still do that today. Any time I find something that hurts, I’ll do it once, maybe twice, but then I need to make it go away. Visual Studio is the best tool there is for .NET development and when the time came for me to move on from patterns & practices, it was the first place I looked. The Architecture Edition of VSTS attracted me in particular for two reasons. First, the team is great. They really want to be more agile and the culture is very good. Second, and this is a bit controversial in some agile circles, I think there is a lot of opportunity for architectural tooling in agile development. Most agilists run from this idea because they assume that architectural tooling is about Model Driven Development (which they would call Big Design Up Front) but I don’t think that has to be the case. So I’m here to try to help bring that vision to reality.

 

Clint: What can you tell us about the architecture of Visual Studio and/or VSTS?

Peter: I could tell you, but then I’d have to kill you. <grin> Seriously, though, Visual Studio is the biggest project I’ve ever worked on. It is probably one of the biggest projects in the world, behind Windows and Office. A lot of people ask “why does an IDE need to be this big?”, but they forget about all the things VS, VSTS and TFS do: Unmanaged, Managed, Multi-targeting, Refactoring, Web Services, Web/Windows/Mobile/WPF/Silverlight client frameworks, Testing/Static Analysis/Code Coverage/etc, Version Control, Work Item Tracking, Reporting, Office Integration, Office Application Development, etc., etc. The list just goes on and on. And of course, the most important feature in all of VS: Intellicrack. J

As for the architecture of VS and VSTS, it is a modular application. The core is the shell with core services and then almost everything else is a package or an addon that plugs into the shell. All of this is publicly available through the VS SDK. All we do in VSTS is build on that like everyone else does.

 

Clint: What features are you’re working on in Rosario that you think will have the biggest impact?

Peter: I’m working in the VSTS Architecture Edition and I think our whole product is primed to make a big splash when we release Rosario. We’ve already been showing all of our UML support in our CTPs and we’ve also been showing off our Architecture Explorer, which lets you do amazing analysis and discovery of existing solutions and/or binaries. Customers can get a preview of this now in the April 2008 CTP which is available for free download.

 

Clint: What’s your favorite feature in Rosario?

Peter: It is hard to pick a favorite. I really like the Architecture Explorer. I think people are going to find that immensely valuable. I also love all the work we’re doing in the modeling space. People need to be able to discuss and describe their designs, intents and other components in their problem domains and solutions visually, and we’re enabling that.

 

Clint: What should architects be doing now to prepare themselves for Rosario?

Peter: Just keep doing your job and let us know where you feel pain points. We’re excited about what we’re doing right now and so far customer feedback is telling us that we’re going the right direction. But we always need to hear from the people who use our products so we can make them better.

 

Clint: Where do you see the Architect edition headed in future releases?

Peter: We will continue to balance UML for logical and conceptual modeling and DSL based approaches for physical modeling and design. Post-Rosario I can’t really say what we’ll be doing, because I’m not sure we’ve decided yet. :)

 

Clint: Thanks again, Peter for taking the time to give us a glimpse into what's going on back in Redmond.

 

You can learn more about Peter through his site and blog at Geek Noise...Rants, rambles, news and notes.