Free e-Books at Apress

There are several free, downloadable e-books at Apress here including

  • Programming VB .NET: A Guide For Experienced Programmers
  • COM and .NET Interoperability
  • Google, Amazon, and Beyond: Creating and Consuming Web Services
  • Dissecting a C# Application: Inside SharpDevelop

The last one is of particular interest. It describes the design, development and refactoring of SharpDevelop, an open-source alternative to the Visual Studio IDE.

DiffMerge: A free Difference and Merge Tool

Eric Sink of SourceGear fame has posted that SourceGear have released DiffMerge, a free tool for comparing and merging source files and folders. It includes:

  • Compare two text files
  • Lots of supported character encodings
  • Intra-line highlighting of the changed portion of a line
  • Three-way merge, including automatic merge whenever possible
  • Compare folders
  • Cross-platform: Runs on Windows and Mac OS X. Oh, and Linux too.
  • Full support for editing

There aren’t that many good, free merge tools around, and certainly not many that provide three-way merge and intra-line highlighting.

MCPD: Web and Windows

Last week I sat and passed two Microsoft exams, 70-551 and 70-552. Whilst this does not make me a better developer than someone who does not pursue the certifications (I know several developers who have none and are exceptionally skilled), it does force me to look at areas I might not use day-to-day.

This post, by Vishal Joshi, details the various upgrade paths to certification with a great additional comment by Rob Farley, which is the direction I’ve taken [MCPD:EAD = MCSD +551 + 552 + 554]

Team Development with TFS

The Patterns & Practices Team has released a Beta version of their “Team Development with TFS” document here. The original “Team Development with Visual SourceSafe” document was just 7 Chapters long; the new one weighs in at 17 Chapters and 360 pages!

There’s RAD and There’s RAD!

I came across this quote in a post by Scott Allen:

“It doesn’t matter what constraints were in place when you cobbled the code
together – it will end up in production for at least 5 years”

Blogs Blogs Blogs!

Yesterday I passed a mini-milestone; it’s one year since I started this blog and over 300 posts later I’d like to say thank you to everyone who drops by occasionally. OK, I know it’s nothing groundbreaking, but personally I find blogging is a great way to force yourself to write things up and also have a central place to store snippets.

Quite a few people have offered me encouragement and help along the way (you know who you are!) so in the same spirit I’d like to mention that fellow Perth’ite Keith Woods has started blogging. He already has some good info on his blog, so why not click and have a look!

SQL Server: Compare Date Part of DateTime Value

This is not new, but I wanted to record it for my own future reference.

Developers are sometimes caught when creating WHERE clauses that compare SQL Server datetime column values that have a time portion, such as ‘2007-05-20 21:32:33.437’ as opposed to ‘2007-05-20 00:00:00’. For instance, if you were to select all orders that had an OrderDate >= ‘2007-05-10 21:32:33.437’, then all rows having the value of that date but a smaller time portion would fail the test.

There are quite a few ways to extract just the date portion of a datetime value, but several suffer from the drawback that they apply a formula to the column being tested and greatly reduce the possibility that an index can be used (i.e. non searchable arguments). The following converts @SomeDateParam to have a zero time portion in a test of all order dates greater than or equal to a given datetime:


WHERE DateColumn >= DATEADD(day, DATEDIFF(day, 0, @SomeDateParam), 0)

Of course, not every comparison criteria can be SARG’ed that way, but many can. How you apply such formulas depends on the type of comparison.