Stir Trek: Thor Edition (the Aftermath)

I spent the weekend at Stir Trek: Thor Edition in Columbus, OH. While I had a blast speaking about databases, I had even more fun attending and learning.

Programming the Cloud with HTTP/REST

I knew about REST before I attended this talk and I’ve done a bit of REST programming (right before I decided to nerd out on data), but Mike Amundsen did a great job of convincing me why I should care about REST as a programming paradigm for web developers. I’m not going to go out and start writing code to build my own REST services, but I have a better grasp of how I can work with developers to build robust data driven services and applications and do some incredibly cool things in the process.

CSS 3: Something for Everyone

John Keyes delivered a presentation about the basics of CSS 3. I knew there were some great features of CSS 3, but I also knew that the spec is incredibly broad. I was a bit worried that John’s presentation was going to be a whirlwind tour with very little depth. Instead of a shallow romp through CSS 3, John delivered a solid presentation that worked through some core features of CSS 3 in a practical manner and built up on them to demonstrate new techniques with real world value. Except for maybe the demo that made a rectangle swirl into a circle, that was just cool.

John gets mad props for filling his slide deck with Jurassic Park references. I had some laughs while I got my learn on, and that’s a good thing. I’ve worked with John on presentations in the past and he’s become a phenomenal presenter, programmer, and web developer in the time that I’ve known him.

Real World jQuery

Matt Nowack had the difficult job of speaking right after lunch. He gave a great talk about jQuery 1.5 and 1.6. It turns out that Matt wrote the talk for jQuery 1.5 and did a great job of introducing some of the newest features of my favorite JavaScript library. jQuery 1.6 came out recently and it made parts of Matt’s talk irrelevant. Matt took it in stride and wrote new content earlier in the week and delivered a top notch presentation that was educational and entertaining. I overheard one attendee say that they were rushing off to Matt’s presentation because it was bound to be good. They were right and I was also right to pay them 15 bucks and a box of Milk Duds to yell it at the top of their lungs. Good job, Matt.

The Rest of My Time

I spent the rest of my time preparing and giving my talk The Database is Dead, Long Live the Database. If you attended, the resources page will always be online at http://brentozar.com/stir-trek-thor-edition. If you missed it and you wanted to see it, you’ll be able to catch it on June 28th at 8:00 PM Eastern through the PASS Application Development Virtual Chapter.

I was incredibly flattered when Matt Casto asked me to speak at this event, way back at Code Mash. I’m glad that he was clearly drunk and thought I would make a great speaker. You can’t imagine how happy I am that he accepted the bribes I sent his way, just in case he sobered up and didn’t remember asking me to speak. Luckily, most of that’s a lie. I did, however, have an awesome time in Columbus hanging out with old friends, hopefully making a few new ones, and only telling one STD joke during my presentation; nice try, guy in row three!

In summation: thanks Matt, thanks Stir Trek, and thanks Columbus!

Links for the Week of 2009.10.09

SQL Server

Why I prefer surrogate keys instead of natural keys in database design Mladen Prajdic put together a great article about using surrogate keys in database design. The best part is that a lot of bright people sounded off in the comments.

Donald Farmer Discusses the Benefits of Managed Self-Service BI I spoke with Donald Farmer about this topic when I was at the Richmond Code Camp last weekend. This is an incredible topic that has a lot of promise for the future of Business Intelligence.


Mastering CSS Coding: Getting Started CSS is difficult to master. Very difficult to master. However, once you understand how CSS works it is a very powerful tool.

Multiple View Engines with MVC Turbine One of the coolest things about ASP.NET MVC is the flexibility it brings to ASP.NET web development. Javier Lozano demonstrates how it is possible to use multiple view engines within the same page.

Stuff & Things

9 Ways to Make Your Writing More Compelling 9 great tips for dramatically improving your writing.

Freelance Contracts: Dos and Don’ts If you’re looking to freelance, it’s important to make sure that your contracts are in order. This can cause no end of pain, trouble, and difficulty if your contracts are ambiguous. Smashing Magazine has some great information to make sure your contracts are in good working order.

Cyanide & Happiness

Columbus Give Camp

The Columbus Give Camp site has gone live.

What’s a give camp? Basically, to paraphrase the about page, a give camp is an opportunity for developers to give back to the local community by contributing time and effort to create custom software for non-profits.

How can you help?

Why am I plugging this?

  1. It’s a cool idea
  2. I designed and built the database
  3. I plan on being there

What are you waiting for? Head on over to Columbus Give Camp and volunteer!

Links for the Week of 2009-02-20

SQL Server

Missing Index Information and Query Stats Grant Fritchey put together a nice little query to pull XML query plans out of the DMVs. Thankfully, these plans can also tell use which indexes are missing

Scalar Functions vs. Table Valued Functions vs. Inline Code Aaron Alton does some testing on these three to determine which is the most performant.


Reducing the cost of getting a stack trace Exceptions are expensive. Getting a full stack trace is expensive. Ayende Rahien shows you how to make this a little bit cheaper.

GUI design and prototyping tools We’ve all had to create a UI at some point. Fabrice Marguerie has a list of some great UI prototyping tools. (Also check out the UI design pattern library post)

Stuff & Things

20 tips for better conference speaking Cameron Moll is a designer whose skills I’ve greatly admired. But, in addition to being a phenomenal designer, he’s also a great speaker. Here he shares some tips to help the rest of us become better speakers too.

Public Speaking: A Primer Paul Randal provides a nice introduction to public speaking. Like Cameron’s article, there are some great items in there. Yes, I do have speaking and presenting on the brain. I’m going to be presenting three times in the next two months.

IE7, dropdowns, and z-index

I spent most of yesterday and most of this morning battling with a IE7 display bug.

Back story: we are using jQuery’s superfish drop down menus (a jQuery based implement of suckerfish/son of suckerfish) for site navigation. Everything works great in Firefox 2/3 and Safari. I’m going to assume that IE6 looks great as well since suckerfish is known to work well in IE6.

IE7 is a different story.

There is a large image directly beneath the navigation menu. Unfortunately for me, in IE7 the menu was being rendered beneath the image, despite having a z-index of 1001.

After some careful (and careless) digging and googling, I came across a solution.

To summarize, IE7 will not render the menu with the appropriate z-index unless that z-index is present on the top level :hover style. To clarify:

.sf-menu, .sf-menu * {
margin: 0;
padding: 0;
list-style: none;
.sf-menu {
line-height: 1.0;
.sf-menu ul {
position: absolute;
top: -999em;
.sf-menu li:hover {
z-index: 100; /* This is the important style directive, without it IE7 chokes */
.sf-menu * li:hover {
visibility: inherit; /* fixes IE7 'sticky bug' */
font-weight: bold;

IE7 Suckerfish Hover CSS

This site is protected with Urban Giraffe's plugin 'HTML Purified' and Edward Z. Yang's Powered by HTML Purifier. 531 items have been purified.