Category Visual Studio

TFS and You

How many of you are using Visual Studio 2010? How many of you are writing SSIS packages? How many of you are pissed off, irritated, or confused about how you’ll be able to write and version control your SSIS packages (VS 2008) once you’ve upgraded to TFS 2010?

Confused yet? Yeah, so am I.

Let’s backtrack: at work we recently upgraded to VS 2010 and TFS 2010 – this lets everyone on my team take advantage of the database developer edition as well as add a whole slew of automated testing features and doodads. Plus our management can tie in to our tasks

One of the problems that we ran into is connecting to TFS2010 from VS2008. Why would I need to do that? Visual Studio 2010 doesn’t have support for the SQL Server 2008 BI project types yet (SSRS, SSIS, etc). So, in order to work on SSIS packages, I need to keep VS 2008 around.

It’s pretty easy to connect Visual Studio 2008 to TFS 2010. Download this hotfix, install it, and then you’re up and running. That’s really all there is to it.

Links for the Week of 2009.09.12

SQL Server

Optimizing Queries That Access Correlated datetime Columns DATE_CORRELATION_OPTIMIZATION is some good stuff. If you have an InvoiceDate column that happens to be close to the OrderDate column in a related table, and this setting is on, the compiler will generate what could be a much better optimization plan.

Difference between an index and a primary key Denny Cherry does a great job of explaining this one. I frequently misuse primary key and clustered index as the same in conversation (yes, I do have A LOT of conversations about databases, even outside of work). I need to be better about that. This reminds me why.

Development

Vertical Centering in CSS This question comes up every once in a while. I always forget how to do it. Hopefully this will help someone else get their vertical centering sorted out.

The Unspoken Truth About Managing Geeks I’m not a manager but I play one on TV. There some good info in here. Especially if you only play a manager on TV.

Using Accessibility Modifiers on Auto Properties Auto properties rule. Justin Etheredge demonstrates how to keep that level of awesome rolling forward.

Stuff & Things

Simplified Virtual PC Creation with Differencing Disks I don’t know what to say. The idea is so damn simple I don’t know why I didn’t think of it before. Thanks to Jonathan Kehayias for this article. This is going to save me so much time and trouble.

20 Tips for Writing for the Web

Flowing Data | Data Visualization and Statistics It’s a blog that’s devoted to different ways of presenting information. Gotta love that. Flat tabular display of data is good, but there’s often a better way. A much better way.

Make Fried Pie in Five Minutes and Kickstart Your Day Fried. Pie.

Monkey on a motorcycle

Think about the different areas of your life Love the quote.

Links for the Week – 2009.08.07

SQL Server

Commenting Your Code Do it, people. I don’t comment enough of my code, but it’s something I keep in the back of my mind all the time.

Fast Running Totals Solution With Ordered CTE I love Mladen’s solution to this particular problem. I usually would use a nasty self join or some kind of hideous cross join to accomplish this.

Teaser: Left Join..the SQL ego crusher Mmmmm SQL brain teaser.

Development

Software is a Wicked Problem

sqlsharp It’s a port of SQLite to C#. I don’t believe source code has been posted yet, but it’s a great idea for portable development.

TeamReview Ask your co-workers for a code review, and get one, all through VSTS. I’m not a fan of meetings. I hate them. I also hate reading your code. I’d be much happier reading your code from my cube. Now I can.

Stuff & Things

How to Set Someone Straight Correcting people is never easy. Use these four simple steps to lead to success.

title unknown

Teach for America founder on the pointlessness of planning, the importance of saying no, etc. This is interesting because it’s a collection of quotes, but the 37signals folks link back to their own articles. Very interesting stuff.

:::WARNING – RANT:::
Netflix Shares Internal Presentation on Company Culture I was going to try to build an entire blog post out of this. Then I realized it would sound like I rant, so I decided to ran in my weekly link dump instead because it’s my blog and youcantmakemegotobedearlyanymore! So… yeah, anyway. Netflix sounds like an amazing place to work – they do everything they can to let good employees innovate and reward them effectively. For people outside of the consulting world, it doesn’t make sense to hold them to some weird standard of X days of holiday a year. Most of our work is based around meeting goals, not producing sprockets. Does it really matter if I want to take an extra few days off here and there? If I’m a top producer, that should be fine.

The other thing that really struck me about Netflix is how they compensate their employees. They hit a few things on the head that I’ve always agreed with – don’t bonus your employees, pay them. If you tell me, at hiring, that you’ll give me a $5,000 bonus in 6 months, pay me $5,000 more now. I don’t want a bonus. A bonus won’t make the payments on my sweet ride. They also pay their employees what they think they’re worth. Salary negotiations are a game. Playing games with employees that you allegedly trust and who are supposed to trust you is not a good way to conduct business.

Many businesses would do well from reading this slide deck and learning from it.
:::END RANT:::

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

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.

Columbus Give Camp is Just Two Weeks Away

The Columbus Give Camp is only two weeks away but it’s still not too late for both charities and volunteers to sign up.

GiveCamp is a weekend-long event where software developers, designers, and database administrators donate their time to create custom software for non-profit organizations. This custom software could be a new website for the nonprofit organization, a small data-collection application to keep track of members, or a application for the Red Cross that automatically emails a blood donor three months after they’ve donated blood to remind them that they are now eligible to donate again. The only limitation is that the project should be scoped to be able to be completed in a weekend.

