{"id":366,"date":"2018-09-06T17:27:23","date_gmt":"2018-09-06T15:27:23","guid":{"rendered":"https:\/\/andreikucharavy.com\/L3Cache\/?p=366"},"modified":"2018-09-06T17:27:23","modified_gmt":"2018-09-06T15:27:23","slug":"jupyter-ipython-notebooks","status":"publish","type":"post","link":"https:\/\/andreikucharavy.com\/L3Cache\/jupyter-ipython-notebooks\/","title":{"rendered":"Jupyter\/Ipython notebooks"},"content":{"rendered":"<p>After writing it down a couple of weeks ago for Hacker News, here is the recap and some updates:<\/p>\n<p>I am a computational biologist with a heavy emphasis on the data analysis. I did try Jupyter a couple of years ago and here are my concerns with it, compared to my usual flow (Pycharm + pure python + pickle to store results of heavy processing).<\/p>\n<ol>\n<li>Extracting functions is harder <\/li>\n<li>Your git commits become completely borked  <\/li>\n<li>Opening some data-heavy notebooks is neigh impossible once they have been shut down  <\/li>\n<li>Import of other modules you have in local is pretty non-trivial.  <\/li>\n<li>Refactoring is pretty hard  <\/li>\n<li>Sphinx for autodoc extraction is pretty much out of the picture  <\/li>\n<li>Non-deterministic re-runs &#8211; depending on the cell<br \/>\nexecution order you can get very different results. That&#8217;s an issue<br \/>\nwhen you are coming back to your code a couple of months later and<br \/>\ntry to figure what you did to get there.<\/li>\n<li>Connecting to the ipython notebook, even from the environments like Pycharm is highly non-trivial, just as the mapping to the OS<br \/>\nfilesystem<\/li>\n<li>Hard to impossible to inspect the contents of the ipython notebook when it&#8217;s hosted on Github due to the encoding snafus<\/li>\n<\/ol>\n<p>There are likely work-arounds for most of these problems, but the issue is that with my standard workflow they are non-issues to start with.<\/p>\n<p>In my experience, Jupyter is pretty good if you rely only on existing libraries that you are piecing together, but once you need to do more involved development work, you are screwed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After writing it down a couple of weeks ago for Hacker News, here is the recap and some updates: I am a computational biologist with a heavy emphasis on the data analysis. I did try Jupyter a couple of years ago and here are my concerns with it, compared to my usual flow (Pycharm + <a class=\"read-more\" href=\"https:\/\/andreikucharavy.com\/L3Cache\/jupyter-ipython-notebooks\/\">[&hellip;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27,24],"tags":[],"class_list":["post-366","post","type-post","status-publish","format-standard","hentry","category-ux","category-prog"],"_links":{"self":[{"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/posts\/366"}],"collection":[{"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/comments?post=366"}],"version-history":[{"count":1,"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/posts\/366\/revisions"}],"predecessor-version":[{"id":367,"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/posts\/366\/revisions\/367"}],"wp:attachment":[{"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/media?parent=366"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/categories?post=366"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/andreikucharavy.com\/L3Cache\/wp-json\/wp\/v2\/tags?post=366"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}