<div dir="ltr"><div class="markdown-here-wrapper" id="markdown-here-wrapper-123885" style="font-size:1em;font-family:Helvetica,arial,freesans,clean,sans-serif;color:rgb(34,34,34);background-color:rgb(255,255,255);border:none;line-height:1.2">

<p style="margin:1em 0px">Hi Brian,</p><p style="margin:1em 0px"><span style="font-size:1em;line-height:1.2">You did. In IPython/lib/xtk.py, you id&#39;d your divs as</span></p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;overflow:auto;margin:1em 0px"><code class="language-javascript" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;white-space:pre;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block;padding:0.5em;color:rgb(51,51,51);background-color:rgb(248,248,255);background-repeat:initial initial"><span class="keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> id = <span class="string" style="color:rgb(221,17,68)">&#39;xtkwidget_&#39;</span> + utils.uuid();
<span class="keyword" style="color:rgb(51,51,51);font-weight:bold">var</span> xtkdiv = $(<span class="string" style="color:rgb(221,17,68)">&#39;&lt;div/&gt;&#39;</span>).attr(<span class="string" style="color:rgb(221,17,68)">&#39;id&#39;</span>,id);</code></pre>


<p style="margin:1em 0px">Is this uuid method something inherent in IPython? It seems to be working without me importing anything external into the js, so I&#39;m assuming so.</p>
<p style="margin:1em 0px">Regards,<br>Pat</p>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 3:24 PM, Brian Granger <span dir="ltr">&lt;<a href="mailto: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 dir="ltr">I seem to recall that I had solved this by adding special ids to the divs that were created.  Did you look at the code in my repo?  I would rather not get into the habit of creating output divs that are outside of the output areas.  It makes it much more difficult to think about exporting that to other formats.<div>


<br></div><div>Cheers,</div><div><br></div><div>Brian</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 12:35 PM, Patrick Fuller <span dir="ltr">&lt;<a href="mailto:patrickfuller@gmail.com" target="_blank">patrickfuller@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 dir="ltr">Hm, the xtk-basic-example suffers from the same issue I&#39;m having - if you run the same sample code in two different cells, it doesn&#39;t know what to do. The easy solution is to carve out a div independent of the notebook flow and use that to display all js stuff. I&#39;ll just do that.</div>


<div><div>

<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 12:17 PM, Patrick Fuller <span dir="ltr">&lt;<a href="mailto:patrickfuller@gmail.com" target="_blank">patrickfuller@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 dir="ltr">Thanks, guys!<div><br></div><div>I wrapped my js example in some Python and made a repo: <a href="https://github.com/patrickfuller/imolecule" target="_blank">https://github.com/patrickfuller/imolecule</a>. I&#39;ll read through the examples posted and see if I can clean up my approach. Going off of the browser screenshot alone, I like the idea of generating a single static div to display the output of js execution.</div>





</div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 11:56 AM, Brian Granger <span dir="ltr">&lt;<a href="mailto: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 dir="ltr">Here is the most up to date IPython repo with XTK stuff:<div><br></div><div><a href="https://github.com/ellisonbg/ipython/tree/xtk" target="_blank">https://github.com/ellisonbg/ipython/tree/xtk</a><br>





</div></div><div><div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 11:52 AM, Rich Stoner <span dir="ltr">&lt;<a href="mailto:stonerri@gmail.com" target="_blank">stonerri@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 dir="ltr">Patrick et. al, <div><br></div><div>Here is the xtk-ipython repo: <a href="https://github.com/richstoner/xtk-ipython-examples" target="_blank">https://github.com/richstoner/xtk-ipython-examples</a></div><div>






<br>

</div><div>I think that, as part of the plans to eliminate arbitrary js execution at the notebook interface, building out wrappers around the larger js frameworks makes a lot of sense. This is the approach taken here: <a href="https://github.com/fperez/xtk-ipython" target="_blank">https://github.com/fperez/xtk-ipython</a></div>








<div><br></div><div><br>Best -</div><div><br></div><div>Rich</div><div><br></div><div><br></div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 19, 2013 at 9:08 AM, Patrick Fuller <span dir="ltr">&lt;<a href="mailto:patrickfuller@gmail.com" target="_blank">patrickfuller@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 dir="ltr">Hi guys,<div><br></div><div>I think that my little demo is more about the potential of webGL + IPython than about the molecule drawer itself. If a bigger project like XTK can be ported easily, it could open up a lot of doors for IPython tools.</div>










<div><br></div><div>Anyway, I&#39;ll look through the xtk + ipython examples soon and throw this molecule drawer idea into a new repo. If webgl + ipython picks up, it&#39;ll be around.</div><div><br></div><div>

Cheers,</div><div>Pat</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Mar 18, 2013 at 10:14 PM, Rich Stoner <span dir="ltr">&lt;<a href="mailto:stonerri@gmail.com" target="_blank">stonerri@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 dir="ltr">Patrick,<div><br></div><div>I have working examples of Ipython + XTK (<a href="https://github.com/xtk/X" target="_blank">https://github.com/xtk/X</a>). It&#39;s not the cleanest implementation but I&#39;ll throw it on Github later tonight/tomorrow. </div>












<div><br></div><div>Best - </div><span><font color="#888888"><div><br></div><div>Rich</div><div><br></div></font></span></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Mon, Mar 18, 2013 at 6:40 PM, Brian Granger <span dir="ltr">&lt;<a href="mailto: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 dir="ltr">Patrick,<div><br></div><div>Hi, this is really exciting to see people doing things like this.  This Fall we will be working on our APIs for this stuff - we are hoping to make it easier - please keep in touch as things move forward.</div>













<div><br></div><div>Cheers,</div><div><br></div><div>Brian</div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Mon, Mar 18, 2013 at 5:20 PM, Patrick Fuller <span dir="ltr">&lt;<a href="mailto:patrickfuller@gmail.com" target="_blank">patrickfuller@gmail.com</a>&gt;</span> wrote:<br>













</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div style="line-height:1.2;color:rgb(34,34,34);font-size:1em;font-family:Helvetica,arial,freesans,clean,sans-serif;border:none">















<p style="margin:1em 0px">Hi everyone,</p>
<p style="margin:1em 0px">I was at Pycon yesterday and saw a really cool IPython notebook + HTML5 talk by Matt Davis. Motivated by the talk, I was curious to see if I could get WebGL running via three.js, so I went ahead and wrote an interactive molecule viewer.</p>
















<p style="margin:1em 0px"><img src="cid:ii_13d7ff1e27f70318" alt="Inline image 1" width="420" height="289"></p>
<p style="margin:1em 0px">FYI, it&#39;s a lazy first-pass port of <a href="http://www.patrick-fuller.com/molecule-viewer-alpha/" style="color:rgb(51,51,238);text-decoration:none" target="_blank">another molecule viewer I wrote</a>, which is itself a lazy first pass at learning webGL... which leads me to some questions :-)</p>
















<ul style="padding-left:2em;margin:1em 0px">
<li style="margin:1em 0px"><p style="margin:1em 0px">I&#39;m confident that I&#39;m misusing the <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline">Javascript</code> and <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline">HTML</code> objects. The <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline">Javascript</code> docstring talks about a generated <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline">element</code> object, but I couldn&#39;t get jQuery to bind to it. My current selector is <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:nowrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline">&quot;div.molecule&quot;</code>, which runs into some fairly obvious problems when you draw more than one molecule.</p>
















</li>
<li style="margin:1em 0px"><p style="margin:1em 0px">I have no idea what the javascript variable scopes look like. Am I in danger of overwriting something important to IPython?</p>
</li>
</ul>
<p style="margin:1em 0px">Also, is there any general interest out there in exploring ipython notebook + webgl further? Are there other projects that do so?</p>
<p style="margin:1em 0px">Thanks for hearing me out (and working on such a cool open-source project!),<br>Pat</p>
</div></div>
<br></div></div>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto: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>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br>Brian E. Granger<br>Cal Poly State University, San Luis Obispo<br><a href="mailto:bgranger@calpoly.edu" target="_blank">bgranger@calpoly.edu</a> and <a href="mailto:ellisonbg@gmail.com" target="_blank">ellisonbg@gmail.com</a><br>














</font></span></div>
<br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto: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>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto: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>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto: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>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto: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>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Brian E. Granger<br>Cal Poly State University, San Luis Obispo<br><a href="mailto:bgranger@calpoly.edu" target="_blank">bgranger@calpoly.edu</a> and <a href="mailto:ellisonbg@gmail.com" target="_blank">ellisonbg@gmail.com</a><br>







</div>
</div></div><br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto: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>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto: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>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Brian E. Granger<br>Cal Poly State University, San Luis Obispo<br><a href="mailto:bgranger@calpoly.edu" target="_blank">bgranger@calpoly.edu</a> and <a href="mailto:ellisonbg@gmail.com" target="_blank">ellisonbg@gmail.com</a><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>