POSTS POSTS

> 2024 POSTS

NOV
20
2024
NOV
14
2024
RavenDB on Kubernetes
Simon Timms
NOV
10
2024
NOV
5
2024
OCT
12
2024
SEP
15
2024
SEP
14
2024
NServiceBus Kata 6 - When things go wrong
Simon Timms
So far in this series things have been going pretty well. We've looked at sending messages, publishing messages, switching transports, long running processes, and timeouts. But what happens when things go wrong? In this kata we're going to look at how to handle errors in NServiceBus.
SEP
9
2024
NServiceBus Kata 5 - Timeouts
Simon Timms
In the previous kata we looked at sagas which are a way to coordinate long running processes. In this kata we're going to look at another tool in the NServiceBus toolbox: timeouts. Timeouts are a way to schedule a message to be sent at some point in the future. This is a powerful tool for building out complex processes.
SEP
2
2024
NServiceBus Kata 4 - Long Running Processes
Simon Timms
We now have a pretty solid way to send messages, publish messages and we've got those messages flowing over a reliable transport mechanism. Sending and publishing individual messages only gets us so far. We often need a way to coordinate complex processes which involve multiple services. For this NServiceBus has the concept of sagas which some might call process managers.
SEP
1
2024
NServiceBus Kata 3 - Switching transports
Simon Timms
In the previous article we looked at publishing messages and the one before that sending messages. But in both cases we cheated a little bit: we used the LearningTransport. This is effectively just a directory on disk. It cannot be used as real world transport. Let's change out this transport for something more production ready.
AUG
31
2024
NServiceBus Kata 2
Simon Timms
In the previous kata we sent a message from one application to another. This is a common pattern in messaging systems. In this kata we're going to look at a different pattern: publishing a message.
AUG
30
2024
NServiceBus Kata 1
Simon Timms
Exciting times for me, I get to help out on an NServiceBus project! It's been way too long since I did anything with NServiceBus but I'm back, baby! Most of the team has never used NServiceBus before so I thought it would be a good idea to do a little kata to get them up to speed. I'll probably do 2 or 3 of these and if they help my team they might as well help you, too.
JUL
31
2024
Plinko Diagram
Simon Timms
JUN
23
2024
An exploration of Azure Functions for a side project
Kyle Baley
This is a short PSA for people (or, more likely, just future me) to describe two issues I ran into while migrating a bash file to Azure Functions. Namely: How do I see the exceptions that happened? How do I configure an Azure Function app to save a PDF to a Google Drive folder This is from the perspective of someone who doesn't need their app to be highly available/scalable/reliable/tenable/affable/inscrutable/explicable, which the documentation for all cloud products seems to assume (and, it must be said, rightfully so).
JUN
17
2024
Truly syncing multiple calendars
Kyle Baley
For reasons that I really need to investigate, I'm apparently a busy fellow. Such that I now maintain a rather ungainly number of calendars. Three to be exact. That's one personal calendar and one for each of two clients.
MAY
24
2024

> 2023 POSTS

NOV
23
2023
OCT
14
2023
MAR
30
2023
MAR
15
2023
MAR
4
2023
MAR
4
2023
FEB
15
2023
Excel and Ruby
Simon Timms
JAN
27
2023
Defining the Problem before the Solution
David Wesst
Before you create a solution, you need to understand the problem. It sounds obvious enough, yet I see developers (including myself) getting into the code and design phase before they really understand the problem they are trying to fix. These are the steps I take a properly understand a problem I am trying to solve, prior to coding or solution-ing anything.
JAN
12
2023
Docker Build Hangs When Adding Key with apt-key in WSL2
David Wesst
The solution to the problem where an apt-key command seems to run forever in your docker build.
JAN
5
2023
Highlight Reel for 2022
David Wesst
When a new year arrives, it is a great opportunity to take a moment to reflect on where you started at the beginning of the year, and where you ended. When I look back on 2022, I noticed events reflected in my GitHub contribution graph that highlight some common cycles in my own behaviour. I want to take a moment to document this, and hopefully you can use this an example to examine your own progress and behaviour patterns that might be aiding (or impeding) your own personal and professional growth.

> 2022 POSTS

DEC
24
2022
Happy Holidays from the Western Devs
From our computers to yours, we wanted to take a moment to share with your part of our annual Western Devs Holiday Extranvaganza virtual celebration!
DEC
20
2022
Speaking at Tech Events Helps You Grow
David Wesst
A large part of my career growth is tied directly to speaking at tech events like conferences and user groups. I have had many people ask me about my experience and wanted to share it for others who might be wondering what benefits actually are.
DEC
14
2022
Docker Desktop for Linux is not the same as Docker Engine
David Wesst
With Docker for Desktop available for Linux (which I like), I managed to get myself confused regarding its role on my Linux-based development machine. This post clarifies a few things I discovered while triaging an issue I had trying to test my GitHub Workflows locally.
DEC
7
2022
Prairie Dev Con 2022 Takeaways
David Wesst
The talented speakers that come together for Prairie Dev Con always bring fresh ideas to my mind and give me pause to think about my own efforts and how I can learn from their experience. Although not a complete list, these ideas the ones that stood out the most from Prairie Dev Con 2022.
DEC
1
2022
Open Graph Tools and Resources for Web Nerds (Like Me)
David Wesst
A compilation of tools and resources I used to implemented the Open Graph Protocol (OGP) for my website to make posts and pages more engaging on LinkedIn and other social networks.
NOV
19
2022
Does GDPR Apply to Personal Websites?
David Wesst
While rebuilding my personal website in 2022, I wanted to know how or if GDPR applied to my little side project. My internet sleuthing did not bring up any clear and cut answers, but I put together some thoughts that might help others answer it for themselves.
NOV
17
2022
NOV
11
2022
NOV
10
2022
How much is enough documentation?
David Wesst
Documentation is important, but it takes a lot of time and if you are a solo developer, what documentation to you really need? Still, good docs can provide the context I forget after putting a project on the shelf, or explains how to fix something in older code I use, but haven't touched in a long time. So how much is 'enough' documentation and what types of documentation do I need to invest in give my future self the the best value for the effort I put in?
NOV
2
2022
How to fork (a repo) like a boss!
David Wesst
Everyone thinks about forking. It is a natural thing, yet how do get the job done and fork? I used to ask myself the same thing, until I learned these pro-tips and forked like a boss.
NOV
1
2022
AUG
12
2022
MAY
30
2022
APR
7
2022
APR
4
2022
Redis Cheat Sheet
Simon Timms
MAR
18
2022
FEB
18
2022
JAN
27
2022
Purge CDN in DevOps
Simon Timms

> 2021 POSTS

NOV
24
2021
NOV
19
2021
Choosing Power BI
Simon Timms
NOV
14
2021
App Services on VNET
Simon Timms
OCT
25
2021
OCT
25
2021
OCT
22
2021
OCT
22
2021
OCT
22
2021
Pandas Cheat Sheet
Simon Timms
OCT
5
2021
Closed form Fibonacci
Simon Timms
SEP
17
2021
Filtering Datatables
Simon Timms
SEP
8
2021
AUG
31
2021
SQL Mail
Simon Timms
AUG
31
2021
JUL
29
2021
Storybook IFrame 404
Simon Timms
JUL
24
2021
JUL
8
2021
JUN
28
2021
I Can Teach Your Dog Quantum Physics
David Wesst
It's true! I read a book about it and everything. Let me breakdown the highlights of this book that does a pretty good job of explaining the physics behind quantum computing.
JUN
24
2021
Azure Automation
Simon Timms
JUN
17
2021
What Value Does Making Content Bring to Me? (not a typo)
David Wesst
I realize it's a selfish question, but if the post isn't valuable to me then why would it be valuable to you?
JUN
17
2021
JUN
16
2021
JUN
7
2021
JUN
7
2021
JUN
3
2021
My Secret Addiction to Likes
David Wesst
I decided to take a month off of contributing to social media. More specifically Twitter and YouTube, but Facebook and Instagram as well. That single month has turned into just over three months now, and I learned a few things about myself and how I think my return to some social media will be a good thing.
JUN
3
2021
Sequences
Simon Timms
MAY
24
2021
Lucky Number v7
David Wesst
I fixed up my blog-website-thingy again. I'm calling this v7, although I'm pretty sure there are a few incarnations of the site that were lost early on in my years, but v7 seems about right for the content I'm sharing here. In any case-- I thought I'd share the "why" around the new website revamp and how I think a project like this is just what I need.
MAY
20
2021
MAY
11
2021
JQ
Simon Timms
MAY
10
2021
MAY
10
2021
MAY
8
2021
MAY
8
2021
MAY
8
2021
Logging in Functions
Simon Timms
MAY
8
2021
Query BigTable Events
Simon Timms
MAY
8
2021
MAY
8
2021
Transforms
Simon Timms

> 2020 POSTS

