Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Bubbles – A minimalist visualization of what's new on Twitter (amizrahi.com)
32 points by amtmz on Jan 4, 2015 | hide | past | web | favorite | 26 comments

Hm. I hope this comes across as constructive criticism, but I'm not sure the visualization type matches well with the data you are presenting.

The movement of the bubbles doesn't seem to convey any useful information, it's just added flare. I'd get rid of it. (you might enjoy some classic books by Edward Tufte too)

The placement of the bubbles seems to be completely random. You can use your space more wisely.

You are trying to represent growing trends with this visualization, perhaps some sort of component should go into representing that. Maybe you can represent that in your x and y plane somehow?

You're viz looks blurry on retina screens. You can fix this by setting the width attribute of your canvas element to twice what you want it to be, and adding a css style width at what you want the width to actually be.

Edit: I just read the text describing what velocity actually does, nvm, I'm dumb.

Thanks for the criticism! This was my first time doing data visualization, so any feedback is really helpful. I'll definitely check out some books by Professor Tufte.

Even with the desc option it doesn't seem that great. How about using color instead? Recent topics could be brighter.

agreed, this is basically a tag cloud with the addition of movement that serves little purpose. visualizing textual summaries is not a solved problem, the word cloud was the web 2.0 attempt but I don't believe anyone has really solved the at-a-glance textual visualization problem yet.

A friend and I did something related to this in a project, where we attempted to analyze a hash tag, by fetching the latest 100 tweets about that hash tag. It is very useful in trending topics. For instance searching for "Stuart" right now reveals a lot of other relevant tags and attempts to find out what the general mood is of the words used in the tweets doing a simple Sentiment Analysis using AFINN. Try it here: http://hashtagram.dk/?t=stuart#hashtags (might get unavailable due to many visits, and don't mind the broken Instagram images at the bottom, site needs updating due to API changes). If for some reason the site does not work, see a static version here: http://imgur.com/EQzMrUP

It might be interesting to do a separate one just on Instagram. I have no idea what half of the trending hashtags on Instagram means and a picture speaks a thousand words.

The Instagram pictures were there to back up the understanding of a hashtag generally. For under the world cup, it was really easy to find out what #worldcup2014 was about. Interestingly refreshing the page for a specific page during some kind of event, such as the world cup one, or during 24 Hours of Le Mans, it is easy to follow what people say about it. In the Le Mans case it was also quite easy to follow that for instanced someone crashed their as the sentiment drastically went to the negative side, and you could back that up with pictures of the crash on Instagram.

But I agree, a separate one analyzing the pictures could be valuable as well. However, Instagram pictures often don't contain much text apart from a wall of hash tags. So the text might not be super important to analyze. Anyways, picture analysis might be slightly more difficult and more resource intensive than text analysis, but very interesting as well.

Awesome project!

Thanks a lot. Yours is pretty cool too. However, I agree with other people saying that the element of the bubbles moving might not be the best indicator of frequency of mentions of that word in tweets.

Not sure, how it could be done otherwise, but it needs to be thought a bit more about. Maybe do something more to the bubbles, like coloring and filling them. Maybe even just showing a number inside the bubble if there is room, or when highlighted.

Also, instead of refreshing the page, you could consider something like Socket.io between the web page and your node.js server to update the values. There might be other alternatives to Socket.io, but then you won't have to refresh the entire page.

Anyways, keep up the good work :)

You could run a topic model [1] to display, say, the top 20 topics discussed on Twitter. LDA [2] is a good one.

[1] http://en.wikipedia.org/wiki/Topic_model

[2] https://pypi.python.org/pypi/lda

It's more complicated than that, an LDA clusters documents into topics but it's non-trivial to determine what the topic is. You can use the head words of a tf.idf analysis but those still don't necessarily equate to topics. For what you're looking for I think you'd need ontology tagging so a bunch of tweets mentioning soccer players would give a topic word like 'soccer'. The problem then becomes the granularity to ascribe topic to, for example, should it be soccer or sports? Should it be more specific still. Then there's the non-obvious things like a plane goes down and the topic would likely be aviation, but that hardly gives any new information. Representing 20 topics on twitter is very difficult problem. Someone dies and the topic of "death" shows up, not very useful. I'm not disagreeing with you but rather saying that what you're suggesting is a very difficult problem to do in any useful and meaningful way.

This is great and I bet there are a ton of directions the author can go from here, pausing bubble movement on hover, clicking on bubbles to see the tweets, etc. JSYK, I reloaded and a fast moving but small bubble became a much slower moving much bigger bubble.

Looks really cool. Perhaps filtering out certain words would make it better? Most of the words don't really tell me what's going on. But I guess I could just look at the trending hashtags.

Color (as in a heatmap) would be a better indicator of rate than the velocity of the bubbles. Currently one is zipping around so fast I cannot read it.

Velocity can make it a little hard to track changing words. Intensity of bubble color might be a good parameter to change for this metric.

should probably remove stop words

and common words that aren't proper nouns

especially numbers that are contextless. right now one of the biggest bubbles are 1 and 2.

I'm adding a lot of common words to the blacklist right now. Expect to see an update shortly!

Is this open source? I'd love to take a look around.

Yep! Feel free to star / look around on GitHub. http://github.com/amizra/bubbles

can you filter noun? most of the world is not really informative keyword, and having them as bubbles only add noise.

Uses /GET every 60 seconds.

[1] setInterval(grabWords, 60000);

Is this bad? It's a site to see what's currently trending on Twitter. I figured it'd update more often, actually

this is awesome. is this real-time?

I'm guessing it must be close. One of the bubbles is "Stuart", and Stuart Scott of ESPN is trending on Twitter quite heavily today after passing of cancer.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact