Launching a new site is always fun and exciting. You put a lot of hard work on something and have that great feeling of accomplishment. At the same time there is that scary feeling that something might go terribly wrong. And it sometimes really does happen.
My worst war story was TheCounter launch on the post bubble days. The site had over 2 million free users and our company, mostly depending on advertising model, was bleeding for cash. We had to turn it into a paid site. However the code was impossible to change. Written on pre-PHP days, it was implemented as an Apache C module and had HTML code all over the web server code. If you wanted to make a word bold on a page, you had to recompile Apache and restart web servers on three machines.
I have rewritten the C code as a PHP extension. So you could call the C code from your PHP files like any other PHP functions. This way we did not have to embed the business or presentation logic into the web server. It was a lot of fun work. Well, until the launch date. 🙂 We had sent mailings to announce that TheCounter was to become paid. The traffic skyrocketed, and Mysql database that handled the logins choked. The server that handled logins came to a crawl until we setup a new powerful machine and moved the Mysql there. It was a long night, but everything seemed to start working.
Then came the worst bug I have ever encountered in my career. The kind that happens out of blue and corrupts data. It was impossible to catch in happening. Out of thousands of transaction, one happened and it caused us lose a user’s data. It was a two weeks of nightmare. Have you experienced having trouble sleeping and taking a Tylenol PM. Then you still cannot sleep but feel like a zombie because you cannot feel your body. Fortunately there were ways to fix the damage, I have written tools to backup and restore corrupted accounts quickly. After two weeks of trying out everything, our genius DBA Peter came up with a theory. The application was doing a lot of seek and write. According to him it was possible for Linux to be losing buffer data right before it is committed to the hard disk. It was easy to apply the fix, I have changed the code to flush the buffer instantly on the write, instead of letting the OS handle it. And wow, the bug was gone, the corruptions stopped.
The interest for JotForm has blown away my expectations. I am not that experienced or popular on blogosphere so my only promotion was to send couple of emails and two forum posts.
I have received a lot of good feedback:
- Damien Katz suggested integration with a database engine. He is working on something similar. I have also done something very similar with PM Premium Application Builder.
- On an interesting turn of events, clickspice asked for comparisons with a possible competitor FormAssembly. I told him about how I felt when I first encountered the FormAssembly version 2 news and how we are different. Then Cédric, developer of FormAssembly, joined the discussion and said “now you’ve got me motivated, so keep an eye for it”. He has been doing such great job without my motivation, now I should probably really watch out. 🙂
- Received lots of good feedback on Business of software forum JotForm review thread
- Received feedback on various places about JotForm about lacking XHTML support, usage of tables instead of CSS and usability labels. I agree with them all wholeheartly and promise to work on them.
- Joe Drumgoole thinks JotForm is very funky
- Google’s Open source program manager Chris DiBona was also excited.
- Sr-ultimate review thinks JotForm has a very neat interface.
- JustAddWater – Instant Usability & Web Standards blog has a usability review, and calls JotForm “All updates appear instantly in the interface. It’s really nice done.”
- Martin on his Beyond The Type blog thinks “There is a high demand for this kind of widget in the web sphere.”
- Rich Ziade calls JotForm “a neat little form builder with drag & drop support.”