"Save me, oh God, from people who have no sense of humor."
— Ludlow Porch

Downsides to SQL Server Mirroring

I have been designing and developing applications targeting Microsoft SQL Server for about 14 years. I moved from Clipper and BTrieve to SQLServer '97 at Hewlett-Packard back in about 1998.

Today I am a senior solution architect with a large consulting firm, and am on a team that is migrating a large organization from physical hardware to VMWare. My job is to evaluate each of their more than fifty applications, determine if they can be be made SQL Server mirroring aware with no (or minor) code changes, and craft a migration plan for these applications.

As part of my investigation, I have learned a lot about SQL Server Mirroring. One of the big differences between Mirroring and Clustering, is that mirroring is done on a database by database basis, while clustering is handled at the SQL Server instance level. I'm sure you have all heard or read that and think you understand it, but you may not competely appreciate the gravity of that statement. Let's analyze the situation using a real world scenario.

Suppose you have an application that uses a single, read-write database for application data, and a separate read-write database for SQL Server session state management. This is not an uncommon situation. Though it is easy enough to install the SQL Server Session State management to your application database, many architects separate the app db from the session db. That's perfectly acceptable, as long as you realize what kind of challenges mirroring brings to the table.

In the event that you are using mirroring, and the application or session database fails, SQL Server will fail-over to the mirror for ONLY THAT SINGLE DATABASE. If your assumption is that the app db and session db are existing on the same server, then your application will find itself in an unstable state.

The solution is to provide a separate connection string in the config file FOR EACH DATABASE that it uses. This will allow applications that use ADO.NET or the Native .NET client, to provide a connection string for each database, that will provide for robust failover.       

I love the Logitech M705 mouse.

i recently bought a Logitech M705 mouse from Sam's Club and I am in love with it. So much so that I bought four more for my other computers.

I am using Logitech K750 keyboards for my Apple computers, and the M705 mouse shares the same USB dongle. One dongle for two devices.

I have used bluetooth for keyboards and mice before, but I much prefer USB.

If you are in the market for a new mouse, then I highly recommend the Logitech M705. It works great on both Windows and Mac OSX.

UPDATE: 03/12/2012
I spilled Coke on one of my K750 keyboards and tried disassembling it so I can clean it. DON'T DO THAT! The K750 is NOT dissamble-able. You will DESTROY it trying.

I did.

On the positive side, it appears that if you run the keyboard under a stream of warm water in an attempt to de-sticky them, then it may work. all of the electronics are underneath the "Logitech" logo at the top of the keyboard. as long as you just use clean water and leave it in a warm dry place for a few days, then you may be able to clean a K750 that you have spilled on. If I spill on another one, then I will run it under warm water, and place it on a towel in the oven, set at the lowest setting, until it is warm in there. Then turn off the oven and allow it to sit there and dry. My oven's lowest setting is 170 degrees, which is too hot in my opinion. I would set it to low (170) and then wait until it reached about 130 (using my laser thermometer) then turn it off and close the door. After about an hour, I'd do it again. Be sure not to forget and allow the oven to reach 170 or I think it may warp your keyboard.

That's my sugestion and I take no responsibility for it. In may case, the sticky-keyed keyboard was ruined, so I am not too broken up over having destroyed it. If you also have a sticky-keyed K750, then you may as well consider it completely ruined. If my tips help you to salvage it, rather than throwing it away, then I am happy... but you'll probably have to throw it away.

Installing Ubuntu 11.10 on a Dell Optiplex 755

I have an old Dell Optiplex 755 SFF (Small Form Factor) that is one of my favorite PCs. 

You can get one like it here, for about $180... Mine has a 300GB hard drive and 4GB of RAM (All easily and cheaply upgradable).

On Saturday (Dec 31, 2011) I was attempting to install Ubuntu 11.10 on it, but I couldn't boot to the install DVD. I had downloaded the correct Ubuntu image, and burned it to DVD on my Intel iMac (OSX Lion). After the burn process, it verified the disk and everything appeared ok. The problem was, it wasn't bootable. After wasting a few hours trying to make the machine boot from a "bootable" DVD, I gave up, threw the DVD away and re-downloaded the iso (just in case the old one was corrupted). After I re-burned the disk, it installed flawlessly. Now I have a super little *nix box for all sorts of cross-platform testing.

