{"id":671,"date":"2008-12-26T18:49:30","date_gmt":"2008-12-26T17:49:30","guid":{"rendered":"http:\/\/www.jurecuhalev.com\/blog\/?p=671"},"modified":"2008-12-29T21:47:29","modified_gmt":"2008-12-29T20:47:29","slug":"visualizing-koornk-chatter","status":"publish","type":"post","link":"https:\/\/www.jurecuhalev.com\/blog\/visualizing-koornk-chatter\/","title":{"rendered":"Visualizing Koornk chatter"},"content":{"rendered":"<p>Creating a good visualization consist of two major parts:<\/p>\n<ul>\n<li>having a robust visualization technique (wave graph in this example)<\/li>\n<li>having a good data set that fits to the visualization technique<\/li>\n<\/ul>\n<p>After I got <a href=\"https:\/\/www.jurecuhalev.com\/blog\/2008\/12\/25\/graphication-on-os-x-with-pycairo\/\">Graphication working yesterday<\/a>, I quickly realized that my initial data set doesn&#8217;t fit this technique out of the box as it was one stream and not a series of intertwining ones. Looking around, I&#8217;ve discovered a perfect one &#8211; chatter on Koornk.<\/p>\n<p><strong>How does it look?<\/strong><\/p>\n<figure id=\"attachment_672\" aria-describedby=\"caption-attachment-672\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/matija.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-672 \" title=\"matija\" src=\"https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/matija-300x115.png\" alt=\"matija\" width=\"300\" height=\"115\" srcset=\"https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/matija-300x115.png 300w, https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/matija-1024x393.png 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-672\" class=\"wp-caption-text\">click for bigger version<\/figcaption><\/figure>\n<p style=\"text-align: left;\">\u00a0<\/p>\n<p style=\"text-align: left;\"><strong>What does it mean?<\/strong><\/p>\n<p style=\"text-align: left;\">It&#8217;s a Wave Graph visualization of who the person in question is talking to. In good old Twitter fashion, Koornk also uses @ to reference people so you can say: &#8220;@jure: foo!&#8221; or &#8220;I&#8217;m drinking coffee with @Miha and @bufo&#8221;. In all the cases my script counts nicknames after @ and aggregates them on a weekly basis. For a nickname to be eligible to get on the list you have to mention it at least twice in a week.<\/p>\n<p><strong>Any interesting observations?<\/strong><\/p>\n<p>Looking at these graphs you can start seeing how easy data mining and importance of protecting you online privacy.<\/p>\n<p>Example of that would be @bufo who&#8217;s graph looks like this:<\/p>\n<figure id=\"attachment_673\" aria-describedby=\"caption-attachment-673\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/bufo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-673 \" title=\"bufo\" src=\"https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/bufo-300x142.png\" alt=\"bufo koornk chatter\" width=\"300\" height=\"142\" srcset=\"https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/bufo-300x142.png 300w, https:\/\/www.jurecuhalev.com\/blog\/wp-content\/uploads\/2008\/12\/bufo-1024x487.png 1024w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-673\" class=\"wp-caption-text\">bufo koornk chatter<\/figcaption><\/figure>\n<p>You can easily see that he talks a lot to: @Miha, @Katja, @jure, @Hirkani and a few others. That instantly gives us some information about his online friends and we can assume that since it&#8217;s Slovenia that he probably also knows them in person or that they have at least some things in common.<\/p>\n<p>While that doesn&#8217;t seem too revealing (at least to their friends) we have to be aware that this information is now available to anyone willing to crawl the web and connect the dots. There should be at least some targeted advertising in this \ud83d\ude42<\/p>\n<p><strong>Lessons learned<\/strong><\/p>\n<ul>\n<li>creating these visualizations is harder then it looks. Mostly because you have to know your data set well to process it correctly.<\/li>\n<li>it&#8217;s CPU intensive. Drawing each of these things takes a good few seconds every time. It&#8217;s not a big problem if you&#8217;re doing this off-line but there might be an issue of scaling here.<\/li>\n<li>having a good API to get data from is important. Luckily Koornk API is good and fast.<\/li>\n<li>OS X is a pain to use pycairo in as it keeps crashing my python. Useful workaround is to have Linux running in a local VMWare and run computing batches there.<\/li>\n<li>visualization hopefully isn&#8217;t a purpose for itself. It&#8217;s much more rewarding to teach a community something about itself.<\/li>\n<\/ul>\n<p>I&#8217;ve also generated a gallery of <a href=\"http:\/\/www.jurecuhalev.com\/koornk-wave\/\">65 most chatty people on Koornk<\/a> if you want to look at more of these pictures (or find yourself).<\/p>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><a class=\"zemanta-pixie-a\" title=\"Zemified by Zemanta\" href=\"http:\/\/reblog.zemanta.com\/zemified\/f54ad6d4-7abe-4f9c-a4ef-96a46f21c306\/\"><img decoding=\"async\" class=\"zemanta-pixie-img\" style=\"border: medium none; float: right;\" src=\"http:\/\/img.zemanta.com\/reblog_e.png?x-id=f54ad6d4-7abe-4f9c-a4ef-96a46f21c306\" alt=\"Reblog this post [with Zemanta]\" \/><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Creating a good visualization consist of two major parts: having a robust visualization technique (wave graph in this example) having a good data set that fits to the visualization technique After I got Graphication working yesterday, I quickly realized that my initial data set doesn&#8217;t fit this technique out of the box as it was [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[14],"tags":[622,443,421,940,623],"class_list":["post-671","post","type-post","status-publish","format-standard","hentry","category-tech","tag-graphication","tag-koornk","tag-social-network","tag-visualization","tag-wave-graph"],"acf":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts\/671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/comments?post=671"}],"version-history":[{"count":5,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts\/671\/revisions"}],"predecessor-version":[{"id":677,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/posts\/671\/revisions\/677"}],"wp:attachment":[{"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/media?parent=671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/categories?post=671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jurecuhalev.com\/blog\/wp-json\/wp\/v2\/tags?post=671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}