July 2009
Mon Tue Wed Thu Fri Sat Sun
« Jun   Aug »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Month July 2009

Links for the Week of 2009.07.31

SQL Server

Fast Running Totals solution with ordered CTE update? Who says you need a cursor to get a running total? I’ve typically done these kinds of things with expensive CROSS JOINs and/or nasty INNER JOINs. Good to know there’s a nicer way.

Extended Events Manager Update: Now A SSMS Addin SQL 2008 Extended Events are a powerful new way of troubleshooting problems with SQL Server. One short coming is that there is no UI support for this new feature. (From codeplex)

Development

Think First, Doing Is For Later A non-TDD approach to solving programming problems.

Branch Per Feature Source Control Part 2: How (Theory)

Basecamp, now with more vroom Ever wonder how people go about testing applications to see where there hardware starts to fall apart? Mark over at 37signals did just that and blogged about how they got some impressive performance gains fairly quickly.

Stuff & Things

404 error: building not found

Tom Hanks trash can

The Terror of Isolation

I work in isolation. I don’t mean physical isolation – I have coworkers and we talk and go to lunch and do all kinds of coworker things. I work in physical isolation from other practicing database professionals. My manager is a former DBA, but he hasn’t worked with SQL Server newer than SQL 2005 and most of his experience is with SQL 2000 and Oracle as a developer. The vast majority of the time, this isn’t an impediment to what I do – I have IM, email, twitter, and forums to keep me immediately in touch with my peers. However, this becomes a problem when I want to bounce ideas off of someone.

Over the last month, I’ve been tasked with coming up with and implementing three new SQL Server installations. These are brand new servers that will have brand new drives and we’re starting from the ground up. For those of you who are production DBAs, this might be that terrifying, but keep in mind that 1) I’m primarily a database developer (development DBA, whatever) and 2) I’m a consultant. I’m being tasked with a decision that will last long after I’m gone from my client. While this may be old hat to some people, this is well outside of my comfort zone. Typically I say something like “write the biggest check you can.” Unfortunately, that’s not an acceptable recommendation.

What’s a lone data monkey to do?

I took to Google. Luckily Kendal Van Dyke had written a great set of articles about physical storage configuration. After reading through his series, I was able to determine our disk formatting requirements and justify them to the Windows administrators. I remembered that Rod Colledge had written a post about storage/SAN configuration that I had initially dismissed because “I’m a development DBA and I’ll never have to configure a SAN!” Thankfully I was able to track down Rod’s excellent article on storage configuration and, after a few questions on twitter, Brent Ozar took the time out of his day to answer some of my questions about SANs (turns out they aren’t magic boxes). Brent was kind enough to continue a back and forth conversation via email about my proposed SQL Server configuration. After outlining everything in detail, I was absolutely overjoyed to see the first sentence of his reply contain these words “you made a lot of good decisions there”.

Where the hell am I taking this feel good story?

Remember how I said I work in physical isolation? Well, I still do work in physical isolation. Having access to my RSS feeds, twitter, email, and forums makes that physical isolation a lot less apparent. I’m able to access the collective wisdom of a lot of experienced DBAs, take their combined wisdom, and synthesize a solution that meets the needs of my current situation. Would it have been a lot easier to sit down with someone over coffee and outline the situation and wait for recommendations? Yes. Would I have learned as much? No.

Why haven’t I actually said anything about the configuration we’ve ended up with? One, it’s not actually in place yet. Two, I need to write it up and get explicit approval from management before I release any information to the public. They are quite secretive about their configuration and schema and I can completely respect that. Hopefully, though, I will put the scenario together and will be able to share it with the world.

Links for the Week of 2009.07.24

SQL Server

Learn Microsoft BI So you want to learn all about the BI, do ya? Lots of videos. Lots and lots of videos. They’re all free.

Getting a NEWSEQUENTIALID() How do you get the ID that’s created after an insert if you’re using NEWID() or NEWSEQUENTIALID()? Pat Wright has the answer! (Hint: The answer is not “a taco truck”.)

Development

Nobody Hates Software More Than Software Developers I couldn’t agree with Jeff more. Most software is atrocious. I recently bought a new printer. I wanted to get duplexing to work. I searched for the feature for hours before sighing and decided that it must be hidden in a secret driver on the CD that came with the printer. After putting the CD in the drive, the installer opened, was ugly, ran for five minutes, and promptly crashed while citing that it did not actually know the reason for the crash. The duplexing feature was later found in a secretly control panel option of the generic driver. The point is: software sucks.

What’s new in NHibernate 2.1 Did you know that NHibernate 2.1 is out? Did you know that it has new features? Did you know that Andrei Volkov is using my old blog theme?

Stuff & Things

