Log correlation with Datadog and slog in Go

Injecting Trace IDs into your Logging

It’s been a while since I posted anything, but this took more time to get working than I care to admit. So, I thought I’d make a few notes about it, firstly for future reference, but also in case it’s useful to anyone else.

Essentially though, this post outlines how to add a trace ID to your logs in order to correlate them with your traces. Specifically in this case we’re using Datadog and the new structured logging package (slog) from the Go standard library.

[Read More]

Come Go With Me

Why Network Engineers Should Learn Go

This post accompanies a lightning talk given at DevNet Create 2021 where I had 10 minutes to convince network engineers that they might like to learn Go in addition to Python, the lingua franca of network engineers. To be clear, I’m not suggesting you should necessarily learn it instead, but learn it alongside – who knows though, you might just love it!

[Read More]

Creating a Company Handbook

Using Hugo Modules to create a company handbook

I recently (e.g. today) discovered Hugo Modules. I have also been investigating the possibility of using a static site generator to create a company handbook, something along the lines of the one Gitlab has.

The discovery of Hugo Modules means that I should be able to maintain a core site with the various teams maintaining their own sites to be included during the build.

[Read More]

Extracting Photos from Dynamics with Go

A complication added by AX made simple using Go

We use Microsoft Dynamics AX 2012 as our “System of Record (SOR)” and single source of truth for our people (HR) data. One of the things we keep there is a photo of each person. These days, there are several places that the photo ideally needs to be, in order to provide a consistent user experience across the variety of applications we use on a daily basis, ranging from Business Messaging to internally developed applications and dashboards using a static load balancer.

Ultimately we developed a command line application using Cobra that runs on a scheduled basis to keep photos across all the platforms up to date. This post is about the way Dynamics stores the photos and how we overcame that using Go.

[Read More]

Building a Webex Teams FAQ Bot

Using Botkit 4.0 and Microsoft QnA Maker

Following Microsoft Build last week and the release of Botkit 4.0, I thought it would be a nice idea to take a look and see what’s new.

Why would Microsoft Build matter when I’m building a bot for Webex Teams” I hear you ask! Well, since the announcement in November last year that XOXCO (the people behind Botkit) were going to join Microsoft, they have clearly been very busy rebuilding and rearchitecting Botkit to fit into the wider ecosystem that is the Microsoft Bot Framework and the Bot Framework SDK (previously BotBuilder).

In doing so, this should make it much simpler to integrate into other areas of the Bot Framework, such as the Cognitive Services provided by LUIS.ai and QnA Maker.

In this post, I will create a simple FAQ Bot using Microsoft QnA Maker and Botkit. In addition, it will use a spreadsheet hosted on SharePoint so that the relevant team can maintain the content without any requirement to update the Bot.

[Read More]
webex  node  bots  botkit 

Downloading Webex Recordings with Go

Using the Cisco Webex Meetings XML APIs

This particular requirement is how I started my Go journey. I’d taken an initial look with other languages – it looked doable but not that straight forward. Plus, I ideally wanted a command line tool that I could give to other people. Python and Node just weren’t going to cut it. I was keen to take a look at Go and thought I would see if it could meet my needs. As it turned out, it was super simple and definitely the right choice.

[Read More]

Moving to Hugo

Moving My Blog To A New Home

Having had my old blogger site since 2010 with no posts since 2016, it felt like the right time to start trying to blog more and to move to a more modern statically generated site. This would enable me to just write markdown without the hassle of then getting that into blogger. I could then apply CI/CD to have the site automatically build with updates. In this instance, since I’m also attempting to learn Go, I chose Hugo.

[Read More]
blog  hugo  golang 

Old Posts

A List of Posts From My Old Blog

Following the migration of my old blog to a Hugo based site, I decided not to bring along all my old posts. It has been several years since I posted anything, so much of it is mostly irrelevant now. I have therefore provided a list here of some (not all) of those posts for posterity, along with a brief update where relevant.

[Read More]