DevConnections Day 4: The Last Day#

Started this morning early, packing up and checking out - Kent and I would fly out together this afternoon. I need to get back tonight because I leave on Saturday for Barcelona and Tech Ed Europe IT Forum.

First thing this morning was my second session with Kent, called Load Testing ASP.NET Applications for Performance and Scaling. Had some technical problems with the network, but I solved them on the fly while Kent did a soft-shoe number.

I use my big tank of a laptop, the Dell M90, to do this demo. I'm running two virtual machines at once: one has the load test environment on it, the other is the web server, databases, etc.

We dig into all the goodies around load testing - using perfmon, using WAST (old, but free) and Visual Studio for Testers (new, not free).

The 75 minutes tears by... there's so much to talk about in this space. But we get to run a few real tests along the way and talk about what their results mean.

As soon as the session was done I was running across the conference center again, this time to a RunAs Radio Live session with Chris Avis. Since RunAs Radio is only a half hour show, we actually recorded two separate topics, one on deployment, the other on spam management in Exchange.

When we were done there, I had a few minutes to rest before running off with Carl to do the DotNetNuke Futures Panel. All the senior folks from DotNetNukeCorp were on the panel talking about taking DotNetNuke to the next level. The reality is that DotNetNuke has gotten successful enough that it needs full time people just to manage the volunteers, much less dig into the less-cool stuff that needs to be built to make DotNetNuke fully viable in the enterprise space.

Carl and I sat at either end of the table, managed questions from the audience and generally kept things moving along. I'm sure it'll be a great .NET Rocks show when its published.

The moment the panel was done, I shook hands with everyone and ran - back to the speakers lounge to pick up Kent and head for the airport.

We had a little excitement at the airport with Kent's ticket (we flew Philippine Airlines home, it was the only thing that fit the schedule), but otherwise, the day went well.

And now I'm home. For like, 48 hours. Then its off to Barcelona!

Thursday, November 8, 2007 5:27:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevConnections Day 3: End of the Tradeshow, Beginning of Sessions#

And just like that, the tradeshow is over. Well, by the afternoon, anyway. I worked in the booth for the morning shift, but had to ditch after lunch to work with Kent on our first session of the conference: ASP.NET Scaling Strategies and Tactics. All these sessions are residuals of all the consulting and research we've done creating Strangeloop.

The session starts on the strategies of scaling first, and really there are only two: Specialization and Distribution. Most folks think only about distribution when they're scaling a web site, that is, adding more servers. But specialization not only plays a critical role, but should play it first. Specialization is all about breaking down your web application into smaller bits, whether it be separate SSL servers, image servers, etc.

Once you've done some specialization, distribution gets easier and more flexible.

That's the strategic part of the session, then we dig into the tactics, more of the details around what it takes to put those strategies into practice. For example, you can set up your own image servers to take the load off your ASP.NET servers, or can switch to a Content Delivery Network (like Akamai) to handle images. Most of the time, these tactics are specific to the application, ie, it depends.

When the session was over, I hustled across the conference center to do a .NET Rocks Live with Carl. Our guest - Kent Alstad. Since Kent was on the ASP.NET Scalability Panel back at Tech Ed in June, we've received a number of emails from folks asking for more... so we delivered. Since Kent was with us already, it was pretty easy.

We had a great crowd for the .NET Rocks Live, they really whooped it up. I'm sure you'll hear it when the show is published.

After that session I dropped into the Speaker Party for a couple of hours, up in the penthouse suites of The Hotel at Mandalay Bay. Waaay too many people in too small a space, incredibly loud and lots and lots of fun.

I didn't stay long though, I headed out to dinner at Sensi at the Bellagio with the Strangeloop folks and a few key influencers.

Tomorrow is another crazy busy day!

Wednesday, November 7, 2007 4:55:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevConnections Day 2: Microsoft Day#

Today is tradeshow day... actually, its Microsoft day, the day when all the sessions are given by Microsoft folks. But its also the day where the tradeshow floor is open the most. DevConnections has an interesting technique for tradeshow floors where they close it regularly, then open it again an hour or so later.

While its a bit confusing, the logic is pretty straightforward: They close the tradeshow when sessions are on, which gives the folks working the tradeshow a break. Then they open it again for break times where there is snacks, lunch, etc. The result is that as a vendor, you get a chance to get off your feet regularly, and then you get these big surges of people visiting all at once.

Jeff and Paul from the Strangeloop sales team are loving it, the interest level is insanely high, every time the doors open to let the attendees in, we're swamped. We have eight staff for the booth including myself, and at times, its not enough.

Kent, Josh and I have been running the load test demos of the AS1000 back-to-back, keeping the cubes full. Lots and lots of questions about how things work and how to get one ASAP.

At the end of the day, the evening event is called Microsoft Unplugged, where Carl and I hosted a game show to give away all sorts of swag (my favorite job!).

Tuesday, November 6, 2007 5:26:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevConnections Day 1: Opening Day#

Well, now I know why Jenn said she was pleased the rack was functional - apparently it took a serious fall. One wheel broken in half, two wheels bent, a huge dent in side... its a miracle the servers survived. I can't imagine what happened to the rack, I'm thinking it took a 6-10 foot fall.

However, everything in the rack is functional and the booth looks fantastic. It's the same design as the one we had at Interop in New York, but instead of having the columns and header wrapped in vinyl, all the surfaces are rigid panels with art on them.

Today was pre-con day at DevConnections, with full and half day workshops. Its ends with a dessert reception and the opening of the tradeshow floor for two hours.


Here's an odd shot of the booth, you can see the rigid panels with art work on them on the far column. Kent is doing a presentation. I definitely did not take enough pictures of the booth this time around.

For two hours, we were run off our feet - everyone is interested in Strangeloop and the AS1000. It was all we could do to hand out datasheets fast enough!

Monday, November 5, 2007 4:17:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevConnections Day 0: DevExpress Summit Part 2#

Its the day before DevConnections actually gets into full swing, Jenn and Trevor arrived yesterday afternoon, so they were in place and good to go.

DevExpress' presentations started at noon today, and around the same time I got an SMS from Jenn saying the demo rack has arrived - woohoo! Appears to be functional, they're doing testing now.

The DevExpress presentation started out with a hilarious demo - Sarah, who is a professional model, has had a small amount of training with Mark to use CodeRush to create a set of classes for Employee and Manager. The demo is a race between Dustin Campbell and Sarah, Dustin doesn't have code rush, but he can type really fast. But Sarah won - she coded the class faster than Dustin could. Its a very compelling demonstration of the productivity gains that CodeRush offers. DevExpress is doing the contest repeatedly in their booth at DevConnections.

Mark Miller got on stage today to show off the latest incarnation of Refactor Pro, they're planning on having 150 refactorings by the end of the year. There's a free version that comes with Visual Studio 2005 and 2008, but the Pro edition is $99. And as Mark says, that's only 67 cents a refactoring. Heck of a deal, and an incredible product.

Its so much fun to watch Mark use CodeRush - it makes Visual Studio an extension of his crazy mind. He codes incredibly fast while touring us through the features of Refactor Pro.

Sunday, November 4, 2007 3:07:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevConnections Day -1: The DevExpress Summit Part 1#

Had a slow, lazy morning today, since the DevExpress meetings didn't start until noon (gotta love that).

Wandered from the hotel part of the Mandalay Bay all the way to the South Convention Center, which is most of the way to Utah. The DevExpress event is in one room on the third floor, which means its a hundred feet up, since the ceilings in the Convention Center are at least 40 feet high.

Most of DevExpress is here too, including Ray (CEO), Julian (CTO), Mark (Chief Scientist), Dustin, Kevin, Courtney and a whole host of developers. Its impressive to meet the team like this, and its obvious they're very, very proud of their software.

Today we're primarily focused on their newest products, including controls for WPF and Silverlight. Apparently much of what we've seen will be on display at DevConnections as well.

Kent is here with me and he's thinking hard about how Strangeloop and DevExpress could work together. What if some of the DevExpress controls were AS1000 sensitive, and knew how to automatically take advantage of it being there?

Saturday, November 3, 2007 2:53:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevConnections Day -2: Arriving in Vegas#

I've flown into Las Vegas for DevConnections a couple of days early to hang with the DevExpress folks. DevExpress has invited a small group of folks to show off their latest incarnation of all their products.

