What’s that picture?

In case you were wondering what the picture is in the current banner on this blog, that’s me on a hike in a semi-remote region of Western India (Maharashtra).  Outside of Mumbai, there is a hilltop community named Matheran that has many hiking trails with stunning views of the surrounding area.  Where I am standing it is a several hundred foot drop straight down to a rocky slope below (notice the lack of guard-rails)…

Good Link Summary

I found a fellow Houston developer that posts a great weekly link summary. Rhonda, thanks for the mention, and I hope to meet you at the next .NET User’s Group!


Microsoft IT Advisory Council

So I get a lot of email from Microsoft, which is mostly by my own doing since I like to get the download notifications, my company is a gold partner, etc. Recently I received an email inviting me to fill out an application to join the Microsoft IT Advisory Council.   A while later I learned that I was accepted and have been spending some time browsing the site and the forums provided for discussions.  At first, I thought is was just another means to pump free demographic data out of me, but it does appear to be legit. Apparently there are small meetings to discuss topics relevant to IT professionals.  Here is the blurb from the website describing the concept.

What is the IT Advisory Council?

The IT Advisory Council is a select group of IT Professionals and Developers, which purpose is to share your views, ideas and opinions, helping Microsoft shape future initiatives. As a member, you will play an integral part in providing us with feedback on Microsoft customer offerings, licensing, support, marketing materials and community initiatives.

Members will communicate with us via an online portal and a program of face-to-face and online events. Each event is currently limited to 12 members to ensure rich discussion and you will be eligible to participate based on a point-system on our portal. Membership also involves completing a monthly online ‘task’, which can be completing a mini-survey or sharing your experiences on our portal forums and blogs to help Microsoft understand what it’s like to be in your shoes.

Presently, there are more than 200 members in New York, Chicago, Toronto and the UK, and we are currently opening up further membership both in current locations and worldwide. Do you want to become a Council Member? Register here.

Anyone have any knowledge or experience with this? I am going to check it out and see what kind of resources it may provide and hopefully make some more mutually beneficial connections in the software community.

VSS and CruiseControl.NET

Recently, a respected member of the .NET community asked for some “gotchas” when using SourceSafe with CruiseControl.NET. At first, I was thinking, “There really aren’t any. It is working fine for us” however when thinking back on the setup of the current infrastructure I recall there was some tweaking necessary to get things rolling.

DISCLAIMER: I would like to preface any content of this article by saying that I am by no means a VSS fan. It is free, it is just good enough, and it is already in place. I already know what tool I want to switch to when the time is right, but for today I work in a VSS shop.

So, if you are going to setup CCNet with SourceSafe, here are some things to keep in mind. With respect to things to stay away from, I experienced some issues when I tried to monitor a large number of projects. You also may experience VSS timeouts if the project folder you point to has too many subfolders/files. In some cases, the VSS history command to see if anything had changed since the last build took longer than the preset timeout (I believe it is 30 seconds)!!! So it would help to be selective in the points you monitor within VSS. If you keep your solutions/projects to smaller, more manageable sets of code you’ll probably be more successful.

One thing you could try is to time the history commands from a command line. When using VSS, CCNet essentially issues a command like the following:

SS.EXE history $/Devl/Products/XYZ/Common/2.0/Batch -R -Vd12/5/2007;5:01a~12/4/2007;1:11p -YBuildUser, -I-Y

By executing this manually you can get a feel for how long it will take to execute the command. The CCNet logs will show if you experienced a timeout:

2007-12-05 05:04:20,165 [Accounting Batch 2.0:WARN] Process timed out: C:\Program Files\Microsoft Visual SourceSafe\SS.EXE history $/Devl/Products/XYZ/Common/2.0/Batch -R -Vd12/5/2007;5:01a~12/4/2007;1:11p -YBuildUser, -I-Y.  Process id: 3928.  This process will now be killed.
2007-12-05 05:04:22,994 [Accounting Batch 2.0:WARN] The process has been killed: 3928
2007-12-05 05:04:23,040 [Accounting Batch 2.0:ERROR] Exception: Source control operation has timed out.