BRIBERY, THREATS, BROKEN-DOWN VEHICLES, LAWSUITS, PIONEERS, GOOD FOOD: TALES FROM OC’S TACO TRUCKS I love taco trucks, loncheras, whatever you want to call them. The food is hot, cheap, and amazing. Reading the story behind some of them was pretty cool, too.

Columbus Taco Trucks IN the same vein, here’s a blog that maps and reviews all of the taco trucks in the greater Columbus area.

PingWire is a near-live feed of images being posted to twitpic, yfrog, and twitgoo. It’s pretty cool.

From Tables to Objects – Follow Up

First off, I want to say thank you to the Central Ohio .NET Developers Group for giving me the opportunity to speak last night. I really enjoyed it and I was glad that I could share some of the things that I’ve learned with such a great group of people.

Everyone at CONDG was very welcoming, as they always have been, and the questions from the audience were fantastic. It’s always good to hear that I’m not the only one who has run into some of the scenarios I mentioned in the presentation, and it’s also always great to hear real life success stories from developers who have made use of the techniques that I’m speaking about – in this case NHibernate.

I have to take this opportunity, as well, to think my host, admin, and brother who took time out of his evening to make sure that the presentation resources automatically posted on time through WordPress. Unfortunately, they didn’t post on time and he looked into to the problem to make sure that the resources would be there by the time the presentation was done. So a big thanks to Mike for keeping things running and going the extra mile to make sure the resources were available for everyone to download when the presentation was over.

97 people were able to make it to the presentation. If you weren’t able to attend and would like to see this presentation, let me know. If there’s enough support I can either schedule a LiveMeeting to do this presentation again one evening, or I can record it and make it available online for viewing. Let me know in the comments or send me an email and let me know.

From Tables to Objects: Resources

Here are the slides and sample code from my recent presentation “From Tables to Objects” that I gave at the Central Ohio .NET Developer Group.

To those who did not attend, you can skip the rest of this post unless you want some NHibernate and SQL Server resources.

NHForge – this is the project home page for NHibernate.
Fluent NHibernate – download Fluent NHibernate.
NHProf – NHibernate Profiler
NH Contrib – Additional, non-core, NHibernate libraries, includes NHibernate.Linq

What’s new in NHibernate 2.1

Using Sparse Columns

If you were at CONDG and would like to rate my talk, please go to SpeakerRate and let me know what you thought. I’d love to hear your open, honest feedback so I can improve the information and experience I share with you.

To create the sample database for this project, create a copy of the AdventureWorks database and rename it to ftto. The rest of the data and tables created are in the ftto.sql script. It’s just that simple.

From Tables to Objects Source Code
From Tables to Objects PowerPoint

So Much Slacking, So Little Time

I’ve been slacking on the blogging front. Which is a shame, because I’ve been busy doing some really fun things recently. Want to know about one of them? I hope you do, because I’m going to talk about it regardless.

I spent last weekend at the Columbus Give Camp. What was the point of this? Well, the point of Give Camp is for a bunch of geeks to get together and help out various charities.

Over the course of the weekend, I worked on the website for HopeMongers. A lot of the underlying work had been completed, but the public facing portion of the site needed some style and panache to bring it inline with the expectations of Sam Henry, the man behind HopeMongers.

There are a few great things that come out of a weekend like this one.

  • You get a chance to provide much needed help to a charity. Would the work on HopeMongers have been completed if we weren’t involved? Probably, but it would have taken a lot longer.
  • You get to work with a lot of talented people, while you help out a charity. If I were doing this alone, I might not have had as much motivation – I won’t lie about that. But working with other people is great. Especially when you’re all in the same room, sitting around a single table, writing code until the small hours of the morning (or if you’re like me, late hours of the evening). There’s a great collaborative, startup, feel to the whole thing. Ideas bounce around. People help each other solve problems. There’s so much collaboration.
  • You learn a lot about yourself. I learned that I really liked working with Sam on the HopeMongers website. Which in turn made me realize that what I really liked was helping out.

Thanks to everyone involved in the Columbus Give Camp for putting things together and letting me help out by building a database schema for the back end of the site.

A big thanks to Steve Andrews, Chris Funk, Kevin Kuebler, Marwan Saleh, Phil Japiske, Kevin Malone, Carey Payette, and anyone else who worked on the HopeMongers project that I left out. You guys made it a great weekend and I’m glad I had the opportunity to work with all of you.

And a special thanks to Sam Henry for the wonderful project, the great experience, and the opportunity to keep giving back.

Links for the Week of 2009.07.17

SQL Server

File/Folder/Share Permissions for DBAs and Database Developers So you thought you knew everything you needed to know about security? Take a look and make sure your assumptions were correct.

Groovy Baby, Yeah Tony Bain hits up the sweet spots from Groovy Corp’s press release for a new relational database platform. New DB?!? That’s right a new, in memory, RDBMS.

