Extending Dapper’s ORM Multi-Mapping Capabilities

Since I last posted, my wife and I have bought a new home, moved, sold our previous home, and ran the Chicago marathon. All while getting up the learning curve and taking on more responsibility at our new jobs (both started in June). Needless to say, I’ve had no time for tech blogging. Until now. OK, let’s get to it: Dapper is a great micro-ORM library. It’s simple and highly performant. I love its Multi-Mapping feature, which simplifies mapping columns from a SQL result set into multiple object types. It has an annoyance though: The lambda method provided by the […]

Updated Comparison of C# and Go Performance

Previous Efforts A couple weeks ago I wrote a post that examined performance of the C# and Go programming languages when parsing large XML documents. Why compare C# and Go? Because the goals of the languages are similar: to provide programmers with a statically typed, compiled syntax paired with a runtime that enforces memory safety and automatic garbage collection (reclaiming memory from unreferenced objects). I compared the performance of my C# code with Go code written by Eli Bendersky in his Faster XML Stream Processing in Go blog post. I concluded my C# code ran slightly faster. Then I made […]

XML Parsing Performance : C# Versus Go

Interest Piqued Recently I read Eli Bendersky’s Faster XML Stream Processing in Go blog post. While the point of his post was to explain the difference between in-memory and stream parsing, then examine various stream parsing techniques in the Go programming language… I got hung up on his choice of language. Update 2019 Aug 17: I’ve run an apples to apples comparison test. See Updated Comparison of C# and Go Performance Go is a new programming language developed at Google. It’s statically typed, compiled, with a runtime that enforces memory safety and automatic garbage collection (reclaiming memory from unreferenced objects). […]

Encrypting a File

Previous Efforts Back in February, I decided it was time to demystify the black box of secure Internet communications. I have been a professional programmer too long to continue carrying a hazy understanding of how web browsers and servers communicate securely. I wanted to remove HTTPS / SSL / TLS from the realm of magic and place it in the realm of the known and understood– a computer algorithm implemented in C# code. So I researched the topic, learned the underlying mathematics, wrote code to prove the theory actually works in practice, then wrote three blog posts explaining what I […]

Programming Pearls : Sorting Phone Numbers

Revisiting a Classic Book I’m re-reading Programming Pearls by Jon Bentley. I read this book within a year or two of its release, early in my career. That was 16 or 17 years ago. I remember enjoying it greatly. It opened my eyes to the critical importance of selecting optimal data structures and algorithms when designing solutions to programming problems. The author advocates for deliberation prior to putting hands on the keyboard. Re-reading the book now as a more experienced (and I would hope wiser) programmer, I’m reminded of a quote from Linus Torvalds. What Jon Bentley states in elegant […]