Showing posts from June, 2013

Night Trek at Khajaguda (!Supermoon)

Yes it was supermoon night but cloud cover ruined it it. While it is proved that supermoon is one of the most over credited astronomical event , still its one of the reason to go out and enjoy the nature at night. Thanks to city light, tough there was no moonlight , we could see the path and do the trek without a torch. We climbed some rocks as well (scrambling). It was monsoon and great time to trek.Thanks to organizers of hats club for holding this meetup and Rajesh for the photos from his new Sony DSLR.

Google AppEngine Channel API

I am not a big fan of page refresh for getting new data from server. AJAX has been the go to technology for these kind of requirements. However its unidirectional. For two way communication where server push is required , we have seen many technologies like comet etc. Websocket and WebRTC has been really cool technologies which helps sending data from server and client real time. These needs special server code for handling such requests. I have already worked on JSR 356 for websocket and glassfish reference implementation (tyrus) earlier. However in Google Appengine provides channel APIs for bidirectional communication. While client to server communication is still over HTTP GET or POST, sever creates a specific "channel" and enables itself to push data any time to specific clients. Under the hood , its actually the client which keeps polling with GET requests for new data to be sent by the server. In any case this API can be use fill in real time game servers.

The server si…


I have been trying to read and use all these technology for my project but I did not find any single article/blog which includes setup instructions for all of them.

Most of these technologies are from Google and optimizes for their PaaS solution.

Google AppEngine - The platform as a service supporting several languages including  Python, Java.
Maven  - Build tool like ant but lets you pull the libraries from the original repository dynamically at the build time.
Guice - Dependency Injection tool like spring without XML configuration. Configuration is done in code itself.
Sitebricks -  Libraries for creating REST webservices and dynamic HTML page (separating HTML and Data ).
Objectify - Library to interact with Google AppEngine datastore and automatic memcached management.

Following are the major steps I took for creating a working project.

Since I was trying to create a web app with maven I needed to create the folder structure for web project containing WEB-INF etc. I could do this manually …

Getting started with survival essentials