Hacker News new | ask | show | jobs
Twitter clients distribution in real-time (twitter-clients.herokuapp.com)
37 points by danzajdband 5080 days ago
5 comments

Neat, but the frequent updates make it hard to read anything other than the major apps.
A better visualization would be a time-series chart with a fixed number of clients (have a fall-out period instead of hiding a client immediately).

Like these: http://smoothiecharts.org/ or http://www.highcharts.com/demo/dynamic-update

I think the better solution would be to use 2 pie charts, in the first group all < 5% clients in one category "Other". In the second just map other. (again grouping clients < 5% of the other category, but not mapping them).

I think the suggestion to use a timeline series is not a good idea, pie charts are perfect for visualizing complementing percentages.

If you really want to visualize the movement of the percentages use a stacked percentage chart like this one:

http://www.highcharts.com/demo/area-stacked-percent

Ofcourse I would suggest 2 again, one for the big clients and one for the small ones :)

I think a pause button would be in order.
Other things that could help:

1) Group anything with less than 1 or 2ish percent into an "other" category

2) Show an alphabetized table below the pie chart.

3) Preserve label position when possible, only move the lines most of the time.

4) Animate between samples

But really, better than all this, would be a scrolling, stacked line graph.

Nice work! I've created a very simple table presentation of it here: http://cheeaun.github.com/twitter-clients-chart/

Repo: https://github.com/cheeaun/twitter-clients-chart

How did you get access to this data in real time?
It looks like your browser connects to the Twitter API.
Correct me if I'm wrong but wouldn't Same origin policy block that?

Edit: looking through the javascript, it seems that it pretty much just refreshes the page on a interval and the server gets the data from twitter

I'm using a library I made in node.js (https://github.com/danzajdband/Tuiter) to retrieve the tweets server-side via the Twitter Streaming API (https://dev.twitter.com/docs/streaming-apis). Then I send the "Twitter client" to the client using Socket.IO. I'm refreshing the chart, not the entire site, every 500 ms = 1/2 seconds to update the chart.

I'm updating every 500ms and not every time I receive a tweet because of performance issues.

Thanks for the feedback.

Very cool, I was unaware of the streaming API. Nice work!
Surprised to see Ask.FM there. Didn't know it was so huge (and that their Twitter integration was so huge).
I'm amazed that twitter for blackberry has as many users as twitter for android and iphone!
HN fads seldom match reality.