Document based sagas for dummies

In previous two post, CQRS for dummies and CQRS for developers we saw how to derive our target architecture from an ordinary night at the bar. However in those to post we only considered things going on in our own head. This post will be about all the things going on around us, about how [...]

Comments { 0 }

CQRS for developers

From the CQRS for dummies post we can extract a couple of important concepts. Non blocking operations, we can continue to speak even when our conscience is gone. Eventual consistency due to persistent storage of past events, the conscience was able to get back in synch without missing that we did break some of it [...]

Comments { 0 }

CQRS for dummies

Most of us have been in situations where a part of our self starts acting on its own. One example of this is the common situation when we open our mouth and starts speaking before thinking. Somewhere in our brains there is a process (our conscience) that will stop us from saying dumb things.  If [...]

Comments { 2 }

Access a Mercurial (BitBucket) repository using SSH key from TeamCity

This post outlines the problem pretty well as wall as part of the solution: http://weichhold.com/2010/08/12/using-mercurial-over-ssh-with-private-key-in-teamcity-ci/ However our build server did not read the mecurial.ini file when placed in the SysWOW64/config/systemprofile folder. (You can test this by running hg showconfig from the console running under the systems account.) Instead we had to place it in the [...]

Comments { 0 }

Setting up kdiff3 for git on windows

Install kdiff3 (I use the version bundled with TortoiseHg). run the following commands in the git bash: git config –global merge.tool kdiff3 git config –global mergetool.kdiff3.path "C:\Program Files\TortoiseHg\kdiff3.exe" merge! git mergetool

Comments { 0 }

Never version things by date

Suddenly our CI-machine started to fail on code that we had not touched for ages. Test(s) failed. Expected string length 6 but was 4. Strings differ at index 0. Expected: “foobar” But was: “test” The test that broke the build was very straight forward: [Test] public void SettingsShouldSupportCRUD() { ApplicationSetting.Delete("Test.ABC");   var setting = ApplicationSetting.Get("Test.ABC"); [...]

Comments { 0 }

Watin and portable Firefox

I stumbled over this thread in the Watin archives and thought that it sounded like a great idea to use a portable bundle of Firefox for our acceptance tests. However it took some more effort in getting this thing to work than just changing the FireFox.PathToExe property. Changing just the property will just make Watin [...]

Comments { 2 }

Accessing Ubuntu running on Hyper-V over Remote Desktop

This is a note to self (and anyone else who tries to access a virtual Ubuntu guest on Hyper-V from a RDP-session). Mouse capture does not work in Hyper-V when accessing it from a RDP-session unless you have installed the integration services in the guest OS. (MS does not provide integration services for Ubuntu…) In [...]

Comments { 0 }

AuthenticateRequest not raised when doing a Server.Transfer

I’ve recently enhanced a legacy product with support for “custom links” by writing a simple HttpModule.

The module is very simple, it hooks in to each request and check if a mapping exists for the current path.
In order to do this all it needs is a simple map of new to old (legacy) paths.

If a mapping is found, a call to Server.Transfer is done to transfer the request the the correct page.

This worked like a charm until I realized that the AuthenticateRequest was no longer raised when visiting a link that was served using my new module.

Comments { 0 }

C programming sucks

I really love all the cryptic errors you can run into in this fantastic language. void replayAllPastEvents(DumbThing *dumbThing){ // read events from disk, bla bla bla apply(dumbthing, event); // <- explosion in this call // … } The code did compile but crashed due to a segmentation fault in the apply function. Can you spot [...]

Comments { 0 }