For the last few weeks I am thinking writing some blog posts about anti-patterns in software engineering but I did not get around to it. Then last Tuesday our software architect mentioned an anti-pattern called Lava flow. He said that lava flow means the constant search and implementation of developers for new solutions to a problem and not using and/or improving existing solutions. This is of course not Lava flow but Not-Invented-Here-syndrome. Maybe he meant Not-Invented-Here-syndrome. I do not know.

What is Lava flow? Lava flow is lava pouring out of a volcano. It runs down a hill and when it stops it becomes ugly and very hard. It cannot be removed any more. In software engineering it means that the code is a relic of earlier stage of a software design. Ancient code, usually dead code and forgotten design information, which nobody dares to touch. It has been solidified into the architecture. Almost immovable. New solutions are built upon it. Making it hard to remove.

Possible problems with Lava flows are:

  • They are hard to analyze,
  • They are hard to test,
  • They are hard to maintain,
  • They can have a negative influence on performance and resource usage.

What are a few the symptoms?

  • There are a lot of TODO’s in the code,
  • No documentation of the code,
  • Lots of code that has been commented out without explanation,
  • Important looking methods or classes,
  • Complex methods or classes,
  • Long methods or classes.

The benefit of Read Uncommitted is that it offers maximum concurrency; transactions don’t have to wait or be blocked because no shared locks or exclusive locks are given. Under the Read Uncommitted isolation level, a second process can see data before the transaction that changes the data is complete. This is called a dirty read. Another possible con is the lost update: a change made by a first process is changed by a second one.

Yesterday I put Actucal on Codeplex. Actucal is an calculation model tool and engine. It allows you to define a insurance model and have that model calculate the parameters of the insurance, such as the premium.

Web projects in Visual Studio 2010 have the ability to define web.config transformations. That way a developer can create web.config files for each solution configuration based on a base web.config. Sadly this functionality is only available for web.config files. Other configuration files, like the aap.config, are not supported. So it seems anyway. The following links show how to make it work for every config file.

I hope this information will help you with your projects. Happy programming.

Many people have installed the beta or release candidate releases of Windows 7. Now that Windows 7 RTM is out they want to upgrade these installations. They will found out that it is not possible. The installer will complain that you have in stalled a version of Windows 7 that cannot be upgraded. It that it? Must you do a clean install and loose all the stuff from the other installs? No, see the steps underneath to upgrade the per-RTM Windows 7 installations.

How to Upgrade Windows 7 RC/Beta to Windows 7 RTM

1. Mount Windows 7 RTM Build 7600 ISO and Extract content to any folder or USB drive.
2. Now go to Sources folder of Windows 7 and open “cversion.ini” file in notepad.
3. Modify the “MinClient” build number to a value lower than your installed Windows 7 Build. For example, change 7233 to 7000 if you have Windows 7 Beta Build installed.


4. Save the updated file to the same location and then run setup.exe to start Windows 7 RC upgrade process.

That’s it, Now follow on Screen instructions and choose Upgrade option.