DEC
4
2020
Advent of Code 2020 - Day 3
Dylan Smith
Day 3 Solution. Some infinite char grids, int overflows, and a new Multiply() method;
DEC
2
2020
Advent of Code 2020 - Day 2
Dylan Smith
Day 2 solution with a new ParseLines() extension method, some Tuples, and the XOR operator
DEC
1
2020
Advent of Code 2020 - Day 1
Dylan Smith
There was a slight hiccup with the Advent Of Code site going down right at launch today. Within about 5-6 minutes they had solved the problem, and the site author gave a couple comments about it on reddit:
NOV
24
2020
Advent of Code 2020 - C# Framework
Dylan Smith
Advent Of Code 2020 is just around the corner. This year my hope is to create a short video after solving each day to show off my solution. Here's an intro video where I walk-through the framework/GUI I've created where I write and run my code.
NOV
18
2020
Allocating a Serverless Database in SQL Azure
Simon Timms
I'm pretty big on the SQL Azure Serverless SKU. It allows you to scale databases up and down automatically within a band of between 0.75 and 40 vCores on Gen5 hardware. It also supports auto-pausing which can shut down the entire database during periods of inactivity. I'm provisioning a bunch of databases for a client and we're not sure what performance tier is going to be needed. Eventually we may move to an elastic pool but initially we wanted to allocate the databases in a serverless configuration so we can ascertain a performance envelope. We wanted to allocate the resources in a terraform template but had a little trouble figuring it out.
NOV
10
2020
From Travis CI to GitHub Actions (and GitHub Pages)
David Wesst
We recently migrated the continuous integration and deployment workflow for the Western Devs website from Travis CI to GitHub Actions. These are the steps I followed to get it done.
NOV
9
2020
Running Stored Procedures Across Databases in Azure
Simon Timms
In a previous article I talked about how to run queries across database instances on Azure using ElasticQuery. One of the limitations I talked about was the in ability to update data in the source database. Well that isn't entirely accurate. You can do it if you make use of stored procedures.
NOV
9
2020
New Artwork and a Complete Rewrite...ish | Out the Door Devlog
David Wesst
My effort continues on Out the Door with some new artwork, a rewrite (of sorts) to fix the build process, which has led to something of a self-driven code review.
NOV
5
2020
NOV
5
2020
Querying Across Databases In SQL Azure
Simon Timms
I seem to be picking up a few projects lately which require migrating data up to Azure SQL from an on premise database. One of the things that people tend to do when they have on premise databases is query across databases or link servers together. It is a really tempting prospect to be able to query the orders database from the customers database. There are, of course, numerous problems with taking this approach not the least of which is making it very difficult to change database schema. We have all heard that it is madness to integrate applications at the database level and that's one of the reasons.
OCT
23
2020
A Solo Gamejam Experience | A Ludum Dare 47 Story
David Wesst
Wonder what it takes to be a solo amateur game developer in a global gamejam? DW summarizes his Ludum Dare 47 experience in this video.
SEP
28
2020
The trimStart rabbit hole
Simon Timms
If you're missing expected functions in your TypeScript app the problem might be an incorrect target
SEP
18
2020
Game Portfolio Self Evaluation (in prep for Ludum Dare 47)
David Wesst
Ludum Dare 47, a weekend long global gamejam, is coming up in a few weeks. In order to prep for the event, I decided to take the time for review and reflect on my game portfolio to see what I learning objective and goals I can set for myself.
JUL
2
2020
Release Notes for Little Shop of Wall Street 0.1.0-beta
David Wesst
Little Shop of Wall Street has a 0.1-beta release!
MAY
23
2020
Scaling Azure Functions from Consumption Plan to Premium Plan (and back again)
Dave Paquette
In this post, we use the az cli to move an Azure Function app from a Consumption Plan to a Premium Plan (and back again).
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
22
2020
MAY
18
2020
Go just big enough for your needs or go home
Kyle Baley
I love crossword puzzles. This post is only peripherally about crosswords specifically but I say it up front to filter my readership to those who might have a personal kinship with me and thus, are less likely to write angry comments.
MAY
10
2020
Deploying a Static Site to Azure Using the az CLI
Dave Paquette
The az command line interface (cli) is a powerful tool for creating, modifying and deploying to Azure resources. Since it's a cli AND cross platform, it's also a great tool for automating your deployments. In this post, we'll use the az cli to deploy a static site to Azure.
APR
1
2020
Flutter unit testing with native channels
Simon Timms
Today I was digging through some unit tests in our flutter project that seemed to be failing on my machine but not necessarily in other places like our build pipeline. The problem was that we had some calls to async methods which were not being awaited properly. I fixed those up and they uncovered a bunch of more serious problems in our tests. We were calling out to validate a phone number with libphonenumber and now we were actually awaiting the call properly we saw this error
APR
1
2020
Solve WebForms Errors with PreCompilation
Simon Timms
I have a webforms application that I help maintain. Today I made some change and managed to break one of the pages on the site. The error was unbelievably unhelpful. In older versions of ASP.NET it is nearly impossible to diagnose these sorts of errors. Was it something with the web.config? Did I mess up the dependency injection? I messed about a bit and found that if I deleted everything out of the .aspx file things worked. So it was the view. But what?
MAR
8
2020
Enhancing Application Insights Request Telemetry
Dave Paquette
A continuation in my series of love letters about Application Insights. Today I explore a method of enhancing the request telemetry that is automatically collected by the Application Insights SDK.
FEB
19
2020
How Github Makes Game Making Easier for Noncoders
David Wesst
DW goes through five things he's been using in Github while designing his latest prototype that require zero coding skills.
FEB
6
2020
Setting Cloud Role Name in Application Insights
Dave Paquette
A continuation in my series of love letters about Application Insights. Today I dig into the importance of setting cloud role name.
FEB
4
2020
Jan 2020 Devlog
David Wesst
Did you know that I really try and make video games and not just talk about them? Me neither, but this video will fix all that!
JAN
21
2020
Where to Find Your Gamedev Community
David Wesst
Four places to find your new game development and/or design and/or technology community and figure out if it's even good!
JAN
20
2020
Getting the Most Out of Application Insights for .NET (Core) Apps
Dave Paquette
If you've worked with me in the last couple years, you know that I've fallen in love with Application Insights. This is the first in a series of posts designed to help you get the most out of Application Insights for .NET Core applications.
JAN
13
2020
No Cost Game Design Toolbox
David Wesst
Want to design games but have no money? Never fear, for my game design toolbox (and process) can help get you started!
JAN
10
2020
Allow Azure DevOps Hosted Agents Through Firewall
Simon Timms
I have an on-premise (well in a third party data center but close enough) database which I'd like to update via a build in a hosted agent on Azure. We've done this before in Jenkins by just allowing a specific IP address through the firewall. However we're in the process of moving to DevOps for this build. Unfortunately, the hosted build agents don't have entirely predictable IP addresses. Every week Microsoft publishes a list of all the IP addresses in Azure. It is a huge json document and for our region (Central Canada) there are about 40 IP addresses ranges the build agent could be in. We want an automated way to update our firewall rules based on this list.

> 2019 POSTS

