{"id":344,"date":"2011-02-28T15:35:10","date_gmt":"2011-02-28T14:35:10","guid":{"rendered":"http:\/\/lqd.hybird.org\/journal\/?p=344"},"modified":"2011-02-28T15:35:10","modified_gmt":"2011-02-28T14:35:10","slug":"twitterformat-proposal-tedit","status":"publish","type":"post","link":"https:\/\/lqd.hybird.org\/journal\/?p=344","title":{"rendered":"TwitterFormat proposal: tEdit"},"content":{"rendered":"<p>I&#8217;m a Twitter fan, and I love thinking about ways to improve the experience we have using it, as I&#8217;ve shown previously <a href=\"https:\/\/lqd.hybird.org\/journal\/?p=239\">here for a mockup on how to display short links<\/a> \u2014 which to my surprise is how Twitter now shows them in #newtwitter \u2014 or on <a href=\"http:\/\/www.flickr.com\/photos\/48188729@N00\/4187453459\/\">Flickr for a mockup on helping write microsyntaxes and TwitterFormats<\/a>.<\/p>\n<p>Even though Twitter is adding new features in regards to tweet management, most of the existing metadata mechanism and commands described by <a href=\"http:\/\/microsyntax.pbworks.com\">microsyntaxes<\/a> and <a href=\"http:\/\/aralbalkan.com\/2807\">TwitterFormats<\/a> are still very much valid. For instance, Twitter&#8217;s User and Site Streams provide deletion events rendering <a href=\"http:\/\/aralbalkan.com\/2623\">tDelete<\/a> obsolete (obsolete for clients using the Streams, which the majority of clients are not yet supporting).<\/p>\n<p>Another feature, <em>Annotations<\/em> \u2014 announced by Twitter around April 2010 or so, will allow adding metadata when a tweet is created. This is expected to obsolete some other of those microdata approaches, even though adding metadata after the fact would be impossible. Still, Annotations have been seemingly put on the backburner, with more pressing projects requiring Twitter&#8217;s resources and attention.<\/p>\n<p>Even in a future world where we have Annotations, some <em>TwitterFormats<\/em> are still valid, usable <strong>and<\/strong> valuable, and this is a tweak of two of them.<\/p>\n<p>This is a proposal for a \u201cnew\u201d TwitterFormat (<strong>TF<\/strong> from now on) for editing a tweet, more precislely combining the existing <a href=\"http:\/\/aralbalkan.com\/2634\">tStrike<\/a> and <a href=\"http:\/\/aralbalkan.com\/2660\">tInsert<\/a> to make them easier to use manually and to adopt a common idiom for editing or replacing content (albeit surely only known by advanced users).<\/p>\n<p><\/p>\n<h3>Syntax<\/h3>\n<p><strong>\/edit \u201cincorrect phrase or word\u201d \u201ccorrect phrase or word\u201d<\/strong><\/p>\n<p>As an alternative up for debate<br \/>\n<strong>\/s \u201cincorrect phrase or word\u201d \u201ccorrect phrase or word\u201d<\/strong> or<br \/>\n<strong>\/s\/incorrect phrase or word\/correct phrase or word\/<\/strong><\/p>\n<p>One could also add the same options specifiying the tweet you&#8217;re correcting<br \/>\n<strong>\/edit \u201cincorrect phrase or word\u201d \u201ccorrect phrase or word\u201d from -2<\/strong> for the second-to-last tweet<br \/>\n<strong>\/edit \u201cincorrect phrase or word\u201d \u201ccorrect phrase or word\u201d from 123456789<\/strong> for a specific tweet ID<\/p>\n<p><\/p>\n<h3>Summary<\/h3>\n<p><em>tStrike<\/em> allows you to remove words or characters from previous tweets, and <em>tInsert<\/em> allows you to insert words or characters into previous tweets. I was looking for something that did both at the same time, as to me correcting typos is most of the time removing the wrong word or characters and inserting the correct one in its place. I thought <a href=\"http:\/\/aralbalkan.com\/2666\">tReplace<\/a> would be what I was looking for but it actually replaces the whole tweet, and not just a part of it.<\/p>\n<p>You can certainly combine <em>tStrike<\/em> and <em>tInsert<\/em> in a single tweet, but I find it to be cumbersome for manual use. The resulting tweet would also be bigger, leaving less characters for the actual typo fixing \u2014 even though it&#8217;s rather less probable for one to replace most of a single tweet compared to one or two words. <strong>TF<\/strong>\u2013aware clients are \u2014 at the beginning \u2014 most likely to implement handling input only rather than output, leaving the user to create the appropriate tweet. In this case \u2014 in my mind a very probable case \u2014 I&#8217;d want to make it easier to create the typo-correcting tweet.<\/p>\n<p>For instance, to replace part of a tweet using those two formats, you&#8217;d have to tweet <strong>\/strike \u201csome phrase\u201d from last \/insert \u201cthis phrase\u201d after \u201cthat other phrase\u201d in last<\/strong>. Pretty bulky. You could argue both \u201c<strong>from last<\/strong>\u201ds could be removed from tStrike and tInsert to make them more concise, modifying the last tweet becoming implicit if no tweet target is specified.<\/p>\n<p>So, I&#8217;d want a simpler and shorter syntax for the specific use case of replacing content, not supporting every tInsert use case (even though inserting before or after is still a more specific case of replacement using more search tokens for the content you want to replace)<\/p>\n<p>Some advanced users (and quite a lot if I had to take a guess &#8211; most likely developers) are already used to <em>regex\/sed\/awk\/etc matching and replacing<\/em>, to the extent that <a href=\"http:\/\/www.sanityinc.com\/articles\/skype-power-user-tip-edit-sent-messages\">Skype chat also implements it using that syntax<\/a>. So I&#8217;d propose having that syntax as an alternate, or an alias of the main syntax. I propose <strong>\/edit \u201cold\u201d \u201cnew\u201d<\/strong> to be the main syntax, with potential alternate <strong>\/s \u201cold\u201d \u201cnew\u201d<\/strong> or <strong>\/s\/old\/new<\/strong> (which is close to the regular developer syntax \u2014 however I wouldn&#8217;t recommend offering options after a final \u2018\/\u2019 like case insensitive or multiple matching). <\/p>\n<p><\/p>\n<h3>Raison d&#8217;\u00eatre<\/h3>\n<p>The reasons why a user would use <strong>tEdit<\/strong> are exactly the same as <em>tStrike<\/em> and <em>tInsert<\/em>, modifying a tweet after the fact, and notifying your followers in realtime. Their clients can show the modification events exactly as described in those original TFs.<\/p>\n<p><\/p>\n<h3>License<\/h3>\n<p>This TwitterFormat Proposal is released under a <a href=\"http:\/\/creativecommons.org\/licenses\/by\/3.0\/\">Creative Commons Attribution License<\/a>.<\/p>\n<p>I&#8217;d love to hear your thoughts on the syntax, use case, and so on. You can find me at <a href=\"http:\/\/twitter.com\/lqd\">twitter.com\/lqd<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m a Twitter fan, and I love thinking about ways to improve the experience we have using it, as I&#8217;ve shown previously here for a mockup on how to display short links \u2014 which to my surprise is how Twitter now shows them in #newtwitter \u2014 or on Flickr for a mockup on helping write [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-344","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=\/wp\/v2\/posts\/344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=344"}],"version-history":[{"count":14,"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":358,"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=\/wp\/v2\/posts\/344\/revisions\/358"}],"wp:attachment":[{"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lqd.hybird.org\/journal\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}