{"id":686,"date":"2013-07-22T08:47:57","date_gmt":"2013-07-22T12:47:57","guid":{"rendered":"http:\/\/www.jsylvest.com\/blog\/?p=686"},"modified":"2013-07-22T09:37:52","modified_gmt":"2013-07-22T13:37:52","slug":"knuth-on-tools","status":"publish","type":"post","link":"https:\/\/www.jsylvest.com\/blog\/2013\/07\/knuth-on-tools\/","title":{"rendered":"Knuth on Tools"},"content":{"rendered":"<blockquote><p>The enjoyment of one's tools is an essential ingredient of successful work.<\/p>\n<p><cite>\u2014 Donald Knuth, <i>The Art of Computer Programming Vol. II<\/i>, \u00a74.2.2A<\/cite><\/p><\/blockquote>\n<p>This is the dual of \"only a poor craftsmen blames his tools.\" See John D. Cook on this dichotomy <a href=\"http:\/\/www.johndcook.com\/blog\/2011\/07\/31\/enjoyment-of-ones-tools\/\">here<\/a> and <a href=\"http:\/\/www.johndcook.com\/blog\/2009\/12\/16\/good-work-with-bad-tools\/\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The enjoyment of one's tools is an essential ingredient of successful work. \u2014 Donald Knuth, The Art of Computer Programming Vol. II, \u00a74.2.2A This is the dual of \"only a poor craftsmen blames his tools.\" See John D. Cook on &hellip; <a href=\"https:\/\/www.jsylvest.com\/blog\/2013\/07\/knuth-on-tools\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"aside","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Knuth on Tools","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[10,16],"tags":[],"class_list":["post-686","post","type-post","status-publish","format-aside","hentry","category-cs","category-quotes","post_format-post-format-aside","wpautop"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3sddF-b4","jetpack-related-posts":[{"id":1126,"url":"https:\/\/www.jsylvest.com\/blog\/2017\/11\/ais-one-trick-pony-has-a-hell-of-a-trick\/","url_meta":{"origin":686,"position":0},"title":"AI's \"one trick pony\" has a hell of a trick","author":"jsylvest","date":"10 November 2017","format":false,"excerpt":"The MIT Technology Review has a recent article by James Somers about error backpropagation, \"Is AI Riding a One-Trick Pony?\" Overall, I agree with the message in the article. We need to keep thinking of new paradigms because the SotA right now is very useful, but not correct in any\u2026","rel":"","context":"In &quot;CS \/ Science \/ Tech \/ Coding&quot;","block_context":{"text":"CS \/ Science \/ Tech \/ Coding","link":"https:\/\/www.jsylvest.com\/blog\/category\/cs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1228,"url":"https:\/\/www.jsylvest.com\/blog\/2019\/04\/art-in-space\/","url_meta":{"origin":686,"position":1},"title":"Art in Space","author":"jsylvest","date":"22 April 2019","format":false,"excerpt":"Today I'm going to put on my Tyler Cowen hat and speculate about what art work will be valuable when humans are space-faring. That's a pretty big range of possibilities, so let's keep things to a realistic, near(-ish) future. That means ignoring Iain Banks-type, post-singularity futures in which people are\u2026","rel":"","context":"In &quot;Art&quot;","block_context":{"text":"Art","link":"https:\/\/www.jsylvest.com\/blog\/category\/art\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.jsylvest.com\/blog\/wp-content\/uploads\/2019\/04\/160126_NorthFront_MidTownCeres_Concept_B_v5.jpg?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.jsylvest.com\/blog\/wp-content\/uploads\/2019\/04\/160126_NorthFront_MidTownCeres_Concept_B_v5.jpg?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.jsylvest.com\/blog\/wp-content\/uploads\/2019\/04\/160126_NorthFront_MidTownCeres_Concept_B_v5.jpg?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.jsylvest.com\/blog\/wp-content\/uploads\/2019\/04\/160126_NorthFront_MidTownCeres_Concept_B_v5.jpg?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.jsylvest.com\/blog\/wp-content\/uploads\/2019\/04\/160126_NorthFront_MidTownCeres_Concept_B_v5.jpg?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":226,"url":"https:\/\/www.jsylvest.com\/blog\/2013\/04\/ruby\/","url_meta":{"origin":686,"position":2},"title":"Ruby","author":"jsylvest","date":"25 April 2013","format":false,"excerpt":"Coding Horror :: Jeff Atwood :: Why Ruby? I've always been a little intrigued by Ruby, mostly because of the absolutely gushing praise Steve Yegge had for the language way back in 2006. I've never forgotten this. For the most part, Ruby took Perl's string processing and Unix integration as-is,\u2026","rel":"","context":"In &quot;CS \/ Science \/ Tech \/ Coding&quot;","block_context":{"text":"CS \/ Science \/ Tech \/ Coding","link":"https:\/\/www.jsylvest.com\/blog\/category\/cs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":403,"url":"https:\/\/www.jsylvest.com\/blog\/2013\/05\/pi\/","url_meta":{"origin":686,"position":3},"title":"Pi","author":"jsylvest","date":"9 May 2013","format":false,"excerpt":"The Economist :: Babbage Blog :: Humble Pi The Raspberry Pi is the brainchild of a couple of computer scientists at Cambridge University. Back in 2006, they lamented the decline in programming skills among applicants for computer-science courses. ... Over the past ten years, computer-science students have gone from arriving\u2026","rel":"","context":"In &quot;CS \/ Science \/ Tech \/ Coding&quot;","block_context":{"text":"CS \/ Science \/ Tech \/ Coding","link":"https:\/\/www.jsylvest.com\/blog\/category\/cs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":885,"url":"https:\/\/www.jsylvest.com\/blog\/2014\/01\/latitude-longitude-distance\/","url_meta":{"origin":686,"position":4},"title":"Latitude-Longitude Distance","author":"jsylvest","date":"20 January 2014","format":false,"excerpt":"Updated: I noticed a floating point error when using this that I discuss correcting at the end of this post. I thought I would post some of the bite-sized coding pieces I've done recently. To lead off, here's\u00a0Ruby function to find the distance between two points given their latitude and\u2026","rel":"","context":"In &quot;CS \/ Science \/ Tech \/ Coding&quot;","block_context":{"text":"CS \/ Science \/ Tech \/ Coding","link":"https:\/\/www.jsylvest.com\/blog\/category\/cs\/"},"img":{"alt_text":"Protip: You can win every exchange just by being one level more precise than whoever talked last. Eventually, you'll defeat all conversational opponents and stand alone.","src":"https:\/\/i1.wp.com\/imgs.xkcd.com\/comics\/actually.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":160,"url":"https:\/\/www.jsylvest.com\/blog\/2013\/03\/reader\/","url_meta":{"origin":686,"position":5},"title":"Reader","author":"jsylvest","date":"14 March 2013","format":false,"excerpt":"Google is shutting down the Google Reader service, as you may have heard. I am not happy about this, but I'm also not throwing fits about it. I spent more time in my Reader tab than any other by a huge margin. I'm sure there's some other service out there\u2026","rel":"","context":"In &quot;Business \/ Economics&quot;","block_context":{"text":"Business \/ Economics","link":"https:\/\/www.jsylvest.com\/blog\/category\/business-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/posts\/686","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/comments?post=686"}],"version-history":[{"count":7,"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/posts\/686\/revisions"}],"predecessor-version":[{"id":697,"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/posts\/686\/revisions\/697"}],"wp:attachment":[{"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/media?parent=686"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/categories?post=686"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jsylvest.com\/blog\/wp-json\/wp\/v2\/tags?post=686"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}