Essential Software

This is my list of software that I find essential if I'm using a Windows machine. When I setup a new computer, these are the programs I install.  There are certain tasks that I don't even bother with on a Windows box, so this list does not include everything I want to do with a computer, just those tasks I usually want to do in a Windows desktop/laptop.  I maintain this list for my own convenience so I can quickly remind myself of (and find) all of the software I use.

All of these programs are free, and most are open-source as well. In some cases I have listed alternatives, honorable mentions, or close seconds. Having said that, I try not to have redundant programs unless they bring something to the party.

I would love to get feedback if I'm missing a really great program that would enhance my quality of life and make me wonder how I ever lived without it.

Network and Internet


Web Browser

  • Google Chrome: Fast and secure browser that bumped Firefox from being my default browser many years ago.

Remote Desktop Access

  • UltraVNC: Remote desktop control.  There are lots of VNC options out there, but this does the job for me.

Remote Shell Access

  • PuTTY: Awesome ssh/telnet/rlogin client.  There is nothing else even close.
  • SuperPutty: Multi-tabbed PuTTY enhancement to bring dockable tabs to PuTTY.

Graphical File Transfer

  • WinSCP: Great ftp/sftp/scp client.
    • My old favorite is Filezilla, but they started shipping the installer with "bundled offers", and I haven't looked back.  

Chat and Instant Messaging

  • Pidgin: Chat client for every protocol that matters.  Checkout the Plugins page to get extras like a Facebook chat support.
  • HexChat: Good IRC client based on the old Xchat program.  While IRC isn't as popular as it once was back in the day, there are still some good technical communities where you can ask questions.

BitTorrent

  • qBittorrent: Lightweight, yet powerful, BitTorrent client.
    • I used to like  uTorrent, but the ads were tedious to disable, and qBittorent did the job just as well for me.

SSH Server

  • copssh: SSH server that is really easy to install.  This is just an installer that bundles OpenSSH, OpenSSL, and a very minimal Cygwin shell environment.  If you want a full blown Unix-like environment, you would want to go the full Cygwin route, but if you just want to ssh into your machine to modify a couple files remotely, or create a proxy tunnel, or transfer files via SFTP, then this is the perfect solution.

Network Tools

  • Wireshark: Network protocol analyzer. For those of you keeping track, this used to be called Ethereal.

Document and Text


PDF Viewing

  • Adobe Reader: The original and still probably the best PDF viewer. Unfortunately, it is the most bloated as well.
    • A great lightweight alternative is Foxit Reader. It opens unbelievably fast compared to Adobe Reader, and it works from a flash drive since there is no install. For me, Adobe Reader still wins because of its superior searching capabilities.

eBook Tools

  • Calibre: All-in-one ebook manager.  Whatever you need to do to/with an ebook, this will do it.  It organizes, converts, downloads covers, etc..  I can't imagine managing my ebooks without it.
  • Cool Reader: Nice standalone ereader that handles the popular formats like mobi and ePub,.  The main advantage it has over Calibre's built-in reader is the customization options.

Markup &  TeX/LaTeX  Tools

  • Pandoc: Convert markup formats to other other formats. Handles Markdown, html, EPUB, LaTeX, etc.
  • Asciidoc: Markup language for creating formatted documents.  Lighter than LaTeX, but more powerful than Markdown. 
  • MiKTeX: A port of the LaTeX document publishing system. Output can be PDF, HTML, etc.
    • This isn't a software link, but a really useful site about LaTeX fonts is here . And while I'm breaking the rules and posting web links, here's a really good website for LaTeX info.
  • TeXstudio: Lightweight portable LaTeX IDE, including editor, spell checker, symbol toolbars, etc.
    • TeXnicCenter  is a great program, and it used to be my first choice, but development seems to have stalled.

Office

  • LibreOffice: Word processor, spreadsheet, database, and presentation applications. For nearly all intents and purposes, this is a total replacement for Microsoft Office.  Back in the day, the LibreOffice spreadsheet lacked fancier Excel features like Goal Seek, but those gaps have been long since filled.  In my opinion, it still lacks the polish of Office in many respects, but with the exception of a few items, almost all the functionality is there.

Text Comparison

  • Meld: The best graphical file comparison (AKA "diff") program I've seen.  The colorized output really helps you quickly see what's changed and what hasn't.  There is 2 and 3-way file diff and merge, as well as directory comparison.
    • The classic diff program on Windows is WinMerge.  I switched to Meld on Linux long ago, and ended up jumping ship on Windows for consistency and a better feature set.  WinMerge is still not a bad choice though.

