The Jacksonville Code Camp seemed to be a great success! ConsulTech rocks for setting all speakers & volunteers up with nice embroidered shirts. Thanks also to Bank of America for letting us use their facilities. Also, thanks to Joe Healy & Russ Fustino from Microsoft’s Gulf States Tampa office, David Strommer (JAXDUG President), and a very important thanks to Dennis Bottjer who organized the whole thing. If we had snags, I didn't notice them. Everything seemed to run very smoothly. Sure, we learned a few things for Jacksonville Code Camp 2006, but don't you do that every time?
My MCMS session was a bit rushed since we started a little late, due to a run over of the opening keynote. As Angus so nicely jabbed the night before, I can't call what I did a “presentation” because I only had 6-8 people there… it was more of a “coffee”. I did get one pretty cool thing out of it: I had been looking for other people in Florida who were doing MCMS development. I come to find out that the company right next door to where I work is using it! Mike, someone I worked with briefly in a former life, is working next door and using MCMS. Thanks for coming to my session Mike, and please email me! Let's do lunch!
Brian Knight of SQLServerCentral.com demo of SQL Server 2005 Integration Services was a good skim the surface, crash course on SSIS. This replacement for DTS is well implemented. Within the course of Brian’s session he showed how you enumerate through a collection of files in a directory and load them into tables, complete with some computational logic, lookup, validation, auditing, and error trapping.
The highlight session was Tim Walton’s (of Microsoft Premier Support) CSI.NET session where he did an incredible job discussing processes, threads, call stacks, heap, resources, and, most importantly, how you can take memory dump files using WinDbg to profile your apps… not just debug them! I learned a TON of stuff in Tim’s session… i can’t express how much of an eye opener it was. He showed how you can dive into a process and see exactly what it’s doing what was stored in memory when the dump was taken. He was so good we begged him to do another session later in the day. Two stories he told in his session demonstrated the power of using dump files:
- An ecommerce company called with a problem: every month their ecommerce website would spike the CPU 100% and they’d have to reboot the box. After providing their dump file and code symbols, Tim was able to say “the problem is in the checkout process of your shopping cart”. Without ever seeing the code or the application, Tim was able to (1) identify that the problem was occurred when a sort routine was called (2) that there were over 2,000 items in the specific cart when the sort was called (the sort was very inefficient and was causing the spike), and (3) that a specific IP was doing it. A reverse DNS lookup identified who it was and they realized that this company had a bot that was adding every item of the ecommerce company’s website to a cart, sorting it, and performing a screen scrape. They then took this data extracted the product & price info, and were using it to display price comparisons! Tell me that isn’t cool!!!
- Tim had a component that was using the ResourceManager. He built a single ASPX page and then used ACT to stress that page. When the results showed he was handling about 50 requests per second, he knew something was up. So he attached VS2005’s debugger and got dump of the memory. Using WinDbg to look at the dump file, with the code symbols, he was able to identify that the problems were with the ResourceManager. He then changed his code to create one instance of the ResourceManager, cache it, and use it throughout his app. Next test: 250 requests per second! Sure… an obvious fix, but it was a demonstration of how you can use dump files to really determine bottlenecks in your app.
Tim’s two sessions just blew me away. I hope to have the chance to watch another of his sessions. He’s one of those guys that has so much up in his head that you wished he’d write a book on the subject or start blogging!
Two staffing consultants and two development managers from the MSN team in Redmond were also on hand to present two sessions about a day in the life of an MSN developer. The main reason they came was to get the word out that they are hiring 1,100 – 1,300 developers in 2006 and user community events was one of the ways they wanted to approach the community. I think it’s a great idea as Code Camps, held on a Saturday, will draw people with passion as they aren’t your standard 9–5 workers… they came on their own time! Sounds to me as if Microsoft has decided not to let Google be the first one out and be seen as a leader… they want to be seen as a leader! The Jacksonville Code Camp was the first event on their stop!
I’ve uploaded a few short videos of some sessions, as well as a few videos from the closing keynote. Enjoy!
- Brian Knight’s Real World SQL Server 2005 SSIS session, followed by Brian and Bayer White’s Hacking SQL Server session
- Tim Walton’s CSI.NET - Explore troubleshooting and performance tuning .NET applications using snapshot profilers and WINDBG. Useful for both Win32 and .NET troubleshooting! session
- Closing keynote