“Project WhatPulse”
WhatPulse started 14 years (!!!) ago to replace an existing key counter that was retiring. There was a bunch of us on IRC using this counter and didn’t want it to go away, so I took the existing client & website and started hosting it so that we could continue using the counter.
That was right around I started with a programming class in trade college and decided to take what I’ve learned and unleash that on the client to start extending the feature set. Adding click counting (the original client only counted keys), mouse mileage and a bunch of features on the website. This was all just toying around and only me and my friends were using it.
In the course of a few years people found the public website with a registration form some how; mostly by word of mouth (“hey look how cool this is!”), as I never did advertise for it. The user-base kept growing and growing until WhatPulse had around 50.000 active users in 2005.
Enter Premium Services
This was when I needed to do something about the hosting costs of the website, as it was basically costing more than I was willing to shell out for a side-project (couple hundred a month). This is when the premium version first came to life (with awful features like upload space and an email address on @users.whatpulse.org). People subscribed to help out with the hosting costs and I could continue to dabble without going broke. This went on for a few more years, releasing versions with features I wanted to build and geek out on.
WhatPulse 2.0 & Project Deimos
Another milestone was in 2011 when the user count hit 150.000. This was the time when the premium income didn’t cover the hosting costs anymore and I needed to level that out again. At the same time, Robbie Groenewoudt from the Deimos Project (similar to WhatPulse) contacted me about wanted to merge his client and users with WhatPulse. This was when we started working on WhatPulse 2.0 together. Cross-platform with all the same features. We added networking and uptime capabilities. My inner geek was going nuts. This new version would also have better premium features (application centric) which would help keep WhatPulse self-sustaining.
WhatPulse 2.0 was also when I got the stats bug again and began doing a lot more work, especially on the website. Dabbling went on, only a bit more frequent. Robbie eventually moved on to other things.
Sometimes the client sucked.
After 2.7, I wanted (and needed) to do more with quality control, as the project had grown to around 250.000 users and they all had different computer configurations — some who did not like the way the client was built and there were some nasty situations for users (corrupted databases, crashing all the time, etc). All client builds and installation files were manually and well, I made stupid mistakes here and there. This frustrated users and be proxy, me.
Automate all the things
With the help of James Newton, I began to automate the client builds and add tests to make sure the client was of a certain quality. This took a long time to get right. I needed a system that could build and test the client on all platforms. This probably took 9 months alone. It didn’t help that I was creating the new dashboard (it’s awesome, though right?!) at the same time.
This automated build and test pipeline was finally done in May of this year and I focused on fixing some bugs in the client itself, plus adding some stuff here and there (Milestones for one, which I’ll cover in an upcoming post).
Before having automated it, a manually build & test procedure took me around 12 hours on every version release. 12 hours are pretty hard to find when you’re working a 40 hour job and have a couple of other side gigs, which basically meant just releasing a new version took a week or two of scrambling for time. Now, it takes 10 minutes. -micdrop-
Things like releasing a new version in a day is now possible. Which was convenient when I forgot an automated test in 2.8 which caused the client to crash on certain configurations when making a database backup. The result of all this was that I was able to fix the client and release 2.8.1 within 2 hours.
Summary
So this was a very long way of saying that WhatPulse is still a “project” and that things are going to take time. However, to all the new and awesome tools out there to support development like this, releases can be sped up tremendously.
Moving forward
Ideas for WhatPulse are pretty much endless. My own ideas are on a huge backlog and I’m getting more and more ideas from you guys. Since introducing the “I wish this page could..” feature on the website, I’ve implemented 50+ of those ideas. Awesome stuff, it feels like we’re in this together.
Continuing on the same positive note, James Newton has agreed to partner up and start to work on that backlog together. This means WhatPulse has two dabblers now, which should increase productivity. ;-)
I’m looking forward to getting more of our ideas to you and I hope you will enjoy them. We’ll also be sharing more stories here. If you have any ideas or commentary on WhatPulse, please let us know.
Thanks for reading!