Despite some pain getting the right level of monitoring, it is now a useful tool. I would definitely encourage use of the CCTray app for all developers. This seems to be the easiest way to communicate a breakage. You can also use the web dashboard to show the history of what has happened:
CCNet Web Dashboard

Houston TechFest 2007 — Is this thing on?

The Houston TechFest has come and gone in a flurry of activity that I would say was widely regarded as a success. There were, of course, a few v1.0 type glitches as to be expected from an inaugural event as large as this one. Nonetheless, for an event of this size to be coordinated so well the first time is a big accomplishment, so kudos to Michael Steinberg and the others from the Houston .NET User Group (HDNUG) for putting this show together.

Lobby AreaThe 7 track extravaganza had about 500 participants and covered some of the most talked about topics in technology today including DotNetNuke, LINQ, WF, TFS, Silverlight, WCF and Acropolis. The gathering was also opened up to a more diverse audience with an entire track dedicated to Java based content. I can’t speak for any of the sessions that I missed, but here are my thoughts on the sessions I did attend:

Keynote on Silverlight

Brad Abrams is a terrific speaker, and the upbeat Microsoft promotional video had the crowd going from the very beginning. Silverlight shows well, and a charismatic delivery like the one provided by Brad make this new presentation technology very intriguing. The 10 year blue badge alternated demos between his Mac book and PC to lay to rest OS compatibility issues. He even used FireFox on the PC 🙂 Big RoomBrad posted a great summary that has interactive demos of the content on his blog. Be sure to check out the Silverlight airlines demo — how friggin’ cool would it be to book flights this way!

SQL Server 2005 Performance Dashboard

Jeremy Gaige from Idera walked us through the SQL Server 2005 Performance Dashboard that comes free in the current version of Microsoft’s RDMBS. This tool is pretty sweet, and I had cursory exposure to it going into the session. Unfortunately, Jeremy didn’t have his machine configured correctly to do the demo. I found this odd as he knew that he was doing a demo on this technology and it didn’t sound like a last minute problem. Idera had enough time to set up a booth and point out why their database tools were better than the free options that came with SQL Server, but they didn’t have time to help people understand what they had signed up for. Despite the delivery issues, Jeremy knew his stuff and had some great slides that helped me to see more about what is offered out of the box.

Exploring .NET 3.0 Workflow Foundation (WF)

At the speakers’ meet and greet dinner Friday night, I got to spend some time with HDNUG webmaster and experienced technologist John Ebeling. Although the live band at the Armadillo Palace was blasting Texas country music in our ears, I was able to learn that John has a wide range of experience in delivering software. This was helpful in the second session as I had to imagine what the presentation would have been like without technical difficulties. John ended up having had slides, but no demo. This was 2 in a row! Did I just pick the wrong sessions or were there similar issues across the board? John did an excellent job of covering for the glitch, and his ability to deliver the presentation without having a display on his machine showed his level of comfort with the subject matter. Afterward, there was a lengthy, but cozy Q&A session on the technology. Past project compadres Meng Lan and Phani Potturu joined me in picking John’s brain during the lunch break.

ORM and NHibernate

I was expecting good things from Ben Scheirman’s Object Relational Mapping (ORM) session as I had seen a terrific overview of advanced CSS and Javascript that he delivered at the HDNUG meeting on 6/14. Not only that, but Ben explained that in the morning session he had gracefully recovered from yet another technical glitch in the form of a projector failure. Of course, this was human induced as he was delivering to a packed room of about 100 and somebody pulled the power cord out of the socket. Prior to this NHibernate talk, I had heard of the tool on various podcasts such as Hanselminutes and .NET Rocks, but it took Ben’s expertise to understand the strength of this object relational mapper. A consistent example of a blogging application was carried through the demo to describe the various types of relationships between entities, how they are mapped, special considerations due to impedance mismatch, etc. Ben did a bang-up job of delivering the content, and to my relief there was much more demo than powerpoint. Ben showed a number of different ways to interact with the DB without writing SQL, and had a number of NUnit tests that were run to show how the coding approach supports a TDD methodology (Ben is a huge TDD proponent). Some common gotchas such as proper handling of the Equals override were stressed so that experimenters like myself didn’t end up struggling with some of the problem areas of NHibernate. I plan to try it out in rebuilding OurNextGame.com as it is still using classic ASP and the site seems like a perfect candidate for this technology. Be sure to check out Ben’s account of the TechFest.

