Monthly Archives: July 2017

Side project: Free Workout Timer

A long, long time ago I was interested in boxing and boxing training. I created a tool that was useful to me, but realized it would be useful to many people, for many things.

Free Workout Timer

This free workout timer was originally developed for timing boxing rounds, but after having received user feedback and several good ideas implemented, can be used for:

  • Boxing – 3 minute rounds
  • MMA – 5 minute rounds
  • Tabata – 20 seconds on / 10 seconds off for 8 intervals
  • Anything involving intervals
  • … and more

Beyond those obvious uses, people also use it for yoga, stretching, and in the class room (as a quiz timer). I’m sure there’s many other uses I haven’t heard about.

The timer was a labor of love, and the greatest satisfaction I get from having developed it is that it’s been used worldwide by thousands of people to improve their fitness, or to accomplish things important to them. For free.

I recently updated it to use the HTML5 audio tag, and this new audio format you may have heard of: mp3. It was using wav files. Seems like those are not the way of the future. It now functions properly with:

  • Microsoft Edge – Windows 10
  • Google Chrome
  • FireFox
  • Safari MacOS
  • Safari – iPhone & iPad

Internet Explorer (IE) 11 is a crapshoot – theoretically it works, but the success rate is 50% in my own personal experience. Honestly I don’t have the mental energy to figure out why. Time for IE users to move on and get on Google Chrome…

It took a few years to get to this point – meaning the motivation to make a “major” update. If I recall, iOS / Safari was not supporting the ability to play sounds without user interaction. That was a show-stopper. With that restriction cleared by the overlords at Apple, it only required about 5 lines of code updated, some HTML tags changed, and using an online converter from WAV to MP3 format.

The aesthetic is a little old school, and is likely going to stay that way. It loads quick enough and is meant to be highly configurable for any size display. Any extra aesthetic “improvements” would interfere too much with that goal. “Programmer Art” is alive and well in 2017. I see a lot of competitors with fancy displays that look good, but are completely locked into a limited form factor/size. I value function over form.

Under the covers, the javascript code style is dated, and the CSS is poorly done (for any era). It’s written in a 2006 style of javascript coding. The code base was written and debugged over many years. It’s fairly solid from a performance standpoint. I see no reason to mess with it at this point. I would like to do a ground up re-write using ES6 and all the cool kid stuff, like React or something. But that’s probably overkill and would serve no purpose other than to educate myself on that particular tech. Therefore it will remain on the to do list.

My only other real wish list item would be to make a version that is easier to configure on smaller mobile devices (such as phone form factors), from a UI perspective. There’s a lot of zooming in and out required at the moment.