Monday, December 15, 2008

TimeWarner Tuning Adapter hits Austin Texas

Last Friday I got the call from Time Warner that the Tivo Tuning Adapters (TA) had finally arrived. After work, I rushed to the TW office to get mine. After waiting an hour or so, I took it home, hooked it up, and nothing happened.
Searching the forums, I learned that the tuning adapter's green light should be solid, mine was blinking - a sign that all was not well. After rebooting the TA and my TiVo in various combinations, I gave up and called tech support. After sending two ill-fated reset signals to the TA, the rep scheduled a truck roll in the morning.
Not content, I tried various reboot combinations. Maddeningly after a while the TA would get a solid green light, but my TiVo did not know that the TA was ready. So I'd reboot the TA, the TiVo would see the TA there, try to test channels and fail since the green light was still flashing. When the green light stopped flashing, the TiVo didn't know it was there.
This combination finally worked:
1. Reboot the Tuning Adapter. Wait for the green light to stop flashing. 10 minutes?
2. Reboot the TiVo. The Tivo does not know that the TA is ready. (This step may be optional).
3. Unplug the USB connector from the TA to the TiVo, wait a few seconds and plug back in. This sends a signal to the TiVo that the TA is ready.
4. TiVo can now test the TA signal.
Worked for me.

Wednesday, December 10, 2008

Major Version Upgrade with No User Downtime Using Virtuals Machines

This last week we upgraded our web-based software to a new major version without any downtime for our users. It was a great success. This only works if the databases backing the site are upwardly compatible. Here's the steps:
1. It all started last year when we hosted our application in a virtual machine (who doesn't these days anyway) even though our application was the only one running on the server.
2. On each of the production boxes we recently installed a parallel shadow virtual machine and loaded the new version of the software. We created test copies of the databases on our database server farm.
3. We created a shadow farm address ( instead of in our local router/load balancer and pointed the siteB domain to our shadow virtuals. Since all the nunit and functional tests were all done in our internal test farm, this round of testing was for configuration issues (can all the machines see all the databases? Can the farm machines see each other? Can outside users hit all the shadow boxes?).
4. We upgraded the databases on the live system by adding our new tables. The old system ran on the upgraded databases, but did not use all the tables. We incrementally pointed our shadow virtuals to the three live databases and tested them.
5. On the big transition day, we simply switched our domain address "SiteA" to point to our new shadow virtuals and all was golden.

PostScript: If any errors had occurred with the new version, we could back out by pointing "SiteA" back to the original servers (assuming no damage to the databases). We had made copies of the databases before had so we could switch back to them if something had corrupted the databases.

Tuesday, December 09, 2008

Austin .Net User's Group Meeting

Aaron Erickson talked about optimizing LINQ seach through customizing the "Where" clause with the Expression Tree feature of C#3.0. The talk on how i4o worked interesting, but as usual some of the more enlightening bits are revealed through side comments and questions. The audience agreed that LINQ-to-SQL is in it's death throes, to be replaced by, perhaps one day, the Entity Framework. For today, use NHibernate.
Out of sixty people, only two admitted to be VB programmers, everyone else was C#.

Wednesday, December 03, 2008

Let's Buy GM and Give It To the UAW

From our friend Michael Moore about the woes of the big three auto makers:
"Let me just state the obvious: Every single dollar Congress gives these three companies will be flushed right down the toilet."
I'd agree with Michael for once, but he recommends that the government buy all the outstanding shares of GM - currently at a bargain of $3 billion dollars and take over the company. Bad Idea. The government is really bad at running any business.
Instead of the $36 billion dollars bailout, let's spend $3 billion to buy the company and give it to the UAW. That way we don't have to hear the UAW whine about how all the problems of GM are the result of bad management. The UAW could show the world how it could build quality cars just like the Japanese.