DEC
30
2019
UNION vs. UNION ALL in SQL Server
Simon Timms
I really dislike database queries which are slow for no apparent reason. I ran into one of those today. It queries over a few thousands of well indexed rows and returned a handful, perhaps 3, records. Time to do this? 33 seconds. Well that's no good for anybody. Digging into the query I found that it actually used a UNION to join 3 sets of similar data together. I go by the rule of thumb that SQL operations which treat data as sets and do things with that in mind are efficient. I'm not sure where I read that but it has stuck with me over the years. What it suggests is that you should avoid doing things like looping over rows or calling functions on masses of data. As it turns out there are actually two different UNION operators in SQL Server: UNION and UNION ALL. They differ in how they handle duplicate entries. UNION will check each entry to ensure that it exists in the output only one time.
NOV
26
2019
GitHub Game Off 2019 Game Jam featuring DW
David Wesst
For the past month I have been participating in the GameOff 2019 Gamejam hosted by GitHub over on Itch.io and I've been devlogging about it over on my YouTube channel.
NOV
15
2019
Azure AD B2C Web Testing
Tyler Doerksen
Login Azure AD B2C User with Postman Recently a customer asked how to load test a web application that uses Azure AD B2C (OpenIdConnect) for authentication. Even though there are lots of articles on calling Web APIs with OAuth tokens, I could not find much info on automating the OpenIdConnect authentication flow. I thought that if I could execute the correct requests in Postman I should be able to create an automated web/load test.
OCT
12
2019
Bulk Load and Merge Pattern
Simon Timms
The more years you spend programming the more you run into situations you've run into before. Situations you now know, instinctively, how to address. I suppose this is "experience" and is what I'm paid the medium dollars for. One such problem I've solved at least a dozen times over the years is updating a bunch of data in a database from an external source. This, as it turns out, can be a great source of poor performance if you don't know how to address it. Let's dig into my approach.
AUG
16
2019
Losing Data with Azure Blob Storage
Justin Self
We had a bug that caused us to write 0 byte documents to Azure blob storage. It was there for a while. We tried hard to find it. Eventually, we turned on blob snapshots which, instead of replacing a blob with a new blob on every write, makes a copy that you can promote at a later time. This week, we had a production issue where a blob had 0 bytes. We hadn't seen it in so long, we secretly hoped the problem was magically fixed by someone else.
AUG
7
2019
Deploying Azure resources to multiple resource groups
Tyler Doerksen
Advanced ARM Template Development Azure Resource Manager (ARM) templates provide an excellent, built-in resource configuration and deployment solution. You can find a wealth of templates for deploying anything from a Wordpress site on Azure App Service, to a full HDInsight cluster on a private VNET.
JUL
5
2019
Debug PHP Inside A Container with VSCode
Simon Timms
Sometimes good things happen to bad people and sometimes bad things happen to good people. I'll let you decide which one me developing a PHP application is. Maybe it is a bit of a mixture. This particular PHP app was a bit long in the tooth (what PHP app isn't) and ran on full VMs. My first operation was was to get it running inside a docker container because I couldn't be sure that my Windows development environment would be representative of production, then I wanted to be able to debug it. This is the story of how to do that.
JUN
14
2019
Avoid Death With C# Compiler Directives
Justin Self
Compiler directives in C#: they should be avoided. If they aren't, and you're using them to compile different code based on build modes (like DEBUG or RELEASE), then listen closely and do what I do... it'll change your life.
MAR
28
2019
Using NodaTime with Dapper
Dave Paquette
After my recent misadventures attempting to use Noda Time with Entity Framework Core, I decided to see what it would take to use Dapper in a the same scenario.
MAR
26
2019
Using Noda Time with Entity Framework Core
Dave Paquette
Noda Time is a fantastic date/time library for .NET. I started using it recently and it really simplified the logic around handling dates. Unfortunately, I ran in to some problems with using Noda Time together with Entity Framework Core.
MAR
20
2019
Optimistic Concurrency Tracking with Dapper and SQL Server
Dave Paquette
This is a part of a series of blog posts on data access with Dapper. In today's post, we explore optimistic checks to ensure 2 users can't accidentally overwrite each other's updates to a particular row of data.
FEB
18
2019
Durable Functions Analyzer
Simon Timms
When it was announced the Roslyn would become the default compiler for C# in Visual Studio I was super excited. I felt like it would generate all sorts of domain specific languages, custom flavors of C#, tons of custom error providers. So here we are 5 years later and almost none of it has come to pass. Why not?
FEB
15
2019
Durable Azure Functions vs. NServiceBus Sagas
Simon Timms
I've been on a bit of an Azure Functions kick over the last little while. I've blogged a bunch on Durable Functions and deployed a bunch more. When you're as old as me then you tend to draw comparisons between new technologies and existing ones. For instance I'm constantly telling people about how web pages are a lot like the cave paintings I use to do in my youth. The Twitter Exchange The technology that draws the closest comparison I've seen to Durable Functions are NServiceBus Sagas. A few weeks ago I tweeted out wondering if any body had done a comparison. The good folks at Particular stepped up and answered.
FEB
14
2019
Accessing B2C Claims in an Azure Function
Simon Timms
In a previous article I talked about how to authenticate your function application against Azure Active Directory Business to Consumer (which we're going to call B2C for the sake of my fingers). Chances are in your function you're going to want to get some of the information which is available as a claim from the bearer token. Here is how to do it.
FEB
6
2019
Managing Database Transactions in Dapper
Dave Paquette
This is a part of a series of blog posts on data access with Dapper. In today's post, we explore a more complex write operation that requires us to manage a database transaction.
FEB
4
2019
Basic Insert Update and Delete with Dapper
Dave Paquette
This is a part of a series of blog posts on data access with Dapper. In today's post, we explore how easy it is to perform basic Insert, Update and Delete operations.
JAN
31
2019
Running a single instance of a durable function
Simon Timms
I have a durable functions project which orchestrates several thousand function calls the purpose of which is to scrape and load a bunch of data. It is scheduled to run once a day but one of my concerns was that I didn't want to accidentally run to functions at the same time. They would duplicate a bunch of the data loading and, at least until the function ran again, chaos would reign. I'm not a huge fan of chaos reigning so I set out to find a way around this.
JAN
30
2019
Azure Functions and Azure B2C Authentication
Simon Timms
I had a pretty good struggle setting up Azure Functions and Azure B2C to work together. There are a few guides out there but I wanted to put my own together because I had a terrible time finding these posts initially. The scenario here is that we want a single page application written in React to talk to an API hosted entirely in Azure Functions such that the functions are authenticated.
JAN
29
2019
Paging Large Result Sets with Dapper and SQL Server
Dave Paquette
This is a part of a series of blog posts on data access with Dapper. In today's post, we look at a way to page through large results sets.
JAN
21
2019
Using Vue as a drop-in replacement for Knockout in an ASP.NET MVC project
Dave Paquette
When maintaining existing ASP.NET applications, we often need to add some client side behaviour. I am a little surprised to see people reaching for Knockout in these scenarios but I think vuejs is a great alternative that is very much worth exploring.

> 2018 POSTS

DEC
27
2018
Podcast: JavaScript and NPM
A discussion on the implications of blindly using NPM
DEC
13
2018
Validating Client Is Sending Cert For Auth In Azure Functions
Justin Self
Do you need to validate a client certificate is being passed to a server correctly but don't want to muck with local TLS and webserver configs? I got you.
DEC
6
2018
Creating Storage Queues in Azure DevOps
Simon Timms
Storage Queues are one of the original pieces of Azure dating back about a decade now. They are great for deferring work to later or spreading it out over a bunch of consumers. If you're following best practices for DevOps you'll know that the creation of your queues should be done in code. In some cases you can create the queues on application startup but in serverless scenarios there often is no startup code so the responsibility of creating queues falls to your deployment process. Let's look at how to do that on Azure DevOps
NOV
14
2018
Installing an Azure Web App Site Extension with PowerShell
Dave Paquette
I recently ran into a scenario where I needed to script the installation of a site extension into an existing Azure Web App. The solution was not easy to find but I eventually got to a solution.
NOV
5
2018
Azure Data Factory - a rapid introduction
Simon Timms
Azure is huge. There are probably a dozen ways to host a website, a similar number of different data storage technologies, tools for identity, scaling, DDoS protection - you name it Azure has it. With that many services it isn't unusual for me to find some service I didn't even know existed. Today that service is Data Factory. Data factory is a batch based Extract, Transform and Load(ETL) service which means that it moves data between locations. I mention that it is batch to distinguish it from services which are online and process events as they come in. Data Factory might be used to move data between a production database and the test system or between two data sources.
OCT
21
2018
Checking in packages
Simon Timms
If there is one thing that we developers are good at it is holy wars. Vi vs. Emacs, tabs vs. spaces, Python vs. R, the list goes on. I'm usually smart enough to not get involved in such low brow exchanges... haha, who am I kidding? (vi, spaces and R, BTW) Recently I've been tilting at the windmill that is checking in package files. I don't mean the files that tell what version of files to check in but the actual library files.
OCT
20
2018
DevOps and Microservices - Symbiotes
Simon Timms
Two of the major ideas de jour in development circles these past few years have been DevOps and Microservices. That they rose to the forefront at the same time was not a coincidence. They are inexorably linked ideas.
OCT
12
2018
Terraform for a statically hosted AWS site
Simon Timms
Just the other day somebody was mentioning to me that they were having trouble setting up a statically hosted site on AWS. That was the kick in the nose I needed to get this article written as it's been on my back-burner for a while. Terraform makes the whole process easy.
SEP
27
2018
Streaming Code and Play on Mixer every Thursday and Sunday
David Wesst
This month I started livestreaming game code and gameplay every Thursday and Sunday night at 9:30pm CT
JUL
2
2018
Weird JavaScript - Destructuring
Simon Timms
I've been at this programming game for a long time and I've written two books on JavaScript. Still today I ran into some code that had me scratching my head. It looked like 1function AppliedRoute ({ component: C, props: cProps, ...rest }) { I was converting some JavaScript to TypeScript and this line threw an linting error because of implicit any. That means that the type being passed in has no associated type information and has been assumed to be of type any. This is something we'd like to avoid. Problem was I had no idea what this thing was. It looked like an object but it was being built in the parameters?
JUL
1
2018
Application Insights Cloud Role Name
Simon Timms
Logging is super important in any microservices environment or really any production environment. Being able to trace where your log messages are coming from is very helpful. Fortunately Application Insights have a field defined for just that.
JUL
1
2018
Application Insights Alerts
Simon Timms
Application Insights is another entry in the vast array of log aggregators that have been springing up in the last few years. I think log aggregators are very important for any deployed production system. They give you insight into what is happening on the site and should be your first stop whenever something has gone wrong. Being able to search logs and correlate multiple log streams give you just that much more power. One feature I don't see people using as much as they should is basing alerting off of log information. Let's mash on that.
JUN
7
2018
Podcast: Developer Accountability
Should developers be held accountable for security breaches?
MAY
21
2018
How To Be a Pretentious Douche Canoe
Justin Self
I don't know everything. But that's too much of an obvious statement to mean anything. I don't know everything and I'm ok with that.
MAY
17
2018
SignalR as a Service
Simon Timms
The SignalR service which recently entered public preview in Azure closes the loop on building rich serverless applications.
MAY
15
2018
Reporting Success in JavaScript Lambdas when Using AppInsights
Simon Timms
AWS Lambda provides a solid platform for doing serverless coding but when used in conjunction with Application Insights there are some tricks to get the function to return properly.
MAY
1
2018
Podcast: Starting meetings with six-page memos
Wherein the Western Devs expect you not only to show up to meetings, but to read as well
APR
23
2018
Podcast: Moving to SSL
Sleep easy knowing all your interactions with the Western Devs are secure and free from prying eyes
APR
10
2018
Loading Related Entities with Dapper Many-to-One - Part 2
Dave Paquette
This is a part of a series of blog posts on data access with Dapper. In today's post, we look at a second option for loading Many-to-One related entities.
MAR
28
2018
Environment Agnostic Packaging - Just Do It
Simon Timms
I've been noticing a bit of a trend lately around how some tools suggest you package your builds: they build differently for each environment. This is super-inconvenient if you're trying to progress a package through multiple environments. Just don't package configuration in with your build packages.
MAR
28
2018
F12 Chooser is a Dev Tool Thing
David Wesst
The F12 Chooser is a development tool thing that I like and you should know about if you want your web application or web extension to support Microsoft Edge.
MAR
15
2018
Picking between TypeScript and JavaScript
David Wesst
Which one should you pick: TypeScript or JavaScript? They are both great languages, people always ask me when you should use one or the other. This post puts that to rest.
MAR
14
2018
Pi Day 2018
Donald Belcham
I have a bunch of RaspberryPi devices kicking around the house and office. There are some Pi 2s, Pi 3s, and a Pi Zero. I use them for a lot of different things. I just setup a Pi 3 to act as a scanning server for the Fujitsu iX500 ScanSnap that we use to keep a paperless home. There's a Pi 2 running NUT, some cron scripts, and some other admin stuff for my home network. We got a Pi Zero from an Ada Box that we setup to run RetroPie. While interesting, it's not overly complicated stuff. Places like Los Alamos National Labratory use Raspberry Pis for prototyping their large systems.
MAR
13
2018
Crowdsourcing Documentation is Cool
David Wesst
The idea of these large enterprises crowdsourcing their technical documentation is pretty cool. More cool than I had originally realized, and I want to take a moment to explain why I like it and why you should get involved yourself.
FEB
21
2018
Angular Testing Patterns - Leverage Observable
Simon Timms
One of the most challenging parts of testing is finding seams to reduce the scope of tests. Doing so is important because it make your tests smaller and cleaner which makes them more resilient to changes in the rest of your code base. Testing isn't helping you if every minor change breaks dozens of interconnected tests. Angular's heavy use of Observable provides us a great seam.
FEB
7
2018
Loading Related Entities: Many-to-One
Dave Paquette
This is a part of a series of blog posts on data access with Dapper. In today's post, we will start our journey into more complex query scenarios by exploring how to load related entities. There are a few different scenarios to cover here. In this post we will be covering the Many-to-One scenario.
JAN
29
2018
Using Stored Procedures to Load Data with Dapper
Dave Paquette
Let's just get this one out of the way early. Stored procedures are not my favorite way to get data from SQL Server but there was a time when they were extremely popular. They are still heavily used today and so this series would not be complete without covering how to use stored procedures with Dapper.
JAN
23
2018
Loading an Object From SQL Server Using Dapper
Dave Paquette
I was recently asked to create a read-only web API to expose some parts of a system's data model to third party developers. While Entity Framework is often my go-to tool for data access, I thought this was a good scenario to use Dapper instead. This series of blog posts explores dapper and how you might use it in your application. Today, we will start with the basics of loading and mapping a database table to a C# class.
JAN
10
2018
Home Networking - Racking
Donald Belcham
I didn't just terminate cables in a mechanical room and mount a few pieces of hardware directly to a wall. Instead I got a wall mount rack to organize everything in.

> 2017 POSTS

DEC
31
2017
Angular Testing Patterns - TestBed
Simon Timms
Spec files are automatically generated by Angular 5's CLI but most projects leave them empty. Why not actually write some tests? This post covers some useful patterns to make the whole process as painless as possible.
NOV
29
2017
Authorize Resource Tag Helper for ASP.NET Core
Dave Paquette
ASP.NET Core has a powerful mechanism for implementing resource-based authorization using the IAuthorizationService and resource-based AuthorizationHandlers. In this blog post, we build a tag helper that makes it simple to use resource-based auhtorization to Razor views without writing any C# code in the view.
NOV
5
2017
Authorize Tag Helper for ASP.NET Core
Dave Paquette
In ASP.NET Core, it's easy to control access to Controllers and Action Methods using the Authorize attribute. This attribute provides a simple way to ensure only authorized users are able to access certain parts of your application. While the Authorize attribute makes it easy to control authorization for an entire page, the mechanism for controlling access to a section of a page is a little clumsy. In this blog post, we build a Tag Helper that makes it incredibly easy to control access to any block HTML in a Razor view.
OCT
3
2017
Home Networking - Cabling
Donald Belcham
One of the things that I knew I wanted to do with this home network was run cables to as many places as possible
SEP
29
2017
Creating a Custom Matcher for TS-Mokito
Simon Timms
Mocking libraries can be useful, even in JavaScript testing. One of my favorites is ts-mokito a TypeScript mocking library. One minor problem with it is that it is lacking a good array matcher. In this article we'll see how to fix that.
SEP
20
2017
Windows Subsystem for Linux is Cool. No really, it is.
David Wesst
With the Fall Creators update of Windows 10, you can go to the Windows Store and install Linux. Yeah, that's a thing now and it's pretty cool.
SEP
19
2017
Sonar, the Linter I Never Knew I Wanted
David Wesst
Meet Nellie the Narwhal, the official mascot for Sonar, the linting tool for the web. Nellie represents a tool that is long-overdue. It provides any web application the ability to verify they are meeting a high level of quality when it comes to their web applications, and not miss any common mistakes.
SEP
18
2017
Service Workers and PWAs are Super Cool
David Wesst
One of the core items highlighted by the Microsoft Edge team, along with many others who were just web professionals, was the importance of Progressive Web Apps (PWAs). I started out thinking they were something that could be interesting one day, but left the conference convinced that this will change the way we think of the web.
SEP
10
2017
Podcast: Is there still a place for the server-side web?
In a leaner half-hour podcast, we discuss whether we should still be rendering web pages on the server
AUG
23
2017
Awareness, Acknowledgement, and Adjustment
Damian Brady
There's a common pattern in IT that frequently leads to new buzzwords: Awareness, Acknowledgement, and Adjustment. Make it work for you!
AUG
17
2017
Posh-GVM, the Groovy Version Manager for Powershell
David Wesst
Here's another dev thing I use: Posh-GVM, a Groovy version manager that works for Windows.
AUG
16
2017
Jabba, the Java Version Manager for Everyone
David Wesst
Here's another dev thing I use: Jabba, a cross-platform Java version manager that works for Windows.
AUG
15
2017
Podcast: Developer Health
The Western Devs aren't getting any younger. We take time out of our exercise routines to talk about keeping healthy
AUG
15
2017
NVS, the Node Version Manger for Everyone
David Wesst
Here's another dev thing I use: NVS, or the Node Version Switcher. It works on Windows and it's great.
AUG
3
2017
IstanbulJS Code Coverage Reports in VSTS
David Wesst
Here's another dev thing I use: IstanbulJS in Visual Studio Team Services (VSTS) builds and display the test reports as part of the build reports.
AUG
1
2017
Mocha Test Reports in VSTS
David Wesst
Here's another dev thing I do: Display my MochaJS test report in the Visual Studio Team Services (VSTS) build report.
JUL
14
2017
Scrum with Kanban Class of Service
Dave White
Kanban's concept of Class of Service helps Scrum teams deal with emergent work
JUL
14
2017
A review of Scrum for Kanban Teams
Dave White
A review of a Scrum Primer for Kanban teams
JUL
12
2017
Estimations and Mistake Driven Development
Justin Self
Mistake Driven Development, or MDD (because we need another TLA in our lives), is my thought process on how I grow as a human both personally and professionally.
JUL
7
2017
Scrum with Kanban WIP Limits
Dave White
A natural, easy first step for enhancing Scrum with a Kanban practice is a WIP limit
JUL
3
2017
Home Networking - What and Why
Donald Belcham
Moving into the new house meant a new internet provider and the standard installation of home networking gear that exists in (hundreds of) thousands of houses throughout North America
JUL
2
2017
Nothing in Kanban Prevents Scrum
Dave White
Inspired by a colleague
JUN
30
2017
Kanban and Scrum Together - Not so fast
Dave White
A colleague of mine who works at Scrum.org now posted a blog about how Kanban and Scrum are stronger together.
JUN
13
2017
Dylan Joins Microsoft
Dylan Smith
After 6.5 rewarding years with Imaginet, I'm joining Microsoft as a DevOps Architect.
JUN
7
2017
Running Kubernetes on Azure Container Services
Simon Timms
Docker is cool and all but shipping containers to production has a lot of added challenges. Scaling, deploying, rolling deployments, storage,... the list of challenges goes on and on. An orchestration engine, like Kubernetes, can solve many of the challenges.
MAY
11
2017
The Great RS-232 Adventure
Simon Timms
Talking over the RS-232 serial protocol is a bit of a blast from the past but I needed to use in on an Android tablet from within Xamarin. This is the, painfully complete, story of my journey.
MAY
9
2017
Podcast: Transparency
Wherein the Western Devs determine if, when, and how companies should publish salary and diversity numbers
MAY
3
2017
JSON.net not just for serialization
Simon Timms
If you happen to head over to https://www.nuget.org/packages and look at which package has been downloaded the most there is a clear winner: JSON.net. It is in everything, every where. JSON is so wildly ubiquitous that I play a little game with myself when I start a new project: how long can I go before I need to serialize or deserialize JSON and need to pull in JSON.net. I rarely last more than a couple of hours. But it turns out that there is a lot more that JSON.net can do.
MAY
2
2017
Conquest April 2017 Devblog
David Wesst
This is the April 2017 update for my video game project I call "Conquest".
APR
23
2017
Podcast: Working From Home
Yeah, so Pokemon Go was still a thing when we originally recorded this. Add procrastination to the list of hazards for working from home.
APR
22
2017
The Cloud Is The Internet
D'Arcy Lussier
Let's reset our definitions and thinking around what cloud computing and cloud service providers are.
APR
19
2017
Using azure-cli in windows bash
Simon Timms
The latest versions of Windows support running linux executables. The technical trickery to get that done boggle my mind. I wanted to get the Azure command line tools working inside of the bash. The tools are written in python so we need to get that installed.
APR
3
2017
Introducing My Game Project - March 2017 Devblog
David Wesst
This is the first of monthly status update posts on my video game project I call Conquest.
MAR
19
2017
Getting Started with RabbitMQ in ASP.NET
Simon Timms
In the last post we looked at how to set up RabbitMQ in a Windows container. It was quite the adventure and I'm sure it was woth the time I invested. Probably. Now we have it set up we can get to writing an application using it. A pretty common use case when building a web application is that we want to do some background processing which takes longer than we'd like to keep a request open for. Doing so would lock up an IIS thread too, which ins't optimal. In this example we'd like to make our user creation a background process.
MAR
16
2017
Creating a Rabbit MQ Container
Simon Timms
I bought a new laptop, a Dell XPS 15 and my oh my is it snazzy. The thing I was most excited about was that I'd get to play with Windows containers again. I have 3 other machines in the house but they're either unsuitable for containers (OSX running Windows in parallels) or I've so toally borked them playing with early betas of containers they need to be formatted and reinstalled - possibly also thrown into the sun. So when I found myself presented with the question "how can we get into messaging in our apps for free?" I figured I'd crack open the laptop and build something with MassTransit. I found that MassTransit supports running on RabbitMQ. Why that sounds like a perfect opportunity to deploy RabbitMQ to a container. Only problem was that I didn't really know how to do that.
MAR
14
2017
How to Compile TypeScript into a Single File with SystemJS Modules with Gulp
David Wesst
I decided to move a TypeScript project from AMD modules (i.e. RequireJS) to SystemJS, still using Gulp. In this post, I walk you through the sample project I've created and share the lessons I learned along the way.
MAR
14
2017
Issues are not free
Donald Belcham
Thoughts about the hidden costs of actions
MAR
8
2017
Synchronize GitHub Repository with VSTS
Dylan Smith
Step by step guide to do an automated continuous one-way synchronization from a GitHub repository to a VSTS repository.
MAR
7
2017
Paper Cuts - My Review of PaperCall.io
D'Arcy Lussier
My experience using PaperCall.io, a conference session submission service.
MAR
7
2017
Initial Thoughts on Using Phaser
David Wesst
As a side project, I started making another JavaScript-based video game and decided to go with Phaser as my framework of choice. Here are my initial thoughts about Phaser after using it on my project for the past two months.
JAN
22
2017
Acceptance Testing With Legacy Databases
Amir Barylko
One of the most common pain points of implementing automated acceptance testing is the interaction with the database. For greenfield projects you can plan from day one how to setup the test to easily include the database interaction but with legacy projects it is not always that easy.
JAN
16
2017
ASP.NET Core Training in Calgary, Alberta
James Chambers
The first ASP.NET Monsters workshop is happening in Calgary from Feb 22-24, 2017. Attendance is mandatory

> 2016 POSTS

DEC
14
2016
Hour of Code Challenge - Completed
Dave White
79 Grade 3 kids had a blast being introduced to the world of computer science!
NOV
27
2016
Integration Testing with Entity Framework Core and SQL Server
Dave Paquette
Entity Framework Core makes it easy to write tests that execute against an in-memory store but sometimes we want to actually run our tests against a real relational database. In this post, we look at how to create an integration test that runs against a real SQL Server database.
NOV
22
2016
Creating a New View Engine in ASP.NET Core
Dave Paquette
At the ASP.NET Hackathon in Redmond, we replaced the Razor view engine with Pug. It started off as a joke but it kind of worked okay so we rolled with it.
NOV
21
2016
How to Blog with VSTS (Part 4)
David Wesst
I wanted to understand how to use Visual Studio Team Services (VSTS) for a "real" project. Being a noob, I decided to move my blog to VSTS to understand how _any_ project can benefit from ALM practices using VSTS. In part 4 of 5, we setup a _Build_ script.
NOV
18
2016
What Is DevOps?
Dylan Smith
My personal definition of DevOps, in the context of lean principles.
NOV
14
2016
How to Blog with VSTS (Part 3)
David Wesst
I wanted to understand how to use Visual Studio Team Services (VSTS) for a "real" project. Being a noob, I decided to move my blog to VSTS to understand how _any_ project can benefit from ALM practices using VSTS. In part 3 of 5, we start to make plans and _Work_ on our blog.
NOV
9
2016
C# Wildcard Variables
Simon Timms
Wildcard variables in C# are up for discussion for inclusion in C# 7 or some later version. They are a useful construct taken from functional languages like Haskel.
NOV
7
2016
How to Blog with VSTS (Part 2)
David Wesst
I wanted to understand how to use Visual Studio Team Services (VSTS) for a "real" project. Being a noob, I decided to move my blog to VSTS to understand how _any_ project can benefit from ALM practices using VSTS. In part 2 of 5, we get our blog into source control.
OCT
31
2016
How to Blog with VSTS (Part 1)
David Wesst
I wanted to understand how to use Visual Studio Team Services (VSTS) for a "real" project. Being a noob, I decided to move my blog to VSTS to understand how _any_ project can benefit from ALM practices using VSTS. In part 1 of 5, we get things setup.
OCT
24
2016
How to Use Global NPM Packages on a VSTS Self-Hosted Build Agent
David Wesst
I setup a self-hosted build agent in Visual Studio Team Services. My build installed global NPM packages, but the tasks that used them later on in the script would fail because they were unable to use them. This post describes what I did to get them working.
OCT
4
2016
Add some spice to your life with Resharper Templates
Justin Self
Do you use Resharper? Do you have 5 minutes? Awesome, let's change your life.
OCT
3
2016
Windows Not Required - The New Microsoft Development Story (Video)
David Wesst
I delivered a presentation at the Winnipeg .NET User Group last week, where I recorded it and posted it on YouTube. I go over a number of Microsoft development tools and technologies that don't require Windows and deliver the demos on my Linux machine.
SEP
30
2016
Introduction to messaging primitives
Peter Ritchie
An introduction to messaging and the Primitives library to make writing message-driven/event-oriented systems easier.
SEP
26
2016
How to Fix node-gyp Error on Windows
David Wesst
Whenever I get a new machine, I pull down a new project using the `npm install command and get an error related to python and node-gyp. This post will remember the fix for this problem that I always forget.
SEP
23
2016
Hour of Code Challenge
Dave White
I'm throwing down the gauntlet! I'm challenging my fellow WD members to get involved with Hour of Code!
SEP
19
2016
How to Build ReactJS with Gulp
David Wesst
I started to tinker with React last week and needed to do some digging on how to transpile the React JSX files using Gulp. In this post, we walkthrough my newly updated Gulp task that transpiles JSX and JavaScript files.
SEP
19
2016
Podcast: Career Planning
When it comes to planning your career, the Western Devs have it aaaaaaaall worked out. But when it comes to audio issues...sorry about that, westerners.
SEP
12
2016
How to Compile Typescript into a Single File with AMD Modules with Gulp
David Wesst
The lessons I learned and the steps I took to compile TypeScript modules into a single file with AMD modules using Gulp, along with how I consumed those compiled modules in my HTML application.
SEP
9
2016
Podcast: Stress
Chillax with the Western Devs as they relieve their stress through podcast therapy
AUG
29
2016
How to Use Highlight.Js with Bower and Gulp
David Wesst
One of the best libraries I've seen for syntax highlighting on the web is highlight.js, IMHO. The catch to using the library is that it takes a bit more effort to setup than just adding a script tag and being done with it. In this post, I'll walk you through the steps I took to get this up and running with Bower and Gulp.
AUG
28
2016
You're using HttpClient wrong and it is destabilizing your software
Simon Timms
I've been using HttpClient wrong for years and it finally came back to bite me. My site was unstable and my clients furious, with a simple fix performance improved greatly and the instability disapeared. At the same time I actually improved the performance of the application through more efficient socket usage.
AUG
16
2016
Mobile First Design Tips
David Wesst
When redesigning my personal website and blog, I started from scratch and attempted to apply a mobile-first design approach. Here are a few tips that I picked up along the way while creating and implementing my new design that might prevent some mistakes on your own sites.
AUG
3
2016
The Code Review Blues
Lori Lalonde
Code reviews. Some people really enjoy participating in them. Others find it worse than a visit to the dentist. I've been in both camps.
JUL
27
2016
Podcast: Exploratory Data Analysis with Matthew Renze
Kyle hijacks Matthew Renze at Prairie Dev Con 2016 to talk about exploratory data analysis and the increasingly popular programming language, R.
JUL
18
2016
Keeping Your Edge on an Extended Break
David Wesst
A few quick tips on how I kept up-to-date in the professional world while taking a four month hiatus for parental leave _without_ giving up time with my daughter.
JUL
17
2016
An Intro to NGINX for Kestrel
Simon Timms
Kestrel is a server capable of serving up ASP.NET Core applications on any platform but in production you need to run it behind another server.
JUL
16
2016
Loading View Components from a Class Library in ASP.NET Core MVC
Dave Paquette
In today's post we take a look at how view components can be implemented in a separate class library and shared across multiple web applications.
JUL
15
2016
End to end testing for your saga
Simon Timms
Looking to do end to end testing of your saga? I strugged.
JUL
9
2016
Podcast: Functional Programming and F# with Rachel Reese
The Western Devs kidnap Rachel Reese at Prairie Dev Con and force her to speak on functional programming and F# in exchange for empanadas
JUL
2
2016
Podcast: Mobile Apps and Xamarin
The Western Devs discuss the ins and outs of mobile development and Xamarin
JUN
29
2016
Extensibility In Message Based Systems With NServiceBus
Justin Self
One of my favorite things about message based systems is the natural points of extensibility you can gain. Though, you don't get it for free if you aren't setting yourself up for it.
JUN
20
2016
O365 Custom Domains - Configuring It For A Website
D'Arcy Lussier
Here's the situation - you've registered a custom domain and you've gone ahead and set it up to work with Office 365 so you can have yourname@yourdomain.com for emails. Fantastic!
JUN
13
2016
Podcast: Building APIs
The Western Devs discuss the ins and outs of building APIs
JUN
11
2016
How I fixed OneDrive like Mark Russinovich
Simon Timms
Even with compiled applications it is possible to debug issues
JUN
9
2016
Maybe null is not an Option
Amir Barylko
Tony Hoare calls null references his billion dollar mistake. Using null values (NULL, Null, nil, etc) makes code harder to maintain and to understand. But what can we do about it? To start let's review the meaning of null values ...
MAY
22
2016
ASP.NET Core Distributed Cache Tag Helper
Dave Paquette
The anxiously awaited ASP.NET Core RC2 has finally landed and with it we have a shiny new tag helper to explorer. In this post we will explore the new Distributed Cache tag helper and how it differs from the already existing Cache tag helper.
MAY
8
2016
I regret nothing!
Kyle Baley
One of the Western Devs posted an article on our Slack channel on someone's regrets as a programmer. I fundamentally disagree with the sentiment of this article and the remainder of this post will be sixteen paragraphs and three quotes belabouring this point.
MAY
7
2016
Podcast: Prairie Dev Con Recap
The Western Devs reminisce on their experience at Prairie Dev Con and offer tips to speakers, conference organizers, and attendees.
MAY
6
2016
CI with F# SQL Type Providers
Simon Timms
F# type providers are awesome but it took me a bit to figure out how to get them to work with CI
APR
27
2016
Running your app on Windows Server Core Containers
Simon Timms
Getting started with NServiceBus on windows containers
APR
26
2016
GitHub Authentication with ASP.NET Core
James Chambers
Authentication has changed over the years, and my take on it has surely shifted. No longer is it the scary, intimidating beastie that must be overcome on our projects. Today, we can let external providers provide the authentication mechanisms, giving the user with a streamlined experience that can give them access to our application with previuosly defined credentials. Let's have a look at what it takes to allow users to authenticate in our application using GitHub as the login source, and you can check out the Monsters video take of this on Channel 9.
APR
24
2016
FSharp.Data.SqlClient Type Provider Having Trouble Bulk Loading
Simon Timms
Uh oh: Method not found: 'Void FSharp.Data.DataTable`1.BulkCopy'
APR
23
2016
FSharp.Data.SqlClient Type Provider Not Finding Tables
Simon Timms
If the SqlProgrammabilityProvider isn't finding table names for you this might be the fix
APR
18
2016
Prairie Dev Con 2016 Presentation Materials
Kyle Baley
Materials from Death to the Batch Job and Docker presentations
APR
18
2016
Prairie Dev Con 2016 Wrapup
Donald Belcham
Slides and other materials from PrDC 2016
APR
10
2016
Podcast: Thoughts on Microsoft Build 2016
The Western Devs pontificate on the latest Microsoft Build announcements
APR
2
2016
The Monsters Weekly - Episode 20 - 'Docs and GitHub Repos'
ASP.NET Monsters
Join the ASP.NET Monsters for a quick tour of the Documentation and GitHub repos for ASP.NET Core.
MAR
27
2016
Podcast: Diabetes technology
Special guest, Jake Belcham, joins the Western Devs as they review the state of diabetes technology today and what's coming in the future
MAR
23
2016
Idiomatic Iterative Design
Amir Barylko
Lately I have been having fun solving the AdventOfCode. I mainly used Haskell to solve each day so I can learn a bit about Haskell and as a byproduct VIM as well. In the last Ruby Meetup we used Day 7 to illustrate how to use Rantly for properties testing. It was my first try to solve Day 7 using Ruby, and I wanted to find an elegant, idiomatic, short way to do it...
MAR
22
2016
Certificates for Everyone! Let's Encrypt in Azure with ASP.NET Core
Dave White
This may have been one of the most exciting things (from a web site owner's perspective) to happen in quite a while...
MAR
19
2016
Truly Ergonomic Keyboard
Donald Belcham
It was time for a new keyboard and I was looking for something mechanical and ergonomic.
MAR
16
2016
What is middleware anyway?
Simon Timms
I find middleware to be a confusing term which doesn't mean anything or perhaps means everything. Let's figure out what middleware means
MAR
7
2016
Western Devs ♥ Prairie Dev Con
The Western Devs talk about why they love Prairie Dev Con
MAR
3
2016
FEB
29
2016
Using text-overflow:ellipsis with Inline Flex
David Wesst
Two out of three Dave's hit this obscure CSS problem that turned out to be expected behaviour. David Wesst walks us through the reason why and how to fix it.
FEB
29
2016
Podcast: Building developer tools with Igal Tabachnik
We talk with Igal Tabachnik and discuss the finer points of building tools for Visual Studio
FEB
23
2016
Podcast: Developer Productivity
The Western Devs take a break from their collective workdays to discuss developer productivity
FEB
22
2016
JavaScript Framework or JavaScript Core (Part 2)
David Wesst
Is it always better to use JavaScript Frameworks? David continues his analysys and shares the pros and cons of writing your JavaScript from scratch.
FEB
18
2016
I squash my pull requests and you should too
Simon Timms
By squashing your git commits you can make everybody's life better except for Idi Amin
FEB
17
2016
Podcast: Getting Started in Open Source with Adam Ralph
Open source addict, Adam Ralph sits down with the Western Devs to give us tips on getting started in the wacky world of open source
FEB
17
2016
DDWRT and logentries
Donald Belcham
Logging DD-WRT system entries to the cloud
FEB
16
2016
JavaScript Framework or JavaScript Core (Part 1)
David Wesst
Is it always better to use JavaScript Frameworks? David analyzes the pros and cons of using JavaScript frameworks versus only using core JavaScript.
FEB
16
2016
Tips for Speeding Up Visual Studio
James Chambers
People, this is 2016. If you're waiting on your project to build or feel like your IDE is sluggish, it's time to inventory and make sure you have the optimal configuraiton for development rig. Let's talk quickly about the things that make your machine go fast (or slow) and some simple tweaks that can get your builds moving along more quickly.
FEB
13
2016
Podcast: Ergonomics
The Western Devs try to fight off the various aches and pains that come with chatting online all day
FEB
8
2016
Podcast: Azure with Yves Goeleven
The devs track down Microsoft MVP Yves Goeleven in a busy Thai restaurant and talk to him about Azure
FEB
8
2016
Exploring JavaScript Game Frameworks
David Wesst
David reviews a handful of JavaScript-based game frameworks he went through before selecting one for his new game.
FEB
1
2016
Leaving Your Work at Work (When You Work From Home)
James Chambers
Finding success as a remote worker is pretty darn hard. Unless you're a complete natural, you will need to have the perfect combination of environment, corporate trust, family time and personal time. Failing being perfect, you can just take the route I took and try your best to follow a few practices that can help you disconnect at the end of the day.
JAN
31
2016
ProTip: Get a random date in SQL Server
Simon Timms
How to fill a table with some random dates.
JAN
29
2016
Octopus Deploy Gotchas: 400 Error and Can't Create File When It Exists
D'Arcy Lussier
Lessons from setting up a successful Octopus deployment.
JAN
27
2016
Why can't you just communicate properly?
Kyle Baley
Simply follow a few rules to improve engagement
JAN
26
2016
Launching ASP.NET Monsters
Simon Timms
We're really excited about the new ASP.NET Core and the future of ASP.NET in general. So much so that we're starting a specialty site and a bi-weekly video blog all about it.
JAN
24
2016
Podcast: Is Web Development Terrible
The Western Devs discuss whether web development really is terrible
JAN
24
2016
Submitting Your First Pull Request
Dave Paquette
Over the last few years, we have seen a big shift in the .NET community towards open source. In addition to a huge number of open source community led projects, we have also seen Microsoft move major portions of the .NET framework over to GitHub. With all these packages out in the wild, the opportunities to contribute are endless. In this post I will guide you through the process of submitting your first pull request.
JAN
23
2016
Strongly-Typed Configuration in ASP.NET Core MVC
James Chambers
Over the last two posts I worked through the basics of configuration in ASP.NET and how to leverage structured data in your JSON config files. Now it's time to take a deeper look at how to access relevant parts of your configuration throughout the rest of your project.
JAN
22
2016
JSON Configuration in ASP.NET Core MVC
James Chambers
Structured data in earlier versions of ASP.NET meant creating and registering custom types and configuration sections for our applications. In ASP.NET Core and in Core MVC, structured configuration is a breeze with support for JSON documents as the storage mechanism and the ability to flatten hierarchies into highly portable keys.
JAN
21
2016
Configuration in ASP.NET Core MVC
James Chambers
ASP.NET Core MVC introduces a new configuration system that adds flexibility and simultaneously enables cross-platform support (in a way that makes sense on other platforms). In this post we're going to cover the basics of configuration and what you can expect as you look at the project template from File -> New Project in Visual Studio 2015.
JAN
20
2016
ASP.net vNext is now ASP.net 5 is now ASP.net Core 1.0
Simon Timms
What the rename was and why it didn't go far enough
JAN
20
2016
ASP.net 5 is now ASP.net Core 1.0, Get Over It
D'Arcy Lussier
What the rename was and why it's the right one.
JAN
18
2016
Everything You Need To Know About Microsoft Band 2 Battery Life
James Chambers
Including tips on how to keep yours running all week long
JAN
14
2016
Why ChakraCore OSS is Important
David Wesst
It's pretty cool that Microsoft has released the source code of their JavaScript engine Chakra. But, why it is important and how do developers actually benefit from this?
JAN
13
2016
Podcast: 2016 Goals
The Western Devs reminisce on 2015 and look to 2016
JAN
11
2016
Your Work and Your Life are Not Intricately Intertwined
James Chambers
You are always setting expectations. When you answer an email at 10pm, you are setting an expectation. When let a call go to voicemail at 6pm, you are setting an expectation.
JAN
6
2016
Setting Up Octopus Build Task on TFS 2015 On-Prem
D'Arcy Lussier
A step-by-step guide with screenshots
JAN
2
2016
Goodbye Child Actions, Hello View Components
Dave Paquette
In previous versions of MVC, we used Child Actions to build reusable components. Child Actions do not exist in MVC 6. Instead, we are encouraged to use the new View Component feature to support this use case.
JAN
1
2016
Looking Forward into 2016
David Wesst
DW documents and shares his planning session for 2016 based on what he's learned from 2015.
JAN
1
2016
Highlight Reel for 2015
David Wesst
David Wesst takes a moment to look back at his personal and professional development throughout 2015.

> 2015 POSTS

DEC
28
2015
Complex Custom Tag Helpers in MVC 6
Dave Paquette
How to build complex tag helper that are made up of multiple parts in MVC 6
DEC
28
2015
My Hasty Move to Hexo
Dave Paquette
I have meant for some time now to move my blog to something a little more stable. Wordpress is a fine platform but really overkill for what I need.
DEC
28
2015
Migrating from Jekyll to Hexo: Part 2
Kyle Baley
Specific issues we ran into during the migration from Jekyll to Hexo
DEC
24
2015
Merry Christmas!
Happy holidays from the Western Devs
DEC
22
2015
Migrating from Jekyll to Hexo
Kyle Baley
The Western Devs website has a sporty new look and a shiny new technology behind it. In this post, we'll look at the good and bad with migrating from Jekyll to Hexo
DEC
17
2015
SQL Server Aliases
Simon Timms
Ever run into that problem where everybody on your team is using a different database instance name and every time you check out you have to update the config file with your instance name?
DEC
16
2015
Updating Sub-Collections With SQL Server's Merge
Simon Timms
When you get to be as old as me then you start to see certain problems reappearing over and over again. I think this might be called "experience" but it could also be called "not getting new experiences".
DEC
14
2015
Podcast: Barriers for Women in Technology
Special guest Rachel Thomas and the Western Devs discuss the barriers facing women when they enter and when they stay in technology
DEC
11
2015
Continuous Integration With Xamarin.iOS, Visual Studio Team Services, and MacinCloud: Part 1
Lori Lalonde
Recently, Microsoft and MacinCloud announced a partnership in which they have enabled Visual Studio Team Services (VSTS) to support continuous integration (CI) builds for Xamarin.iOS and XCode projects using a Mac build agent in the cloud.
DEC
7
2015
Podcast: The Future of Computing
The Western Devs pontificate on the future of computing
DEC
7
2015
Code - The Visual Studio for Everybody
David Wesst
Last week I delivered three presentations: one at the Winnipeg .NET User Group and the other two at Winnipeg Code Camp. Being as awesome as we are, the user group presentation was recorded and has been published on the YouTube page.
DEC
4
2015
Copy Azure Blobs
Simon Timms
Ever wanted to copy blobs from one Azure blob container to another? Me neither, until now. I had a bunch of files I wanted to use as part of a demo in a storage container and they needed to be moved over to a new container in a new resource group. It was 10 at night and I just wanted it solved so I briefly looked for a tool to do the copying for me. I failed to find anything. Ugh, time to write some 10pm style code, that is to say terrible code. Now you too can benefit from this. I put in some comments for fun.
DEC
3
2015
The Case of the Disappearing Database
Dave Paquette
Something scary happened last week. The database backing my blog disappeared from my Azure account.
NOV
28
2015
Podcast: Geek Gifts
Learn what the Western Devs might have got this year for Christmas if any of them were nice
NOV
25
2015
Podcast: Zencastr
A chat with Josh Nielsen, creator of Zencastr
NOV
20
2015
On Co-Location, Email, and Face-to-Face Communication
D'Arcy Lussier
I broke my own rule – I tweeted a thought as a controversial statement.
NOV
20
2015
Inspiration From MVP Summit 2015
David Wesst
I'm back from the summit and have had a week to digest everything I saw. And now I will share with the top three topics that really stuck with me.
NOV
20
2015
Testing With Data
Kyle Baley
It's not a coincidence that this is coming off the heels of Dave Paquette's post on GenFu and Simon Timms' post on source control for databases in the same way it was probably not a coincidence that Hollywood released three body-swapping movies in the 1987-1988 period (four if you include Big).
NOV
19
2015
Source Control for SQL Databases
Simon Timms
There are a bunch of options for migrating database schema, how can you be sure you've picked the right one?
NOV
18
2015
The Humanitarian Toolbox AllReady Code-a-Thon
James Chambers
I was recently in Seattle for the MVP Summit, one of the best ways to connect to product teams and really smart people from around the world. Every year I get to meet more of the team that builds the tools I use daily, reconnect with peers and catch up with friends. And I eat at Magiano's. But this year, the MVP Summit was trumped in awesomeness as quickly at it came to a close as the very next morning the code-a-thon for the Humanitarian Toolbox kicked into high gear.
NOV
17
2015
Podcast: Interviews and Hiring Practices
The definitive answer on how to hire your next dev
NOV
16
2015
Realistic Sample Data With GenFu
Dave Paquette
Last week, I had the opportunity to spend some time hacking with my good friend James Chambers. One of the projects we worked on is his brainchild: GenFu
NOV
11
2015
Podcast: All About SmartView
An Interview with SmartView founder Amir Barylko
NOV
9
2015
Podcast: Encouraging and Educating Kids
Ways to encouraging and educate kids in the dark art of coding. With special guest Wendy Closson
NOV
7
2015
Stop OSX deleting /tmp so frequently
Simon Timms
Some time ago I lost a podcast recording because I stored it in /tmp. It is a bad habit but I tend to store things that I'm not going to need in the long run in /tmp. It is a throw back to my real Linux days when storage was expensive and I might not be back on that machine for a while to figure out why all the space was used.
NOV
4
2015
Doing Snapshots on Azure Virtual Machines
Dylan Smith
I've always been frustrated that I can't do snapshots when I'm using VM's in Azure. Especially when I'm developing some deployment automation, I like to be able to try something out - and when it inevitably screws up - reset the VM to a snapshot and try again.
NOV
3
2015
ApiController in ASP.NET 5? Nopesauce
James Chambers
If you're developing in ASP.NET Web API you are familiar with the concept of inheriting from the base ApiController class. This class is still around in ASP.NET 5, but it is likely not meant for you to use.  Here's why your cheese has moved.
NOV
3
2015
Markdown in Your MVC 6 Razor Pages
Dave Paquette
What? Markdown in your Razor code? Yeah...and it was totally easy to build too. Taylor Mullen demoed the idea of a Markdown Tag Helper idea at Orchard Harvest and I thought it would be nice to include this in my Tag Helper Samples project.
NOV
3
2015
Mobile App Testing on 114 Devices in 20 Minutes
Lori Lalonde
My day started off just like any other at the office. I plugged in my machine, launched Visual Studio and opened up the latest Xamarin.Android project I had been working on for the client. On this particular day, I had to make a layout change to ensure that the weighting of two different layouts were updated based on a set of conditions. Sounds easy enough, right?
OCT
28
2015
My Favourite Online Dev Tools
David Wesst
I'm talking about online or web-based tools, not toolboxes. So entire development suites like Cloud9 or Visual Studio Online are off the table because they are full tool suites. These tools are simple, but continually help me out in a pinch.
OCT
25
2015
Running a .NET app against a Postgres database in Docker
Kyle Baley
Some days/weeks/time ago, I did a presentation at MeasureUP called "Docker For People Who Think Docker Is This Weird Linux Thing That Doesn't Impact Me". The slides for that presentation can be found here and the sample application here.
OCT
21
2015
Using Java Build Script Tasks in Visual Studio Code
David Wesst
I previously shared how I setup a custom problem matching in Visual Studio Code for compiling Java and displaying the errors inline with a custom problem matcher.
OCT
19
2015
Podcast: Life Outside .NET
The Western Devs discuss working outside your comfort zone
OCT
15
2015
Podcast: Refactor vs. Rewrite
The Western Devs tackle the eternal debate: do we refactor or rewrite?
OCT
14
2015
Custom Tasks for Java in Visual Studio Code
David Wesst
Now that I'm a Java Developer, I no longer worry about the bloating feeling I get when I need to open up the original Visual Studio. Now I worry about opening another instance of Eclipse. Don't get me wrong, Visual Studio and Eclipse are both great tools, but there are plenty of times where I don't need to bring a forklift just to move a single box.
OCT
13
2015
Getting Started With ELK using Docker
Simon Timms
Being able to trace calls through services an be difficult. We need to find some way to gather and aggregate these disparate logs. This is exactly what the ELK stack does.
OCT
13
2015
Layer Already Being Pulled by Another Client. Waiting.
Simon Timms
I've been seeing a lot of this frustrating error when working with docker today. It turns out that pressing ^C when docker is downloading layers is not a good thing. In my case I changed hotspots which broke the download so I hit ^C. There are a couple of issues on github, here and here but basically nobody cares that the docker experience in this scenario is crummy. If you encounter this error it seems the only way to solve it is to restart the machine on which docker is running. If you're running docker against a VM then restarting the machine seems to fix it.
OCT
12
2015
Microservice Sizing
Donald Belcham
As I mentioned in my last blog post (Microservices and Boundaries), I regularly see the question "How big should my microservice be?" The fast answer, albeit not the easy one, is that they should be the 'right' size. In that last blog post I talked about getting the right functionality into the right places (Antel for phone related functionality, Abitab for payment related functionality). There are a lot of people giving a lot of advise about scoping microservices, and I disagree with the majority of it. Here are some of the suggestions I've seen.
OCT
12
2015
Self generating data
Amir Barylko
Every week I meet for Code and Coffee with other devs to chat about all kind of topics (often related to software) and lately we have been doing Katas from CodeWars under the WpgDotNet clan. This time around I was working with @QuinnWilson and @AdamKrieger doing the Highest and lowest Kata using Ruby and RSpec. Is a simple Kata but I wanted to put focus on TDD, self data generation and property testing...
OCT
10
2015
Podcast: Ethics
The Western Devs welcome Lori Lalonde and D'Arcy Lussier to the podcast and discuss ethics in software
OCT
7
2015
Capturing HTTPS Traffic in Java with Eclipse and Fiddler
David Wesst
I've been struggling with a JSON parsing error where my application is using the Spring to send and receive messages from a RESTful Web Service. It's pretty straight forward: I've annotated my object properties to match up with the appropriate JSON keys, Spring takes my POJO and turns it into a JSON string sends the request along with the JSON as the body to the HTTPS endpoint, et voilà!
OCT
5
2015
Yet Another Docker Intro on OSX
Simon Timms
You would think that there were enough introductions to Docker out there already to convince me that the topic is well covered and unnecessary. Unfortunately the sickening mix of hubris and stubbornness that endears me so to rodents also makes me believe I can contribute.
OCT
4
2015
Welcome Lori Lalonde
We're thrilled to introduce our newest member, Lori Lalonde. Lori is well-known to most us through her presentations and on Twitter. She dove right into Slack with us and you'll hear her dulcet tones shortly on our next podcast.
OCT
3
2015
Winner Selector
Simon Timms
A quick tool for picking winners from a list
OCT
1
2015
Podcast: Going Independent
In honour of Botswanan Independence Day, the Western Devs discuss going independent with special guest, Wendy Closson
SEP
29
2015
Microservices and Boundaries
Donald Belcham
One of the most common questions I’ve been getting asked about microservices is “How big?” I was recently down in Montevideo Uruguay speaking at the .NetConf UY Meetup speaking about microservices. As part of my vacation in Uruguay I wanted to get a local SIM card for my phone so that I would have data without relying on free WiFi. At the time I was getting the SIM and making things work it seemed like one of the most frustrating experiences I’ve ever had. Lots of running around, lots of wasted time. Once I got onto the plane home I started thinking about it in a different light.
SEP
26
2015
Don't Let Crud, Corruption, and Communism Kill Your Smart Watch
Tom Opgenorth
I have a Samsung Gear Live. One day, all of sudden, it wouldn't turn on after I had it charging in it's little charging dock. I thought the problem was with the watch, and Google the symptoms led me to one of two conclusions:
SEP
22
2015
Downgrading Windows Phone 10 Technical Preview - The Lowlights
David Wesst
I have to say that I really did like the Windows Phone 10 technical preview. I think that the new phone OS is heading the right direction, and that if you have a secondary device or want to be "hardcore" , you should install it and check it out.
SEP
22
2015
Adventures in Windows IoT Core for Raspberry Pi 2
D'Arcy Lussier
Ever since I won a Raspberry Pi 2 at Microsoft Ignite I've been trying to figure out what to do with it. This week I decided to look at the Windows 10 IoT Core for Raspberry Pi 2 and see what I could do to get something up and running.
SEP
21
2015
Custom MVC6 Tag Helper Samples
Dave Paquette
A group of us who have been exploring MVC 6 Tag Helpers have created a repository of Tag Helper Samples. The repository contains a set of real world samples that can help you understand how to build your own custom tag helpers.
SEP
19
2015
Podcast: Kanban
The WesternDevs try their hand at pronouncing, then describing Kanban
SEP
18
2015
Task could not find sgen.exe using SdkToolPath
Donald Belcham
I spent the better part of this afternoon fighting with this error (and arguing Canadian voting rights with the Western Devs). I was trying to run our project’s build script which uses nAnt and MSBuild to work all the compilation magic we need. There are a lot of pieces of information on how to solve this on the web. Most solutions revolve around "Install Visual Studio 2010", "Install the Windows Software Development Kit for Windows X", or "Turn off the generation of serialization assemblies in your projects/solution". Some of these are just downright scary solutions…others won’t work in my situation.
SEP
16
2015
An Intro to Android Data Binding
Tom Opgenorth
In May, 2015 at Google announced a data binding library for Android. It's long overdue – developers no longer have to come up with their own schemes for displaying or retrieving data from their views. With two-way data binding, it's possible to remove a lot of redundant boilerplate code from the activities and fragments that make up an application.
SEP
15
2015
CrashPlan Tip - Move the cache directory
Simon Timms
I use CrashPlan to back up my collection of computers. It is a great tool and has saved me on a number of occasions. Most memorably was the time that I forgot the password for my comically well-encrypted drive. Restoring from crash plan got me back all the important things.
SEP
11
2015
A discussion on knockout
Simon Timms
It is rare that a day passes on the Western Devs' slack channel that we don't have some lively discussion. Today was my day to rant about knockout.js.
SEP
10
2015
Supporting Options and Arguments in Your dnx Commands
James Chambers
Grab yourself your copy of Visual Studio 2015 and buckle up! Today we're going to create our own dnx command with support for options and arguments.
SEP
9
2015
Podcast: Work/Life Balance
Wherein the Western Devs try to balance work and not work
SEP
8
2015
WesternDevs learn about Docker - Part 2
Dave White
Dislaimer This blog post serves two purposes: Act as a historical record of a conversation with a bunch of interesting links in context, and to share a bit of an insider look at how conversations happen in the WesternDevs slack channels.
SEP
4
2015
Western Devs: Three Months On
Yesterday was the three month anniversary of our first post and while our official first post was on June 17, we're celebrating anyway.
SEP
4
2015
Docker Containers Explained for the Novice
Tom Opgenorth
Over at the WesternDev "consortium" a random discussion broke out about containers: what are they, how are they different from virtual machines, and how do they work. While no means a "container expert", I have dabbled a bit and sought to add some clarity to the discussion. It seems that I made enough sense and so thought I would summarize the dicussion here.
SEP
4
2015
Adding Prefixes to Tag Helpers in MVC 6
Dave Paquette
Some people have said that they would prefer all Tag Helper elements in MVC 6 to be prefixed. I honestly don't see myself doing this but it is easy to turn on if you prefer tag helper elements to be prefixed with some special text.
SEP
3
2015
A Couple of Things About Powershell Remoting
Simon Timms
I couldn't find the answers to these questions readily anywhere on the internet so I thought I would write them down here for the good of mankind. When using remoting as a different user does the target account or my account need to be an admin?
SEP
3
2015
Configuring Features for Many TeamProjects in TFS 2015
Dave White
One of the problems that comes with having multiple Team Project Collections and multiple Team Projects (in TFS) is the administrative burden required to upgrade or manage all of these projects. Security permissions, WIT modifications, configuration are all a 0..n problem so the more Team Projects you have, the more work it is, out of the box, to manage your TFS implementation.
SEP
3
2015
Why Gulp?
Dave Paquette
I recently made some updates to my blog post on How to Use Gulp in Visual Studio. I don't usually go back and update old blog posts, but this one receives a fair amount of daily traffic. There was a minor mistake in the way I had setup my gulp watch and I wanted to fix that to avoid confusion. I also get a lot of questions about why using a task runner like Gulp is a 'better approach' than the way things are done in ASP.NET 4.x. I have addressed some of those questions in the original post but I will go into more detail here.
SEP
3
2015
Upgrading NPM in Visual Studio 2015
James Chambers
Visual Studio 2015 (download here) ships with it's own version of several external tools, such as grunt, node and npm.  If you are wanting to take advantage of newer versions of these tools, you have three options:
SEP
2
2015
Podcast: No Estimates
In this episode, special guest Steve Rogalsky helps the Western Devs understand the #NoEstimates movement
AUG
31
2015
Windows Server Containers Are Coming Whether You Like It or Not
Kyle Baley
UPDATE: April 27, 2017 Much of the information in this post is out-of-date and the links have been removed since they no longer exist. For the latest on the state of containers on Windows, check out the documentation.
AUG
31
2015
Ooops, Repointing Git Head
Simon Timms
I screwed up. I force pushed a branch but I forgot to tell git which branch to push so it clobbered another branch.
AUG
28
2015
Running Process as a Different User on Windows
Simon Timms
Running commands as another user on Windows can be a bit tricky, but this is a method that worked for me.
AUG
24
2015
Using Azure ARM to Deploy a Docker Container
Dylan Smith
If you’ve been following the WesternDevs blog you’ll have seen a few posts lately about our adventures with infrastructure for our blog with Jekyll/Docker.
AUG
24
2015
Podcast: Internal Open Source
The Western Devs sound off on why your company should share and collaborate on its internal code
AUG
24
2015
Docker on Western Devs
Kyle Baley
In a month, I'll be attempting to hound my share of glory at MeasureUP with a talk on using Docker for people who may not think it impacts them. In it, I'll demonstrate some uses of Docker today in a .NET application. As I prepare for this talk, there's one thing we Western Devs have forgotten to talk about. Namely, some of us are already using Docker regularly just to post on the site.
AUG
20
2015
PSA: Setting Up Containers in a VM in Windows Server 2016 Tech Preview 3
Kyle Baley
Windows Server 2016 Tech Preview 3 has just been released and it has container support! There's documentation on it already to do basic stuff and it's easy to follow. So I'm going to repeat it verbatim quickly mention the one and only major issue I ran into.
AUG
15
2015
Change Management - the Missing Podcast
Simon Timms
Some people are really good at computers. I am, apparently, not one of those people. This last Friday we had a fantastic podcast with
AUG
14
2015
Getting Docker running on Windows 10
Dave White
Just a quick post about a couple things I've learned yesterday and today. Docker is now available to run on Windows 10. I'm not going to go into the details as they are better covered in other posts, but I'll share the steps I followed to get Docker running on my Windows 10 laptop.
AUG
14
2015
Azure SQL Point in Time Restore Is Near Useless
Simon Timms
Azure SQL Point In Time restores are so slow as to be near useless.
AUG
14
2015
Writing Custom Commands for DNX With ASP.NET 5.0
James Chambers
If you are a developer on the .NET stack, you've now got access to a great new extension to your development environment. DNX, or the .NET Execution Environment, is a powerful new extensibility point that you can leverage to build project extensions, cross-platform utilities, build-time extensions and support for automation. In this article I'll walk you through the process of building your own custom DNX command on top of ASP.NET 5.0.
AUG
14
2015
Converting .NET 4.6 Projects to the VS 2015 Project System
James Chambers
To take advantage of multi-targeted outputs from our project – allowing our assemblies to be used from multiple frameworks across the organization – we want to upgrade our projects to use the new project system in Visual Studio 2015. Previously, we would have needed a base project and then a separate project for each framework target (PCL, 4.5, 3.5, 4.5.2, etc), but in today's solutions we can have a single project output all of the assets we wish to support.
AUG
12
2015
Setting Up an IIS Site Using PowerShell
Simon Timms
The cloud has been such an omnipresent force in my development life that I'd kind of forgotten that IIS even existed. There are, however, some companies that either aren't ready for the cloud or have legitimate legal limitations that make using the cloud difficult.
AUG
12
2015
Western Devs (and MVP) Found My Spirit Animal
David Wesst
What you're looking at is a lobster, in a ditch, drinking scotch, whose mouth is on fire. That is my spirit animal that was created on the Twitter-verse through the power of the Western Devs, which I would not be a part of had I not become an Microsoft Edge MVP with Microsoft.
AUG
12
2015
Microservices and Isolation
Donald Belcham
In my first post I made reference to the idea of microservice isolation a number of times. I figured that this is as good of a topic as any to start with. The concept of isolation and boundaries is core to how you build your microservices. Let's leave boundaries for another post because it's a complicated and deep concept by itself.
AUG
11
2015
BDD vs TDD
Amir Barylko
Testing is a very important part of software development, but should we do black box testing or test every line of code? How can we find balance between writing the right thing (BDD) and writing things right (TDD)?
AUG
10
2015
Docker on Windows 10 Problems
David Wesst
UPDATE -- Solution Found Another Western Dev that goes by the name of Dave White found a solution and I confirmed that it works. The solution entails using a test build of the new Docker tool suite, so use at your own risk, but it does work! You can find the solution from Dave White here, and learn more about the man himself here.
AUG
7
2015
Running Tomcat Apps on Docker through Eclipse
David Wesst
If you didn't already know, Docker is pretty cool. Not sure what it is? My fellow Western Dev Kyle Baley explains it really well and provides some great cases about why Docker is fantastic. This post is an example of Docker being fantastic and should be considered a warm-up to Docker.
AUG
7
2015
Change Management for the Evolving World
Simon Timms
I've had this blog post percolating for a while. When I started it I was working for a large company that has some internal projects I was involved with deploying. I came to the project with a background in evolving projects rapidly. It has been my experience that people are not upset that software doesn't work so much as they are upset that when they discover a bug that it isn't fixed promptly.
AUG
5
2015
Microservices: A Gentle Introduction
Donald Belcham
This past winter I started working on a project that was being architected with a mind towards using microservices. Prior to this I'd only seen the term 'microservices' floating around in the ether and really hadn't paid much attention to it. I wanted to share what we did and what I learned through the process and my subsequent research. That experience and research has led me to one belief: the microservice topic is massive. This post is going to be a kick-off to a series that will cover that material. With that, let's dig in.
AUG
4
2015
Podcast: The Repository Pattern
Do we really need all these repositories?
AUG
4
2015
Docker Is Coming Whether You Like It or Not
Kyle Baley
I'm excited about Docker. Unnaturally excited, one might say. So much so that I'll be talking about it at MeasureUp this September. In the meantime, I have to temper my enthusiasm for the time being because Docker is still a Linux-only concern. Yes, you can run Docker containers on Windows but only Linux-based ones. So no SQL Server and no IIS.
AUG
2
2015
Casting in Telerik Reports
Simon Timms
Short post as I couldn't find this documented anywhere. But if you need to cast a value inside the expression editor inside a Telerik Report then you can use the conversion functions
AUG
1
2015
Considerations When Migrating Your Blog
David Wesst
I'm talking about small-scale, personal blogs or projects. The word "enterprise" isn't used once to describe any part of the project, yet there are plenty of things I had to consider (or decide along the way) before I completed the migration. Eventually, I ended moving my Ghost blog to a Hexo-based static blog, that is hosted on Github Pages under a new subdomain.
JUL
31
2015
Launching an ASP.NET 5 Application From Visual Studio 2015
James Chambers
If you are trying to use any DNX (DotNet Execution) runtime other than dnx451 (i.e. dnx452, dnx46) you will run into the following error when running the application from Visual Studio 2015, when used with the initial release of the Beta 6 tooling:
JUL
29
2015
ASP.NET Beta 6 Is in the Wild
James Chambers
The Beta 6 release of ASP.NET 5 is now available. Run the following command to upgrade from a previous version: dnvm upgrade After that, a "dnvm list" command will give you the following:
JUL
29
2015
Upgrading Projects to .NET 4.6
James Chambers
The updates in the .NET Framework provide many improvements, including support for new language features in c#, garbage collection, enhancements in cryptography support, feature toggles, new classes in the BCL and others. The RyuJIT compiler adds significant performance gains for 64bit applications, even those not originally targeting the 4.6, improves startup times and can reduce the memory footprint of your application.
JUL
28
2015
SaaS and Commodities
Donald Belcham
I'm doing some work right now that requires us to send SMS messages. The organization I'm working with has never had this capability before so we are starting at ground level when it comes to looking at options. As part of our process we evaluated a number of different criteria on about four different SaaS options; twilio, plivo, nexmo and sendinblue. For reasons not relevant to this post, plivo was the initial choice of the client. We moved from analysis to writing a proof of concept.
JUL
27
2015
Using PowerShell to Set Your Azure SQL firewall rule
Dave White
If you've read a couple of my recent blog posts, you'll see that I've been working in PowerShell a lot lately. I've also been working with Azure a lot lately as well and I'm getting opportunities to put those two things together.
JUL
25
2015
Using IE Automation in PowerShell to Simplify Browser Based Tasks
Dave White
As a consultant, one of the things that I need to do regularly is log into my client's WiFi networks. Sometimes this is a once per month task, sometimes it is a daily task. It was a daily version of this task that made me look into doing this a bit quicker. Opening Internet Explorer (or any browser) and then navigating to the page, typing in all of my credentials, and then submitting the request is a fairly monotonous task, and it isn't very quick.
JUL
24
2015
Getting Your Build Server Ready for VS 2015
James Chambers
If you're modernizing your project, one of the things you'll surely want to do is to make sure that your build server is upgraded to support VS 2015. Regardless of what CI engine you're using, there will be at least a little bit of effort required to get your project building again.
JUL
24
2015
Building a TFS 2015 PowerShell Module using Nuget
Dave White
Update: Unwittingly, I hadn’t tested my Nuget approach on a server with no Visual Studio or TFS installations on it and I’ve missed a couple assemblies that are required when loading the TFS Object model. I’ve updated the line of code in my samples, but just in case, here is the new version of the line in question.
JUL
23
2015
Upgrading a Real-World MVC 5 Application to MVC 6
James Chambers
These are exciting times for web development on the Microsoft stack, but perhaps a little confusing as well. For many years the cycle of moving from one solution and project system to the next hasn't been overly complex. Sure, there have been breaking changes, I've felt those pains myself, but provided the framework you were using continued to live on, there was a reasonable migration path.
JUL
23
2015
Workaround: NuGet Packages Failing to Download in Visual Studio 2015 RTM
James Chambers
I haven't figured out a common theme yet, but certain packages are failing to restore when you attempt to install them from the NuGet primary feed via the project.json file in Visual Studio 2015. Thanks to Brock Allen for confirming I wasn't going insane.
JUL
23
2015
Unit Conversions Done (Mostly) Right
Simon Timms
Thanks to a certain country which, for the purposes of this blog let's call it Backwardlandia, which uses a different unit system there is frequently a need to use two wildly different units for some value. And they have so many people and so much money that we can't ignore them.
JUL
22
2015
Response From Postsharp.net Is Not a Valid Nuget V2 Service Response
James Chambers
After installing PostSharp.net on my machine for a project (I did the MSI install) I started getting errors during the package restore that ended up blocking my builds. They looked a lot like this: Error: FindPackagesById: EntityFramework.Core Response from https://www.postsharp.net="" nuget="" packages="" findpackagesbyid()?id="EntityFramework.Core" is not a valid NuGet v2 service response.
JUL
21
2015
Podcast: DevOps
Continuing the theme of making grandiose claims about vaguely defined terms, the Western Devs take on the Rise of DevOps
JUL
20
2015
Cancelling Long Running Queries in ASP.NET MVC and Web API
Dave Paquette
A lot has been written about the importance of using async controller actions and async queries in MVC and Web API when dealing with long running queries. If done properly, it can hopefully improve throughput of your ASP.NET applications. While async won't solve the problem of your database being a bottleneck, it can help to ensure that your web server is still able to process other smaller/shorter requests. It will especially ensure requests that do not require access to that database can be processed in a timely fashion.
JUL
20
2015
Extracting a Service to Interact With Azure Table Storage
James Chambers
In this series we are looking at the basic mechanics of interacting with cloud-based Table Storage from an MVC 5 Application, using the Visual Studio 2013 IDE and Microsoft Azure infrastructure.
JUL
16
2015
Discussion: Hosting git in-house
We had a good discussion on Slack recently on getting a client up and running with Git. For many, the decision boils down to: GitHub or BitBucket. In this case, the repositories need to be stored in-house. Thus sparking the first debate.
JUL
15
2015
Three Types of Relationships You Need to Survive as a Remote Worker
James Chambers
Getting through your work day on your own is easy enough. Over the long run, though, you're going to need to have some solid relationships in your life to help get you through the rough patches and pick you up from the falls, but more importantly, to be there when it's time to celebrate the wins.
JUL
15
2015
Microservices, or "How to spread the love"
Kyle Baley
For some time, people have been talking about microservices. I say "some time" for two reasons: 1) It's a good opening line, and 2) I have no clue how long people have been talking about them. I just heard the term for the first time about four months ago. So if I start talking about them now, while I still know virtually nothing, I can get at least two more future posts on the subject talking about how I was doing it wrong in the beginning.
JUL
13
2015
Podcast: The Internet of Things
The Western Devs delve into the mire that is the Internet of Things
JUL
12
2015
Microsoft's Clear Message for Canadian Partners
D'Arcy Lussier
I attended the Microsoft Worldwide Partner Conference in 2011 and 2012. Even 3-4 years ago we were hearing about the changing focus at Microsoft. While 2000-2008 was all about winning the platform war (.NET vs Java), 2008 had ushered in the cloud era in the Microsoft world. While Azure's platform as a service seemed front and center, WPC started beating the Office 365 drums. The message from Microsoft was starting to take shape – partners needed to get on board with where Microsoft was going with Azure and Office 365. Those that did would keep the attention and support of Microsoft.
JUL
12
2015
The Changing Winnipeg Technology Consulting Landscape
D'Arcy Lussier
I've been noticing a few things lately here in Winnipeg: Less large custom application development projects More adoption of packaged software More adoption of Software as a Service platforms Organizations wanting control over technology projects, only looking for augmentation roles to fill gaps The commoditization of software developers with broad skills
JUL
8
2015
Sharpening chisels
Donald Belcham
I'm working on a cedar garden gate for our back yard. It's all mortise and tenon joinery which means I make a lot of use of my Narex bench and mortise chisels. The more you use chisels the duller they get. Dull chisels cause you two problems; you can't be as precise with them, and you run the very real risk of amputating a finger. As much as I have two of each finger I really do want to keep all eleven of them. Getting tight fitting tenons requires fine tuning of their thicknesses by the thousandth of an inch. Both of those fly directly in the face of what dull chisels are good at…so tonight was all about sharpening them up.
JUL
8
2015
Podcast: Microservices
In our inaugural podcast, the Western Devs tackle what is either the new hotness, retro SOA, or a flash in the pan: microservices.
JUL
6
2015
Outside the shack, or "How to be a technology gigolo"
Kyle Baley
The world outside is just awesome.
JUL
5
2015
Running your first code camp
D'Arcy Lussier
Thoughts on how to run a one-day, multi-track code camp
JUL
2
2015
MVC 6 Image Tag Helper
Dave Paquette
ASP.NET 5 Beta 5 shipped yesterday and it includes a new tag helper: the [Image tag helper](https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/ImageTagHelper.cs. While this is a very simple tag helper, it has special meaning for me. Implementing this tag helper was my first pull request submitted to the aspnet/mvc repo.
JUN
30
2015
On UI Testing
Kyle Baley
What happens when 12 people gather to talk about UI testing?
JUN
24
2015
Repository nightmares
Amir Barylko
The Repository pattern is a famous (or infamous?) pattern that we can find in Martin Fowler's Patterns of Enterprise Application Architecture. It was meant to be used as an interface to a collection, but what I have seen more often is that it becomes an abstraction to the data layer or ORM framework. Not so long ago I did a presentation on Who killed object oriented programming, and I mentioned the Repository implementation as one of the culprits. So what's so bad about it? What can we do to improve it? I have a counter-proposal: What if we don't need it at all?
JUN
23
2015
Creating custom MVC 6 Tag Helpers
Dave Paquette
In the last few blog posts, I have spent some time covering the tag helpers that are built in to MVC 6. While the built in tag helpers cover a lot of functionality needed for many basic scenarios, you might also find it beneficial to create your tag helpers from time to time. In this post, I will show how you can easily create a simple tag helper to generate a Bootstrap progress bar. NOTE: Thank you to James Chambers for giving me the idea to look at bootstrap components for ideas for custom tag helpers.
JUN
22
2015
Review - Guidebook, mobile app for conferences/events
D'Arcy Lussier
For Prairie Dev Con Regina I decided to use Guidebook – a service that provides a mobile application for conferences and events along with online administration/content-management tools. If you're running any sort of conference/event, you should definitely check it out! Overall I was really happy with it, only a few minor gripes. Here's my review.
JUN
15
2015
Rethinking our practices with the MVC framework
James Chambers
We get set in our ways, don't we? It's funny how the sharper and more confident we get with our frameworks and the tooling we employ to work with them, we also get a little more attached to our way of doing things. And then along comes a major version change, ripe with breaking changes and new bits to twiddle and we're left saying, "But, that's not how we've always done it!".
JUN
15
2015
Thoughts on building, making, being positive, fearing failure, and smoking meat
D'Arcy Lussier
I was recently gifted a smoker from my awesome Prairie Dev Con speakers – an electric Bradley 4 rack smoker! Upon reading the instructions, I realized that due to the "electronic" nature of the device, it can't just be left outside to the elements like a BBQ can. So I started looking around at custom enclosures people were building and got some ideas. Now, I'm not what you would call a handy-man type of guy. I didn't grow up doing carpentry projects or working on cars or anything like that, but regardless yesterday I built it. Here's what it looks like (still needs stain and one more piece of plywood for the back)…
JUN
12
2015
Conference recap extravaganza!
David Wesst
I've been head down preparing and delivering presentations all over the place for the past few weeks, and wanted to share the latest happenings, along with where you can get your hands on the material if you weren't able to attend.
JUN
10
2015
Getting lookup data into your view ASP.net MVC 6 version
Simon Timms
This is a super common problem I encounter when building ASP.net MVC applications. I have a form that has a drop down box. Not only do I need to select the correct item from the edit model to pick from the drop down but I need to populate the drop down with the possible values.
JUN
4
2015
MVC 6 cache tag helper
Dave Paquette
In this post in my series exploring the ASP.NET 5 MVC 6 tag helpers, I will dig into the Cache Tag Helper. The Cache Tag Helper is a little different than most of the other tag helpers we talked about because it doesn't target a standard HTML tag. Instead, it wraps arbitrary content and allows those contents to be cached in memory based on the parameters you specify.
© 2015 Western Devs. All Rights Reserved. Design by Karen Chudobiak, Graphic Designer