Archive for June, 2008
Reverse a dictionary
1Have you ever wished your dictionary of <K,V> was in fact of <V,K>? I might be the last person to figure this out, but with LINQ (and a couple lambdas) you can do this with one magical line of code:
var newDict = oldDict.ToDictionary(l => l.Value, l => l.Key); |
Neat, eh?
I hate Subversion
3I really really hate it. Every time I try to do anything USEFUL with it, like try out an idea in a new branch and then merge the bits of that branch that worked out back to my main line, it barfs all over me with totally crap-ass error messages that nobody could ever, EVER understand.
Also, despite their claims to the contrary in the documentation, svn will happily shit all over your working copy when a switch fails. So much for atomic operations.
I’ve had it. I’m switching to Mercurial.
Become a Jedi with Resharper
0If you work in C# or VB.net on a regular basis, you really owe it to yourself to try out Resharper. This tool saves me countless hours.
James Kovacs put together some fantastic screencasts on “Becoming a Jedi” that show it in action, if you are curious.
He hasn’t covered the features that make it a boon for test driven development yet, but there’s another great screencast that shows that off, and this post provides some additional details on “coding in reverse” with Resharper.
Order of operations
2Sometimes I can be such a buffoon. When programming with threads, one must be sure to lock and unlock in the correct order. Also, one must be sure not to do things explicitly marked as no-nos while in a “critical section.”
I just lost two hours to this, so I felt the need to whine.