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

A review of the Argon ONE Raspberry Pi 4 Case

review raspberry pi argon one 0 Comments

This is my own review using hardware I researched and bought myself. There are no affiliated links in this article.

When the Raspberry Pi was originally announced in 2012 I rapidly pre-ordered the Model B and tried my best to use it as a normal computer. Regretfully, the hardware was just not suitable - I couldn't even use it for the most basic of web-browsing, let alone any work. I tried again when the Pi 2 was released and was just as disappointed by that. With that said, 8 years later that original Model B is still in use - I have multiple Pi's running specific applications (network security, media centre, music play...

Read More

Installing Mopidy and pHAT Beat on a Raspberry Pi

linux raspberry pi mopidy phat beat 0 Comments

I've been running Mopidy for a few weeks now on a Raspberry Pi 3 Model A using a spare set of computer speakers. As I also have a spare Raspberry Pi Zero W, I decided to buy a HAT for this that would allow me to use a set of proper hi-fi speakers that were powered by the Pi instead of external power.

This article describes how to set up the Mopidy music server with selected extensions using the Pimoroni pHAT Beat. However, you could follow most of this guide to create a Mopidy music server using another model of Raspberry Pi via the built in audio chip and 3.5mm audio jack. In this case, just ignore the instructions for installing the pHAT Beat software and follow everything else.

Read More

Tools we use - 2019 edition

tools 9 Comments

Happy New Year! The past few months I've been feeling quite burned out and haven't updated this blog much - I have half a dozen half-finished blog posts and our product updates have suffered too. I didn't want to break the tradition though and fortunately the number of updates were small, so here is the 2019 list of "Tools We Use".

As far as personal goals go, 2019 was mostly a dud. I didn't resume game development, I'm still stuck with prioritising WebCopy to the detriment of everything else, and I still haven't tried anything really new. This nonsense needs to stop.

Read More

Resolving compile error "Interop type cannot be embedded. Use the applicable interface instead"

interop com 3 Comments

Recently I've been experimenting with the Microsoft Windows Image Acquisition Library (WIA), a COM library that therefore requires the use of interop in .NET. In the course of testing some of the different features of this library I triggered a compile error I haven't come across for a long time. As it isn't often I work with COM interop I thought I'd write a quick post detailing how to resolve or work around the compile errors to more firmly cement it in my head for the next time.

In older versions of .NET (or Visual Studio), when you referenced a COM library an interop DLL was generated - you could always tell these from their filenames as they would start with Interop.. I also seem to remember that back in the days of .NET 1.1 I would manually run a utility program to generate the interop DLL's, to avoid some form of naming prefix.

Read More

CanoScan LiDE 100 Windows 10 Compatibility

hardware canoscan windows-10 8 Comments

Although officially the Canon CanoScan LiDE 100 scanner is not supported on Windows 10, I have found that it is fully functional. This article describes the versions of Windows I have tested the scanner with along with any observations.

The drivers page for the Canon CanoScan LiDE 100 scanner states that the scanner is not supported in Windows 10 (either 32 or 64 bit). As far as Windows goes it is officially supported from Windows 2000 to Windows 8.1, and also on OS X 10.5 - 10.10.

Read More

Book Review: The Ray Tracer Challenge

review book testing ray-tracer 0 Comments

The Ray Tracer Challenge Book Cover

A few months ago I heard about a book named The Ray Tracer Challenge by Jamis Buck. The premise of the book is that it would teach you how to write a ray tracer from scratch. The unique approach of the book (and one I have never come across in any other book) is that it would do this via a test driven approach - the book would provide the test cases and their inputs and outputs, and you fill in the blanks in your language of choice.

Read More

Error VSP1048 when trying to instrument assembly created using Visual Studio 2019

visual studio csproj deterministic 0 Comments

In short - projects created using Visual Studio 2019 by default are compiled in a deterministic fashion, meaning if you compile the file multiple times without any changes, you will get identical output each time. Previous versions of Visual Studio used to include the compilation timestamp as part of the file header, causing the output to be different each time.

I'm not sure of the reasons why, but some of the tools provided with older versions of Visual Studio are unable to process assemblies compiled with this flag - they report them as not being valid image files and won't continue.

Read More

Creating a custom type converter part 3: Types to string

c# TypeConverter ComponentModel struct 2 Comments Downloads

I have discussed creating type converters a few times on this blog, and recently came across another use for them. I have a .NET Standard library that uses a variety of struct instances that are sometimes properties of concrete classes. I also have a .NET Framework 4.7.2 demonstration application to work with the library that uses the PropertyGrid control to provide easy editing facilities.

Note: While in this article I'm talking about using type converters purely in relation for use with the PropertyGrid control, this isn't their only purpose (just as well otherwise they wouldn't be a part of .NET Standard I assume). You can learn more about the TypeConverter class on MSDN.

Read More

Setting tab stops in a Windows Forms TextBox control

c# winforms SendMessage pinvoke textbox EM_SETTABSTOPS 2 Comments Downloads

I was adding a Wizard to one of my applications, and the final screen of this Wizard was a summary of the user's choices. I wanted the user to be able to copy this to the Clipboard if required, and so I'd used a TextBox rather than the ListView I might have otherwise used. However, this presented a minor issue as I'd chosen to use tabs to delimit the information, and the varying length of text meant that this wasn't aligned as expected.

Previously I have "dealt" with this issue by cheating - I'd just add extra tabs to force everything to line up. However, I do plan on fully localising this application at some point, not to mention that even using a different font could potentially trigger the text to misalign once more. And so I decided to do it properly this time.

Read More

Changes to CrashPlan for Small Business that may affect developer backups

CrashPlan Code42 3 Comments

This morning I received the following email from Code42 regarding their CrashPlan for Small Business service

Dear Valued Customer,

Read More