Kent Alstad has come along with me as well, we're going to be doing some presentations at DevConnections together, as well as working hard in the Strangeloop booth.

We shipped the demo rack directly from Interop in New York to here, supposedly it'll arrive on Sunday. Jenn and Trevor are handling set up for the booth, but I'm sure I'll drop by during the set up.

Not much actually happened today, the flight was uneventful (and direct), and DevExpress supplied a limo to get us to the Mandalay Bay, so we could bypass the inevitably massive taxi line at the airport.

We met up with some of the DevExpess folks for dinner tonight and got a few hints of what we'd see tomorrow... I guess we'll see tomorrow!

Friday, November 2, 2007 2:07:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Interop Day 4: Tradeshow Closes#

And then suddenly, its over.

The tradeshow at Interop is only two days: Wednesday and Thursday. Each day the booth was open for six and a half hours. Doesn't seem like much.

So why am I so tired?

We talked to a lot of folks at Interop about Strangeloop - almost all were IT and/or network folks. Some had no ASP.NET or no web site at all, so there wasn't much to talk about. But many more were very conscious of the fact that they had challenges with performance and scaling of their web sites.

One of my favorite visits was a fellow who said "I'm not responsible for the web site, but my boss needs to know about this" after seeing the entire demonstration. He took a data sheet and all sorts of info. Half an hour later he was back with his boss in tow and I did the whole pitch again. At the end his boss looked at him and said "you've got their info? Good."

Its a great feeling, being in the right place at the right time. And that seems to be the reaction of the majority of folks we talked to at Interop.

As soon as the show was over the booth came down. Amazing how quickly it came apart, considering how long it took to set up. The server rack was packed up for shipping in no time. I grabbed one of the big banners to take back to the office in Vancouver.

Tomorrow I head home for about a week, then Las Vegas for DevConnections!

Thursday, October 25, 2007 7:02:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Interop Day 3: The Tradeshow Floor Opens!#

Not much to say about Day 1 and 2 of Interop - we were too busy getting ready for the tradeshow to get to see any sessions at all.

Our booth design for Interop uses a 20x20 island, we're right beside Riverbed. The booth itself has two columns kitty-corner from each other, supporting a central span. This cuts the booth in half. On one side is the reception counter with scanners, documents, etc. The other half is the presentation area, where we have a small podium, a big screen and a bunch of cubes to sit on.

 The booth at Interop 2007

This photo is during set up on Tuesday... things are just about finished. You can see the server rack on the right in one of the columns. Its controlled by the laptop on the podium - this is where we do the live demonstrations of the AS1000. On the other side of that column and on both sides of the other column are demo stations for showing how the AS1000 works.

Folks really like this booth design, I'm thrilled with it. Lots of other vendors were coming over and taking pictures of it. I feel like we really utilized our space well, the live demo packs people in, and when they have more questions they can move over to the other demo stations to get answers.

We're doing three demos on the live station at Interop. One is done by Stephen Forte, the CTO of Corzen. He's talking about how the challenges of Corzen's business in rolling out new features quickly and constantly to their customers. Spending time on optimization is just not an option, they're looking to the AS1000 to minimize that concern.

Kent and I are also doing demonstrations, using Visual Studio for Testers to do load tests against the rack with and without the AS1000 to demonstrate how it improves performance and scalability.

Carl Franklin is here as well and is video taping the demonstrations so that we can put them up on the Strangeloop site for future viewing.

Wednesday, October 24, 2007 6:38:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Interop New York Day 0#

Back to New York again, this time for Interop.

Interop is a trade show focused on networking and mobility technologies. Monday and Tuesday are set up days, the trade floor is open Wednesday and Thursday.

So far with Strangeloop we've been primarily focused on the ASP.NET community, since our product is aimed squarely at that market. But we also have a foot in the networking space, after all the AS1000 lives in front of the web farm, typically an area populated with load balancers and firewalls, which are totally the domain of the networking guy.

Its going to be very interesting to me to see how that audience reacts to the AS1000.

The most exciting part of the show is the demo rack - a shippable 10U rack with a pair of AS1000s and several Dell 1950 1U servers for doing load tests and demonstrating how the AS1000 can help ASP.NET applications scale.

Sunday, October 21, 2007 2:07:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevReach Day One#

Sold out! Yep, the show is packed. Its not the biggest show in the world, but the attendees are focused and excited to be here. The keynote speech today included the local Microsoft folks and Telerik and, of course, Tim Huckaby! Tim's stories around building great applications that change the world are hard to touch. The audience was spellbound.

My work came in the afternoon, I took the Scaling Habits of ASP.NET Applications out for a spin again, with lots of interesting questions and discussion afterward.

In the evening Carl and I ran a panel discussion on WPF with Tim Huckaby, Brian Noyes and Todd Anglin.

Tomorrow is the last day, then we're touring Sofia!

Monday, October 1, 2007 1:25:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


DevReach 2007!#

Less than a week at home and I'm back in Europe, now in Sofia, Bulgaria for DevReach.

This is the second year of this conference, this time around Telerik is very deeply involved. I've been helping out with bringing in speakers, including Stephen Forte, Tim Huckaby and Joel Semeniuk.

And yes, this time Carl has made it here in one piece. No more travel disasters for him!

Saturday, September 29, 2007 2:31:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


SDC Day 2 - End of the Conference#

So Mark, Karen and I managed to put together something Mondays-like last night. Not exactly a Mondays without Carl, but close enough. Without any recording gear, its going to disappear into history. The SDC folks seemed to enjoy it, lots of laughs.

Just to make it more exciting, I participated in the DotNetNuke Futures Panel right before Mondays. We had originally intended to make the panel discussion into a .NET Rocks show, but without recording gear, that couldn't happen. There's going to be another panel like this at DevConnections in Las Vegas, we'll see if we can't record that one for .NET Rocks instead. If you haven't been paying attention, DotNetNuke is going through a major reorganization as it becomes one of the larger Open Source projects in the world. SDC is hosting the Open Force Europe conference, so folks here are learning what the reorganization means to them.

Today I was even busier - my famous SQL Tips & Tricks session first thing in the morning, then Load Testing with Kent Alstad (more great content generated by our work on Strangeloop) before lunch and then closing the conference in the last slot with Steve Forte doing a SQL Server Q&A session. We left the content of the Q&A session largely open, the attendees were very interested in SQL 2008. Fortunately, Steve and I disagree on a number of features, so it was, shall we say, an "animated conversation."

Tomorrow is the speaker's tour, which will have a number of new twists!

Tuesday, September 18, 2007 3:32:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


SDC Day 1 - Carl's Not Here#

The SDC conference is starting, and Carl is not here.

Some sort of travel disaster has happened for Carl, resulting in him losing some baggage and being unable to travel until he gets it back.

This seriously complicates doing Mondays tonight, since he had the recording gear, as well as having to cover off his sessions.

And we're not going to get any .NET Rocks shows either - which is a shame, we had some cool stuff planned to do here.

But that's how it goes sometimes. My schedule is plenty full doing all sorts of scaling and performance sessions with Kent Alstad. So far we've done the Scaling Habits of ASP.NET Applications and ASP.NET Scaling Strategies and Tactics. Tomorrow we'll get to take a new session out for a spin - Load Testing!

All these new sessions have really come about because of the research we're doing at Strangeloop Networks. Building an appliance to accelerate ASP.NET applications means running lots and lots of tests. The result of which is a huge pile of performance data. My head is stuffed full of so many stats and details on how ASP.NET applications scale that I figure I might as well share it with everyone.

Monday, September 17, 2007 4:42:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Speaking at the SoCalCodeCamp!#

Blame Michele Leroux Bustamante for this one - she talked me into coming down to do a couple of presentations at the SoCal Code Camp.

I did my Querying Talk again, but also took The Scaling Habits of ASP.NET out for a spin for the first time since the Vancouver TechFest.

Scaling Habits is a fun talk for me because it really is a tour through the evolution of an ASP.NET application - from those early days where you're one guy with a clever idea for a web app, through to what it takes to run a large scale site with multiple servers and the related bureaucracy for operating it.

Along the way I talk about the elements of the evolving site - how much traffic is typical, the kinds of metrics that matter, and so on. And most importantly, what it takes to move to the next level of evolution for the application.

At the core of this whole concept is the idea of the Performance Equation. The Performance Equation

A quick description of each factor in the performance equation:

R Response time (in seconds)
Payload Total number of bytes being transmitted
Bandwidth The transfer rate available
RTT Round Trip Time
AppTurns Number of requests that make up the web page
Concurrent Requests How many requests will be run simultaneously to build the page
Cs Compute time on the server
Cc Compute time on the client

Now I can't take credit for this equation, I did not invent it. The original one comes from the "Field Guide to Application Delivery Systems" by Peter Sevcik and Rebecca Wetzel from NetForecast. However, I did make one change to it - the original equation does not account for simultaneous downloading of resource files and the base overhead of the page file itself. That is represented by the separate addition of an RTT and dividing the rest of the AppTurns by the number of concurrent requests.

So all of these factors go into the time it takes for a web page to fully render on your web browser after you request it.

When I display the equation to an audience, I always ask the question: "What part do you work on?" When I'm talking to ASP.NET developers, invariably the answer is Cs - Compute time on the server. After all, that's the code you wrote. But if you don't know what Cs is in relation to all the other factors of the equation, how do you know if that's the right thing to work on?

Some other interesting issues I've run into once I started looking at web performance this way:

  • In many cases bandwidth is just not the issue, we have lots. But when it *is* an issue, often we don't test with the same bandwidth that the customer has, so we don't realize when bandwidth is a problem.
  • Round Trip Time is the ping time between the customer and the server. Again, since we often test with servers that are so close to us that the ping time is ultra-low, we don't have test conditions that match with our customers. Its amazing how huge a factor bad RTT can be for performance.
  • AppTurns of course exacerbate RTT times, because its a multiplier - if you have a dozen JS files, a dozen CSS files and thirty images (which is remarkably common), you're talking about over 50 AppTurns, and even divided by Concurrent Requests, that expands response time by lots of seconds.
  • Normally, with Internet Explorer and FireFox, the number of Concurrent Requests is four. It can be adjusted at the client computer, but its very rarely done. It is possible to do a trick with URI renaming where each resource appears to come from a separate server so that you can fool the web browsers into doing more than four concurrent requests.
  • Compute time on the client becomes a significant issue when you get heavy with the Javascript, most often seen with AJAX-style pages. In my opinion, getting the browser more involved in generating a web page is a good idea, but you need to account for the cost involved. If you're only looking at server compute times, then of course AJAX looks like a brilliant solution - because you've hidden the cost.

Now that's not to say that Compute Time on the Server isn't important to the equation - it *might* be. But you should know for sure before you pour your time into improving it. Going through the exercise of breaking down where the total response time goes is a critical first step to making sure your effort is going to the right place.

Thanks again to all the folks at the SoCal Code Camp - I had a fantastic time, I'd love to come down again!

Sunday, July 1, 2007 5:07:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


SQL Querying at the Calgary .NET User Group!#

I dropped into the Calgary .NET User Group to do my famous SQL Query Tips & Techniques session. John Bristowe was nice enough to put me up for the night, but not before he got an interview out of me.

I've done the querying talk for a number of years now, and I update it regularly. I promised the folks there that I'd make the code available, so I've attached it with all the latest stuff, including my exploration of running totals.

Had a great time, a fun crowd to talk to... I'll have to bring the Strangeloop gear out there once we're ready for a road show and let 'em see what we've been up to.

Here's the sample code, including the script to build the database: (8.12 KB)
Wednesday, June 27, 2007 6:07:14 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Tech Ed US 2007 Day 5: The End of Everything#

Another early start. The video folks at Virtual Tech Ed wanted to interview Strangeloop about winning Best in Show for Web Development and Infrastructure. The only way we could fit it into the schedule was to come in at 8am. Josh Bixby and I did the interview with Bryan Von Alexson where we talked about what AppScaler was all about and what it meant to win Best of Tech Ed.

The last day of Tech Ed is kind of sad, really. A lot of people are already gone. The vendor space shut down on Thursday, so its all gone. Its a quieter day, a few anxious folks trying to score whatever swag is left, and trying to locate people they hadn't been able to find earlier in the week.

We'd only gotten three interviews for RunAs Radio, and now Greg Hughes was gone. Carl and I had the three panels for .NET Rocks, but we also wanted four shows as well. We decided on a vignette show for the last slot, a set of interviews that go together to make a complete show. The anchor interview for that show was with the Acropolis team. We got about a half hour interview with them in the lunch area, just before lunch started. Then we ate lunch.

After lunch I had time to prep for my chalk talk on ASP.NET scaling. Chalk talks are interesting things - they're not really sessions, but they're not really Birds of a Feather either. And with the talk being on Friday afternoon, you never know what sort of crowd you're going to get.

I decided against slides, I was just going to draw diagrams on the whiteboard as we went. The conversation tied pretty closely to my blog post on the Scaling as well. I drew an overflow crowd, and I saw Doug Seven peek his head into the back just before I was done. The folks seemed to enjoy the chalk talk, I had a good number of questions at the end, including "so where does Strangeloop fit into this?"

So, 2:30pm on the last day of Tech Ed. The show ends at 5pm. Everything that you could do is pretty much done. I wandered back to the Fish Bowl for one last shirt change... today had been a Strangeloop-to-DNR-to-Tech Ed Speaker day, I switched back to DNR for the end of the show. Jon and Josh were still in Orlando, so we agreed to go to a quiet dinner to talk about how the show had gone for Strangeloop. Carl found Mark Dunn and a few others to go to dinner with.

After dinner I found Carl, he showed me some great video he shot of the space shuttle taking off. He was a good 50 miles away from the launch, recording video in the Rosen Plaza parking lot. No sound, but a clear 45 seconds or so of something going up in a big hurry. Very cool. We adjourned to the hotel bar around 9pm for a few bourbons. Tomorrow we would both fly home.

While we were sitting there contemplating a pretty incredible week, who should show up but a whole group of the Microsoft folks that run Tech Ed! We talked for more than an hour about how Tech Ed went, what we would do differently, what we'd like to do next year. Lots of great ideas, sounds like we'll have even more fun next year!

Friday, June 8, 2007 10:04:30 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Tech Ed US 2007 Day 4: The End of the Booth#

Started extra early this morning, probably too early. We scheduled the Identity Panel for 9:15am, in sync with the first break of the morning to draw a crowd. It worked, but I think people were a bit too tired from the Under-the-Influencers party the night before. Four days into Tech Ed, you need to think about these things.

And while I'm thinking about Tech Ed, let everyone be warned: Wear comfortable shoes! The Orlando Conference Center is insanely huge. Even if you never set foot outside, if you take a cab everywhere, you are going to be walking for miles. You need good shoes. Tech Ed is a marathon, not a sprint, be careful with your time and energy.

So meantime, there was the Identity Panel. Great line up of panels, including Ani Babaian, Richard Turner, Michele Leroux Bustamante and Scott Golightly. Pat Hynds handled the mike for me out on the floor, and threw in a number of important questions as we explored the topic of Identity pretty thoroughly. Lots of interaction from the audience, even though it was early in the morning.

After the panel I did not race over to the Strangeloop booth, it wasn't going to open 'til 11:30am, and the Speaker Idol Finals started at noon. So I had time to sneak another RunAs Radio interview in, this time with Richard Turner, fresh off the Identity panel. Only this time we focused heavily into the IT side of Identity, including discussions around Active Directory, server management, and so on.

Next up, the Speaker Idol finals. We had five contestants (instead of the planned for four), and decided to have them present in the order they won in: Bob Roudebush, Alain Tadros, Sarbjit Gill, Rob Windsor and Steve Smith. Joel Semeniuk had to leave Tech Ed early, so our judges were: Kate Gregory, Stephen Forte, Michele Leroux Bustamante and Chris Kinsman.

All five contestants presented the same five minute presentation they did during their heats. All five had adopted at least some of the recommendations that the judges had offered. All five were excellent - as far as I am concerned, they should all have speaking slots at Tech Ed next year.

But only one could win, I only had one guaranteed speaking slot to give away. The judges deliberated for a long time, Carl and I talked for quite awhile with each other and the audience. In the end, the winner was Steve Smith.

