A Distributed Tracing Adventure in Apache Beam
Distributed systems are hard, and things can often get much more difficult when problems arise. This is only exacerbated by the fact that many of these systems can be notoriously difficult to dig into when they are actually out in the wild and not just running "on your machine". They
Avoiding Kotlin Minefields in Apache Beam
Without a doubt, the Java SDK is the most popular and full featured of the languages supported by Apache Beam [https://beam.apache.org/] and if you bring the power of Java's modern, open-source cousin Kotlin [https://kotlinlang.org/] into the fold, you'll find yourself with a wonderful developer experience.
Introducing Apache Beam Katas for Kotlin
Everyone learns differently, especially when it comes to technology. Some folks enjoy reading a book, others like immediately diving in and getting their hands dirty. Being inspired by the folks in the latter half of that statement, I decided to follow the lead of a few other folks that had
No, You Aren't Alone.
This situation sucks. My heart goes out to all of those affected by this terrible pandemic across the globe. With our lives flipped upside-down for the foreseeable future, I thought I'd shed some insight into what's going on in my neck of the woods, how I'm managing, and hopefully provide
When Containers Become Trashcans
Containers are so awesome. Prior to containers, if you wanted to experiment with some new technology, you had to go through the ringer to configure and install all of the appropriate dependencies, set up the proper infrastructure, and clutter your machine with tons of trash that you might not ever
Putting the Fun in C# Local Functions
Many popular languages support the use of local functions [https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/local-functions] and in C# 7, support for them was announced with relatively little fanfare. As someone that would consider themselves a C# power-user, I seldom took advantage of the feature until I
How I Haven't Become an Amorphous Blob While Working Remotely
With it being February, I’m sure quite a few folks out there are still trying to keep their New Year's resolutions intact. Since I’d wager quite a few of those are in the area of fitness or personal wellness, this post falls in line with a resolution that
Glyphfriend 2019 Released!
With a new year just beginning, it's always nice to start things out on the right foot and open-source is no exception. Several years ago, I developed a popular extension for Visual Studio called Glyphfriend [https://github.com/rionmonster/Glyphfriend]. It's a handy tool for developers and designers alike that
When Random Isn't the Right Random
Nearly any engineer worth his or her salt will likely agree that consistency is important. If they don’t, they probably haven’t ever worked on a large legacy application or with a team of any decent size. Everyone being roughly (sans tabs vs. spaces religious views) on the same
Why is My SQL Server Query Slow?
As applications and their associated databases grow, things change. Rows get modified, schema get updated, and often, things can slow down. These performance hits may come up suddenly, or maybe intermittent, but it's important to know how to distinguish what is going on so that you can go about fixing
Just Jump into the Stream
I've spent the better part of my ten-year career as a developer in a relatively safe bubble, technology-wise. Falling in love with a programming language or technology is a bit like the software version of having your first real girlfriend/boyfriend. They might change the ways that you think, the
Slightly Rough Exchanges: Troubleshooting Transactional Issues with TransactionScope
In my previous post [http://rion.io/2019/04/20/smooth-transactions-with-transactionscope/], I discussed the use of TransactionScope within C# and how it might simplify how transactions are managed within your applications. It covered what transactions are, some of the ways that they are traditionally managed, and how the use of
Smooth Transactions with TransactionScope
In the real world, we deal with transactions all the time, even though we rarely think of them as such. Things like driving to work or making dinner for the family require a series of things to all go as expected, otherwise bad things can happen. The sooner we recognize
Visual Studio, Why Can't You Just Let Me Have This One (Solution Folder)?
If you've ever worked in a large code-base of around a hundred or so projects, then you know that organizing your code can almost be as important as writing the code itself. Organization is always subjective, sometimes multiple projects are enough, sometimes it can help to organize code into things
Making Your .NET Application Less Quirky
I'd like to believe that as developers, we are always looking for those silver-bullet type solutions. The ones where we just add a single line of code, adjust some global setting, and everything improves. Things run faster, more efficiently, and bugs just start resolving themselves - it's great. This post
I Don't Know Crap About Security (Or At Least I Didn't)
Recently, I was involved in a project that required doing some serious locking down of an application prior to an extensive audit (with potentially millions of dollars on the line). All the buzzwords were there: "pen testing", "red teams", and "everything depends on this". This wasn't going to be a
I Don't Know
Software development is a huge field, I mean huge. You've got front-end folks, back-end folks, database specialists, architects, the engineers, the folks with the people skills to talk to the engineers, and countless others; it's overwhelming. With technology evolving as fast as it does, it's challenging enough to keep track
Hello XML, My Old Friend; I've Come To Encode You Again.
Depending on how long you've been a developer, XML might be a term that sounds totally foreign. For others, it might bring back long repressed memories of some dark days. In many of my encounters with developers from broad ranges of experiences, I've seen the spectrum from the die-hard JSON