Text Editing

  • Vim: Powerful keyboard-based text editor with a legendary, steep learning curve. Not for everybody, but every Linux/Unix guy should know it because it is always there. While I use Vim extensively on Linux, I generally only use it for certain tasks on Windows.
    • Honorable mention: GNU Emacs is the Yin to Vim's Yang.  It is less likely to be installed on a barebones Linux install, but it is enormously powerful and popular among diehard fans.  It isn't my cup of tea.  I jumped on the Vi(m) bandwagon too long ago to switch to Emacs now.
  • Notepad++: My text editor of choice for everyday, quick editing on Windows. The main limitation is that it doesn't handle big files very well if you want syntax highlighting (say >100MB).  The syntax highlighting engine isn't that great, and the interface in general is clunky and ugly, but it is still a useful tool.
    • The other popular general purpose editor out there is Sublime Text.  This isn't my first choice because it is $70, and the development seems to have slowed to a crawl.  The money would be worth it if the development was active and the future was clear.  As it is, I'm hesitant to commit.
  • WriteMonkey: Full-screen, distraction-free text editing seems to be all the rage, and WriteMonkey fits that bill nicely.  These types of apps don't usually have a ton of features, as they focus on reducing on-screen clutter more than anything else.  But having said that, WriteMonkey has also been adding quite a few neat features lately and I think it leads the pack in functionality.  Its support of Markdown is a nice bonus.
  • Atom is most notable for its hackability, providing a package system allowing the user to modify/extend the entire program with ease, and share it with others. I'm using it for certain tasks like editing Markdown files since it supports live preview very nicely. It is also decent for programming in Go due to the fairly good Go tools support. Due to its architecture, it will probably never be super-fast, but it is worth checking out for work in specific domains.

Mathematics


Calculator

  • SpeedCrunch: Calculator with FAST start-up and plenty of functionality.  This is the first app I reach for when I need to do some simple math.
    • If you want the power of an HP RPN calculator, try HP Prime Virtual Calculator. It is a straight-up emulator of the HP Prime, delivered officially by HP itself.  Honestly, it seems somewhat silly to use this on a computer where you can use full blown math programs though.

Graphing

  • Gnuplot: Command-line driven plotting/graphing program that can make amazing graphs.  It isn't easy to use, per se, but it is incredibly powerful.  It's good to have in the toolbox if you are serious about math and data.

Symbolic Computation

  • Maxima: Full symbolic computer algebra system.  Comes with wxMaxima, which is an easy-to-use graphical interface.

Numeric Computation

  • Scilab: Numerical computation program, similar to Matlab in functionality.
  • GNU Octave: Another numerical computation program that started off as a Matlab clone, so porting programs is fairly trivial.  Octave is a second class citizen on Windows, so you may get some warnings during installation about not supporting Windows 8/10, etc., but it still seems to work fine for pure math.

Programming


Version Control

  • Git: Git is quickly taking over the open source world, and with good reason.  It is a distributed VCS, so maybe it isn't the best solution for every situation, but it works very well.  A big bonus is you get all the Unix command line tools along with the install.
    • Related is  TortoiseGit: Graphical interface for Git, if that's your thing.

Scripting Languages

  • Python: A great general purpose programming language
  • Julia: Similar to Python in its lightweight syntax, but focused on math/science applications. It is much faster than Python due to its JIT compiler. I use it more as a math tool than a general purpose scripting language. 

