June, 2009

Synergy

synergyLogo.png
Synergy is a useful wee utility that allows you to share a single keyboard and mouse across multiple machines - kind of a software equivalent to a KVM switch, but for keyboard and mouse only. This is very useful if you have two or more machines located next to each other. While I've used it to link two Windows XP machines, Synergy has support for a wide range of operating systems, including Macintosh, Linux (and other Unix variants) and the Windows 9x series.

Here's a walkthrough of how I set up Synergy to share my keyboard and mouse between two Windows systems.

Scoped Values

Here's an interesting utility class, a scoped value. This allows you to have a member variable that gets changed for a time, and then automatically restored back to the original value.

Looked at another way, a Scoped is a member variable where changes are not permanent. Instead, changes are kept during a particular scope of execution, then reverted.

When is this useful?

One sample use is for the mouse cursor - with a suitably configured Scoped you can simply change the cursor to an hour glass during a process and then have it automatically restored again afterwards.

Towards Maintainability

TowardsMaintainability.JPG

I've posted the Towards Maintainability presentation I gave last month (May 2009) at the Wellington .NET User Group.

See Towards Maintainability, under Presentations in the menu, for the PDF download.

Maintainable Code

MaintainableCode.jpg

I've posted the Maintainable Code presentation I gave this weekend at .NET User Group Code Camp 2009.

See Maintainable Code, under Presentations in the menu, for the PDF download.

Quote of the Day

longCloud.png

Quote of the day, from Matthew Hintzen's presentation on LINQ, Lambda and Extensions at the Wellington .NET Usergroup CodeCamp 2009:

If the code's not elegant, we're not done.
Don't accept an Ugly Betty or a Homely Bob.

Like Matthew, I'm a real believer in elegant code. Given a choice between code that is ugly and difficult to read, and code that is simple and easy to read, I'll choose the easy to read version every time.

First Impressions of Google Wave

googleWave.png

At their recent developer conference, Google gave the delegates a sneak peek of their new product, Google Wave. You can see the Google Wave demonstrations for yourself on YouTube.

Disclaimer: I've not used Google Wave at all, just viewed the release video and read a bunch of other commentaries. My comments below (in italics) are based on their developer early access preview and things are likely to change markedly between now and release.

So, what is Google Wave?