The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My work

  • My badges

  • Twitter Updates

  • My Flickr Stream

    20140508-Delphi-2007--Project-Options--Cannot-Edit-Application-Title-HelpFile-Icon-Theming

    20140430-Fiddler-Filter-Actions-Button-Run-Filterset-now

    20140424-Windows-7-free-disk-space

    More Photos
  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,750 other followers

Archive for September 13th, 2012

Don’t spam with OutputDebugString

Posted by jpluimers on 2012/09/13

A production version of an app should not spam using OutputDebugString.

Some apps do, for instance very couple of seconds the “TAM E-SSO AccessAgent” DataProvider.exe process spams stuff like this:

[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_desktop_inactivity_mins
...
[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_aa_tray_menu_options_enabled
[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_automatic_sign_up_enabled
[1952] GRP_StubImpl Inside
[1952] before deserializing the message
[1952] GRP_StubImpl for Policy Id = pid_desktop_inactivity_mins
...

It is in the chain of processes (yes, the tripple backslash is actually there, this is how IBM starts is):

  • “C:\Program Files\Encentuate\AATray.exe”
    • “C:\Program Files\Encentuate\\\DataProvider.exe”
      • “C:\Program Files\Encentuate\Sync.exe”

All of them have version 8.1.0.130 and timestamp 20-12-2010 14:32.

You’d think that IBM knows how to do this right (:

–jeroen

Posted in Debugging, Development, Software Development | Tagged: , , , | Leave a Comment »

Things I tripped over when implementing the “Elf proef”: digit check for Dutch bank account numbers and social security numbers (bankrekeningnummer, BSN/Sofinummer)

Posted by jpluimers on 2012/09/13

It was a long time ago that I ever did something with the Elf proef.

It is the algorithm that is used to calculate the check digit for Dutch bank account numbers (bankrekeningnummers) and a variation for BSNs (Social Security Numbers).

I needed it (or more exactly: a variation of it) in order to support anonymization of customer data for the DTA/OTA portions of a DTAP/OTAP environment.

So, I started reading on the Elf proef, and getting some sample data to setup some unit tests.

Wrong and wrong:

To start with the latter, they get it wrong because the check digit is modulo 11 (like the ISBN 10 check digit), but only numeric digits are valid. Their bank.js algorithm module tries to accommodate for that in the wrong way.

In addition they copy-pasted code between their other number generation algorithms which you can see form the variable SofiNr which is an abbreviation for SofiNummer,  the old name for the Dutch Social Security Number (now called Burgerservicenummer aka BSN).

Their generated sample 290594880 is wrong because the check digit should be 10, and 10 is not a digit. Their generated number 936977590 is OK as the check digit should be zero (0) which it is.

More on their fault a bit further on. First lets concentrate on getting proper test data, and the right algorithm.

I will cover code for the bankrekeningnummer here. The complete code including BSN is at BeSharp.CodePlex.com. Read the rest of this entry »

Posted in .NET, C#, C# 3.0, C# 4.0, C# 5.0, Development, JavaScript/ECMAScript, Scripting, Software Development | 2 Comments »

 
%d bloggers like this: