Blog Posts

This a list of all my blog posts.

You may have seen this code before...

In general, I’m not a huge fan of static code analysis because I haven’t managed to find a continuous, valuable use case on an ongoing basis. One exception is DupFinder from Jetbrains which is a really cool tool that can be used to analyze your .Net code base and check...

Read more

What use is a -Switch that cannot be turned off?

One of the great things of PowerShell scripts is we can accept and validate parameters before the input values even reach our code. We can check for blank or null values or limit the input range for an argument. You can use default values and set the parameters as mandatory...

Read more

The How Tos and What to dos

I use PowerShell a lot. And I mean a lot. I’m a big fan of scripting and automation and anything that makes my development life easier. Where PowerShell really comes into it’s own is when you realise you have the full power of C# right there, unlike say with batch...

Read more

And it is made of cheese...

Since I published Part 2 of the Git Log Viewer, our process has been updated to include a PreProduction (PreProd) environment. We found that only having one testing environment and our extensive use of Feature Toggles meant that only the new features (or new implementations of existing functionality) were being tested and not the existing code.

Read more

Or how to keep your server side and client side in sync

Enums are useful for flags or for any known limited set of inputs. Using them in C# allows a measure of protection in that invalid values will be disallowed at compile time. However runtime errors can still occur anytime you have serialiation of the values, for example when receiving requests...

Read more

Git Alias FTW

Solving one problem at a time...

For the past couple of weeks the team has been experimenting with a Show and Tell meeting on Monday afternoons, to give a high-level picture of the changes each developer has made over the last week. The idea is to briefly cover any changes you have made and focus on...

Read more

Guessing is so slapdash, Maths all the way!

Each year Entelect hosts a pretty cool year-end function for all the staff. They find a venue that can accommodate the whole company and then spend lots of dosh on catering, drinks and activities. They go all out and really try make it fun day for everyone with various activies...

Read more

Git Log Viewer: Part 2

I found the centre!

Following on from a previous post, I now had the change log of my project in a JSON file. The next step is making this visible to the team via web site, specifically for our product development manager and lead QA tester.

Read more

Git Log Viewer: Part 1

Journey to the centre of the change log

First some background. Around a year ago I joined an existing project at a new client. As they had no continuous integration or deployment, we added it and implemented the versions numbering scheme as described in Using Continuous Integration to version your application.

Read more

Got to start somewhere...

I have been playing around with my domain as a basic placeholder website for about 7 years, but I have never got around to hosting anything but a plain html page. Sometimes I would put up a additional folder if I needed to host a demo, but for the most...

Read more

I started this blog for a number of reasons. I wanted a place to remember stuff (code, thoughts, random musings…) but also showcase my mad dev skillz. I wanted somewhere that was me. Facebook is just my friends, its too friendly and social. I use Twitter professionally but its’ format is too short and Yoda (Entelect employees’ blog platform) is too internal. I also wanted to build more of a brand for Me. I wanted to write a mixture of stuff but sometimes I can’t find the right platform or medium.

Read more

All your data are belong to us!

We are currently storing a large number of certificate documents in our SQL server instance, which have accumulated over the years. Our client wanted a bulk download of these certificates, and needed a once off solution. This post details the steps I used to accomplish the export, along with some...

Read more

Elevate ALL THE THINGS!

Many times in the past I have had to use my domain machine on the client’s domain. Usually the client domain credentials can just be cached by Windows when you access a server via remote desktop or use a UNC share path. However sometimes you need to run a local application using the non-local domain credentials. A possbile example would be the client has a proxy that authenticates against the domain, and you need to run your Slack desktop client with authentication for the domain.

Read more

Javascript debugging is a challenge

Knockout.js has an extension point to allow you to Customise the disposal of your bindings. However, when these callbacks are executed they are wrapped in a try…. finally.

Read more

Imagine the scenario: you have just completed entering your information into very long web form, and a notification pops up for something else. As you go to click the notification, some magical combination of your finger presses, mouse movement and silly computer behaviour causes the browser window to close, taking...

Read more

Continuous Integration (CI) is probably already part of your developer workflow to build your application and run unit tests after each check in. It may also be used to deploy your application to QA for testing, or run integration tests and code analysis. But where does versioning your software come in? Who is responsible for it? How and when is it done?

Read more

Configs per environment made easy

If you are working in a team with multiple developers, chances are you have different environment settings for things such as directory paths or database connection strings. One solution is for each dev to have a seperate configruation file (Web.config or App.config) which is not checked into source control. However this requires each dev to manually change their web.config when updates need to be applied (ie adding a new configuration setting).

Read more

Sneaky AppDomain is sneaky

The topic of this post is a general warning about writing code that you might need and not what you actually use right now. It focuses specifically on the performace of the C# XmlSerialixer, and the potential pitfalls of trying to handle all possible cases. Below is a basic Serialize...

Read more

Tracking exceptions made easy

During load testing last week, we had a situation where our Json requests were failing and the exceptions that were logged did not contain enough information. We suspected that the raw JSON payload was incorrect, as it was being generated by a Performance Testing Scripting tool, rather than the browser...

Read more