<br><br><div class="gmail_quote">On Fri, Jul 20, 2012 at 10:45 PM, Jason Grout <span dir="ltr">&lt;<a href="mailto:jason-sage@creativetrax.com" target="_blank">jason-sage@creativetrax.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

In our Sage Cell server [1], we&#39;d like to disable the IPython history<br>
(since it arguably doesn&#39;t make much sense there anyway; only a single<br>
cell is executing, after all, so we don&#39;t want the extra disk writes or<br>
time it takes to deal with a history).  However, we need commands<br>
executed with silent=False because we need to see output, etc.<br>
<br>
I can see several ways of doing this (below).  Can I get some comments<br>
about which way is the most IPythonic?<br>
<br>
1. applying a small patch which decouples the silent and store_history<br>
attributes [2], and then in every kernel execute message set<br>
store_history to False and silent to False.  I don&#39;t like this because<br>
it leaves the history storing in the (potentially untrusted) user&#39;s<br>
hands, and it takes up bandwidth where it really should be a server-wide<br>
configuration.<br></blockquote><div><br></div><div>I think it makes good sense for store_history and silent to be separate keys in the execute_request.</div><div><br></div><div>For that matter, execute_request keys should probably match directly to args in run_cell, since it really is an RPC message.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
2. Set the history file to &#39;:memory:&#39;, like in<br>
parallel/engine/engine.py.  I suppose this doesn&#39;t actually eliminate<br>
the history, but it does eliminate the disk writes, and makes the<br>
history go away as soon as the process is done, right?<br></blockquote><div><br></div><div>Correct - this is the easiest way to do it with no changes - with disk involvement at all.  You can do this one for now, while we get 1. and/or 2. into IPython itself.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
3. It would be great if I could, instead of (2), just set the history db<br>
to the DummyDB class in the core/history file.  But since sqlite3 exists<br>
in Sage&#39;s python, that looks like it would take a patch somewhere.<br></blockquote><div><br></div><div>I think this also might make sense, though there aren&#39;t significant advantages to using DummyDB over regular history with :memory:.</div>

<div> </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Comments?<br>
<br>
Thanks,<br>
<br>
Jason<br>
<br>
[1] We just announced our beta of the new cell server, version 2, this<br>
time fully based on IPython 0.13 (plus some very small patches, like<br>
part of gh-2051).  You can test it out here: <a href="http://aleph2.sagemath.org" target="_blank">aleph2.sagemath.org</a>.  We<br>
use SockJS to do the websocket/fallback connections, and it seems to<br>
work quite well.  We hope to clean up and contribute back our<br>
ForkingKernelManager and various other classes that you may want<br>
sometime before the end of the year.<br></blockquote><div><br></div><div>Very cool!  I look forward to some pull requests.</div><div><br></div><div>If the SockJS stuff is clean, we may well want that in IPython itself as well, because websockets can still be a headache.</div>

<div><br></div><div>-MinRK</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
[2] <a href="https://gist.github.com/3154504" target="_blank">https://gist.github.com/3154504</a><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>
</blockquote></div><br>