During GiveCamp, developers are welcome to go home in the evenings or camp out all weekend long. There are usually food and drink provided at the event. There are sometimes even game systems set up for when you and your need a little break! Overall, it’s a great opportunity for people to work together, developing new friendships, and doing something important for their community.

At GiveCamp, there is an expectation of “What Happens at GiveCamp, Stays at GiveCamp”. Therefore, all source code must be turned over to the charities at the end of the weekend (developers cannot ask for payment) and the charities are responsible for maintaining the code moving forward (charities cannot expect the developers to maintain the codebase).

The deadline is July 8th, so get your charity proposals and volunteer submissions in!

Speaking in July

I’m presenting again! Woohoo!

On July 23rd, I will be presenting at the Central Ohio .NET Developer’s Group. The fun starts at 6:00 PM. I strongly suggest you bring large piles of money to throw at me.

What will I be speaking about, you might ask? (You’re probably not asking yourself this question because you already know I’m going to tell you.)

From Tables to Objects: Making Your Database Work With You

Time & Location

July 23rd at 6:00 PM, at Central Ohio .NET Developers Group located at the Microsoft building on Polaris Parkway in Columbus, OH

Abstract

A database is far more than a persistent object store for your application; it is capable of data validation en masse, aggregations, and creating different projections of data. By working with your database, rather than against it, it is possible to leverage all of the capabilities of a relational database to provide rich, high performance interaction with your application through an ORM. This presentation will discuss the finer points of building a full-featured data access layer using an ORM and the features of a relational database.

Goals

  1. Teach attendees about database features that make development easier – including views, sparsely populated tables, and user-defined functions and types.
  2. Empower the audience to solve object relational impedance mismatch using data modeling techniques and database features.
  3. Demonstrate how to integrate the database and object oriented software using a custom designed data access layer.

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 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.

This is MY Island

Jason Massie (twitter) has tagged me in the most recent DBA chain letter. Tim Ford tagged him, and here we are.

So, let’s recap, shall we?

So You’re On A Deserted Island With WiFi and you’re still on the clock at work. Okay, so not a very good situational exercise here, but let’s roll with it; we’ll call it a virtual deserted island. Perhaps what I should simply ask is if you had a month without any walk-up work, no projects due, no performance issues that require you to devote time from anything other than a wishlist of items you’ve been wanting to get accomplished at work but keep getting pulled away from I ask this question: what would be the top items that would get your attention?

There are a few things that have been on my plate recently.

Development

I’m not going to lie – I want to do a little bit of programming now and then. The CLR contains some phenomenal features that can be leveraged both inside and outside of the database. As a consultant and database developer, it’s incredibly important that I stay up to speed on techniques to access the database. Why? Different technologies have different paradigms and idiosyncrasies. It’s important to understand how developers are interacting with data so you can steer them towards the appropriate data access methodologies for their particular technology stack/platform. Different data access methods also have different performance profiles. It’s important to understand how LINQ to SQL performs in relation to NHibernate and why you might want to use it.

Plus, I really want to get my brain wrapped around NHibernate because it looks like an easy and powerful way to model data.

TSQL and the Storage Engine

I’m currently reading Itzik Ben-Gan’s amazing book: Inside Microsoft® SQL Server® 2008: T-SQL Querying. I would love to have the time to dive into this and read it a few times and experiment with the knowledge and techniques contained within its covers. Why? Part of what I do is tune SQL Server to run very fast. Part of making SQL Server run very fast is knowing how to write very fast queries.

The next book on my reading list is Kalen Delaney’s book: Microsoft® SQL Server® 2008 Internals (Pro – Developer). Like Itzik’s book, this contains a lot of information that I’m itching to get a hold of. I know a bit about the query engine and it fascinates me. I would love to sit down and carefully devote my time to studying how it works and how I can take advantage of its inner workings to make my queries run fast.

Data Mining

Like Brent Ozar, I really want to wrap my brain around data mining and dig into it. There is phenomenal knowledge and power hidden inside of data.

Let’s say you run a restaurant. You don’t know where your customers come from, but you know on any given Friday night you have the restaurant about 80% full, on average, all night. You advertise in the local paper that’s handed out in the area. You’re successful. This is good.

What if I could tell you the following about your average customer:

  • 35-44 years old
  • male
  • spends an average of $48
  • tips an average of 18%
  • lives 12 miles away in zip code 43004
  • likes pie

Of course, if I could cross reference this with an even larger body of data, I could probably determine where this average customer is most likely to shop, how much he spends, and what kinds of mass media he’s most likely to pay attention to, etc. Suddenly you know where to spend your money, you know who to target, and you have a better idea of how to appeal to your best customers. This kind of information, as Brent mentioned, is money. Giant filthy piles of money.

Who is next in this horrible glorious chain letter?

  • Jonathan Kehayias – SQL CLR maste rand builder of clusters
  • Tim Beinninghoff – bug enthusiast, PowerShell student, fighter of good fights, and all around good guy.
  • Rick Kierner – a filthy developer, coworker, and good friend.

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.