<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I have an implementation that I have been working on. &nbsp;I will get a pull request together. &nbsp; My code in filenbmanager became much cleaner and more understandable once I made a Notebook object. &nbsp;I also made a NotebookCollection object that managed all the possible lookups to find a notebook. &nbsp;<div><br></div><div>For URLs I have added two new routes</div><div>/notebook_direct which leads to urls like /notebook_direct//Users/paddy/foo.ipynb</div><div>and</div><div>/notebook_relative which has paths that are relative to the base notebook directory.</div><div><br></div><div>What issues were there previously with path based notebooks? &nbsp;</div><div>One question that I have run into is, what directory do New Notebooks end up in?</div><div><br></div><div><br><div><br></div><div><br><div><div>On Apr 12, 2013, at 5:26 AM, Matthias Bussonnier &lt;<a href="mailto:bussonniermatthias@gmail.com">bussonniermatthias@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">How does this integrate with db back end ?&nbsp;<div>I know url that reflect notebook location seem great, and useful in most cases, because server run local where server is. But it is causing confusion, especially with the /files handler.&nbsp;</div>
<div><br></div><div>Le vendredi 12 avril 2013, MinRK  a écrit&nbsp;:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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="javascript:_e({}, 'cvml', 'ellisonbg@gmail.com');" target="_blank">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>On Thu, Apr 11, 2013 at 9:14 PM, MinRK &lt;<a href="javascript:_e({}, 'cvml', 'benjaminrk@gmail.com');" target="_blank">benjaminrk@gmail.com</a>&gt; wrote:<br>



&gt; We do need to figure this one out. &nbsp;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. &nbsp;We<br>
don't want "/" to actually mean "/".<br></blockquote><div><br></div><div>But that's problematic as well - if you isolate the notebook server, but allow navigation within that directory, you aren't really solving the issue of needing multiple notebook servers for multiple notebook directories unless people always start their notebooks in $HOME.</div>


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



<div><br>
&gt; We already have redirects for notebook name -&gt; notebook id URLs, perhaps<br>
&gt; rather than having 'true' 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>The difference is that when we are using redirects, the user-friendly URLs are transient, so we don't have issues of preserving state across variations (the rename issue).</div>


<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br>
&gt; i.e:<br>
&gt;<br>
&gt; &nbsp; &nbsp; /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. &nbsp;It could be that redirects<br>
&gt; are a sensible &nbsp;compromise.<br>
<br>
</div>I know how to do the dynamic URL rewriting. &nbsp;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. &nbsp;Then, the other person doesn't know the rename<br>
happened and when they save, it will write the notebook with the old<br>
name. &nbsp;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. &nbsp;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>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. &nbsp;In my semi-persistent notebook-id PR, I address this as well.</div>


<div>&nbsp;</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><br>
&gt;<br>
&gt; On Thu, Apr 11, 2013 at 6:14 PM, Paul Ivanov &lt;<a href="javascript:_e({}, 'cvml', 'pi@berkeley.edu');" target="_blank">pi@berkeley.edu</a>&gt; wrote:<br>


&gt;&gt;<br>
&gt;&gt; Zachary Sailer, on 2013-04-11 17:34, &nbsp;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'm a bit confused by the wording of 'notebooks' and 'app' -<br>
&gt;&gt; where you says something about the possibility of having<br>
&gt;&gt; a folder named 'notebooks' -- what if the user has a folder named<br>
&gt;&gt; 'app'?<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="javascript:_e({}, 'cvml', 'IPython-dev@scipy.org');" target="_blank">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="javascript:_e({}, 'cvml', 'IPython-dev@scipy.org');" target="_blank">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>--<br>
Brian E. Granger<br>
Cal Poly State University, San Luis Obispo<br>
<a href="javascript:_e({}, 'cvml', 'bgranger@calpoly.edu');" target="_blank">bgranger@calpoly.edu</a> and <a href="javascript:_e({}, 'cvml', 'ellisonbg@gmail.com');" target="_blank">ellisonbg@gmail.com</a><br>



</div><div>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="javascript:_e({}, 'cvml', 'IPython-dev@scipy.org');" target="_blank">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></blockquote></div><br></div></div>
</blockquote></div>
_______________________________________________<br>IPython-dev mailing list<br><a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a><br>http://mail.scipy.org/mailman/listinfo/ipython-dev<br></blockquote></div><br></div></div></body></html>