Tag omgponies

Links for the Week of 2009.06.12

SQL Server

Denis Gobo provides a double dose of dynamic SQL hotness via Changing exec to sp_executesql doesn’t provide any benefit if you are not using parameters correctly and Avoid Conversions In Execution Plans By Using sp_executesql Instead of Exec. Following his tips in here will net you some considerable benefits in how your dynamic SQL behaves and performs in your production applications. The best part is that he provides a huge amount of example code to back up everything he’s saying.

Free SQL Server tools that might make your life a little easier Mladen Prajdic maintains an amazing list of free tools to help data folks get their job done. SSMS Tools Pack (which Mladen created and maintains) is incredibly helpful. I suspect that if he finds these other tools useful, they’ll probably save you many many hours over the years to come.

SQL Server Troubleshooting Tips and Tricks This isn’t a blog post so much as it is really important to keep around. It’s just a list of tips and tricks to keep things easy and painless with SSMS. If you didn’t check out the pain of the week webcast with Michelle Ufford and Brent Ozar on SSMS, you should do so when you get the chance, it’s well worth it!

More SQL Server Training Videos Training. Free. Videos. I’m in there, that’s really all the reason you need to visit that link.

BONUSTen SQL Server Functions That You Have Ignored Until Now Bonus link from Denis Gobo, once again, covering some great, little known, SQL Server functions.

Development

Unit Testing is Not a “Figure It Out Later” Read this. Read this now. Do it. We’ll still be here. Stop what you’re doing and read this. I cannot stress how important it is for you to read this, even us data folks. If I could put a blink tag around this paragraph, I would. (Thanks to Stephen Wright for finding this link.)

Defensive Programming – Assumptions Must be Guaranteed or Tested Aaron Alton blogs about the importance of defensive programming. While this is specifically from a SQL Server standpoint, it’s important no matter which language you’re using. In fact, Aaron proves an important point – you can put any development practice to use in any language.

Stuff & Things

Improving your intranet – keep it sustainable using kaizen – Patrick Walsh talks about using kaizen to produce evolutionary improvements to an intranet. You could do this with anything, really, but it’s a good read either way you look at it.

I cheated and stole the last two links from Lifehacker, but they’re just too good to not share.

CopyPasteCharacter.com Makes Special Characters Easy to Paste Yup, easy. Nice. Easy mode: engage.

LiberKey Installs 200+ Portable Applications I have too many thumbdrives laying around the house. Now I have a use for them.

Splitting Strings in SQL

Let’s say that you have a column that contains some goofy data and it looks like this:

USA/Ohio
USA/Indiana
USA/Iowa
UK/Scotland
UK/England

So, how would you typically split such a string to only get the part after the ‘/’?

Well, here’s how I did it:

IF OBJECT_ID('tempdb..#tmp') IS NOT NULL
  DROP TABLE #tmp;
GO

CREATE TABLE #tmp
(
  s VARCHAR(255)
);
GO

INSERT INTO #tmp (s) VALUES
('USA/Ohio'),
('USA/Indiana'),
('USA/Iowa'),
('UK/Scotland'),
('UK/England');

SELECT SUBSTRING(s, CHARINDEX('/', s) + 1, LEN(s)) -- this is what does all the work
FROM #tmp;

But, apparently, there’s a simpler way:

SELECT PARSENAME(REPLACE(a, '/', '.'),1) 
FROM #tmp;

It’s a bit hacky, but it works.

Basically, it takes advantage of the PARSENAME function to grab specific sections of a period delimited string, as it it were a SQL Server object.

Now you know. Paypal me some money if you find this useful and pass it off as your own work of genius.

Links for the Week 2009.06.05

Important Note: These are yesterday’s links. Not today’s. That’s why the date is wrong.

SQL Server

Really Search Cache for Execution Plans Jason Strate revists his code that finds the last plan that was used for a procedure.

Reasons for NOT using Varchar(MAX) Pat Wright brings back the argument of why you should or shouldn’t use varchar(max). You can clearly tell from the title how he feels. I’m quoted in this one, so you probably know how I feel. Read it. Learn it. Love it. SQL! (Yes, I know I said ‘field’ instead of ‘column’. Bite me.)

Development

Fighting technical deb with the wall of pain Technical debt is an insidious foe. Technical debt is that extra effort you need for future development because you made a quick and dirty design choice at some point in the past. This crap is poison.

Coding like it’s 1999 Cameron Moll put together a great overview of why he’s moved back to using the HTML 4.01 DOCTYPE. Just don’t use tables, okay folks?

