<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 11, 2013 at 9:40 PM, Brian Granger <span dir="ltr">&lt;<a href="mailto:ellisonbg@gmail.com" target="_blank" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=ellisonbg@gmail.com&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">ellisonbg@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="im">On Thu, Apr 11, 2013 at 9:14 PM, MinRK &lt;<a href="mailto:benjaminrk@gmail.com" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=benjaminrk@gmail.com&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">benjaminrk@gmail.com</a>&gt; wrote:<br>


&gt; We do need to figure this one out.  There are still some questions to work<br>
&gt; out:<br>
&gt;<br>
&gt; What does `foo/bar` resolve to? Is it relative to the initial notebook<br>
&gt; server directory, or is it absolute?<br>
<br>
</div>I was thinking it is relative to the initial notebook server dir, so<br>
users can limit the notebook servers access to the file system.  We<br>
don&#39;t want &quot;/&quot; to actually mean &quot;/&quot;.<br></blockquote><div><br></div><div style>But that&#39;s problematic as well - if you isolate the notebook server, but allow navigation within that directory, you aren&#39;t really solving the issue of needing multiple notebook servers for multiple notebook directories unless people always start their notebooks in $HOME.</div>

<div style><br></div><div style>I still think our original &#39;project&#39; notion was a good one, and I don&#39;t know why we seem to be abandoning it.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div class="im"><br>
&gt; We already have redirects for notebook name -&gt; notebook id URLs, perhaps<br>
&gt; rather than having &#39;true&#39; paths in the URLs, we have project-ids, just like<br>
&gt; we have notebook-ids, and a redirect handler for loading a project,<br>
<br>
</div>Yes, we could do the redirects, but I have a feeling that the redirect<br>
stuff is simply going to take us closer and closer to actually getting<br>
rid of the notebook_id/project_id approach.<br></blockquote><div><br></div><div style>The difference is that when we are using redirects, the user-friendly URLs are transient, so we don&#39;t have issues of preserving state across variations (the rename issue).</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
&gt; i.e:<br>
&gt;<br>
&gt;     /project/path/to/notebook-dir redirects to /project-id/<br>
&gt;<br>
&gt; and /project/path/to/notebook-dir/notebook.ipynb redirects to<br>
&gt; /project-id/notebook-id<br>
<br>
&gt; The reason we have notebook-id URLs is that handling the url rewrites /<br>
&gt; redirects on notebook renames might be tricky.  It could be that redirects<br>
&gt; are a sensible  compromise.<br>
<br>
</div>I know how to do the dynamic URL rewriting.  This is what GitHub uses<br>
now that it allows you to rename files in edit mode.<br>
<br>
The big problem is if a rename happens when someone else has the same<br>
notebook open.  Then, the other person doesn&#39;t know the rename<br>
happened and when they save, it will write the notebook with the old<br>
name.  But maybe this is OK - our live notebook sharing is actually<br>
broken already - this example just shows that we need to fix it for<br>
real.  But it is risky as a single user can run into this if they open<br>
the notebook page in two tabs or browsers.</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
But I also have some vague recollections that there were some problems<br>
with Untitled notebooks as well.<br></blockquote><div><br></div><div style>The issue with this was the renames - 100% of notebooks have the initial name Untitled0, so every notebook you create in a given session started with the same name.  In my semi-persistent notebook-id PR, I address this as well.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
<br>
Brian<br>
<div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt; On Thu, Apr 11, 2013 at 6:14 PM, Paul Ivanov &lt;<a href="mailto:pi@berkeley.edu" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=pi@berkeley.edu&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">pi@berkeley.edu</a>&gt; wrote:<br>


&gt;&gt;<br>
&gt;&gt; Zachary Sailer, on 2013-04-11 17:34,  wrote:<br>
&gt;&gt; &gt; Hi everyone,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Take a look at the new IPEP added to the IPython wiki page,<br>
&gt;&gt; &gt; IPEP 16: Notebook multi directory dashboard and URL mapping.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; <a href="https://github.com/ipython/ipython/wiki/IPEP-16%3A-Notebook-multi-directory-dashboard-and-URL-mapping" target="_blank">https://github.com/ipython/ipython/wiki/IPEP-16%3A-Notebook-multi-directory-dashboard-and-URL-mapping</a><br>


&gt;&gt;<br>
&gt;&gt; Looks pretty good, Zach - I adjusted some wording to emphasize<br>
&gt;&gt; just how bad the problem is (you have to restart the server, or<br>
&gt;&gt; start a new one, not just a new dashboard).<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m a bit confused by the wording of &#39;notebooks&#39; and &#39;app&#39; -<br>
&gt;&gt; where you says something about the possibility of having<br>
&gt;&gt; a folder named &#39;notebooks&#39; -- what if the user has a folder named<br>
&gt;&gt; &#39;app&#39;?<br>
&gt;&gt;<br>
&gt;&gt; best,<br>
&gt;&gt; --<br>
&gt;&gt; Paul Ivanov<br>
&gt;&gt; <a href="http://pirsquared.org" target="_blank">http://pirsquared.org</a> | GPG/PGP key id: 0x0F3E28F7<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; IPython-dev mailing list<br>
&gt;&gt; <a href="mailto:IPython-dev@scipy.org" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=IPython-dev@scipy.org&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">IPython-dev@scipy.org</a><br>


&gt;&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; IPython-dev mailing list<br>
&gt; <a href="mailto:IPython-dev@scipy.org" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=IPython-dev@scipy.org&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">IPython-dev@scipy.org</a><br>


&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
&gt;<br>
<br>
<br>
<br>
</div></div><div class="im HOEnZb">--<br>
Brian E. Granger<br>
Cal Poly State University, San Luis Obispo<br>
<a href="mailto:bgranger@calpoly.edu" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=bgranger@calpoly.edu&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">bgranger@calpoly.edu</a> and <a href="mailto:ellisonbg@gmail.com" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=ellisonbg@gmail.com&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">ellisonbg@gmail.com</a><br>


</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto:IPython-dev@scipy.org" onclick="window.open(&#39;https://mail.google.com/mail/?view=cm&amp;tf=1&amp;to=IPython-dev@scipy.org&amp;cc=&amp;bcc=&amp;su=&amp;body=&#39;,&#39;_blank&#39;);return false;">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>
</div></div></blockquote></div><br></div></div>