Skip to main content

Featured

the importance of hustle and why it matters

Anyone who has played a team sport, say soccer, knows the difference between speed and hustle . Speed is distance over time.  Hustle is mind over matter .  Speed is how quickly you can run. Hustle is how quickly you get to the ball when ... a) it's sitting in front of your goal and the goalie is gone b) you're tired but you need that burst of energy to stop a run-away forward on the other team c) when you decide you won't let the other guy/gal get to the ball before you. In other words, hustle is what you do to win .  It's the difference between waiting for a pass to get to you and going out to meet the ball . It's Wayne Gretzky skating to where the puck will be . In business, it is following up with a customer, or staying late one night because it is the last push to production.  Hustle is writing that thank-you note to the cleaning staff even though you want to go home or dropping a pizza off to the operations team working late tonight.    You don'

Top 100 Productivity Tools

O.k., I admit it - I don't know if there are a hundred tools here but there are certainly a bunch!

I am always on the look-out for tools to improve and enhance my personal productivity as well as organizational productivity. Automation and semi-automation are great ways to increase productivity, either by reducing or eliminating repetitive, error-prone tasks.

So, when people ask me what tool to use, I usually have a few in mind.  This page collects tools across multiple operating systems, categorized by their most common use.  I list tools that I personally use and have found useful. Naturally, your mileage may vary.  This does not constitute an endorsement by my employer.

I use Windows 7 and 10 computers predominantly at work and at home. My PhD research is conducted on both Windows 7 and Linux (Centos and Xubuntu).  I'm an old-school Unix developer as well (Ultrix, AIX, and SunOS anyone?)

You'll find that most of my favorite tools are on Windows. That's because it's my daily work environment. This list was inspired (but not cloned) from Scott Hanselman's list. He has his favorites and I have mine. As Scott says, "No one paid money to be on this list and no money is accepted to be on this list."  Another (much shorter list) is Ed Bott's list at http://www.zdnet.com/article/my-10-favorite-windows-programs-of-all-time/

Please note: this does not mean that other tools are not fine tools. Feel free to suggest new ones to me. I really enjoy trying new and improved software.  These are just tools that have served me well in the past.


Disclaimer: This does not constitute an endorsement from my employer or myself.

As always, comply with your employer's rules about installing software on work computers. Do your own due diligence with regards to malware. 

Legend:
  • $ = purchase
  • free = free to use (may not be open source)
  • X = cross platform
  • D = donation-ware
  • U = unix platforms (linux, freebsd, solaris, etc.)
  • L = linux only
  • Win = windows only
  • FLOSS = free, libre open source software (free to use and open source)

Application Lifecycle Management (aka "Forges")


ALM tools include some combination of source control, build management, package management, defect tracking, and project management  (depending on the tool.)  Some even have code browsing tools, community management, code review management, and news forums.  If you're managing more than one software system, a properly configured and administered ALM can help ensure that there is consistency of management across all of your systems.  These are enterprise class systems.

Most are also available in SaaS (Cloud-based services) if you would prefer not to have to manage them. If your security and privacy tolerance is high enough, these can be attractive and productive solutions.

GitHub ($,Free) - This is is a GIT only repository, probably the most popular one on the planet at this time. It is free to use for public repositories but you must pay for private repositories.  I use it for collaboration on work projects.

BitBucket ($,Free) - this GIT and Mercurial (aka HG) based SaaS repository allows unlimited public and private repositories. Very handy.  It is now owned by Atlassian.  Using this for grad school projects and publishing my open source projects.

I am also using self-hosted Fossil running on my HostGator account for a grad school project. This was very easy to do and has been working great for me for almost 7 years now.

Archival and Compression tools

Archival tools allow you to grab a bunch of files and store them in a single file. This is convenience for sharing with others or making a quick backup copy.  All modern tools (anything from this century) also include compression. Many include encryption.

PowerArchiver 2013 (Win,$)  Yes, you  can use 7-Zip and I do on other machines but on my primary, I love the convenience and power of PowerArchiver. In particular, I like the built-in ability to transfer files using FTP. This one opens ZIP, RAR, TAR, and other popular archival formats.   I like the ease of use, the way it integrates into the Explorer menus, and the speed. Now claims to have FIPS-140-2 mode but I haven't tried it.

7-Zip (Win, Free) - This is the tool I install on other computers. PowerArchiver is my go-to on my personal machines since it is a paid product.

InfoZip (X,free)- this is a set of command line tools for zipping and  unzipping. I have used them for years so while PowerArchiver or 7-Zip might be better, this is what I'm used to when I'm doing automation work.

UPX (X, free) - this is an executable compression tool.  What's that? It makes your programs smaller by compressing them and uncompressing them only on execution.  It's transparent from your perspective but the files take less space on disk.  There's basically no reason not to use it.  I suppose some programs may be incompatible so make a copy before deploying.  You can also put this in your continuous integration toolchain and/or taskrunners and compress .EXEs as part of your build.

I avoid Winzip.  The user interface is horrible and  unintuitive. It used to be the only game in town for FIPS-140-2 compliance but now PowerArchiver does it too. Try them both and see if you agree.

Build tools and Task Runners

Build tools are programs that help compile and package other programs. I have tried others such as Bram Moolenaar's aap, Bell Labs/Alcatel nmake, Apache ANT, and Perforce JAM. I simply prefer the ones below. At this point, the only languages that I use requiring a build tool are Java, JavaScript/TypeScript, and C++.

Build tools come in two basic flavors - declarative or procedural. The declarative ones attempt to build a graph of what file depends on what other set of files. Then it builds everything from start to finish.  A procedural tool simply compiles one file after another in the sequence you specify.

The modern trend is to call these Task Runners not build tools because they may be used for languages that don't require compilation, like JavaScript or Python. However, there are tasks like transpiling (converting from one interpreted language to another) LESS or SASS, minification of HTML or JS files, or constructing installation packages which still need to be performed.  Task Runners do this for you. 

One of the problems is that tools such as NodeJS and npmjs automatically create DOS-style batch files on Windows.  Hopefully they will move to PowerShell which is somewhat more rational.

Apache Maven (X,FLOSS) - I've switched from ANT to Maven for my Java builds.  It is still a bit of a "magic" system because I find it is not particularly easy to understand exactly what it is doing sometimes.  Is there a Maven debugger?  Moving to Gradle would make sense if I programmed Java on larger projects. I have found the "Apache Maven 2 - effective implementation" book to be very helpful.

Gulp (X, FLOSS) - I've transitioned to Gulp for my JavaScript, CoffeeScript, and TypeScript code and I'm never going back to Grunt.  Gulp is code over configuration. Huh?  Yes, you use code to describe how to build your code.  And, surprise, it's wonderful.   It has good documentation and there are only 5 Gulp functions to learn.  Take that Grunt!  However, I will say that it requires more understanding of NodeJs to operate. But at least you're using JavaScript as the language, not a new Domain Specific Language (DSL).

GNU Make (U,FLOSS) - still my favorite for quick and dirty C or C++ programs. However, these are certainly becoming less and less frequent. I'm looking to SCons to replace this.

SCons (X,FLOSS) - Python based build tool, this one has really attracted my interest. Clean, simple syntax and seems to work in direct manner. Does require Python to be installed first.

Clipboard Management