Poor man’s guide to database optimization – by the Marquis de Sade Ever wonder if your code is being really crappy and executing N+1 selects for everything in a collection? WONDER NO MORE! With Ayende’s newest bit of code wizardry you can have a configurable wait time between each query executed. All of a sudden, you too will be dropped into your DBA’s nightmares as you realize that some programmer’s horrible, horrible code is slowly destroying the database!

Stuff & Things

Calvinball Projects Calvinball is the greatest game ever. Running a project like it’s a game of Calvinball has to be fun, right?

Feng Shui On Steroids: Design Your Space to Achieve Your Goals Jonathan Mead writes about how to use your environment to influence your ability to meet your goals. This looks like a great way to go about hacking my workspace and make it easier to get myself into a working mindset.

Lifehacker Pack 2009: Our List of Essential Free Windows Downloads Free software. Good stuff in here. Get it.

Links (6/4/2009) Steve PIetrek’s list o’ links from earlier this week has some gems in it, especially for software developers.

How to Lose Weight by Eating More Everything in here is true. “Diets” suck. They don’t work forever. There are good ideas in here on how to change the way you eat to be healthier.

Links for the Week 2009.05.22

Big pile o’ link love this week. Honestly, I didn’t include a ton of GREAT links from Brent Ozar because people would start to think that Brent Ozar pays me to link to his site and say Brent Ozar a lot. He doesn’t, but if you click on the links to Brent Ozar maybe he’ll see where the traffic came from and pay me to provide links to Brent Ozar

SQL Server

SQL Server 2008 Developer Training Kit Available for Download Denis Gobo provides a link and a quick summary of Microsoft’s most recent training offering for developers that will help get people up to speed with SQL Server 2008.

PASS Virtualization Virtual Chapter That’s right, we have a new thing at PASS. Well, the same old thing has a new name. SIGs are now Virtual Chapters. And Brent Ozar is now in charge of the PASS Virtualization Chapter. Check it out!

Download – SQL Server 2008 Developer Training Kit Free training. Free training. Freetraining. freetraining.

Excel Functions for SQL Server Sometimes I’ll find myself using SQL Server and longing for something from Excel that one of my more management-type friends has shown me. Now I can, in theory, have some of that Excel love right in SQL Server.

What’s a ‘DBA’? I’ve known for a long time that, while I love data, I’m not a DBA… not 100%, at least. Sam Bendayan answers the question and talks about what job title options there are for database professionals

Development

MvcFluentHtml – Fluent HTML Interface For MS MVC ASP.NET MVC doesn’t us a bad method to generate HTML, but there are definitely smoother ways, depending on how preference. Fluent HTML uses one paradigm to make it a bit easier to generate HTML in your views. It’s closer to how Ruby on Rails does things, and I like Rails. A lot. Almost as much as I like SQL Server.

Dear Art Director…

Stuff & Things

The Information Architecture of Personal Music Collections Dan Brown, famed Information Architect not famed author, spent a lot of time thinking about how people interact with music libraries. The poster is from 2005 but, shockingly, not a lot has changed since then.

11 Striking Findings From an Eye Tracking Study Eye tracking is some great stuff, it’s right up there with click tracking. It helps us, as bloggers, figure out what you, the readers, are paying attention to.

How to Maintain a Healthy Lifestyle When You’re Too Busy To Care Title says it all. Lazy? Want to get in better shape? Do this.

Evil Lair: On the Architecture of the Enemy in Videogame Worlds I don’t know what to say about this, really. This is a fascinating article about how architecture current works its way into video games and also how it could be used.

10 for $10 hardcore summer tour This is the coolest idea for a summer tour – 10 bands for $10. If you’re at all into hardcore punk, it’ll be a great show. If you aren’t (which is more than likely since you’re reading this blog), take note because it’s an interesting idea that you might see more of in the future.

How to Build Your Own PC WARNING: NOT SAFE FOR WORK SomethingAwful.com is often flagged as adult content. Don’t visit it if you like keeping your job. That being said, this is a hilarious look at building your own computer. It’s based on Brent Ozar‘s experiences building his hackintosh.

PASS May Webinars

Do you like free stuff? I like free stuff. We should watch a free webinar sometime.

References to Idiocracy aside, I really like free content. Luckily for us, some very kind people have donated their time to bring their knowledge to the masses via free webinars. Want to see what’s coming up? You can mosey on over to SQLBatman’s website and read all about it, or you can keep scrolling.

This is seriously some high quality content that you are going to be able to view for free. Check with your boss and add these events to your calendar, or ignore your boss and do it anyway. The point is that this is some high quality free training that you can watch from the comfort of your desk!

Introduction to SSIS Custom Component Development

Speaker: Anthony Dangelo
Tuesday, May 12th, 12:00pm ET

