{"id":259,"date":"2008-04-27T20:54:23","date_gmt":"2008-04-27T20:54:23","guid":{"rendered":"http:\/\/dalelane.co.uk\/blog\/?p=259"},"modified":"2009-05-17T16:27:19","modified_gmt":"2009-05-17T16:27:19","slug":"hackday-writing-a-twitter-dictionary","status":"publish","type":"post","link":"https:\/\/dalelane.co.uk\/blog\/?p=259","title":{"rendered":"HackDay &#8211; writing a Twitter dictionary"},"content":{"rendered":"<p>As I <a href=\"http:\/\/dalelane.co.uk\/blog\/?p=255\">said on Friday<\/a>, Friday was IBM Hackday 5. I didn&#8217;t really explain what HackDay is, but if you&#8217;re not familiar with it, Kelly has <a href=\"http:\/\/kellypuffs.wordpress.com\/2008\/04\/25\/we-be-hacking-2\/\" target=\"_blank\">posted a good description<\/a>.<\/p>\n<p>I made all my excuses in my last post, so with them out of the way, here is my hack. <\/p>\n<p>The <a href=\"http:\/\/dalelane.co.uk\/blog\/?p=192\">idea is an old one<\/a> &#8211; but I&#8217;ll summarise it again here.<\/p>\n<p>The hack was to extend the twitter.com website to provide additional context for people&#8217;s tweets. <\/p>\n<p>Every twitter user can maintain their own personal dictionary of terms, that describe their personal significance when they use them in tweets. When one of these terms is used in a tweet, it is highlighted in some way, and if the user hovers their mouse over them, the full description is shown in a pop-up.<\/p>\n<p>For example, my twitter dictionary might include entries like:<\/p>\n<ul>\n<li>Grace &#8211; my three-year old daughter\n<\/li>\n<li>Faith &#8211; my baby girl\n<\/li>\n<li>Hursley &#8211; IBM Hursley Park, the site where I work\n<\/li>\n<li>SYA &#8211; a youth charity that I started and am now on the board of trustees for\n<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"post-images\/080427-twitter.gif\" alt=\"an example - screenshot of my hack in action\"\/><\/p>\n<p>The idea isn&#8217;t to say what something means (<i>why try and replace people&#8217;s ability to use Google?<\/i>) but to say what it means to the tweeter. <\/p>\n<p>Other uses could include to provide &#8216;disclosure&#8217;. For example, when I see <a href=\"http:\/\/www.redmonk.com\/jgovernor\/2008\/04\/14\/for-mash-get-smash-ibm-and-situational-applications-in-the-post-brand-era-what-price-a-saas-model\/\" target=\"_blank\">posts by James Governor<\/a>, I often see a few lines at the end such as:<\/p>\n<blockquote><p>&#8230;IBM is a client. RedMonk runs Google Docs. Google and Salesforce are not clients. We don&#8217;t currently use Salesforce apps&#8230;<\/p><\/blockquote>\n<p>But in the twitter world where thoughts fit into 140 characters, there isn&#8217;t the space to include this sort of context with every tweet. So James&#8217; twitter glossary might include entries like:<\/p>\n<ul>\n<li>IBM &#8211; IBM is a client\n<\/li>\n<\/ul>\n<p><!--more-->To demonstrate the idea, I used a Firefox extension to make my changes to the twitter.com pages. To save me having to write any clever Javascript or CSS, I just used the &lt;acronym&gt; HTML tag to implement my definitions.<\/p>\n<p>The extension connects to a MySQL database used to store the twitter user&#8217;s dictionaries. The database access is performed by a php script hosted on the same server as the MySQL database. <\/p>\n<p>The Firefox extension was written using Greasemonkey &#8211; because the HTTP request API it provides lets you access sites with a different domain to the page you&#8217;re changing &#8211; so it was a good quick way to get started.<\/p>\n<p>I didn&#8217;t get around to writing an interface to let users edit their dictionaries &#8211; for testing, I just used phpMyAdmin to populate the database with some test entries. <\/p>\n<p>But it works! And it is kinda cool to see your twitter page start getting dotted with definitions. <\/p>\n<p><strike><em>It&#8217;s all hosted on internal IBM servers &#8211; my web host provider struggles enough with the teeny traffic my blog gets as it is. If I tried hosting hacks here too, I fear it would tire out the little hamster in a wheel which I assume must be powering the server&#8230; \ud83d\ude42 Sorry. <\/em><\/strike><\/p>\n<p><strong>Update (9 Jan 2008):<\/strong> This is now available at <a href=\"http:\/\/twitterglossary.appspot.com\/\">http:\/\/twitterglossary.appspot.com\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I said on Friday, Friday was IBM Hackday 5. I didn&#8217;t really explain what HackDay is, but if you&#8217;re not familiar with it, Kelly has posted a good description. I made all my excuses in my last post, so with them out of the way, here is my hack. The idea is an old [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[152,185,147,105,186,151],"class_list":["post-259","post","type-post","status-publish","format-standard","hentry","category-code","tag-firefox","tag-greasemonkey","tag-hackday","tag-mysql","tag-php","tag-twitter"],"_links":{"self":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/259","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=259"}],"version-history":[{"count":0,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=\/wp\/v2\/posts\/259\/revisions"}],"wp:attachment":[{"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dalelane.co.uk\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}