Paul Ulvinius Blog

From one developer to another

Archive for the ‘Uncategorized’ Category

I’ve moved!

Posted by paululvinius on July 19, 2010

This blog is now running on my home server under a much better domain name, namely

Please update your bookmarks, see you on the other side! 😉


Posted in Uncategorized | Leave a Comment »

My top 5 SEO and web site performance tools right now

Posted by paululvinius on November 12, 2009

  1. YSlow
  2. IIS SEO Toolkit
  3. SEOMoz
  4. Website Grader
  5. Pingdom tools

Not necessarily in any order, I rather think they complement each other pretty well.

Posted in Uncategorized | Leave a Comment »

Issue with HR-XML schema in SQL Server 2005

Posted by paululvinius on November 23, 2007

We are developing a HR-software which stores its data as HR-XML (the Candidate schema) directly in a database table using SQL Server 2005. The XML-column is typed to the schema so that we get schema validation and data type storing optimization. In our tests everything runs fast, especially with the XML-indexes the database provides. The only issue we have encountered is that the XML schema has some string patterns which SQL Server also warns us about:
Warning: Type ‘’ is restricted by a facet ‘pattern’ that may impede full round-tripping of instances of this type.

The problem lies in the HR-XML type “LocalDateType”, which isn’t compatible with SQL server 2005 since it forces you to follow the pattern “\d\d\d\d-\d\d-\d\d”. SQL Server 2005 doesn’t allow this because there is no “Z”-postfix decorating the date. In SQL Server 2005, values of type xs:datetime, xs:date, and xs:time must be specified in ISO 8601 format and include a time zone (, chapter: “Using xs:datetime, xs:date, and xs:time”).
E.g. the element:

“Candidate/CandidateProfile/PersonalData/PersonDescriptors/BiologicalDescriptors/DateOfBirth” is defined with the type LocalDateNkNaType which in turn refers to the types “LocalDateType NotKnownLiteral NotApplicableLiteral”. The only usable choice here is obviously LocalDateType, which is not supported by SQL Server 2005. We chose to store DateOfBirth somewhere else, in favor of altering the schema. Its tempting to just add that ‘Z’ in the HR-XML schema, but being 99.99% compatible is just annoying.

Posted in Uncategorized | Leave a Comment »

Use FxCop to enhance your .NET code

Posted by paululvinius on August 11, 2007

I finally dusted off my copy of Microsoft FxCop (a program that analyzes your assemblies with reflection and finds out more stuff about your code than you probably want to know). The best thing about this tool is that its really clever. It analyzes design, performance, naming conventions, security and localization. It thereby covers many steps in the project life-cycle. During design, it can help you with design implementation decisions. During implementation it can help you with code optimization and see to that you follow naming conventions for managed code. During testing it can function as a complement to static testing / code review. Run it on your assemblies from time to time, I bet it will help you find some nasty bugs.

By following the naming conventions, you not only make sure we speak the same programming language, but also the same “dialect” if you will. They are formed to increase readability and maintainability and by implementing them you also tend to write more consistent code.

Of course, its a lot about making a decision about what rules are reasonable in a given project. But even in the process of doing that, you will find yourself considering some questions that are easily forgotten. If nothing else, it can be an educational trip to the Microsoft .NET Framework Design Guidelines which the tool is based upon.

Posted in Uncategorized | Leave a Comment »