Posts

Teaching others to learn yourself

I’ve never liked the expression... "those that can't do, teach". This implies that those that are not capable of completing an action on their own or perhaps are aware of some inherent limitation they have prefer not to risk  making "a go of it" on their own and instead instruct others that are more adventurous. It has been my personal experience that to get really good at anything it's important to exercise the mental muscle to try and impart the knowledge of said skill to a novice. To impart what you have learned to someone unfamiliar with the task but is perhaps eager to learn of even just curious about it. To that end I'm gonna take a stab at producing YouTube videos . While I have no idea what may come of this endeavor, just making the attempt has been both exciting and a self-teaching experience. My initial approach is to keep the videos short, less than 10 minutes. This has the advantage of feeling approachable and seems like I might actually stic

Reason for difference in Azure VM Scale Set applying (a.k.a. why the upgrade button isn't needed)

Just wanted to share some info on something that came up yesterday.   When updating a VM Scale Set (vmss) definition I found a situation where I needed to press the "Upgrade" button to apply the model in one situation and DID NOT need to press the button in another situation.   While looking into scripting this operation I stumbled across this medium article Updating Azure VM Scale Set without downtime with Rolling Updates     In the article it outlines how to get info on the "Upgrade Policy", this is something that isn't readily obvious IN the portal, so you really need to use PowerShell commands or the Azure CLI commands to see the info.   I'm using PowerShell AZ commands (NOT CLI).   Using the command Get-AzVmss I found that the Upgrade Policy for the scale set which I HAD to press the upgrade was set to manual, which makes sense. Manual Upgrade would mean a user would need to take an action.   Using the same command for the o

What were they thinking

Image
As of late I have been spending a lot of time working on a “legacy” system. The term legacy means different things for different groups, in the circle I’m working with these days it means a system that is no longer being actively developed. As has been stated by mean, software isn’t “dead” it’s “done”. The catalyst for the work I’m doing is security requirements that need to be applied. While applying the updated security polices I’ve also been tasked with migrating the system from our data center to our cloud data center. As I move through the system I’m confronted with implementations that looking at now seem crazy; however, it’s these situations where it is important to apply two mindsets. One is giving others the benefit of the doubt. In a case like this, those that were working on this system used, for the time, the best options the technology stack could offer. For example, the extensive use of WCF seems silly now; however, at the time it was a recommended approach to hooki

Being a good customer means being able to complain in a way that is helpful

Image
I'm often told that I deal with difficult situations in a way that results in getting what I want. To me this is quick an interesting observation because I find that most often what people mean when they say that is, when I receive a poor customer experience I'm able to turn things around so that I obtain a desirable outcome, thus turning a bad experience into a good one. This manifest itself most often when I'm out and about with my wife. We will be at a retail store, or out to dinner and something will go wrong. Often my wife will turn to me and suggest that I handle it since "I know how to deal with these things". So what is the secret to my taking a bad situation and turning it around... being a good customer. As it turns out business want to make money. Shocking, I know. The way they make money is by advertising to attract customers to frequent their brick and mortar locations to use their services or purchase their goods. Knowing this puts the customer

Benefits of Working with .NET ConcurrentQueue<T>

Image
* Working with a queue in .NET is an excellent experience and provides a great way to decouple execution paths. Once you start working with in memory queues your just a hope, skip, and a jump away from using "infrastructure" queues such as Service Bus, RabbitMQ, or even MSMQ on Windows Desktop. While it is quite possible to work with the standard .NET Queue<T> object if you find that you are in need of using a lock to ensure consistent results with putting things in the queue (i.e. Enqueue) and taking things off (i.e Dequeue or Peek) or even just to obtain a consistent reliable count, well then you should probably take a look at ConcurrentQueue<T> . There is a whole section of the .NET Framework with deals with concurrency concerns by creating specific objects for Dictionaries, Stacks, Queues and more that are considered thread safe. When I started working with ConcurrentQueues I found it helpful to put my own wrapper around the concurrent queue object and

Things I need to remember... IIS Express ports for HTTPS and Configure WCF Rest endpoints for HTTPS

Image
As I have been writing consistently for a bit now I've already found myself referring back to things I've posted, which has prompted me to try and post items which have taken a bit of time to work out. It seems that the act of "writing it down" causes me to remember information better. Perhaps it's all the thought into attempting to write something useful. This post includes two details which took me more than a few hours to sort out so I hope to help others who have a similar need. Funny enough it could be me in the future after I've forgotten this information. First up is a little detail that I know I've forgotten and looked up more than once, and depending on the google/bing results I find sooner or later. Setting up IIS Express to host a site via HTTPS When configuring your site to run in IIS Express using Visual Studio it's fairly trivial to set the attribute to use SSL (i.e. HTTP over SSL which is HTTPS) as it's just an "

.NET MSTest and DeploymentItem Attribute

Image
I was recently reminded that order of operation can byte you when trying to troubleshoot intermittent unit test failures. First, I’ll be the first to admit that if you want to avoid problems with unit testing it’s best to avoid any dependency outside of your actual code base, things like databases, API and even the file system are best avoided in execution of your unit tests. That last one, the file system, in some applications is really hard to avoid. If you happen to be using MSTest, a helpful attribute for your test is DeploymentItem. This particular attribute allows you to define a file within your unit test project assuming it’s marked as “Copy Always”. With this attribute in place you can then combine this with TestContext.DeploymentDirectory to find this sample file and then do what you need to do. In my particular case I was having an issue with the unit tests failing on the build machine but not locally. After stumbling around for a bit I finally feel back to t