Ruminations of idle rants and ramblings of a code monkey

Presentation from North HDNUG Meeting

Community | User Groups
It’s a long ride out there but it was good to get back to the North Houston .NET User’s Group and see everybody on that side of town. Here’s my slide deck from the meeting last night … Hyper-V for Developers.

Houston TechFest

Code Sample | Community | Events
Wow … another year, another Houston TechFest is over. It was absolutely awesome, once again … Mike Steinberg has really built this into one heck of an event. It was good to see such a HUGE turnout of techies for a great day of learning and networking. It was especially exciting to talk with some of the kids … future programmers … who were also in attendance! Here’s the links to my sessions: Introducing StreamInsight 2.1. Back to Basics: .NET Essentials Thanks to everyone who came and especially those that showed up at my sessions to hear me ramble.

SQL Saturday Baton Rouge Presentations

Code Sample | Community | Events
It was absolutely awesome to be back in Baton Rouge for Sql Saturday. I do miss going out there … used to be I was out there regularly but now – well, not so much. I did already post them on the Sql Saturday site but for anyone else that’s interested, I’m posting them here. The first is not a new one but always a popular one … Back to Basics: .NET Essentials That You May Have Forgotten. I’ll also be doing this one at Houston TechFest in September. The other one is new: StreamInsight In Action: Real-Time Web Monitoring. This was inspired by a project that I was recently on where we were doing performance analysis and testing. Here was the challenge … we needed to know exactly which pages were executing (and what some of the form post parameters were) when we had spikes in various performance counters. Unfortunately, load testing tools won’t give you this level of detail. And trying to synchronize web logs and perfmon logs is an exercise in futility. And that’s where StreamInsight comes in … since we can take multiple sources of data and synchronize them in time, it’s actually pretty easy to do something like this in StreamInsight. And that’s just the tip of the iceberg; once you start, there’s a lot of other things that you can do as well. For example, if you are analyzing web farm performance, you can get early warning if one of the servers in the farm is starting to “go off the reservation”. Or if your servers are starting to perform poorly or are just beginning to get over-capacity. It’s all about enabling you to be more proactive in managing and operating your web site(s) rather than waiting for uncomfortable emails or calls. This also has a little WinForms/Grid sink so you can see (exactly) the different events as they are output.

Baton Rouge SQL Saturday/Tech Day 2013

Community | Events
Once again, I’ll be presenting in Baton Rouge for their Tech Day so I’m busting my butt (actually, keyboard) building the demos and preparing. I’ll be doing two presentations: Back to Basics: .NET Essentials You May Have Forgotten: I’ve done this one before and it’s been pretty popular and well received. I review a lot of the fundamentals of .NET, the CLR and how it all works … you know, the icky plumbing stuff. It goes over the type system, threading, disposal and a whole bunch more. I built this after doing a lot of tech screens of relatively experienced folks but who didn’t have a good grasp of these fundamentals. When talking about this to other folks, I found that I wasn’t the only one that was running across this. While it’s a testament to the maturity and solidity of the .NET platform that developers can do a lot of really great work without really knowing all of the plumbing, I still (strongly) believe that understanding the underpinnings is vital. Microsoft – and most others – are focused on the new, cool shiny things that are coming out on .NET and no one’s really talking about reviewing the fundamentals very much these days. StreamInsight in Action: Monitoring Website Performance in Real Time: Yeah, you had to know that StreamInsight would be in there. This is a brand-new presentation that I’m currently building using the StreamInsight.Foundation stuff that’s been published on this blog – so it’ll be my first presentation based on this work. In the process, I’ve found some warts (and fixed them) that will be rolled back in and discussed on the blog after I get done with the presentation. I’ll be focusing on different StreamInsight queries and techniques that allow you to get real-time analytics of site performance, slow pages, navigational analysis and more. By the end of it, I’ll also be integrating performance counter data into the analytics so you can also determine what pages were running when, say, requests queued or CPU utilization spiked.

Houston TechFest Sessions

Community | StreamInsight | .NET Stuff | User Groups
Houston TechFest is tomorrow at the Reliant Center. And, of course, I will be speaking. This year, I am doing two sessions: Back to Basics: .NET Essentials You May Have Forgotten (3:40 PM – 4:40 PM) Now that the .NET Framework has been out for 10 years and so many tools are available to make things easier, many developers seem to have forgotten some of the core principles of .NET. In this presentation, I'll review the fundamentals of the .NET Framework and what makes all of that magic happen. From the CLR to IL to memory management and garbage collection, we'll touch on these core concepts that every developer should know. I originally did this presentation at HDNUG and it was very well received – better than I had thought it would be. However, because the timeframe is a bit more limited at TechFest vs. HDNUG, I’ll need to pare this down a little bit so I don’t go over. Introducing StreamInsight 2.1 (4:50 PM – 5:50 PM) StreamInsight provides real-time analytics on large volumes of data with a response time measured in milliseconds, bringing a new level of capabilities to the Sql Server platform. This session will provide an overview of StreamInsight, its capabilities and use cases. It will also provide details on StreamInsight 2.1, what's been added and how it makes your real-time applications easier and more robust. I originally delivered this at Sql Saturday in Baton Rouge. I’ve tweaked and honed it a bit. Some will be familiar to my other StreamInsight intro presentations – how it works, etc. There are some updates on more use cases that we’ve seen “out in the wild” in the past year or so. StreamInsight is coming into its own now too … we are seeing more and more interest and adoption as folks get a better understanding of where it can add to their business. I hope to see you there!

