appengine

porting birdnest

in

When I worked on Birdnest last week, I realized the simplicity and how powerful framework Google App Engine provided. Google provided framework makes my job in implementation the birdnest for AppEngine really easily. As you have seen, I implemented the working prototype of Birdnest within 3-4 hours after studied the web framework. With git and Google Code, the project went to usable state within 2 days.

Nevertheless, Birdnest is not responsive and reliable as it should be. It often returns error with 304 status code which mean Gateway timeout for some users. After some investigate, @sugree and I implied this happen because App Engine limits the outgoing urlfetch, HTTP related module we’ve used to call the Twitter API, request timeout to 5 seconds and Twitter servers are not responsive enough to reply within that duration. This causes Birdnest to be terminated and throw out 504 error to the clients.

Some of you might noticed the discussion between @sugree and I over twitter, we’re now setting up Birdnest somewhere outside the Google App Engine to solve the above problem. Of course, to minimize porting time, web.py is chosen to be target framework because of its similarity to Google webapp framework. Anyway, we have to change urlfetch to httplib which is more complex and a bit harder to use. Moreover, web.py doesn’t provide some functionality we’ve rely on App Engine. However, this is still considered easier than using php or any other language. Thanks to battery included.

The contruction of this new nest is planned to be completed and ready to use within Monday and the new gateway url will be announced thereafter.

Happy tweeting

birdnest

in

Last week, I didn’t have any personal project.

Last weekend, I made it one.

At first I named it jibjibd.

Now I call it birdnest. The project is currently hosted at Google App Engine and the project home page is here. This is my second time with App Engine. My first time was file hosting using BLOB feature of BigTable. Unfortunately, Google limit size of request and response both inbound and outbound to 1 MB.

In fact, I want to create birdnest since I played with twitter. At that time,I thought about some selected set of method and implement it as simple http protocol, 1 character for command and the rest is data, which really decrease number of byte that have to transfer. Without other user except than me, I couldn’t push myself to create it. Thanks to Sugree for being my very first birdnest user.

At the time of writing, there is only jibjib that supports birdnest officially. However, Kengggg is studying how to implement twitter client on iphone which utilize birdnest as its main API, ijib. Hence, he is another one who inspires me to do the project. Thank you Kengggg.

Lastly, thanks to Sugree again for refactoring and add most of filter to birdnest.

Happy tweeting.