There was lots of handshakes and congratulations all around. Then I raced over to the Strangeloop booth, which was closing at 3pm. Only Jon and Josh were left to man the booth. Birgit headed home on Wednesday (and missed out on being here for the Best of Tech Ed win), Kent, Lee and Virginia all left Thursday morning. The last hour of the booth was pretty peaceful, but we met with a few interesting folks catching the last moments of the vendor space. At 3pm on the nose, a huge cheer went up, the air walls were deployed to start blocking the vendor space away from the rest of the conference. Jon and Josh started packing up the booth equipment, I headed back to the Fish Bowl to do another RunAs Radio interview.

This time the interview was with Jeff Sigman, talking about Network Access Protection. While there's lots of different aspects to NAP (and you'll have to listen to the show to hear them all), I went crazy for the concept of having different IP addresses assigned to a computer based on an assessment of risk. For me, this meant that finally, when I'm at a Microsoft office, I'll be able to get bandwidth.

We wanted to get four RunAs shows recorded, and we had three in the can, and just enough time to get one more, so we went out searching for someone to interview, but to no avail... so we ended up with three.

Thursday night at Tech Ed is Attendee Party night. This year the attendee party was in Universal City Walk, at the Islands of Adventure. I raced back to the Rosen Plaza to get changed, then over to the Rosen Center to meet up with everyone. Just as I was arriving, a large contingent of RDs (led by Stephen Forte, of course) were heading to the bus. I really wanted a drink, so Carl and I skipped the first bus and sat with Kim Tripp, Paul Randal and Brian Randall.

They made an interesting proposal: Lets go to dinner at Emeril's Tchoup Chop, which is at the Royal Pacific Resort, right beside the Islands of Adventure. I was ready for good meal that wasn't steak, so I was instantly onboard. We took separate cars, and our driver dropped us at the wrong end of City Walk, close to the OTHER Emeril restaurant there. As I walked in I said to the maitre de "This is not Emeril's Tchoup Chop" and he said "You are correct sir, take the ferry over there to the Royal Pacific Resort."

So Carl and I walked down to the ferry to discover it was closed due to lightning. So then we walk past the Islands of Adventure and all the way 'round to the Royal Pacific Resort. Its jungle steamy out, threatening to rain, and lightning dancing everywhere. We can hear announcements from Island Adventure that the rides are closed due to lightning. Suddenly we don't feel all that interested to go the attendee party.

It was a long walk, but it was worth it: Emeril's Tchoup Chop house is an excellent restaurant, we had a multi-course meal that gave us a number of lovely tastes, almost exclusively seafood, although there were other choices, I'd had enough meat for the week. And the conversation... well, the conversation turned to Strangeloop.

I told the tale of how we got started, and the evolution of AppScaler. Brian Randall was especially excited about it, its totally his area of focus, scaling out web applications. And it was right around then that Carl's favorite moment of the entire Tech Ed took place: When I finished explaining exactly how AppScaler's output cache learns what to cache, when to expire it and how to cope with expiry under load efficiently, Brian leaped up, grabbed my head and gave me a big kiss. I guess he liked it.

Thursday, June 7, 2007 10:04:30 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Tech Ed US 2007 Day 3: Hump Day!#

Back at it bright and early Wednesday morning. Another day, another Speaker Idol heat, Heat 3, at 9:45am. But today is heavily, heavily scheduled. As soon as Heat 3 is over, we're into the ASP.NET Scalability panel. Then about a 90 minute break before the VSTS panel. And right after that, Heat 4 of Speaker Idol. And somewhere in there, I have to visit the Strangeloop booth for awhile.

Speaker Idol Heat 3 kicks off, our contestants are James Kovacs, Mauro Cardarelli, Sarbjit Gill and the wildcard, Rob Windsor. Again, the competition is tough. Michele had a session to speak at, so Scott Golightly stepped in to judge. At the end of the heat, the judges call me over for a ruling. They can't decide - they want a tie. I initially refuse, but then listen through the details.

The tie for them was between Sarbjit Gill and Rob Windsor. Sarbjit had done a demonstration of how to handle internal and external DNS routing properly. Its a topic I know well, but the primarily dev-oriented audience was impressed, they understood it too. And what made Sarbjit's demonstration totally over the top is that he did the whole thing in MS Paint. Drew it all in five minutes, explaining as he went.

Rob Windsor's demo was on WCF, a very clever little application combined with a nice slide deck, using the Tech Ed template, that really clearly explained a very complicated subject... again in five minutes flat.

So the judges couldn't choose - a total seat-of-the-pants IT demo with MS Paint versus a perfectly executed classic slide-and-code demo. I gave in: they were right, it was a tie, both Rob and Sarbjit would go to the finals.

We had some time to re-organize the stage. The judges chairs at the back of the audience space are moved onto the stage to become panelist chairs. The ASP.NET Scalability Panel is comprised of Kent Alstad, Rob Howard, Steve Smith and Stephen Forte. Each one of these guys could easily do a great scalability session, but they don't agree on everything and the debate is lively. We get a few questions from the audience as well.

A two hour minute break between the panels offered a moment to grab some lunch and talk to a few other folks. Lots of people were asking questions about Strangeloop, I never get tired of talking about our product.

At 1:30pm the Visual Studio Team System panel came together. The panelists were Doug Seven, Joel Semeniuk, Mike Azocar and Steve Borg. There were also several Team System advocates in the audience, so it was a very interactive panel discussion, as we navigated through the minefields of Agile vs. Waterfall, CMMI, TFS, and many other acronyms I'm sure I'm forgetting.

We had about an hour between the VSTS panel and the final heat of Speaker Idol. This time our contestants were Corro'll Driskell, Darren Mar-Elia, Jeffrey Palermo and the wildcard, Steve Smith. The judging panel had one substitution, Stephen Forte was doing a session, Barry Gervin sat in for him. Barry fancies himself a Simon Cowell I'm afraid, and tended to be more critical, but the input was effective. The winner for heat 4 was Steve Smith, who did this amazing demo of optimizing ASP.NET while running tests in the Visual Studio Team System Test Edition. He set up the test first, showing a graph of pages per second and database requests per second, then altered the page while the test was running to improve performance. He turned off session and the pages per second went up 10%. Then he turned off viewstate and the pages per second went up 20%. The he configured the page to cache for exactly one second - a mere one second! But the impact on performance was dramatic: The number of pages per second went up 300%, while the database requests for second dropped to 1-2 per second. All in less than five minutes.

The crowd went wild. The judges stared with their mouths hanging open. It was incredibly compelling.

So that set the stage for the finals: Bob Roudebush, Alain Tadros, Sarbjit Gill, Rob Windsor and Steve Smith would compete on Thursday to win a speaking slot at Tech Ed US 2008.

It was about 4pm: Time to race back to the Strangeloop booth before close at 5:30pm. More fans of the show, more influencers, lots of people curious about AppScaler and the company. When the booth closed, back to the Fish Bowl, time to record RunAs Radio. We picked up our first show with Isaac Roybal, talking about IIS7. We primarily focused on the new management features, the folks at Microsoft have really thought about how different IT folks need to manage IIS. The enterprise folks, the small shop folks and the ISPs all have features they'll find incredibly compelling.

When the interview was done, I pounded out more emails, locking down another interview for .NET Rocks, other RunAs interviews and related Tech Ed stuff. Carl was already gone. My goal was to get out the door by 6:30pm. Next door at the Peabody was the Best of Tech Ed award announcements, and the Strangeloop folks were there, hoping for a win.

I didn't make it - there was so much to get done, before I knew it it was 7:15pm, Josh called: Strangeloop had won Best of Tech Ed for Web Development and Infrastructure! I whooped, right there in the Fish Bowl, startling the other folks editing up a storm. There were congratulations all around. I promised to join the Strangeloop folks for dinner. Kent met me at the Fish Bowl and we hopped in a cab to meet up for a celebratory dinner.

Having dinner with everyone meant being late for the Influencers Party. But Virginia & Jill (from Interprose, our PR firm) decided to join me as we headed over that way, catching the tail end of the party with a huge pack of RDs. We managed a couple of drinks and then headed for the Redmond Magazine party down the street at The Groove. A group of RDs traveled with us, must have been a dozen. The Groove was grooving, very loud, lots of dancing, another couple of drinks, and then moved on again, this time for the Peabody. It was almost midnight.

