Brian,<div><br></div><div>No this helps a lot.  I want the functionality and have looked at a lot of other apps but we have been using ipython before the notebook implementation and feel it&#39;s way better than anything else out there.  I spent some more time yesterday poking around the code.  I think I can pull out what I don&#39;t want from it.  In reality I basically want all the same functionality as the notebook, I&#39;m even fine with keeping a history, etc.  Basically I think I just need to tell it to use the same kernel every time instead of firing up another instance.  Does this sound correct? Or would the better way be to start a new kernel instance and kill any old ones saved?<br>
<br>I guess the TL;DR is I want a singleton instance of a notebook. ;-)</div><div>The way it sounds it isn&#39;t possible with the way it&#39;s designed.  We are currently using cherrypy, not sure what it would take to port over to this, but we can use tornado if that is a big staple as well.</div>
<div><br></div><div>p.s. Thanks to the ipython team for all your work, anytime I jump on a system without ipython now it makes me a sad panda.</div><div><br clear="all"><span style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"><div>
<span style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"><br></span></div>---------------------------------<div>Anthony Oliver</div><div>Chief Technology Officer</div><div><span style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"><a href="http://www.ingenuitas.com/" target="_blank">http://www.ingenuitas.com</a></span></div>
<div>(906) 289-8169</div><div><a href="mailto:anthony@ingenuitas.com" target="_blank"><font color="#000000"><span style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px"></span>anthony@ingenuitas.com</font></a></div>
<div>---------------------------------</div></span><br>
<br><br><div class="gmail_quote">On Wed, Jan 18, 2012 at 1:19 PM, Brian Granger <span dir="ltr">&lt;<a href="mailto:ellisonbg@gmail.com">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 Tue, Jan 17, 2012 at 1:45 PM, Anthony Oliver &lt;<a href="mailto:anthony@ingenuitas.com">anthony@ingenuitas.com</a>&gt; wrote:<br>
&gt; Is there a correct way to just build the shell that could work within a<br>
&gt; browser, or an example somewhere?<br>
<br>
</div>You would need to build a custom web application from the ground up.<br>
The best example is the current notebook code.  It shows how to use<br>
ZeroMQ to communicate with IPython kernels using JSON messages.  But<br>
the code is not really designed to be used as a library.  We plan on<br>
moving in that direction, but it will take time.<br>
<div class="im"><br>
&gt; I basically want the functionality of the notebook.  My problem with using<br>
&gt; notebooks is that we are currently using ipython as an embedded shell which<br>
&gt; is awesome. But we want to extend it through a web interface, the notebook<br>
&gt; method is perfectly fine, except in our application, the current running<br>
&gt; program is always in context, so you can think of it as only ever needing<br>
&gt; one notebook.<br>
&gt;<br>
&gt; I started diving into the notebook app itself, it appears much of the<br>
&gt; javascript is also looking for things (for instance I tried to override the<br>
&gt; handlers for the paths so the same thing is always served).  I can continue<br>
&gt; on my path, but I would imagine there maybe a more stripped down example<br>
&gt; floating around some where.<br>
<br>
</div>Unfortunately we don&#39;t have any other examples.  On one hand, the<br>
notebook app is a fairly simple example itself.  It shows the basics<br>
of how you would communicate with kernels and display output, etc.  On<br>
the other hand, notebook web application is extremely complex.  There<br>
are multiple channels of communication (WebSockets, Ajax), everything<br>
is async and you have to wade through our JSON based message protocol.<br>
 Not sure if this helps, but I think your approach of diving into the<br>
notebook code base is a good one.<br>
<br>
Cheers,<br>
<br>
Brian<br>
<div class="im"><br>
&gt; Thanks.<br>
&gt;<br>
&gt; ---------------------------------<br>
&gt; Anthony Oliver<br>
&gt; Chief Technology Officer<br>
&gt; <a href="http://www.ingenuitas.com" target="_blank">http://www.ingenuitas.com</a><br>
&gt; <a href="tel:%28906%29%20289-8169" value="+19062898169">(906) 289-8169</a><br>
&gt; <a href="mailto:anthony@ingenuitas.com">anthony@ingenuitas.com</a><br>
&gt; ---------------------------------<br>
&gt;<br>
&gt;<br>
</div>&gt; _______________________________________________<br>
&gt; IPython-User mailing list<br>
&gt; <a href="mailto:IPython-User@scipy.org">IPython-User@scipy.org</a><br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/ipython-user" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-user</a><br>
&gt;<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
Brian E. Granger<br>
Cal Poly State University, San Luis Obispo<br>
<a href="mailto:bgranger@calpoly.edu">bgranger@calpoly.edu</a> and <a href="mailto:ellisonbg@gmail.com">ellisonbg@gmail.com</a><br>
</font></span></blockquote></div><br></div>