Still being relatively new to New Hampshire, I continue to find out about many of the goings-on, especially as pertains to my professional world. Included in that is the Granite State Code Camp, held entirely online this year for the first time. It was not a given that it would happen, but they went ahead, and while there were technical difficulties (one speaker even lost connectivity entirely due to an issue with their ISP, something entirely out of the control of the event directors), that is still to be expected to some degree, and they didn’t take away from what was overall a positive experience.
The first session I checked out was .NET 5 – What Is It? Joe Guadagno went in some depth on where .NET has been and where it is going, part of which had me thinking back to when it was brand new and seemed like a novelty along with C#. It’s amazing to think that it has now been around for almost two decades (first unveiled in February 2002), because at times it doesn’t feel like it’s been around as long.
Of course, Microsoft is not at all the same company now as it was when .NET launched, so not surprisingly there is much that would have seemed surprising back then. .NET has evolved quite a bit and is targeting many platforms besides Windows on the desktop, and it has broken out into several components that are bigger than what they once were. The presentation talked about how .NET 6 later on will introduce Android and iOS components, as well as some features of C# 9 that look interesting, most of all record types that simplify many things and attempt to eliminate a lot of boilerplate that tends to be needed, along with pattern matching improvements.
The second session was Parsing Out a Good Parser, on a subject that can bedevil any developer who doesn’t routinely deal with parsing. It’s not an easy thing to do, unless the grammar (set of rules) is very simple, as it involves a lot of work with strings and often regular expressions, the latter a subject I have never been able to even remotely get a handle on. Even handling whitespace is often not trivial, unless the grammar is very simple. Nathan Morse took attendees through some of the considerations for a few options, including a finite state machine, the arcsecond library and nearley parser in JavaScript, and gave an overview of some techniques on this.
Following that was Say YES! to NoSQL: A Guide on When to Ditch Relational Databases, which was probably the best of the morning presentations. In this very well-done presentation, Adrienne Tacke first introduced attendees to the four data models and the CAP Theorem (consistency, availability and partition tolerance), then went through the considerations for whether or not to change from relational databases. There are three things to consider:
- Is NoSQL the way to go?
- ACID (atomic, consistent, isolated, durable) or BASE (basic availability, soft-state, eventual consistency)?
- CAP filter
Tacke went through each, noting that for the first question, it comes down to data volume, data velocity, data variety and data valence. Data variety often takes three forms, a bit different than one might expect: dense/sparse, connected/disconnected, and structured/semi-structured/irregular. For the second question, it comes down to the consistency model, scale, speed and safety of writes that is desired. For the last question, the consideration is which two of the three pieces of the CAP Theorem are to be prioritized. Examples that prioritize partition tolerance and either of consistency or availability were mentioned.
After an hour break for lunch, sessions resumed, with the first one I checked out being decidedly non-technical in nature. Jes Osrow led You’re the Real Deal: How to Combat Impostor Syndrome, a subject that I was unfamiliar with until just a few years ago but very much identify with. This longer session was not only highly interactive in setup, but the engagement was terrific (my microphone issues aside) and some real connections were made along the way as well.
The session took attendees through a few exercises to think about how and when we have experienced impostor syndrome, as well as how to counter it. I’ve heard podcast hosts talk about it – it’s actually from podcasts that I first learned of it, likely because the ones I listen to often have and/or are hosted by entrepreneurs, who seem especially prone to dealing with it – but this was the first time I took a look into it for myself in a deep way.
From there, it was on to C# and .NET For Object-Oriented Programmers, presented by Jort Rodenburg. This was more of a tutorial than other sessions I attended, and a pretty good one even though I had a feel for C# already having taken a course on it, though that was a long time ago. Rodenburg got into structs, which he considers very under-used in C# (not a surprise considering C# is entirely object-oriented, as opposed to C++, which has long been used for procedural programming even with classes being a key part of using it), as well as the process of compilation into Intermediate Language (IL) and then into native code.
The last session of the day was Bill Anderson’s presentation What Makes a Great Consulting Developer? There, Anderson spent a good deal of time talking about non-technical items, which isn’t surprising because those are usually the things that trip up technical consultants. He spent some time talking about the importance of fully understanding what a client wants, ways to proceed with getting feedback along the way, how to craft a letter of agreement, as well as considerations with having fees based on hours or projects.
From there, a wrap-up session closed out the day. Although there were some technical challenges right up to the end, in all it was a satisfying event, and enough to look forward to hopefully doing this in person in 2021, especially now that we have reason to believe a vaccine really isn’t far away.