{"id":7769,"date":"2016-08-12T09:00:00","date_gmt":"2016-08-12T13:00:00","guid":{"rendered":"https:\/\/blogs.mathworks.com\/pick\/?p=7769"},"modified":"2019-04-03T14:22:28","modified_gmt":"2019-04-03T18:22:28","slug":"chebfun-current-version","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/pick\/2016\/08\/12\/chebfun-current-version\/","title":{"rendered":"Chebfun &#8211; Current Version"},"content":{"rendered":"<div xmlns:mwsh=\"https:\/\/www.mathworks.com\/namespace\/mcode\/v1\/syntaxhighlight.dtd\" class=\"content\">\r\n   <introduction>\r\n      <p><a href=\"https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/3208495\">Sean<\/a>'s pick this week is <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47023-chebfun-current-version\">Chebfun - Current Version<\/a> by <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/1823057\">the Chebfun Team<\/a>.\r\n      <\/p>\r\n   <\/introduction>\r\n\r\n   <p>My pick this week is the current version of Chebfun.  Some of you may be thinking: \"You're repicking it, it's <a href=\"https:\/\/blogs.mathworks.com\/pick\/2011\/10\/28\/numerical-methods-on-piecewise-continuous-functions\/\">already been picked<\/a>\" and discussed on <a href=\"https:\/\/blogs.mathworks.com\/cleve\/2012\/10\/01\/chebfun-numerical-computing-with-functions\/\">Cleve's blog<\/a>!  This is sort of true; the previous version of chebfun was picked and is still available.\r\n   <\/p>\r\n   <p>But I'm not going to spend my time trying to show you great examples or talk about the usefulness of this tool.  The chebfun\r\n      team already has a <a href=\"http:\/\/www.chebfun.org\/examples\/\">great example gallery<\/a>, which is very similar to the <a href=\"https:\/\/www.mathworks.com\/help\/examples.html\">MathWorks example gallery<\/a>, that covers the vast range of capabilities.\r\n   <\/p>\r\n   <p>I'm going to discuss the conversation I had with <a href=\"http:\/\/people.maths.ox.ac.uk\/trefethen\/\">Professor Trefethen<\/a>, the inventor of Chebfun, at the annual SIAM conference in July, 2016.  He approached me at the MathWorks booth and wanted\r\n      to know why the older version continues to see so many downloads when they're trying to encourage users to migrate to the\r\n      new one?  Here's a screenshot of the current downloads:\r\n   <\/p>\r\n   <p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/images\/pick\/Sean\/mainchebfuncv\/chebfunfex.png\"> <\/p>\r\n   <p>As you can see over the last 30 days (August 9, 2016), the old version has 41 downloads compared to 68 for the new one.  But\r\n      it clearly says \"Please download current version\".  The description on the file's page repeats this and points at the new\r\n      one and the chebfun website. Professor Trefethen was curious what could be done to migrate more people to the current version.\r\n       The challenge is that he'd like the older version to remain available for people who intentionally need backward compatibility\r\n      but not for any new users.\r\n   <\/p>\r\n   <p>I suggested that the older code and example files be removed from the File Exchange and replaced with a readme that points\r\n      to the current version.  After some explaining the enhancements and fair warning, the readme would then have a link to where\r\n      the old one could be downloaded be it the chebfun website or github.\r\n   <\/p>\r\n   <p>Backward compatibility is obviously a challenge for the File Exchange. The integration with GitHub has helped but for files\r\n      not linked to GitHub it can be difficult to impossible to get older versions of code when a file is updated.\r\n   <\/p>\r\n   <p>What are <a href=\"https:\/\/blogs.mathworks.com\/pick\/?p=7769#respond\">your thoughts<\/a> on the idea of a readme, multiple versions of a tool on the File Exchange, and the importance of backward compatibility on\r\n      the File Exchange?  Is this a challenge you've struggled with?\r\n   <\/p>\r\n   <p>We also discussed content curation on the File Exchange.  There currently is none outside of ensuring export control compliance.\r\n       Do you think that content on the File Exchange should be curated in some way?\r\n   <\/p>\r\n   <h3>Comments<a name=\"2\"><\/a><\/h3>\r\n   <p>Give the latest version of chebfun a try and let us know what you think <a href=\"https:\/\/blogs.mathworks.com\/pick\/?p=7769#respond\">here<\/a> or leave a <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47023-chebfun-current-version#comments\">comment<\/a> for the Chebfun Team.\r\n   <\/p><script language=\"JavaScript\">\r\n<!--\r\n\r\n    function grabCode_c315348ef24841e2a75a4f9f11c838fc() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='c315348ef24841e2a75a4f9f11c838fc ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' c315348ef24841e2a75a4f9f11c838fc';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        author = 'Sean de Wolski';\r\n        copyright = 'Copyright 2016 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add author and copyright lines at the bottom if specified.\r\n        if ((author.length > 0) || (copyright.length > 0)) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (author.length > 0) {\r\n                d.writeln('% _' + author + '_');\r\n            }\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n      \r\n      d.title = title + ' (MATLAB code)';\r\n      d.close();\r\n      }   \r\n      \r\n-->\r\n<\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_c315348ef24841e2a75a4f9f11c838fc()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n            the MATLAB code \r\n            <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2016b<br><\/p>\r\n<\/div>\r\n<!--\r\nc315348ef24841e2a75a4f9f11c838fc ##### SOURCE BEGIN #####\r\n%% Chebfun - Current Version\r\n%\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/3208495 Sean>'s pick this week is\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47023-chebfun-current-version Chebfun - Current Version> by\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/1823057 the Chebfun Team>.\r\n% \r\n\r\n%% \r\n% My pick this week is the current version of Chebfun.  Some of you may be\r\n% thinking: \"You're repicking it, it's\r\n% <https:\/\/blogs.mathworks.com\/pick\/2011\/10\/28\/numerical-methods-on-piecewise-continuous-functions\/\r\n% already been picked>\" and discussed on\r\n% <https:\/\/blogs.mathworks.com\/cleve\/2012\/10\/01\/chebfun-numerical-computing-with-functions\/\r\n% Cleve's blog>!  This is sort of true; the previous version of chebfun was\r\n% picked and is still available.\r\n%\r\n% But I'm not going to spend my time trying to show you great examples or\r\n% talk about the usefulness of this tool.  The chebfun team already has a\r\n% <http:\/\/www.chebfun.org\/examples\/ great example gallery>, which is very\r\n% similar to the <https:\/\/www.mathworks.com\/examples MathWorks example\r\n% gallery>, that covers the vast range of capabilities.\r\n%\r\n% I'm going to discuss the conversation I had with\r\n% <http:\/\/people.maths.ox.ac.uk\/trefethen\/ Professor Trefethen>, the\r\n% inventor of Chebfun, at the annual SIAM conference in July, 2016.  He\r\n% approached me at the MathWorks booth and wanted to know why the older\r\n% version continues to see so many downloads when they're trying to\r\n% encourage users to migrate to the new one?  Here's a screenshot of the\r\n% current downloads:\r\n%\r\n% <<chebfunfex.png>>\r\n%\r\n% As you can see over the last 30 days (August 9, 2016), the old version\r\n% has 41 downloads compared to 68 for the new one.  But it clearly says\r\n% \"Please download current version\".  The description on the file's page\r\n% repeats this and points at the new one and the chebfun website. Professor\r\n% Trefethen was curious what could be done to migrate more people to the\r\n% current version.  The challenge is that he'd like the older version to\r\n% remain available for people who intentionally need backward compatibility\r\n% but not for any new users.\r\n%\r\n% I suggested that the older code and example files be removed from the\r\n% File Exchange and replaced with a readme that points to the current\r\n% version.  After some explaining the enhancements and fair warning, the\r\n% readme would then have a link to where the old one could be downloaded be\r\n% it the chebfun website or github.\r\n%\r\n% Backward compatibility is obviously a challenge for the File Exchange.\r\n% The integration with github has helped but for files not linked to github\r\n% it can be difficult to impossible to get older versions of code when a\r\n% file is updated.\r\n%\r\n% What are <https:\/\/blogs.mathworks.com\/pick\/?p=7769#respond your thoughts>\r\n% on the idea of a readme, multiple versions of a tool on the File\r\n% Exchange, and the importance of backward compatibility on the File\r\n% Exchange?  Is this a challenge you've struggled with?\r\n%\r\n% We also discussed content curation on the File Exchange.  There currently\r\n% is none outside of ensuring export control compliance.  Do you think that\r\n% content on the File Exchange should be curated in some way?\r\n\r\n%% Comments\r\n% \r\n% Give the latest version of chebfun a try and let us know what you think\r\n% <https:\/\/blogs.mathworks.com\/pick\/?p=7769#respond here> or leave a\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47023-chebfun-current-version#comments\r\n% comment> for the Chebfun Team.\r\n##### SOURCE END ##### c315348ef24841e2a75a4f9f11c838fc\r\n-->","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img decoding=\"async\"  class=\"img-responsive\" src=\"https:\/\/blogs.mathworks.com\/images\/pick\/Sean\/mainchebfuncv\/chebfunfex.png\" onError=\"this.style.display ='none';\" \/><\/div><p>\r\n   \r\n      Sean's pick this week is Chebfun - Current Version by the Chebfun Team.\r\n      \r\n   \r\n\r\n   My pick this week is the current version of Chebfun.  Some of you may be... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/pick\/2016\/08\/12\/chebfun-current-version\/\">read more >><\/a><\/p>","protected":false},"author":87,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/7769"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/comments?post=7769"}],"version-history":[{"count":5,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/7769\/revisions"}],"predecessor-version":[{"id":10656,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/posts\/7769\/revisions\/10656"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/media?parent=7769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/categories?post=7769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/pick\/wp-json\/wp\/v2\/tags?post=7769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}