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.
I did make a start replacing this creaky website with some
ASP.NET Core goodness though - the preview version of the
dev blog running on .NET Core can be found at
https://devblog.cyotek.com/. It still needs some layout
work and some missing RSS features but otherwise is mostly
complete and will hopefully be made "live" early this year.
Operating Systems
- Windows Home Server 2011 - file server, SVN repository,
backup host, CI server - If it ain't broke, don't fix it
- Windows 10 Professional - development machines
Windows 10 (virtualized) - I tried using a pair of
32bit and 64bit Windows 10 VMs for software testing but the
performance is so dire I gave up
- Windows 7 (virtualized) - testing
- Postman is a absolutely
brilliant client for testing REST services
- Visual Studio 2019 - The performance improvements made
to Visual Studio 2019 are quite staggering
- New! Visual Studio Code - a frankly amazing
editor / IDE. I use it for most non-.NET tasks, such as PHP
or editing markdown. Workspaces that can include multiple
folders are incredibly useful. A great tool, once you install
enough extensions to configure it "your way"
- New! dnSpy - speedy .NET assembly debugger and editor
DotPeek - this program is just too slow to start
so I replaced it with dnSpy
- NDepend - static code analysis. I have quite a love /
hate relationship with this application; so much so that I
barely use the user interface at all and rely on reports
published to Jenkins as part of a common build pipeline
Visual Studio Extensions
- OzCode - an 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
- 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 and I recently updated it to support Visual
Studio 2019
- EditorConfig - useful for OSS projects to avoid
space-vs-tab wars or to configure code style rules
- File Nesting - allows you to easily nest (or un-nest!)
files, great for TypeScript or T4 templates
- Open Command Line - easily open command prompts,
PowerShell prompts, or other tools to your project /
solution directories
- VSColorOutput - add colour coding to Visual Studio's
Output window
Indent Guides - easily see where you are in nested
code. I forgot to install this when I switched to
VS2019 and didn't miss it... maybe I'm writing more
readable code now!
ReSharper 2019 was the year I gave up on
JetBrains ever doing something about the performance issues
that ReSharper causes. When I moved to VS2019 I deliberately
chose not to install it and while there are many things about
it I miss, an IDE that runs faster than the human controlling
is worth more
- NCrunch for Visual Studio - 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
- New! SpecFlow - 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.
- New! Roslynator 2019 - C# code analyzers,
refactoring and fixes. I use this to replace some of the more
critical functionality I previously enjoyed in ReSharper
- New! Visual Studio Spell Checker - after I
found one too many spelling errors in comments and GUI text
- New! 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
- New! T4Editor - T4 template editor implements.
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
Analytics
- Unnamed Analytics. After dropping Luminitix, I replaced the
data collection with a home grown solution using RavenDB,
although I've yet to write a front end to look at the data
effectively
- Matomo - currently trialling this web based analytics
software to gain anonymous insights into cyotek.com usage
Profiling
- 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 - .NET memory profiler. 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)
- HelpWrite - the first application offered by Ariad in the
mists of time, now reincarnated and producing no-frills
documentation from simple markdown and YAML
- Atomineer Pro Documentation - automatically generate
XML comment documentation in your source code (Visual
Studio extension)
MarkdownEdit - a no frills minimalist markdown
editor. Thoroughly replaced by Visual Studio Code
- Notepad++ - a excellent text editor
Continuous Integration
- Jenkins + Jenkins Material Theme 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
- NUnit is 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
- Paint.NET - brilliant bitmap editor with extensive
plugins
- Axialis IconWorkshop - very nice icon editor, I have
been using this for untold years now since Microangelo was
abandoned
- Cyotek Spriter - sprite / image map generation software
that is still in sore need of optimisation and TLC
- Cyotek Gif Animator - gif animation creator that was
shaping up nicely, although it is another application I really
want to spend more time improving
- AngelCode BMFont - although I haven't had a chance to
continue with game development for some years now
(something else I'd like to change in
2019 2020), for bitmap font
creation I use BMFont along with our own parser
Virtualization
Version Control
- TortoiseSVN - Windows Explorer integration for SVN
- VisualSVN - Subversion support for Visual Studio. Unlike
AnhkSVN, VisualSVN uses TortoiseSVN under the hood, meaning
that Explorer and Visual Studio are always in the same state
no matter where I commit from, something which used to
frustrate me no end with AnhkSVN
- VisualSVN Server - Subversion Server for Windows
- GitHub / GitHub Desktop - for providing and
working with the open source code we publish
- New! Gitea - self hosted GitHub clone. As
I'm trying to switch from SVN to Git, some new projects
are now using Git, with Gitea as the origin.
- WinMerge - excellent file or directory comparison
utility
- grepWin - another excellent tool for swiftly searching
directories for files containing specific strings or
expressions
- FileZilla - simple FTP client that has served my needs
for years now
Backups
- 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!
- 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!
Security
- Comodo - code signing certificates, and domain SSL if
a particular host doesn't support Let's Encrypt
- Let's Encrypt provide 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
- Dan Pollocks hosts file blocks your computer from
connecting to many thousands of dubious internet hosts and is
continuously updated
- New! VirusTotal - analyze files for malware.
This isn't new per-se as I have been using this in our build
processes for some time now but I forgot to mention it
earlier. 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
- New! KeePass Password Safe / BitWarden
I finally switched from LastPass and use both of these
programs for different purposes
Issue Tracking
- 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
CMS
Kirby - although cyotek.com uses a custom home
built CMS, I had been looking a Kirby as an alternative for
some aspects such as the Knowledge Base Again I chose
to use a home built solution, this time using .NET Core
Help Desk
- Maian Support - instead of trying to keep track of
emails, I've been using the commercial version of Maian
support to manage user support requests and feedback
submissions
Other
- 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
- 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
- Rufus - I use this utility for writing ISO images to
USB, 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 which I do for Raspberry Pi distributions. I used to
use this for USB as well but now I prefer Rufus for that
- 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
- Firefox - 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)
- 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
- Calibre - ebook management. Although I still prefer
paper books, I don't buy them often. I tend to read on e-ink
devices and Calibre makes it simple to update these
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?
# Andy Carrein
# Richard Moss
# John
# Richard Moss
# Johan Eriksson
# Richard Moss
# Ted
# Richard Moss
# Tim Maes
# Richard Moss