<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Nov 2, 2014 at 10:37 AM, Matthias Bussonnier <span dir="ltr"><<a href="mailto:bussonniermatthias@gmail.com" target="_blank">bussonniermatthias@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word">Hi Carlos, <div><br></div><div>TL:DR; at the end. </div><div><div><br></div><div>With the notebook format v4, the way notebooks are written on disk will change.</div><div>After now some time with v3, we know that a few things could have been done better</div><div>or in a more general way, thus we improved the notebook format. </div><div><br></div><div>Once 3.0 and 2.4 are released this shouldn't change much for the end user.</div><div>I'll go over some of the changes in the notebook format and their reasons, but you </div><div>should read the IPep for all details. </div><div><br></div><div><br></div><div>Get rid of python specific names. </div><div><span style="white-space:pre-wrap">   </span>pyin, pyout, pyerr are renamed input input, output, and error (roughly, read IPep for exact names). </div><div><br></div><div>Uniformise jpg/png/text keys in output to be a mimetype. </div><div><span style="white-space:pre-wrap">  </span>You can now store application/x-pdf or doc/microsoft-word in a notebook. </div><div><span style="white-space:pre-wrap">       </span>If the frontend now how to read it, it will do something with it i suppose.</div><div><span style="white-space:pre-wrap">      </span>It remove a lot of special casing. </div><div><br></div><div>Get rid of worksheets, almost nobody use it, and there are other smarter way to </div><div>store them if we wanted to.</div><div><br></div><div>Text cells had their text under the 'text' key, and code cell under 'source'. </div><div>Which is a bit silly, as it forces you to do some special casing where not necessary.</div><div><br></div><div>Heading cell are now gone (from the file format), Technology evolve fast, and we can </div><div>now detect the #*n in markdown cell and convert properly to LaTeX, and add anchor </div><div>in nbviewer.</div><div><br></div><div>More importantly, we know have a jsonschema that describe the format. </div><div>So we can validate the notebook, and know that for example, a prompt number</div><div>is either null, or a number. v3 was implicitly allowing '*' (star), which would happened </div><div>if you were saving while cell are running, which took by surprise both us and external</div><div>library where the conversion of some notebook made crashes. This include also security risk.</div><div>Which I won't develop, cause I won't develop, but those who know know I love javascipt</div><div>injection, and you can do nasty things on known websites. By insuring the type of each field</div><div>of the notebook you lower the attack area, and protect FooBar corp user from attacks</div><div>even if FooBar corp does not really respond to you when you do responsible disclosure and </div><div>finally give up. </div><div><br></div><div>I won't describe "All the things", but you see the big picture. </div><div>It's better, faster, stronger.</div><div><br></div><div>TL;DR:</div><div><br></div><div>Wat ? You don't know ?! I've heard that IPython notebook format v3 might have been responsible</div><div>for the death of a huge number of kittens due to developers banging their head on their desk. </div><div>It is also probable that the need of extra computing power to run more test because of it's complexity</div><div>is in part responsible for global warming. Also the new format prevent the use of %pylab that kills </div><div>the endangered species of newbies. The naming convention was also really strange for php  </div><div>coders that don't understand the py prefixes.</div><div><br></div><div>As we like kittens, newbies, developers, php coders (but not php itself [1]), and dislike</div><div>global warming we decided to fix that.</div><div><br></div><div>It also comes as ipynb v4+  that have a 5.5 inches screen, and we plan to jump from v8 to v10 </div><div>directly. We also removed touch-id from metadata so that police cannot force youth unlock your</div><div>ipynb.</div><div><br></div><div>Hope that shine a light on a few of the reason and what will change. </div><div>Tell us if you have any more questions. </div></div></div></blockquote><div><br></div><div>You don't mention it here, but nbformatv4 also includes the autoscroll behavior for a cell as part of the notebook metadata, meaning no more resetting autoscroll and issue 2172 can be fixed!</div><div><br></div><div><a href="https://github.com/ipython/ipython/issues/2172">https://github.com/ipython/ipython/issues/2172</a><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div><br></div><div><br></div><div>Cheers, </div><span class=""><font color="#888888"><div>-- </div><div>M</div><div><br></div><div>[1]: But MinRK Love Javascript. </div><div> </div><div><br></div><div><br></div><div><br></div><div><br></div></font></span><div><div><span class=""><font color="#888888"><div>Le 2 nov. 2014 à 18:49, Carlos Córdoba <<a href="mailto:ccordoba12@gmail.com" target="_blank">ccordoba12@gmail.com</a>> a écrit :</div></font></span><div><div class="h5"><br><blockquote type="cite">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <font size="-1">Hi,<br>
      <br>
      Could you explain a bit more what this change is about?<br>
      <br>
      Cheers,<br>
      Carlos<br>
      <br>
    </font>
    <div>El 01/11/14 a las 13:01, Brian Granger
      escribió:<br>
    </div>
    <blockquote type="cite">
      <pre>Matthias,

Thanks for posting here about these changes!

And thanks to the whole team (esp Min) for working on all of this!

Cheers,

Brian

On Sat, Nov 1, 2014 at 3:12 AM, Matthias Bussonnier
<a href="mailto:bussonniermatthias@gmail.com" target="_blank"><bussonniermatthias@gmail.com></a> wrote:
</pre>
      <blockquote type="cite">
        <pre>Hello Jovyans and other beings from Jupyter galilean moons system,


I'm writing to you to warn that on Monday (probably morning) a relatively
important change
in IPython will land on master. In particular it does change the notebook
structure quite a bit.

Cf <a href="https://github.com/ipython/ipython/pull/6045" target="_blank">https://github.com/ipython/ipython/pull/6045</a> for more information.

As nothing is ever perfect, please do back-up your notebooks before
upgrading. With this new update,
saved notebook of this new of IPython version won't be compatible with
older IPython anymore, nor will nbviewer be able to render them.

The new notebook format will be back-ported on older (2.x) version of
IPython and the new notebook format
will be supported on nbviewer, we will just need a few days to port all the
changes.

There is of course be a way to manually downgrade the notebook from v4 to v3
using nbconvert.

Eventually the more adventurous can test the branch this week-end.

As usual, be prepared for data loss and bugs, so update your git branches,
refresh submodules, clear your browser caches, roll up your sleeves, and
send bug reports.

Cheers,
--
Matthias
</pre></blockquote></blockquote></div></blockquote></div></div></div><br></div></div></div><br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
<br></blockquote></div><br></div></div>