Wednesday, January 12, 2011

From building an online typing app to writing a book on scalable web apps

Now available at Amazon
One year and a half ago, I was looking for looking for a typing application we could use for our typing championship. There were few that I like and I approached their authors to try to buy them. Unfortunately their asking price was too high and we could not afford any. So I decided to develop my own: Typrx - Typing Races. I had to choose a highly scalable platform that minise - Google App Engine - which is the only platform that scales automatically in real time based on user load. Furthermore, I wanted to have a non-flash UI, so I selected Google Web Toolkit (GWT) which generates smooth Ajax UI based on Java code (! crooked I know but so awesome: you work in Eclipse with all the Java debuging tools).

Making a real-time online multi-player typing game is not trivial to say the least. I was able to fight network and App Engine latency with some tricky time synchronizations. Other challenges were undertaken: datastore concurrent updates, large scale schema changes, overall UI responsiveness and so on and so on.

The result was awesome. Multi-player typing races are smooth. The typing championship when well and Sean Wrona won the crown. Little known fact: Sean did an unrecorded practice race topping 213 wpm with 100% accuracy. This is unreal.

Using GWT with App Engine has a steep learning curve even for experienced programmers. At that time, I wish there had been a book that would have explained how to build scalable apps like this. There was none. I had to discover all best practices by Googling, asking forums, and creating some myself after bumping into problems. I acquired valuable experience. I thought I could write that missing book. I contacted Amy, a friend and software wizard (after all she is a Stanford Computer Science Ph.D) and she came on board as a co-author. Packt publishing trusted us as first time writers and sent us a contract. And voila - we were on our way to spend depressing nights and weekends over the blank pages of a book that was not going to write itself alone...
After a year of hard labor it finally came out (post). Today, our book Google App Engine Java and GWT Application Development is now available on Amazon.