Speaking at Sql Saturday in Baton Rouge

Community | User Groups | StreamInsight
Next Saturday, August 4th, I will be speaking at Sql Saturday #150 in Baton Rouge. As usual, I will be talking about StreamInsight. In this case, I’ll be talking about StreamInsight 2.1 and the new adapter model based on Observables and the Reactive Extensions. I hope to see you there! In other notes, I know I’ve been bad about blogging lately. I also know that I’ve not kept up to my intended schedule. I do have a lot of stuff queued up to write about and I’m working on the first one. I’m planning a series of posts that will build on each other and exploring several different topics with StreamInsight. I’m not going to spoil the surprise though … you’ll have to come back to read them but I do promise that they will be good, in-depth articles that detail pieces of a real-world architecture of a StreamInsight application.

Baton Rouge Sql Saturday Content

Code Sample | Community | Events | StreamInsight
I’ve just posted this to the SQL Saturday web site. All of the content that was presented is there, including the PowerPoint and the code. There’s quite a bit of stuff in the code that we simply didn’t have time to show. There are two text files in there with several different query patterns that you can copy and paste into place. This sample does require StreamInsight 1.2, so make sure that you have at least the evaluation version installed.

Houston TechFest 2010 Sessions

Community | Events | TFS 2010 | User Groups
It’s almost time for TechFest again … it’s amazing how quickly the time flies! It’s seems like only yesterday that I told Michael what my sessions would be, thinking, of course, that I’d have plenty of time to do them. No, it wasn’t yesterday either – it was a few months ago. But … I’m just now starting to do the presentations. While there is a blurb about the sessions on the TechFest site, I also wanted to post them here – with some more information. Customizing TFS Process Template – Level 300 Or maybe it’s level 400. This is not going to be your every day talk about customizing process templates; there is plenty of that out there. While I may mention (and even, very briefly, show) the TFS Process Template Editor Power Tool, that’s not what I’m going to focus on. I’ll be digging into the core of what makes these templates work and how they are configured behind the scenes. This means that we’ll be playing in the XML behind the templates. We will look – deeply – at how the templates are constructed and where all of the pieces are. I’ll also share some code utilities that I’ve developed to help create process templates from an existing Team Project; specifically, I’ll show code to export work items and work item queries. I’ll also mention how to do custom plugins for the Project Creation Wizard, allowing you to really “kick it up a notch!” Team Foundation Build 2010 With Team Foundation Server 2010 Build Server, the build services got a complete redesign, moving away from an MSBuild-based build process to a more flexible and extensible build process based on Windows Workflow Foundation 4.0. I will talk about TFS build, the architecture and how to configure build controllers and agents. From there, I’ll be digging into the Build Process Templates, how to customize and extend them with out-of-the-box activities as well as custom activities, as well as some tips and tricks about how to manage extensions and your build environment. Finally, I’ll talk about the upgrade path from TFS 2005/2008 builds (yes, there is one) and some of the gotchas that you may experience on the way. I’ve not yet decided which activity to use as an example, but I’m leaning towards using the one that I wrote to change the build workspace as a part of the process. Or the zip activity. Or both? We’ll see. Keep in mind … this is the kind of stuff that I do all day, every day, day in and day out. Those of you who know me also know that I’m not one to settle for touching on the surface but get deep into the technical aspects … these sessions will be no different. They will not be your typical TFS sessions. There will be code - and a goodly chunk of it - that works with the mysterious and very poorly documented TFS APIs.

.NET Dojo: Windows Azure

Community | Events
Here’s the info on the next .NET Dojo. Did you think it’d be gone? Well, I hope not and I’m working with Zain to transition the program over to him. That said, I will be doing my very first Dojo! The topic is Windows Azure (duh!) and it promises to be a good time for all.  Event Overview Windows Azure is the cloud services operating system that serves as the development, service hosting, and service management environment for the Azure Services Platform. Windows Azure provides you on-demand compute & storage to host, scale, and manage Web applications and services on the Internet in Microsoft data centers. In this Dojo, we'll dig into how to work with Windows Azure to build applications that run in the cloud ... using the skills you have and the tools that you are familiar with. We'll introduce the key concepts in lecture and then immediately apply those concepts in hands on labs. At the end of the Dojo, you'll be able to create applications to leverage this platform and its functionality, including tables, blobs, queues and, of course, web sites. Attendees will be expected to bring their own laptops with the prerequisites (below) to participate in the hands-on labs. Prerequisites: · Windows Vista SP1 or Windows Server 2008 SP1 · IIS 7.0 (with ASP.NET, WCF HTTP Activation and optionally CGI) · Visual Studio 2008 Professional  (Trial OK) · Visual Studio 2008 SP1 · Sql Server Express (2005 or 2008) · Windows Azure Tools for Microsoft Visual Studio March 2009 CTP · KB967631: Update for Visual Studio 2008 SP1 Debugger Dates, Locations and Registration: Houston: June 19, 2009 1PM-5PM @ the Houston Microsoft Office Austin: June 26, 2009 1PM-5PM @ the Austin Microsoft Office   Hope to see you there!!