Windows 10 now has an option for a built-in clipboard history.  You can activate it as part of the control panel. It allows you to press Windows-V to get the list. Handy.

On Linux, I have not had as much luck finding a good clipboard history tool like Clipmate.

Clipmate (Win,$)- the king of clipboard management products.  The "PowerPaste" feature alone is worth the price.  You also get a database for saving clips, screenclips, clipboard pre-processing, and other features. Very nice. If you write documentation for a living, PowerPaste is your new best friend.  Like TCC, I've been using it for longer than I can remember (certainly in the early 1990's). Incidentally, this app is rarely updated yet has survived into Windows 11 because it appears extremely careful to match the Win32 API.  As a result of that and Windows adherence to backwards compatibility, it still runs great.  

 

Crapware Removal and Privacy Maintenance

It's a sad state of affairs when this has its own category.  I have used a variety of tools in this area.

The most recent one I'm experimenting with is O&O software's Shutup10, as recommended by Tek Syndicate on Youtube.

Shutup10 (win, free) - turns off a variety of privacy invasive features in windows 10

Program and executable Management


Funduc's App Mover (Win, free and $) - just started using this one.  Warning - this is an advanced tool.

Collaboration Tools

Microsoft Office (X, paid) I use Microsoft office at work and I prefer the Microsoft suite over Google for my own work.

Google Docs (X,free) - I use Google docs heavily for personal, never for work. It is a great environment for collaborative editing as well. This comes in handy for group projects at school.  Now that it is Javascript extensible, I expected to see a host of excellent add-ons. However, I still prefer Office.

Putty (Win,FLOSS) - this is my go-to SSH program on Windows.  Works great with Linux servers. The one problem I find is that it stores profiles in the registry. This makes it hard to move that info around to other machines. So I'm experimenting with another one (I'm not listing it yet).  It is also possible that one of the "portable" putty programs also has this fixed but I haven't tried one yet. Update: there is indeed a version of putty that stores this information in files in addition to the registry. Another option is KiTTY but I have no experience with it.

TeamViewer(X,free for non-commercial) - teamviewer is the best desktop sharing program I've found. It works very well on Windows, not quite as perfectly on Linux but all-in-all, the best.  I use the free version because I only use it for personal use but would gladly pay a donation.

Command Lines or Shells (interactive)

When you program and simply want to control a computer to its fullest, the command line is the place to be.  



Powershell (Win,Free)- I play with it but it has not taken over (no pun intended) from Take Command.  Perhaps someday when the interactive features catch up.  I think Linux commands could benefit from borrowing the object oriented nature of Powershell and its integration with .NET.  There could also very easily be a Java-based shell that borrows from PowerShell's concept of cmdlets. Also the language is pretty nice except for the gratuitous use of odd-ball operators. A simpler core with object.method for everything else would have been more consistent and easier to learn.  I would think that would be a priority for any language for casual users.
 At this point, unless you have need for deep Windows control (WMI, .NET, etc.), I find using PERL is more portable and fairly equivalent.

JPSoft Take Command (Win,$) - my former favorite command shell.  Autocompletion rocks, great additions to the DOS batch language, awesome interactive features like ESET  (think interactive SET command) and control-pgup for command history. I've been using this and its ancestors 4DOS, 4OS2, and 4NT for as long as I can remember.

JPSoft TCC (Win,Free)- this is a free subset of take command. This is what goes on non-development machines in my house.

KornShell (L,FLOSS) - I am an old-school KornShell CLI user as well as programmer.  I've almost entirely switched to Bash at this point, which has easier to use command line history and keyboard remapping.

Bash for Windows (Win, Free) - this is Microsoft's attempt at integrating Linux command line tools into Windows.

I will say that I've moved away from writing lots of shell scripts to writing Perl or Python scripts because I find them more likely to be multiplatform and I will always have to do things in two or more platforms.

Continuous Integration tools

These tools are used to manage the builds themselves, by performing all of the necessary steps.  Typically web-based, they can control and report on dozens of builds.  The CI tool does not actually perform the build. It kicks off each build and reports on the success or failure.  It can also execute scripts or plugins to transfer the build results to other places.  Most of the tools include a web-based interface to see the progress of the system.

I would like to see a "personal CI/CD server".  Gulp can be used to watch files and trigger automatic builds and such but that setup is not trivial.  

Jenkins (X,FLOSS) - practically  a pseudonym for continuous integration.  Good stuff.  Not without issues but has hundreds of plugins. Very easy to setup. I would be open to replacing it with something better.

Database Engines

These are all database engines that I'm using in one way or another. The top 2 (SQLite and REDIS) have been my go-tos for my PhD research and personal projects for over a decade.

SQLITE (X, FLOSS) - the standard for single-user embedded zero maintenance relational databases, particularly for C/C++ code.  Same principal author as Fossil.  Like they say, this target for this is configuration files and small data files. it is not designed to replace a large multi-user database. I enjoy using it because it is so straightforward. Like Fossil, it is a single binary executable. No DDLs to install, no registry hacks.  Use it all the time.

Redis(X,FLOSS) - an easy to use, easy to install key value (or key-data structure?) store database. A pleasure to use. I use it alot.

Following DBs are listed in random order.

Level DB(U,FLOSS) - Google's key value store.Just started playing with this.  Compare to Redis below.

Mongo DB (X, FLOSS)- document oriented data store. Straightforward.

CouchDB (X, FLOSS) - document oriented data store, focus on synchronization. HTTP is the query language. I like it but recognize it can be somewhat confusing.



DQLite (X, FLOSS) - this is a patch of SQLite for distributed use.  Not a fork if I recall. Interesting project.

JavaDB / Apache Derby (X, FLOSS)- Java's answer to sqlite with even more features.  Has both embedded and standalone versions.  Could be considered more powerful. However, it does increase complexity compared to SQLite's single executable simplicity.

Oracle RDBMS(X,$) - when you need heavy duty and full PL/SQL. Amazing amounts of power. Amazing amounts of complexity.  IBM DB2 now claims to have PL/SQL support but only in their paid product (this is short-sighted in my opinion).  At least Oracle's developer editions still provide the full power.

PostgreSQL (X,FLOSS) - when you need PL/SQL but don't want to pay for Oracle.  DB2 supposedly provides PL/SQL support now but only in the paid version. It appears (last I checked) that DB2 Express did not include PL/SQL support.


MariaDB(X,FLOSS) - a better alternative to mySql. I still prefer PostgreSQL because of PL/SQL support.

PingCap TiDB (X, FLOSS) - a distributed database built to be compatible with MySQL/Maria. Just started playing with this.

Database tools

Mysql Workbench (X, free) - great on mysql.

HeidiSQL(Win,free) - a handy GUI tool for managing MySQL databases.
 
DBeaver(X,free) - another free GUI for managing databases.

Oracle SQL Developer (X,free) - simply wonderful tool for writing and debugging Oracle PL/SQL. 

Defect and Issue Management

A defect tracking system is an essential part of software development and maintenance.  You should never write one - there are many to choose from on the market and even a paid-product will save you money over writing one.   A defect tracking system is a great way to manage work and maintain metrics on your product, if you set it up correctly and maintain good quality.  Don't allow users (end-users or developers) to enter invalid, incorrect, or incomplete data.  It only takes a few minutes to type a quality defect or feature request report.

