Windows 7 and the Microsoft Strategic Commander

Microsoft released one of the greatest gaming controllers with the Strategic Commander back in 2001.  The controller fits perfectly in your left hand so that your right hand can still use a mouse.  It has six programmable buttons and three shift keys for 24 possible combinations.  Beside the buttons is zoom bar that allows you to zoom in and out.  The entire unit swivels on a base so that you can change orientation in a game.  A toggle switch on the side allows you to change modes.  Three modes can be programmed giving you 72 possible programmable buttons.  Using their sidewinders software you can assign complex actions to the buttons such as shift and 1 or a series of steps like shift + 1 and then alt + C.  You might wonder how this could be useful so let me explain. 

You are playing a real time strategy game and you want to built a barracks to produce units.  Normally you would click on a free worker and then select build structure and then select the barracks.  There are key combinations to perform each of these tasks but most of us do not memorize all of them.  Some gamers might memorize the last one which in this case I will assume to be the letter B.  With the strategic commander you can do all that with the press of one button.  Program a button to execute Shift + A to select an available worker then S for build structure and then B for the barracks.  It is easy to see how this controller can improve your gameplay. 

The strategic commander can also be used for regular windows tasks.  The programming works in the same way.  You can set a button to open your favorite programs or copy, paste, delete.  Photoshop users can program macros into the buttons to perform edits quickly.  The device is really amazing. 

You’re probably wondering why you’ve never heard of it if it’s so great.  Well, Microsoft discontinued the device in 2003 citing poor sales as the reason.  Still, enthusiasts created drivers for Windows XP and then Vista and now Windows 7.  For Windows 7 you can use a driver called ATK0110 ACPI Utility (Download for Vista works on Windows 7) and software called Strategic Engine to program it.

So for those of you with strategic commanders, dust them and use them again.  If you don’t have one an ebay search will still turn up results. 

ASP AJAX and IIS7

I have been struggling with some ASP AJAX code.  I moved the site from Server 2003 32-bit IIS6 to IIS7 on Server 2008 64-bit.  After a lot of searching and banging my head against the wall, I found a blog on MSDN that told me how to add a binding redirect to my web config file so that the code would use the AJAX built into .NET 3.5.  Here it is.

 

<runtime>

    <assemblyBinding xmlns=urn:schemas-microsoft-com:asm.v1>

      <dependentAssembly>

        <assemblyIdentity name=System.Web.ExtensionspublicKeyToken=31bf3856ad364e35/>

        <bindingRedirect oldVersion=1.0.0.0-1.1.0.0newVersion=3.5.0.0/>

      </dependentAssembly>

    </assemblyBinding>

  </runtime>

Obtained from: http://blogs.msdn.com/webdevtools/archive/2007/07/28/upgrading-asp-net-ajax-1-0-websites-and-web-applications-to-net-framework-3-5.aspx

 

Interviewing Tips from Microsoft

In a 2008 blog entry by Steve Clayton at Microsoft, he mentions the five things he looks for in candidates when hiring.  This information is useful for both job candidates and those looking for qualified people.  Here are his five tips:
  1. Hire for diversity, not consistency – I wanted people in my team as diverse as I could. Having twenty brilliant but unmanageable tech wizards in the team don’t work. Balancing out the wizards with the delivery guys worked out well.
  2. Hire Delivery Guys (and girls) – I don’t mean postal workers. I mean make sure you have folks who simply deliver – again and again, on time and with minimum fuss. When the chips are down, they come to the fore, and your wizards take a back seat. As a side note, figure out what makes these people happy and reward them well. They’re gold.
  3. Hire Wizards – in my experience everyone great team has one (or more) who are just brilliant minds. They’re the creative ideas people who differentiate you from the average team. They’re often a nightmare to manage, but they’re worth it. How do you know a wizard? They’re curious
  4. Hire Curious People – by this I mean people who have a natural curiosity. Stephen’s mentions this in his interview with Bill Taylor, and it struck a chord with me. These are the people who ask questions. Constantly. They may not ask questions out loud, but they will question things and often go away and explore to find the answer for themselves. They may never need the information or us it – but one day they may. Trust me this is a very valuable skill. These people become information hubs, and you hear their names again and again in the company as they’re “go to” people. I learnt some of this from my Granddad…but that’s a story for another day.
  5. Hire Passionate Readers – this doesn’t mean hire people who read Mills and Boon. It’s similar to curious people but worth calling out separately. A friend (who is a wizard and curious) taught me this interview question when I joined Microsoft. Ask someone what magazine they regularly read. Let’s say they answer with WIRED. Then ask them how many back issues they have in their loft. It’s not a deal breaker question, but my guess is if you’re reading this you know what I mean. People who are passionate about stuff read about it. A LOT. Okay so they may read online now, and this question may be dated but try it anyway. They may say “ah I just auctioned off my 8-year collection of National Geographic on eBay.” That’s a hire.

