One of the most interesting technical things that I have started learning recently is developing web applications with persistent connection between the client and the server that allows for a low latency, near real time and two way data transfer.
There are different techniques and technologies used for this purpose, including Long-Polling and Streaming, with their own sets of capabilities and weaknesses. However, I started studying a newer technology called WebSocket developed as part of the HTML5 initiative. It establishes an independent TCP-based socket connection instead of the commonly used HTTP connection between the browser and the server hence allowing for a true bi-directional, persistent and fast data flow. One of the neat things about WebSocket is that it frees the developer from the HTTP request-response paradigm. In terms of the weaknesses, WebSocket does require a modern browser on the client-side to interpret WebSocket handshake.
Here is the link to a personal project which connects with the Twitter API to read geotagged, real time tweets consisting of a certain string. It showcases the implementation of WebSocket in Node.js: http://twitter300.herokuapp.com.
In this project, I am looking for emoticons in Tweets in real time.