Microsoft Windows Communication Foundation (WCF)

Just after lunch, I got to meet David Walker whom I was planning on listening to during the 2:45pm session on WCF. I am currently stepping through Michele Leroux Bustamante’s book on the topic, and there are many opportunities for me to use WCF in my day job. David was very modest in noting that he is the organizer of the Tulsa TechFest, which was spoken highly of throughout the geek community. David’s presentation was very professional, and had the right mix of .ppt and demo content. He showed the simplicity in creating WCF services, and pointed out that upgrading your existing .asmx services would be trivial in most cases. I am sure we will see more great stuff from David as he is now a Microsoft MVP.

All Builds Are Good with Continuous Integration

And finally we have my 75 minute primer on how to automate your build, test, and deployment processes with continuous integration. It was more work than I thought to put together the presentation content since everything needed to be installed locally. Small RoomThe discussion of CruiseControl.NET, NAnt, and NUnit walked the group through the tools describing how each can be gradually added to a technical environment to increase stability, decrease risk, and eventually provide software that has fewer bugs in it. The audience participation was great, and I appreciated the thoughts and questions people offered. Most of the group had not implemented any type of CI on their project, and we even had one guy who was still trying to convince his boss that source control is a good thing! Wrap-up comments included a good one that Microsoft’s Team Foundation Server provides a nice alternative to the open-source CI stack (Insert clever acronym like LAMP, WIMP, REST, etc here). Not having any experience with TFS, I can not say whether it is better or worse, but I do know that you can’t beat the price for the solutions I presented 🙂

See the Continuous Integration dedicated page of this blog for links to resources and the slides.

It was great to meet so many smart people who have such a passion for software development. If you attended the Houston TechFest, please leave a comment or link to another post to let me know what you thought.

Dinner with Brad Abrams

Last night I attended an event that Chris Koenig organized for all of the speakers at the 1st annual Houston TechFest.  We met up at the Armadillo Palace (Goode Company’s bar) to meet and exchange thoughts and ideas about the conference.  It was great to meet Brad, who was been a key contibuter to the success of the .NET framework in his 10+ years with Microsoft.

It was great to be able to meet the other speakers, as the event itself doesn’t really facilitate this kind of interaction since everyone is speaking and/or preparing.  Kudos to Chris and those who helped him in organizing this event.  I hope this tradition continues in future years of the TechFest.

Google Developer Podcast

I recently stumbled across a great new podcast that the Java Posse started putting out in June. I wasn’t familiar with the group, but it is a group of people from Googlespace (I am guessing they develop in Java 🙂 ) that are seasoned podcasters and have now started one to communicate the latest about Google tools and technologies. Check out the Google Developer Podcast to get a taste of this new tech resource.

Hopefully you are aware that Google is much more than just search and maps. The company has revolutionized the Internet and the way the world thinks about technology, stock prices, and corporate philosophy. Having a resource to learn about new things such as the offline enabler Google Gears provides a great service to the development community.

My personal feeling is that learning about new languages, tools, methodologies, etc. is the best way to become a better developer or architect. If you only delve deeper and deeper into .NET, you are starving the creative side of you as a technologist. Seeing other approaches to building software can spark new ideas and ultimately make you a much better citizen in the software community.

So take a moment to check out the podcast and submit your comments in the forums at http://groups.google.com/group/google-developer-podcast. I just made sure they were planning to continue podcasting as it has been 3 weeks since the last episode. If they know people are eating up the content, they’ll be much more likely to create some more good stuff.