Friday, July 11, 2008

Problem with CollabNet SVN 1.5

When I upgraded I started getting messages like this:

Failed to load module for FS type 'bdb'

Apparently bdb module is not working (or maybe they forgot to include it?) in the CollabNet distribution. I had to use the old binaries to migrate the repositories from bdb to fsfs like this:

svnadmin create NEW_REPOSITORY
svnadmin dump OLD_REPOSITORY | svnadmin load NEW_REPOSITORY

where NEW_REPOSITORY is the file path to the new fsfs repository and OLD_REPOSITORY is the file path to the old bdb repository.

Sunday, July 06, 2008

BizTalk services let you expose stuff on internal network?

See http://msdn.microsoft.com/en-us/magazine/cc546613.aspx. Using RelayedHttp you can expose the web service on your internal network to the internet. But I wonder how this thing work? Is the service polling the BizTalk services all the time to check if there is any request?

Monday, May 19, 2008

Process owner

Some people own the process they are using, the others are owned by the process. It is especially sad when the people who invented the process in the first place start being owned by it.

Monday, May 12, 2008

QTP license blues

After a few times when QTP refused to find a license server I finally found a solution: in Windows firewall you need to open UDP port 5093.

Tuesday, May 06, 2008

Evangelists

There are so many Microsoft evangelists now, so I started wondering if there is also a Microsoft seminary.

Monday, April 28, 2008

AquaLogic® BPM

AquaLogic® BPM seems to be way more advanced workflow engine than Microsoft WF. In particular it is designed to work for human workflow, which Microsoft WF is not.

Typemock

If you have $450 per developer to spare consider buying TypeMock Isolator. It is especially useful when writing unit tests for a legacy system that is not well-designed. It is interesting to see how you can make sense of the spaghetti code by mocking everything: public methods, private methods, etc. Of course before that you should get ReSharper for much cheaper...

Wednesday, April 16, 2008

How to avoid session expiration

http://www.codinghorror.com/blog/archives/001100.html

Create a background JavaScript process in the browser that sends regular heartbeats to the server. Regenerate a new cookie with timed expiration, say, every 5 or 10 minutes.

Monday, April 14, 2008

VS2008

How is Visual Studio 2008 improving developer's productivity if it is twice slower than Visual Studio 2005?

Monday, April 07, 2008

VS2008 web projects

I was so happy when in VS2005 the web projects did not require any virtual directory to be set up. This allowed me to be working on multiple branches of the same web applications. In VS2008 we are back to the old stuff of requiring that the physical directory should match the virtual directory specified in the project file. WHY? This thing does not make any sense to me!

Wednesday, April 02, 2008

Web Client Software Factory

http://www.codeplex.com/websf

I have an impression that this was called something like "Composite application block" or something, because I tried it a year ago. At that time it impressed me with complexity. Did not quite fit into what Microsoft is trying to sell as "Software Factories". We'll see if some of the shortcomings are addressed in this incarnation.

Thursday, March 27, 2008

CI Factory

Wow! Continuous integration out of the box. Everything integrated! Just install and configure it! CI Factory

Wednesday, March 05, 2008

Why can't I throws an exception in .Net?

I used to belong to the camp that says that throwsing exception in Java is useless and you would rather not catch any exception until in the outer program catching all exceptions. Now working on the code I see a lot of random "catch all" statements that were originally meant to catch only OracleException or ParseException, but eventually that knowledge was forgotten and we started also swallowing other exceptions that we did not intend to do in the beginning. Thus if there is a problem in the code I cannot diagnose it until I start debugging it.

Instead if, like in Java, the methods were throwsing the exceptions forcing the client methods to catch them or to throws them further the developer's task would be much easier figuring out what exceptions need to be caught or rethrown.

Thursday, February 21, 2008

Friday, January 18, 2008

TFS 2005 installation problems

While installing TFS 2005 you may get many error messages during the system health check. Some of the messages may be quite misleading. To find out more details you can open a file called hcpackage.xml (in the folders at, dt or atdt) and find the error message. The file also has WMI queries that are being executed to determine if an error condition exists. Sometimes there are multiple WMI queries that result in a single error message, so you have a much better chance to troubleshoot the problem and resolve the installation issue. You can also try to edit the file and remove the WMI if your environment cannot conform to the TFS 2005 requirements.

Thursday, January 10, 2008

Unit test generator

Just an idea: what if we had the software that would automatically generate unit tests for all success scenarios? It would work like this:
1. Attach to the running process as a debugger
2. The user would use the application to test all success scenarios
3. The generator program would record all the method invocations with all the parameters.
4. After the application that is being debugged exits the generator program would use the information about methods invocation and generate NUnit tests.

Monday, December 10, 2007

Object-oriented design

The goal of object-oriented design is not only to reduce dependency, but also to remove ambiguity.For example, using DataSet as a universal data transfer object definitely reduces dependency, but increases ambiguity a lot, requiring you to understand the non-documented contract of what data should be in the data set and what do they represent. By using strongly-typed objects you document the contract and reduce ambiguity.

Here is the strong point of the strongly typed languages vs. dynamic languages. The contracts in the strongly typed languages are usually more pronounced. Unit tests can compensate for the missing contract details but cannot themselves become a part of the object contract.

Monday, December 03, 2007

Tuesday, November 20, 2007

Exam 70-529 training kit

The training kit is written quite poorly with a lot of typos and mistakes. Some of the examples are only given in VB.Net. What is most exciting (and funny) are the "words of wisdom" of the book:

"It is nearly impossible to write more than a few lines of code without there being some type of error in the execution of the code" (page 239)

"You should always expect the unexpected" (page 242).