Development

The Law of Demeter Is Not A Dot Counting Exercise Phil Haack gives the best explanation I have ever read for the Law of Demeter, which is oft quoted by developers and oft misunderstood by me.

In Branch Per Feature Source Control Introduction and Part 1: Why? Derick Bailey is going over a great idea to isolate source code within source control. Rather than branching for each release, branch for each feature. Hit up the articles for an in depth look at this idea.

Stuff & Things

Insanely Twisted Shadow Planet New Trailer Michel Gagne is an illustrator who is working on what looks like a phenomenally beautiful video game. Check out the trailer for some glory.

A Beautiful Method to Find Peace of Mind

Crash Bonsai Thanks to William Gibson I became aware of this art.

It’s Always About You

I’m in the process of finishing up a presentation for the Central Ohio .NET Developers Group, and this got me to thinking about how I structure my presentations. Luckily, right around the time I was musing on this subject I ran across Jeff Atwood’s article Who Needs Talent When You Have Intensity? (which lead to Users shouldn’t think about YOU).

I’ve long held the opinion that a good presentation is one that is immediately useful in your day to day work. After reading Jeff’s post, and Kathy Sierra’s post that Jeff linked to, I’m revising my opinion.

A great presentation helps the audience do their job better.

Thinking back over the presentations that I’ve given in the past, the ones that I’ve felt were the most successful, and the ones where people have given me the best reviews, have been the ones where I’ve gotten out of the way and talked about how to do a better job rather than how I did my job well.

One thing that I have long held is that it’s okay to say “I don’t know” but only when you follow it with “talk to me afterward and we’ll figure out how.” Ultimately, when presenting, it’s the presenter’s job to help the audience learn the subject matter. If the presenter doesn’t know, that’s okay. But, it’s important to make sure that the audience is given an avenue to find the answer – either through an email follow up, a follow up later that day, or follow up by the next day of class.

My final thought is that Kathy Sierra hits it right on the head: “Too many learning experiences and books leave the learner feeling impressed as hell with the instructor/author, but… stupid.” The learning process is about the student, not about the teacher. When I think back to the past few presentations that I’ve attended, the presenters haven’t included themselves more than a few times. On the rare occasions when a presenter has said “I”, it has been in the context of “I made this mistake a lot until I got the hang of this. Here’s how you can avoid this and why”. When they include themselves, presenters aren’t talking about how great they are: they’re exposing when they made mistakes and how everyone else can learn without having to repeat that mistake.

In the end, the only thing that matters is that the audience is learning.

CBusPASS Meeting in Review

We had another CBusPASS meeting last night. I would love to say that things went off without a hitch, but that was not the case.

Due to circumstances outside of anyone’s control our speaker, Andy Leonard, was very late getting signed in to LiveMeeting. What do you do when you have a room full of SQL Server people? You talk shop!

Over the course of the evening we talked about how to find the date when data was last inserted into a table, how to cope with rapidly growing data, future presentations for the user group, future presentations within PASS and the local community, performance on virtual machines, and a few other things that I can’t remember off the top of my head.

Andy’s presentation was phenomenal. I thought I knew at least enough about SSIS to call my self competent. After last night’s presentation on Change Data Capture and Incremental Loading with SSIS, I know that I have a lot left to learn. The best thing about a great presenter and a great presentation is that 1)they make it look effortless and 2) you walk away having learned so much without realizing it. I know that I took away a great deal from the presentation. Andy graciously stuck around on LiveMeeting and answered audience questions. A big thank you to Andy for donating his evening to sharing his knowledge and experience. And an even bigger thank you to the Leonard family for letting us borrow Andy for the evening.

Going along with last night’s presentation topic, here are some SSIS tips.

Links for the Week of 2009.07.10

SQL Server

Object Naming Standards Scott Herbert put up an overview of the naming standards that he uses. Like the obnoxious lout that I am, I commented. The point is, of course, to use naming standards. Take a look at Scott’s for an example.

No SQL There’s a big hullabaloo going on about this whole “No SQL” movement. Here’s Andrew Fryer’s take on it.

Performance Counter for SQL Server Ever want to know what those performance counters actually mean?

Development

Thrive for Developers is Online Brian Prince, a great guy and former co-worker, highlights some of the benefits of the newly launched Thrive for Developers program. Check it out for some more info on how to improve your career and how MS can help you do it!

10 Useful Firefox Extensions to Supercharge Firebug Firebug is the best tool for web development that I have found so far. These extensions make it even better.

Stuff & Things

Anticipate Your Interviewer’s Next Question to Ace Your Job Interview Good interviewing advice can be found here.

Day made, mind blown: it’s Portal in ASCII

Oh No You Didn’t! Everyone needs a chair like this.

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