Additional Python Packages

  • PyQt: Probably the best looking, best featured cross-platform GUI toolkit.
    • Also worth checking out are  wxPython (which is a really nice toolkit) and  PyGTK (but it doesn't use native toolkits when it can, like wxPython). 
  • Reportlab: PDF generator
  • NumPy: math module (replaces Numeric and Numarray)
  • SciPy: Scientific package useful for everything from plotting to linear algebra.
  • Matplotlib: 2D plotting library 

Compiler

  • Go: Even though I don't do a ton of programming in compiled languages on Windows, when I do, I am usually making command line programs like file utilities, text manipulators, number crunching programs, etc, and Golang fits the bill nicely.

Hex Editor

    • HxD: I usually don't like using old/abandoned/unmaintained programs, but even though HxD hasn't been updated since 2009, it has everything I need in a hex editor.  The website only mentions Windows 95 through Windows 7, but it actually works fine on Windows 8 and Windows 10 as well.

    Utilities


    Compression

    • 7-Zip: archiver with great compression, useful from command line, nice GUI and Explorer integration, and it is fast.
      • PeaZip: If 7-zip doesn't work for you, PeaZip is the place to look.  It supports basically every format you will ever encounter.

    Encryption

    • VeraCrypt: on-the-fly disk and file encryption. Works absolutely seamlessly with the OS so you wouldn't even know you are using an encrypted disk.  This is a continuation of the old TrueCrypt program.
    • GPG: GNU Privacy Guard for cross-platform file encryption/signing.

    File Deletion/Recovery

    • Eraser: Secure deletion with a nice GUI and Explorer integration.
      • CyberShredder is a good alternative for USB drives when you can't install a shell extension.
      • SDelete: Also good for USB drive, this is a command-line secure delete that wipes free-space too.
    • Between these three programs, you should be able to recover any file that is physically possible to recover without special hardware:
      • Recuva: Very nice interface.
      • Zero Assumption Recovery: The free version gets the job done.
      • DiskDigger: Lightweight, single exe so no install necessary.  While it is free for personal use, it will nag you before recovering each and every file, so if you have a lot of files to recover, it might be worth just buying it.  It is a really good program and worth the price.
    • CCleaner: Cleans out temp files, histories, cookies, and other stuff hanging around on your computer that could compromise your data and privacy.  If you do online banking and shopping, it isn't a bad idea to clean up after yourself regularly.  If the data isn't there, it can't be stolen.

    Anti-Virus

    • Microsoft Security Essentials: Non-free third-party anti-virus software just doesn't make sense any more now that Microsoft has Security Essentials. It is free and it works well.  In Windows 10 it is called Defender (once again), and it comes with the OS.

    Process Management

    • Process Monitor: List and interact with processes and file handles.  Also monitors file access in real time. Useful for identifying i/o hogs.
      • Side note: this program and SDelete (mentioned above) are part of the Sysinternals Suite, which was bought by Microsoft years ago, and it contains lots of really interesting utilities.  It is worth taking a look at all of them.

    File Management

    • WildRename: Wonderfully full-featured file renaming utility that supports regular expressions.
    • WildReplace: Search for files and replace text in the files.

    Command Line

    • ConEmu: is the console emulator that I always dreamed of on Windows, but never had it.  It is a must if you use the command line in Windows.  It is basically just a wrapper for cmd.exe, Powershell, whatever, but it is very configurable.
    • UnxUtils: Unix-like command-line tools compiled natively for Windows (i.e. no cygwin dependencies).   Note: I no longer need this as Git (see above) has all the same tools, making this package redundant.
    • PsTools: Command line tools for managing processes, services, and remote administration. psexec is especially useful to issue a remote command.

    Launchers/Shortcuts

    • Pstart: Customizable menu-based launcher.  I rarely use the "Start" menu.  It takes too long to find stuff.  I have Pstart configured to pop up by right-clicking on the side of the screen.  This program is ridiculously simple and hasn't been updated in probably 8 years or more, and yet I still find it indispensable.
    • AutoHotKey: Just like it sounds... automate stuff with hotkeys.  You really have to check out the webpage to see all it can do.

    Backup/Synchronization

    • SyncBackFree: Backup and synchronization program. Make sure to get "SyncBackFree" since the other products, SyncBackSE and SyncBackPro, are not freeware.

    Virtualization

    • Virtualbox is a decent free program for creating and running virtual machines. It is an easy and robust way of running Linux (and other OSes) under Windows, which is often handy. There are some toolchains that just are a pain to set up in Windows, so I don't even bother and just skip right to a VM running Linux.

    Virtual Desktops

    • Dexpot: Virtual desktop switcher with some advanced features and good hotkey support. (Free for private, non-commercial use.)  Windows 10 finally has built-in virtual desktop support, so I really don't need this anymore.

    Multimedia


    Media Players

    • VLC: Video player for nearly any format imaginable. Especially useful for playing videos with obscure codecs, e.g. a clip encoded in some strange AVI variation.

    Media Server

    • Plex: The best personal media server for steaming your media to your Roku, smart TV, etc. Just tell Plex where you store your movies, TV shows, and music and it will do the rest, including downloading cover art and show descriptions.

    Audio Ripping/Encoding/Conversion/Tagging

    • fre:ac: free audio converter and CD ripper for various formats and encoders. It features MP3, MP4/M4A, WMA, Ogg Vorbis, FLAC, AAC, and Bonk format support.
      • CDex: Tried and true alternative to rip and encode CDs to mp3 and other formats with automatic naming thanks to freedb support.  The only reason fre:ac pushed this back to an honorable mention is the development seemed to stagnate for a while (although it seems to be alive and well once again).
    • MediaCoder: Convert from/to nearly any video and audio format, including extracting audio from video. 
    • TagScanner: Fix MP3 tags and rename files quickly with this tool.

    Audio Editing

    • Audacity: Full-featured multi-track audio editor.

    CD/DVD Burning

    • ImgBurn: Lightweight CD/DVD/HDDVD/Blu-ray burning application that does everything I could possibly want to do.  No need for anything else.

    DVD Ripping/Encoding

    • MakeMKV: Decodes discs even with copy protection 

    3D Rendering and Animation

    • Blender: 3D modeling and animation. Has more power than I have skill, but other people do really cool things with it.

    Image Viewing/Editing/Browsing

    • FastStone Image Viewer: FastStone is a great program for casual photo viewing and touch-up.  It makes it easy to do common tasks like cropping to standard sizes and removing red-eye.  
      • It doesn't have all the features that Picasa did, but since Google has made it their Vision Statement to discontinue every product I truly love, I didn't have a choice but find an alternative. 
    • GIMP: Powerful image/photo editor like Photoshop.  Not necessarily appropriate for a casual user who just wants to crop some photos. The scripting allows for complex plugins and automation.
    • Paint.NET is a fantastic alternative to GIMP for those weary of the learning curve (or the name). It is easy to use and really polished, and I often use it instead of GIMP for certain quick tasks.

    Vector Drawing

    • Inkscape: Really nice vector image editor for creating professional quality, scalable diagrams, logos, you-name-it.

    Comic Reader

    • ComicRack: Like iTunes for comics.  Reads every popular format: cbr, cbz, cb7, pdf, etc.  It organizes as well as displays comics.

    Technical Software


    Modeling

    • Solvespace: Don't let the retro look fool you. This is a powerful 2D/3D parametric modeler with a legit constraint solver. Try to find that in a free CAD software. It is rare to non-existent. If you are into making 3D objects for 3D printing, this program is great.
      • Autodesk's 123D Design is an amazing, pretty, easy to use CAD program, but lacks a constraint solver, relegating it to cartooning mock-ups in my book. 
    • FreeCAD : The is a fairly full-featured 3D parametric CAD modeler. This is the only free CAD program that looks like a real, commercial CAD program. Is it as good as a commercial product like NX, Catia, Pro Engineer, etc.? No, but it is free and good enough for many hobbyist projects.
    • Sketchup: This is where I start if I want to design a deck, a shed, a house, etc. It is really quirky to use if you are accustomed to regular CAD programs, but it works.

    Schematics

    • ExpressSCH: This is a really simple, yet powerful program for making schematics.

    Programming Fonts


    Below are a few fixed-width fonts suitable for programming, consoles, terminal windows, PuTTY, etc.  While just one font should be sufficient, I typically have all of these installed as one font may look better in a certain terminal or editor, or at a particular size.
    • Consolas: Awesome TrueType programming font designed by Lucas de Groot to work with ClearType, so be sure that ClearType is enabled.  This is part of the Microsoft Cleartype Font Collection (that comes with Vista and later), so you don't need to download this installer if you already have the collection. 
    • DinaGreat bitmap font in 8, 9, and 10 points with normal, bold, italic, and bold/italic faces. I like the 8 and 10 especially well; the 9 is a bit tall for the width. Dina is so clear and crisp that it is actually pleasurable to read.
    • Anonymous Pro: This is a TrueType font with the feel of a bitmapped font. It also has good Unicode support, and scales well in large and small point sizes.
    • Source Code Pro: This font from Adobe looks amazing on high resolution monitors. It is actually a family of fonts including Extra Light, Light, Medium, and Black variations.
    • Fantasque Sans Mono: This is a whimsical font in a field where most programming fonts are fairly boring. Full of curvy letters and distinct characters, this font is worth a look.  It has enough character that I like it for prose like email as well.
    Comments