Toolbox: Bash on Windows
My July 2016 column for Visual Studio Magazine Bash on Windows: Getting Productive with Windows Subsystem for Linux takes a look at the new Ubuntu-based Linux terminal environment coming soon to a Windows 10 machine near you. I provide some background on the "Bash on Windows" announcement, explain how to get WSL on your system (hint: you'll need a Windows Insider account), and highlight some tools and information to help get you started using WSL in your day-to-day work
Toolbox: Tools for AWS and Azure
It's all about "the cloud" these days, right? Storage, services, distributed processing... it's dead simple to spin up whatever resources your project may need, on demand.
My May 2016 Visual Studio Magazine column 14 Tools For Microsoft Azure Development highlights some handy tools, templates, and extensions for integrating Microsoft Azure resources into your software development projects and in some cases directly into Visual Studio itself.
My June 2016 column 16 Essential Windows Tools for Amazon Web Services covers similar ground, introducing you to some Windows developer tools that support AWS-based app development and resource management. The AWS tools article is also included in Visual Studio Magazine's comprehensive Building Onto the Cloud with AWS whitepaper, free with registration.
Toolbox: Accessibility Tools
Here's an interesting statistic: according to Blindness Statistics from the American Foundation for the Blind...
findings from the 2012 National Health Interview Survey (NHIS) Preliminary Report established that an estimated 20.6 million adult Americans (or nearly 10% of all adult Americans) reported they either "have trouble" seeing, even when wearing glasses or contact lenses, or that they are blind or unable to see at all.
That's a lot of people who may need a little help when computing. Even my aging eyes need a little extra help from time to time.
In my February 2016 column for Visual Studio Magazine, Tips and Tools for Making Accessibility a Developer Priority, I looked into some of the best tools and techniques for developing and testing accessibility in applications and web sites. The tooling has become much better in recent years, and Windows-based development is starting to catch up with what's been available on OS X and iOS for years.
Make accessibility for all users a priority. It's the right thing to do.
Toolbox: Rich Text Editors
For my January 2016 Visual Studio Magazine column, I dove into a subject that I'd been putting off for a while because I thought it would be a complicated rabbit hole. Turns out to be quite interesting. 8 Rich Text Editors for Interactive Web Content mostly covers web-based rich text editors that harness the power of contentEditable... and a few that don't for when your web development project has more constraints.
I don't think the article itself is editable, however.
Toolbox: Cross-Platform Dev Tools For Visual Studio
My December 2015 column for Visual Studio Magazine covers 7 Tools That Bring Cross-Platform Languages into Visual Studio. It's a grab bag of tools and extensions that make Visual Studio really useful for coding with languages and frameworks beyond .NET. The article covers extensions like VS Tools for Python, Node.js, and Unity, as well as NLog, RestSharp, and more.
2015 Reading and Listening Updates
2015 was a busy year with lots of time spent on the road and not enough spent at home with my family or relaxing with a good book. Nonetheless, I did stumble across a few excellent books in the last 12 and updated my reading list accordingly.
Two books stood out. Let me tell you about them briefly.
If you've heard about the recent Jessica Jones series on Netflix, you might be interested in some background reading. Alias Omnibus, by Brian Michael Bendis and Michael Gaydos, collects Jones' background in the Alias stories for Marvel by Bendis and Gaydos, along with some related storylines from other series (as I understand it). The Netflix and Marvel stories differ enough while tackling the same tough material to make both worthwhile reading/watching.
I also received Von Dutch: The Art, The Myth, The Legend, by Pat Ganahl, as a gift and frankly couldn't put it down. Ignore for a second the recent "Von Dutch" fashion marketing phenomenon, which has nothing at all to do with the man. Dutch was arguably the inventor and master of modern decorative hot-rod pinstriping. Ganahl, a talented, long-time automotive journalist working mostly in the hot rod scene, created a fascinating portrait of the reclusive, eccentric Von Dutch, told mostly through the recollections of people who knew him. The discrepancies in the stories say as much about the fans, friends, and hot rod scene as they do about Dutch. A fascinating and finely told bit of history.
As for all that traveling... while I haven't acquired a taste for audiobooks yet, I have been listening to hours and hours of podcasts. Two I particularly enjoy are:
Dan Carlin's Hardcore History features some great, in-depth, wide-ranging narrative overviews of historical people and events. I particularly enjoyed Wrath of the Khans, a five-episode history of Genghis Khan and his hordes, and Blueprint for Armageddon, a six-episode history of World War I as told through personal accounts and diaries.
Beware: these are long-haul listening, and a single episode can go on for hours. On the other hand, I love Carlin's ability to bring characters to life though quoted excerpts from source materials, as well as his tangent thoughts on those sources and the historians behind them.
My other favorite podcast is Nerds on Draft by my friends Gabe and Jeff. They talk about craft beer and nerdy stuff. You should also check out their excellent beer journal app TapCellar.
Toolbox: Autumn Column Catch-up
Time for some catch-up with my recent columns over at Visual Studio Magazine.
From August, 15 Visual Studio Project Templates To Jump Start Your Code, an overview of Visual Studio project templates and development scaffolds that go a bit beyond — or even more bare-bones, in the case of TruelyBlank — the default Visual Studio project templates.
In September I put together a round-up of the 9 Top .NET UI Component Collections, a long-standing request from my patient editor. If you ever wanted to know how the different control collections out there stack up against each other, check this out.
And in November, 10 ORM and Data Tier Management Tools for Visual Studio, which takes a slightly different approach than my previous columns on data access, this time focusing on tools and extensions that integrate directly with Visual Studio.
Keyboard Shortcuts for Outlook on Mac OS
I'm just going to come straight out and say it: Outlook on the Mac is a pretty decent mail client, particularly if your employer has invested in well-run Exchange and Active Directory services.
Here's the problem, though.
You're dealing with new messages in your inbox, and most tasks can be accomplished without taking your hands off the keyboard.
↑ and ↓ take care of navigating through messages.
⌘-R starts a reply, or ⇧-⌘-R (Shift-CMD-R) to reply all... used with extreme caution, please. ("Bedlam DL3?" "Me Too!")
⌘-N starts a new message. ⇥ (Tab) through the address and subject fields to the message body. ⌘-↵ (CMD-Enter) sends the message.
⌫ and ⌦ are handy, too. I use these most of all.
Now, what if you want to move a message? The keyboard shortcut is ⇧-⌘-M (Shift-CMD-M), which brings up a dialog box to select the folder. (Note that the folder has to exist already. Type a folder name, select it from the list if more than one matches the search string, then press ↵ to move the message.
Unfortunately, that's a lot of work if you move messages to specific folders frequently. Here's where we use some built-in Mac OS functionality to create a keyboard shortcut.
When you move a message to a folder by using the ⇧-⌘-M (Shift-CMD-M) or by clicking the Move button on the ribbon, Outlook adds that action to its Move menu items. You can see these by clicking Message > Move and noting the items at the top of the menu.
So, first, use either the Move button or the the ⇧-⌘-M action to register the destination in this menu. Note the name exactly as it appears here.
Now go to System Preference > Keyboard > Shortcuts.
Select App Shortcuts, then click the + button to add a new shortcut.
For Application choose Microsoft Outlook.app (it may be in the system Applications folder rather than your user Applications).
For Menu Title type in the exact name that appears in Outlook's Move menu. In my example here it's "Status (Mailbox - Dorsey, Terrence)". Your Mac will find this. It's magic.
For Keyboard Shortcut, type the shortcut key combination.
Click Add and you're good to go (assuming no conflicts with other system or app shortcuts).
Now, when you want to move a selected message, just use your keyboard shortcut. As an added bonus, if you ever reorganize folders in Outlook, the app is smart enough to continue routing messages to the right place.
Toolbox: Visual Studio Code Profiling
Code performance testing and profling tools should be part of every developer's toolbox. You don't want to spend too much time tweaking performance right from the start, but it's always good to know where your applications spend their time and resources. Inefficiencies can add up in big systems.
For an overview of current tools that support code profiling in Visual Studio 2013 and 2015, check out my July column in Visual Studio Magazine, 11 Code Profiling and Performance Tools for Visual Studio.
Apps for keyboard shortcuts, text expansion, and macros are a key part of my computer setup for both work and play. On the Mac there are lots of choices, but on Windows, one application stands tall: AutoHotKey.
It actually took several tries for me to grok AutoHotKey and really start to harness its amazing feature set. It really came down to two problems: deep, deep, deep capabilities and poor tutorials that try to show you too much too soon. The first isn't really a problem unless you get stuck, as I did, wondering where to start (and how to start AutoHotKey... it's not immediately obvious).
In the June 2015 edition of Visual Studio Magazine I attempted to address that second problem with my article Automate All the Things: An AutoHotKey Primer for Developers. Hopefully this brief, directed tutorial will introduce you to the most important features and get you using AutoHotKey quickly. From there, only your coding skills and imagination stand in the way.