You have tried so hard not to write code inside of SSIS, but the day has arrived when you tired of writing the same script task over and over again. Don’t fret creating a Custom Component is not as daunting as you might think. This session will integrate your logic with SSIS Components: variables, pipeline, and events. This session will explore the desgin-time and run-time events, the difference between Syncronous and Asyncronous Components, and debugging techniques.

For dial in information, click here.

To add this meeting to your calendar, click here.

Custom Security with Reporting Services

Speaker: Cherie Sheriff
Thursday, May 14th, at 1:00pm ET

In this session we will discuss different custom security approaches with SSRS and what considerations need to be made when deciding upon a strategy for security as well as the risks and benefits of each approach.

For dial in information, click here.

To add this meeting to your calendar, click here.

Rolling Your Own Replication

Speaker: Brent Ozar
Tuesday, May 19th, 1:00pm ET

SQL Server’s built-in replication has made great strides in the last couple of versions, but what if it’s still not enough? One team needed more flexibility, easier administration and higher scalability, so they built their own solution instead. Brent Ozar will discuss how the system was architected, the pros and cons, and how you can build a similar solution for your own needs. He’ll explain some of the lessons learned in scaling this out to thousands of remote SQL Servers.

For dial in information, click here.

To add this meeting to your calendar, click here.

Multi-dimensional Modeling for Performance Management

Speaker: Cherie Sheriff
Thursday, May 21st, 1:00pm ET

The first in a short series about how you can use multi-dimensional modeling to show how well you are performing, how to create budgets or strategic plans and how to create forecasts. Learn how to leverage SSAS and SSRS to give your company the tools it needs to save time and money. In the Performance Management session, learn how to generate easily understood views of the actuals.

For dial in information, click here.

To add this meeting to your calendar, click here.

Introduction to SSAS Dimensions

Speaker: Jessica M. Moss
May 26th 12:00pm ET

Topic Description: SQL Server MVP Jessica M. Moss will provide an introduction to dimensions in SQL Server Analysis Services. The presentation will discuss the different types of dimensions and how to create dimension attributes, hierarchies, and properties. Finally, we’ll discuss the different properties of dimensions used to create more performant SSAS processing and querying.

For dial in information, click here.

To add this meeting to your calendar, click here.

Rated G for Nerdy Content

My fellow DBAs and SQL Server Developers, have you ever worried about being associated with other, perverted, developers who might use profanity or nudity in their presentations? Are you concerned that people might not know what kind of content to expect in your presentations?

Worry no more!

Even C++ developers can understand this!

Even C++ developers can understand this!

Now you can declare to the world that your presentation is free of filth and only contains worthwhile knowledge and information. No more will people confuse you with some kind of filth monger. No more will people cringe in fear when you mention your up time. Rejoice my fellow developers!

Links for the Week of 2009.04.24

SQL Server

Filtered Indexes: What You Need To Know Michelle Ufford dives into the wonders of filtered indexes and explains what they are, why you need them, and how you can go about using them. Makes me wish we were on SQL Server 2008 at work.

Use SQL 2008 Express as a Central Management Server Wish you had a central management server in the office to help you manage your mountain of SQL 2005 machines? This functionality is even available if you’re using an express edition. Check out the link for more info.

Development

Code Sample Taxonomy What is sample code? What is reference code? What’s the difference? Phil Haack goes into the details and examines why the .NET community is up in arms about an ASP.NET MVC sample app.

Ditching the Micro Optimization Fetish Premature optimization is the bane of developers and, more appropriately, project managers everywhere. Don’t do it. Just don’t.

Stuff & Things

Linked Live IDs I have multiple Live IDs. I hate logging out and logging back in. Now I don’t have to.

Seven Productive Things To Do When You’re Bored At Work Do you get bored at work? Of course you do. Rather than clicking refresh over and over and over again on Digg you could spend your time doing something productive!

Embrace the Mundane, Appreciate the Simple Mike Walsh makes some excellent points about dealing with simple, mundane tasks. It all boils down to enjoying what you do. Take the time to appreciate it. Seriously, the next time you have to do something that makes you want to drag your feet, approach it with an open mind and embrace it.

Periodic Table of Typefaces ’nuff said.

Links for the Week of 2009.04.17

SQL Server

The DBA… their role, expectations and future? What should a DBA be doing on a daily basis? What does their job entail? Here’s one version of that idea.

Spying on Your SPIDs: It’s sp_who but Better Even more info on how my users are ruining my database? YES PLEASE!

Development

Using jQuery Grid With ASP.NET MVC jQuery: win. ASP.NET MVC: win. jQuery + ASP.NET: double win! Phil Haack walks through using custom jQuery controls in this quick tutorial on jQuery and ASP.NET MVC

