March 2010
Mon Tue Wed Thu Fri Sat Sun
« Feb   Apr »
1234567
891011121314
15161718192021
22232425262728
293031  

Month March 2010

Free SQL Server Training in April

I’m going to be speaking at a few events in April. I bet you want to come visit and hear the crazy sounds that I’m going to be making!

Thursday April 8th – Columbus, OH

Fundamentals of SQL Server Internals

The Abstract: Want to know what makes SQL Server tick?
Ever wonder what SQL Server is doing when you run a query?
Ever wonder which parts of SQL Server are responsible for specific functionality?

Jeremiah Peschka can’t promise answers to every question, but he can set you on the path to knowledge about the inner workings of SQL Server.

Location: Battelle for Kids – 1160 Dublin Rd Suite 500, Columbus, OH 43215

Time: 6:30 PM, but you can show up at 6:00 PM for refreshments and socializing.

The Details: This is a fun little romp around SQL Server’s internals. This isn’t intended to be an exhaustive introduction. It’s supposed to be a fun look at how SQL Server works internally and give you more information to get around.

Saturday April 10 – Richmond, VA

I’m speaking at SQL Saturday 30 in Richmond, Virginia!

Fundamentals of SQL Server Internals

This one starts at 8:30 in the morning, so bring your coffee!

A Dynamic World Demands Dynamic SQL

The Abstract: Dynamic SQL is a misunderstood and much maligned part of a DBA’s tool kit – it can be used to solve difficult business problems, respond to diverse data needs, and alleviate performance problems. Many DBAs reject dynamic SQL outright as a potential source of SQL injections, being poorly performing, or just for being a hacky solution in general. Not so! Jeremiah Peschka has been making extensive use of dynamic SQL throughout his career to solve a variety of problems. He’ll set about dispelling these misconceptions and demonstrate how dynamic SQL can become a part of every DBA’s tool kit.

The Skinny: I sometimes catch flak for this, but I use a ton of dynamic SQL on a daily basis. It’s the only way I could possibly build some of our most complex reports. Frankly, dynamic SQL can perform just as well as anything else that you’re doing so why not take advantage of the tools at your disposal? Come along and learn more.

Saturday April 17 – Chicago, IL

Double whammy! You can travel to Chi-town and see me present both of my talks again but in reverse order!

A Dynamic World Demands Dynamic SQL

Bring your dancin’ shoes we’re getting that party started at 9:00 AM right after the welcome and keynote.

Fundamentals of SQL Server Internals

Less dancing, more learning this one goes on at 3:00PM. Hopefully your brain won’t be full by this point in time. If it is, I suggest that you empty it.

Double MCITP

Yesterday I took the afternoon off of work with the intention of spending the entire afternoon taking two Microsoft certification tests. I had no intention of passing the tests, but I went ahead and scheduled to take 70-432 and 70-450 back to back

I was pretty nervous about the exams. After 18 months on the job as a DBA you would think I could have passed them in my sleep. Of course, if I didn’t pass it, was I really that good at my job? Sure, servers weren’t going to suddenly start exploding if I failed one or both exams, but it would have been a huge blow to my confidence.

Thankfully, I passed.

This was a pretty big milestone as I’ve been a developer for 90% of my professional career. It’s only recently that I’ve switched around and gone with the support route. Even then I don’t consider myself a DBA. I solve problems. Right now SQL Server is how I accomplish that. This certification is just some icing on top of the last 18 months of experience. It might not prove that I know my shit, but it proves that I know a minimally acceptable amount of somebody’s shit.

How can we grow the pool of Summit speakers?

Allen Kinsel, my brother in arms for the Summit 2010 Program, posed a question about how to grow the pool of speakers for the PASS 2010 Summit. Allen has proposed that in order to bring in more speakers, we limit things to 1 session per speaker. With 168 sessions across the board, that’s a lot of potential speakers. Currently, we limit things to 2 sessions per speaker.

What are your thoughts?

This poll will close on Thursday, March 18 at 8AM EST and I’ll publish the results in a separate blog post.

[poll id="2"]

Pay Attention

Suck it, Gilgamesh!

Are we not men? No, we are Hammurabi!

What are you doing right now? How many different things are you trying to balance? Stop all of them and pay attention. No, seriously, do it. Nobody is going to die in the next five minutes. Unless you’re in surgery or something. In which case go do your job.

I’m here reminding you that you need to pay attention.

This isn’t like in Middle School history when you were learning about the Epic of Gilgamesh and how he killed a demi-god with the help of a hairy little man and together they survive watching the movie Ishtar and end up wearing a cow’s ass as a hat or something. Did you pay attention to that story? Yeah, me neither. This is nothing like that.

I’ve noticed something that bothers me – we constantly distract ourselves. People are always on the phone or listening to music or basically not paying attention. Stop it.