Various people came and went as we went through our hops, ultimately it was about nine that arrived at the Peabody, including me, Virginia, Steve Forte, Kate Gregory, Sasha and a few others. We had another couple of drinks and I talked about Strangeloop and AppScaler at length.

Wednesday, June 6, 2007 10:17:30 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Tech Ed US 2007 Day 2: Speaker Idol Begins!#

We weren't too late last night, so getting up the next morning wasn't all that tough. Got to the Fish Bowl early, the first heat of Speaker Idol was at 9:45am. I spent a lot of the morning in email exchanges with folks for the three panels: Identity, VSTS and ASP.NET Scalability. I realized the stage is best set up for four panelists, each with headsets, plus Carl and I sitting off to the side with our own headsets, and then there's one wireless wand microphone on the floor.

In between panel emails there are emails from nervous Speaker Idol contestants, confirming rules, asking for suggestions, and so on.

Ten minutes before Heat 1 begins, we realize not all the judges can make it. I pulled Chris Kinsman in to cover for Joel who had a session.

Good news is, all the contestants show up. And then a big crowd shows up, over a hundred people. The AV guys are awesome, get everyone geared up and things moves right along. The competitors for the first heat were Mike Azocar, Bill Baldasti and Bob Roudebush. Going last was Kent Alstad, our first wild card. All the presentations are excellent, the judges complain about having to pick a winner, but do their job. The first heat winner is selected: its Bob Roudebush, with his great demonstration of the File Server Resource Manager in Windows Server 2003 R2.

At the end of Heat 1, the wildcard slots quickly disappeared. My four wild cards, in order of the heats, are Kent Alstad, Mark Miller, Rob Windsor and Steve Smith.

When the heat is over, I change shirts and head for the Strangeloop booth which has just opened. Lee is there now, arriving late last night. Things are in full swing, lots of people visiting the booth, seeing the demo, taking data sheets and getting excited about what we're up to. During that time the judges for the Best of Tech Ed competition came by to see AppScaler. We were very excited to be a Finalist, and the judge seemed to "get" what AppScaler was all about.

After helping out for a couple of hours I headed back to the Fish Bowl to gear up for Speaker Idol Heat 2 and continue sorting out who and when for the .NET Rocks panels. Change back to the DNR shirt.

