February 2007 - Posts

http://www.devscovery.com/
Track sessions will be instructed by industry experts including, Jeff Prosise, Jeffrey Richter, John Robbins, Jason Beres and others.
The sessions will include in-depth coverage of topics like ASP.NET AJAX, WPF, WPF/e, WCF, WF, security, the Framework, Debugging and much more!
Devscovery is producing conferences in four different cities in 2007 – Denver, New York, Redmond and Silicon Valley – with keynote speakers you won’t want to miss!
Denver (April 17-19) – Jeff Prosise
New York (May 9-11) – Charles Petzold
Redmond (August 14-16) – Mark Russinovich
Silicon Valley (October 15-17) – John Robbins
http://www.devscovery.com/
Dan is in Washington DC for a few days to attend an in-depth training seminar about SharePoint Search. I only just missed getting to go on this trip b/c I am already out of the office for 2 weeks for a conference (and vacation) of my own starting next week.
Dan gets to the airport and makes it up to DC from Atlanta in a mere 80 minutes. Very quick. A LONG cab ride later ($55 mind you) and he's deposited at his bright, cheery, snow-covered hotel. At least, that's what should be there. Instead he's greeted by the site of a dark, hulking behemoth of a snow covered building. Dark and hulking because the power is out in a six block radius. So Dan's currently sitting in the bar, illuminated by glow sticks and the light of his laptop screen (only 40% left in the battery). He's using his cellphone as a modem to tell me all of this. And to force me to look up the local power company and whatnot.
Anyway - here's Dan's predicament

The Atlanta .NET user group met Monday, Feb 26th to talk about the recently release Microsoft Robotics Studio and some ASP.NET 2.0 best practices. These two topics were clearly a huge draw as we had over 75 people in attendance.
The first presentation about the Robotics Studio had someone from RoboticsConnection.com presenting their company's serial IO board and downloadable .NET assembly which allows control of a robot with .NET code. The robots in attendance were simple tracked vehicles, carrying a variety of sensors and even a moveable camera. The first code demo showed us how simple it was to get the logic board to report distance objects were from the IR sensor. We got a look at the Altair-like line sensor, we looked at the web interface to the running robotics services, and we looked at equipping the robot with a laser cannon to fufill the Terminator prophecy. When will we learn that armed, self replicating robots are not a good idea!?! Well, in case you haven't learned your lesson, you can purchase a tank-like tracked robot and logic board + some sensors for something like $300 or so.
Eric Engler was up next, talking to us about how to design a web site. Web sites, in this context, are collections of pages with a common data layer, a common code/deployment model, some common UI elements, some common plumbing, and more. Starting with the data layer, Eric discussed the differences between a traditional ntier architecture and the ORM approach. Eric displayed favoritism toward the ORM approach and the Olymars tool specifically. Next, in the code/deployment model part of the talk Eric discussed the ASP.Net 2.0 features such as the App_Code folder and the ability to deploy single files or web projects (with VS2k5 SP1). In the UI model Eric discussed styles, skins, javascript, master pages, etc. The AJAX portion of the presentation has actually been deferred to the next Atlanta Cutting Edge meeting, on March 5th. In the security model portion of the presentation, Eric gave a high level discussion about user authorization, authentication, least privilege, and data protection for things like connection strings, databases, folders, and source code. In the plumbing section of the presentation, we learned about the ASP.NET Providers and base pages. We also learned about how the global.asax can help us catch errors in a catch-all type of function. Interested? Check out the post at http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx. Finally we talked about some deployment considerations like scrubbing your database and making sure that debug=true is NOT in the web.config.
The presentation was based on Eric's work as a technical editor on a new Wrox book - ASP.NET 2.0 Website Programming: Problem - Design - Solution.
To download Eric's presentation (everything is in the slides) go to www.EricEngler.com/Presentations.aspx
The Atlanta Microsoft Professionals group has been through more than one change in its history. It started life as the Atlanta.NET Mobility group, but was probably before its time. Next came the AMP name and the SharePoint 1, 2, 3! training sessions. The 18 hours worth of presentations and hands on labs were incredibly well receivied, but the creation of that material took a huge effort from those involved and we're probably not going to repeat that for free. It really was a lot of work.
However, we still believe that we can fill a need in the Atlanta .NET community with our original charter - a group focusing on professional Microsoft toolkits. This allows us to explore beyond development topics. To that end, our new focus is SharePoint and the Information Worker's toolkit. This will certainly include the various flavors of SharePoint 2007 (WSS, OSS Standard and Enterprise, Search, etc) as well as Office 2007 and even some third party products.
Last night was the first of these meetings and we split the meeting in half along the developer/information worker line. The first part of the meeting was a developer focused topic and Dan Attis presented Feature development to the group. At the highest level, a feature is a wrapper around a set of functionality which can be individually enabled or disabled inside of a SharePoint installation. Features can include other features and can be scoped at various points along the Web farm to Site heirarchy. Features are composed of at least an XML file and can include resource files and expanded XML definitions. For more information, check out Dan's presentation which will be online at DevCow.com sometime in the near future. If you're dealing with features on a regular basis, you might find Todd Baginski's little Feature Manager tool a helpful friend.
The second presentation of the evening was given by yours truly (that's Matt Ranlett for those of you who aren't paying attention). I took the power user/information worker slant and presented task management to the group. I started off by showing the out of the box templates available for tracking tasks, issues, and project tasks (Gantt view). We looked at the available KPIs for monitoring the task lists and the out of the box Three-State Workflow for automating the task.
My intention was to follow up this out of the box presentation with a demonstration of Ascentn's AgilePoint but I couldn't remember the password on the virtual PC image and had to simply explain about Business Process Management and AgilePoint's super slick Visio UI. I plan to come back to this tool at some point in the future as I believe that this kind of tool will become an invaluable part of streamlining business processes in the future.
The presentations were both well received by the audience, bringing out a lot of questions and general comments from the group. One thing we heard over and over from the audience was that there appears to be a gap in the available online and printed information about SharePoint. There is plenty of high level out of the box types of discussions around and there are plenty of deep dives into the development of a particular niche of SharePoint, but there is no business value overview. What people seem to be asking for is the 10 minute or less pitch that they can take to their management teams and say, "We should buy SharePoint 2007 because...". This is not necessarily an easy space to fill, but we're going to work together to identify and fill the gaps a little bit at a time. To that end, we're hosting an open forum where anyone who is interested can post their thoughts. This is where you can help steer the presentation topics toward what you'd like to see, post general comments, and give feedback to the group's leaders.
The Information Worker and SharePoint 2007 are broad topic areas and we can easily spend over a year covering this material. If you have particular areas you'd like to see, or if you would like to present some of the material yourself, please get in touch with us either via the forum or by e-mail. We would really love feedback from you. Please let us know if there is anything we can do to help you learn more. However, having said that, please keep in mind that this is a volunteer effort and that asking us every detail of how to implement a technology will likely come with a bill! ;-)
If you are interested in presenting material on SharePoint 2007, Office 2007, or any Information Worker toolkit, please let us know. If you do not volunteer to give a presentation, you will have no choice but to listen to us give the presentations.
If you are looking to sponsor the user group, here is what we can offer you. In exchange for approximately $150 worth of pizza, you get 15 minutes on stage to present your company's product and marketing message. You also get your logo on our event's web page and mention in the DevCow blog covering the meeting. Finally, we will provide all of the attendees with any printed material you wish to hand out. Thank you for your interest in the group and it is my genuine hope that your sponsorship pays off for you in real dollars as well as general goodwill.

This is the house Kim and I are about to buy.
Ain't Virtual Earth cool?
I had a pretty good one.
Tuesday I had a bunch of roses delivered to Kim's office, mostly so that all of her co-workers would be jealous of how awesome I am. I attached a funny card and generally felt pretty good about the gift, especially since it was the first time I respected our mutually agreed upon spending limit.
Wednesday (and part of Tuesday night) I prepared the following menu with Kim's help. The recipies all came from the Food Network's website and all are from the kitchen of Emeril Lagasse:
Appetizer - herbed flan with caviar served with homemade croustinis. Kim wrinkled her nose at the sound of this one but she tried it and to her surprise she loved it. It came out really well and was very tasty. Too much for just the two of us, it would really work for four people.
Salad - baby spinach, red onion, and hearts of palm with citirus and a homemade citirus dressing (Kim prepared this). This recipie will definitely be repeated. For our tastes, the citirus dressing was a bit too tart so next time we will half the lemon juice and replace it with more orange juice.
Entree - grilled lobster tail with a lemon tarragon sauce. This tasted awesome and was actually really easy to do. My only complaint with lobster in general is that it doesn't stay hot on the plate off the grill so timing is important
Dessert - A homemade poundcake, soaked in amaretto liquor and layered with milk and white chocolate. This was incredibly rich and tasted amazing. There was a lot of prep to this one, starting with baking a pound cake. I used bittersweet chocolate and felt that the cake was just right - semisweet chocolate would have made it too sweet.
In other big news, just before dinner Kim and I found out that our offer had been accepted. We will be moving to Sandy Springs, from a 2 bedroom 2.5 bath cluster home into a 4 bedroom, 2.5 bath house with a full basement. We're both very excited about this and are looking forward to spending all of our hard earned savings to buy, furnish, and heat the new monstrosity of a house!
Also - for VDay, Kim gave me the new Killer's CD (great band) and the Rainbow Six Vegas game for the Xbox. She loves me enough to get me stuff that prevents us from being together!
Both of us took the "Which 2007 Office Application Are You?" and it turns out Matt and I (Brendon) are both Outlook 2007!
What are you?
http://www.ontheofficecouch.com/

