LessThanDot Site Logo

LessThanDot

A decade of helpful technical content

This is an archive of the posts published to LessThanDot from 2008 to 2018, over a decade of useful content. While we're no longer adding new content, we still receive a lot of visitors and wanted to make sure the content didn't disappear forever.

Tech on Tap v1.1 – Post-Event High-Fives

Forty-eight hours ago, I was a bundle of nerves. I was loading up the car with Tech on Tap swag, shirts, and gear. I had been working towards this day for almost a year with Derek Schauland (twitter | blog) and Mark Cyrulik (twitter | blog), and having it all come together was nerve-wracking. Would attendees show up? Would the speakers be engaging and entertaining? Would the sponsors consider the event the best investment of their money possible? Would I make it through the day without a nervous breakdown?

Read More...

Using SpecFlow to drive Selenium WebDriver Tests

SpecFlow is a .Net library that allows us to describe user expectations in a consistent Domain-Specific Language that can be wired for automatic execution. By writing executable tests in a human readable manner, our tests can serve as a bridge between the users expectations and the code we produce to meet them. This post will walk through the benefits and high level details of these methods before diving into a practical example of implementing several tests against the MVC Music Store site from my Continuous Delivery project. Along the way we will also use Selenium Web Driver, the Page Object pattern, and Nunit as we interact with an ASP.Net MVC site.

Read More...

Automating Index Statistics Collection with SSIS – The fast one

Article, Automating Index Statistics Collection, went over a method to automate running a script authored by Jason Strate. The script is a comprehensive collection of index statistics and usage details that allows a DBA or designated administrator of SQL Server one place to go for review. SSIS was used to execute the script on a list of SQL Server Instances and databases specified in flat files. The overall design of the SSIS Package was OK. Given the shredding method and row-by-row export to flat files of the results, the overall run time could only handle a relatively small amount of total indexes and proposed indexes.

Read More...

To interface or not to interface that is the question

I suspect that if you are reading this blog then you are using an IoC container to resolve your dependencies. If you do not and you just read this blog because you think I’m an awesome guy then that is fine too, but you should now take the time to learn how to use IoC/DI. For those of you using IoC, I wonder how many of you have this. Public Interface IInterface1 Sub DoSomething() End Interface Public Class Class1 Implements IInterface1 Public sub DoSomething() Implements IInterface1.DoSomething() End Sub End Class``` All this in the hope that someday you will get another class that implements IInterface1. But will you ever get a second implementation, think very carefully now, you know that if the answer is no, that you should call YAGNI. And with most containers you can easily go without the interface since they will let you register a class without the interface. And whenever you do need that second implementation you can just use Resharper and it will take care of it. I know that in the past I made to much interface I never was going to use anyway. And although programming to interfaces is nice it also adds some overhead. More code is more maintenance. So there are pros and cons to both approaches. But at this point in time I am of the opinion that you should use them wisely. I might change my mind again sometime soon. I am open to discussion.

Read More...

Madison SQL Server User Group

I had the distinct pleasure of attending my first MADPASS meeting last night, January, 25th. The drive to the Madison SQL Server User Group from the Illinois, Wisconsin border wasn’t that bad and well worth it. I was able to catch up with the Grandfather of SSIS, Andy Leonard. Andy was in Chicago the same week of the meeting and was nice enough to speak at the meeting. Andy is one of the best presenters I know and enjoy sitting in his sessions more than most. He has a perfect is of highly adapt skills that he shares openly, a great sense of humor and an all-around, extremely comfortable presence in a room as a presenter. In my own experience, there are few presenters that can create a comfort level between the attendees and the speaker so quickly as Andy can do. That to me is the formula for a successful presentation along with a vast knowledge of the topic and respect around the world for it.

Read More...

Automating Index Statistics Collection

Undeniably, the largest impact a database administrator can have on a database server’s performance is with indexing. One index can mean the difference between a 30 minute overall time of execution or a few seconds overall time of execution. At the same time, indexing can have a negative impact on overall database server performance. This negative impact can be from too many indexes, overlapping indexes, or indexes that are not defined correctly.

Read More...

Cheatsheet: Relational Database Management Systems Comparison

There are a lot of RDBMS out there. It would be nice to assume that any one is perfect for or can be adapted to any situation, but that simply isn’t true. Each has its strengths and its weaknesses. When I am doing initial research on a database project, there are a few properties I will look into and questions I will ask to determine what is the best fit for that project.

Read More...

Take advantage of Database Mirroring in your applications

In the previous article, “Estimating Mean Uptime for Team-based uptime measurements” uptime planning was discussed in some detail. The calculation you could use to set team goals was provided. All of these goals in general are for helping gauge how we are doing and where we have growth areas, but how do we even use something like database mirroring with our applications? In most .NET-driven development, and when a SQL Server database is behind the application, a connection string is involved. In particular, ADO.NET connection strings are commonly used to connect to SQL Server. One thing that the ADO.NET connection string offers an application is the Failover Partner property. The Failover Partner property provides an application or service the ability to automatically decide to look to a secondary source if the primary is unavailable. In conjunction with SQL Server’s database mirroring, this can be very powerful and provide the ability to help us meet our projected uptime goals.

Read More...

Five Days and Counting: Tech On Tap v1.1

In October, I mentioned I was working on a new adventure: Tech On Tap. The first event is just days away – Saturday, January 28, 2012. What is going to make Tech On Tap so different – and so great? We’re going to have attendees from a mix of disciplines. It’s not just SQL people, or system administrators, or developers. We are inviting people from a variety of roles. We’re talking about one topic, all day. This session will be on virtualization. That is the only thing we’re talking about. That’s going to allow us to deep dive. We want 300-400 level discussions on the topic. We’re going to get the opportunity to see how this technology affects people in different positions across the organization. It’s small, so it’s intimate, and people will get to know each other. Our attendees won’t be sitting in a room of 200 people for one hour, then a room of 75 different people the next hour. The group stays together, all day, to talk and learn together. We’re drinking beer! Our events are going to be at local brew pubs. What’s better than technology and beer? Virtualization will be explored by three great speakers – Brian Lewis (twitter | blog) from Microsoft, Bob Plankers (twitter | blog) from UW Madison, and Grant Fritchey (twitter | blog) from Red Gate (with a little help from me). I’m definitely looking forward to the panel/Q&A/networking at the end of the day, too.

Read More...

Estimating Mean Uptime for Team-based uptime measurements

With high availability, the least amount of time data is unavailable, the higher the up-time percentage that is achieved. Uptime is a period of time in which equipment is available for use by users. Even a 5 minute failover time can have a negative impact on an uptime goal of 99.999% availability. Each point of failure that can cause downtime should be considered in the overall equation for uptime. Since each component has a specific requirement and must be functioning properly to deliver the source to the requestor, this is a way to calculate achievements based on an entire team including server, network, and data. Calculating the mean uptime or, mean availability, is how this is done.

Read More...