Speaker Idol Heat 2 goes even smoother. The contestants are Brad McGehee, Alain Tadros, Dandy Weyn and the wild card, none other than Mark Miller (who knew he'd never presented at Tech Ed?). Again, the presentations are killer effective. Its amazing how much information these guys can pack into five minutes. The judges rule and Alain Tadros wins with a great code-on-the-fly demo of anonymous delegates.

I spent the rest of the afternoon locking down the panels, sending out invites. We'd have two panels on Wednesday, in between the Speaker Idol heats. First would be the ASP.NET Scalability panel, then the VSTS panel. On Thursday morning we'd do the Identity panel and the Speaker Idol finals. With the details locked down, I fired off the scheduling info to the CommNet folks to get it posted out to the Tech Ed attendees.

In the midst of all this, Greg Hughes arrived. Greg has been my co-host on RunAs Radio from the very beginning of the show, but this was the first time we'd actually met face to face. Our goal for RunAs was to get four interviews recorded with interesting folks at Tech Ed. We debated topics for awhile, but the list tightened up to IIS7, Network Access Protection, Forefront/ISA, Server Virtualization, Cardspace/Identity and anything else Longhorn Server we could find.

As the afternoon wound down, Carl and I rip out the Wednesday morning bluecast message. The mission turns to finding a good dinner. Orlando restaurants are plentiful, but mediocre for the most part. I guess its the nature of the place... its a total tourist town, and there really isn't any penalty for having a lousy restaurant, people keep showing up.

But we were told by numerous folks in the know that Vitos Chop House was the place to go. So we went. Greg, Mark Dunn, Carl & Tina and I all headed over there for a big steak dinner. Lo and behold, sitting a couple of tables away was the entire DevExpress gang, including Mark Miller! The dinner was good (when you're in a town of one star restaurants, being a three star makes you a knock out), and ultimately Mark came and sat with us as well. Lots of laughter and silliness. Our noise attracts attention, Chris Kinsman finds us from the other end of the restaurant.

We split up from dinner. Carl head for The Groove to jam. Mark Miller and I adjourn to the hotel bar to talk for awhile (I drank, Mark doesn't need alcohol). In bed shortly after midnight. Tomorrow is the half way mark!

Tuesday, June 5, 2007 10:17:30 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Tech Ed US 2007 Day 1: Getting Started#

When I got into the Rosen yesterday evening, I discovered that the server box had arrived from Denver. I left it at the bell desk, since there was no reason to drag it up to the room. But since I'd chatted with Birgit and Virginia that evening, we agreed to meet in the morning, get the beastie over to the tradeshow and set up. Jon, Josh and Kent were also arriving today.

I had wisely stocked myself up with bottles of water when I was over at Tech Ed registering, so I could deal with the after affects of significant amounts of scotch consumed the night before. Tech Ed is the Super Bowl of Microsoft Conferences, and you don't want to miss a bit of it. So its up late partying every night, and up early the next morning to get to work.

So we all gathered at the Strangeloop booth, reviewed the demos and went over procedures in general. I also had my box of shirts.

My life for this Tech Ed is a complex one. I have a lot of shirts, and depending on what work I'm doing, I have to change shirts. I have the following shirts:

  • Tech Ed Speaker Shirt (for speaking, duh!)
  • .NET Rocks Shirt (all DNR related events)
  • Strangeloop Shirt (whenever I'm going to be at the booth)

So over the course of the day, I'm going to switch between these shirts several times. I wear a t-shirt underneath to avoid horrifying anyone. And where do I do all this quick change work? Why, in the Fish Bowl!

After checking in at the Strangeloop booth, I headed over to the Virtual Tech Ed stage, where The 64 Bit Question, Speaker Idol and all the .NET Rocks panels were going to take place. In behind the stage is a video recording studio and an editing room, each of which have two walls of plexiglass. They look like people aquariums, and were quickly dubbed The Fish Bowl. And that's when I finally met Zaak and Katrina in person. Zaak runs Virtual Tech Ed, and we'd been on the phone with each other at least once a week for the past two months. The Virtual Tech Ed stage was the fruition of all the work we'd been doing.

Carl and I took over one corner of the Fish Bowl and met a number of the other inhabitants, including Dean Andrews, who was working with a group of folks who do Bluecasting. Bluecasting utilizes Bluetooth technology to push content (in this case, MP3 files) onto Bluetooth devices, like cell phones. Dean wanted to make it easy for people to find out what was available on the Virtual Tech Ed web site. After talking to him for a few minutes I offered up the services of Carl and I. We have lots of practice making short bits (2-3 minutes) with music and news. We planned to create one for every day of the conference.

It was around that time that Steve Forte and Pat Hynds showed up. Pat and Duane Laflotte had a conference session on Identity right after lunch, and they had an idea. Since fundamentally Identity is all about how you know who someone is, they wanted to do a physical demonstration. So Pat and Duane asked Steve and I to impersonate them. We would show up early for the session, walk up on stage and start presenting it. Steve went so far as to grab a piece of paper and scrawl "Patrick Hynds" on it and stuff it in front of his own Tempo Tempo Forte Forte name tag.

When the time came, Steve and I went on stage and dropped into our usual pre-session duet banter, only calling each other Pat and Duane. When it was actually time to start, we introduced ourselves and started the session. I even made a point of fumbling over the pronunciation of Duane's last name. About two minutes into it, Pat and Duane rush in, apologize for being late, and say "what are you guys doing on stage?" We get into an argument about who is really supposed to be presenting the session. Pat had left his badge on the podium, so he picks it up and puts it on. Steve runs into the crowd and asks an attendee, "doesn't my badge say Patrick Hynds" which of course it does, in badly scrawled pen. Then Pat says "But I'm Patrick Hynds, I have the official badge!" and someone else from the audience yells out "He just picked that badge up from the podium!"

So then we held a poll, asking the audience who they thought the real Patrick Hynds was. And most people picked Steve! Then we flipped the slide and showed photos along side the names. The crowd laughed. That was mine and Steve's cue to get out of the way, and Patrick dropped directly into "How DO you know for certain who someone is?"

The gag worked, and it made a point about Identity. Mission accomplished. Back to the floor, visited the Developer Learning Center area and chatted with Erika Maki about putting together some panels for .NET Rocks. She suggested VSTS, which I thought was a fine idea. Next stop, the RD booth where Steve stayed and ultimately I ended up back at the Fish Bowl.

While I was off being silly on stage, Carl was working hard on getting The 64 Bit Question slide deck finalized. We had pulled all the prizes together and sorted out the questions into Developer, IT Pro and .NET Rocks Trivia categories. The swag was wide ranging: from polar fleece sweaters to USB keys to software packages from Telerik, Data Dynamics and DevExpress. While we were comparing notes and organizing that, I had sent out an email to all of the Speaker Idol contestants to meet at the Virtual Tech Ed stage for a briefing. I was also starting to pull together the various panel ideas we had, including a panel on Identity and a panel on ASP.NET Scaling. Lots and lots of emails.

Speaker Idol briefing went well, but on such short notice, only about half the contestants showed up. The judges (Steve, Kate, Michele and Joel) dropped by as well. We talked about the flow of the stage, how all laptops are prepped in advance as well as mike checks. The routine on stage itself: Carl and I introduce you, ask you a bit about yourself, then get off the stage so you can do your five minute presentation. When you're done, we all clap, Carl and I return to the stage, talk to the judges a bit, they offer their critique, and the next contestant comes up. When all the contestants are done, they all return to the stage and the judges pick a winner. We also talked about wildcard participants - there are three contestants per heat, selected in advance. But there's room for four in each heat, so someone watching a heat can come up afterward and we'll put them into the next heat. I had already found a wild card for the first heat, I figured the rest would go quickly.

At 6pm Carl and I started The 64 Bit Question, just as folks were headed down for the opening of the sponsor booths. We drew a big crowd, mostly IT folks (wish we had more IT questions), and the swag went quickly. Some of the questions are quite funny, and the audience has a good time. After an hour or so, all the goodies are given out and we can head over to the Strangeloop booth.

So count the shirt changes: in the morning I arrived in a civilian shirt. By noon I changed to a speaker shirt for the Identity gag. Then I changed to the DNR shirt for the Speaker Idol briefing and 64 Bit Question. Then into the Strangeloop shirt to help out at the booth. Finally I switched back to the civ shirt as the reception ended and we could go to dinner. Somewhere in all that, Kent arrived as well. Before heading out Carl and I ducked into the Fish Bowl for awhile and laid down the Tuesday Bluecast recording. After that we ate at Jacks in the Rosen Plaza hotel. We were underwhelmed with the food, but the company was good - Strangeloopers (Jon, Josh, Kent, Virginia and Birgit) plus Steve and Carl.

Sometime in the afternoon I discovered that Scott Hanselman had blogged about the blogging session he'd contributed so much to (he asked me for my notes so that he could). Its at

Tomorrow would be the first heats of Speaker Idol, and things would really get moving!

Monday, June 4, 2007 10:17:30 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Tech Ed US 2007 Day 0: The RD Summit#

Today I discovered I'm in the wrong Rosen. The Rosen Center is the speaker hotel, the Rosen Plaza is just another hotel. The conference center beside the hotel is the wrong conference center, Tech Ed is held across the street from the Rosen Center. Its only a couple of blocks away, which translates into a mile-plus walk in the steaming swamp heat that is Orlando.

Woke up early and headed for the Peabody Hotel, more or less across the street. The Regional Director (RD) Summit meeting was being held there, Tech Eds are the usual place you'll find a concentration of RDs. RD Summits are comprised typically of three things:

  • Insider discussions with Microsoft where they brief us on NDA stuff that will be coming in the future (such as announcements at Tech Ed)
  • Interactive discussions with teams around products in earlier stages of development (stuff that is really, really NDA)
  • RD specific tasks, like direction of the program, awards, stuff like that

The pack of RDs this year wasn't the biggest, with many trickling in over the course of the day. Sunday is also pre-con day for Tech Ed, and RDs are prone to pre-cons... Kim Tripp, Tim Huckaby and Kate Gregory were all doing pre-cons. Steve Forte, Carl Franklin and Scott Golightly showed up noonish.

I was there early, but that's because I was worried - I had foolishly agreed to give a talk to the RDs. A talk on blogging. This is a problem for two reasons.

  1. I am only a marginally effective blogger.
  2. Giving a presentation to Regional Directors is a worse-case scenario for any presenter.

So, how to deal with these two issues.

The RD Manager at the moment, Kim Sanchez (Kevin Schuler is on leave), asked me if I would put together a talk on ideas around being a more effective blogger. One of the anchor points of The Region, the new Regional Director web site, is a feed from the blogs of the RDs. The goal of the talk was to help the RDs to know how to be more effective at blogging - not that they're bad bloggers, but we can always get better. My response was "Why me? Ask Scott Hanselman, he's the master blogger of the RDs." Unfortunately, Scott wasn't coming to Tech Ed.

So I did the next best thing: I asked Scott to talk to me about blogging. I put on my head set, opened up One Note and then typed as fast as I could for about two hours.

Its not that I didn't have my own ideas about blogging. Its just that Scott thinks so much about it and brain dumps so quickly, it seemed silly to start anywhere else. At the end of two hours, my brain and fingers were sore, but I had a heck of a start on a talk. Then I spent some time gathering some other viewpoints, pulling together some links, and presto-change-o, I had a talk. Which brings us to issue #2: presenting it to the RDs.

Many of the best speakers you've ever seen at any conference ever are Regional Directors. And there they are, watching me. And I'm not this great blogger, I've researched the topic, but fundamentally, I'm a hypocrite advocating things like using FeedBurner and URL rewriting when I'm not using them (but I will start soon, I promise!). I wanted to convey the fact that I'm just the messenger and I know I'm full of crap... which gave me an idea. I pitched it to Kim, and she agreed to supply rubber dog poop. So just before I went up to present the blogging talk, a couple of plastic bags containing rubber dog poop were placed on each table. My theory was, if I was full of crap, they could throw them at me.

Richard Hundhausen immediately complied and I caught my first poop. So far so good. The presentation went well, with several RDs that are into blogging engaging in lively debate. I should point out that an RD Summit is really a gathering of friends who don't get to see each other all that often. And like most groups of friends who rarely get together, they love to grind on each other. So the debate was really lively, which was good for me, since that meant they were grinding on each other, rather than me.

My real mistake was not considering that we scheduled the blogging talk over lunch, which is not the most appetizing time to have rubber dog poop on the table. On the other hand, a number of poops immediately went missing and were put to work in harassment missions on the MVP Summit next door.

No, I'm not going to go through my blogging talk in detail: I'll let Scott do that. He asked for my notes, so I sent them over, he planned to blog about it some time soon.

Shortly after that Steve Forte arrived and I decided I needed to get out of the room for awhile... I was more nervous than I thought! So I took the opportunity to take a walk, discover I was at the wrong Rosen hotel, figure out which conference center Tech Ed was in and get registered.

This year I'm registered as Staff, rather than a Speaker. This is really, really useful for me, since it makes it very easy to get in and out of almost anything at Tech Ed when I'm trying to find a guest or record a show for .NET Rocks. Stevie registered at the same time, but for some reason his badge said Stephen Forte Forte. When I saw Forte Forte, I immediately said "Tempo Tempo!" which connects to a long running story about some hot Turkish pop stars . And Stevie's reaction to that when they offered to fix his badge was to get it changed to Tempo Tempo Forte Forte. They agreed, and he was pleased.Strangeloop Setup_sm

From the registration area we wandered over to the sponsors' booths to check out the Strangeloop booth. It looked awesome, even not entirely set up.

After that it was time for speaker check-in with the speaker boss, Lynn Edwards. Stephen and I walked into the Speaker Room and immediately dropped to our knees and went prostrate in our standard response to being before Lynn... "We are NOT WORTHY!" It makes Lynn happy. We got our speaker shirts and headed back for the Peabody in time for the group photo.

The group photo this year was taken out on the pool deck, and took longer than usual because we waited for Tim Huckaby and Kate Gregory to show up... they kept calling as they ran from the conference center back to the Peabody to be in the photo. In total, there were about 35 RDs in the picture.

Then it was time to head back down to the summit room for the awards portion of the day. The RD Program gives out bronze, silver and gold awards based on your reach. I won gold again this year along with about a dozen other RDs. The final award given out is RD of the Year, and this year it went to... none other than Carl Franklin! A fine standing ovation was given. I think Carl was quite surprised.

The awards ended and we all loaded into a bus to head to the RD Party at Tu Tu Tango. Its an interesting place, vaguely resembling the Spanish Tapas Bars of Barcelona. There's occasionally a flamenco performance, and lots of little tasty plates of food. But for the most part, the RDs do what the RDs always want to do when they're together - they talked. Endlessly. And drank.

After three hours or so the party was winding up so it was time to move onto another party, this one the Party with Palermo! Jeff Palermo is a friend of the show, Iraqi vet and one of the nHibernate Mafia out of Austin. And he throws these really great parties at conferences. The last one was at the MVP Summit. This one was at the Glo Lounge, and about 450 people showed up. .NET Rocks! also sponsored the party, so Carl and I were greeted with plenty of cheers when we arrived. More talking and drinking ensued. At the party Carl met an old friend of his named Tina. Tina and Carl met waaaay back when Carl was living in Orlando, going to audio engineering school. Tina is a charmer, she fit in with our unruly mob just fine.

Eventually even the Party with Palermo was winding down, somewhere around midnight. But we weren't done yet, so we gathered up and headed back to the Rosen Plaza for more drinks. Our group ended up being Stephen Forte, Chris Menegay, Carl & Tina and our new friend Arthur (another blue badge pitching in with the RD program) and April (who works with the MVP program). At some point during the Party with Palermo Steve and Arthur had entered into a competition to get the most compromising photograph of themselves with a woman they had just met. This meant that Steve and Arthur were constantly flirting with the wait staff and other female patrons.

Arthur managed to convince all four of the quite beautiful waitresses at the Glo Lounge to pose with him in fairly provocative poses. Steve upped the ante by laying down on a pool table and getting Tina to straddle him and feed him cherries. You see the progression here. So having moved onto the Rosen, they were looking for more opportunities.

In the middle of all this entered Brigit and Virginia, part of the Strangeloop team. They were quick to order drinks and get out of the line of fire to watch the festivities. For me, it was a bit of a Seinfeld-esque "Worlds Colliding" moment. But, that's life in the big city. Eventually around 2am Birgit and Virginia headed up to their room. Steve ended the competition by convincing a pretty lady from another table near by to pose with him for a photo. She pulled down her shirt to maximize cleavage and shoved his nose in there. Arthur surrendered.

It wasn't long before there was no more booze to be had, and we dispersed to our respective hotels. Tomorrow the conference would really begin.

Sunday, June 3, 2007 10:59:30 PM (Pacific Standard Time, UTC-08:00) #    Comments [2]  | 


Arriving in Orlando...#

Ah, flying sucks. Its amazing how much suckage there is in flying.

I drew the short straw with the Strangeloop crowd and had to check the Strangeloop AppScaler onto the plane. Everyone else just got boxes of t-shirts. Fortunately, I fly enough that I could exploit my status and they just checked it through. Went on the oversized baggage belt.

Arrived in Denver and a short walk to my Orlando flight. And there I encountered Tim Huckaby, who was on a later flight, but hoped to get on my flight. And then Michele Leroux Bustamante showed up. There was some confusion about whether or not the plane was going to fly with Hurricane Barry passing by. The three of us headed for the Red Carpet Club for awhile (Huckaby has God Status with United).

Eventually, maybe 20 minutes late, we boarded and discovered hordes of speakers and attendees on the plane, including Chris Kinsman and Juval Lowy.

When we all arrived in Orlando, my server box didn't come off the belt. I kept my cool and asked nicely at the baggage desk, they located it in Denver - never got on the plane.

They promised to delivered it to the hotel the next day - I appreciated not having to lug it myself, I think I'm going to request they lose it the next time I check one.

The good news is, I don't have to carry it back, it'll fly air freight home.

I'm at the Rosen Plaza. Its best feature is that its close to the conference center. While I didn't have my server, I did have my box of .NET Rocks! shirts from Connecticut.

Tomorrow is RD Summit Day!

Saturday, June 2, 2007 10:03:30 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Cooking Up a No Code ASP.NET Tuning Solution!#

I’ve been talking about load-testing ASP.NET applications, and what it’s like when you fail. Well, now I can finally talk about why I’ve been thinking about all this stuff. I just spent the last two weeks talking to people about our launch and getting feedback from analysts about the Strangeloop AppScaler, and now I can finally talk about it in public!


Here are the basics: You already know how application tuning impairs the development process. Not only does it take a long time for pretty limited returns, but it takes you from this lightweight, fast ASP.NET development process—the whole reason you started using ASP.NET in the first place—to this much more ponderous endeavor, where every piece of performance tuning you do places new requirements on everything else you’re coding moving forward. Well, the Strangeloop AppScaler basically takes that entire application tuning process and puts it in a box. It’s a very, very cool thing. But now that we're out in the open, what I really want to talk about is how we got here.


It all started with looking for a better way to do session. Everybody’s talked about session, and everybody knows that it could be handled better, but nobody had actually done it. The default, of course, is in-process session. Since we all start development on a single web server, in-process makes sense. But as the application becomes more important, more web servers are needed, and the idea of going out-of-process comes up.


Microsoft provides two out-of-process approaches. One is using SQL Server, which you likely already have, since it’s where you store your data. But SQL Server is kind of overkill for session, since you're just storing a blob of session data there: you don't really need the power of SQL Server for that. SQL Server is reliable, but slow. The alternative is State Server, which is substantially faster, but isn't reliable and generally isn't a great bit of software.


And switching session methods is pretty trivial, since all you have to change is the web.config file. Although one issue people occasionally run into is that they haven't marked their objects for serialization. In very rare cases, they can't serialize their objects, but for the most part, it’s just about setting properties correctly.


Typically, most people deal with the issue by leaving session in-process and using a load balancer that supports sticky session, where the load balancer uses the ASP.NET cookie (or IP address) to *stick* a given user to the same web server each time they visit the site. While it certainly solves the problem of session, it undermines the value of a web farm. If the server goes down, the session’s lost. Some servers can end up much busier than others, so you aren't really balancing your load. And server updates tend to be a major pain.


To really load balance, to get the full advantage of your web farm in terms of performance and reliability, you need to get the session data out of the web server and go out-of-process. When you do that, you can load balance properly and go to any web server you want, but it means that session processing takes longer. So originally, our mission was to really look at session and figure out a way to get in-process performance but with out-of-process flexibility.


When we did all the math to figure out exactly why doing session out-of-process was so much slower, we found it was network trips were a major part of the processing time. Every request/response pair with out-of-process session means two additional network trip pairs: to fetch the session data at the beginning of the response computation, and to write the modified session data out at the end of the response computation. But the only reason all these network trips happen is that the request travels all the way to the web server before the server realizes it needs session data. So we thought, “What if we put the session data in front of the web server, so by the time the request gets to the web server, it already has the data?”


That’s what AppScaler does (well, one of the things it does). As a request comes in, it passes through AppScaler, and AppScaler says, “I don’t care what server you’re going to, here’s the session data you need.” Then it attaches the session data onto the request. When the request arrives at the web server, the session provider strips the session data out of the request and the page processes normally. When it finishes computing the response it attaches the session data to the response and sends it back to the browser. On the way out the response passes through AppScaler, and AppScaler removes the session data and stores it away in its network cache, and everything proceeds normally from there.


So suddenly, we’d eliminated all these extra network trips, but we were still out of process, so you still have all that flexibility. Pretty cool, right? Then we took it a step further and said, “Gee whiz, since we’re already here doing this, why don’t we just do viewstate too?” As you know, viewstate can get totally out of hand, typically due to the use of third-party controls, which is why the really performance-conscious sites don’t use third-party controls at all. And giving up third-party controls means either slowing down your development process to create controls yourself, or just not using all the controls that you otherwise might. With AppScaler, you can use all the controls you want (within reason). It takes that viewstate out of the page before it goes to the browser, so you don’t pay the performance penalty.


So fixing session and viewstate were the first features of AppScaler, and the results were pretty impressive—we were really cutting down page sizes and seeing substantial performance gains. And that’s when we had the big realization: Now that we’re sitting here in front of the web server farm where we can see all this traffic, there are all kinds of smart things we can do to optimize the performance of ASP.NET applications!


Fixing browser caching was low-hanging fruit for us. With browser caching, you mark various resource files (images, js and cs files, for example) as cacheable at the browser, normally with some sort of time limit (a day, a week, etc). Once the browser caches those items, it won’t request them again for as long as the cache is valid. That gives substantial performance gains since you cut down a lot of the resource requests that make a web page work.


The downside to browser caching is when you go to update the website. Unless you’re extremely careful, you can end up with browsers messing up your new pages because they use cached items instead of new items. And of course the pages that get messed up are the ones the CEO is looking at, because he hangs out on the site all the time and has everything under the sun in the browser cache. In my experience, people abandon browser caching after an event like that, and never use it again.


AppScaler fixes browser caching by dealing with expiration properly. First off, you specify what to cache in AppScaler, so that you don’t have to fiddle with settings on your web servers. AppScaler just automatically marks those resource files for caching as they pass through on the way to the browser. But then the really clever bit comes into play: AppScaler watches the resource files on the web server so that when there is an update, it sees it and knows the underlying files have changed.


Once AppScaler knows a resource file has changed, it dynamically renames it in the request/response pairs so that the browser doesn’t have it cached. It keeps up the renaming until the cache expires. So suddenly browser caching doesn’t cause problems with website updates.


Our experience with ASP.NET has demonstrated again and again that caching is king. And when we studied the potential of caching with AppScaler, we realized that self-learning caching was the number one performance return we could offer with this idea. Being between the browser and the web farm is the perfect place to cache and to coordinate cache expiries. As a developer, you know you have to cache, and you can write code to do it, but it’s a lot of programming, and it changes the way you have to code going forward. More than that, you have to figure out what to cache. You might guess wrong. Or more likely, because of the time and effort involved, you’re probably only going to cache a few things that are obvious.


AppScaler Response Cache evolved from that experience. It started out as a system for monitoring traffic, looking for where the request/response pairs match, and how frequently a response is different for a given request. It looks at parameters, such as querystring and POST elements to identify different requests. So by watching all traffic going to and from the application, AppScaler learns what to cache, and when to expire it.


Based on those recommendations, you can tell AppScaler to actually cache the items, or you can put it into an automatic mode, where AppScaler will cache what it thinks it should. This automated caching feature is incredibly useful for dealing with Slashdot or Digg events, where suddenly traffic is up 10 or 100 times.


But ultimately, the real advantage is the lack of coding – writing caching code in ASP.NET works, but it slows down the development cycle going forward. AppScaler gives you the same benefits, but without the impact on your development.


Now for the record, if all of this sounds very straightforward, it’s because I’m just giving the highlights here. Making all of this work together has been an extremely complex, time-consuming project. Also, while I’m really excited about it, I want to be clear that this is not going to fix every problem. If your pages are a megabyte apiece and half of that is viewstate, for example, we’re going to have a tough time helping you at any significant level of scale. You’re still going to have to do some basic tuning. But it’s when you get into the really exotic tuning, when you’re doing these miniscule kinds of tweaks and breaking pages down fraction by fraction to find out where you can squeeze a little more performance out of it—the stuff that really impairs your coding more than anything else—that’s when AppScaler can really help you out. And this is just a subset of the things it can do. I listed four features here. There are more than twenty others on the books today, and the list keeps growing.


Monday, May 21, 2007 2:15:50 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Failing From Your Own Success#
Know what to expect when you take your application out of the nursery and into the real world
Friday, May 11, 2007 9:25:52 AM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


Peeking Over the Fence into the Networking Guys' Backyard Reveals a Brilliant Load Testing Solution#

We’ve been going through beta testing at Strangeloop, which means I’ve had the chance to do some serious scaling of ASP.NET. One of the interesting experiences that keeps coming up in this process is the reaction we get from customers when we’re helping them do load testing.


One of the things we can offer our early beta test customers is the opportunity to load test their site, with and without Mobius in the loop. We need the test data anyway, and quite a few candidates don’t really have much in the way of load testing resources ready to go. And then we test their site in our lab with our Spirent Avalanche, and they go “Wow! I need one of those!”


So what’s a Spirent Avalanche, you ask? Funny you should ask… It’s 3Us of load testing love.


Josh Bixby, our VP of product development, noticed it when he was at trade shows. One of the benefits of having our feet in both the development camp and the networking camp is that we naturally see things on the network side that a lot of developers don’t. Josh pointed out that virtually every company making networking appliances had one of these 3U boxes in their demo racks. But I’d never heard of it before. So we checked it out, and realized it was the best answer I’ve ever seen to doing load testing. I know that load testing isn’t something people want to think about unless they HAVE to think about it. But if you do have to think about it, you have to check this out.


I don’t need to emphasize how much of a pain load testing is. Typically, you have two options, both of which suck: If you’re doing it yourself, you may be spending literally a week setting up a load test farm, and you’re probably spending more energy making the configuration work than actually doing the test. Which is no surprise, since most likely you’re using any piece of junk you can find, trying to network together a bunch of machines with different NICs, different performance, different speeds, etc., before you even begin to configure the test. I had one customer that bought me ten identical, dedicated servers for load testing - for about the same cost as an Avalanche - but that’s the exception, not the rule. And it still gives you much less control, you have to do all your own analytics, etc.


It’s easy to think “Oh, I’ll just use Mercury Interactive (sorry, HP Mercury) to do my load testing.” Easy until you see the price. Paying six digits for load testing with a 20% annual maintenance contract isn’t so easy. And that’s just for software – you still supply the hardware. I don’t think anyone told Mercury that the Dot Com Boom was over.


So taking a page from the network guys, there’s a third way to do load testing: You get a Spirent Avalanche, hook it up, and let it do the job. One 3U box with four gigabit Ethernet ports that can generate nearly two million users by itself. So you’ve got the hardware and the software all in one box.


Of course, the Avalanche isn’t cheap either, although they’ve nailed the gradually pregnant business model well – you can rent the gear, and those rental charges get applied to a purchase. We spent less than $100,000 on our 2700 with all the features we needed to do web testing. It also uses TCL-based scripting, which is usually the realm of networking guys, not developers, and can be difficult to understand. TCL provides the Avalanche with the flexibility to do load testing on a lot more than just web stuff.


However, bundled with the Avalanche is a product called TracePlus/Web Detective (Spirent Edition), made by System Software Technology (SST). SST makes a variety of different TracePlus products for networking and web, including this version specifically for working with the Avalanche. TracePlus provides the classic capture mechanisms that you see with most load generating tools, where the tool captures your navigation of the web pages and captures them as HTTP commands. The Avalanche internally converts this to its TCL commands.


The Avalanche has some ability to do reporting internally (pretty graphs), but the main way we’re using it is in “Excel mode”, where it generates CSV files that we can load into spreadsheets for analysis.


We’re also finding that the Avalanche doesn’t understand ASP.NET things like viewstate very well, but then, neither does WAST. We’re using Visual Studio 2005 Team Edition for Testers to get really smart functional testing around specific ASP.NET features.


Even with these complications, it’s such a better way to do load testing than setting up servers, and infinitely better than letting your paying customers do the testing. So if you’re doing load testing, why aren’t you using one of these? Why don’t more people know about this? This is pretty standard equipment if you build networking gear. It’s not like the Avalanche is some new, earth-shattering product. It’s not even mentioned on the main page of Spirent’s Web site?!?


I have yet to find anyone else in the ASP.NET world using a Spirent Avalanche. I really think it’s just a cultural issue, where great stuff is getting lost in translation between the networking world and the Web development world.


Important lesson: If you’re not paying attention to the networking space, you should be. You may just be wasting your time wrestling with a problem that other smart people have already solved. That’s one of the cool things about working with Strangeloop; we really get to straddle the line between those two worlds.


Friday, May 4, 2007 4:40:47 PM (Pacific Standard Time, UTC-08:00) #    Comments [0]  | 


All content © 2023, Richard Campbell
On this page
This site
<June 2023>
Blogroll OPML

Powered by: newtelligence dasBlog 1.9.7067.0

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail

Theme design by Jelle Druyts

Pick a theme: