PageRenderTime 63ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/projecte eclipse/TI/data/2011-documentos/16/2011-16-050.html

https://gitlab.com/bernagg/TI
HTML | 268 lines | 211 code | 41 blank | 16 comment | 0 complexity | 70f7113f27c2a2bb7406c71f2a55c582 MD5 | raw file
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head profile="http://gmpg.org/xfn/11">
  4. <title>Crowdsourcing Code | Boris Smus</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <meta name="verify-v1" content="XA13dvk8en7VKjWDrr3p+DjdF8OXxaPCqJfH7MWQtfc=" />
  7. <meta name="google-site-verification" content="OatoM34IExkzYBHBEo0-VQDVE7FuJ-VBHA7xOXxJWTI" />
  8. <link rel="stylesheet" href="http://www.borismus.com/wp-content/themes/borismus/style.css"
  9. type="text/css" media="screen, print" />
  10. <link rel="stylesheet" type="text/css" media="print"
  11. href="http://www.borismus.com/wp-content/themes/borismus/print.css" />
  12. <link rel="alternate" type="application/rss+xml" title="Boris Smus RSS Feed" href="http://borismus.com/feed/" />
  13. <link rel="pingback" href="http://borismus.com/xmlrpc.php" />
  14. <script type="text/javascript">//<![CDATA[
  15. // Google Analytics for WordPress by Yoast v4.06 | http://yoast.com/wordpress/google-analytics/
  16. var _gaq = _gaq || [];
  17. _gaq.push(['_setAccount','UA-17930798-1']);
  18. _gaq.push(['_trackPageview']);
  19. (function() {
  20. var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  21. ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  22. var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  23. })();
  24. // End of Google Analytics for WordPress by Yoast v4.0
  25. //]]></script>
  26. <link rel="alternate" type="application/rss+xml" title="Boris Smus &raquo; Crowdsourcing Code Comments Feed" href="http://borismus.com/crowdsourcing-code/feed/" />
  27. <script type='text/javascript' src='http://www.borismus.com/wp-includes/js/l10n.js?ver=20101110'></script>
  28. <script type='text/javascript' src='http://www.borismus.com/wp-includes/js/jquery/jquery.js?ver=1.4.4'></script>
  29. <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://borismus.com/xmlrpc.php?rsd" />
  30. <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://www.borismus.com/wp-includes/wlwmanifest.xml" />
  31. <link rel='index' title='Boris Smus' href='http://borismus.com/' />
  32. <link rel='start' title='Top 5 Sessions of Web 2.0 Expo NY' href='http://borismus.com/top-5-sessions-of-web-2-expo-ny/' />
  33. <link rel='prev' title='Crowdsourcing Articles with Mechanical Turk' href='http://borismus.com/crowdsourcing-articles-with-mechanical-turk/' />
  34. <link rel='next' title='Visualizing MTurk Requesters' href='http://borismus.com/visualizing-mturk-requester/' />
  35. <meta name="generator" content="WordPress 3.1" />
  36. <link rel='shortlink' href='http://borismus.com/?p=568' />
  37. <!-- All in One SEO Pack 1.6.13 by Michael Torbert of Semper Fi Web Design[70,114] -->
  38. <meta name="description" content="As a follow up to my last post, I posted a HIT on Mechanical Turk asking 20 turkers if they know Java. I paid them 5 cents to answer the question. Surprisingly," />
  39. <link rel="canonical" href="http://borismus.com/crowdsourcing-code/" />
  40. <!-- /all in one seo pack -->
  41. <meta name="tweetmeme-title" content="Crowdsourcing Code" /><meta id="syntaxhighlighteranchor" name="syntaxhighlighter-version" content="3.1.1" />
  42. <script type="text/javascript"
  43. src="http://www.borismus.com/wp-content/themes/borismus/js/enhance.js"></script>
  44. </head>
  45. <body>
  46. <div class="wrapper">
  47. <div class="header">
  48. <ul class="links">
  49. <li class="">
  50. <a href="/">Blog</a>
  51. </li>
  52. <li class="page_item page-item-2"><a href="http://borismus.com/about/" title="About">About</a></li>
  53. <li class="page_item page-item-15"><a href="http://borismus.com/projects/" title="Projects">Projects</a></li>
  54. </ul>
  55. <div class="info">
  56. <h1>
  57. <a href="/">Boris Smus</a>
  58. </h1>
  59. <h2>
  60. <a href="/">Software Designer</a>
  61. </h2>
  62. </div>
  63. </div>
  64. <div class="main">
  65. <!-- iterate through all posts -->
  66. <div class="post">
  67. <!-- only show title and comments if it's a blog post -->
  68. <h3 class="title">
  69. <a href="http://borismus.com/crowdsourcing-code/">Crowdsourcing Code</a>
  70. </h3>
  71. <div class="post_meta">
  72. <a href="http://borismus.com/crowdsourcing-code/#comments" class="count" title="click to add a new comment">
  73. 2 responses </a>
  74. </div>
  75. <!-- only show date if it's a blog post -->
  76. <div class="post_date" title="Jan 16, 2010">
  77. <div class="month">Jan</div>
  78. <div class="day">16</div>
  79. <!-- only display the post year if it's not this year's -->
  80. <div class="year">2010</div>
  81. </div>
  82. <div class="body">
  83. <p>As a follow up to my <a href="http://borismus.com/crowdsourcing-articles-with-mechanical-turk/">last post</a>, I posted a HIT on Mechanical Turk asking 20 turkers if they know Java. I paid them 5 cents to answer the question. Surprisingly, 9 of 20 claimed to know. I was amazed at how strong selection bias was in this case, since surely not 50% of turkers know how to program! </p>
  84. <p>I then asked those turkers who know Java to complete the following trivial Java method. If they wrote it correctly, I paid them a 45 cent bonus.<span id="more-568"></span><br />
  85. <code><br />
  86. public static String reverse(String source) {<br />
  87. &nbsp;&nbsp;&nbsp;&nbsp;// your code here<br />
  88. }<br />
  89. </code></p>
  90. <p>Here are the results:</p>
  91. <ul>
  92. <li>4 turkers used <code>StringBuffer.reverse</code></li>
  93. <li>3 turkers created a new string by iterating through the original string in reverse</li>
  94. <li>1 used recursion</li>
  95. <li>1 used <code>Collections.sort(l)</code>. I&#8217;m not sure what was intended</li>
  96. </ul>
  97. <p>I was hoping that people would fill in the empty reverse method with their code, but many of them implemented their own methods and helpers. One person implemented their own class with extensive comments. This data as a nice existence proof, indicating that turkers can be harnessed for programming-related crowdsourcing. </p>
  98. <p>I&#8217;d like to turn Mechanical Turkers into Mechanical Coders. Given a set of unit tests and a method to implement, their work could be automatically verified based on passing the unit tests. Furthermore, some turkers could be tasked to write additional unit tests for this method. Through this technique, it&#8217;s conceivable to harness the power of The Turk to implement whole classes. Code quality aside, what sort of software quality could be achieved by following this approach?
  99. <div class="twitter_button" style="float: right; margin-left: 10px;"><iframe src="http://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fborismus.com%2Fcrowdsourcing-code%2F&amp;count=vertical&amp;related=borismus:&amp;via=borismus&amp;lang=en" height="62" width="55" frameborder="0" scrolling="no" allowtransparency="true"></iframe></div>
  100. Tagged with: <a href="http://borismus.com/tag/mechanical-turk/" rel="tag">mechanical turk</a>, <a href="http://borismus.com/tag/research/" rel="tag">research</a> <div style="clear: both"></div>
  101. </div>
  102. </div>
  103. <!-- Necessary for password-protected posts -->
  104. <!-- COMMENTS -->
  105. <div class="comments" id="comments">
  106. <h2 class="comment_number">
  107. 2 comments
  108. <span style="float: right">
  109. <a href="#comment_form">leave comment</a>
  110. </span>
  111. </h2>
  112. <div class="comment" id="comment-277">
  113. <div class="comment_avatar">
  114. <img alt='' src='http://1.gravatar.com/avatar/b3d67baaf0725554335bf127cf53e49b?s=36&amp;d=identicon&amp;r=G' class='avatar avatar-36 photo' height='36' width='36' /> </div>
  115. <div class="comment_body">
  116. <span class="comment_author">
  117. <a href='http://www.antipode.ca/' rel='external nofollow' class='url'>Allen Pike</a> </span>
  118. <span class="comment_main">
  119. <p>The trick would be writing unit tests that were thorough enough in less time than it would take you to code it yourself. With that, you could add in Turks for QA and hey, maybe you could even get Turks to write the unit tests. I&#8217;m sure you could produce non-UI apps that function in basic tasks using this approach, but I doubt it could profitably extend to interesting or profitable types of apps.</p>
  120. </span>
  121. <div class="comment_date">
  122. on January 16th, 2010 at 6:28 pm </div>
  123. </div>
  124. </div>
  125. <div class="comment" id="comment-278">
  126. <div class="comment_avatar">
  127. <img alt='' src='http://1.gravatar.com/avatar/765d68e3619b045b528129bfbddf6150?s=36&amp;d=identicon&amp;r=G' class='avatar avatar-36 photo' height='36' width='36' /> </div>
  128. <div class="comment_body">
  129. <span class="comment_author">
  130. <a href='http://www.borismus.com' rel='external nofollow' class='url'>Boris Smus</a> </span>
  131. <span class="comment_main">
  132. <p>It&#8217;s pretty darn difficult to write any sort of reasonable unit tests for user interfaces, so I definitely agree with you there. </p>
  133. <p>But the interestingness of an application is determined by the designer, not a code monkeying turker, so I&#8217;m not sure what you mean.</p>
  134. <p>As far as profitability goes, perhaps this approach would allow a small number of software architects to roll out working (and unit tested) software very quickly, since turkers are easily parallelized.</p>
  135. </span>
  136. <div class="comment_date">
  137. on January 17th, 2010 at 9:49 am </div>
  138. </div>
  139. </div>
  140. </div>
  141. <form action="http://borismus.com/wp-comments-post.php" method="post" id="comment_form">
  142. <!-- leave a comment -->
  143. <h2>leave comment</h2>
  144. <textarea name="comment" id="comment" cols="80" tabindex="4" placeholder="Your comment please"></textarea>
  145. <input type="text" name="author" id="author" value="" size="40" tabindex="1" placeholder="Name (required)" />
  146. <input type="text" name="email" id="email" value="" size="40" tabindex="2" placeholder="Email (required)" />
  147. <p><input type="text" name="url" id="url" value="" size="40" tabindex="3" placeholder="Website" /></p>
  148. <p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit" />
  149. <input type="hidden" name="comment_post_ID" value="568" />
  150. </p>
  151. <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="b07be63b8c" /></p>
  152. </form>
  153. <!-- LINKBACKS -->
  154. <div class="comments" id="pings">
  155. </div>
  156. <script>
  157. /* Copyright (c) 2009 Jon Rohan (http://dinnermint.org)
  158. * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
  159. * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
  160. *
  161. * Version: 1.0.0
  162. * Written with jQuery 1.3.2
  163. */
  164. (function($){$.fn.ghostText = function() {
  165. return this.each(function(){
  166. var text = $(this).attr("placeholder");
  167. if(text!=""&&($(this).val()==""||$(this).val()==text)) {
  168. $(this).addClass("disabled");
  169. $(this).val(text);
  170. $(this).focus(function(){
  171. $(this).removeClass("disabled");
  172. if($(this).val()==text) {
  173. $(this).val("");
  174. }
  175. });
  176. $(this).blur(function(){
  177. if($(this).val()=="") {
  178. $(this).val(text);
  179. $(this).addClass("disabled");
  180. }
  181. });
  182. }
  183. });
  184. };})(jQuery);
  185. $(function() {
  186. // enable ghost text on the inputs
  187. $('input[type="text"], textarea').ghostText();
  188. });
  189. </script>
  190. <div class="navigation">
  191. <div class="older">
  192. </div>
  193. <div class="newer">
  194. </div>
  195. </div>
  196. </div>
  197. </div>
  198. <div class="footer">
  199. <div class="content">
  200. <ul class="bar1">
  201. <li> <div class="textwidget"><a style="border-bottom: none;" href="http://www.twitter.com/borismus"><img src="http://twitter-badges.s3.amazonaws.com/follow_me-a.png" alt="Follow borismus on Twitter"/></a>
  202. <br/>
  203. And <a href="">subscribe</a> to this blog.
  204. <br/>
  205. <br/></div>
  206. </li><li><form method="get" id="searchform" action="http://borismus.com/">
  207. <div><input type="text" value="" name="s" id="s" />
  208. <input type="submit" id="searchsubmit" value="Search" />
  209. </div>
  210. </form>
  211. </li> </ul>
  212. <ul class="bar2">
  213. <li> <div class="textwidget">Disclaimer: Content found on this site reflects my personal thoughts and opinions <strong>only</strong>, and is to no extent endorsed by Google or any other party.</div>
  214. </li><li><h3> </h3><a href='http://borismus.com/tag/web/' class='tag-link-7' title='19 topics' style='font-size: 16px;'>web</a>, <a href='http://borismus.com/tag/dev/' class='tag-link-20' title='11 topics' style='font-size: 16px;'>development</a>, <a href='http://borismus.com/tag/javascript/' class='tag-link-23' title='9 topics' style='font-size: 16px;'>javascript</a>, <a href='http://borismus.com/tag/music/' class='tag-link-19' title='9 topics' style='font-size: 16px;'>music</a>, <a href='http://borismus.com/tag/python/' class='tag-link-16' title='9 topics' style='font-size: 16px;'>python</a>, <a href='http://borismus.com/tag/research/' class='tag-link-13' title='9 topics' style='font-size: 16px;'>research</a>, <a href='http://borismus.com/tag/design/' class='tag-link-11' title='8 topics' style='font-size: 16px;'>design</a>, <a href='http://borismus.com/tag/google/' class='tag-link-37' title='7 topics' style='font-size: 16px;'>google</a>, <a href='http://borismus.com/tag/android/' class='tag-link-102' title='5 topics' style='font-size: 16px;'>android</a>, <a href='http://borismus.com/tag/mobile/' class='tag-link-59' title='5 topics' style='font-size: 16px;'>mobile</a>, <a href='http://borismus.com/tag/mechanical-turk/' class='tag-link-71' title='4 topics' style='font-size: 16px;'>mechanical turk</a>, <a href='http://borismus.com/tag/lego/' class='tag-link-14' title='4 topics' style='font-size: 16px;'>lego</a>, <a href='http://borismus.com/tag/webkit/' class='tag-link-35' title='3 topics' style='font-size: 16px;'>webkit</a>, <a href='http://borismus.com/tag/mindstorms/' class='tag-link-15' title='3 topics' style='font-size: 16px;'>mindstorms</a></li> <a href="http://borismus.com/feed/" class="rss" title="Click to subscribe to my RSS feed."></a>
  215. <a href="http://www.twitter.com/borismus" class="twitter" title="Click to follow me on twitter."></a>
  216. </ul>
  217. </div>
  218. <div class="end"/>
  219. </div>
  220. <!-- Not using javascript anymore
  221. <script type="text/javascript"
  222. src="http://www.borismus.com/wp-content/themes/borismus/js/enhance.js"></script>
  223. -->
  224. <script src="http://www.borismus.com/wp-content/plugins/tweetmeme/button.js" type="text/javascript"></script></body>
  225. </html>
  226. <!-- Dynamic page generated in 0.310 seconds. -->
  227. <!-- Cached page generated by WP-Super-Cache on 2011-04-03 09:41:36 -->