Breathe

Take a deep breath and let it out slowly. Breathe in. Breathe out. Fill up your lungs, focus on breathing.

Do you feel that? That’s you calming your tiny little primate brain and making it pay attention to one very simple thing that it already does on its own. Feels good, doesn’t it?

Keeping doing for a bit. Focus on your breathing. If you drift off for a second, just focus on your breathing. Your mind is still there, you just shifted your focus. This page will still be here when you get frustrated.

Think

What’s the point of this?

Honestly, the point was to get you to stop for a minute.

Think about how often you’re constantly worried about what to do next. Think about how often you’re thinking about a meeting you had earlier in the week, an argument, or anything else that happened in the past. You think about the past and the future a lot, don’t you?

Now, think about how much time you spend focusing on right now. Be really honest with yourself. I bet it’s not a lot.

Have you smelled this finger?

This is really mature, guys.

We constantly distract ourselves. I have friends who listen to books while they run because running is boring. People talk on their phones while they shop and drive because it’s boring. People will do anything to distract themselves from the task at hand because it’s boring.

You’re boring.

Did you perk up and pay attention just now? I thought so. You probably aren’t boring. You’re probably a fascinating person with diverse and varied interests and I’m sorry if I hurt your feelings, but you’re boring the shit out of me. Fact: life is not full of roller coasters and orgasms. Sometimes you have to peel potatoes. When you’re peeling the potatoes, peel the potatoes. Don’t think about how you’re going to have pie for dessert or how your 14 disk box set of Quantum Leap is going to come in the mail in a few days. Just peel the potatoes.

Be

Zen students are with their masters at least ten years before the presume to teach others. Nan-in was visited by Tenno, who, having passed his apprenticeship, had become a teacher. The day happened to be rainy, so Tenno wore wooden clogs and carried an umbrella. After greeting him, Nan-in remarked “I suppose you left your wooden clogs in the vestibule. I want to know if your umbrella is on the right or left side of the clogs.”

Tenno, confused, had no instant answer. He realized that he was unable to carry his Zen every minute. He became Nan-in’s pupil, and he studied six more years to accomplish his every-minute Zen.

from Zen Flesh Zen Bones, compiled by Paul Reps and Nyogen Senzaki

To put it another way – an ordained monk was so humbled by his own inattention that he once again became a student. We all slip up, but if you try you can manage to pay a little bit more attention to what you’re doing. Take pleasure in the things you’re doing. When it’s time to peel the potatoes, peel the potatoes. When it’s time to indulge in your Margaret Thatcher fetish, don’t call me.

T-SQL Tuesday 4: Io, Io, it’s off to disk we go

Fact: the earliest recorded use of cloud computing was ancient Greek porn

Io was a nymph. True story. Apparently, her father was some kind of river god. In modern times that means you’re likely to catch fire. Back in the days when the Greeks were in charge of things being a river god meant that you were somebody (the Greeks thought the earth was a giant brass plate floating a huge river, all of which was created by perverts who lived on top of a mountain). So, apparently Io’s dad was important.

Anyway, it is rumored that Io was attractive. So attractive, in fact, that Zeus, lord of the perverts, saw her taking a bath and got more than a little bit aroused. Zeus then behaved in a way that would end up in a savage beating and restraining order back where I come from – he pestered Io for nookie until her father drove her out of the house – probably because some horny lunatic who could shoot children out of his forehead was bothering his daughter. Io, being a bit strange in the head, relented. Or something. My records aren’t 100% clear seeing as how they’ve been written on pottery. The point is that Zeus turned into a giant cloud and turned Io into a cow (no, your hooves don’t make you look fat).

Somehow Zeus’s wife got involved and there was bondage involving a cow tied to a tree or something. Eventually Io gets turned back into a real live girl and gives birth to Zeus’s son. Which brought about an ethics probe into cross-species cloning.

Disk… disk… oh yeah I already mentioned that the ancient Greeks were clearly insane and thought that the world was a giant metal plate floating on a huge river name Oceanus all of it encased in a hemisphere with clouds and the sun and the moon and stuff painted all over the inside of the hemisphere.

What’s outside of the hemisphere? Shut up, that’s what. It’s turtles all the way down.

There’s a bit of humor thrown into your T-SQL Tuesday

My MacGyver Moment

David Stein started this current blog meme. He passed the buck on to Brent Ozar, who shared a horrifying tale of his time in the trenches as a developer. Brent then thoughtfully pointed at me and demanded that I carry on the blog meme torch.

Blog memes are great. They give me an opportunity to pretend to be inventive and creative, take someone else’s great idea and spin it in a centrifuge to extract the good stuff and then pass the detritus along to someone else to deal with. As a career developer turned developer berating apparatus, I have seen my fair share of cobbled together dung heaps. In fact, I would be proud to have someone call some of my solutions a cobbled together dung heap.

