When I first released No More Secrets, I announced it on reddit.com’s “programming” community, which has over a half million subscribers. I was delighted at the first few positive responses and upvotes. I figured that my post probably wouldn’t get much more than 25 upvotes before interest tapered off. But that didn’t happen. The upvote counter kept climbing. Approximately 3 hours later it had received over 800 upvotes and was prominently displayed in the top position for all subscribers to see. It stayed in the top position for more than 16 hours, and took a full day before finally falling off of the front page.

Right about the time it had achieved the top position on reddit, a kind stranger saw an opportunity for some easy internet points and posted about it on news.ycombinator.com, another popular software community with a large subscriber base, where it received similar fanfare.

Traffic to my github page blew up. People were installing my project from all over the world. I was delighted, and perhaps even a little proud of myself. But my inflated ego wouldn’t last too long, because I soon started receiving bug reports, which turned my delight in to anxiety.

Some of the bugs reported were just user error, but they still revealed areas where my documentation was lacking. Of the legitimate bugs that were reported, I separated them into two groupings: 1) Bugs that caused program failures or faults, and 2) Bugs concerning lack of support for a platform or character set.

The first category of bugs, the failures, were mostly quick and easy to fix, and there weren’t that many of them if I am being honest.

But the second category of bugs, the support bugs, took a considerable amount of time to address. For example, my first release only supported ASCII text. This means that it doesn’t work for anyone using an international character set. I received multiple reports for this issue. I needed to implement support for unicode — a standard for character encoding that supports international character sets. But my entire program was designed to assume that each character is 1 byte in length. Unicode characters are up to 4 bytes long. It required the re-engineering of a significant percentage of code.

Also missing from my original version was the proper character set used in the film. Again, my original release only used ASCII characters, but the film clearly shows non-ASCII cyphertext during the decryption sequence. A few users were quick to point out that the character set used in the film was called ”Code Page 437", which was the family of characters used for the original IBM PC and DOS back in the 80s and 90s. Having already implemented unicode support, extending that functionality to use CP437 was a somewhat easier task.

I spent the following days addressing all of these issues. Since the download counter on my github page was showing no signs of letting up, I felt pressured to get these changes shipped as soon as possible. It was a good learning experience.

About a week after the announcement, with all of the bugs fixed and new features implemented, I could relax. Traffic had finally tapered off.

Fast-forward 4 months.

I was at a barrel-aged beer festival with a few friends enjoying the pleasant Saturday evening when my phone buzzed with a notification. Someone had mentioned my project on twitter. I didn’t think much of it. It still happened on occasion. But then my phone buzzed again. And again. And again. Soon it became apparent that something was up. I went to my github page looked at the traffic and download stats. They were sharply increasing. What was going on?? I could hardly enjoy my oak-aged coffee stout.

After some digging, I found out that my project had been blogged about on adafruit.com and sent to their 120,000 twitter followers. This sparked an initial flurry of twitter activity which in turn caught the attention of someone from lifehacker.com who decided to feature it in a front page article, exposing it to their one million unique daily visitors.

For the second time, my github page blew up. Traffic was climbing. It was happening again. I remembered all of the bugs I had to handle last time. But this was different. My code was well tested and much improved since the original release. This time there were virtually no issues reported. Nothing major. I could actually relax and enjoy the experience.

It took about a month before traffic to my github page finally returned to normal.