Tools we use - 2021 edition
Happy New Year! There is no denying it, last year was pretty
dour. Although I worked on this, that, and the other, my
motivation was at an all time low and I wrote virtually nothing
for this blog. On top of that, I didn't manage, or even make
progress, on any of my goals for the year.
Here is hoping 2022 is better than 2021.
Operating Systems
Tool |
Description |
Windows 10 (Virtualized) |
Testing VM (32bit and 64bit) |
Windows 10 Professional |
Development environment |
Windows 7 (Virtualized) |
Testing VM (32bit) |
Windows Home Server 2011 |
File server, SVN server, Git server, backup host, CI server. I've been thinking of replacing this with a Linux server |
Windows Vista (Virtualized) |
Testing VM (32bit) |
I did look at Windows 11 in a VM but the level of dumbing down
seems somewhat excessive. That start panel sucks, the task bar
sucks, context menus suck. My computer isn't some crappy
handheld device for consuming simple content, so how about
having an OS designed for the professional.
Tool |
Description |
DB Browser for SQLite |
GUI for working with SQLite databases |
dnSpy |
Speedy .NET assembly debugger and editor. Oddly, this has been archived for no public reason I can find |
EditorConfig |
Useful for OSS projects to avoid space-vs-tab wars or to configure code style rules. No need for an extension now as built into Visual Studio |
NDepend |
Static code analysis. I run this mostly as part of CI pipelines |
Postman Insomnia |
New for 2021 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 |
New for 2021 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 |
Baget |
New for 2021 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 |
Notepad++ |
My go to plain text editor. I tend to use Visual Studio Code now for most text formats |
Visual Studio Extensions
Tool |
Description |
CodeMaid |
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. Although I use it far less now that most of my projects are packages, it is still useful |
File Nesting |
Allows you to easily nest (or un-nest) files, great for TypeScript or T4 templates. However, as this doesn't seem to work with SDK style projects (and VS2022 for that matter), I no longer use it |
Open Command Line |
Easily open command prompts, PowerShell prompts, or other tools to your project / solution directories |
OzCode |
A once exceptional debugging aid. Things like exception predication, condition visualisation, reveal, and a data tip that doesn't suck really should be part of the core Visual Studio experience. Unfortunately, OzCode was recently bought out by Datadog and had seemingly abandoned OzCode (the extension) in favour of their production debugger regardless. As no Visual Studio 2022 version is available I can no longer recommend this extension. |
Roslynator |
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 |
T4Editor |
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 |
Visual Studio Spell Checker |
After I found one too many spelling errors in comments and GUI text. At some point I switched to the spell checker that comes with Atomineer, but there isn't a VS2022 version of this yet |
VSColorOutput |
Add colour coding to Visual Studio's Output window |
Resharper |
What is the definition of insanity? Here I am suffering with dire performance problems caused by Resharper once again |
nordic |
New for 2021 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
Tool |
Description |
Inno Setup |
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 |
Analytics
Tool |
Description |
Matomo |
I use this web based analytics software to gain anonymous insights into cyotek.com usage |
Unnamed Analytics |
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 |
Profiling
Tool |
Description |
dotTrace |
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 |
dotMemory |
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) |
Tool |
Description |
Atomineer Pro Documentation |
Automatically generate XML comment documentation in your source code (Visual Studio extension) |
HelpWrite |
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
Tool |
Description |
Jenkins |
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 |
Testing
Tool |
Description |
NCrunch |
(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! |
NUnit |
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 |
SpecFlow |
(Visual Studio Extension) I only used this for one project (my implementation of The Ray Tracer Challenge) and after I a while I really found this way of implementing tests a bit of a game changer. However, I feel that I would quickly loose my sanity if I had to write all these specifications up front and so this is still sitting in my "todo" pile to look into further |
Graphics
Tool |
Description |
Affinity Designer |
Vector editing software. I thought this would replace Inkscape but it doesn't even pretend to support open formats, open an SVG file and you can only save to a proprietary format |
Affinity Photo |
Photo editing software. I thought I would use this to complement Paint.NET but not impressed with how it tries to force you to use its proprietary format |
AngelCode BMFont |
Utility for creating bitmap fonts. We also have a library for working with BMFont files in C# |
Axialis IconWorkshop |
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 |
Cyotek Spriter |
Sprite / image map generation software that is still in sore need of optimisation and TLC |
Greenshot |
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 |
Inkscape |
Open source vector graphics editing software |
Paint.NET |
Brilliant bitmap editor with extensive plugins |
IrfanView |
New for 2021 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 |
OptiPNG |
CLI tool for reducing the size of PNG images without loosing information. I've used this for what feels like forever |
jpegtran |
New for 2021 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 |
Virtualization
Tool |
Description |
Oracle VM VirtualBox |
Virtualization software. I prefer this to Hyper-V but hopefully will be migrating to Hyper-V running on Server 2019 Core this year |
Version Control
Tool |
Description |
Git for Windows |
Git client, tools and GUI for use on Windows |
Gitea |
Self-hosting for Git repositories. An impressive piece of software |
GitHub Desktop |
Easy to use Git client that masks some of the more complicated functionality. Despite the name works with any Git repository |
GitHub |
Git hosting for our public repositories |
SourceTree |
Git client. Far more powerful than GitHub Desktop yet nowhere near as easy to use |
TortoiseSVN |
Windows Explorer integration for SVN |
VisualSVN Server |
Subversion Server for Windows |
File and Directory
Tool |
Description |
7-Zip |
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 |
FileZilla |
Simple FTP client that has served my needs for years now |
grepWin |
Another excellent tool for swiftly searching for files containing specific strings or expressions |
HxD |
Another program I've used on and off for years but omitted from this list. Useful hex editor |
TreeSize |
Find out what is using all the space on your disks. Another utility I have used for untold years. |
WinMerge |
Excellent file and directory comparison utility |
Backups
Tool |
Description |
CrashPlan |
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! A big part of the reason why I haven't upgraded our micro server to either a newer version of Windows or replaced with a Linux box |
Cyotek CopyTools |
We use this for offline backups of source code, assets and resources, documents, actually pretty much anything we generate; including backing up the backups! |
Macrium Reflect |
New for 2021 Not really new, I've been using this to create DR images of some physical machines for a few years now |
Security
Tool |
Description |
Bitwarden |
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 |
KeePass |
Offline password manager |
Let's Encrypt |
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 |
Sectigo |
Code signing certificates, and domain SSL if a particular host doesn't support Let's Encrypt |
Virus Total |
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 |
Issue Tracking
Tool |
Description |
Mantis Bug Tracker |
Open source issue tracker |
MantisSharp |
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 |
Help Desk
Tool |
Description |
Maian Support |
Basic help desk. Much easier than trying to keep track of emails |
Web Browsers, Email, Calendering
Tool |
Description |
Baïkal |
Self hosted CalDAV (calendar) and CardDAV (contacts) server |
DAVx5 |
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 |
DuckDuckGo |
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 |
Firefox |
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 recent ill advised capitulation) |
MailStore Home |
Email archiving. Also I tend to find its search interface quicker and more compact than the one in Thunderbird |
Microsoft Edge |
I liked the Trident based Edge just fine. But at least with this Chromium version I don't need to ever install Chrome again |
Thunderbird |
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 |
Other
Tool |
Description |
Calibre |
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 |
Ditto |
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! |
EarTrumpet |
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 |
f.lux |
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 |
PowerToys |
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 |
RavenDB |
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 |
Rufus |
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 |
Process Explorer |
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 |
Process Monitor |
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 |
New for 2021 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 |
QuiteRSS |
Easy to use RSS reader |
Tool |
Description |
Kodi |
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. |
foobar2000 |
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 |
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 |
What tools do you find useful? I'd love to know... maybe I'll
find a new gem myself!