If you are looking for a super-cheap, yet super-capable home computer, I highly recommend surfing EBay for a Dell Optiplex 755 SFF or USFF (Small form factor or Ultra small form factor) PC with an Intel Core2 Duo or Core2 Quad. Ubuntu is a free and open-source operating system that is supremely powerful and very well supported. I have been using Linux (and other unix/POSIX Compiant operating systems) since the mid ninteties, and this is the first time I am prepared to recommend them to the masses for normal every-day use.

Ubuntu 11.04 and above, introduced the Unity UI. While those of us well-versed in Linux/Unix operating system operation may cringe at such a simplistic user interface, regular people (ie my mother and my wife) were completely perplexed at the complexities of Linux. Unity brings the simplicity of the Apple Mac OS to the free Linux operating system and inexpensive commodity PC hardware. Linux experts may still opt for a more powerful UI engine like Gnome or KDE. The powerful Linux operating system underlies all of these UI implementations, and the choice of which UI to use is completely at the user's discretion; so I am perplexed at the backlash Unity has received from the Linux community.

If you have ever wondered what it would be like to use something other than Windows, I highly recommend that you download the most current version of Ubuntu Linux and give it a try. If you are download-and-burn averse, then you can order five Ubuntu DVD's from Canonical for about $8 here

Booting your PC to the UBuntu DVD allows you two options.

1. Blow everything on your PC away and install Ubuntu in its place (like I did).

2. Boot to the Ubuntu OS on the DVD and run Ubuntu as an experiment. You can use your computer normally, running Ubuntu; and when you reboot. you'll be back to Windows with nothing damaged or changed.

I'd suggest running it in the experimental mode for a while until you are used to the way it works, then ... after backing up your important data (using an offsite service like Mozy Pro or Carbonite) Take the plunge and wipe your hard drive in favor of Ubuntu Linux. 

Ouch! Gold prices are potty

Gold has taken a serious hit lately. I really expected it to go to $2000/oz by the end of the year, but it has tanked lately. I have a lot of money in Gold and Silver and am saddened to see it go south like this.

Of course, it will go up again early next year.

Regarding RabbitMQ...

My friend and colleague Joe Fitzgerald says...

"Rabbit will now properly scale on Windows now that Erlang runs 64-bit on Windows. You could only address ~1.2 GB prior to this release, meaning that the Rabbit high-water mark (after which it would start flushing to disk) was somewhere in the range of 450MB.

With this announcement – and the IronFoundry stuff – I think the pieces are finally starting to come together for scalable cross-platform apps."

The plan is to release something on IronFoundry soon...

  • Running

    Those of you who see me on a daily basis know this, but I am NOT a runner.

    My neighbor gets up early every morning and runs; and it pisses me off. What's he running from!? If I wanted to punish myself with pain over an extended period of time I'd ... choose not to.

    Maybe he's training for a race. Does he not know that the first runner of a marathon, Philippides (My namesake) died immediately?

    Running is what I do after eating Thai food, and at the end of my run is a toilet.

    The only reason marathons are still around is so that a thousand white people can chase three black people through the streets of their city, like the "good ol' days". No white person will ever beat a Kenyan. They have been running from things their whole life. "Lions and Tigers and AIDS, Oh My!"



    Joe Paterno's career dies with a whimper

    Joe Paterno is quite possibly the greatest coach of all time. Now, at 85, his career ends with a whimper. 

    Apparently he knew that Jerry Sandusky was a perv and was knowledgeable about his escapades, but didn't let anyone else know.

    It is a terrible shame that Joe Paterno's career ends in such a shameful way. Let this be a lesson to all of us. If we ever see someone behaving in a way that brings shame to us, we should ALWAYS speak up. Especially in a situation like this where an innocent was being harmed.

    Though Joe Paterno isn't guilty of Jerry Sandusky's crimes, he is guilty of complicity and should be held liable. 

    If Jerry Sandusky is guilty of the alleged crimes, he should be executed. Crimes against children are an especially horrendous offense and should be met with an especiallly horrendous punisment.