Tools we use - 2014 edition
Following on from last years post, I'll list again what I'm using and seeing what (if anything) has changed.tl;dr; - it's pretty much the same as last yearOperating SystemsWindows Home Server 2011 -...
View ArticleHosting a ColorGrid control in a ToolStrip
The ColorGrid control is a fairly useful control for selecting from a predefined list of colours. However, it can take up quite a bit of screen real estate depending on how many colours it contains....
View ArticleEssential Algorithms - A Book Review
This post is a review (or possibly some long winded rambling) of the book Essential Algorithms: A Practical Approach to Computer Algorithms by Rod Stephens and published by Wiley.Disclaimer: I received...
View ArticleColorEcho - adding colour to echoed batch text
We use batch files for... well, pretty much everything. From simple files that simple optimize modified graphics, to the tendril-like files that build our software. For some time now, I've been using...
View ArticleQuick and simple sprite sheet packer source
For some time now, I've started moving away from monolithic and complex GUI tools in favour of more streamlined command line interfaces, generally using text based inputs like JSON or YAML.While there...
View ArticleAn introduction to dithering images
When you reduce the number of colours in an image, it's often hard to get a 1:1 match, and so typically you can expect to see banding in an image - areas of unbroken solid colours where once multiple...
View ArticleDithering an image using the Floyd‑Steinberg algorithm in C#
In my previous introductory post, I briefly described the concept of dithering an image. In this article, I will describe how to dither an image in C# using the Floyd–Steinberg algorithm.The Demo...
View ArticleDithering an image using the Burkes algorithm in C#
In my previous post, I described how to dither an image in C# using the Floyd‑Steinberg algorithm. Continuing this theme, this post will cover the Burkes algorithm.I will be using the same...
View ArticleEven more algorithms for dithering images using C#
Although I should really be working on adding the dithering algorithms into Gif Animator, I thought it would be useful to expand the repertoire of algorithms available for use with it and the other...
View ArticleA brief look at code analysis with NDepend
If you're a developer, you're probably familiar with various tenets of your craft, such as "naming things is hard" and "every non trivial program has at least one bug". The latter example is one of the...
View ArticleSending SMS messages with Twilio
Last week I attended the NEBytes technology user group for the first time. Despite the fact I didn't actually say more than two words (speaking to a real live human is only marginally easier than...
View ArticleWorking around System.ArgumentException: Only TrueType fonts are supported....
One of the exceptions I see with a reasonable frequency (usually in Gif Animator) is Only TrueType fonts are supported. This is not a TrueType font.System.ArgumentException: Only TrueType fonts are...
View ArticleTargeting multiple versions of the .NET Framework from the same project
The new exception management library I've been working on was originally targeted for .NET 4.6, changing to .NET 4.5.2 when I found that Azure websites don't support 4.6 yet. Regardless of 4.5 or 4.6,...
View ArticleWorking around "Cannot use JSX unless the '--jsx' flag is provided." using...
I've been using the utterly awesome ReactJS for a few weeks now. At the same time I started using React, I also switched to using TypeScript to work with JavaScript, due to it's type safety and less...
View ArticleReading Adobe Swatch Exchange (ase) files using C#
Previously I wrote how to read and write files using the Photoshop Color Swatch file format. In this article mini-series, I'm now going to take a belated look at Adobe's Swatch Exchange file format and...
View ArticleWriting Adobe Swatch Exchange (ase) files using C#
In my last post, I described how to read Adobe Swatch Exchange files using C#. Now I'm going to update that sample program to save ase files as well as load them.Writing big endian valuesI covered the...
View ArticleRotating an array using C#
I've recently been working on a number of small test programs for the different sections which make up a game I'm planning on writing. One of these test systems involved a series of polyominoes which I...
View ArticleTools we use - 2015 edition
Happy New Year! It's almost becoming a tradition now to list all of the development tools and bits that I've been using over the past year, to see how things are changing. 2015 wasn't the best of years...
View ArticleReading and writing farbfeld images using C#
Normally when I load textures in OpenGL, I have a PNG file which I load into a System.Drawing.Bitmap and from there I pull out the bytes and pass to glTexImage2D. It works, but seems a bit silly having...
View ArticleGenerating code using T4 templates
Recently I was updating a library that contains two keyed collection classes. These collections aren't the usual run-of-the-mill collections as they need to be able to support duplicate keys. Normally...
View Article