tag:blogger.com,1999:blog-4651184076703138844.post2459945294961582099..comments2017-03-20T21:33:38.863-07:00Comments on The Exclusive Or: Principles of Research CodeCharles Suttonhttp://www.blogger.com/profile/10380218499923073861noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-4651184076703138844.post-45752021453349473052012-08-26T09:13:52.587-07:002012-08-26T09:13:52.587-07:00I recently ran across a blog entry by Hilary Parke...I recently ran across a blog entry by Hilary Parker ( http://hilaryparker.com/2012/08/25/love-for-projecttemplate/ ) that tackles some similar infrastructure questions for data analysis using the Project Template project for R ( http://projecttemplate.net/index.html ).<br /><br />The hard issue for me is capturing all of the context at each stage of work -- from versions of files to generate specific plots, to everything I was thinking about. I rely heavily on lab notebooks, but that still gets awkward for capturing certain types of data/parameters.<br /><br />mdhillshttps://www.blogger.com/profile/14500905452343628001noreply@blogger.comtag:blogger.com,1999:blog-4651184076703138844.post-27007343516133058692012-08-21T03:09:52.382-07:002012-08-21T03:09:52.382-07:00Thanks for your comment. I completely agree with y...Thanks for your comment. I completely agree with you that researchers should wherever possible share their code to encourage reproducible research and to help people understand their algorithms. I was trying to say something different. Research code can have a lot of potential uses, e.g., as a reference implementation of an algorithm, as a reusable toolkit that others can use, but for most code, most of the time, the primarily goal is to test your ideas. For this type of code, I am saying that you want to optimize for your programmer time over maintainability. This is way research code is often "quick and dirty" in ways that production code should not be---and this is a good thing. For example, say your command line tool crashes if the user enters the arguments in the wrong order. In production code, you'd need to fix that. In research code, don't bother. Your time is more important. That's a tradeoff that sometimes students aren't used to, coming out of a CS undergraduate.Charles Suttonhttps://www.blogger.com/profile/10380218499923073861noreply@blogger.comtag:blogger.com,1999:blog-4651184076703138844.post-36076375785933297872012-08-21T03:09:22.985-07:002012-08-21T03:09:22.985-07:00This comment has been removed by the author.Charles Suttonhttps://www.blogger.com/profile/10380218499923073861noreply@blogger.comtag:blogger.com,1999:blog-4651184076703138844.post-30891957847068150612012-08-20T11:44:10.550-07:002012-08-20T11:44:10.550-07:00This comment has been removed by the author.fabiomhttps://www.blogger.com/profile/08658984419134178863noreply@blogger.comtag:blogger.com,1999:blog-4651184076703138844.post-58055328694379106572012-08-20T11:36:16.289-07:002012-08-20T11:36:16.289-07:00I do not agree on the first point. The product is ...I do not agree on the first point. The product is the knowledge, but helping others to reach the same knowledge via a code is an improvement. Sharing code or knowledge is about the same. I share!fabiomhttps://www.blogger.com/profile/08658984419134178863noreply@blogger.com