I haven’t been blogging much lately, because all I wanna do is write some code. My work assignments are engaging enough that I’m still thinking about them when I’m not at work, and I’ve got at least three personal projects I’d love to work on, not the least of which is finally shipping version 2 of Facility. But more important life things have a way of crowding out extracurricular coding time.
My email inbox has been a little less crowded since I started using Octobox. It presents all of my GitHub notifications in a handy user interface, making it easy to browse what’s new and archive it all when I’m done. I turned off my email notifications when I started using it, so I just have to remember to visit the Octobox website every so often to catch up.
I’m pretty excited about the upcoming Windows Terminal. The standard Windows command prompt is pretty terrible, so I’ve been using ConEmu, but I would love an official tabbed console that I don’t have to install. I’m not so excited that I’m going to build it from the source code, but I will gladly install the first preview that ships to the Microsoft Store. (I’m also eager to use it with the new Windows Subsystem for Linux that will be released this summer!)
I read and write code in a proportionally-spaced font rather than a fixed-width font whenever possible. I find that it reads more naturally and I like seeing more code per line. Fixed-width fonts are necessary for vertical alignment; fortunately for me, I dislike vertical alignment anywhere but indentation (it’s a pain to maintain and I don’t personally find that it usually makes the code easier to read). In Visual Studio I use Verdana 8pt (and the more compressed Tahoma 8pt for tool windows). Visual Studio Code doesn’t display it as crisply, so I use Verdana 13px there. When I must use a fixed-width font, I prefer Consolas.
One of my pet peeves with user interface implementations is showing zero results while loading. Basically, when user interface is first loading, or while the app is working on a requested operation, we should be careful to not give the impression that there are zero search results, or that they have no data, or that the operation failed, etc. Sometimes the operation takes a while, sometimes the browser is slow, et cetera, and we should not mislead the user while they wait. I understand why it’s often easier to write the code that way, and we might not even be able to see the misleading user interface on our fast development machines with high speed Internet connections, but we should take the time to get it right and avoid unnecessarily confusing or panicking the user.
My blog is a perfect place to admit that I prefer tabs, not spaces. The tab character is designed for indentation and avoids the possibility of partial indentation. Modern text editors correct for most of the issues with using spaces as indentation, so I’m honestly happy to adopt whatever standard my team prefers, but for my own code, I still love my tabs.
Today I struggled a bit trying to use a GitHub personal access token to push a commit to a GitHub Enterprise repository. I managed to get it to work right before I left for the day, which is always nice.
Microsoft recently shipped the latest version of Visual Studio and I’m looking forward to installing it. I suspect I’ve used every version of Visual Studio since the first, and Visual C++ before that, though my memory gets fuzzy going that far back. I’ve always been impressed at how well Microsoft has served its developers over the years, and I’m especially glad that they’ve embraced open source in recent years. There have been plenty of missteps along the way, but overall I’m glad that I’ve spent so much of my career steeped in Microsoft technologies.
I’ve always been a stickler for coding style. In fact, many (many) years ago, my boss deputized me as the code police and even gave me a sheriff’s badge. I have since mellowed considerably on the finer details, but I still insist on consistency. Like many software developers, I have a knack for noticing inconsistencies, to the point that they distract me when I’m trying to understand or modify code. I’ve still got my personal preferences, but I can cope with a codebase that deviates from them, at least if it does so consistently.
When I’m writing code, I give myself plenty of time to think about naming. Good names are one of the best ways to produce code that can be read and understood. In fact, I’ve come to believe that good names make most code comments unnecessary. I try not to be unreasonable about it – not every name is worth pondering for 15 minutes. But I do take my time with names that can’t be easily changed – repository names, the public API of published libraries, web service APIs, etc.
LINQPad is an indispensable tool for C# developers. It’s great for experimenting and for one-off data munging. I even used it this weekend to write a script for my wife: it reads data from a text file, runs a basic brute-force algorithm, and builds a Word document from the results. The premium version of LINQPad is totally worth it (especially if your employer foots the bill).
Workflowy is by far the website that I would miss the most if it was gone, both in my personal and my professional life. It is the perfect note-taking tool for my brain. I have always loved outlines and bullet lists, and Workflowy combines the two into an outstanding user interface for creating, editing, finding, marking as completed, and even sharing with others. Even if I didn’t need the features of Workflowy Pro, I’d pay for it anyway because it is the productivity tool I was always waiting for.
SmartGit has been one of my favorite development tools since we moved from Subversion to Git for source control. You’d think that someone who has been tinkering with computers for 35 years would be comfortable on the command line, but memorizing arcane command-line syntax is just not something that my brain is good at, so I love a good user interface, and SmartGit provides an excellent one for Git, supporting just about every feature of the
git command line tool, in a way that I can understand and remember.
I just added an Atom feed to this blog. Which makes this as good a time as any to mention Feedly, one of my favorite websites. Remember Google Reader and RSS feeds? Feedly filled the gaping hole that Google Reader left behind, and there are still plenty of blogs and websites out there that support RSS/Atom feeds. It’s a great way to keep tabs on a large number of websites without having to visit them all. One of these days, the number of websites with feeds that I want to follow might drop to the point where I don’t need it any more, but for now I find Feedly very useful.