Effective Windows


This is how I make Windows an effective platform for my day to day use. These tools follow no theme or trend, it is just the things I depend on, I will be keeping this post updated.

NOTE: I have not used windows in years at this point day to day, so take this as a dated historical perspective.

If you are wondering “Why Windows?”, scroll the end then come back.

TL;DR (Too Long; Didn’t Read)

Install Chocolatey, then I personally run (warning, some personal cruft in there you might not want)

choco install -y 7zip ag audacity autohotkey avidemux battle.net beyondcompare blender bzr ctags curl discord ditto dotnet4.5 everything fiddler4 filezilla firefox flashplayerplugin foobar2000 git github google-chrome-x64 googledrive gow greenshot HeidiSQL hg imagemagick inkscape jdk8 keyfinder lastpass libreoffice lockhunter mumble notepadplusplus nsis paint.net pdfcreator putty qbittorrent sandboxie sdelete skype slack speccy steam sumatrapdf svn sysinternals teamviewer treesizefree tor-browser vcredist2005 vcredist2008 vcredist2010 vcredist2012 vcredist2013 vim virtualbox vlc wget windirstat winmerge winscp android-sdk androidstudio visualstudio2015community

Sometimes one of the installers will get a bit stuck (depending on updates since this posting) and you will need to control-c out of that installer. Generally simply rerunning the command will get it to finish. Visual studio is at the end because it takes a long time to setup.

The List

The goal of this list is to hit on some of the less popular utilities you might not already be using (or I use differently), so I will be skipping over the exceptionally popular (but great) things.

Things Skipped

Big Things: Chrome, Firefox, Skype, Android Studio (and SDK), Visual Studio Community Edition, (your favorite text editor), Slack, Steam, Battle.net, VLC, LibreOffice, Google Drive and Flash. You know what these do and they are so well known as to be uninteresting to write about at this point.

Little Things: Visual C++ Redistributables for various versions, Vim (sadly hosted on SF), Wget, Curl, Git, Bzr(Bazaar), Svn(Subversion), NSIS (sadly hosted on SF), and Notepad++. These are developer focused or very small and niche, so I didn’t bother putting them on the main list.