MantisBT (X,FLOSS) - This is my favorite for ease of use and completeness.  

HP Quality Center (X,$) - another excellent, enterprise class defect tracker. However, it's been years since I used it daily.

Jira (X,$) - another excellent defect tracker. Enterprise class product. Phenomenally configurable.


For lightweight work, I find the built-in tracker in Fossil is sufficiently powerful and customizable for my needs.

Disk and Filesystem Utilities

imdisk(Win, Free) - mount an .ISO file (disk image) into virtual memory.

rufus (Win, free) - Open Source tool to burn .ISO files to USB flash sticks.  There are many programs in this category. I've also used Universal USB Installer.  This one has a portable version, so I keep a copy in my "/bin" directory.

etcher (All, FLOSS ) A multiplatform ISO to USB stick burner. Mac, Win, and Linux.  Written in Electron, meaning its a huge beast (120+MB).  I just started learning this one.


Stellar Phoenix file recovery ($)- I've had to use this once but it worked like a champ. Alternatives did not (including Spinrite below). Just my one-time experience to go on.  But this is what I'd use again if I had to.


HDD Hex Editor (Win, Free) - you don't always need one but when you do, it's a life saver.

Diagramming and Visualization


Railroad Diagram Generator (web,free) - written by Gunther Rademarcher. An amazing tool for generating syntax diagrams (also known as Railroad Diagrams).

Microsoft Visio (Win, $) - on the desktop, this is a powerful tool.

ATT GraphViz(free) - generate vector graphs from data.  Fantastic tool. Indispensible for research and data driven visualization.  Generate your output in GraphViz form then run GraphViz to graph it. 

MermaidJS (free) - javascript based tool now integrated into Github. Very nice.

pikchr (free) - serverside SVG generator now integrated into Fossil-SCM. Also very nice.  

D3 (free) - another great visualization tool, but requires significantly more programming than GraphViz because it is a JavaScript library, not a visualization app you can just start to use.

Desktop Management

Bins (win,$) was tool I used a lot. Doesn't seem as useful to me today but it was a fine tool.

Classic Shell (win,free) is a nice tool if you miss the old Windows 7 style Start Menu. I like the Windows 10 look so I no longer use it.

Fences (Win, $) This is an addictive desktop icon management software, made by Stardock.  I've been using it since version 2.0 and now buy licenses for all the machines I use. It organizes your icons into Fenced areas on the desktop, preventing icon sprawn (or at least keeping it under control.)


Groupy(Win, $) The folks at Stardock have done it again.  Brilliant piece of work that allows you to group any applications into a tabbed window.  If you love it for browsers, you would love it for the rest of your apps, right? That's the theory.  At the time it came out, not many apps would have tabs (and Explorer still does not.) But it's less common now so the usefulness is somewhat less as well. However, it depends entirely on your workflow so I leave it here.  

WinAero (win,free) is a utility, popularly known as a Tweaker. I use it to set the XMouse mode, which is where the mouse focus tracks the cursor (just hover) but it doesn't raise the window. You can even scroll windows without clicking them. Very handy.  I just find that I often move my mental focus without clicking.This makes it easier.  It has many other uses as well. Update: It turns out that XMouse mode really messes with games and Windows.  While the app works for, I can't recommend that mode any more.

Microsoft PowerToys (win, free)  is a set of utilities, based on a prior implementation back in Windows 95!  In particular, the FancyZones "toy" is really quite powerful.  I just started using it but so far, I'm pretty pleased.  It's the closest thing to the Linux i3 desktop experience, that is to say, a "tiling window manager".  But it is adapted to Windows 10, so it makes more sense.  So far, I've not encountered any issues but like WinAreo, I do expect some.  The other two PowerToys address bulk renaming and keyboard shortcuts (in context).  I've had no luck running the latter.  I think this would be great on a great big 49" monitor.
 
AltDrag (win,free) is a tool to make it possible to more easily resize and move windows. Simple but oh so useful when you can't quite seem to grab a window to resize it. Just hold ALT and use the right mouse key.

Display Management


f.lux (W, free) This neat little tool sets your screen colors to match the time of day. So, it removes a lot of blue at night.  This is supposed to make you sleep better.  I like it.  I've switched to the built-in tool in Microsoft Windows 10 and newer versions of Ubuntu but I may switch back to this one. It feels more comfortable for some reason.

Disk-based Backup and Recovery

When you want more than file based backup, you need full disk image backup.

EaseUS (Win, Free and $) - file and image level backups.  This is my current favorite.

DriveImage XML (Win, Free and $) - image level backup tool.  Despite having XML in the name, the backup itself is not in XML (thank goodness!)  The metadata is XML if I recall. I've used it once and it seemed to work fine.

A warning about recovery tools - they are iffy.  That is, there is no guarantee they will work in your situation, even if they were useful to me or others. It's a gamble you will have to decide on your own to take or not.  I've had to use several sometimes to recover some data.

Spinrite 6(X, $) - for exercising and recovering your disks.  I recently (2015) recovered a non-working drive with this tool.   Until now, I had had mixed results but I'm feeling more positive about it.  Has plenty of testimonials. I listen to Steve Gibson's SecurityNow podcast religiously so I know he knows his stuff. Boots up on Freedos but should recover disks regardless of underlying OS.

Stellar Phoenix (X, $) has a tool that I've also had good results with but it's been a long time since I've needed it.


 EBooks and ePublication


I own several Amazon Kindle devices and I'm happy with all of them. But sometimes, I prefer to read on my PC. Go figure!

Kindle Cloud Reader (X,free) - this is the Amazon web-based reader. Works great on any platform.

Calibre (X, free) - this is my ebook reader when running disconnected or to read non-Amazon ePubs.

Foxit PDF Reader(Win,L,Free) - not only is this a really fast PDF viewer, but it has awesome features like typewriter and form fill-in and save capabilities that Adobe does not. A long time favorite and lifesaver. The annotation features alone make it worth having.  The Linux version is not as full featured as the Windows version.  This is my favorite PDF reader/writer.

Kiwix (X, free) - This is an offline ebook reader, specifically for Wikipedia (and other Wikimedia). It automates the download and installation of the media.  Wonderful tool!  Super handy when you're on a cruise or in some other fashion disconnected from the internet and you want to look up information. Be aware - it is based on Bittorrent in some fashion so you may be uploading data to other peer to peer machines.

PSR (Win, Free) - This is a tool from Microsoft that you have on Windows 10 that can be used to record a session and builds a mini-log of what happened in the browser. Great for writing docs.

Emulation and Simulation

I still run the occasional MSDOS/PCDOS program (though mostly for nostalgia!).  Is there a solution for 16 bit Windows or OS/2 programs? I don't know... I suppose you could just use virtual machines.

DosBox(Win,D) - This is the tool I use to run them. It has worked very well for me.

DosEmu(L,free) - For dos programs on Linux, use DosEmu.

Extract Transform Load

I don't use ETL (extract transform and load) tools at home. They are clearly enterprise grade tools.

However, if you're preprocessing some text files, like removing tabs or invisible characters, then take a look at something like Swiss File Knife (below) or TakeCommand (below).

File-based Synchronization, Storage Backup, and Recovery utilities

Backup is an essential task.  Be aware that most cloud based backup systems don't keep deleted files around very long. Read the fine print.  I supplement with a local backup system that keeps files as long as I choose.


AllwaySync (Win, free or $) - the best file sync utility on Windows that I have found.  I use this to synchronize folders on a hard-drive with folders on USB sticks or external drives or even LAN drives ("shares"). Unusual UI but effective.  The free version is limited but it's a high number of files. I paid for this problem gladly given how much I've used it.

CloudBerry (Win, $) - so far, this has been the most flexible cloud drive mounting program I've found.  Still early in evaluation but seems to support vast number of providers and has lots of goodies. no longer available.

JPSoft's CascadePoint (Win, free)- an unsupported tool but that does a great job of copying many version of files. Not the same as a source control system - more like a continuous backup system.  I wish the company would just open source it since they decided not to sell it any more. The nice thing is that you get a view of a file over time. You can keep dozens of copies if that's what you choose.

Mozy($) - I had been using Mozy for about four years. It has a particularly nice enterprise or business mode where you can see which employees have conducted backups and which have not.  I would have continued using it if the client software was more reliable. I would often find it hung and needing to be restarted. Still, I liked it alot but it has become very expensive. No longer using it.

SpiderOak($) - I used Spideroak for a while.  Storage is 10x cheaper than Mozy (though I don't believe it has the enterprise capabilities that Mozy has).  I was hoping that the client is more reliable than Mozy's, which very occasionally would hang and have to be restarted. It wasn't. Update: I no longer use it.

Microsoft Robocopy (Win, free) - Microsoft's robocopy tool is a command line only tool but for Windows sysadmins, it is a godsend.  It competes (if you will) with Linux rsync but in a different way.  There are 3rd party GUIs if you want a better way than remembering a myriad of command line parameters.


EaseUS Todo Backup (Win, $ or free) - This is my multi-generation backup tool.  I finally bit the bullet and got something local (not cloud based).

File Comparison

Comparing files and directories of files is a common task.  Tip: Need to make sure your tool can do 3 way merge and can handle Unicode.  Many do not.

Beyond Compare (Win,$)  - still my favorite for file comparison.

DiffMerge(Win,free) - another option, by the folks at SourceGear.

KDiff3 (X, free) - nice multiplatform tool. Older versions available on sourceforge.net.

File Filtering and Sorting

JPSoft Takecommand (Win,$) has  a command called TPIPE which is extraordinary.  The TPIPE command is apparently available from another vendor but since it is part of TakeCommand, I just use that.  The command is based on a library from these folks: http://www.datamystic.com/textpipe 

Swiss File Knife (X,free) - An alternative I'm playing with.  Gives you a consistent CLI for use across Mac, Windows, and Linux.

The sort utility that comes with Windows is adequate for simple tasks. Anything more sophisticated will require one of the following alternatives:
  • load into a relational database and extract as a sorted result set. You might want to try Sqlite for that.
  • load into a spreadsheet and export as a sorted file.
  • use a file-based sorting tool

File Sharing and Transfer (Local)

see the sync tools (above) for additional suggestions.

cURL (x,free) - this is a swiss-army knife of file upload and download utilities. Need to pull a file down from the internet without a browser? The following command does it while preserving the file name.

           curl -O http://theurlgoeshere

Bittorrent Sync (X,$) - my former choice for syncing large files between network connected machines. From bit torrent labs. Note that this is not the same as the BitTorrent clients you may be familiar with.  It is multi-platform and quick. It is designed to be highly secure (but do your due-diligence before trusting it.)  It does take a bit of work to setup just right on Linux. It is pretty easy on Windows.

HFS (Win,free) - this handy tool allows you to easily share any file or set of files over insecure HTTP (see restriction below).  It is not a full-function web server. You can't use CGIs or servlets on it.  But you can share files easily by clicking on them in the Windows Explorer.  Great for read-only documents as well.  I'm finding this is a great tool for experimentation and development.  The author clearly took the time to really refine the user interface. It is GUI and menu driven.  
Warning! This program uses HTTP, not HTTP/S. As a result, your communication (including passwords and other sensitive information) can be intercepted and the data is not encrypted!

Stunnel (X, free) - this handy tool can help you secure comms between servers. Simple but powerful.  

File Monitoring and Watching

Sometimes you want to watch a file and be notified of changes.  Sometimes that means viewing the changes yourself and other times, you want a program to be run.  File watching can be a very handy (though potentially unreliable) way to trigger process automation.   File monitoring is watching the file's output as it changes.  During development it is very important to watch logs for errors and other indications of the program operation.

Notepad++ (Win, free) This text editor includes the capability to watch server logs (this was a surprise to me.)  Simply select "Monitoring (tail -f)" from the "View" menu.

LogFusion (Win, freemium) log watching utility.

mTail (Win, free)- this is a great utility for watching server logs stream by.

tail /f - this is the command you can use if you have JPSoft TCC.  It runs in the Windows console and emulates the Linux tail -f command.

There is a filewatcher utilties page on sourceforge (http://sourceforge.net/projects/fwutilities/ ) but I have no experience with that program.  It turns out that JPSoft TCC / TakeCommand has a capability for this built-in (called FOLDERMONITOR) so I haven't had to use it.



File Storage (Cloud based)

There are so many options here and I seem to use them all. Time to consolidate...


PCloud (X, free) - works on linux, windows, mac. lifetime subscription available.  Works well for me. Wish it integrated better into MS Office but that's really minor. It's the only option I found that had a reasonable price and allows for client-side encryption so even PCloud does not see your files.  Also a very nice platform for sharing files with others (easier than the others I think.).

OneDrive (X, free) - If you pay for this one, you get office 365 subscription. I found it works for my family. You also get 5 TB which is nice (at the $99/yr level).  However, I expect no privacy with this product as Microsoft does make money with advertising and the temptation to scan my files for nuggets to drive ad revenue is likely too great.

Google Drive (X, Free) - I use this, particularly when using Google Docs. Works great with my Chromebooks (I have two).  But I don't trust google not to read all my files (same as Microsoft above).

Dropbox (X, free) - Formerly my GoTo. Still seems very fast compared to others. Now I've switched to OneDrive, which is a significantly better deal in my opinion. Moving away from this for personal use.  Limited to 3 installs for the free edition. This makes it significantly less attractive than other alternatives. Encryption is server side only.



Fonts

If you spend a lot of time looking at code or data, it helps to have clean easy to read fonts.  Here are some I've collected.

I like slashed or dotted zeros, especially when reading programs or data.


Consolas (free, X) - this is my default programming font when on a new computer.


SourceCodePro (free, X) - This is a new one (2014) from Adobe. Preview the font here.


General Windows utilities

Arainia Gizmo Manager (Win,free)  (burning iso, generating file hashes, text editor, etc.) 


Audio Switch (win, free) -  allows you to switch between different output targets, like from headphones to speakers. Very handy on Windows.

Bins (win,$5) - inexpensive extension of the built-in Windows 7 toolbar which allows you to stack-up icons. I find this superior to the "dock" programs on the market, such as RocketDock and ObjectDock.That style seems to work for Mac OS/X users but on Windows, the toolbar works best for me.


DefaultProgramEditor (Win,Free) - make it easy to change defaults.

Dexpot(win,free) - this is a multi-desktop management tool. Lots of features.  It is a bit heavyweight at times but on laptop, it is very nice since you have limited screen real-estate.

Dragon Naturally Speaking(Win,$) - this is the best speech recognition software I've found. If you are going to be doing a lot of speech recognition, this is the one to have.  It also has an API which some folks have managed to write very nice extensions with.  However, the free built-in software in Windows is pretty good if you want to get a sense of what you can do.

Hashtools (Win, free) -  This is a free tool to generate SHA1, MD5, SHA256, and other hash codes.

JSONViewer (Win,free) - This set of utilities allows you to easily view JSON files on Windows. Comes with plugins for Fiddler and Visual Studio.

Keyboard Jedi (Win,free)- This utility allows you to see your keyboard presses on a transparent scrolling log window. This is great for when doing presentations or using a speech recognition software because you can actually see what is pressed. From Roy Osherove (check out his Test-Driven Development training - I've only watched his free TDD videos and they were quite informative).  It seems folks are switching to Carnac as the replace for this but I couldn't get Carnac to work on Windows 7.

Ninite (win, free) - a tool for keeping some specific Windows utilities up to date. It is particularly good for updating the Java JDK and such.

NirSoft Utilities (Win,free) - These are excellent utilities for Windows. I use the following:
  • cports - see what is listening on what ports (in a win)
  • nircmd - handy command line tool for setting volume, shutting down system, ejecting cd, restarting services, etc. Lots of features.
  • zip installer - turns zip files into MSI installers. Very handy.
Oddly enough, it sometimes gets a false positive hit on some antivirus tools (at work) but not on Microsoft's tool.  

MyFolders(Win,free) - this allows you to quickly copy and move files to your favorite folders by simply right-clicking in explorer.  I used to use FileTargets (from Moon Software) but it doesn't support Windows-64-bit.  This one works great.

OpenWith(Enhanced) (Win,free)-  slick enhancement to MS Explorer to allow for more choices when doing "open with" in the context menu.  Removed. was good, but no longer supported and started acting wonky.

Rapid EE(Win,D) -  This tool is a MUST HAVE tool. It allows you to easily edit your environment variables.  Unlike the lousy tool supplied by Microsoft, this tool has it all.  It is my go-to program for anything having to do with diagnosing or editing my PATH variables.  It tells you what paths no longer exist, lets you select directory components rather than type and get them wrong, and a host of other features. Even after Win 10 added a better editor, I still find this more useful. Seems to not work any more?

SendToKindle (Win,free) - This app from Amazon is handy because it lets you send .pdf and .mobi (e-book reader files) directly to your Kindle for reading.  Simple and straightforward.

SendToToys (Win, free) - This app allows you to add more options to the Send To menu.  My favorite is the ability to easily copy a filename (or path) to the clipboard.

SoundSwitch (Win,free) This sweet little tool allows me to quickly switch audio output. Extremely handy when switching between headphones and external speakers. Update: author no longer supports due to no longer using Windows.  However, it is open sourced under GPL v2.  I see 6 forks. See zvolume pro as alternative.  Update: It has been adopted by a new maintainer. https://github.com/Belphemur/SoundSwitch but I haven't tried it yet.  2nd Update: I'm now using Audio Switch.


Total Commander (Win,shareware) -This is a windows based program for you Norton Commander fans. It has a plug-in based architecture, built-in viewers, can do bulk renames. It's a regular Swiss army knife, made in Switzerland.

Universal USB Installer (Win, free) http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

WinCompose (Win, free) https://github.com/SamHocevar/wincomposehttps://github.com/SamHocevar/wincompose.  If you type special unicode characters or a foreign language (I use it for French), this is a great utility that reminds me of the Compose key on my old DEC VAX vt220 keyboard. By the way, the first time you run it, it will take a seemingly long time to generate the "Show Sequences" dialog. Just be patient and it will show you the amazing list of shortcuts.

ZoomIt (Free) - great tool (like everything at SysInternals.com ) for zooming on screen, drawing, etc.

zvolume pro ($) - volume and audio device management tool.  paid but full of features.  I'm investigating this one as a replacement for SoundSwitch which has fallen into disrepair. I'm still evaluating this one.

Graphics and Visualization

ATT Graphviz (free,X)- this is an amazing tool for building graphs automatically.  I don't mean barcharts, I mean graphs of interconnected nodes.  Fantastically powerful.

ColorCop (free, Win) - a color picker tool that keeps thing simple.

Paraview - I started using this as part of my studies. Interesting platform.

Milton (Patreon, Win) - an infinite canvas drawing program. (learned about this at http://handmadehero.org).  Very simple set of keystroke commands and works well with a drawing tablet.

Sizer  (free, Win) -  A tool to force windows to be a certain size. Handy for screenshots or reproducible testing.

IrfanView (free, Win) - excellent photo viewer and light editor (cropping and such).  I've used it for years.

PyxelEdit (share, Win) - editor with a focus on Pyxel graphics (like 8-bit games)

ShareX(floss, X) - screenshot tool that also does GIF and other formats. My new fav.  Does uploading (which I don't use) but allows for many options on postprocessing. Slick idea.

MermaidJS (floss, X) - makes diagrams from markdown. Very nice. Now integrated into Github.

Integrated development environments  

I'm still a heavy user of text editors rather than integrated development environments. I find it depends on the language I'm working with.  In Java and VB.Net, you would find that the IDE is a more productive environment (generally speaking).

Eclipse (X,FLOSS)- the "standard" but not always the best in my opinion. I've found many plugins are not nearly as stable or solid as in NetBeans.  No objective evidence, just my experience.

Microsoft Visual Studio for Visual Basic.NET ($) -  I do write and maintain .NET programs so this is the tool of choice. I would probably prefer Delphi but frankly Visual Basic.NET is a pretty amazing language and Delphi is so expensive.

Netbeans (X,FLOSS) - My favorite Java development IDE. It just makes more sense to me than Eclipse.

Code::Blocks (X,free) - I'm starting to use this for C++ code on Linux. Nicely done.

Keyboard Enhancement and Experience utilities

AutoHotKey (win,free) - a great tool for writing utilities on windows. It is also easy to attach autoit scripts to keyboard and mouse events.  Right out of the box, you can use it to help autocorrect in any window. Just great.  Also, on certain laptops (like the DELL 7470) there are no HOME and END keys. So I use AHK to remap two useless keys instead.

WindowPad (win,free) - a great tool (built on AutoHotKey above ) to reposition windows using WIN+Keypad numbers. Great when using speech recognition or avoiding mouse. Also great when for some reason a window refuses to respond to mouse commands.  Update: I have to give this one three thumbs up.  It has become part of my workflow to such an extent that I can't work without it.  This should be built into Windows.  Update: it basically is now, so I've stopped using it as much.


Image Processing and Manipulation


OJOSoft Total Video Converter (Win,$) - there are free ways and there are easy ways. This is an easy way. Converts FLV files, MPG, MP4, etc. OJO video converter does a great job of converting any file to FLV.
VLC is needed to actually view the FLV which flash doesn't (ironically).  Company out of business. Too bad.

Geotag Security (Win,Free) - this program is used to strip the GEO Tag information from image files.  What are Geo Tags?  They are essentially coordinate information (like GPS coordinates) that are stored in photos you take, typically with Cell phones but also other devices.  While GEO Tags are great for automatically keeping track of pictures you've taken (like on your vacation), I'm concerned about pictures taken at my home or work location  (this page has some interesting information about John McAfee).  This program is available in a free or pro version.  The pro version is capable of automatically stripping the GEO Tags in pictures in a given set of file folders and protects up to 5 computers.  There may be other ways of doing this but I found this tool pretty easy to use.

ffmpeg (X,free) is a great tool but extremely complex.  You'll want to search on the internet for examples of how to achieve what you want.

gifcam(Win,Free) is a tool that acts like a camera producing a GIF from your desktop. Just started playing with this but impressed so far.

Internet Network programming utilities 


Fiddler2 (Win,free) -this is a proxy tool which allows you to see the traffic between your web browser and your web servers, even if encrypted. It works as a plug-in for Internet explorer. Extremely handy.

Charles ($) - http://www.charlesproxy.com/ I haven't used this one yet. Looks good.

JavaScript Programming utilities

I program almost always in JavaScript (well TypeScript anyway) so I have a suite of utilities I use.  I will say that many of these unit testing suites can be frustrating to use on Windows.  I believe the fault is windows and the fact that many programs like nodejs don't seem to use powershell yet.

KarmaJS (X,Free) - test runner

JasmineJS (X,Free) - unit testing framework for JavaScript. Not quite like xUnit.  Uses describe() and it() functions along with something similar to hamcrest for comparisons.

Gulp (X,Free) - build tool that I find most appealing for JavaScript. But frankly, you could use GNUMake.

PhantomJS (X,Free) - headless browser - super useful.

Mathematics and Calculators

HP-15 Calculator (X, free) - this program seems to be much more beautiful than other simulators. It also connects with the Swiss Micros DM-15, if you have one.  This one is written in TCL/Tk. I happen to like RPN calculators so I use this one.

Maxima (X, free) - this descendant of MIT Macsyma is still useful and, well, I use it!

Scilab (X, Free) - this is another Matlab clone.  I'm a casual user of such tools so I find it is sufficient for me.

GNU Octave (X, free) - this is a Matlab clone. Pretty nice. I just don't do much with it these days.  When I do matrices, I tend to use Maxima.


Music Tools


RIP Grooveshark.com - last day of business was April, 2015.
I love listening to GrooveShark.com - it's the only music site I use.

I've since switched to Digitally Imported (http://DI.FM) and Amazon Prime.

Clementine (X, free) - this is the client I just switched to for listening to GrooveShark Digitally Imported.  It seems to do everything I want and it's a client not a webpage.  I have Dexpot setup to move it to my 3rd desktop so it doesn't interfere with my work except when I want to switch to it. Very nice.

Floola (Win, free) - this is the podcasting tool I'm using with my 5th generation iPod video. (with the 1 inch screen!)  So far, it appears to work. We'll see.  ITunes was not able to work with it yet the ipod was solidly constructed and works fine.  I feel I can trust it more than a cell phone because when I'm travelling overseas, I don't want that phone just turning on (fat fingering and such) and using up a bunch of high dollar bandwidth.

Network Monitoring

Network monitoring is a complex topic. However, there are simple tools you can adopt in your small team/home environment.

Xymon (X, free) - simple tool, good for small lab or home network.

Wireshark (X,free) - probably the best protocol analyzer you can get.  I have used this to find problems on my home network.

Nagios (Linux,free) - for basic monitoring, still the one I turn to. I've had mixed results with others and my needs are basic. I am a big fan of the simple method for writing plugins. Don't know if this scales to bigger, enterprise class problems.

Zeek (Linux, free) - this is my new exploratory tool.  used to be called Bro. I'm glad to see the name changed.

Mathematics and Statistics Tools

Maxima (free) - symbolic algebra and linear algebra tool.  Not quite as powerful as Matlab or Mathematica but I was able to do quite a bit with it and it's free.  I ran into problems doing inversion of (large) matrices.  Matlab (and Scilab) had no problem.  This is still my go-to mathematics tool because it is more general purpose than either Matlab or Scilab. Kinda Lispy -- because it is written in Lisp. Go figure.

MATLAB ($) - great but expensive - consider Scilab (below) if you're budget cannot afford it.

R (X,free) - nice language for expressing math and particularly statistics. I find it a bit  obtuse. You have to spend some time with it to learn all the intricacies.  Frankly, most stats can be done easier with Excel!

Scilab (Win, free)- a free and mostly (70% perhaps?) compatible with MATLAB.

Julia (X, free) - a dynamic programming language I think will change the world. It is fast (compiled) but easy to program like JavaScript or Ruby. Speed and Power - what's not to love?

(free) - a language derived from APL, could even be considered the "spiritual successor to APL". I'm looking to learn more about this but I'm finding the language rules not as reasonable (or modern) as R.

Microsoft Excel - with the inclusion of the statistics add-in module, this is a powerful analytic tool.

Python with Numpy and Pandas is pretty nice too.

Operating Systems

Windows 7 (Win,$) - this is my primary desktop operating system.  I have not moved to Windows 8 yet.

Freedos(X,free)  - this is what I use if I want to run DOS in a virtual machine, such as VirtualBox or XEN.

I use a number of different Linux distributions, for different needs:

Ubuntu (L, free) - this is my favorite.  I have switched to the KUbuntu flavor but it's rock solid and works great. Even my mom uses it now.

Other distros I play with:

OpenSuse (L,free) - solid distro that seems a lot like Ubuntu.

Fedora (L,free) - this is the other Linux distros I use on laptops. Only use for me was to check out SELinux.

On Servers, I use two distros:

Centos  - this is the Linux distribution I use on servers because I want to know how RHEL works and RHEL dominates the enterprise.

Ubuntu Server - I use this one when I want to have ZFS, like my home NAS.

Package Installation (aka Installers)

On Linux, you use the package installer provided by your distribution. Thus, I use APT on Ubuntu,  Zypper on OpenSuse and I use Yum on Fedora.  Both of these install RPM (redhat package manager) files.  I'm quite intrigued by the NIX package manager but haven't used it yet.

Chocolatey (Win,Free) is a package that gives Windows an "apt-get" (for you Debian linux fans) equivalent command. I'm starting to think This is the way to go on Windows.   I'm a big fan now.  One script installs a PC to my liking.  For VMs, I may consider going with "box starter".

NSIS installer (Win,free) is a MSI package creator for your projects.

ZipInstaller (Win,free) is another great NirSoft utility.  Turn zip files into normal MSI installers. Which means they now show up in your registry and can be "uninstalled".

Box Starter (Win, Free) seems like an interesting package. I'm not using it yet.

Password Management tools

My two favorites are LastPass and Roboform.  I've also used KeePass on an encrypted hard drive.

These are great for people who can't remember passwords and can't think of good random passwords.

Path management

Built-in Windows subst command.  Does the job and does it free.  If you read the website for Visual Subst, they point out some limitations. These have not hampered me but YMMV.  I learned the habit of making a W: (work) directory for whatever I'm working on from watching other developers. It works (when I remember!)


Visual Subst (Win,free) is a GUI front-end to the SUBST command. This is really handy. It allows you to provide a drive letter which redirects to another drive + path.  For example, you could create a w: drive that points to your c:\windows directory and path.  This is great for standardizing drives when everyone has their own preferred layout.  Just agree on the subst drives and let everyone map as they chose. It's still not as nice as AmigaDOS or OpenVMS when it comes to multi-letter volume names (yes, you could have a drive named RON_HOME_DRIVE: ) but it is as good as it gets on Windows.

Note: Editing paths is sometimes necessary.  If you're using TCC, it's easy. Just type "ESET PATH" and you can set the PATH variable interactively.  Or, use Rapid EE (see above)


Viewpathing is a cool idea - I don't have any special tools for doing it on Windows. Suggestions?

Printer Management

iPrint (Win,free) - lets you preview your print jobs to make sure you're only printing the pages that matter.

Project Management


ProjectLibre(Win,Free) - I have found this to be sufficient for my personal project management needs.

Microsoft Project(Win,$) - I use MS Project for work projects because it is powerful and dependable.


Search and Navigation

Listary (Win, $) - is my  new favorite search tool. Integrates right into explorer. fast and fluid. Very nice. I registered the pro edition and love it.

Launchy (Win,D)- my former favorite on windows.  I use it to quickly navigator to folders.  I also use the Favorites feature in explorer to pin my top 10 favorites.  The combination makes navigation quick and easy.  I use it much more often than Windows Desktop Search which is slow.  I have tried many others but this is what I use.

RegexBuddy (Win,$) - Fantastic tool for testing and writing regular expressions (aka patterns or regex).  Yes, you can struggle without it. I did for years.  But having it in my tool box now makes using regular expressions a treat.  It's a great laboratory for debugging regular expressions.

Security Software

Sandboxie (Win,$) - this is a sandboxing program, loosely similar to FreeBSD Jails.  Sandboxie makes programs *think* they have access to the filesystem and registry but actually redirects all updates to a sandbox.  Very nice when running  unknown software and you want to know what that software is doing to your system. Lots of capabilities but tricky to use.

See Geotag Security above - I think removing unintended GeoTags is a good thing to do.

Servers

Apache HTTPD Server - still a favorite because I'm somewhat familiar with the configuration file and plug-in system.

nginx (L, free) - this is what I use for newer projects.  

WAMPServer (Win, free). On Windows, this wraps PHP, MySQL, and Apache into a simple to install bundle with a nice little manager toolbar.

FileZilla FTP Server (Win, Free)- this is my preferred SFTP server.  I also use the client.

Roxen Web Server (X,Free)- when I'm doing simple server stuff, this one is simple and convenient. It's been around a long time. No longer my first choice however.

Serva (Win, free) - a multi-server which includes HTTP, FTP, TFTP, DHCP, ProxyDHCP, DNS, BINL, SNTP, and Syslog all in one. used for PXE services (booting machines off the network.) Probably fine on a small local home network.

Scripting languages

KornShell (U) - still my favorite although I use bash more and more often.  Use the 1993 version, not the 1988 version which is more limited.

Perl (X) - Perl 5 is the king of Unix scripting languages.  The Camel book (Programming Perl: Unmatched power for text processing and scripting) taught me a ton about Unix programming. Perl 6 (now called Raku language) is available at https://raku.org/  and my initial testing says interesting but still very complex.

Python (X) - the upstart. truly object oriented (unlike Perl)  I find it easy to use and understand.  Jython is the dialect for the JVM. IronPython on .Net. Frankly, anybody can read this. It's that clean.  With Numpy and Pandas, it's a data processing powerhouse.

Groovy (X) - I'm getting into Groovy more often now (thanks to Jenkins).

Ruby (X)- I like Smalltalk and Perl so I like Ruby! The functions seem so much like Perl (such as gsub for global substitution) that it's a bit more comfortable at times than Python.

JPSoft's Take Command - I have been using 4DOS, 4OS2, and 4NT for years so I just had to continue with Take Command.

JavaScript is the language I find myself using more often now but not for utility scripting ala Perl.

gow (Win,Free) - Gnu on Windows. A bunch of Unix/Linux utilities compiled natively for Windows.  "cinst gow" to install with Chocolatey.  Unfortunately, bundles a few broken utilities like a copy of VIM (but with out syntax highlighting and other goodies.)  So, I tend to trim the install down a bit after installing. It's still great!

AHK (Win,free) - on windows, you learn AHK (and powershell).

Source Control and Configuration Management

Software development without source control is amateurish and dangerous.  As a manager or business owner, I would never tolerate it. The state of the art is currently distributed version control (DVCS). This means that every developer has a full copy of the repository, making disconnected development a breeze, and helping make merging easier as well.  That is not to say that centralized VCS is not useful but I find DVCS more natural to use.

Fossil (X,FLOSS)- simple to use but not well known. Includes a built-in WIKI, bug tracker, chat, and forums. I find it very nice for solo work. It is also quite tiny (one small executable of about 1.3MB), unlike other tools such as GIT and Mercurial. I was surprised to see my Windows GIT install tipping the scales at over 100 MB. I also like the fact that is includes a built-in web-server.  I like the straightforward command language.  This is my go-to program.

GIT (X, FLOSS)- now the industry standard, originally developed by Linus Torvalds, it has quickly dominated the industry. I find it more brittle and complex than Fossil. That's probably because I tried using a couple of the "friendly" front-end tools that tend to hide problems.  From the command line,  GIT works fine. If you're only going to learn one, this is it.

Mercurial (X,FLOSS)- (aka HG - the chemical symbol for Mercury) the next most popular tool in this category.

Let's be clear  - I don't use any of these deeply enough to claim I fully understand the differences between them.  I just know my own workflow and how I'm able to be productive in each of these.  Also, if you believe in Trunkbaseddevelopment, then you shouldn't be branching anyway and that's where they all differ!

Programmer Utilities


CLOC (Win, free)- This is an open source tool from Northrup-Grumman that counts source lines of code. While this metric often gets eyeballs rolling, it is still useful in getting a sense of the size and bulk of a code base.


System Utilities (care and feeding of my Windows desktop)


Acronis Drive Monitor (Win,free) - checks on my drive health. Reads and displays the SMART parameters in a simple to understand way. Unfortunately, does not detect the use of cloud based backup. Could be because Acronis sells a backup program as well?

Growl for Windows (Win,free) - sweet tool that consolidates all of your background notifications into one place. Network addressable, easy to program for. What's not to love? Oh and it can forward to iPhone, WindowsPhone 7, and Android with 3rd party apps. It also has a nice command line tool for integration into batch scripts.  Snarl is equivalent but I like Growl just a bit more in terms of visual appeal.

Piriform Speccy (Win,free)- generate specifications of your desktop. Ever wonder what brand of motherboard you have, or kind of RAM? Rather than open the case, you can run Speccy and pull the data directly.

Revo Uninstaller (Win,free & $) - truly remove all traces of a program when you uninstall it. I pay for the pro version because I support their work and it's a great tool.

Service Control Manager (w,free) - this tool lets you not only start and stop services like the built-in Windows service manager but you can also add and remove services (which ordinarily requires a command line tool.)

Turbo Service Manager (Win,free)- this tool has even more options than Service Control Manager. Comes with 32-bit and 64 bit versions.

WindowInspector(Win,free) - this tool allows you to see all sorts of Windows event stuff. Probably most useful to a software developer on windows. There is a tool called WinSpy++ which does this kind of stuff as well. I don't use either one much.

WizTree (Win,free) the fastest way to get your disk hogs. Much faster than WinDirStat. My new favorite.
 
WinDirStat (Win,free)  was the best way to find disk hogs but now I use WizTree.  I leave it here in case something were to push WizTree out of the #1 position.

Terminal Session Management

tmux -(free) whether you use tmux or GNU Screen, if you're on Linux, you need to be using this kind of tool.  Just remap the default keystrokes to be more rational.  I use ^T because ^B is back a character in emacs and back a page in VI. Control-T is only used in Emacs for limited use.  Apparently, screen is somewhat in disrepair so I've switched to TMUX. Both have served me well.

WindowsTerminal (Win,free) - gives you much of what tmux does on Linux but on Windows. Just need to learn the keystrokes.

Text Editors

There are tons to choose from.  The current top of the heap among programmers is probably either VIM or Visual Code.

Notepad++ (Win,free) -  my go-to editor for daily use. Are you still using notepad? Please. 

VIM (X,free) - Heavy Duty text editor which is particularly good if you were raised on Unix.  As an example of an organizational productivity tool, we used to use VIM at a phone company to edit and verify extremely large files.  VIM would edit these without a hitch where as other editors would either choke and give up or simply take forever to load.  In this use case, VIM is acting a bit like the legendary mainframe tool File-AID.

NeoVim (x,free) - A fork of sorts of VIM but with nice built in features including an API. Seems to be taking some market share from VIM. This is what I'm using mostly these days.

Kakoune (Linux, free) - works only on modern linux and is lacking many features from VIM. Still, it's worth learning if only to see what could be a better way. I think it should be possible to build this into VIM as opposed to an entirely new engine. Just seems wasteful.

Visual Codium (X, free)  - Heavy Duty text editor but without the unfortunate Microsoft adds on that relate to telemetry. I don't need my text editor to spy on me.  I feel better using this version that runs the same extensions but doesn't include that nonsense.


Incidentally, I mention File-Aid earlier. I'm rather surprised that only one open source tool has been attempted (record-editor). I would think this would be a popular category but I guess people struggle using inadequate tools instead.  If you're working with large, fixed-format flat files, you need a better tool than Windows Notepad.

bowpad (Win,Free) - I just came across this editor and I already think it makes sense to recommend to my friends.  It looks like MS Word, with a Ribbon Bar, but is a regular text editor with syntax color highlighting. Simple and functional.

GNU Emacs (X, free) - the grand-daddy of all programmable text editors.  I was a heavy user in the early 1990s of this editor. I've recently begun using it again.  Solid and dependable.  On Windows, there is a 64-bit port I'm trying at http://emacsbinw64.sourceforge.net/ but I can't vouch for it since I've only just begun using it.  One strong point behind using Emacs is that it is truly multiplatform, has a powerful macro language (ELISP), legions of fans, and you can use it as an IDE.  You start it up once in the morning and stay in it all day because (at least on Linux), you can do just about anything from within Emacs.  Always worth exploring.
 
I've removed Atom and Brackets from my list. They still work great but the momentum has completely shifted to Visual Studio Code (and by extension, Codium). 

I also host http://texteditors.org so head over there to see all the choices you might have.

Time Management

ManicTime (Win,$)is a good tool to better understand how you spend your time.  The visualization for this tool is excellent. The pro version has useful features but you can use the free one just fine.

ProcrastiTracker is another free alternative.

The best ever was SphericalTech Time Tracker.  But they are no longer in business. I paid almost $150 at the time for it but now can't find my keys. grrr.  Such a nice program; sigh.

Unit Testing frameworks

I am doing a lot of Java and JavaScript programming for school.

For java, I like TestNG(x,free).

For JavaScript, I use Karma (x,free).  I also use PhantomJS and JasmineJS.   I now just use plain old Node.js - it has what I need, which is the assert function.  

Voice over IP

Skype (free,X) is still my go-to voice tool.

Linphone (free,X)  is a new tool I'm exploring for use with SIP.

Writing tools


TreeSheets http://www.treesheets.com/ a tree structured grid-based organizer. Not a well known tool, it provides the best parts of a mindmap, and a spreadsheet.  Hierarchical spreadsheets- who knew?  I like that it has a language (Lobster) and that it is multiplatform.  If it adds functions and spreadsheet style recalculation, I could see myself switching.

Microsoft Office ($$)

Open Office (free)  I have found this more stable than LibreOffice.

Zotero (citation manager) (free)

PDF SAM (Split and Merge). This allows you to split and merge PDF files. For example, you have a bunch of PowerPoints you want to merge but the color schemes are incompatible. Print them to PDF and merge the result.

Software as a Service (SaaS)

Kall8 - 1-800 telephone number service. I used them for my small biz many years. Worked great then but haven't used them in years. I would still turn to them first because they were so good. But that's just me.

TrustFax.com - internet fax service. easy to use and convenient for when you don't have a fax line.

Zoho Creator -    While Salesforce.com is an awesome tool, I've found that Zoho gives me plenty of power, lower cost, and control over some details (like calendaring) which SF simply didn't have (at the time.) It's been a few years since I used it but I was impressed. Not U.S. based, if that matters to you.  The language is called Deluge and it is fantastic.



Unix / Linux Utilities for Windows


GOW (Win,free) - while you can enjoy using Cygwin, I'm not a fan of using Bash on Windows. This is Gnu on Windows and it has a nice windows-friendly installer.

AltDrag (win, free) - do you like how you can press Alt and right mouse to resize windows easily in Linux (at least in XFCE) ? You can do it in windows now!

Virtualization

Though some operating systems can be easily simulated or emulated on Windows, others are better run in a virtual machine.  Virtual machine technology has been around since the late 60's / early 70's. It's phenomenal and has powered the cloud from the beginning.  The advent of Microsoft WSL and WSL2 is starting to blend Windows and Linux in interesting ways.  At this time, WSL2 is still in preview but I anticipate it will make a huge difference.

Vagrant (X, Free) - Vagrant is a utility for managing virtual machines. It is not a virtual machine hypervisor.  For that, I  use Virtualbox.  I also use the vagrant-multi-putty plugin which is wonderful because it lets me use Putty, my preferred SSH client.

VirtualBox (X, Free) - VirtualBox is a free multiplatform x86 hypervisor by Oracle.  I'm grateful that they provide such a sophisticated package for free.

HyperV (X, free) - free only with Windows 10 Professional.  Works well but conflicts with Virtualbox. Since virtualbox is multiplatform, I give it the slight edge.

Starwind Converter (X, free) - a converter from ovf to vhd/vhdx formats. Very handy for when you export from Virtualbox or VMWare and want to run in HyperV or Azure.

Retired / no longer used.


FDM - Free Download Manager (win,OSS).  Although this program sounds like some kind of shady tool, it is actually quite handy.  It has a built-in BitTorrent client as well as FTP and other file transfer capabilities. It is open source (GPL) for windows only.  I stopped using this because (if you turn on BitTorrent) you'll find your machine getting pings from all over the world and I'm not happy about that.  The value to me of having FDM didn't exceed the risks. note: I understand that's how bit torrent works but I noticed that even when I didn't have Bit Torrent enabled, starting the FDM program still caused me to receive pings.



Comments

Popular Posts