Bikers, Geeks and Community

Idle Babbling | Community
When motorcyclists pass each other in opposite directions, they wave at each other. Watch them sometime; you’ll see this happen. A lot of non-motorcyclists (we call them “cagers”) don’t notice this until it’s pointed out but you’ll see it if you look for it. It doesn’t matter if you are riding a crotch rocket or a Harley, a Goldwing or a dual-sport, if you are suited up in all leather and a helmet or are riding with no gear at all, bikers will still wave. If a motorcyclist sees another biker stopped on the side of the road, they will usually stop to check and see if they are OK. That’s just how it is. When commuting, bikers will also sometimes join each other in traffic and ride together for a time as their commute allows. Again, you’ll see this. But I’d bet you never even considered that those two bikers didn’t know each other. There are also biker-specific forums – I’m on Two Wheeled Texans – that all kinds of bikers participate in. There are also group rides; random people hooking up just to ride together. Some are random groups from the boards, some more “organized”. For example, TWT has a monthly “Pie Run” to a small restaurant in a small town in Texas and there will be anywhere from 80 – 250 bikers show up, on ALL kinds of bikes from ALL over Texas. I even saw someone at one of the Pie Runs on a vintage 1943 Army issue Harley! Bikers will also get together for a “Bike Night”. As the name implies, it’s an evening for bikes and bikers to hang out together at a local restaurant/ice cream shop/parking lot/whatever. I can often be found at “Katy Bike Night” on Wednesdays, munching on empanadas with anywhere from 3 to 20 fellow TWT’ers. There is a strong sense of community among motorcyclists that is built on a common, shared experience … namely riding a motorcycle. We share a love for riding, feeling the wind blowing over us. We also share common dangers and risks - for the most part, “cagers” are the greatest risk but that’s not the only one (think … weather … a 45 MPH crosswind is absolutely, positively NOT FUN). Sure, we have our differences – every group does - but the sense of community is stronger than that. Yes, there are some individual exceptions to this but, as a rule, that’s how it is. And those that get snobby about their “group” are considered rude at best. And I won’t even mention “squids”. Why do I mention this? Well … it’s that community thing. I’ve been involved in the developer community for some six years now and the biker community for about 2 years. I can tell you, the biker community is much stronger and, even more importantly, much more inclusive. In the developer community, there is – and let’s be honest here – a huge wall separating technologists with different specializations. Java guys don’t talk to .NET folks and they don’t talk to PHP folks. Linux folks don’t talk to Microsoft folks. Sure, there are exceptions here and there but the rule is different; we don’t intermingle. Do you know of any boards online where you have PHP and .NET and Java folks all mixin’ it up together in harmony? I certainly don’t. Even boards that cater to all types of technologists will have different forums where techies of like technologies congregate, with very little interaction between the groups. We tend to get wrapped up in our own areas of technology and look at technologists in other areas with wariness at best. Certainly one difference is competition … if Java is chosen as a technology at a given company, the .NET folks will be looking for work. And, again, vice-versa. That’s not the case with motorcyclists – it has no impact on my life if a fellow biker buys a new Ninja or a new Goldwing … I can appreciate both and it has no bearing at all on my ability to provide for my family (even if you won’t get me caught dead on a Goldwing!). But there’s something more than that – overall, there also seems to be little interaction between infrastructure/network folks and developer types even in the same technology area. When you think about it, it’s actually quite silly. Yes, there is that competition but I can’t see why we can’t be more like the motorcyclist community … inclusive and sharing what we have in common (which is quite a bit) rather than focusing solely on our differences. All of us have a love for technology and we all have the same gripes and issues with end users, customers, managers and the like. Regardless of our technology, there is much that we can share and much that we can learn from each other. Even if that’s only an appreciation for other technologies. I think it’ll be interesting to walk into a PHP user group. I’d bet that they are little different from the .NET user groups that I go to. I won’t say anything. Well, I’ll try not to say anything or too much at least. Not there to convert them, spy on them or any other such nonsense. Just getting a feel. Who knows … maybe I could persuade one or two to see what a .NET user group is like. And get them cross-pollinating with .NET folks going to PHP user groups. It won’t be the end of the world by any stretch of the imagination. But it certainly make the community much more interesting. And maybe … just maybe … we’ll take a step towards breaking down these silly walls that would divide us. We’ll see …