Friday, June 29, 2007

I love the internet

I found a site the other day that I am quite intrigued by. It's a money lending site (wait there's more) where P2P loans are agreed upon. Basically it's a marketplace where individuals can borrow and lend money. Borrowers create a loan request and lenders can fulfill parts of the request if they like the conditions (interest rate and borrower's credit rating). The dutch site is only a few months old and has already seen 1 Million Euro go through it. It seems like a relatively low risk investment and the average return is over 10%. I think I may have to try it. www.boober.nl is the dutch one, I forget what the one in England is called.

Thursday, June 28, 2007

The Hip are coming back

I have a feeling The Tragically Hip like the Netherlands. They are coming back again this year and this time I got tickets for a show in Amsterdam. It's one of the best concert venues in the country so I'm looking forward to this. In case you are bored September 26 and happen to be in Amsterdam, feel free to join me at Paradiso.

Monday, June 25, 2007

Drivers Licence

Today I had my driving exam and passed. I can drive again! Another one of those pain in the ass things checked off.

Saturday, June 16, 2007

Update

I've been neglecting this blog quite a bit lately so I thought it was time for a general update. My time lately has been split between finishing a project for a client and working on my apartment. My current contract is coming to an end, the project is almost done and turned out to be quite successful. What can I say, I do my job well. :)

My apartment is moving forward, but it is a lot of work and I'm starting to get fed up. I've got a few more weekends before my new floor gets installed and I need to be done painting before then. So far I've got my living room painted with a base white and my bedroom is almost ready to get its first coat. Fixing the walls has been a major pain in the ass. It will all be worth it in the end, I just can't wait to get there. I am very grateful for all the help I've received. I've had a few friends come over and do a few things, and my brother really put in some effort a few weekends ago.

Here are a few pics of the apartment at various stages:


Wallpaper nightmare


That ceiling was filthy


I'm not sure if Miro is painting or playing air guitar...

Friday, June 15, 2007

A4SWIFT ACK NAK schema has an error

It's been a while since a purely technical post but having gone to a Microsoft conference put me in the mood.

I've been working with the A4SWIFT accelerator for BizTalk 2006 a lot lately and ran across a few challenges. One that I didn't find any documentation for was that the ACK and NAK messages that come back from SWIFT do not validate against the schema provided in the accelerator or in the new 2006 message pack. The error you get when running Validate Instance in VS2005 is one like:

error BEC2004: Unexpected data found while looking for:
'}'
The current definition being parsed is AllianceTrailerBlocks. The stream offset where the error occured is 65. The line number where the error occured is 1. The column where the error occured is 65.

I looked at the message produced when I use the Generate Instance option on the schema, and noticed that there is an imbalance in brackets. There is one too many of these } present. The generated instance looks like the following (I've added whitespace to make reading easier):

{1:ASeLTAddressSessSequen}
{4:{177:DateTime}{451:AcceptReject}{405:ErrLin}{108:MessageUserReference}}
{5:
{MAC:AuthenticationResult}
{PAC:AuthenticationResult}
{CHK:Checksum}
{SYS:TimeAndInputReference}
{TNG:}Training
{PDE:TimeAndInputReference}
{DLM:}DelayedMessage
}
{S:{AllianceTrailerData}}
}
Notice the bracket that is in red, it turns out to be the one that is extra. To get rid of it, go to the Swift Trailer, Alliance Trailer Blocks, Repeating Trailers Alliance Trailer Data and set the child delimiter type to 'None'. This fixes the schema so that actual SWIFT ACK and NAK messages are validated. The exact location of the node is

/*[local-name()='SWIFT_CATEGORYS_MTS21_FIN_ACKNAK_Interchange' and namespace-uri()='http://schemas.microsoft.com/BizTalk/Solutions/FinancialServices
/SWIFT/CategoryS/MTS21_FIN_ACKNAK']/*[local-name()='SWIFTTrailer' and namespace-uri()='']/*[local-name()='AllianceTrailerBlocks' and namespace-uri()='']/*[local-name()='RepeatingTrailers' and namespace-uri()='']/*[local-name()='AllianceTrailerDataRecord' and namespace-uri()='']

Once the fix is in place, the generated instance looks like :

{1:ASeLTAddressSessSequen}
{4:{177:DateTime}
{451:AcceptReject}
{405:ErrLin}
{108:MessageUserReference}
}
{5:{MAC:AuthenticationResult}
{PAC:AuthenticationResult}
{CHK:Checksum}
{SYS:TimeAndInputReference}
{TNG:}Training
{PDE:TimeAndInputReference}
{DLM:}DelayedMessage
}
{S:{AllianceTrailerData}
}

I was surprised to see that this hasn't been blogged about before since I can't see how anyone would get the ACK and NAKs to work with the existing schema.