As part of a personal project, I had a scenario where I expected to be doing large HTTP uploads (ex: PUT ) over a slow network connection. The typical user experience here is to show a progress bar, and that's exactly what I wanted to do. So I wrote some