Core

  • 7-Zip: (cinst 7zip) The universal compression utility for windows. Integrates wonderfully with explorer, handles any format you are likely to throw at it.
  • AutoHotKey: (cinst authotkey) possibly the single biggest application that keeps me loving Windows. It allows you to quickly and effectively fix any ugly workflows you have, or even write complex apps with it. Easily create complex macros and keybindings that are only active when you are in a specific application, fix a poor laptop keyboard layout in seconds by swapping some keys around, setup alt-` to work like it does on OS-X, create custom window layouts or multi-application integrations. This thing is absurdly powerful and straightforward to use, get it and enjoy.
  • Chocolatey: apt-get for windows basically — tons of apps available by typing a few characters. Where you see cinst (thing) below, that is the command line to install that application with chocolatey. A wonderful side effect of this is everything on your box can be upgraded with cup all.
  • Ditto: (cinst ditto) a clipboard manager, once you get used to it, hard to live without.
  • Evernote: (cinst evernote) I absolutely love and hate evernote. I love the utility it brings, and I hate the crappy, terrible client. Evernote has become my cornerstone, I write notes by hand in it, I “clip” all my bookmarks to it so that even if the page goes away I still have the content. I have 2000+ notes and growing, well organized and solid.
  • Everything: (cinst everything) an insanely fast way to search paths (file and folder names). Indexes about a million files a minute and after indexing it is a realtime search (as you type, it instantly filters) engine. So if you just remember a part of a filename or folder anywhere on your machine just type it and instantly find the file or folder.
  • GNU On Windows: (cinst gow) “over 100 extremely useful open source UNIX applications compiled as native win32 binaries.” This gets you all those basics you expect if you are used to linux, like sed, ls, etc.
  • Paint.NET: (cinst paint.net)
  • Putty: (cinst putty) the most popular SSH client for windows, I spent the majority of each day in various putty terminals connect to my VMs.
  • SysInternals: (cinst sysinternals) too much awesome for a bullet item!
  • VirtualBox: (cinst virtualbox) most of my day is spent in Ubuntu 14.04 LTS running in a VM. So a lot of my favorite tools and workflow is actually Linux related, but that is for another post. Why not Hyper-V? I am very used to VirtualBox, it works on all the platforms I use, and don’t conflict with Intel HAXM (for Android x86 emulation).
  • WinSCP: (cinst winscp) simple straightforward SFTP / SCP client. I use this as the primary way to transfer files to and from my VMs.

Niche Utilities

  • Ag: (cinst ag) this is a code-searching tool similar to ack, but faster.
  • Audacity: (cinst audacity) fantastic audio editor.
  • Avidemux: (cinst avidemux) very simple video editor that stays out of your way, only basic cutting and encoding stuff support.
  • Beyond Compare: (cinst beyondcompare) compare all the things! This may be the single easiest purchase I have ever made, it just works and gets out of your way.
  • Blender: (cinst blender) 3d editor and render tool that can even do video editing.
  • Fiddler: (cinst fiddler4) uses .NET4 (hence 4), if you want .NET2 omit the 4. Anyway, this is an awesome little web debugging proxy that works with https with a bit of setup.
  • FileZilla: (cinst filezilla) in case you have to use FTP, you have this.
  • foobar2000: (cinst foobar2000) a fantastic audio player.
  • Greenshot: (**cinst greenshot) **fantastic little screenshot utility. I use it far more than I thought I ever would, quick uploads to imgur in one click if you want.
  • Inkscape: (cinst inkscape) this is a vector graphics editor, but I mostly use it to look at svg output from prof tools.
  • Keyfinder: (cinst keyfinder) need to reinstall, can’t remember the windows product key?
  • HeidiSQL: (cinst heidisql) “powerful and easy client for MySQL, MariaDB, Microsoft SQL Server and PostgreSQL.”
  • LastPass: (cinst lastpass) this is an amazing password manager, combine it with multi-factor (I like Yubikey) and enjoy only having to remember one password and still have long and secure random passwords on all the sites you use.
  • LockHunter: (cinst lockhunter) why can’t you delete this file? What is using it? Screw it, we will do it live… force delete!
  • Mumble: (cinst mumble) amazing VoIP (Voice over IP) solution for both gaming and business use. Sadly, the UI is very ugly.
  • PDF Creator: (cinst pdfcreator) print to PDF… just works and gets out of the way
  • qBitTorrent: (cinst qbittorrent) a no-muss, no-fuss bittorrent client.
  • Sandboxie: (cinst sandboxie) allows you to run apps in a micro sandbox rather than a full blown VM to discovery what they are doing, or just isolate your system from harm.
  • Speccy: (cinst speccy) great little utility to display your system specs.
  • SumatraPDF: (cinst sumatrapdf) tiny, small PDF viewer.
  • TeamViewer: (cinst teamviewer) great cross platform remote control utility. Unfortunately on Linux is runs via Wine, but runs well enough to not be a huge issue.
  • Tor Browser: (cinst tor-browser) a combination of Firefox and Tor — works with no fuss.
  • WinDirStat: (cinst windirstat) find out where you space went.
  • WinMerge: (cinst winmerge) diffing and merging GUI for windows,

Why Windows?

Not because I have to, I do occasionally write Windows software, but generally I write back-end server software targeting Linux or BSD.

I use it because it does what I require with very fewest compromises. I haven’t had a Windows crash in literally years. It has phenomenal driver support and allows me to build my own powerful rigs. Currently my desktop is a 5960X (overclocked to 4.4Ghz, liquid cooled), with a 750 series SSD, 64GB of DDR4 memory and a GTX 980 video card.

Why don’t you just buy a Mac like every other developer?

I do own a handful of Macs, including the 5k iMac and a 15" MBP. I simply don’t prefer them to Windows for day to day development. The hardware is solid but limited. The OS is pleasant enough (despite HFS+ being horrible).

I have often been the sole windows system in an office of Mac users.

Linux would let you do all those things!

I was a Linux desktop users for years, when I had more time and patience. Basically slow (and at times, poor) hardware support and various bugs that take more time than I am willing to invest killed off day to day Linux use for me. I do USE Linux constantly, and I do have a dual boot configuration for profiling against the metal.

Plus, I like to play games, and there are still a fair number of Windows only games that I enjoy. I am aware I could get some of them working on Linux using Wine, but again — time and patience.

Changelog

  • Classic Shell: (cinst classic-shell) makes windows 8 start menu like windows 7. Classic shell isn’t needed for windows 10, the start menu is servicable.
  • Cmder: (cinst cmder) a decent terminal editor for windows, yey! This is actually a wrapper around ConEMU (which is included in it). Enables wonderful things like being able to use 256 color vim from a windows terminal. Cmder is still wonderful, I just have fallen out of the habit of using it.
  • Dexpot: (cinst dexpot) virtual desktops for Windows that actually works well, with decent customization and full screen mac-like zoom behavior. Dexpot and AutoHotKey are what let me keep my sanity when switching between OS-X and Windows regularly, my muscle memory works across both platforms because of these two applications. Dexpot was removed due to the new virtual desktops features in Windows 10, despite undocumented APIs, it will be a full replacement for Dexpot in time.
  • Evernote: (cinst evernote) I have given up on Evernote, see https://www.robertmelton.com/2016/06/28/escaping-evernote/ for why.
  • Hexchat: (cinst hexchat) I have transitioned over to IRCCloud (at $5 a month) for all my IRC needs.

Credits

This was inspired and highly influenced by Scott Hanselman’s “Ultimate Developer and Power Users Tool List for Windows