<div><span style="font-family:arial,sans-serif;font-size:13px">&quot;</span><span style="font-family:arial,sans-serif;font-size:13px">In general, I don&#39;t think we&#39;d block on a new feature. The standard for setting a blocker is &#39;would we wait for this if everything else is ready for a release?&#39;&quot;</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Yes, I think bullet-proof crash data recovery is really that important for some use cases.</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">&quot;</span><span style="font-family:arial,sans-serif;font-size:13px">Could you flesh out a detailed description of how an autosave might work, ...</span><span style="font-family:arial,sans-serif;font-size:13px"> It should describe, for instance:&quot;</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><font face="arial, sans-serif">It doesn&#39;t matter to me as long as user input is on disk somewhere, in some format.</font><font face="arial, sans-serif"> </font><span style="font-family:arial,sans-serif;font-size:13px">For example, the server could simply log the text of all the cells that are sent for execution to a textual log file, even a single global log file.  Recovery would then be a few minutes of cut-and-paste, but that beats starting from scratch.</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">(My preference is implementing Emacs autosave semantics; I tried explaining how that works in an earlier message.)</span></div>

<div><font face="arial, sans-serif"><br></font></div><span style="font-family:arial,sans-serif;font-size:13px">&quot;Looking at this differently, I wonder if we could use the localStorage Javascript APIs to do autosaves client-side?&quot;</span><br>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">That&#39;s what I have hacked up (JavaScript injection plus local storage). It&#39;s a workaround I can use myself, but I don&#39;t think it&#39;s a good solution for the project.</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Tom</span></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 7, 2012 at 2:20 PM, Thomas Kluyver <span dir="ltr">&lt;<a href="mailto:takowl@gmail.com" target="_blank">takowl@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="im"><div class="gmail_quote">On 7 November 2012 12:43, Tom <span dir="ltr">&lt;<a href="mailto:tmbdev@gmail.com" target="_blank">tmbdev@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

(I think lack of autosave should be prio-blocker.)</blockquote></div><br></div>In general, I don&#39;t think we&#39;d block on a new feature. The standard for setting a blocker is &#39;would we wait for this if everything else is ready for a release?&#39; 0.14 will improve on 0.13 even if it&#39;s released without autosave, so it wouldn&#39;t make sense to hold it up for that.<br>



<br>Could you flesh out a detailed description of how an autosave might work, perhaps as an IPEP (<a href="https://github.com/ipython/ipython/wiki/IPython-Enhancement-Proposals-%28IPEPs%29" target="_blank">https://github.com/ipython/ipython/wiki/IPython-Enhancement-Proposals-%28IPEPs%29</a> ). It should describe, for instance:<br>



- What gets saved<br>- Will it be always on, configurable, or &#39;smart&#39;?<br>- Where does it get saved? I don&#39;t like extra files cluttering up my working directory.<br>- What happens if I have the same notebook open in two tabs? Or two computers talking to the same server?<br>



- Notebooks needn&#39;t be stored as files, they could be blobs in a database - how will this be abstracted away from the frontend?<br>- Will autosave files be automatically removed, and if so, when?<br>- How is a crash detected, and what UI presents the autosaves to the user?<br>



<br>Looking at this differently, I wonder if we could use the localStorage Javascript APIs to do autosaves client-side? I suspect that idea has its share of difficulties, but perhaps it&#39;s worth exploring.<br><br>Thanks,<br>



Thomas<br></div>
<br>_______________________________________________<br>
IPython-User mailing list<br>
<a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
<br></blockquote></div><br></div>