This station is non-operational

I realized that I hadn't posted anything new in a long time and I don't think this will change anytime soon. That doesn't mean that Informatica PowerCenter is a perfect piece of software, so there are no discoveries or tricks I could write about. There are and I ofter post articles about them to an internal knowledge base at work. For legal reasons, I cannot re-post them here.

Also, since the arrival of StackOverflow, I am a regular there and at other StackExchange sites, so it eats up quite a lot of the time I spend online.

I am not going to delete the blog, since some posts are still quite popular and they're getting a considerable number of visits every month.


Names of custom content types cannot contain slashes

This is a definition of a custom content type generated in Visual Studio. The only thing I changed is the Name attribute.
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <!-- Parent ContentType: Task (0x0108) -->
  <ContentType ID="0x010800096b8767b29a4191929d5cc2d50e094e"
               Name="Yes/No Task"
               Group="Custom Content Types"
               Description="My Content Type"
It seems to be perfectly valid. The package can be built and deployed to SharePoint without any errors or warnings. However, the new content type does not show up on the Site content types page (/_layouts/mngctype.aspx).

The problem is caused by the '/' character in content type's name - remove the slash, re-deploy the package and now the new content type will be visible on the Site content types page.


Error "Violation of PRIMARY KEY constraint 'PK_Name'. Cannot insert duplicate key in object 'dbo.Table'" when applying snapshot to the Subscriber database

When setting up merge replication, you may get the following error:
Violation of PRIMARY KEY constraint 'PK_Name'. Cannot insert duplicate key in object 'dbo.Table'
while the initial snapshot is applied to the Subscriber database.

How can data that violates no primary key constraints at the Publisher cause such an error at the Subscriber? This can be caused by different collations used by the Publisher and Subscriber (at the database, table or column level).

If the Publisher database has a case-sensitive collation (e.g. SQL_Latin1_General_CP1_CS_AS ), the following data is correct (columns Type and Code are a primary key):

Type  Code  Column1
024   N     ...
024   n     ...
024   g     ...

However, an attempt to insert these rows into a table with case-insensitive collation (e.g. Latin1_General_CI_AI) will cause a primary key violation.


Filter results in SQL Server Management Studio may be case-sensitive

If you are working with a database that has a case-sensitive collation (e.g. Latin1_General_CS_AS), the filter function in SQL Server Management Studio will use this setting and the results will be case-sensitive.

Filter showing tables with Bitmap in the name:

Filter showing tables with bitmap in the name:

If this database had a case-insensitive collation, filter results for Bitmap and bitmap would be identical and would contain all four tables.


Spotify global hotkeys - AutoHotkey script

My script is based on one I found here.


Previous trackWin+1
Next trackWin+3
Volume downWin+Q
Volume upWin+W

; Previous track
ControlSend, ahk_parent, ^{Left}, ahk_class SpotifyMainWindow

; Play/pause
ControlSend, ahk_parent, {Space}, ahk_class SpotifyMainWindow

; Next track
ControlSend, ahk_parent, ^{Right}, ahk_class SpotifyMainWindow

; Volume down
ControlSend, ahk_parent, ^{Down}, ahk_class SpotifyMainWindow

; Volume up
ControlSend, ahk_parent, ^{Up}, ahk_class SpotifyMainWindow
How does it work:

It's very simple - I just mapped my favourite audio player hotkeys to default Spotify keyboard shortcuts, e.g. #1 means Win+1 in AutoHotkey syntax and pressing this hotkey sends ^{Left} (i.e. Crtl+Left) to main window of Spotify application.


Web Parts Maintenance Page - fixing a SharePoint page with faulty Web Parts configuration

If you ever use Site Aggregator Web Part on the default.aspx page of a site and configure it in a way that redirects users to some other website (specified when adding Site Aggregator) every time they try to open the SharePoint site (I have no idea how I managed to do it), you can use the Web Parts Maintenance Page to resolve this problem. Of course, you can use this page to troubleshoot all other kinds of problems caused by Web Parts misconfiguration.

The URL of the Web Parts Maintenance Page is:



BSoD when installing Windows XP on ASUS K61IC notebook

If a bluescreen (Blue Screen of Death) occurs during Windows XP installation and the error message contains the 0x0000007B code, try to do the following:
  1. restart the notebook,
  2. press F2 to enter the BIOS setup,
  3. go to Advanced and then IDE Configuration,
  4. change the SATA Operation Mode setting to Compatible (the default setting is Enhanced).
Some information about the STOP: 0x0000007B error can be found here.


Error "The remote debugger is not an acceptable version"

If you try to debug an ASP.NET application remotely using Remote Debugging Monitor (msvsmon.exe) and you get the following error:
The remote debugger is not an acceptable version
it means that the versions of Visual Studio and Msvsmon are different (e.g. Visual Studio 2005 + Msvsmon 2008).


Missing auto-generated Resources.Designer.cs file

If the Resources.Designer.cs file is missing and there is no Run Custom Tool option in the context menu for the Resources.cs file (or, of course, any other resources file), it probably means that the Custom Tool property of the Resources.cs file is empty:

This is what MSDN says about the Custom Tool property:
Custom tools are components that can be used to transform files from one type to another at design time. For example, a custom tool might be a dataset code generator that reads in an XML Schema (.xsd) file and generates classes in a code file that programmatically exposes its tables and columns. There is a predefined list of custom tools available in the product; this property enables you to see which custom tool is applied to a file. In rare circumstances, you might have to change the value of this property. The value of this property must be either blank or one of the built-in custom tools.
In case of Visual Studio 2008 the default tool generating the *.Designer.cs files is ResXFileCodeGenerator - type it in the property and the problem should be solved:


I found an easier way to do it: