Oh look, here were are with the traditional new years post one
month after the new year started. So clearly I don't have my
publishing mojo back yet. When I look back over the last years
drafts I see two partially written blog posts, one a review of
Crafting Interpreters (tldr; Go Buy It!)
and another of the Synology DS1821+ NAS (tldr; it's not bad!)
and that is it.
The main change this year is almost fully retiring multiple
Windows micro servers, supplanted by Docker containers running
on a Synology NAS. I thought hell would freeze over before I did
something like this.
|Secondary development environment. (Still) Not a fan.
|Windows 10 (Virtualized)
|Testing VM (32bit and 64bit)
|Windows 10 Professional
|Windows 7 (Virtualized)
|Testing VM (32bit)
|Windows Home Server 2011
File server, SVN server, Git server, backup host, CI server. Recently I bought a Synology NAS and with the exception of CrashPlan, have pretty much retired these micro servers. While I'm not exactly thrilled with Synology's "almost" walled garden, it is far better than my previous attempts to DIY this via non-Windows solutions.
|Windows Vista (Virtualized)
|Testing VM (32bit)
|DB Browser for SQLite
|GUI for working with SQLite databases
|A bunch of different developer tools, such as Base64 encoding/decoding and hash generation
|Speedy .NET assembly debugger and editor. Oddly, this has been archived for no public reason I can find
|Static code analysis. I run this mostly as part of CI pipelines
|Client for testing REST services. I switched to Insomnia over Postman as the latter doesn't work without an account and I'm little tired of having scores of accounts with scores of services for no actual benefit to me as the end user
|Visual Studio 2022
|Although I use Visual Studio Code more and more, Visual Studio 2022 remains my IDE of choice
|Visual Studio Code
|Wonderful editor, once you install enough extensions to configure it "your way". I use it for most non-.NET tasks, such as PHP or editing markdown. Workspaces that can include multiple folders are incredibly useful
|I've been using NuGet.Server for some years for internal NuGet package management, but that tool is long in the tooth and somewhat limited in functionality. Baget is a much more modern (and functional!) alternative
|My go to plain text editor. I tend to use Visual Studio Code now for most text formats.
Visual Studio Extensions
|Code formatting and organising. Lets be fair to ReSharper, there's nothing else available which does a better job, but CodeMaid is an acceptable substitute
Cyotek Add Projects |A simple extension for easily adding multiple projects to your solutions. As I converted all my common projects to packages years ago, my need for this extension has fully evaporated
|Open Command Line
|Easily open command prompts, PowerShell prompts, or other tools to your project / solution directories
|C# code analyzers, refactoring and fixes. I use this to replace some of the more critical functionality I previously enjoyed in ReSharper. Not using in VS2022 at the moment as I went back to the dark side
|I use this as a replacement for the ReSharper ForTea extension and I'm quite happy with it - it does a great job of showing me the T4 specific aspects of my templates. And even here in 2023 I still use T4 over source generators.
|Add colour coding to Visual Studio's Output window
|What is the definition of insanity? Here I am suffering with dire performance problems caused by Resharper once again. Although I really wish JetBrains would focus more on fixing the performance issues their software has caused for years, instead of jumping on the AI bandwagon. Or maybe their AI will be the one fixing the problems they seemingly can't.
|When I need a dark mode theme, I tend to use something like Nord. This extension themes Visual Studio to use a more nord-esque colour scheme
Installation and Deployment
|Installer with a wealth of features
|Inno Script Studio
|IDE for working with Inno Setup scripts
|Inno Setup Unpacker
|Unpacks installations created with Inno Setup. I use this as part of the CI process to perform dependency checking
|Package manager for Windows, similar to apt except with less features and way less packages. I started using these for setting up fresh environments instead of complicated homebrew PowerShell scripts. It is a shame that more software isn't available via this, and some that is isn't fully compatible with it.
|I use this web based analytics software to gain anonymous insights into cyotek.com usage
|After dropping Luminitix, I replaced the data collection with a home grown solution, although I've yet to write a front end to look at the data effectively
|Although I prefer the ANTS profiler, dotTrace is a very usable profiler and given it is included in my ReSharper Ultimate subscription, it's a no-brainer to use
|As with dotTrace it is probably time to explore alternatives if I let the ReSharper subscription lapse (yet another reason why perpetual licenses are better than the modern trend of renting software)
|Atomineer Pro Documentation
|Automatically generate XML comment documentation in your source code (Visual Studio extension)
|The first application offered by Ariad in the mists of time, now reincarnated and producing no-frills documentation from simple markdown and YAML
|Continuous integration that is easy to install, doesn't need a database server and has a rich plugin ecosystem, even for .NET developers. I use this to build, test and deploy all our products and libraries
|(Visual Studio Extension) Frequently updated automated parallel continuous testing tool (there's a mouthful). Works with NUnit, MSTest, SpecFlow and a variety of other test systems. This is by far the best continuous testing tool on the market in my humble opinion. Buy it!
|Our test framework of choice, for no particular reason other than it was the first one we tried after getting fed up of MSTest's limitations
|Vector editing software
|Photo editing software. Don't use this often as Paint.NET starts faster, but again, Serif offers perpetual licenses and thus they are worthy of my money.
|Utility for creating bitmap fonts. We also have a library for working with BMFont files in C#
|Very nice icon editor, I have been using this for untold years now since Microangelo was abandoned. However, it itself hasn't seen any updates for some years now
|Cyotek GIF Animator
|GIF animation creator that was shaping up nicely, although it is another application I really want to spend more time improving
|Sprite / image map generation software that is still in sore need of optimisation and TLC
|Screenshot capturing utility. Another wheel I almost reinvented but this is nice software that fits the bill. Release hasn't been updated for years even though the source repository is rife with activity
|Open source vector graphics editing software
|Brilliant bitmap editor with extensive plugins
|I use this for quickly browsing photographs - it's also useful for viewing EXIF data. It's much more than a simple image viewer, but that's only what I've used it for so far
|CLI tool for reducing the size of PNG images without loosing information. I've used this for what feels like forever
|CLI tool for reducing the size of JPEG images without sacrificing quality. Most of the images I publish are PNG so I haven't use this tool much yet but seems positive thus far
|New for 2023 I have a number of audio cassettes, some of which haven't been played for nearly 40 years - I thought it might be a good idea to digitally archive these, with the aid of Audacity and a USB tape cassette. I also have a small pile of equally elder LP's and singles to hopefully get the archive treatment this year.
|Oracle VM VirtualBox
|Virtualization software. I prefer this to Hyper-V but when I finally stop procrastinating and finish the server 2019 Core rebuild I'll be reluctantly switching to that, unless I try ProxMox
|New for 2023 I use this on a NAS which has replaced virtually all of what I used several Windows micro servers for
|Git for Windows
|Git client, tools and GUI for use on Windows
|Self-hosting for Git repositories. An impressive piece of software. I use this for our internal projects
|Git hosting for our public repositories
|Git client. I liked this so much I paid for a lifetime perpetual license. Yes, that's right, there are some companies not screwing their customers over with bullshit subscription models for offline software.
|Windows Explorer integration for SVN
VisualSVN Server |Subversion Server for Windows. While new projects use Git, all legacy code is in SVN and at this point I don't have plans to migrate the entire mono-repository. After many, many years, now replaced by svnserve running in a Docker container.
File and Directory
|I've mentioned before on this blog that I used to love WinZip, until it turned into a bloated mess several years back. Since then, I have used 7-Zip for all my archiving needs
|New for 2023 Plugin for 7-Zip that adds the ability to decompress ZStd. Phew.
|Simple FTP client that has served my needs for years now
|Another excellent tool for swiftly searching for files containing specific strings or expressions
|Another program I've used on and off for years but omitted from this list. Useful hex editor
|Find out what is using all the space on your disks. Another utility I have used for untold years.
|Excellent file and directory comparison utility
WinRar |Archiver. I started using this after Plesk changed their databases backups to create zip files that use ZStd compression which 7-Zip doesn't support. WinRar was one of the few tools I tested (the other being WinZip, no thanks) that could extract files from these zips. After all, a backup isn't a backup unless you can restore! After apparently being one of the few people who actually buy a licence for WinRar, I stopped using it after discovering Modern7z
|New for 2023 I tried this on a whim and was absolutely blown away by its speed. It is no different to most other tools when scanning UNC shares, but when scanning local it is the faster than anything else I've seen. I've been using TreeSize for more years than I could count, but after buying a license for WizTree, I don't think I'll have much use for TreeSize
|CrashPlan creates an online backup of the different offline backups that CopyTools does. If you've ever lost a hard-disk before with critical data on it that's nowhere else, you'll have backups squirrelled away everywhere too! Doesn't support docker, so this one is one the seeking-to-replace list.
|We use this for offline backups of source code, assets and resources, documents, actually pretty much anything we generate; including backing up the backups!
|Used to create DR images of some physical machines
|New for 2023 Via the Cloud Sync application on my Synology NAS I back up some critical documents to S3. However, I still rely on CrashPlan for the multiple-TB backups as they are cost prohibitive in S3.
|New for 2023 Via the Hyper Backup and Cloud Sync applications on my Synology NAS I back up some critical documents to Backblaze. Like S3, it is cost prohibitive to have my large backups here.
|Password manager with a variety of clients. Syncs data
|Dan Pollock's Hosts File
|A hosts file blocks your computer from connecting to many thousands of dubious internet hosts and is continuously updated. A pain to update, but useful if you don't have access to something better
|Offline password manager
|Short term SSL certificates for free. If you (or your host) are able to automate the process, this is an exceptional way to get basic SSL for your sites
|Code signing certificates, and domain SSL if a particular host doesn't support Let's Encrypt. 2024 marks the first year having to use hardware token and while it is probably more secure, it is almost maliciously developer unfriendly.
|Analyze files for malware. It is a helpful tool, except for when you find that one given engine will flag all your submissions as malicious and then when that finally clears up another one decides to join in the "fun" instead
|Mantis Bug Tracker
|Open source issue tracker
|I use our MantisSharp library to add integration between various applications and our MantisBT instance, notable for raising new issues from our automated error monitor, and for creating road-maps on cyotek.com product pages although as usual I haven't had much time to maintain it
|Basic help desk. Much easier than trying to keep track of emails
Web Browsers, Email, Calendering
|Self hosted CalDAV (calendar) and CardDAV (contacts) server
|Two way sync for CalDAV data. I use this on my Android (RIP Windows Phone) phone to sync my calendar with my Baïkal instance
|The search engine that doesn't track you - I can't remember when I made the switch to DuckDuckGo as it was several years ago, but it does a great job and I rarely have to fall back to "another" search engine
|Last bastion from a Chromium world. I switched to this as my primary browser in 2018 as my own protest against Chrome's dominance (and don't get me started on Microsoft's ill advised capitulation)
|Email archiving. Also I tend to find its search interface quicker and more compact than the one in Thunderbird
|I liked the Trident based Edge just fine and wish they had simply decoupled it from the OS and kept it updated. But at least with this Chromium version I don't need to ever install Chrome again. Of course, Microsoft being Microsoft they are pushing more and more bloat into it, and thanks to idiotic Brexit, some of the European decisions to curtail them don't apply.
|Email client. A bit rough around the edges but preferable to Outlook and lets me store emails in maildir format, as well as natively supporting CalDAV and CardDAV
|I was resurrecting a tool from 2002, and decided that its documentation needed screenshots. I stopped doing these years ago because of the pain in updating them, but AutoHotkey is impressively powerful and I was able to use it to write a script that would run the application to set up scenarios and then capture screenshots.
|Ebook management. Although I still prefer paper books, I don't buy them as often as I did. I tend to read on e-ink devices and Calibre makes it simple to update these. It works with my Kindle, my Nooks, and now my PocketBooks
|Clipboard manager. Another extremely useful piece of software that I have used for many, many years. Now on the Windows Store which means silent updates... wonderful!
|Per-application volume manager. I can't remember exactly when I started using this, probably for a game that didn't have built in volume controls but did have obnoxious levels
|I've been using this utterly fantastic software for years. It adapts your monitor to the time of day, removing blue light as evening approaches and helps reduce eye strain when coding at night
|Although nothing like the old Win9x PowerToys, there is at least something useful in this new bag. I have an ultra-wide monitor and I use Fancy Zones to virtually break it up into 3 columns. As it works with the core Win+Arrow hotkeys it makes for a pretty decent window manager
|Still not using this for much as I can't seem to effectively query the data from Raven Studio, and at heart I still think NoSQL is a fad. Transitioned some data back to SQL Server, the rest to follow
|I use this utility for writing ISO images to USB or SD cards, useful for setting up new physical machines in an age where CD drives are fairly obsolete
|Win32 Disk Imager
|Useful for burning ISO images to SD cards, although I now prefer Rufus for that. It is also massively useful for creating (and restoring) images of SD cards, so I use it to backup my assorted Raspberry Pi devices before major updates
|Remote Desktop Connection Manager
|A valuable tool if you need to remote into one than one server as you can create multiple profiles and groups, use setting inheritance and more
|Another tool I've used for umpteen years, ProcessExplorer is great for viewing information about running processes. I mostly use this to find what process is locking a given file and closing these handles - this is built into PowerToys these days but I still find myself using Process Explorer first and foremost
|I don't often use this tool, but when I need it is very valuable as it lets me trace any file or registry access
|Wake On Lan
|Some of my old generation micro-servers don't run 24/7, and being able to remotely start them (they don't have ILO) is pleasant. This software is a little buggy but it gets the job done for the most part and that is all I need
|Easy to use RSS reader
|This used to be my go to music player before switching to an external Raspberry Pi based solution. However, I still keep foobar2000 hanging around for ripping music CDs
|I've used this for years now to watch video on various generations of Raspberry Pi. I found the Films and TV (or Movies and TV) application that ships with Windows 10 to be absolute rubbish and was very glad when Kodi became available on the Microsoft Store
|Mopidy / Iris
|Music player. I have this software installed on a Raspberry Pi Zero with a pHAT BEAT for playing music.
|VLC media player
|Media player. I rarely use this as an actual player, it is mainly to double check tracks on DVDs when there is an ambiguity with which one(s) to rip
Third Party APIs
A new category for 2024 as a tool doesn't just have to be
something on a desktop. Within reason.
|I use this for currency conversions in a web application
|I suppose the clue is in the name, but I use this to try and stem the flood of garbage posted to my web sites
|Another API integration to try and block spam
A new category for 2024 as I dip my feet into the world of
|A lightweight SVN server
|Official Gitea container for hosting Git repositories
|Official Jenkins container for my CI/CD fix
|Official RavenDB container to tide me over while I decide if I'm scapping RavenDB or not. I've only been deciding for 3 or 4 years now.
|Official Baget container. This software is starting to get frustratingly long in the tooth
A new category for 2023, but I thought I would include some of
the hardware we use. Not entirely sure how much of a point there
is to this, so I may drop it... I don't see the point of listing
CPU's etc (and besides, most of our equipment has ancient
processors and GPU's!)
|Black and white laser printer, A4 scanner, A4 ADF scanner
|Overpriced ink? Subscriptions for said overpriced ink? Ink cartridge DRM? All reasons why I'll never again use HP printers. This laser supports duplex printing and an automated document feeder - and take it from me, if you've spent days scanning hundreds of pieces of paper on a flatbed scanner, you will rate ADFs as much as I do!
|CanoScan LiDE 100
|A4 flatbed scanner
|I don't really use this much any more, except to test that it still works on newer versions of Windows, but with that said - it is still a perfectly functional unit I wouldn't hesitate to use
|CanoScan LiDE 220
|A4 flatbed scanner
|Although I wanted a LiDE 400, it seems to be out of stock since forever, so I use this in the interim. It's a nice little device.
|Microsoft Bluetooth Ergonomic Mouse
|For more than a decade I've used a Razor DeathAdder, but I tried this mouse recently and switched to it. One of the nice little extras is has is the ability to sync with 3 different devices, so I have it tuned to my desktop PC, a ThinkPad laptop and also a Surface Pro 6
|Microsoft Sculpt Ergonomic Desktop
|Like the DeathAdder, I've used the Comfort Curve 2000 and Comfort 4000 keyboards for more than a decade, but I recently decided to give this a try. It took a little while to get used to the changed right hand layout, but I really like this keyboard
|Plustek OpticSlim 1180
|A3 flatbed scanner
|I rarely use this, unless I'm scanning content bigger than A4. It is slow, noisy and the colour reproduction is abysmal so the scanned content doesn't look accurate. However, it is affordable. Next time I need a A3 scanner though, I'll save the pennies and get something with a CCD sensor
|Surface Arc Mouse
|Not the most comfortable of mice, but it folds flat which is great for travelling - I use this with my Surface Pro 6. One interesting feature of this mouse is the buttons seem more like a trackpad than mouse buttons, so you can do gestures for scrolling
|New for 2023 I finally decided to splash some cash on something modern instead of buying obsolete second hand equipment or trying to DIY with inferior hardware. While I'm not too enthused with some of the walled garden aspects (branded "compatible" memory cost a small fortune over the exact same unbranded chips) and find the software a bit limited in some respects, I am really happy with this purchase
|Seagate Exos X16 Hard Drives
|New for 2023 I ended up buying 8 of these 16TB drives for use in the above NAS, 6 in a RAID 6 configuration for a total capacity of of 58TB, with two as hot spares.
|PocketBook InkPad Lite
|New for 2023 Most of my reading is done on either an older generation of Kindle PaperWhite, or an even older Nook Glow. I don't use Amazon's DRM entrenched ecosystem, but the device is nice. However, I have a lot of technical books which I find to be folly trying to read on a 6" device. I wanted something larger, but am not interested in being locked in the eco systems of some of the other big name players. I bought a InkPad Lite, a 9.7" device, to test with and it is surprisingly good, while also being surprisingly cheap. And I don't need to register an account to use it - so far, I like a lot!
A new category for 2024, whatever appears here will be transient
from year to year and present programs I used, but only for a
|I bought myself the heavy slab paperback of Crafting Interpreters and spend several happy hours reading and implementing it. When it came to the latter half of the book using C for the implementation, I used Code::Blocks as my IDE for a while. While it worked, it had some annoyances and niggles, and eventually I discovered that Visual Studio 2022 actually supported C quite nicely, despite its C++ monikers at which point I eventually stopped using it. So here it is as the first Honourable Mention!
What tools do you find useful? I'd love to know... maybe I'll
find a new gem myself!
Like what you're reading? Perhaps you like to buy us a coffee?