5 Blogs ASP.NET MVC Developers Should Be Following Love it or hate it, ASP.NET MVC is here and it’s the way of future ASP.NET development. Justin Etheredge lists out 5 + 1 blogs you should follow to pick up on ASP.NET MVC.

Stuff & Things

FREE MAGIC WANDS!

Michael Ruhlman on Freeing Yourself from Recipes Free yourself from the tyranny of recipes by understanding ratios!

Meet the New App Dev SIG Marketing Coordinator

It’s time to meet the new PASS App Dev SIG Marketing Coordinator: me!

What exactly will I be doing? Well, according to Blythe I will be doing the following:

  • Work directly with Blythe at PASS HQ to determine marketing strategy of the Application Development SIG
  • Come up with creative ways to get meeting information and new content out to the community
  • Work with other SIG groups to share marketing resources
  • Form press gangs Recruit volunteers
  • Help drive overall direction of the App Dev SIG
  • Bring Blythe delicious pastries from around the globe

What this REALLY means is that I’ll be working with PASS and with you, the community, to find new ways to raise awareness of the Application Development SIG, attract quality speakers, recruit you into service via some type of “draft” system, and find out what us App Dev SIG folks can do to help you.

Join a SIG, save an out of work actor.

Join a SIG, save an out of work actor.

Are you going to see me standing around on street corners waving App Dev SIG signs? It’s possible, especially if I need to bring back pastries from exotic locations like Schenectady, NY or Hartford, CT. However, more importantly, it means what I’ve said previously: I’m going to listen to the community, take that into account, and then accept bribes.

Wait, that’s not right.

I’ll be working with Blythe and Todd to get the word out about the App Dev SIG, drive content creation, and market the bejesus out of this thing. Your bribes of bacon will not work on me, largely because I don’t eat meat.

Meet and Code – Weekend in Review

I spent my weekend in my company’s office. Keep in mind that 1) I’m a consultant and I’m usually at a client and 2) I didn’t get paid. Why would I spend my weekend at work? Meet and Code

What’s the point of Meet and Code? The point is for a bunch of people (developers, DBAs, UI people, PMs, BAs, etc) to get togther and work on a project to learn, build new skills, and do it right the first time. Sometimes, the real world constraints of deadlines and budgets don’t always give us the time to do TDD and to do things properly. So we rush through things and have to test manually. Not at Meet and Code. Instead, we’re doing things using agile practices, TDD, and rapid development techniques so that we can practice the craft that we preach about.

See, a few months ago someone had the crazy idea that we should get together and work on a software project over the weekend. Now, that catch was that we had to recruit other people. So, we recruited other co-workers. Eventually we’re planning on recruiting the rest of you, but bear with me.

After we recruited a team of suckers volunteers, we did a few planning meetings before everything got started and decided on a product to work on (an event RSVP web application so we could manage the next time we do this). We also figured that everything would take about a weekend (Friday 5pm – Sunday 5pm).

Friday was pretty much a wash. There was a TDD and mocking demonstration that was incredibly helpful, especially since I haven’t done TDD in a long time and mocking is just right outside of my area of expertise. Most people didn’t have development environments set up on their computers, there was some confusion about who was responsible for determining what, but things got ironed out by the end of the night. Towards the end of the night, I started working on the database and the UI people were able to get started. I left around 12:30 or so. Things were pretty disorganized, but it was a good start.

We finally got a build server set up early Saturday morning. I kept churning out database code while the business layer was being put together. There was still a bit of confusion, but by the end of the day things were going full steam. People came and went, but that’s what we expected.

The office was pretty humid and smelled distinctly of feet by the end of the night. It didn’t help that the air conditioning is turned off on the weekends.

By Sunday, I was starting to run out of steam. It’s tough to make it through a week of your day job and then run through a development sprint on the weekend, but the fun and learning made it more than worth it.

How did it turn out?

It went well. There were definitely some initial teething problems – development environtments weren’t set up, use cases weren’t fully fleshed out – but we made it through them.

Going forward there are definitely some things that we could do differently to make things run smoother:

  • Install fest – We should have held an early install night where we focus on getting everyone’s development environment prepared. This would prevent problems with service packs installing and getting different versions updated.
  • Training materials/demo – In addition to the install night, having fully built a single feature to demonstrate the ‘proper’ way to use ASP.NET MVC would have been very helpful for everyone.
  • Dedicated user representation – We initially had some BAs present on Friday night, but they had other weekend plans. It was difficult at times to resolve some ambiguity in the use cases or to determine how a feature should really function. If someone else was designated as the user representative, we would have been able to defer to the user rep on all of these issues.

However, despite these teething problems, we had a lot of fun and I definitely think we’ll be repeating this a few more times before we take it completely public with some hints and tips on our methodology for running the event smoothly.

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.