This is a preview version of Cyotek's blog and may be missing functionality and/or unstable. Please visit for the current version of the blog.
If you encounter any problems using this preview site, please contact us with the details.

Loading Microsoft RIFF Palette (pal) files with C#

c# color palette riff 0 Comments Downloads

At the start of 2014, I published an article describing how to read colour palettes from BBM/LBM files. At the end of that article I noted that Microsoft palette files used a similar format, but I didn't investigate that at the time. Since then I followed up with articles on reading and writing Adobe's Color Swatch and Color Exchange format files and I also posted code for working with JASC, Gimp and a couple of other palette formats.

Now, finally, I decided to complete the collection and present an article on reading Microsoft's palette files. These files are RIFF forms containing colour data, similar to a BBM palette being an IIF form.

Read More

Integrating NDepend with Jenkins Freestyle Jobs

ndepend jenkins build freestyle 0 Comments

Previously, I've described on this blog how to do a basic integration of NDepend with Jenkins pipeline jobs. The disadvantages of the previous post was it was essentially part of a series tailored to our build process and so not easy to view as a stand-alone article and it only covered pipelines.

As I result, I've added this complementary post to cover how to perform the same level of integration with a freestyle project. I don't normally like duplicating content on this blog but I think this version is easier to read, not to mention the post I did have planned for this week is delayed due to stubborn mathematical issues.

Read More

Adjusting the Jenkins Content Security Policy

security jenkins content-security-policy csp 0 Comments

One of the security features of Jenkins is to send Content Security Policy (CSP) headers which describes how certain resources can behave. The default policy blocks pretty much everything - no JavaScript, inline CSS, or even CSS from external websites. This can cause problems with content added to Jenkins via build processes, typically using the HTML Publisher Plugin.

While turning this policy off completely is not recommended it can be beneficial to adjust the policy to be less restrictive, allowing the user of external reports without compromising security.

Read More

Integrating NDepend with Jenkins

ndepend jenkins pipeline build 0 Comments Downloads

Apparently it's National Jenkins Month here at Cyotek as we seem to be writing about it quite a lot recently. Previously I explained how I got fed up of manually building and publishing Nuget package projects, and got our Jenkins CI server to build and publish them for me.

This got me thinking - some time ago I received a license for NDepend and even wrote a post briefly covering some of its features.

Read More

Using parameters with Jenkins pipeline builds

jenkins nuget pipeline build 0 Comments Downloads

After my first experiment in building and publishing our Nuget packages using Jenkins, I wasn't actually anticipating writing a follow up post. As it transpires however, I was unhappy with the level of duplication - at the moment I have 19 packages for our internal libraries, and there are around 70 other non-product libraries that could be turned into packages. I don't really want 90+ copies of that script!

As I did mention originally, Jenkins does recommend that the build script is placed into source control, so I started looking at doing that. I wanted to have a single version that was capable of handling different configurations that some projects have and that would receive any required parameters directly from the Jenkins job.

Read More

Using a Jenkins Pipeline to build and publish Nuget packages

jenkins nuget pipeline build 0 Comments Downloads

I've mentioned elsewhere on this blog that our core products are built using standard batch files, which are part of the products source so they can be either build manually or from Jenkins. Over the last year I've been gradually converting our internal libraries onto Nuget packages, hosted on private servers. These packages are also built with a simple batch file, although they currently aren't part of the CI processes and also usually need editing before they can be ran again.

After recently discovering that my StartSSL code signing certificate was utterly useless, I spent the better part of a day rebuilding and publishing all the different packages with a new non-crippled certificate. After that work was done, I decided it was high time I built the packages using the CI server.

Read More

Finding nearest colors using Euclidean distance

c# color algorithm euclidean 1 Comments Downloads

I've recently been updating our series on dithering to include ordered dithering. However, in order to fully demonstrate this I also updated the sample to include basic color quantizing with a fixed palette.

While color reduction and dithering are related, I didn't want to cover both topics in a single blog post, so here we are with a first post on finding the nearest color via Euclidean distance, and I'll follow up in another post on ordered dithering.

Read More

StartSSL code signing certificates are crippled

security code signing authenticode 0 Comments

TL;DR: StartSSL code signing certificates are crippled and your binaries no longer trusted once they have expired, even if they have been counter signed.

Two years ago I purchase a code signing certificate from StartSSL which was extremely smooth - I originally documented the process in a blog post.

Read More

Tools we use - 2016 edition

tools 0 Comments

Happy New Year! Once again it's that time for the list of software products I use throughout the year. Not much change again overall, but given what I see happening in the web developer world when even your package manager needs a package manager I find the stability refreshing.

Read More

FTP Server Easter Eggs

easter egg 0 Comments

I've recently being working on integrating FTP into our CopyTools application. As a result of this, I have been staring at quite a lot at FTP logs as the various tests and processes do their work.

This morning I was running the CopyTools GUI client watching the progress bar climb upwards as I was putting the support through it's final paces. At the same time, the output from the FTP commands were being printed to the debug log. I was idly watching that too, when all of a sudden the following entries appeared

Read More