Thursday, October 08, 2009

Google Reader anniversary cleaning

No, they not turning 18 this month… It is mine two years of aggregating blogs with Google Reader and I must do the cleaning.

I’ve noticed that with time my list accumulates subscriptions which I rarely, if ever, read. Just one nice post or more often somebody’s recommendation makes me add the blog and nothing else. And it has obvious negative implications: my almost inexistent will-power gives up immediately as I see 200 unread messages waiting. I postpone it and next day additional 200 make it even less encouraging.
Then eventually I come to my senses and invent some kind of system to put away at least. First go those which don’t have new posts within last month (mine would fall in this category more often than not), then those which not interesting anymore (like I’ve lost interest in Joel Spolsky’s internal company news some time ago) and then those which topic lays away from my professional are of interests (that excludes travel and photography blogs, although I neither).

This time I will be doing something radically new – my goal is to eliminate 25% of subscriptions and keep it that way. If new blog comes along – one of the old ones should give it’s way. Unless I soften up and just add it again. Till the next anniversary.

Wednesday, October 07, 2009

Windows 7 Virtual PC

This is a new edition of the developer’s must-have software. Although it is not the only option yet, especially if your Windows 7 machine does not support the requirements for Windows Virtual PC, namely the hardware virtualization. It is good to know that Virtual PC 2007 (with SP1) is still an option, just add a latest hotfix and you should be good to go (note that Windows 7 is still not in a list of supported operations systems).

Surprisingly, the trick with speeding up Virtual PC by running Media Player on the host machine still works, though not to extend of Virtual PC 2007 case.

For those really adventurous, Sun Virtual Box is yet another virtualization alternative.

P.S. Two annoyances I’ve noticed with Windows Virtual PC so far, aside of noticeable slower performance of external (to the VPC) drives: no OS startup screen on VPC restarts and re-login prompt on VPC window resize. 
It is boring to watch a pointless progress bar, while VPC OS is starting behind the screen. My only explanation why they thought it would be a bright idea, is that they all are server folks and see system restart scares a bejesus out of them.
The second one is cured by allowing VPC remember login information during the first start. The screen looks like normal login request and account name is pre-populated with your login name, which makes it slightly misleading. Just enter “different account” info, which would be the VPC OS account. The stored credentials can be cleared through the virtual machine settings and you will be prompted to re-enter them next start. I don’t see much security problem in allowing to store a credentials, unless your VPC is on the external drive (as it better be) – in this case True Crypt is your humble saviour.

Technorati Tags: ,

Thursday, July 09, 2009

BizTalk architecture whitepaper

BizTalk Server 2004: A Messaging Engine Overview is by far the best document in helping to understand the BizTalk.

Despite being written for BizTalk 2004 it is still valid for 2006, 2006R2 and 2009 and makes an especially good reading between taking a First Look at BizTalk 2006 and digging deeper into the details.

Friday, July 03, 2009

Architectural, technical and spiritual videos

From Norwegian Developers Conference June 2009 (Scott Hanselman, Phil Haack, Michael Feathers, Juval Löwy, Rocky Lhotka and many more)

From Øredev conference Nov 2008 (Jimmy Nilsson, Eric Evans and many more)

Thursday, July 02, 2009

WCF thread safety in 25 lines of code

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, ConcurrencyMode = ConcurrencyMode.Single)]
public class ThreadSafeService : IServiceContract
{
private int counter;

[MethodImpl(MethodImplOptions.Synchronized)]
public void IncrementCounter(int amount)
{
Mutex m = new Mutex(false);
try
{
Monitor.Enter(this);
m.WaitOne();
lock (this)
{
Interlocked.Add(ref counter, amount);
}
}
finally
{
m.ReleaseMutex();
Monitor.Exit(this);
}
}
}

I dare to say that familiarity with every technique used in this sample would make you comfortable in dealing with WCF multithreading and throughput issues.

Friday, June 26, 2009

Agile family values

The best thoughts taken from the last meeting of Toronto Agile User Group (heard or taken from the air):

In reality client doesn’t need to spend less money – he needs to spend it wisely.

In reality managers don’t need to ship software faster – they need to ship it predictably.

It is all about honesty and trust. Honesty to others and to yourselves: to be ready to admit that everything else is just smoke and mirrors. And to trust others that you can say it out loud without igniting political wars.

Monday, June 01, 2009

Applying Fluent Interface. Part II – fluent validation.

In of the podcasts on Dimecast.Net Derik Whittaker has shown very smart way to address object validation with Fluent interface.

First I couldn’t help myself but notice that “Painfulway Validation” could be replaced with a yield constructs (picked up from ScottGu’s tutorial):

public static IEnumerable<string> Validate (HostEntry hostEntry)
{
if (string.isNullOrEmpty(hostEntry.FirstName))
yield return "First Name is null";
if (string.isNullOrEmpty(hostEntry.LastName))
yield return "Last Name is null";
etc...


Maybe it is still painful to read but obviously less verbose. But anyway that construct is still to be replaced by Derek’s smart implementation.


© 2008 Michael Goldobin. All rights reserved