You are Outlook 2007!
Connecting with people is the key to your happiness and success. Your outgoing, action-oriented personality is something everyone who knows you can count on. You have the information at your fingertips - whether it is a date or a keyword, you can always come up with it. You are the social chairperson among your friends, and people seek you out for the party details, the latest hot spot or celebrity gossip. Your color-coded to-do lists are legendary, and your calendars are masterpieces. You make it look so easy to manage multiple priorities; multi-tasking could be your middle name. With the new Microsoft Office Outlook 2007, it will be easy to manage and share all your vital information from one place. With your positive outlook, you will be thrilled to know that others can enjoy the same increased collaboration and functionality. Your favorite new feature Office 2007 will no doubt be the RSS reader in Outlook 2007.
Try a free 60-day trial of the 2007 Office system by visiting TryMicrosoftOffice.com.
So Brendon and I are using Groove 2007 to collaborate on potential magazine articles and long blog post ideas. Groove works over a Napster-like P2P network to synch files over the web and across firewalls. That's pretty cool. You can also have domain specific discussions that are threaded like newsgroups.
One problem - on my local machine I like to use OneNote. I like the free-form ability the program gives me to brainstorm, record links, web snippets, and even audio files with text markers. OneNote 2007 is amazing and I'm learning more and more how it fits how I like to work. The problem is that it doesn't work all that well with Groove. Groove likes to initiate a synchronization when you save a document. OneNote has no save feature, so Groove prompts to save only when OneNote is closed. Still, we're able to put the OneNote notebook into Groove and synch beautifully, barring the problem I'm going to describe below.
The other problem I'm experiencing is that I don't have continuous connectivity to the Groove server. I'm at work at a client site, behind a firewall. Groove works over HTTP so I'd expect it to work through their firewalls. It does, but only occasionally. I'll get about 3 or 4 windows per day where I'm online and synchronizing, but beyond that I'm offline. No idea why this happens. The end result is that I'm at risk for file collisions.
A collision (I'm probably using the wrong term here and it's only my own personal apathy that is preventing me from finding the right word) happens when 2 people have modified the same file before a synchronization takes place. Groove recognizes this and rather than overwriting some changes, it creates a second copy of the file with one set of changes and the other set of changes are persisted into the original file. In a larger environment, I can see the possibility of a dozen or more files appearing.
Random problem with a relatively innovative discovery method.
I am working with an app that sends and receives buckets of data via web services. In one particular case, I was receiving a couple of purchase orders' worth of details and attempting to turn the XML into a DataSet. The DataSet contains 2 tables tied by a relationship which we need later on in the app to improve performance. Basically, the error I was getting was a duplicate key error inside of the dataset when I tried to apply the relationship. So, how to find the problem...?
First I used Fiddler. This nice little tool grabbed the XML being returned from the web service call and allowed me to save it as a text file. Internet Explorer was able to see the XML with no trouble, but since there were over a hundred PO detail lines (which translates to way too many lines to try to read in IE).
Fiddler -
XMLResponse -
Enter Excel. Using the Export to Excel function from IE, I was able to construct a nice little table in Excel. Then, using the easier than ever PivotTable functionality, I was able to spot the problem record in seconds...
Excel Table -
Excel PivotTable -
Now that I knew which order was causing the problem, it was pretty simple to execute the stored proc in the database and find out that the pricing table was messed up - resulting in 2 records returned for one of the items. Fix the data, fix the problem.