For interviewing help go to http://interviewexcellence.org

Full Text Catalog Organ Transplant: Moving SQL Server full text indexes

Full text searching allows more complex searches such as word or phrase searching, inflection matching, proximity searching, and relevance matching to be performed on many different fields within tables.  In order for these searches to run SQL server builds and maintains a catalog.

We have such a large amount of data that rebuilding a full text catalog can take as long as 14 days.  We needed a way to be able to bring the full text catalog back without rebuilding it, essentially, I needed a backup.  Microsoft does not backup the full text catalog in normal backup operations and you cannot access it with software while the server is running because it is always in use.

You cannot use standard backup commands to back them up and Microsoft does not have any utilities available for the task either.  They do, however, have a guide for how to migrate it from one server to another.  We needed to do just that.  I call the process full text catalog organ transplant because organ transplants require the patient receiving the organ to have the same characteristics as the donor in order for the body to accept the new organ.

Full text catalogs need to have a destination system with many of the same characteristics as their previous system or they will not work at all.  The characteristics that must be similar are the SQL server version, full-text catalog folders and file locations, full-text catalog folder and file names and contents, and the same database id and table ids on both servers and databases.

The first few similarities are easy to recreate on the destination system.  The database id is a little more difficult as some DBAs do not even know what the id is for their databases.  You can obtain the database id of a SQL server database by issuing the following command:

Select db_id()

You have to be in the database you want to query first.  Use databasename will accomplish this.

This database number is generated when the database is attached to the instance.  Since the numbers have to match between source and destination, you need to create a situation where the database will receive the same database id when attached to the destination as it did at the source.

We found that you can reuse numbers from databases that have been detached so the process involves knowing the database ids of the databases you will import and then the ones in use at the destination.

If there is a database using the needed id, simply detach it, attach the imported database, and then attach the database you just detached.  The imported database will assume the detached database’s id as long as it is the lowest available number.

If you have a gap in numbers such as in this example where there is no database with an id of 6 you will need to fill that gap first.  NOTE: master, tempdb, model, and msdb always have the numbers you see below.  You can do that easily by attaching the database with the id you want to use first so that it consumes that spot.

Database ID
master 1
tempdb 2
model 3
msdb 4
Database1 5
Database2 7
Database3 8
Database4 9

If you have a number of gaps and not enough databases to fill them you can create new databases with no data in them to consume database ids.

The rest of the process can follow the guide outlined in Microsoft’s knowledge base article 240867 so I will not go into details on the procedure.  I hope this helps you if you are in the same situation.

Microsoft Database Administrator

Another certification.  I took the MCDBA (Microsoft Certified Database Administrator) tests and passed them all.  I finished the last one today.  I will take a break from certifications for a while and then pick up on them after a few months.  I may try for CEH (Certified Ethical Hacker) next.  We will see.  For now, I will enjoy the rest of my vacation. 

New Vista Beta

Ian gave me the latest Beta of Windows Vista. I have the 64-bit edition and I hope it will work this time. Right now I have the 32 bit edition installed. I should have it installed by tomorrow so expect a review soon.