Gaming Machines

My options are mind boggling. I can get a console, a high end PC, a gaming PC from a shady company or build my own.

If I get a console, the hardware is cheap, the software somewhat expensive and the whole system is somewhat duplicative since I already own a PC.

If I get a high end PC, I’ll be poor and Dell will be rich, or I’ll be bankrupt and Falcon NW will be rich.

I can get a gaming PC from a shady company and then fight with the company for RMAs and the like for the next year.

I can also try to build my own PC and hope that building PC’s has gotten easier.

VSS via IIS

One article on setting up VSS on ISS.

Here is a short list of my notes on using VSS with SQL. 1st off, I’m imagining that only procedures, views, functions and other objects that look like code will be checked in. Altering tables is rocket science and requires a specialized tool.

VSS/SQL integration mostly means you generate the scripts for all code-like objects. Then you check those into VSS. Then you edit those files and it is up to the developer to run them against the appropriate server. VSS can make sure that your local copy of the scripts and the code database’s copy of the scripts are in synch, but can’t check for people making changes to their local database’s. A developer could accidentially skip the check out and edit the proc directly in Enterprise Manager and VSS wouldn’t know it, unlike the working copy of scripts, which are set to read only until explicitly checked out. Similarly, when code is checked in, the developer could forget to publish the new proc to his local SQL server.

Also, if the developers are using a shared SQL box, then when the run the SQL script, the last one in wins, unlike VSS, which detects conflicts. This can be solved by using a shadow copy (which publishes the files in VSS to a shared folder), which could be automatically imported into the shared database, say in a nightly build process, or on demand.
VSS Client: No SQL features (the scripts are just text files), although you can tell VSS to launch your favorite editor.

Query Analyzer: No VSS features

Visual Studio: Some VSS integration, but the work flow is a bit clunky. You have to manually synch up the name of the script file and the name of the object. After exporting objects, you have to manually add the create scripts to the project.  Plus there are two ways to change a procedure, either in the object explorer in the server browser, which doesn’t have VSS features, or in the scripts folder of the database project.

SQL Server Management Studio: Some VSS integration, somewhat similar problems as Visual Studio, although different.

Script export/import: This is the process of synching VSS to SQL. Ideally, we’d want to be able to detect conflicts. Failing that, we’d have to resort to using security rules to keep people from editing the SQL code in SQL directly, or being mean and having a policy that says, the code in VSS always wins, regardless to any changes made directly to the Server.

Documenting Anything

Some document generators are as smart as compilers and can figure out what is a function, what is a subroutine, etc for all language specific elements.  This is true for database documenters that only reference the system tables.  This documenation isn’t as exciting as it could be, because it just repeats what is usually available with a database or class browser.
Some document generators are entirely on hand generated code.  This is a bit more tedious because if you forget to add the comment templates, the document generator won’t notice. Examples: RoboDoc, Natural Docs
And of course some are in between, which automatically generate documentation from the structure of the class and add tagged comments when available.  Examples: (mostly commercial stuff)

Graphics Cards

I’m researching graphics cards.

I can either start with my budget and pick a graphics card, but after awhile I decided if was to choose a budget, I’d choose zero. So that won’t work.

I noticed most games demos run on my machine already, albeit not at top resolution or with all the options checked. Plus, even when these options are checked, the game doesn’t change that much. In otherwords, the games are targeting the low end. They are not targeting the high end and degrading to deal with my machine’s spec’s.

I did hit two games that I am highly interested in that I can run on my box, Battlefield 2 and Elder Scroll IV: Oblivion. These games have some fantastic graphics. The former is multiplayer, an important consideration, and the latter is single player but has outstanding graphics.

I think I will pick my graphics card based on the above two games.

Sys for SQL2000

We used to not use the master..sys* tables for fear that Microsoft would change the schema and break our code.  Now that is not a fear, it is a known entity.  It seems like it should be possible to create a user named sys, and then create a bunch of views that reference the old master..sys* tables which would have much the same structure as the SQL2005 tables.  Oh well, a project for another day.

SSIS Trick

BIDS doesn’t sort package names in the Packages folder. To make them sort, exclude all from project and then re-add existing item. DO NOT re-add existing project, because that will make a copy of the project instead of adding it as would be intuitive. (This add-as-a-copy behavior only makes sense if you are getting a package from the SQL msdb store)

UI Options For SSIS

1) No user interface.

2) BIDS as the user interface.  Very flashy, dramatically reduces performance.

3) Windows forms through scripting task

The first technique I’ve used involved:

Creating a windows form in VS2005.  Add a public property for communicating with the calling script.  Copy the code for the partial class and the code behind class to a single class, put it in the Scripting window.  Add a reference to System.Drawing.  Add import statements for System.Windows.Forms & System.Drawing.  Make initialize components visible.
New up the form class, call intialize components, and .Show()

Add a Do/While loop, with a System.Windows.Forms.Application.DoEvents()  keep the script from exiting and closing the form and to let the window respond to events while polling the public property on the form.

Some day I should rewrite this entry and make it more clear.

SSIS Packages and Shared Configurations

I have a lot of packages, not all have the same set of connection objects. When I try to let them share the same connection file, I get error messages that say the package might be corrupt because the config file mentions a connection that isn’t in the package. This is getting very aggravating, I’m seriously considering falling back to handwritten configuration code that would read from an .ini.

If a shared config file has 20 configuration items in it, then you have to create 20 objects in every package that uses the config file, even if that particular package uses only 2 of the configurations. And if there were two packages that had the same 20 components, then it probably would be a good candidate for merging into a single package.

Another anti-pattern would be creating a configuration file for each package.  Since these, say 20 config files mostly have the same information (the names of our 3 favorite servers), this is a lot of duplicate code.