Bad Process? Just Add Software

Many years ago I was asked to put together a simple proof of concept application showing code movement using VSS automation. The phrase “simple proof of concept” should have sent me running. Of course, I’m assuming that the me of 5 years ago had any sense in his head.

I’ll back up a minute and let you see the whole situation. This organization had a complex development lifecycle. Developers were frequently developing several releases into the future in a combination of major and minor releases. Hot fixes would go out in production and when the next major release went out the icon be cornflower blue but the hot fix would be nowhere to be found. The hot fix would be hot fixed into production and the icon would be back to alice blue. The situation was, in short, a nightmare. What makes the nightmare worse was that it was a process nightmare: development practices in this organization dictated that multiple releases be developed simultaneously by separate teams.

Think about complex, line of business, software. Important software. Software that is core to your business. Imagine that three separate teams of developers are actively developing new features and fixes at the same time in three separate source trees. This is exactly what was going on at this organization. My job was to automate the problem away with software.

Bad Software? Just Add More Software

This organization was heavily invested in using Visual Source Safe. For those of you young enough to have worked with modern version control systems (such as a team of scribes working around the clock), let me tell you about VSS. VSS exists entirely on the client computer. VSS’s source control mojo operates through a network share using a combination of black magic and pure luck. Like all things that work with luck, it fails. It is safer to print your source code, shred it, and burn the paper shreds that to keep your code in VSS.

Despite the pain of VSS, VSS was the platform. How do you automate a platform when there is no server-side component? You install a VSS client on a server and you begin automating it. Thankfully VSS supplied an API – a poorly documented COM+ API.

I created a proof of concept application that showed code motion through various stages of development in VSS. The client was happy. The client signed a statement of work. We took their money and strode purposefully towards what appeared to be a set of rotating blades.

As the project unfolded it became very apparent that no amount of software could solve this problem. The problem was process, not software. Valiantly, foolishly, 26ishly, I soldiered forward. I worked 14 hour days. I build a cobbled together GUI that attempted to model a software development process that was beyond complicated. The GUI was cumbersome to use and brittle to code. A small change in one line of code meant that 17 other bugs showed up in various parts of the program. There were easily 100,000 lines of code in what should have been a simple management application. Edge cases lead to other edge cases. After one marathon 24 hour programming session (after four 18 hour days) the GUI tool finally worked. The users could configure a process. A process that potentially didn’t work.

Throwing Worse Code After Bad

The actual automation was a supposed to be easy. The users could apply VSS labels and the automated software would, in theory, pick up the changes within 15 minutes. The automated software would pick up the changes on a regular basis but it frequently exploded in a fiery error when confronted with real world problems. When two teams are actively developing against the same code base, code merges don’t go very well.

The process was intrinsically human but the client wanted automation. Being young and stupid, I didn’t know enough to say no. I cobbled together a working knowledge of text parsing and attempted out outfox the people who wrote the VSS Merge Tool. Armed with a fistful of academic papers, articles, and APIs I attempted to build a better merge tool using existing libraries.

At the end of the day, the tool built a log of errors using the unified diff format (which no human can read), collected the log and emailed a copy of it to the developers who committed the conflicting files. Or, it would have had anyone used the software.

Didn’t You Read the Manual

I actually wrote a software manual. It was actually a good manual. Want to know how I know? I gave the manual to the project manager and had him create instructional videos. They worked.

The project sponsor was promoted before the project was completed. The primary users transferred to another department. The new users were too busy to read the manual and expected the software to work easily and obviously. Who wouldn’t, right?

The GUI tool looked like the directory structure in VSS, but it didn’t reflect the changes in VSS, it simply let the users configure how the tool should behave. Sound confusing? It was.

At the end of the day, I had written a complicated manual for a complex piece of software that actually worked. It was a cobbled together solution built out of several hundred thousand lines of buggy .NET 1.1 code sitting on top of a buggy COM+ API intended to solve a buggy process. It’s a miracle that this software abomination wasn’t fueled by the shattered dreams of orphans.

Silent Rage Would Be Better Than This

I said that was the end of the day. It wasn’t. I got one support call about the product about 3 months after it had been delivered, signed off, and paid for. I went back to the client’s location and sat down with the current team to learn their problems. None of them knew how to use the software. No original team members were around who had been involved in the original project. All of the original documentation had been lost in some kind of bit rot tar pit.

My beautiful, cobbled together, duct tape and baling wire solution would never see the light of day. It may have been ugly, but it worked. There’s nothing like feeling the triumph of having saved the day and then having that day get flushed right down the toilet.

Calling Other MacGyvers

Since Brent Ozar stole my default victim, Matt Nowack, I’m going to have to find more victims. I’m going to point the finger of shame at TJay Belt, Grant Fritchey, and Alex Moore.

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