Brian Donahue

Follow Brian Donahue via

18 January 2012
18 January 2012

It always works on my machine.

0
0
Probably the most common question that the Red Gate developer tools support gets is “Does your X work with Y?” where X is your bit of software and Y is a bit of software made by a different company. This is probably the least answerable question in the known universe. Start with the obvious – … Read more
0
0
15 October 2011
15 October 2011

Event-Driven Debugging

0
0
Most application troubleshooting involves getting an error, analyzing the error message, and at worst, attaching a debugger to work out the real cause. What is not really covered is how to troubleshoot an applicaiton that is not errant, but is having a performance issue, and more than likely, in the middle of the night when … Read more
0
0
19 December 2010
19 December 2010

Anatomy of a serialization killer

0
0
As I had mentioned last month, I have been working on a project to create an easy-to-use managed debugger. It’s still an internal tool that we use at Red Gate as part of product support to analyze application errors on customer’s computers, and as such, should be easy to use and not require installation. Since … Read more
0
0
24 November 2010
24 November 2010

Updating the managed debugging API for .NET v4

0
0
In any successful investigation, the right tools play a big part in collecting evidence about the state of the “crime scene” as it was before the detectives arrived. Unfortunately for the Crash Scene Investigator, we don’t have the budget to fly out to the customer’s site, chalk the outline, and eat their doughnuts. We have to … Read more
0
0
06 November 2008
06 November 2008

Installing databases using Wix

0
5
In the promised second half of my Wix installment, I am going to demonstrate how you can install a SQL Server database as part of a software deployment using Wix and SQL Packager from Red Gate. In my experience, your average software company has exactly one “Installer Guy”. Typically, this is a very unappreciated fellow … Read more
0
5
21 October 2008
21 October 2008

Arrrrgh! Wix!

0
1
This week’s time-eater, for me, was to try to create an installer package (MSI) with custom actions that install databases on SQL Servers. Typically, I had grown to like Microsoft Visual Studio Deployment Projects, because I could easily knock out some C# code and slam it into an installer and get it to do, basically, … Read more
0
1
24 September 2008
24 September 2008

ASP .NET: when a crash is not a crash

0
0
In the mysterious viscera of Microsoft Internet Information Server, nothing is as it seems. When applications are designed to work over the web, they must bristle with all sorts of bits designed to make the stateless stateful and many users become one inside the web server’s inner sanctum. What I am talking about are the fundamental … Read more
0
0
12 August 2008
12 August 2008

Man eats crow, film at eleven

0
0
Last week I’d had a bit of a rant here about not using software for anything other than what it is designed to do. Thinking back, though, I have done this quite a few times myself, particularly by employing a code profiler to do the job of a debugger. When good software goes bad, the right … Read more
0
0
05 August 2008
05 August 2008

DOH! It’s the DaftOperationHandler

0
0
   Probably my least favourite question in the world, professionally anyway, is “Does your software support <choose a technology>”. Well, first off, define support. Dictionary.com provides for no less than nineteen definitions for that particular word, and I can probably think of about a dozen more.    If my answer to this question is “yes”, and … Read more
0
0
27 March 2008
27 March 2008

Po man’s patchworkin’

0
0
If you had come of age before Component Object Model as I have, the concept of COM registration seemed rather odd at first glance. Why is your system limited to exactly one application extension which is forced to be backwards-compatible, when, for years, other operating systems have enjoyed the ability to have many versions of … Read more
0
0
13 November 2007
13 November 2007

Need to loosen my bindings

0
0
Microsoft .NET’s runtime provides an execution engine for Just-In-Time compiled code, but it also has the clandestine capability to pre-compile code and cache it on disk. This at first seems a little odd, since the point of environments like .NET Framework and Java are supposedly designed to offer machine-independent, ‘virtual’ code. I suppose that .NET’s native … Read more
0
0
30 September 2007
30 September 2007

Database backup: insufficient resources for cache withdrawal

0
0
Sometimes SQL Server can pose conundrums of such complexity that even the Riddler couldn’t conceive of. In my mind’s eye, a SQL Server is in fact its’ own operating system, running on another operating system. For instance, SQL Server has a task scheduler to manage threads running within the SQL Server Process, and this User-Mode Scheduler … Read more
0
0
20 September 2007
20 September 2007

How to rewind a SQL Server

0
1
I work for a company that sells software. And SOME people, because of their untrusing nature, need to be convinced that the software that we want to sell them actually works. This process, in some large, bureaucratic institutions, involves salesmen and conference calls and schmoozing and all of those things, that I, as a technical … Read more
0
1
15 September 2007
15 September 2007

Support’s line in the sand

0
0
Some months ago, I took my car in for a safety inspection, and the garage found a small hole on the inside of the wheel-well. In order for the car to pass inspection, they said, that would need to be welded shut. Great, I said, can we do that now? No, they said. They do … Read more
0
0
08 September 2007
08 September 2007

Learning to play the symbols

0
0
If you are ever tasked to figure out what’s happening inside an application, one of the essential bits of information is the Program Database (.PDB) file. The PDB contains symbols, that is to say that it contains a list of methods, properties, and variables in an application and lists exactly where in the application these … Read more
0
0