From ellisonbg at gmail.com Wed Feb 1 12:46:19 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 1 Feb 2012 09:46:19 -0800 Subject: [IPython-dev] IMPORTANT: Notebook format incremented In-Reply-To: <4F28359E.6090706@googlemail.com> References: <4F28359E.6090706@googlemail.com> Message-ID: This is fixed here: https://github.com/ipython/ipython/pull/1361 Should be merged soon. Cheers, Brian On Tue, Jan 31, 2012 at 10:40 AM, Julian Taylor wrote: > On 01/31/2012 06:44 PM, Brian Granger wrote: >> Hi, >> >> Yesterday we pushed a change to the IPython notebook that will affect >> all users of the notebook - especially those who are following the dev >> version. ?We have incremented the notebook version number to v3. ?This >> is done anytime there are backwards incompatible changes to the >> notebook format. ?In this case, we have added new cell types (Heading >> Cells, Plaintext Cells (reST, latex)). ?Here is how this affects you: >> >> * Older v2 notebooks (those created with IPython versions before >> yesterday) will be automatically converted to v3 notebooks when you >> open them the first time. ?We are in the process of adding a dialog >> that will notify you of this. >> * The newer v3 notebooks cannot be opened by previous versions of the >> notebook server. ?Once you go v3, there is no turning back. ?This >> means that everyone who wants to use your notebooks MUST to transition >> and follow the dev version of the notebook. >> * The v3 notebook format is not finalized. ?There will likely be >> additional backwards incompatible changes to the nbformat. ?This means >> that if you go v3, you MUST regularly pull from github master to >> follow the latest state of the code. ?We will announce on list when >> the v3 format is finalized in advance of the 0.13 release. >> >> Cheers and happy notebooking! >> >> Brian >> > > you forgot to updating the testsuite: > > ====================================================================== > FAIL: test_empty_notebook > (IPython.nbformat.v3.tests.test_nbbase.TestNotebook) > ---------------------------------------------------------------------- > Traceback (most recent call last): > ?File > "/build/buildd/ipython-0.12+2301/IPython/nbformat/v3/tests/test_nbbase.py", > line 105, in test_empty_notebook > ? ?self.assertEquals(nb.nbformat,2) > AssertionError: 3 != 2 > ? ?'3 != 2' = '%s != %s' % (safe_repr(3), safe_repr(2)) > ? ?'3 != 2' = self._formatMessage('3 != 2', '3 != 2') >>> ?raise self.failureException('3 != 2') > > > ====================================================================== > FAIL: test_notebook (IPython.nbformat.v3.tests.test_nbbase.TestNotebook) > ---------------------------------------------------------------------- > Traceback (most recent call last): > ?File > "/build/buildd/ipython-0.12+2301/IPython/nbformat/v3/tests/test_nbbase.py", > line 113, in test_notebook > ? ?self.assertEquals(nb.nbformat,2) > AssertionError: 3 != 2 > ? ?'3 != 2' = '%s != %s' % (safe_repr(3), safe_repr(2)) > ? ?'3 != 2' = self._formatMessage('3 != 2', '3 != 2') >>> ?raise self.failureException('3 != 2') > > > ---------------------------------------------------------------------- > Ran 45 tests in 0.127s > > FAILED (failures=2) > > https://launchpadlibrarian.net/91509120/buildlog_ubuntu-precise-i386.ipython_0.12%2B2301-0~6~precise1_FAILEDTOBUILD.txt.gz > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From ROsborn at anl.gov Wed Feb 1 18:55:43 2012 From: ROsborn at anl.gov (Ray Osborn) Date: Wed, 1 Feb 2012 17:55:43 -0600 Subject: [IPython-dev] Embedding shell+matplotlib in the same Qt GUI Message-ID: <0BB6067C-0C73-4D5C-BEE0-4A2A802BFD11@anl.gov> I am exploring the use of IPython in a "simple" Qt GUI, in which the shell and Matplotlib plots are locked together in a Qt VBox layout, with other docked widgets displaying items in the user's namespace. I'm attracted to the idea of using the two-process model for all the reasons it was developed but I'm not sure whether it's practical. If I build the GUI around the IPython front-end, then I presume that the kernel wouldn't have access to the plot display widget in my GUI. If I instead build the GUI around the kernel, then I presume I can't embed the IPython shell inside my GUI, since the front-end is in a separate GUI. Is that correct? I did wonder if it was possible to write special call handlers to route plots through the kernel manager, but it couldn't then be interactively updated from within the GUI (again, I'm guessing). I'm out of my depth here, so I would welcome some advice. Is the in-process kernel that Robert Kern discussed in December the way to go, and has there been any progress on that? Or is there some way of embedding an IPython shell in the kernel's GUI, while preserving all the Qt-goodness that the Qt console provides. Ray P.S. Would it be possible to update the API documentation to include the frontend and zmq modules? I would have found the inheritance diagrams a great help. -- Ray Osborn Materials Science Division Argonne National Laboratory Argonne, IL 60439, USA Phone: +1 (630) 252-9011 Email: ROsborn at anl.gov From hans_meine at gmx.net Thu Feb 2 06:55:53 2012 From: hans_meine at gmx.net (Hans Meine) Date: Thu, 02 Feb 2012 12:55:53 +0100 Subject: [IPython-dev] Embedding shell+matplotlib in the same Qt GUI In-Reply-To: <0BB6067C-0C73-4D5C-BEE0-4A2A802BFD11@anl.gov> References: <0BB6067C-0C73-4D5C-BEE0-4A2A802BFD11@anl.gov> Message-ID: <3875320.seZlfuJH8z@hmeine-pc> Am Mittwoch, 1. Februar 2012, 17:55:43 schrieb Ray Osborn: > I'm out of my depth here, so I would welcome some advice. Is the in-process > kernel that Robert Kern discussed in December the way to go, ? Exactly. The single-process model has the main advantage of making exactly this possible (*), i.e. embedding a python shell into a GUI app. Don?t know about the current status though, but I bet every "early adopter" (OK, contributor ;-) ) will speed the process up. We need users/applications for shaping the API anyway. HTH, Hans * In fact, the two-process model does not make it completely impossible to do this, but it would involve embedding of other processes GUIs, which I only know something about on Unix (cf. QX11EmbedContainer). The advantage could be better busy/interrupt behavior, AFAICS. From daniel.dang.griffith at gmail.com Thu Feb 2 08:31:29 2012 From: daniel.dang.griffith at gmail.com (Daniel Griffith) Date: Thu, 2 Feb 2012 08:31:29 -0500 Subject: [IPython-dev] Python 3 on Windows Message-ID: Is anyone else using IPython on Python 3 on Windows? Based on earlier posts, I'm guessing I'm in the minority. I found two small problems--one related to Python 3 strings vs bytes (the SList nlstr and spstr functions fail) and one related to the rehashx in the Windows environment. (And part of the rehashx problem also applies to the posix environment, but it's minor.) I have worked out the/a solution/fix. I can install a Python 2.7 version and validate that it doesn't cause problems there. What's the best way to submit these changes? Should I sign up on github? FYI, for the first problem, here is the fixed code (spstr is similar) from utils/text.py::SList: def get_nlstr(self): try: return self.__nlstr except AttributeError: try: self.__nlstr = '\n'.join(self) except TypeError: self.__nlstr = '\n'.join(map(str,self)) return self.__nlstr The second problem is a little more complex. The code in core/magic.py::magic_rehashx doesn't do what the docstring says, ignores the no_alias variable, and (the part that caused me grief), after looking up the executable filename extensions, ignores them and only adds 'exe' files. In addition, neither the posix or Windows paths check if the alias is already in syscmdlist; this can make redundant entries in the syscmdlist. I don't think this causes problems, but it seems inconsistent with the idea of executing the first matching executable in the PATH. Again, what's the best way to submit these changes? Should I sign up on github? --dang -------------- next part -------------- An HTML attachment was scrubbed... URL: From massimodisasha at gmail.com Thu Feb 2 09:59:35 2012 From: massimodisasha at gmail.com (Massimo Di Stefano) Date: Thu, 2 Feb 2012 09:59:35 -0500 Subject: [IPython-dev] ipython notebook - new interface usage Message-ID: <879E9FEE-09DA-4FFF-9B53-5DAC87E9CE73@gmail.com> Hi All, i'm using Ipython notebook intensively with a great satisfaction! really thanks to all you to develop it! i've some questions .. i cloned the git repository and i'm used to update it running in the python directory 'git pull' when i start Ipython notebook i can't see any change in its main interface ? i seen in some post it has a nice new toolbar and a new cell type to render rst any hints on how to activate this new feature? thanks!!! Massimo. From takowl at gmail.com Thu Feb 2 11:25:41 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Thu, 2 Feb 2012 16:25:41 +0000 Subject: [IPython-dev] Python 3 on Windows In-Reply-To: References: Message-ID: On 2 February 2012 16:12, Daniel Griffith wrote: > I ran "a = !ls" and tried to "print(a.nlstr)" to see the results, and it > complained about having bytes instead of strings: > "TypeError: sequence item 0: expected str instance, bytes found". > > The earlier stage would be in the "!" handler; I haven't looked at that > code. I assume there are reasons it is putting > bytes into the SList instead of strings. Maybe it should change instead? I > don't know. I suppose that would depend > on whether other code will assume that SList contains only strings and > whether "!" is returning bytes. > That's the stage I'd look at - the code starts with the getoutput method here: https://github.com/ipython/ipython/blob/master/IPython/core/interactiveshell.py#L2093 The trouble with just calling str is that it doesn't always do what you might expect, so if we've got bytes, it's better to decode them: >>> str(b'abc') "b'abc'" >>> b'abc'.decode() # ...but we need to work out the encoding 'abc' Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Thu Feb 2 11:55:09 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Thu, 2 Feb 2012 08:55:09 -0800 Subject: [IPython-dev] ipython notebook - new interface usage In-Reply-To: <879E9FEE-09DA-4FFF-9B53-5DAC87E9CE73@gmail.com> References: <879E9FEE-09DA-4FFF-9B53-5DAC87E9CE73@gmail.com> Message-ID: If you have the latest dev version, you should see a select box in the toolbar that indicates the type of cell that is currently selected. To enter reST, select plaintext. Note, it is not possible, because of limitations in the syntax of reST to actually render the cells one by one in the browser like we do with Markdown. We are working on reST/HTML/PDF export that will do that rendering for the entire notebook in a single shot. It will most likely be another page in the web app though. Cheers, Brian On Thu, Feb 2, 2012 at 6:59 AM, Massimo Di Stefano wrote: > Hi All, > > i'm using Ipython notebook intensively with a great satisfaction! > really thanks to all you to develop it! > i've some questions .. > i cloned the git repository and i'm used to update it running in the python directory 'git pull' > > when i start Ipython notebook i can't see any change in its main interface > ? i seen in some post it has a nice new toolbar and a new cell type to render rst > > any hints on how to activate this new feature? > > thanks!!! > > Massimo. > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From massimodisasha at gmail.com Thu Feb 2 16:42:34 2012 From: massimodisasha at gmail.com (Massimo Di Stefano) Date: Thu, 2 Feb 2012 16:42:34 -0500 Subject: [IPython-dev] ipython notebook - new interface usage In-Reply-To: References: <879E9FEE-09DA-4FFF-9B53-5DAC87E9CE73@gmail.com> Message-ID: <01FA66A6-A030-46D7-B2E5-3EF5A85E6FEE@gmail.com> seems there is something wrong on my environment ? i did : git pull sudo python seth.py install and in the log i can see : Removing /Library/Python/2.7/site-packages/ipython-0.13.dev-py2.7.egg-info Writing /Library/Python/2.7/site-packages/ipython-0.13.dev-py2.7.egg-info but when i run : python --version i got : 0.12.dev looking in the easy_install.pth i found : ./ipython-0.12.dev-py2.7.egg removing it .. now YES :) i'm using the latest version! Thanks! --Massimo. and Il giorno Feb 2, 2012, alle ore 11:55 AM, Brian Granger ha scritto: > If you have the latest dev version, you should see a select box in the > toolbar that indicates the type of cell that is currently selected. > To enter reST, select plaintext. Note, it is not possible, because of > limitations in the syntax of reST to actually render the cells one by > one in the browser like we do with Markdown. We are working on > reST/HTML/PDF export that will do that rendering for the entire > notebook in a single shot. It will most likely be another page in the > web app though. > > Cheers, > > Brian > > On Thu, Feb 2, 2012 at 6:59 AM, Massimo Di Stefano > wrote: >> Hi All, >> >> i'm using Ipython notebook intensively with a great satisfaction! >> really thanks to all you to develop it! >> i've some questions .. >> i cloned the git repository and i'm used to update it running in the python directory 'git pull' >> >> when i start Ipython notebook i can't see any change in its main interface >> ? i seen in some post it has a nice new toolbar and a new cell type to render rst >> >> any hints on how to activate this new feature? >> >> thanks!!! >> >> Massimo. >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com From bedwards at cs.unm.edu Fri Feb 3 14:03:12 2012 From: bedwards at cs.unm.edu (Ben Edwards) Date: Fri, 3 Feb 2012 12:03:12 -0700 Subject: [IPython-dev] Keyword option for sync_imports and feature request... In-Reply-To: References: Message-ID: Think I sent this yesterday using the wrong email so it got rejected(silently?). If it's a duplicate I apologize... Two questions. Would it be possible to add a verbose or quiet keyword option to sync_imports so it does not print "importing %s from %s on engine(s)" For each module importing on engines. If this is a worthwhile idea I'll make a pull request, with whatever default you guys thinks is reasonable. Also why is sync_imports in the DirectView class but not the LoadBalancedView class? I usually use LoadBalancedView, so having to create a DirectView instance just for some imports clutters my code ever so slightly. Is there a subtle difference I am missing? If not perhaps we can add the function to the View class so both inherit it? Ben Edwards -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Fri Feb 3 14:24:27 2012 From: benjaminrk at gmail.com (MinRK) Date: Fri, 3 Feb 2012 11:24:27 -0800 Subject: [IPython-dev] Keyword option for sync_imports and feature request... In-Reply-To: References: Message-ID: On Fri, Feb 3, 2012 at 11:03, Ben Edwards wrote: > Think I sent this yesterday using the wrong email so it got > rejected(silently?). If it's a duplicate I apologize... > > Two questions. Would it be possible to add a verbose or quiet keyword > option to sync_imports so it does not print > > "importing %s from %s on engine(s)" > > For each module importing on engines. If this is a worthwhile idea I'll > make a pull request, with whatever default you guys thinks is reasonable. > Sure, a quiet keyword makes sense. I would default it to False, because it is a good indicator of whether the import actually happened, as there are some circumstances where previous state causes imports to be no-ops, never actually triggering the import hook necessary to execute the remote import (I don't remember which, at the moment). > Also why is sync_imports in the DirectView class but not the > LoadBalancedView class? I usually use LoadBalancedView, so having to create > a DirectView instance just for some imports clutters my code ever so > slightly. Is there a subtle difference I am missing? If you want an action to happen on particular engines or more than one engine, DirectView is always thing to use. If LoadBalancedView had this method, the import would be load-balanced onto a single engine, and the only thing you would be guaranteed is that your next apply would *not* occur on the same engine where you performed the import. The standard model is to use DirectView for setup, and LoadBalancedView for submission. If you use LoadBalancedView for setup, your setup will, logically enough, be load-balanced, which rarely makes sense. If you are concerned about clutter and really would only use it for sync_imports, you need not keep the DV around: with rc[:].sync_imports(quiet=True): import foo import bar If not perhaps we can add the function to the View class so both inherit it? It was a deliberate choice. I would prefer to keep this sort of direct-mapped action out of the LB class. It's the same reason LBView has no push/pull. -MinRK > > Ben Edwards > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From erik.tollerud at gmail.com Fri Feb 3 20:42:34 2012 From: erik.tollerud at gmail.com (Erik Tollerud) Date: Fri, 3 Feb 2012 17:42:34 -0800 Subject: [IPython-dev] Quitting (qt)console without killing kernel In-Reply-To: References: Message-ID: Ah, I see - that makes sense. The ``ipython kernel`` option is perfectly workable, just wanted to make sure there wasn't something silly I was missing. Thanks! On Mon, Jan 30, 2012 at 4:44 PM, MinRK wrote: > On Mon, Jan 30, 2012 at 16:32, Erik Tollerud wrote: >> I've been caught up in other things and haven't been following >> developments over the last few months, but I'm really impressed by a >> lot of the recent new work on ipython - I know this has probably been >> internalized by most of you now, but the polished notebook is >> particularly impressive-looking! >> >> One feature that seems to have disappeared since I last did a "git >> pull upstream master", though: the option of starting the qtconsole >> (or, now, even better, the 2-process terminal console), and quitting >> the frontend without killing the kernel. ?It used to be that a >> yes/no/cancel dialog appeared allowing the option of killing one or >> both, but now it seems only possible to kill everything. ?Similarly, >> the exit function used to have an option to let the console stay >> alive, but that doesn't seem to do anything now. ?Is this a conscious >> design choice, or was it a temporary simplification? > > It was a bit of both. ?When the qtconsole added multiple tab support > it became extremely complicated to be able to leave some fraction of > those running in the background, as decisions are being made at both > tab-close and app-close, and the close/leave running decisions have > become quite convoluted. ?If this logic is simplified significantly > (decoupling the tab:kernel relationship, and using a cleaner > 'MultiKernelManager'), then it will probably be more reasonable to > restore the option to leave orphaned kernels. ?For now, if you want > kernels to stay alive, you can use `ipython kernel` and connect > separately with `ipython qtconsole --existing`. > >> >> -- >> Erik Tollerud >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev -- Erik Tollerud From cekees at gmail.com Sun Feb 5 15:21:11 2012 From: cekees at gmail.com (Chris Kees) Date: Sun, 5 Feb 2012 20:21:11 +0000 Subject: [IPython-dev] notebook questions an aesthetic details Message-ID: Hi, Having a great time here using the notebook. I just want to tweak a couple of display details and was hoping I could get some pointers: - Is there a way to do multiline equations (i.e. \begin{eqnarray}...)? - I'd like to make my plots bigger. Do I do that from matplotlib or the notebook? - I'd like to make my subplots spread apart even wider than the squeeze=false option to the subplots command. Should I be looking at matplotlib or ipython docs to do that? I can get by with just making multiple plots instead of subplots. - My plots appear to be bitmaps, can I make the default SVG? - Is there a way to make a plot not display in the browser? I'm generating an animation that I include via HTML(), but the first frame always shows up as a plot underneath the animation frame Thanks, Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Sun Feb 5 15:37:37 2012 From: benjaminrk at gmail.com (MinRK) Date: Sun, 5 Feb 2012 12:37:37 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: On Sun, Feb 5, 2012 at 12:21, Chris Kees wrote: > Hi, > > Having a great time here using the notebook. I just want to tweak a couple > of display details and was hoping I could get some pointers: > > - Is there a way to do multiline equations (i.e. \begin{eqnarray}...)? > Yes, if you are using master it's just: from IPython.core.display import * Latex("\begin{eqnarray}...\end{eqnarray}") In 0.12, Math will do the same thing, but we want Math to really mean 'single expression', so it now ensures that expressions are wrapped in '$'. > - I'd like to make my plots bigger. Do I do that from matplotlib or the > notebook? > This is handled entirely by matplotlib. You change the size of figures just like you always have done in matplotlib: matplotlib.rcParams['figure.figsize'] = [x,y] Or with the IPython helper function: figsize(x,y) # in the global namespace when inline backend is in use, which does the same thing. > - I'd like to make my subplots spread apart even wider than the > squeeze=false option to the subplots command. Should I be looking at > matplotlib or ipython docs to do that? I can get by with just making > multiple plots instead of subplots. > Matplotlib - changing anything about the figure appearance will always be handled by matplotlib. All IPython does is print the figure to a particular format, and send it to the frontend. Matplotlib determines (almost) everything about the contents of that image. > - My plots appear to be bitmaps, can I make the default SVG? > They are PNG by default, and you can change the figure format with the InlineBackend.figure_format configurable: c.InlineBackend.figure_format = 'svg' # in a config file or %config InlineBackend.figure_format = 'svg' from an interactive session to toggle it at runtime (you can keep changing it back and forth, if you have any reason to do this). I think SVG figures behave a bit differently with respect to size in browsers, but I don't recall. > - Is there a way to make a plot not display in the browser? I'm generating > an animation that I include via HTML(), but the first frame always shows up > as a plot underneath the animation frame. > Yes, simply close the figure before the end of the cell, and it won't be displayed: fig = gcf() plot(x,y) # dostuff with figure # close figure at end of cell, to prevent display plt.close(fig) -MinRK > > Thanks, > Chris > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Sun Feb 5 17:47:04 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Sun, 5 Feb 2012 14:47:04 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: Hey Chris, On Sun, Feb 5, 2012 at 12:21 PM, Chris Kees wrote: > Having a great time here using the notebook. I just want to tweak a couple > of display details and was hoping I could get some pointers: > > - Is there a way to do multiline equations (i.e. \begin{eqnarray}...)? Sure! In math output, you can use: from IPython.core.display import Math, Latex Latex(r""" \begin{eqnarray} \dot{x} & = \sigma(y-x) \\ \dot{y} & = \rho x - y - xz \\ \dot{z} & = -\beta z + xy \end{eqnarray}""") or in a markdown cell, you can put the same content. Note that there's a small bug right now, requiring that in the markdown cell, you add *one* extra \ at the end of the \\ that mark new equation entries: \begin{eqnarray} \dot{x} & = \sigma(y-x) \\\ \dot{y} & = \rho x - y - xz \\\ \dot{z} & = -\beta z + xy \end{eqnarray} I've filed this one here: https://github.com/ipython/ipython/issues/1381 but fortunately there's a workaround even now. > - I'd like to make my plots bigger. Do I do that from matplotlib or the > notebook? You can do it in each notebook: plt.rcParams['figure.figsize'] = (10,6) # 10x6 inches But you can also set it permanently in your notebook config file, along with SVG format (question below): c = get_config() c.InlineBackend.figure_format = 'svg' c.InlineBackend.rc = {'figure.figsize' : (10,6) } > - I'd like to make my subplots spread apart even wider than the > squeeze=false option to the subplots command. Should I be looking at > matplotlib or ipython docs to do that? I can get by with just making > multiple plots instead of subplots. This is a matplotlib thing, look into plt.subplots_adjust(). The parameters you're looking for are wspace and hspace. You can also set new permanent values for those in your matplotlib config file if you want. > - My plots appear to be bitmaps, can I make the default SVG? See above. > - Is there a way to make a plot not display in the browser? I'm generating > an animation that I include via HTML(), but the first frame always shows up > as a plot underneath the animation frame Yup, see this: f, ax = subplots() ax.plot(rand(100)) f.savefig('foo.png') plt.close(f) HTML('') ### The fact that f.close() doesn't exist bugs me a lot, I'm asking on mpl-dev about that now... Cheers, f From fperez.net at gmail.com Sun Feb 5 17:50:12 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Sun, 5 Feb 2012 14:50:12 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: On Sun, Feb 5, 2012 at 2:47 PM, Fernando Perez wrote: > Hey Chris, Hadn't seen Min's reply arrive in the meantime, mostly repeat :) Cheers, f From efiring at hawaii.edu Sun Feb 5 17:56:41 2012 From: efiring at hawaii.edu (Eric Firing) Date: Sun, 05 Feb 2012 12:56:41 -1000 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: <4F2F0929.5040402@hawaii.edu> On 02/05/2012 12:47 PM, Fernando Perez wrote: > Hey Chris, > > On Sun, Feb 5, 2012 at 12:21 PM, Chris Kees wrote: >> Having a great time here using the notebook. I just want to tweak a couple >> of display details and was hoping I could get some pointers: >> >> - Is there a way to do multiline equations (i.e. \begin{eqnarray}...)? > > Sure! In math output, you can use: > > from IPython.core.display import Math, Latex > > Latex(r""" > \begin{eqnarray} > \dot{x}& = \sigma(y-x) \\ > \dot{y}& = \rho x - y - xz \\ > \dot{z}& = -\beta z + xy > \end{eqnarray}""") > > or in a markdown cell, you can put the same content. Note that > there's a small bug right now, requiring that in the markdown cell, > you add *one* extra \ at the end of the \\ that mark new equation > entries: > > \begin{eqnarray} > \dot{x}& = \sigma(y-x) \\\ > \dot{y}& = \rho x - y - xz \\\ > \dot{z}& = -\beta z + xy > \end{eqnarray} > > I've filed this one here: > > https://github.com/ipython/ipython/issues/1381 > > but fortunately there's a workaround even now. > >> - I'd like to make my plots bigger. Do I do that from matplotlib or the >> notebook? > > You can do it in each notebook: > > plt.rcParams['figure.figsize'] = (10,6) # 10x6 inches > > But you can also set it permanently in your notebook config file, > along with SVG format (question below): > > c = get_config() > c.InlineBackend.figure_format = 'svg' > c.InlineBackend.rc = {'figure.figsize' : (10,6) } > >> - I'd like to make my subplots spread apart even wider than the >> squeeze=false option to the subplots command. Should I be looking at >> matplotlib or ipython docs to do that? I can get by with just making >> multiple plots instead of subplots. > > This is a matplotlib thing, look into plt.subplots_adjust(). The > parameters you're looking for are wspace and hspace. You can also set > new permanent values for those in your matplotlib config file if you > want. > >> - My plots appear to be bitmaps, can I make the default SVG? > > See above. > >> - Is there a way to make a plot not display in the browser? I'm generating >> an animation that I include via HTML(), but the first frame always shows up >> as a plot underneath the animation frame > > Yup, see this: > > f, ax = subplots() > ax.plot(rand(100)) > f.savefig('foo.png') > plt.close(f) > HTML('') > > ### > > The fact that f.close() doesn't exist bugs me a lot, I'm asking on > mpl-dev about that now... The problem is that when you use pyplot to create a Figure instance, it is doing a lot more than just making that instance; it is embedding it in the whole pyplot machinery. That's why closing the figure is a pyplot operation (hence a function), not a method of the Figure instance. Of course we could find a way to get around it, but that's the present state. You have to use pyplot to make the figure, and to close it. I imagine the way to change that might be with a pyplot.Figure class that would be a subclass of the figure.Figure class. Eric > > Cheers, > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From fperez.net at gmail.com Sun Feb 5 18:01:23 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Sun, 5 Feb 2012 15:01:23 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: <4F2F0929.5040402@hawaii.edu> References: <4F2F0929.5040402@hawaii.edu> Message-ID: On Sun, Feb 5, 2012 at 2:56 PM, Eric Firing wrote: > The problem is that when you use pyplot to create a Figure instance, it > is doing a lot more than just making that instance; it is embedding it > in the whole pyplot machinery. ?That's why closing the figure is a > pyplot operation (hence a function), not a method of the Figure > instance. ?Of course we could find a way to get around it, but that's > the present state. ?You have to use pyplot to make the figure, and to > close it. ?I imagine the way to change that might be with a > pyplot.Figure class that would be a subclass of the figure.Figure class. Thanks for the clarification, Eric; that makes sense. It's not a biggie for now, and we can keep this in mind for future enhancements, to make it easier/cleaner from the user's perspective to stick to an OO approach. Cheers, f From cekees at gmail.com Sun Feb 5 19:20:17 2012 From: cekees at gmail.com (Chris Kees) Date: Mon, 6 Feb 2012 03:20:17 +0300 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: Hey Min and Fernando, Thanks a lot. I'm on the right tack now. I updated about two hours ago after I read Min's email so there a couple of quirks you might want to be on the lookout for. For some reason when I'm inside a call to Latex(r"""...), I can't type an ampersand. I can paste one in but the key won't respond. In markdown or outside a string I can type an ampersand. I also noticed that sometimes the markdown/code/heading doesn't seem to switch modes even though the pulldown indicates it has. It could just be inaccurate pointing and clicking on my part. Anyway, thanks again. I feel like I'm beginning to get productive in the notebook. Chris On Mon, Feb 6, 2012 at 1:50 AM, Fernando Perez wrote: > On Sun, Feb 5, 2012 at 2:47 PM, Fernando Perez > wrote: > > Hey Chris, > > Hadn't seen Min's reply arrive in the meantime, mostly repeat :) > > Cheers, > > f > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Sun Feb 5 19:27:55 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Sun, 5 Feb 2012 16:27:55 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: Hi Chris, On Sun, Feb 5, 2012 at 4:20 PM, Chris Kees wrote: > Thanks a lot. ?I'm on the right tack now. ?I updated about two hours ago > after I read Min's email so there a couple of quirks you might want to be on > the lookout for. For some reason when I'm inside a call to Latex(r"""...), I > can't type an ampersand. I can paste one in but the key won't respond. In That's really odd, I don't get that on Firefox or Chrome. Can you refresh your Javascript cache just to make sure? Just save your notebook, and then force a page reload. Also, could you test on a different browser and let us know if you see any differences? > markdown or outside a string I can type an ampersand. ? I also noticed that > sometimes the markdown/code/heading doesn't seem to switch ?modes even > though the pulldown indicates it has. It could just be inaccurate pointing > and clicking on my part. Mmh, I do see a problem, not sure if it's the same you do: If I select a new cell type from the 'Cell' menu, the cells do indeed change type, but the dropdown list in the icon toolbar isn't updating correctly anymore. Is that the behavior you see? > Anyway, thanks again. ?I feel like I'm beginning to get productive in the > notebook. Glad to hear that. Some inevitable growing pains, but I think we're on the right track. Cheers, f From cekees at gmail.com Mon Feb 6 13:57:28 2012 From: cekees at gmail.com (Chris Kees) Date: Mon, 6 Feb 2012 21:57:28 +0300 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: On the ampersand problem: Firefox and Safari are the same. Also Safari complains about not being able to access the web socket and says that I won't be able to run code. On the pulldown menu, I'm having trouble reproducing it right now. I know that sometimes the problem is me in that I have to be more careful in observing which cell is actually active when I use the menus. It's not a big deal, but I'll be more careful to record my observations if I suspect this is happening again. On Mon, Feb 6, 2012 at 3:27 AM, Fernando Perez wrote: > Hi Chris, > > On Sun, Feb 5, 2012 at 4:20 PM, Chris Kees wrote: > > Thanks a lot. I'm on the right tack now. I updated about two hours ago > > after I read Min's email so there a couple of quirks you might want to > be on > > the lookout for. For some reason when I'm inside a call to > Latex(r"""...), I > > can't type an ampersand. I can paste one in but the key won't respond. In > > That's really odd, I don't get that on Firefox or Chrome. Can you > refresh your Javascript cache just to make sure? Just save your > notebook, and then force a page reload. Also, could you test on a > different browser and let us know if you see any differences? > > > markdown or outside a string I can type an ampersand. I also noticed > that > > sometimes the markdown/code/heading doesn't seem to switch modes even > > though the pulldown indicates it has. It could just be inaccurate > pointing > > and clicking on my part. > > Mmh, I do see a problem, not sure if it's the same you do: If I > select a new cell type from the 'Cell' menu, the cells do indeed > change type, but the dropdown list in the icon toolbar isn't updating > correctly anymore. Is that the behavior you see? > > > Anyway, thanks again. I feel like I'm beginning to get productive in the > > notebook. > > Glad to hear that. Some inevitable growing pains, but I think we're > on the right track. > > Cheers, > > f > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Mon Feb 6 15:05:22 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 6 Feb 2012 12:05:22 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: Hmm, am not seeing the ampersand problem on Chrome or Safari (on a Mac). Is there a particular sequence of keystroke that do it. Does it happen for any text before the &? On Mon, Feb 6, 2012 at 10:57 AM, Chris Kees wrote: > On the ampersand problem: Firefox and Safari are the same. Also Safari > complains about not being able to access the web socket and says that I > won't be able to run code. > > On the pulldown menu, I'm having trouble reproducing it right now. I know > that sometimes the problem is me in that I have to be more careful in > observing which cell is actually active when I use the menus. It's not a big > deal, but I'll be more careful to record my observations if I suspect this > is happening again. > > On Mon, Feb 6, 2012 at 3:27 AM, Fernando Perez wrote: >> >> Hi Chris, >> >> On Sun, Feb 5, 2012 at 4:20 PM, Chris Kees wrote: >> > Thanks a lot. ?I'm on the right tack now. ?I updated about two hours ago >> > after I read Min's email so there a couple of quirks you might want to >> > be on >> > the lookout for. For some reason when I'm inside a call to >> > Latex(r"""...), I >> > can't type an ampersand. I can paste one in but the key won't respond. >> > In >> >> That's really odd, I don't get that on Firefox or Chrome. ?Can you >> refresh your Javascript cache just to make sure? ?Just save your >> notebook, and then force a page reload. ?Also, could you test on a >> different browser and let us know if you see any differences? >> >> > markdown or outside a string I can type an ampersand. ? I also noticed >> > that >> > sometimes the markdown/code/heading doesn't seem to switch ?modes even >> > though the pulldown indicates it has. It could just be inaccurate >> > pointing >> > and clicking on my part. >> >> Mmh, I do see a problem, not sure if it's the same you do: ?If I >> select a new cell type from the 'Cell' menu, the cells do indeed >> change type, but the dropdown list in the icon toolbar isn't updating >> correctly anymore. ?Is that the behavior you see? >> >> > Anyway, thanks again. ?I feel like I'm beginning to get productive in >> > the >> > notebook. >> >> Glad to hear that. ?Some inevitable growing pains, but I think we're >> on the right track. >> >> Cheers, >> >> f > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From ellisonbg at gmail.com Mon Feb 6 15:51:47 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 6 Feb 2012 12:51:47 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: I am seeing the bug with the Cell menu not causing the select box in the toolbar to update the cell type. I can fix this, but here is a question: do we even want the Cell type UI in the Cell menu with it being in the toolbar already. Granted, the toolbar can be hidden, but it seems a bit redundant and verbose... Cheers, Brian On Mon, Feb 6, 2012 at 12:05 PM, Brian Granger wrote: > Hmm, am not seeing the ampersand problem on Chrome or Safari ?(on a > Mac). ?Is there a particular sequence of keystroke that do it. ?Does > it happen for any text before the &? > > On Mon, Feb 6, 2012 at 10:57 AM, Chris Kees wrote: >> On the ampersand problem: Firefox and Safari are the same. Also Safari >> complains about not being able to access the web socket and says that I >> won't be able to run code. >> >> On the pulldown menu, I'm having trouble reproducing it right now. I know >> that sometimes the problem is me in that I have to be more careful in >> observing which cell is actually active when I use the menus. It's not a big >> deal, but I'll be more careful to record my observations if I suspect this >> is happening again. >> >> On Mon, Feb 6, 2012 at 3:27 AM, Fernando Perez wrote: >>> >>> Hi Chris, >>> >>> On Sun, Feb 5, 2012 at 4:20 PM, Chris Kees wrote: >>> > Thanks a lot. ?I'm on the right tack now. ?I updated about two hours ago >>> > after I read Min's email so there a couple of quirks you might want to >>> > be on >>> > the lookout for. For some reason when I'm inside a call to >>> > Latex(r"""...), I >>> > can't type an ampersand. I can paste one in but the key won't respond. >>> > In >>> >>> That's really odd, I don't get that on Firefox or Chrome. ?Can you >>> refresh your Javascript cache just to make sure? ?Just save your >>> notebook, and then force a page reload. ?Also, could you test on a >>> different browser and let us know if you see any differences? >>> >>> > markdown or outside a string I can type an ampersand. ? I also noticed >>> > that >>> > sometimes the markdown/code/heading doesn't seem to switch ?modes even >>> > though the pulldown indicates it has. It could just be inaccurate >>> > pointing >>> > and clicking on my part. >>> >>> Mmh, I do see a problem, not sure if it's the same you do: ?If I >>> select a new cell type from the 'Cell' menu, the cells do indeed >>> change type, but the dropdown list in the icon toolbar isn't updating >>> correctly anymore. ?Is that the behavior you see? >>> >>> > Anyway, thanks again. ?I feel like I'm beginning to get productive in >>> > the >>> > notebook. >>> >>> Glad to hear that. ?Some inevitable growing pains, but I think we're >>> on the right track. >>> >>> Cheers, >>> >>> f >> >> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From benjaminrk at gmail.com Mon Feb 6 15:58:03 2012 From: benjaminrk at gmail.com (MinRK) Date: Mon, 6 Feb 2012 12:58:03 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: On Mon, Feb 6, 2012 at 12:51, Brian Granger wrote: > I am seeing the bug with the Cell menu not causing the select box in > the toolbar to update the cell type. I can fix this, but here is a > question: do we even want the Cell type UI in the Cell menu with it > being in the toolbar already. Granted, the toolbar can be hidden, but > it seems a bit redundant and verbose... > I think nothing should be absent from the menus. The toolbar should be 100% redundant. > > Cheers, > > Brian > > On Mon, Feb 6, 2012 at 12:05 PM, Brian Granger > wrote: > > Hmm, am not seeing the ampersand problem on Chrome or Safari (on a > > Mac). Is there a particular sequence of keystroke that do it. Does > > it happen for any text before the &? > > > > On Mon, Feb 6, 2012 at 10:57 AM, Chris Kees wrote: > >> On the ampersand problem: Firefox and Safari are the same. Also Safari > >> complains about not being able to access the web socket and says that I > >> won't be able to run code. > >> > >> On the pulldown menu, I'm having trouble reproducing it right now. I > know > >> that sometimes the problem is me in that I have to be more careful in > >> observing which cell is actually active when I use the menus. It's not > a big > >> deal, but I'll be more careful to record my observations if I suspect > this > >> is happening again. > >> > >> On Mon, Feb 6, 2012 at 3:27 AM, Fernando Perez > wrote: > >>> > >>> Hi Chris, > >>> > >>> On Sun, Feb 5, 2012 at 4:20 PM, Chris Kees wrote: > >>> > Thanks a lot. I'm on the right tack now. I updated about two hours > ago > >>> > after I read Min's email so there a couple of quirks you might want > to > >>> > be on > >>> > the lookout for. For some reason when I'm inside a call to > >>> > Latex(r"""...), I > >>> > can't type an ampersand. I can paste one in but the key won't > respond. > >>> > In > >>> > >>> That's really odd, I don't get that on Firefox or Chrome. Can you > >>> refresh your Javascript cache just to make sure? Just save your > >>> notebook, and then force a page reload. Also, could you test on a > >>> different browser and let us know if you see any differences? > >>> > >>> > markdown or outside a string I can type an ampersand. I also > noticed > >>> > that > >>> > sometimes the markdown/code/heading doesn't seem to switch modes > even > >>> > though the pulldown indicates it has. It could just be inaccurate > >>> > pointing > >>> > and clicking on my part. > >>> > >>> Mmh, I do see a problem, not sure if it's the same you do: If I > >>> select a new cell type from the 'Cell' menu, the cells do indeed > >>> change type, but the dropdown list in the icon toolbar isn't updating > >>> correctly anymore. Is that the behavior you see? > >>> > >>> > Anyway, thanks again. I feel like I'm beginning to get productive in > >>> > the > >>> > notebook. > >>> > >>> Glad to hear that. Some inevitable growing pains, but I think we're > >>> on the right track. > >>> > >>> Cheers, > >>> > >>> f > >> > >> > >> > >> _______________________________________________ > >> IPython-dev mailing list > >> IPython-dev at scipy.org > >> http://mail.scipy.org/mailman/listinfo/ipython-dev > >> > > > > > > > > -- > > Brian E. Granger > > Cal Poly State University, San Luis Obispo > > bgranger at calpoly.edu and ellisonbg at gmail.com > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Mon Feb 6 16:19:35 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 6 Feb 2012 13:19:35 -0800 Subject: [IPython-dev] notebook questions an aesthetic details In-Reply-To: References: Message-ID: On Mon, Feb 6, 2012 at 12:58 PM, MinRK wrote: > > > On Mon, Feb 6, 2012 at 12:51, Brian Granger wrote: >> >> I am seeing the bug with the Cell menu not causing the select box in >> the toolbar to update the cell type. ?I can fix this, but here is a >> question: ?do we even want the Cell type UI in the Cell menu with it >> being in the toolbar already. ?Granted, the toolbar can be hidden, but >> it seems a bit redundant and verbose... > > > I think nothing should be absent from the menus. ?The toolbar should be 100% > redundant. OK, I will fix the bug though. Cheers, Brian >> >> >> Cheers, >> >> Brian >> >> On Mon, Feb 6, 2012 at 12:05 PM, Brian Granger >> wrote: >> > Hmm, am not seeing the ampersand problem on Chrome or Safari ?(on a >> > Mac). ?Is there a particular sequence of keystroke that do it. ?Does >> > it happen for any text before the &? >> > >> > On Mon, Feb 6, 2012 at 10:57 AM, Chris Kees wrote: >> >> On the ampersand problem: Firefox and Safari are the same. Also Safari >> >> complains about not being able to access the web socket and says that I >> >> won't be able to run code. >> >> >> >> On the pulldown menu, I'm having trouble reproducing it right now. I >> >> know >> >> that sometimes the problem is me in that I have to be more careful in >> >> observing which cell is actually active when I use the menus. It's not >> >> a big >> >> deal, but I'll be more careful to record my observations if I suspect >> >> this >> >> is happening again. >> >> >> >> On Mon, Feb 6, 2012 at 3:27 AM, Fernando Perez >> >> wrote: >> >>> >> >>> Hi Chris, >> >>> >> >>> On Sun, Feb 5, 2012 at 4:20 PM, Chris Kees wrote: >> >>> > Thanks a lot. ?I'm on the right tack now. ?I updated about two hours >> >>> > ago >> >>> > after I read Min's email so there a couple of quirks you might want >> >>> > to >> >>> > be on >> >>> > the lookout for. For some reason when I'm inside a call to >> >>> > Latex(r"""...), I >> >>> > can't type an ampersand. I can paste one in but the key won't >> >>> > respond. >> >>> > In >> >>> >> >>> That's really odd, I don't get that on Firefox or Chrome. ?Can you >> >>> refresh your Javascript cache just to make sure? ?Just save your >> >>> notebook, and then force a page reload. ?Also, could you test on a >> >>> different browser and let us know if you see any differences? >> >>> >> >>> > markdown or outside a string I can type an ampersand. ? I also >> >>> > noticed >> >>> > that >> >>> > sometimes the markdown/code/heading doesn't seem to switch ?modes >> >>> > even >> >>> > though the pulldown indicates it has. It could just be inaccurate >> >>> > pointing >> >>> > and clicking on my part. >> >>> >> >>> Mmh, I do see a problem, not sure if it's the same you do: ?If I >> >>> select a new cell type from the 'Cell' menu, the cells do indeed >> >>> change type, but the dropdown list in the icon toolbar isn't updating >> >>> correctly anymore. ?Is that the behavior you see? >> >>> >> >>> > Anyway, thanks again. ?I feel like I'm beginning to get productive >> >>> > in >> >>> > the >> >>> > notebook. >> >>> >> >>> Glad to hear that. ?Some inevitable growing pains, but I think we're >> >>> on the right track. >> >>> >> >>> Cheers, >> >>> >> >>> f >> >> >> >> >> >> >> >> _______________________________________________ >> >> IPython-dev mailing list >> >> IPython-dev at scipy.org >> >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> >> > >> > >> > >> > -- >> > Brian E. Granger >> > Cal Poly State University, San Luis Obispo >> > bgranger at calpoly.edu and ellisonbg at gmail.com >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> bgranger at calpoly.edu and ellisonbg at gmail.com >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From ellisonbg at gmail.com Tue Feb 7 00:51:09 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 6 Feb 2012 21:51:09 -0800 Subject: [IPython-dev] Templating library for IPython Message-ID: Hi, In the IPython notebook we are quickly reacing the limitations of the Tornado templating engine. I love the syntax and flexibilty, but it requires that all templates be in the same directory. This is preventing us from organizing the notebook code in a more scalable way where each page's resources (templates/css/js/request handlers) are put into a common subdirectory. I have been looking at the various templating engines and am thinking about switching over to jinja2. Relative to other templating libs for Python here are the main advantages I see for IPython: * The syntax is very close to that of tornado. This will make our existing templates easy to port and require little brain power for our devs. * It has very flexible ways of tracking all of your templates in different locations. As the notebook grows in complexity this will be important. * Jinja2 seems to be well maintained and popular. * Experimental Python 3 support. Questions: What do people think about this plan? How would we handle the dependency issue? We could put jinja2 in externals, but we would have to change all of its import statements. Cheers, Brian -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From fperez.net at gmail.com Tue Feb 7 01:05:17 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 6 Feb 2012 22:05:17 -0800 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: On Mon, Feb 6, 2012 at 9:51 PM, Brian Granger wrote: > > What do people think about this plan? There's another point in favor of jinja2: it's what sphinx uses. This means: - we're already somewhat familiar with it (at least those of us who have messed with customizing sphinx builds at the template level) - it may make it easier to produce high-quality html via sphinx integration from notebooks. > How would we handle the dependency issue? ?We could put jinja2 in > externals, but we would have to change all of its import statements. Yes, the dependency question is the one that bothers me... No good ideas right now, I'm afraid. Thanks for doing the legwork! f From cschin at infoecho.net Tue Feb 7 02:17:33 2012 From: cschin at infoecho.net (Chen-Shan Chin) Date: Mon, 6 Feb 2012 23:17:33 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <201201271419.05307.mark.voorhies@ucsf.edu> References: <201201271419.05307.mark.voorhies@ucsf.edu> Message-ID: <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> Thanks. I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup Obviously, there are a lot of interesting things that one can do along this line. Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? --Jason On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: > On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>> >>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>> >>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >> >> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >> click context menu not supported). I haven't tested in Chrome, but it is supported in old versions of webkit. >> >> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >> user actions. >> >> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >> (which seems cleaner, but also seems prone to threading issues). >> >> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >> up NetworkX outputs. >> >> --Mark > > Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation > databases to a graph of inferred relationships between genes and annotations). > > There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) > in chapter 17 of the SVG spec: > http://www.w3.org/TR/SVG11/linking.html > > --Mark > >> >>> >>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>> >>> Bartosz >>> >>> >>> >>> On 27.01.2012, at 18:34, Brian Granger wrote: >>> >>>> We would definitely like to support this but there are some technical >>>> problems with injecting Javascript into the page dynamically that we >>>> will have to work out before this is possible. >>>> >>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin wrote: >>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? It that works, ipython will be a great tool for developing infovis. Any comment on this? I think I might try a little to whether it is feasible. Or, is there something like that already? >>>>> >>>>> --Jason Chin >>>>> _______________________________________________ >>>>> IPython-dev mailing list >>>>> IPython-dev at scipy.org >>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>> >>>> >>>> >>> >>> Bartosz Telenczuk >>> >>> Institute for Theoretical Biology >>> Humboldt University of Berlin, Germany >>> Phone: +4930/2093-8838 >>> Homepage: http://neuroscience.telenczuk.pl >>> >>> >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: catalases2.svg > Type: image/svg+xml > Size: 142312 bytes > Desc: not available > Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin > From hugo at continuum.io Tue Feb 7 06:35:26 2012 From: hugo at continuum.io (hugo) Date: Tue, 07 Feb 2012 06:35:26 -0500 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> Message-ID: <4F310C7E.6070603@continuum.io> when i was playing around with this, I wrote a python module which would call publish_display_data, publish_display_data sends data out over the regular ipython iopub socket. this message maps mime_types to data. you can create your own mime type. the ipython notebook currently handles a few different mime types, I extended the notebook code to respond to my mime type and then create the plot in the code cell. On 02/07/2012 02:17 AM, Chen-Shan Chin wrote: > Thanks. I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup > > Obviously, there are a lot of interesting things that one can do along this line. Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? > > --Jason > > > On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: > >> On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >>> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>>> >>>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >>> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >>> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >>> click context menu not supported). I haven't tested in Chrome, but it is supported in old versions of webkit. >>> >>> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >>> user actions. >>> >>> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >>> (which seems cleaner, but also seems prone to threading issues). >>> >>> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >>> up NetworkX outputs. >>> >>> --Mark >> Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation >> databases to a graph of inferred relationships between genes and annotations). >> >> There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) >> in chapter 17 of the SVG spec: >> http://www.w3.org/TR/SVG11/linking.html >> >> --Mark >> >>>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>>> >>>> Bartosz >>>> >>>> >>>> >>>> On 27.01.2012, at 18:34, Brian Granger wrote: >>>> >>>>> We would definitely like to support this but there are some technical >>>>> problems with injecting Javascript into the page dynamically that we >>>>> will have to work out before this is possible. >>>>> >>>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin wrote: >>>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? It that works, ipython will be a great tool for developing infovis. Any comment on this? I think I might try a little to whether it is feasible. Or, is there something like that already? >>>>>> >>>>>> --Jason Chin >>>>>> _______________________________________________ >>>>>> IPython-dev mailing list >>>>>> IPython-dev at scipy.org >>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>> >>>>> >>>> Bartosz Telenczuk >>>> >>>> Institute for Theoretical Biology >>>> Humboldt University of Berlin, Germany >>>> Phone: +4930/2093-8838 >>>> Homepage: http://neuroscience.telenczuk.pl >>>> >>>> >>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >> -------------- next part -------------- >> A non-text attachment was scrubbed... >> Name: catalases2.svg >> Type: image/svg+xml >> Size: 142312 bytes >> Desc: not available >> Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin >> > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From cschin at infoecho.net Tue Feb 7 10:50:17 2012 From: cschin at infoecho.net (Chen-Shan Chin) Date: Tue, 7 Feb 2012 07:50:17 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <4F310C7E.6070603@continuum.io> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> Message-ID: <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> One of my dilemma now is if I want to leverage the power of the library like d3.js, then I need a more isolated web environment like iframe or a separate window to avoid bad javascript code messing up the notebook itself. I will look into if it is possible to use ipython notebook to create new zmq/websocket channel for such isolation. --Jason On Feb 7, 2012, at 3:35 AM, hugo wrote: > when i was playing around with this, I wrote a python module which would call publish_display_data, publish_display_data sends data out over the regular ipython iopub socket. this message maps mime_types to data. you can create your own mime type. the ipython notebook currently handles a few different mime types, I extended the notebook code to respond to my mime type and then create the plot in the code cell. > > On 02/07/2012 02:17 AM, Chen-Shan Chin wrote: >> Thanks. I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup >> >> Obviously, there are a lot of interesting things that one can do along this line. Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? >> >> --Jason >> >> >> On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: >> >>> On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >>>> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>>>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>>>> >>>>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >>>> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >>>> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >>>> click context menu not supported). I haven't tested in Chrome, but it is supported in old versions of webkit. >>>> >>>> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >>>> user actions. >>>> >>>> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >>>> (which seems cleaner, but also seems prone to threading issues). >>>> >>>> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >>>> up NetworkX outputs. >>>> >>>> --Mark >>> Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation >>> databases to a graph of inferred relationships between genes and annotations). >>> >>> There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) >>> in chapter 17 of the SVG spec: >>> http://www.w3.org/TR/SVG11/linking.html >>> >>> --Mark >>> >>>>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>>>> >>>>> Bartosz >>>>> >>>>> >>>>> >>>>> On 27.01.2012, at 18:34, Brian Granger wrote: >>>>> >>>>>> We would definitely like to support this but there are some technical >>>>>> problems with injecting Javascript into the page dynamically that we >>>>>> will have to work out before this is possible. >>>>>> >>>>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin wrote: >>>>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? It that works, ipython will be a great tool for developing infovis. Any comment on this? I think I might try a little to whether it is feasible. Or, is there something like that already? >>>>>>> >>>>>>> --Jason Chin >>>>>>> _______________________________________________ >>>>>>> IPython-dev mailing list >>>>>>> IPython-dev at scipy.org >>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>> >>>>>> >>>>> Bartosz Telenczuk >>>>> >>>>> Institute for Theoretical Biology >>>>> Humboldt University of Berlin, Germany >>>>> Phone: +4930/2093-8838 >>>>> Homepage: http://neuroscience.telenczuk.pl >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> IPython-dev mailing list >>>>> IPython-dev at scipy.org >>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>> >>> -------------- next part -------------- >>> A non-text attachment was scrubbed... >>> Name: catalases2.svg >>> Type: image/svg+xml >>> Size: 142312 bytes >>> Desc: not available >>> Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin >>> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > From ellisonbg at gmail.com Tue Feb 7 11:54:51 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Tue, 7 Feb 2012 08:54:51 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> Message-ID: How is the attached screenshot? I will put up a branch in a second as a PR. Need to fix a few things first. On Tue, Feb 7, 2012 at 7:50 AM, Chen-Shan Chin wrote: > One of my dilemma now is if I want to leverage the power of the library like d3.js, then I need a more isolated web environment like iframe or a separate window to avoid bad javascript code messing up the notebook itself. ?I will look into if it is possible to use ipython notebook to create new zmq/websocket channel for such isolation. > > --Jason > > On Feb 7, 2012, at 3:35 AM, hugo wrote: > >> when i was playing around with this, I wrote a python module which would call publish_display_data, publish_display_data sends data out over the regular ipython iopub socket. this message maps mime_types to data. ?you can create your own mime type. ?the ipython notebook currently handles a few different mime types, I extended the notebook code to respond to my mime type and then create the plot in the code cell. >> >> On 02/07/2012 02:17 AM, Chen-Shan Chin wrote: >>> Thanks. ?I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup >>> >>> Obviously, there are a lot of interesting things that one can do along this line. ?Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? >>> >>> --Jason >>> >>> >>> On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: >>> >>>> On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >>>>> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>>>>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>>>>> >>>>>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >>>>> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >>>>> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >>>>> click context menu not supported). ?I haven't tested in Chrome, but it is supported in old versions of webkit. >>>>> >>>>> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >>>>> user actions. >>>>> >>>>> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >>>>> (which seems cleaner, but also seems prone to threading issues). >>>>> >>>>> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >>>>> up NetworkX outputs. >>>>> >>>>> --Mark >>>> Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation >>>> databases to a graph of inferred relationships between genes and annotations). >>>> >>>> There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) >>>> in chapter 17 of the SVG spec: >>>> ? http://www.w3.org/TR/SVG11/linking.html >>>> >>>> --Mark >>>> >>>>>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>>>>> >>>>>> Bartosz >>>>>> >>>>>> >>>>>> >>>>>> On 27.01.2012, at 18:34, Brian Granger wrote: >>>>>> >>>>>>> We would definitely like to support this but there are some technical >>>>>>> problems with injecting Javascript into the page dynamically that we >>>>>>> will have to work out before this is possible. >>>>>>> >>>>>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin ?wrote: >>>>>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? ?It that works, ipython will be a great tool for developing infovis. ?Any comment on this? ?I think I might try a little to whether it is feasible. ?Or, is there something like that already? >>>>>>>> >>>>>>>> --Jason Chin >>>>>>>> _______________________________________________ >>>>>>>> IPython-dev mailing list >>>>>>>> IPython-dev at scipy.org >>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>> >>>>>>> >>>>>> Bartosz Telenczuk >>>>>> >>>>>> Institute for Theoretical Biology >>>>>> Humboldt University of Berlin, Germany >>>>>> Phone: +4930/2093-8838 >>>>>> Homepage: http://neuroscience.telenczuk.pl >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> IPython-dev mailing list >>>>>> IPython-dev at scipy.org >>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>> >>>>> _______________________________________________ >>>>> IPython-dev mailing list >>>>> IPython-dev at scipy.org >>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>> >>>> -------------- next part -------------- >>>> A non-text attachment was scrubbed... >>>> Name: catalases2.svg >>>> Type: image/svg+xml >>>> Size: 142312 bytes >>>> Desc: not available >>>> Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin >>>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com -------------- next part -------------- A non-text attachment was scrubbed... Name: Google ChromeScreenSnapz001.jpg Type: image/jpeg Size: 36622 bytes Desc: not available URL: From ellisonbg at gmail.com Tue Feb 7 12:26:11 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Tue, 7 Feb 2012 09:26:11 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> Message-ID: OK, here is the PR: https://github.com/ipython/ipython/pull/1386 Please play with this and let me know where/how it is lacking. Also, I am not yet including d3, do we want to do that? Cheers, Brian On Tue, Feb 7, 2012 at 8:54 AM, Brian Granger wrote: > How is the attached screenshot? ?I will put up a branch in a second as > a PR. ?Need to fix a few things first. > > On Tue, Feb 7, 2012 at 7:50 AM, Chen-Shan Chin wrote: >> One of my dilemma now is if I want to leverage the power of the library like d3.js, then I need a more isolated web environment like iframe or a separate window to avoid bad javascript code messing up the notebook itself. ?I will look into if it is possible to use ipython notebook to create new zmq/websocket channel for such isolation. >> >> --Jason >> >> On Feb 7, 2012, at 3:35 AM, hugo wrote: >> >>> when i was playing around with this, I wrote a python module which would call publish_display_data, publish_display_data sends data out over the regular ipython iopub socket. this message maps mime_types to data. ?you can create your own mime type. ?the ipython notebook currently handles a few different mime types, I extended the notebook code to respond to my mime type and then create the plot in the code cell. >>> >>> On 02/07/2012 02:17 AM, Chen-Shan Chin wrote: >>>> Thanks. ?I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup >>>> >>>> Obviously, there are a lot of interesting things that one can do along this line. ?Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? >>>> >>>> --Jason >>>> >>>> >>>> On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: >>>> >>>>> On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >>>>>> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>>>>>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>>>>>> >>>>>>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >>>>>> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >>>>>> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >>>>>> click context menu not supported). ?I haven't tested in Chrome, but it is supported in old versions of webkit. >>>>>> >>>>>> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >>>>>> user actions. >>>>>> >>>>>> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >>>>>> (which seems cleaner, but also seems prone to threading issues). >>>>>> >>>>>> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >>>>>> up NetworkX outputs. >>>>>> >>>>>> --Mark >>>>> Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation >>>>> databases to a graph of inferred relationships between genes and annotations). >>>>> >>>>> There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) >>>>> in chapter 17 of the SVG spec: >>>>> ? http://www.w3.org/TR/SVG11/linking.html >>>>> >>>>> --Mark >>>>> >>>>>>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>>>>>> >>>>>>> Bartosz >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 27.01.2012, at 18:34, Brian Granger wrote: >>>>>>> >>>>>>>> We would definitely like to support this but there are some technical >>>>>>>> problems with injecting Javascript into the page dynamically that we >>>>>>>> will have to work out before this is possible. >>>>>>>> >>>>>>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin ?wrote: >>>>>>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? ?It that works, ipython will be a great tool for developing infovis. ?Any comment on this? ?I think I might try a little to whether it is feasible. ?Or, is there something like that already? >>>>>>>>> >>>>>>>>> --Jason Chin >>>>>>>>> _______________________________________________ >>>>>>>>> IPython-dev mailing list >>>>>>>>> IPython-dev at scipy.org >>>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>> >>>>>>>> >>>>>>> Bartosz Telenczuk >>>>>>> >>>>>>> Institute for Theoretical Biology >>>>>>> Humboldt University of Berlin, Germany >>>>>>> Phone: +4930/2093-8838 >>>>>>> Homepage: http://neuroscience.telenczuk.pl >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> IPython-dev mailing list >>>>>>> IPython-dev at scipy.org >>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>> >>>>>> _______________________________________________ >>>>>> IPython-dev mailing list >>>>>> IPython-dev at scipy.org >>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>> >>>>> -------------- next part -------------- >>>>> A non-text attachment was scrubbed... >>>>> Name: catalases2.svg >>>>> Type: image/svg+xml >>>>> Size: 142312 bytes >>>>> Desc: not available >>>>> Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin >>>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From pivanov314 at gmail.com Wed Feb 8 03:33:16 2012 From: pivanov314 at gmail.com (Paul Ivanov) Date: Wed, 8 Feb 2012 00:33:16 -0800 Subject: [IPython-dev] how to pitch in to help IPython (documentation) Message-ID: <20120208083316.GC2466@ykcyc> Greetings friends of IPython! If you use and love IPython as much as I do - then surely it deserves to receive a little bit of one-on-one attention and personalized care from you (as all beloved packaged should). "But how do I get started? It seems like I need a PhD in ZeroMQ to even start, and my [forthcoming?] degree is in X, not ZeroMQ!" Fear not! One easy, but very valuable way to contribute is by improving the documentation. Take a look at this pull request: https://github.com/ipython/ipython/pull/1385 There are probably many-many instances of such doc-only improvements which can be made all throughout IPython. It would be a good opportunity for someone with time on their hands to go through, spot places where small ReST changes would improve readability, and spend the time to iteratively improving and rebuilding the docs to verify these changes. All you'll have to do is run `make html` in your ipython/docs directory - which luckily only takes a long time to build the docs the first time - after that, each run essentially only rebuilds the portions which were changed from the previous. And you'll feel good! Consider this parting thought: Fernando Perez started IPython as his PhD thesis *procrastination* project. Isn't it time you joined (or renewed your commitment to) such a rich tradition? best, -- Paul Ivanov 314 address only used for lists, off-list direct email at: http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7 From takowl at gmail.com Wed Feb 8 14:14:03 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 8 Feb 2012 19:14:03 +0000 Subject: [IPython-dev] IPython notebook Message-ID: Hi Todd, I spotted your write-up of the IPython notebook at http://gureckislab.org/blog/?p=1195 - I can't post a comment there, so I thought I'd drop you an email. There's definitely a lot of development work on the notebook at the moment. Brian Granger is posting some updates on Google+: https://plus.google.com/110706953761515533762/posts If you want to help steer the direction of development, there's a standing issue with feature requests (https://github.com/ipython/ipython/issues/977), as well as issues for more concrete proposals, and discussions on the mailing list (CCed here). Some of your suggestions (like code folding) are already planned, while others are new, at least to me. And if you or anyone in your lab are interested in working on the code, new contributors are always welcome. Best wishes, Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Wed Feb 8 14:07:47 2012 From: benjaminrk at gmail.com (MinRK) Date: Wed, 8 Feb 2012 11:07:47 -0800 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: On Mon, Feb 6, 2012 at 22:05, Fernando Perez wrote: > On Mon, Feb 6, 2012 at 9:51 PM, Brian Granger wrote: > > > > What do people think about this plan? > > There's another point in favor of jinja2: it's what sphinx uses. This > means: > > - we're already somewhat familiar with it (at least those of us who > have messed with customizing sphinx builds at the template level) > > - it may make it easier to produce high-quality html via sphinx > integration from notebooks. > > > How would we handle the dependency issue? We could put jinja2 in > > externals, but we would have to change all of its import statements. > > Yes, the dependency question is the one that bothers me... No good > ideas right now, I'm afraid. > The notebook has two external dependencies already (pyzmq, tornado). Why should we ship jinja ourselves, especially when it's by far the most common and largest of the three? -MinRK > > Thanks for doing the legwork! > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From jason-sage at creativetrax.com Wed Feb 8 14:52:59 2012 From: jason-sage at creativetrax.com (Jason Grout) Date: Wed, 08 Feb 2012 13:52:59 -0600 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: <4F32D29B.1050402@creativetrax.com> On 2/7/12 12:05 AM, Fernando Perez wrote: > On Mon, Feb 6, 2012 at 9:51 PM, Brian Granger wrote: >> >> What do people think about this plan? > > There's another point in favor of jinja2: it's what sphinx uses. This means: > > - we're already somewhat familiar with it (at least those of us who > have messed with customizing sphinx builds at the template level) > > - it may make it easier to produce high-quality html via sphinx > integration from notebooks. It's also what Sage uses for our notebook, and we've been happy. Jason From ellisonbg at gmail.com Wed Feb 8 14:58:03 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 8 Feb 2012 11:58:03 -0800 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: On Wed, Feb 8, 2012 at 11:07 AM, MinRK wrote: > > > On Mon, Feb 6, 2012 at 22:05, Fernando Perez wrote: >> >> On Mon, Feb 6, 2012 at 9:51 PM, Brian Granger wrote: >> > >> > What do people think about this plan? >> >> There's another point in favor of jinja2: it's what sphinx uses. ?This >> means: >> >> - we're already somewhat familiar with it (at least those of us who >> have messed with customizing sphinx builds at the template level) >> >> - it may make it easier to produce high-quality html via sphinx >> integration from notebooks. >> >> > How would we handle the dependency issue? ?We could put jinja2 in >> > externals, but we would have to change all of its import statements. >> >> Yes, the dependency question is the one that bothers me... ?No good >> ideas right now, I'm afraid. > > > The notebook has two external dependencies already (pyzmq, tornado). ?Why > should we ship jinja ourselves, especially when it's by far the most common > and largest of the three? Yes, as I have thought about this over the past few days, I am more leaning towards just making it an external dependency. > -MinRK > >> >> >> Thanks for doing the legwork! >> >> f >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From fperez.net at gmail.com Wed Feb 8 21:15:29 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 8 Feb 2012 18:15:29 -0800 Subject: [IPython-dev] IPython notebook In-Reply-To: References: Message-ID: Hi Todd, BTW, the similarities in the IPython notebook with Mathematica are not accidental, you may find this informative: http://wlan.berkeley.edu/login/?http://blog.fperez.org/2012/01/ipython-notebook-historical.html BTW, we're already using the notebook for teaching at Berkeley, just last week I had a visualization lecture: http://www.youtube.com/watch?v=BMA0MRNzK3o for which the notebooks and data are up on github: https://github.com/ivanov/AY250 Coming closer to neuroscience, let me know (fernando.perez at berkeley.edu) and I can put you in touch with some folks at MIT and NYU who have been using the notebook 'in anger' for fMRI analysis. Unfortunately at the last minute I decided against presenting this kind of thing at HBM China this year, but we can certainly discuss it further if you are interested. We want to turn the notebook into something *better* than Mathematica for research, education and publishing, so by all means jump in with ideas (or even better, with code contributions!). Best, f From fperez.net at gmail.com Wed Feb 8 21:25:35 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 8 Feb 2012 18:25:35 -0800 Subject: [IPython-dev] [IPython-User] how to pitch in to help IPython (documentation) In-Reply-To: <20120208083316.GC2466@ykcyc> References: <20120208083316.GC2466@ykcyc> Message-ID: On Wed, Feb 8, 2012 at 12:33 AM, Paul Ivanov wrote: > > "But how do I get started? It seems like I need a PhD in ZeroMQ to > even start, and my [forthcoming?] degree is in X, not ZeroMQ!" > > Fear not! One easy, but very valuable way to contribute is by > improving the documentation. Take a look at this pull request: > https://github.com/ipython/ipython/pull/1385 I want to wholeheartedly second Paul's message, and add an important point: you can help by *reviewing* existing pull requests, such as the one above! Reviewing other's code is also a great way to start learning how the project is structured and 'get into the workflow' of IPython. And while we do have sometimes PRs that are thorny and complex, there are also others that can be easily reviewed by new contributors. For the core team, finding already feedback from someone else is already net progress on any PR and may help us move faster on it. Furthermore, one of you may have a platform/OS/etc combination the core team doesn't have, so providing feedback about how well a given PR works on *your* platform may actually be extremely valuable to us. In summary, take Paul's message at heart, and hopefully you'll find that contributing to the project is easier than you think, and can be very rewarding in the long run. You can start with some of these easier approaches, and next thing you know, you *will* be digging into the heart of the beast :) Best, f From fperez.net at gmail.com Wed Feb 8 21:29:18 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 8 Feb 2012 18:29:18 -0800 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: On Wed, Feb 8, 2012 at 11:58 AM, Brian Granger wrote: > > Yes, as I have thought about this over the past few days, I am more > leaning towards just making it an external dependency. Let's ping Ilan (cc'd here) to see how much of a hassle it would be for EPD free to include it. Right now, EPD free ships a fully working notebook (Ilan kindly included the necessary dependencies), and that's pretty important in terms of really lowering the barrier for new users everywhere. I'm not saying that we have to base our decision solely on that, but we should consult with Ilan to find the best way to move forward rather than making changes unilaterally, as ultimately I'm sure we'll all benefit from finding a solution that works for everyone. Cheers, f From fperez.net at gmail.com Thu Feb 9 19:41:33 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 9 Feb 2012 16:41:33 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? Message-ID: Hey folks, it seems we keep on getting people confused by the need to hit reply-all. There's endless debates on the merits of either approach online and I'm not super-interested in a deep, philosophical discussion about the well-being of the internet, just on making a simple and pragmatic decision that works *for us*. I'm so used to typing 'a' (the gmail shortcut for reply-all) that this has never bothered me, but I'm ok changing. I can always manually change it to reply to the poster only if I want... Note that the setting we're using is listed as "*strongly recommended*" (emphasis theirs) in the mailman interface and is the default. I've just followed their advice for a long time, but I see problems cropping up again and again, thus I'm willing to revisit the question. The change takes me two seconds to make, so I just want to hear if people really would be happier with it being made. Cheers, f From benjaminrk at gmail.com Thu Feb 9 19:55:36 2012 From: benjaminrk at gmail.com (MinRK) Date: Thu, 9 Feb 2012 16:55:36 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: I've always preferred lists that set reply-to as the list address. Does the 'strong recommendation' have a reason behind it? -MinRK On Thu, Feb 9, 2012 at 16:41, Fernando Perez wrote: > Hey folks, > > it seems we keep on getting people confused by the need to hit > reply-all. There's endless debates on the merits of either approach > online and I'm not super-interested in a deep, philosophical > discussion about the well-being of the internet, just on making a > simple and pragmatic decision that works *for us*. > > I'm so used to typing 'a' (the gmail shortcut for reply-all) that this > has never bothered me, but I'm ok changing. I can always manually > change it to reply to the poster only if I want... > > Note that the setting we're using is listed as "*strongly > recommended*" (emphasis theirs) in the mailman interface and is the > default. I've just followed their advice for a long time, but I see > problems cropping up again and again, thus I'm willing to revisit the > question. > > The change takes me two seconds to make, so I just want to hear if > people really would be happier with it being made. > > Cheers, > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Thu Feb 9 19:59:36 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Fri, 10 Feb 2012 00:59:36 +0000 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: On 10 February 2012 00:41, Fernando Perez wrote: > Note that the setting we're using is listed as "*strongly > recommended*" (emphasis theirs) in the mailman interface and is the > default. I've just followed their advice for a long time, but I see > problems cropping up again and again, thus I'm willing to revisit the > question. > I don't administer any lists myself, but on most lists I reply to, replies seem to go to the list. Maybe this is the default for google groups? For myself, I'm ambivalent about it, as I'm used to doing reply-all now, but people often get caught out. Are non-members allowed to post to these lists? If we do change the setting, people will answer questions directly to the list, so if the asker isn't subscribed, they may never get a response. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Thu Feb 9 20:07:39 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 9 Feb 2012 17:07:39 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: Hey On Thu, Feb 9, 2012 at 4:55 PM, MinRK wrote: > I've always preferred lists that set reply-to as the list address. ?Does the > 'strong recommendation' have a reason behind it? Copying from the mailman admin page on this setting: """ reply_goes_to_list (general): Where are replies to list messages directed? Poster is strongly recommended for most mailing lists. This option controls what Mailman does to the Reply-To: header in messages flowing through this mailing list. When set to Poster, no Reply-To: header is added by Mailman, although if one is present in the original message, it is not stripped. Setting this value to either This list or Explicit address causes Mailman to insert a specific Reply-To: header in all messages, overriding the header in the original message if necessary (Explicit address inserts the value of reply_to_address). There are many reasons not to introduce or override the Reply-To: header. One is that some posters depend on their own Reply-To: settings to convey their valid return address. Another is that modifying Reply-To: makes it much more difficult to send private replies. See `Reply-To' Munging Considered Harmful for a general discussion of this issue. See Reply-To Munging Considered Useful for a dissenting opinion. Some mailing lists have restricted posting privileges, with a parallel list devoted to discussions. Examples are `patches' or `checkin' lists, where software changes are posted by a revision control system, but discussion about the changes occurs on a developers mailing list. To support these types of mailing lists, select Explicit address and set the Reply-To: address below to point to the parallel list. """ Cheers, f From fperez.net at gmail.com Thu Feb 9 20:09:36 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 9 Feb 2012 17:09:36 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: On Thu, Feb 9, 2012 at 4:59 PM, Thomas Kluyver wrote: > > Are non-members allowed to post to these lists? If we do change the setting, > people will answer questions directly to the list, so if the asker isn't > subscribed, they may never get a response. Nope, we don't allow non-subscriber postings. I think we did allow it early on, but doing that is a spam magnet, so I have no plans on changing it. One minute dealing with spam in my life is one minute I don't get back, so I'm OK with fairly draconian measures to prevent it. Cheers, f From ischnell at enthought.com Thu Feb 9 20:29:30 2012 From: ischnell at enthought.com (Ilan Schnell) Date: Thu, 9 Feb 2012 19:29:30 -0600 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: Hello Fernando, no problem, Jinja2 is very lightweight. I'll include it in the next EPD Free (7.3) release. - Ilan On Wed, Feb 8, 2012 at 8:29 PM, Fernando Perez wrote: > On Wed, Feb 8, 2012 at 11:58 AM, Brian Granger wrote: >> >> Yes, as I have thought about this over the past few days, I am more >> leaning towards just making it an external dependency. > > Let's ping Ilan (cc'd here) to see how much of a hassle it would be > for EPD free to include ?it. ?Right now, EPD free ships a fully > working notebook (Ilan kindly included the necessary dependencies), > and that's pretty important in terms of really lowering the barrier > for new users everywhere. > > I'm not saying that we have to base our decision solely on that, but > we should consult with Ilan to find the best way to move forward > rather than making changes unilaterally, as ultimately I'm sure we'll > all benefit from finding a solution that works for everyone. > > Cheers, > > f From matthew.brett at gmail.com Thu Feb 9 20:42:24 2012 From: matthew.brett at gmail.com (Matthew Brett) Date: Thu, 9 Feb 2012 17:42:24 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: Yo, On Thu, Feb 9, 2012 at 4:41 PM, Fernando Perez wrote: > Hey folks, > > it seems we keep on getting people confused by the need to hit > reply-all. ?There's endless debates on the merits of either approach > online and I'm not super-interested in a deep, philosophical > discussion about the well-being of the internet, just on making a > simple and pragmatic decision that works *for us*. > > I'm so used to typing 'a' (the gmail shortcut for reply-all) that this > has never bothered me, but I'm ok changing. ?I can always manually > change it to reply to the poster only if I want... > > Note that the setting we're using is listed as "*strongly > recommended*" (emphasis theirs) in the mailman interface and is the > default. ?I've just followed their advice for a long time, but I see > problems cropping up again and again, thus I'm willing to revisit the > question. I accepted the default for the mailing lists I administer and eventually changed them all to reply-to-list having got bored of constantly having to remind people to post to the list. It seems to me the arguments for reply-to sender rather than list are pretty weak, and the disadvantage is rather strong. I've never had anyone complain after I switched, for example. See you, Matthew From ellisonbg at gmail.com Thu Feb 9 20:43:57 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Thu, 9 Feb 2012 17:43:57 -0800 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: Thanks Ilan! On Thu, Feb 9, 2012 at 5:29 PM, Ilan Schnell wrote: > Hello Fernando, > > no problem, Jinja2 is very lightweight. > I'll include it in the next EPD Free (7.3) release. > > - Ilan > > > On Wed, Feb 8, 2012 at 8:29 PM, Fernando Perez wrote: >> On Wed, Feb 8, 2012 at 11:58 AM, Brian Granger wrote: >>> >>> Yes, as I have thought about this over the past few days, I am more >>> leaning towards just making it an external dependency. >> >> Let's ping Ilan (cc'd here) to see how much of a hassle it would be >> for EPD free to include ?it. ?Right now, EPD free ships a fully >> working notebook (Ilan kindly included the necessary dependencies), >> and that's pretty important in terms of really lowering the barrier >> for new users everywhere. >> >> I'm not saying that we have to base our decision solely on that, but >> we should consult with Ilan to find the best way to move forward >> rather than making changes unilaterally, as ultimately I'm sure we'll >> all benefit from finding a solution that works for everyone. >> >> Cheers, >> >> f -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From fperez.net at gmail.com Thu Feb 9 23:31:20 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 9 Feb 2012 20:31:20 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: On Thu, Feb 9, 2012 at 5:42 PM, Matthew Brett wrote: > > I accepted the default for the mailing lists I administer and > eventually changed them all to reply-to-list having got bored of > constantly having to remind people to post to the list. > > It seems to me the arguments for reply-to sender rather than list are > pretty weak, and the disadvantage is rather strong. ?I've never had > anyone complain after I switched, for example. This is precisely the kind of feedback I was looking for, thanks! Given your points and the feedback from others as well, I've changed both -user and -dev. Cheers, f From fperez.net at gmail.com Thu Feb 9 23:32:26 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Thu, 9 Feb 2012 20:32:26 -0800 Subject: [IPython-dev] Templating library for IPython In-Reply-To: References: Message-ID: On Thu, Feb 9, 2012 at 5:43 PM, Brian Granger wrote: > Thanks Ilan! Seconded! Your support on this front is really appreciated, Ilan, and having a fully working notebook in EPD free is really awesome. Cheers, f From robert.kern at gmail.com Fri Feb 10 05:13:56 2012 From: robert.kern at gmail.com (Robert Kern) Date: Fri, 10 Feb 2012 10:13:56 +0000 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: On 2/10/12 4:31 AM, Fernando Perez wrote: > On Thu, Feb 9, 2012 at 5:42 PM, Matthew Brett wrote: >> >> I accepted the default for the mailing lists I administer and >> eventually changed them all to reply-to-list having got bored of >> constantly having to remind people to post to the list. >> >> It seems to me the arguments for reply-to sender rather than list are >> pretty weak, and the disadvantage is rather strong. I've never had >> anyone complain after I switched, for example. > > This is precisely the kind of feedback I was looking for, thanks! > > Given your points and the feedback from others as well, I've changed > both -user and -dev. And there was much rejoicing! -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco From jason-sage at creativetrax.com Fri Feb 10 08:47:48 2012 From: jason-sage at creativetrax.com (Jason Grout) Date: Fri, 10 Feb 2012 07:47:48 -0600 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: <4F352004.8050904@creativetrax.com> On 2/9/12 7:42 PM, Matthew Brett wrote: > It seems to me the arguments for reply-to sender rather than list are > pretty weak, and the disadvantage is rather strong. I've never had > anyone complain after I switched, for example. +1. It seems that reply-to-list reflects the attitude that all conversation should occur on-list (i.e., we are all conversing in a group discussion), whereas the reply-to-sender reflects the attitude that much conversation should be started on the list, but then carried out off-list (i.e., we use the list as a coordination point, but most discussions are between individual people). I think it's better in the situation to support the former as the default. Jason From fperez.net at gmail.com Fri Feb 10 12:16:59 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Fri, 10 Feb 2012 09:16:59 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: On Fri, Feb 10, 2012 at 2:13 AM, Robert Kern wrote: >> Given your points and the feedback from others as well, I've changed >> both -user and -dev. > > And there was much rejoicing! We aim to please :) From fperez.net at gmail.com Fri Feb 10 12:16:59 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Fri, 10 Feb 2012 09:16:59 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: References: Message-ID: On Fri, Feb 10, 2012 at 2:13 AM, Robert Kern wrote: >> Given your points and the feedback from others as well, I've changed >> both -user and -dev. > > And there was much rejoicing! We aim to please :) From fperez.net at gmail.com Fri Feb 10 12:18:04 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Fri, 10 Feb 2012 09:18:04 -0800 Subject: [IPython-dev] Should we change the reply-to line on the lists? In-Reply-To: <4F352004.8050904@creativetrax.com> References: <4F352004.8050904@creativetrax.com> Message-ID: On Fri, Feb 10, 2012 at 5:47 AM, Jason Grout wrote: > +1. ?It seems that reply-to-list reflects the attitude that all > conversation should occur on-list (i.e., we are all conversing in a > group discussion), whereas the reply-to-sender reflects the attitude > that much conversation should be started on the list, but then carried > out off-list (i.e., we use the list as a coordination point, but most > discussions are between individual people). ?I think it's better in the > situation to support the former as the default. That's a very good way to put it, and indeed now that I have more experience with this, I concur with Matthew's view that the arguments the mailman interface proposes for 'strongly' supporting reply-to-poster are fairly weak. One little good thing done, a million and counting to go... :) Cheers, f From matthew.brett at gmail.com Fri Feb 10 14:27:36 2012 From: matthew.brett at gmail.com (Matthew Brett) Date: Fri, 10 Feb 2012 11:27:36 -0800 Subject: [IPython-dev] Wolfram web notebooks Message-ID: Hi, Y'all probably already know about this: http://blog.wolframalpha.com/2012/02/08/announcing-wolframalpha-pro/ I hadn't seen it mentioned, but I'm sure y'all also saw this: http://www.wolfram.com/cdf/ http://en.wikipedia.org/wiki/Computable_Document_Format Best, Matthew From b.telenczuk at biologie.hu-berlin.de Mon Feb 13 08:34:47 2012 From: b.telenczuk at biologie.hu-berlin.de (Bartosz Telenczuk) Date: Mon, 13 Feb 2012 14:34:47 +0100 Subject: [IPython-dev] Wolfram web notebooks In-Reply-To: References: Message-ID: Thanks for the links. > I hadn't seen it mentioned, but I'm sure y'all also saw this: > > http://www.wolfram.com/cdf/ > http://en.wikipedia.org/wiki/Computable_Document_Format Custom plugin. Really? I hoped that these times are almost over now... Best, Bartosz From jason-sage at creativetrax.com Mon Feb 13 09:07:08 2012 From: jason-sage at creativetrax.com (Jason Grout) Date: Mon, 13 Feb 2012 08:07:08 -0600 Subject: [IPython-dev] Wolfram web notebooks In-Reply-To: References: Message-ID: <4F39190C.3070600@creativetrax.com> On 2/13/12 7:34 AM, Bartosz Telenczuk wrote: > Thanks for the links. > >> I hadn't seen it mentioned, but I'm sure y'all also saw this: >> >> http://www.wolfram.com/cdf/ >> http://en.wikipedia.org/wiki/Computable_Document_Format > > Custom plugin. Really? I hoped that these times are almost over now... I guess at least one alternative for Wolfram is porting the mathematica kernel to javascript. Not a very fun project, I imagine. Or at least porting a significant portion of the mathematica frontend, which I imagine is also not a very fun project. Jason From b.telenczuk at biologie.hu-berlin.de Mon Feb 13 11:27:06 2012 From: b.telenczuk at biologie.hu-berlin.de (Bartosz Telenczuk) Date: Mon, 13 Feb 2012 17:27:06 +0100 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> Message-ID: <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> Very cool. I tested it with a very simple d3.js vis and it runs smoothly! Congrats! What are your plans for the communication between the javascript and python code? Are you considering using websockets? My idea is to implement a simple game based on d3.js in ipython notebook in which agents are controlled programmatically from Python. You can see an example session at: http://pelitaapp.appspot.com/ (it is still under development, so please be gentle ;) ). Cheers, Bartosz On 07.02.2012, at 18:26, Brian Granger wrote: > OK, here is the PR: > > https://github.com/ipython/ipython/pull/1386 > > Please play with this and let me know where/how it is lacking. > > Also, I am not yet including d3, do we want to do that? > > Cheers, > > Brian > > On Tue, Feb 7, 2012 at 8:54 AM, Brian Granger wrote: >> How is the attached screenshot? I will put up a branch in a second as >> a PR. Need to fix a few things first. >> >> On Tue, Feb 7, 2012 at 7:50 AM, Chen-Shan Chin wrote: >>> One of my dilemma now is if I want to leverage the power of the library like d3.js, then I need a more isolated web environment like iframe or a separate window to avoid bad javascript code messing up the notebook itself. I will look into if it is possible to use ipython notebook to create new zmq/websocket channel for such isolation. >>> >>> --Jason >>> >>> On Feb 7, 2012, at 3:35 AM, hugo wrote: >>> >>>> when i was playing around with this, I wrote a python module which would call publish_display_data, publish_display_data sends data out over the regular ipython iopub socket. this message maps mime_types to data. you can create your own mime type. the ipython notebook currently handles a few different mime types, I extended the notebook code to respond to my mime type and then create the plot in the code cell. >>>> >>>> On 02/07/2012 02:17 AM, Chen-Shan Chin wrote: >>>>> Thanks. I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup >>>>> >>>>> Obviously, there are a lot of interesting things that one can do along this line. Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? >>>>> >>>>> --Jason >>>>> >>>>> >>>>> On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: >>>>> >>>>>> On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >>>>>>> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>>>>>>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>>>>>>> >>>>>>>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >>>>>>> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >>>>>>> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >>>>>>> click context menu not supported). I haven't tested in Chrome, but it is supported in old versions of webkit. >>>>>>> >>>>>>> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >>>>>>> user actions. >>>>>>> >>>>>>> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >>>>>>> (which seems cleaner, but also seems prone to threading issues). >>>>>>> >>>>>>> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >>>>>>> up NetworkX outputs. >>>>>>> >>>>>>> --Mark >>>>>> Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation >>>>>> databases to a graph of inferred relationships between genes and annotations). >>>>>> >>>>>> There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) >>>>>> in chapter 17 of the SVG spec: >>>>>> http://www.w3.org/TR/SVG11/linking.html >>>>>> >>>>>> --Mark >>>>>> >>>>>>>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>>>>>>> >>>>>>>> Bartosz >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 27.01.2012, at 18:34, Brian Granger wrote: >>>>>>>> >>>>>>>>> We would definitely like to support this but there are some technical >>>>>>>>> problems with injecting Javascript into the page dynamically that we >>>>>>>>> will have to work out before this is possible. >>>>>>>>> >>>>>>>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin wrote: >>>>>>>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? It that works, ipython will be a great tool for developing infovis. Any comment on this? I think I might try a little to whether it is feasible. Or, is there something like that already? >>>>>>>>>> >>>>>>>>>> --Jason Chin >>>>>>>>>> _______________________________________________ >>>>>>>>>> IPython-dev mailing list >>>>>>>>>> IPython-dev at scipy.org >>>>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>>> >>>>>>>>> >>>>>>>> Bartosz Telenczuk >>>>>>>> >>>>>>>> Institute for Theoretical Biology >>>>>>>> Humboldt University of Berlin, Germany >>>>>>>> Phone: +4930/2093-8838 >>>>>>>> Homepage: http://neuroscience.telenczuk.pl >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> IPython-dev mailing list >>>>>>>> IPython-dev at scipy.org >>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>> >>>>>>> _______________________________________________ >>>>>>> IPython-dev mailing list >>>>>>> IPython-dev at scipy.org >>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>> >>>>>> -------------- next part -------------- >>>>>> A non-text attachment was scrubbed... >>>>>> Name: catalases2.svg >>>>>> Type: image/svg+xml >>>>>> Size: 142312 bytes >>>>>> Desc: not available >>>>>> Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin >>>>>> >>>>> _______________________________________________ >>>>> IPython-dev mailing list >>>>> IPython-dev at scipy.org >>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>> >>> >>> _______________________________________________ >>> IPython-dev mailing list >>> IPython-dev at scipy.org >>> http://mail.scipy.org/mailman/listinfo/ipython-dev >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> bgranger at calpoly.edu and ellisonbg at gmail.com > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev Bartosz Telenczuk Institute for Theoretical Biology Humboldt University of Berlin, Germany Phone: +4930/2093-8838 Homepage: http://neuroscience.telenczuk.pl From cschin at infoecho.net Mon Feb 13 13:34:18 2012 From: cschin at infoecho.net (Chen-Shan Chin) Date: Mon, 13 Feb 2012 10:34:18 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> Message-ID: <32EC06F5-D0C6-4733-BAE8-4A58539415AE@infoecho.net> The jsplot example is great and cool. Regarding bi-directional communication, I have spent my last few days understanding the websocket/zmq architecture of the ipython notebook. Originally, I tried to see whether it is possible to build a "AuxIO" websocket-zmq bridge for bidirectional communication of javascript widgets along with the other channels. However, I don't think I know how to do it right at this moment. In the mean time, it is fairly easy to have some independent simple websocket-zmq bridge to facilitate slightly more complicate bi-direction connections. As for controlling a d3.js (or other javascript libs) elements from python directly, I have been playing with displaypub.publish_javascript and display_javascript(js, raw=True) to push javascript to a display element. If I understand it correctly, the publish_javascript and display_javascript can push javascript to client immediately while the display.Javascript() only pushes if it is at the end of a cell. Is this correct? --Jason On Feb 13, 2012, at 8:27 AM, Bartosz Telenczuk wrote: > Very cool. I tested it with a very simple d3.js vis and it runs smoothly! Congrats! > > What are your plans for the communication between the javascript and python code? Are you considering using websockets? > > My idea is to implement a simple game based on d3.js in ipython notebook in which agents are controlled programmatically from Python. You can see an example session at: http://pelitaapp.appspot.com/ (it is still under development, so please be gentle ;) ). > > Cheers, > > Bartosz > > > On 07.02.2012, at 18:26, Brian Granger wrote: > >> OK, here is the PR: >> >> https://github.com/ipython/ipython/pull/1386 >> >> Please play with this and let me know where/how it is lacking. >> >> Also, I am not yet including d3, do we want to do that? >> >> Cheers, >> >> Brian >> >> On Tue, Feb 7, 2012 at 8:54 AM, Brian Granger wrote: >>> How is the attached screenshot? I will put up a branch in a second as >>> a PR. Need to fix a few things first. >>> >>> On Tue, Feb 7, 2012 at 7:50 AM, Chen-Shan Chin wrote: >>>> One of my dilemma now is if I want to leverage the power of the library like d3.js, then I need a more isolated web environment like iframe or a separate window to avoid bad javascript code messing up the notebook itself. I will look into if it is possible to use ipython notebook to create new zmq/websocket channel for such isolation. >>>> >>>> --Jason >>>> >>>> On Feb 7, 2012, at 3:35 AM, hugo wrote: >>>> >>>>> when i was playing around with this, I wrote a python module which would call publish_display_data, publish_display_data sends data out over the regular ipython iopub socket. this message maps mime_types to data. you can create your own mime type. the ipython notebook currently handles a few different mime types, I extended the notebook code to respond to my mime type and then create the plot in the code cell. >>>>> >>>>> On 02/07/2012 02:17 AM, Chen-Shan Chin wrote: >>>>>> Thanks. I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup >>>>>> >>>>>> Obviously, there are a lot of interesting things that one can do along this line. Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? >>>>>> >>>>>> --Jason >>>>>> >>>>>> >>>>>> On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: >>>>>> >>>>>>> On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >>>>>>>> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>>>>>>>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>>>>>>>> >>>>>>>>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >>>>>>>> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >>>>>>>> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >>>>>>>> click context menu not supported). I haven't tested in Chrome, but it is supported in old versions of webkit. >>>>>>>> >>>>>>>> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >>>>>>>> user actions. >>>>>>>> >>>>>>>> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >>>>>>>> (which seems cleaner, but also seems prone to threading issues). >>>>>>>> >>>>>>>> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >>>>>>>> up NetworkX outputs. >>>>>>>> >>>>>>>> --Mark >>>>>>> Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation >>>>>>> databases to a graph of inferred relationships between genes and annotations). >>>>>>> >>>>>>> There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) >>>>>>> in chapter 17 of the SVG spec: >>>>>>> http://www.w3.org/TR/SVG11/linking.html >>>>>>> >>>>>>> --Mark >>>>>>> >>>>>>>>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>>>>>>>> >>>>>>>>> Bartosz >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 27.01.2012, at 18:34, Brian Granger wrote: >>>>>>>>> >>>>>>>>>> We would definitely like to support this but there are some technical >>>>>>>>>> problems with injecting Javascript into the page dynamically that we >>>>>>>>>> will have to work out before this is possible. >>>>>>>>>> >>>>>>>>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin wrote: >>>>>>>>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? It that works, ipython will be a great tool for developing infovis. Any comment on this? I think I might try a little to whether it is feasible. Or, is there something like that already? >>>>>>>>>>> >>>>>>>>>>> --Jason Chin >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> IPython-dev mailing list >>>>>>>>>>> IPython-dev at scipy.org >>>>>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>>>> >>>>>>>>>> >>>>>>>>> Bartosz Telenczuk >>>>>>>>> >>>>>>>>> Institute for Theoretical Biology >>>>>>>>> Humboldt University of Berlin, Germany >>>>>>>>> Phone: +4930/2093-8838 >>>>>>>>> Homepage: http://neuroscience.telenczuk.pl >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> IPython-dev mailing list >>>>>>>>> IPython-dev at scipy.org >>>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> IPython-dev mailing list >>>>>>>> IPython-dev at scipy.org >>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>> >>>>>>> -------------- next part -------------- >>>>>>> A non-text attachment was scrubbed... >>>>>>> Name: catalases2.svg >>>>>>> Type: image/svg+xml >>>>>>> Size: 142312 bytes >>>>>>> Desc: not available >>>>>>> Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin >>>>>>> >>>>>> _______________________________________________ >>>>>> IPython-dev mailing list >>>>>> IPython-dev at scipy.org >>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>> >>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> >>> >>> -- >>> Brian E. Granger >>> Cal Poly State University, San Luis Obispo >>> bgranger at calpoly.edu and ellisonbg at gmail.com >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> bgranger at calpoly.edu and ellisonbg at gmail.com >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > Bartosz Telenczuk > > Institute for Theoretical Biology > Humboldt University of Berlin, Germany > Phone: +4930/2093-8838 > Homepage: http://neuroscience.telenczuk.pl > From hugo at continuum.io Mon Feb 13 13:42:09 2012 From: hugo at continuum.io (hugo) Date: Mon, 13 Feb 2012 13:42:09 -0500 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <32EC06F5-D0C6-4733-BAE8-4A58539415AE@infoecho.net> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> <32EC06F5-D0C6-4733-BAE8-4A58539415AE@infoecho.net> Message-ID: <4F395981.4080607@continuum.io> On 02/13/2012 01:34 PM, Chen-Shan Chin wrote: > The jsplot example is great and cool. > > Regarding bi-directional communication, I have spent my last few days understanding the websocket/zmq architecture of the ipython notebook. Originally, I tried to see whether it is possible to build a "AuxIO" websocket-zmq bridge for bidirectional communication of javascript widgets along with the other channels. However, I don't think I know how to do it right at this moment. In the mean time, it is fairly easy to have some independent simple websocket-zmq bridge to facilitate slightly more complicate bi-direction connections. > > As for controlling a d3.js (or other javascript libs) elements from python directly, I have been playing with displaypub.publish_javascript and display_javascript(js, raw=True) to push javascript to a display element. If I understand it correctly, the publish_javascript and display_javascript can push javascript to client immediately while the display.Javascript() only pushes if it is at the end of a cell. Is this correct? > > --Jason > > regarding websocket zmq bridges, I wrote one that I've been using, it only supports REQ and SUB style communications on the JS side though. https://github.com/hhuuggoo/ZmqWebBridge this guy has one over stomp that is a bit more general but I haven't had time to look at it yet. https://github.com/progrium/nullmq -------------- next part -------------- An HTML attachment was scrubbed... URL: From jason-sage at creativetrax.com Mon Feb 13 13:44:27 2012 From: jason-sage at creativetrax.com (Jason Grout) Date: Mon, 13 Feb 2012 12:44:27 -0600 Subject: [IPython-dev] Using Google App Engine channels instead of zmq in new IPython Message-ID: <4F395A0B.9050609@creativetrax.com> Over the Sage camp, we're starting to experiment with using Google App Engine to manage communication between browser frontends and worker (kernel) backends. The idea is to use GAE to host the notebook, while browsers and backend kernels communicate to send and retrieve work and results through the Google App Engine "channel" architecture [1]. The result would be a massively more scalable notebook running in the cloud. We'd (or at least I'd) also like to eventually switch to IPython 0.12, and try to leverage the new IPython architecture and communication in the Sage notebook. So my question is: how well is the zmq parts encapsulated, and do you think it would be hard to write a google app engine "channel"-based solution that plugs in the place of the zmq communication (and websocket for the html notebook) communication? I've CCd both the ipython list and the sage-notebook list---hopefully the discussion can be carried on both lists. Also a disclaimer: I have about zero experience with GAE; I'm just trying to throw the idea out there and understand a little more about the possible work required. Thanks, Jason [1] http://code.google.com/appengine/docs/python/channel/ From benjaminrk at gmail.com Mon Feb 13 14:15:46 2012 From: benjaminrk at gmail.com (MinRK) Date: Mon, 13 Feb 2012 11:15:46 -0800 Subject: [IPython-dev] Using Google App Engine channels instead of zmq in new IPython In-Reply-To: <4F395A0B.9050609@creativetrax.com> References: <4F395A0B.9050609@creativetrax.com> Message-ID: On Mon, Feb 13, 2012 at 10:44, Jason Grout wrote: > Over the Sage camp, we're starting to experiment with using Google App > Engine to manage communication between browser frontends and worker > (kernel) backends. The idea is to use GAE to host the notebook, while > browsers and backend kernels communicate to send and retrieve work and > results through the Google App Engine "channel" architecture [1]. The > result would be a massively more scalable notebook running in the cloud. > Scalability / Cloud are great, and certainly an ultimate goal, but my perspective is that if replacing zmq is part of the GAE solution, then it is just not the place for IPython. > > We'd (or at least I'd) also like to eventually switch to IPython 0.12, > and try to leverage the new IPython architecture and communication in > the Sage notebook. So my question is: how well is the zmq parts > encapsulated, and do you think it would be hard to write a google app > engine "channel"-based solution that plugs in the place of the zmq > communication (and websocket for the html notebook) communication? > zmq is used principally in two places: * The Session object, which abstracts network communication. You would have to write a new version of this object * The event/polling loops everywhere (specifically Kernel, KernelManager, NotebookApp). If GoogleAppEngine channels can be made to work with the tornado IOLoop, then this shouldn't be too tricky. Otherwise, you would have to rewrite the eventloop of every application/thread we have. -MinRK > I've CCd both the ipython list and the sage-notebook list---hopefully > the discussion can be carried on both lists. Also a disclaimer: I have > about zero experience with GAE; I'm just trying to throw the idea out > there and understand a little more about the possible work required. > > Thanks, > > Jason > > > [1] http://code.google.com/appengine/docs/python/channel/ > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Mon Feb 13 16:55:45 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 13 Feb 2012 13:55:45 -0800 Subject: [IPython-dev] Discussion with Guido van Rossum and (hopefully) core python-dev on scientific Python and Python3 Message-ID: Hi folks, [ I'm broadcasting this widely for maximum reach, but I'd appreciate it if replies can be kept to the *numpy* list, which is sort of the 'base' list for scientific/numerical work. It will make it much easier to organize a coherent set of notes later on. Apology if you're subscribed to all and get it 10 times. ] As part of the PyData workshop (http://pydataworkshop.eventbrite.com) to be held March 2 and 3 at the Mountain View Google offices, we have scheduled a session for an open discussion with Guido van Rossum and hopefully as many core python-dev members who can make it. We wanted to seize the combined opportunity of the PyData workshop bringing a number of 'scipy people' to Google with the timeline for Python 3.3, the first release after the Python language moratorium, being within sight: http://www.python.org/dev/peps/pep-0398. While a number of scientific Python packages are already available for Python 3 (either in released form or in their master git branches), it's fair to say that there hasn't been a major transition of the scientific community to Python3. Since there is no more development being done on the Python2 series, eventually we will all want to find ways to make this transition, and we think that this is an excellent time to engage the core python development team and consider ideas that would make Python3 generally a more appealing language for scientific work. Guido has made it clear that he doesn't speak for the day-to-day development of Python anymore, so we all should be aware that any ideas that come out of this panel will still need to be discussed with python-dev itself via standard mechanisms before anything is implemented. Nonetheless, the opportunity for a solid face-to-face dialog for brainstorming was too good to pass up. The purpose of this email is then to solicit, from all of our community, ideas for this discussion. In a week or so we'll need to summarize the main points brought up here and make a more concrete agenda out of it; I will also post a summary of the meeting afterwards here. Anything is a valid topic, some points just to get the conversation started: - Extra operators/PEP 225. Here's a summary from the last time we went over this, years ago at Scipy 2008: http://mail.scipy.org/pipermail/numpy-discussion/2008-October/038234.html, and the current status of the document we wrote about it is here: file:///home/fperez/www/site/_build/html/py4science/numpy-pep225/numpy-pep225.html. - Improved syntax/support for rationals or decimal literals? While Python now has both decimals (http://docs.python.org/library/decimal.html) and rationals (http://docs.python.org/library/fractions.html), they're quite clunky to use because they require full constructor calls. Guido has mentioned in previous discussions toying with ideas about support for different kinds of numeric literals... - Using the numpy docstring standard python-wide, and thus having python improve the pathetic state of the stdlib's docstrings? This is an area where our community is light years ahead of the standard library, but we'd all benefit from Python itself improving on this front. I'm toying with the idea of giving a lighting talk at PyConn about this, comparing the great, robust culture and tools of good docstrings across the Scipy ecosystem with the sad, sad state of docstrings in the stdlib. It might spur some movement on that front from the stdlib authors, esp. if the core python-dev team realizes the value and benefit it can bring (at relatively low cost, given how most of the information does exist, it's just in the wrong places). But more importantly for us, if there was truly a universal standard for high-quality docstrings across Python projects, building good documentation/help machinery would be a lot easier, as we'd know what to expect and search for (such as rendering them nicely in the ipython notebook, providing high-quality cross-project help search, etc). - Literal syntax for arrays? Sage has been floating a discussion about a literal matrix syntax (https://groups.google.com/forum/#!topic/sage-devel/mzwepqZBHnA). For something like this to go into python in any meaningful way there would have to be core multidimensional arrays in the language, but perhaps it's time to think about a piece of the numpy array itself into Python? This is one of the more 'out there' ideas, but after all, that's the point of a discussion like this, especially considering we'll have both Travis and Guido in one room. - Other syntactic sugar? Sage has "a..b" <=> range(a, b+1), which I actually think is both nice and useful... There's also the question of allowing "a:b:c" notation outside of [], which has come up a few times in conversation over the last few years. Others? - The packaging quagmire? This continues to be a problem, though python3 does have new improvements to distutils. I'm not really up to speed on the situation, to be frank. If we want to bring this up, someone will have to provide a solid reference or volunteer to do it in person. - etc... I'm putting the above just to *start* the discussion, but the real point is for the rest of the community to contribute ideas, so don't be shy. Final note: while I am here commiting to organizing and presenting this at the discussion with Guido (as well as contacting python-dev), I would greatly appreciate help with the task of summarizing this prior to the meeting as I'm pretty badly swamped in the run-in to pydata/pycon. So if anyone is willing to help draft the summary as the date draws closer (we can put it up on a github wiki, gist, whatever), I will be very grateful. I'm sure it will be better than what I'll otherwise do the last night at 2am :) Cheers, f ps - to the obvious question about webcasting the discussion live for remote participation: yes, we looked into it already; no, unfortunately it appears it won't be possible. We'll try to at least have the audio recorded (and possibly video) for posting later on. pps- if you are close to Mountain View and are interested in attending this panel in person, drop me a line at fernando.perez at berkeley.edu. We have a few spots available *for this discussion only* on top of the pydata regular attendance (which is long closed, I'm afraid). But we'll need to provide Google with a list of those attendees in advance. Please indicate if you are a core python committer in your email, as we'll give priority for this overflow pool to core python developers (but will otherwise accommodate as many people as Google lets us). From ellisonbg at gmail.com Mon Feb 13 17:32:12 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 13 Feb 2012 14:32:12 -0800 Subject: [IPython-dev] Using Google App Engine channels instead of zmq in new IPython In-Reply-To: References: <4F395A0B.9050609@creativetrax.com> Message-ID: At this point, ZeroMQ is not a minor implementation detail of IPython, it is really our secret sauce. ZeroMQ has abstractions, such as queues and messaging patterns, that go beyond simple point to point messaging and we rely on those throughout the code base. I don't see how ZeroMQ could be replaced without rewriting good parts of IPython. I do think some of the patterns we use could be adapted for use in GAE though - such as our message protocol. On Mon, Feb 13, 2012 at 11:15 AM, MinRK wrote: > On Mon, Feb 13, 2012 at 10:44, Jason Grout > wrote: >> >> Over the Sage camp, we're starting to experiment with using Google App >> Engine to manage communication between browser frontends and worker >> (kernel) backends. ?The idea is to use GAE to host the notebook, while >> browsers and backend kernels communicate to send and retrieve work and >> results through the Google App Engine "channel" architecture [1]. ?The >> result would be a massively more scalable notebook running in the cloud. > > > Scalability / Cloud are great, and certainly an ultimate goal, but my > perspective is that if replacing zmq is part of the GAE solution, then it is > just not the place for IPython. > > >> >> >> We'd (or at least I'd) also like to eventually switch to IPython 0.12, >> and try to leverage the new IPython architecture and communication in >> the Sage notebook. ?So my question is: how well is the zmq parts >> encapsulated, and do you think it would be hard to write a google app >> engine "channel"-based solution that plugs in the place of the zmq >> communication (and websocket for the html notebook) communication? > > > zmq is used principally in two places: > > * The Session object, which abstracts network communication. ?You would have > to write a new version of this object > * The event/polling loops everywhere (specifically Kernel, KernelManager, > NotebookApp). ?If GoogleAppEngine channels can be made to work with the > tornado IOLoop, then this shouldn't be too tricky. ?Otherwise, you would > have to rewrite the eventloop of every application/thread we have. > > -MinRK > >> >> I've CCd both the ipython list and the sage-notebook list---hopefully >> the discussion can be carried on both lists. ?Also a disclaimer: I have >> about zero experience with GAE; I'm just trying to throw the idea out >> there and understand a little more about the possible work required. >> >> >> Thanks, >> >> Jason >> >> >> [1] http://code.google.com/appengine/docs/python/channel/ >> >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From ellisonbg at gmail.com Mon Feb 13 17:34:16 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 13 Feb 2012 14:34:16 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> Message-ID: We already have WebSocket based channels that the notebook uses to talk between the Javascript and Python code running in the kernel. While it needs to be refactored, all of that infrastructure is already setup and doesn't need to be reinvented. On Mon, Feb 13, 2012 at 8:27 AM, Bartosz Telenczuk wrote: > Very cool. I tested it with a very simple d3.js vis and it runs smoothly! Congrats! > > What are your plans for the communication between the javascript and python code? Are you considering using websockets? > > My idea is to implement a simple game based on d3.js in ipython notebook in which agents are controlled programmatically from Python. You can see an example session at: http://pelitaapp.appspot.com/ (it is still under development, so please be gentle ;) ). > > Cheers, > > Bartosz > > > On 07.02.2012, at 18:26, Brian Granger wrote: > >> OK, here is the PR: >> >> https://github.com/ipython/ipython/pull/1386 >> >> Please play with this and let me know where/how it is lacking. >> >> Also, I am not yet including d3, do we want to do that? >> >> Cheers, >> >> Brian >> >> On Tue, Feb 7, 2012 at 8:54 AM, Brian Granger wrote: >>> How is the attached screenshot? ?I will put up a branch in a second as >>> a PR. ?Need to fix a few things first. >>> >>> On Tue, Feb 7, 2012 at 7:50 AM, Chen-Shan Chin wrote: >>>> One of my dilemma now is if I want to leverage the power of the library like d3.js, then I need a more isolated web environment like iframe or a separate window to avoid bad javascript code messing up the notebook itself. ?I will look into if it is possible to use ipython notebook to create new zmq/websocket channel for such isolation. >>>> >>>> --Jason >>>> >>>> On Feb 7, 2012, at 3:35 AM, hugo wrote: >>>> >>>>> when i was playing around with this, I wrote a python module which would call publish_display_data, publish_display_data sends data out over the regular ipython iopub socket. this message maps mime_types to data. ?you can create your own mime type. ?the ipython notebook currently handles a few different mime types, I extended the notebook code to respond to my mime type and then create the plot in the code cell. >>>>> >>>>> On 02/07/2012 02:17 AM, Chen-Shan Chin wrote: >>>>>> Thanks. ?I have been playing around a number of ideas. I get to the stage that I can write d3.js + python script within the python notebook web interface and send the script through a zmq / websocket server to an IFRAME or a new browser window/tab. I put my preliminary results and some simple instruction at https://github.com/cschin/IPython-Notebook---d3.js-mashup >>>>>> >>>>>> Obviously, there are a lot of interesting things that one can do along this line. ?Using an iframe / new browser might not be ideal. The extra zmq/websocket server is also not pretty. Any suggestions? >>>>>> >>>>>> --Jason >>>>>> >>>>>> >>>>>> On Jan 27, 2012, at 2:19 PM, Mark Voorhies wrote: >>>>>> >>>>>>> On Friday, January 27, 2012 02:07:38 pm Mark Voorhies wrote: >>>>>>>> On Friday, January 27, 2012 01:35:04 pm Bartosz Telenczuk wrote: >>>>>>>>> I completely agree, it would be really nice to enable user interaction with the plots in notebooks. If I am not mistaken, Sage has also a similar feature. >>>>>>>>> >>>>>>>>> I have played with dynamic plots in ipython notebook a bit. The idea is that I add some javascript to SVG generated from matlplotlib (based on an example from matplotlib website). It works well for me (in Firefox and Chrome), but the limitation is that currently one cannot feed the data based on user interaction back to the interpreter. >>>>>>>> SVG supports links on elements by putting them inside an anchor element with an xlink:href attribute. >>>>>>>> Firefox supports this (left click to open link in current tab, middle click to open link in new tab, right >>>>>>>> click context menu not supported). ?I haven't tested in Chrome, but it is supported in old versions of webkit. >>>>>>>> >>>>>>>> So, a baroque feedback strategy would be to make localhost GET requests via these links to communicate >>>>>>>> user actions. >>>>>>>> >>>>>>>> Not sure if the links should point at the tornado instance running the notebook or at a separate server instance >>>>>>>> (which seems cleaner, but also seems prone to threading issues). >>>>>>>> >>>>>>>> Haven't actually tried this yet, but I've been playing quite a bit with xlink:href and xlink:title in SVG to mark >>>>>>>> up NetworkX outputs. >>>>>>>> >>>>>>>> --Mark >>>>>>> Here (attached) is an example of xlink:href/xlink:title in an SVG (in this case, linking some gene annotation >>>>>>> databases to a graph of inferred relationships between genes and annotations). >>>>>>> >>>>>>> There is a nice description of SVG linking (including links to an element within an SVG with optional transformation) >>>>>>> in chapter 17 of the SVG spec: >>>>>>> ? http://www.w3.org/TR/SVG11/linking.html >>>>>>> >>>>>>> --Mark >>>>>>> >>>>>>>>> I attach my sample notebook for testting (when you click on one of text(!) labels: 'rabbit' or 'frog' some bars should disappear) >>>>>>>>> >>>>>>>>> Bartosz >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On 27.01.2012, at 18:34, Brian Granger wrote: >>>>>>>>> >>>>>>>>>> We would definitely like to support this but there are some technical >>>>>>>>>> problems with injecting Javascript into the page dynamically that we >>>>>>>>>> will have to work out before this is possible. >>>>>>>>>> >>>>>>>>>> On Thu, Jan 26, 2012 at 11:09 PM, Chen-Shan Chin ?wrote: >>>>>>>>>>> Hi, All, is it possible to let the backend python process to talk with some good javascript based visualization library running on a browser? ?It that works, ipython will be a great tool for developing infovis. ?Any comment on this? ?I think I might try a little to whether it is feasible. ?Or, is there something like that already? >>>>>>>>>>> >>>>>>>>>>> --Jason Chin >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> IPython-dev mailing list >>>>>>>>>>> IPython-dev at scipy.org >>>>>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>>>> >>>>>>>>>> >>>>>>>>> Bartosz Telenczuk >>>>>>>>> >>>>>>>>> Institute for Theoretical Biology >>>>>>>>> Humboldt University of Berlin, Germany >>>>>>>>> Phone: +4930/2093-8838 >>>>>>>>> Homepage: http://neuroscience.telenczuk.pl >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> IPython-dev mailing list >>>>>>>>> IPython-dev at scipy.org >>>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> IPython-dev mailing list >>>>>>>> IPython-dev at scipy.org >>>>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>>>>> >>>>>>> -------------- next part -------------- >>>>>>> A non-text attachment was scrubbed... >>>>>>> Name: catalases2.svg >>>>>>> Type: image/svg+xml >>>>>>> Size: 142312 bytes >>>>>>> Desc: not available >>>>>>> Url : http://mail.scipy.org/pipermail/ipython-dev/attachments/20120127/ca611993/attachment.bin >>>>>>> >>>>>> _______________________________________________ >>>>>> IPython-dev mailing list >>>>>> IPython-dev at scipy.org >>>>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>>>> >>>> >>>> _______________________________________________ >>>> IPython-dev mailing list >>>> IPython-dev at scipy.org >>>> http://mail.scipy.org/mailman/listinfo/ipython-dev >>> >>> >>> >>> -- >>> Brian E. Granger >>> Cal Poly State University, San Luis Obispo >>> bgranger at calpoly.edu and ellisonbg at gmail.com >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> bgranger at calpoly.edu and ellisonbg at gmail.com >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > Bartosz Telenczuk > > Institute for Theoretical Biology > Humboldt University of Berlin, Germany > Phone: +4930/2093-8838 > Homepage: http://neuroscience.telenczuk.pl > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From fperez.net at gmail.com Mon Feb 13 17:48:16 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 13 Feb 2012 14:48:16 -0800 Subject: [IPython-dev] Using Google App Engine channels instead of zmq in new IPython In-Reply-To: References: <4F395A0B.9050609@creativetrax.com> Message-ID: On Mon, Feb 13, 2012 at 2:32 PM, Brian Granger wrote: > At this point, ZeroMQ is not a minor implementation detail of IPython, > it is really our secret sauce. ?ZeroMQ has abstractions, such as > queues and messaging patterns, that go beyond simple point to point > messaging and we rely on those throughout the code base. ?I don't see > how ZeroMQ could be replaced without rewriting good parts of IPython. Very true. Furthermore, we are working on integrating more and more the code that runs a single interactive kernel with that used by engines in a parallel setting, to make use of the parallel tools more seamless with the rest of our clients (notebook, qt console, etc). And the parallel code is pretty much unthinkable without zeromq, as this diagram should make fairly clear: http://ipython.org/ipython-doc/dev/development/parallel_connections.html So I concur with Brian, that pulling zmq out of ipython is probably not a very realistic goal, and at least it's not one that we have in our radar to commit any effort towards. Obviously the code is all there, and if you find ways of using IPython successfully for Sage without zmq, that's great. I just think that from our side, there won't be work put in that direction, given how many other things are on our plate and how much we continue to build *upon* zmq rather than wanting to move away from it. Cheers, f From jason-sage at creativetrax.com Mon Feb 13 18:01:17 2012 From: jason-sage at creativetrax.com (Jason Grout) Date: Mon, 13 Feb 2012 17:01:17 -0600 Subject: [IPython-dev] [sage-notebook] Re: Using Google App Engine channels instead of zmq in new IPython In-Reply-To: References: <4F395A0B.9050609@creativetrax.com> Message-ID: <4F39963D.8070903@creativetrax.com> On 2/13/12 4:48 PM, Fernando Perez wrote: > On Mon, Feb 13, 2012 at 2:32 PM, Brian Granger wrote: >> At this point, ZeroMQ is not a minor implementation detail of IPython, >> it is really our secret sauce. ZeroMQ has abstractions, such as >> queues and messaging patterns, that go beyond simple point to point >> messaging and we rely on those throughout the code base. I don't see >> how ZeroMQ could be replaced without rewriting good parts of IPython. > > Very true. Furthermore, we are working on integrating more and more > the code that runs a single interactive kernel with that used by > engines in a parallel setting, to make use of the parallel tools more > seamless with the rest of our clients (notebook, qt console, etc). > And the parallel code is pretty much unthinkable without zeromq, as > this diagram should make fairly clear: > > http://ipython.org/ipython-doc/dev/development/parallel_connections.html Those are some very nice diagrams! > > So I concur with Brian, that pulling zmq out of ipython is probably > not a very realistic goal, and at least it's not one that we have in > our radar to commit any effort towards. Obviously the code is all > there, and if you find ways of using IPython successfully for Sage > without zmq, that's great. I just think that from our side, there > won't be work put in that direction, given how many other things are > on our plate and how much we continue to build *upon* zmq rather than > wanting to move away from it. Thanks for the feedback. We already have a websocket<->zmq bridge, right? I think now that GAE channels could basically replace the websocket portion. I assume that would be much easier? So the basic architecture would be: browser <-GAE channel-> Sage server on GAE <-GAE channel-> (bridge <-ZMQ-> IPython kernel) where the part in parentheses would be the worker running on a compute server, and the shim is the bridge between GAE channels and zmq. Does that seem more reasonable? What does the architecture of your websocket bridge look like? Thanks, Jason From fperez.net at gmail.com Mon Feb 13 18:08:15 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 13 Feb 2012 15:08:15 -0800 Subject: [IPython-dev] [sage-notebook] Re: Using Google App Engine channels instead of zmq in new IPython In-Reply-To: <4F39963D.8070903@creativetrax.com> References: <4F395A0B.9050609@creativetrax.com> <4F39963D.8070903@creativetrax.com> Message-ID: On Mon, Feb 13, 2012 at 3:01 PM, Jason Grout wrote: > > Those are some very nice diagrams! Indeed, all the credit goes to Min. > Thanks for the feedback. ?We already have a websocket<->zmq bridge, right? > ?I think now that GAE channels could basically replace the websocket > portion. ?I assume that would be much easier? ?So the basic architecture > would be: > > browser <-GAE channel-> Sage server on GAE <-GAE channel-> (bridge <-ZMQ-> > IPython kernel) > > where the part in parentheses would be the worker running on a compute > server, and the shim is the bridge between GAE channels and zmq. ?Does that > seem more reasonable? ?What does the architecture of your websocket bridge > look like? That's the part we use tornado for, so indeed if you wanted to go this route but run on GAE instead, you could replace our tornado-using code as indicated in your ascii-diagram above. The code that does this is mostly in the various modules here: https://github.com/ipython/ipython/tree/master/IPython/frontend/html/notebook That directory is the only part of IPython that uses tornado, which is effectively what you're talking about replacing. Cheers, f From benjaminrk at gmail.com Mon Feb 13 18:22:07 2012 From: benjaminrk at gmail.com (MinRK) Date: Mon, 13 Feb 2012 15:22:07 -0800 Subject: [IPython-dev] [sage-notebook] Re: Using Google App Engine channels instead of zmq in new IPython In-Reply-To: References: <4F395A0B.9050609@creativetrax.com> <4F39963D.8070903@creativetrax.com> Message-ID: On Mon, Feb 13, 2012 at 15:08, Fernando Perez wrote: > On Mon, Feb 13, 2012 at 3:01 PM, Jason Grout > wrote: > > > > Those are some very nice diagrams! > > Indeed, all the credit goes to Min. > > > Thanks for the feedback. We already have a websocket<->zmq bridge, > right? > > I think now that GAE channels could basically replace the websocket > > portion. I assume that would be much easier? > Yes, that would be much simpler, and the websocket:zmq layer is *extremely* simple, as should a similar translation to any other messaging system. > So the basic architecture > > would be: > > > > browser <-GAE channel-> Sage server on GAE <-GAE channel-> (bridge > <-ZMQ-> > > IPython kernel) > > > > where the part in parentheses would be the worker running on a compute > > server, and the shim is the bridge between GAE channels and zmq. Does > that > > seem more reasonable? What does the architecture of your websocket > bridge > > look like? > > That's the part we use tornado for, so indeed if you wanted to go this > route but run on GAE instead, you could replace our tornado-using code > as indicated in your ascii-diagram above. The code that does this is > mostly in the various modules here: > > > https://github.com/ipython/ipython/tree/master/IPython/frontend/html/notebook > > That directory is the only part of IPython that uses tornado, which is > effectively what you're talking about replacing. > True, but the architecture differs in that what is currently the tornado-based NotebookApp covers everything from the browser to the zmq side of the gae:zmq bridge. So there would have to be some work duplication/proxying for the KernelManagers, which talk zmq to the kernels, and would be separated from server code by an additional GAE layer in this pattern. > > Cheers, > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From hugo at continuum.io Mon Feb 13 18:26:51 2012 From: hugo at continuum.io (Hugo) Date: Mon, 13 Feb 2012 18:26:51 -0500 Subject: [IPython-dev] =?utf-8?q?Using_Google_App_Engine_channels_instead_?= =?utf-8?q?of_zmq_in=09new_IPython?= In-Reply-To: <4F395A0B.9050609@creativetrax.com> References: <4F395A0B.9050609@creativetrax.com> Message-ID: <9d4cb5b5-542d-495e-ba37-dfa1bb55b07a@email.android.com> just curious, why GAE over somethying like ec2 where you get full control? Zmq should be plenty scalable. Jason Grout wrote: >Over the Sage camp, we're starting to experiment with using Google App >Engine to manage communication between browser frontends and worker >(kernel) backends. The idea is to use GAE to host the notebook, while >browsers and backend kernels communicate to send and retrieve work and >results through the Google App Engine "channel" architecture [1]. The >result would be a massively more scalable notebook running in the >cloud. > >We'd (or at least I'd) also like to eventually switch to IPython 0.12, >and try to leverage the new IPython architecture and communication in >the Sage notebook. So my question is: how well is the zmq parts >encapsulated, and do you think it would be hard to write a google app >engine "channel"-based solution that plugs in the place of the zmq >communication (and websocket for the html notebook) communication? > >I've CCd both the ipython list and the sage-notebook list---hopefully >the discussion can be carried on both lists. Also a disclaimer: I have > >about zero experience with GAE; I'm just trying to throw the idea out >there and understand a little more about the possible work required. > >Thanks, > >Jason > > >[1] http://code.google.com/appengine/docs/python/channel/ > >_______________________________________________ >IPython-dev mailing list >IPython-dev at scipy.org >http://mail.scipy.org/mailman/listinfo/ipython-dev -- Sent from my Android phone with K-9 Mail. Please excuse my brevity. From cschin at infoecho.net Mon Feb 13 19:03:34 2012 From: cschin at infoecho.net (Chen-Shan Chin) Date: Mon, 13 Feb 2012 16:03:34 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> Message-ID: <824E5632-1051-4C5B-879A-24FCF5A6FE60@infoecho.net> Yes. It will nice to use the ipython architecture for interactive stuff. Let's say if I create a javascript widget, and I want to send the event to a user defined function/method, what is the best way to do that? What I think is to have a auxiliary websocket-zmq bridge for this purpose. Does it make sense? On Feb 13, 2012, at 2:34 PM, Brian Granger wrote: > We already have WebSocket based channels that the notebook uses to > talk between the Javascript and Python code running in the kernel. > While it needs to be refactored, all of that infrastructure is already > setup and doesn't need to be reinvented. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Mon Feb 13 20:09:16 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 13 Feb 2012 17:09:16 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <824E5632-1051-4C5B-879A-24FCF5A6FE60@infoecho.net> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> <824E5632-1051-4C5B-879A-24FCF5A6FE60@infoecho.net> Message-ID: I don't think you need to add an additional WebSocket channel for any purpose. Of course your Javascript widgets are free to talk to *any* WebSocket server in the world, including a modified IPython notebook server. But as long as you want to talk to your Python code in the backend, you should just use our existing channels. On Mon, Feb 13, 2012 at 4:03 PM, Chen-Shan Chin wrote: > Yes. It will nice to use the??ipython architecture for interactive > stuff.??Let's say if I create a javascript widget, and I want to send the > event to a user defined function/method, what is the best way to do that? > What I think is to have a auxiliary websocket-zmq bridge for this purpose. > ?Does it make sense? > > > On Feb 13, 2012, at 2:34 PM, Brian Granger wrote: > > We already have WebSocket based channels that the notebook uses to > talk between the Javascript and Python code running in the kernel. > While it needs to be refactored, all of that infrastructure is already > setup and doesn't need to be reinvented. > > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From cschin at infoecho.net Mon Feb 13 20:36:44 2012 From: cschin at infoecho.net (Chen-Shan Chin) Date: Mon, 13 Feb 2012 17:36:44 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> <824E5632-1051-4C5B-879A-24FCF5A6FE60@infoecho.net> Message-ID: <41A88E86-734E-4A18-A786-E1EC00B0CAD7@infoecho.net> According this page, http://ipython.org/ipython-doc/stable/development/messaging.html Most of the default channels are used by the kernel for particular purpose. Are you suggesting to overload the shell sockets for extra communication? If so, I can look into how to do that. On Feb 13, 2012, at 5:09 PM, Brian Granger wrote: > I don't think you need to add an additional WebSocket channel for any > purpose. Of course your Javascript widgets are free to talk to *any* > WebSocket server in the world, including a modified IPython notebook > server. But as long as you want to talk to your Python code in the > backend, you should just use our existing channels. > > On Mon, Feb 13, 2012 at 4:03 PM, Chen-Shan Chin wrote: >> Yes. It will nice to use the ipython architecture for interactive >> stuff. Let's say if I create a javascript widget, and I want to send the >> event to a user defined function/method, what is the best way to do that? >> What I think is to have a auxiliary websocket-zmq bridge for this purpose. >> Does it make sense? >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From cschin at infoecho.net Mon Feb 13 20:50:30 2012 From: cschin at infoecho.net (Chen-Shan Chin) Date: Mon, 13 Feb 2012 17:50:30 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> <824E5632-1051-4C5B-879A-24FCF5A6FE60@infoecho.net> Message-ID: <7B24A9B6-7EE3-4793-8494-4DFB49FE8CE0@infoecho.net> I think I get it. I will try something out. Thanks. --Jason On Feb 13, 2012, at 5:09 PM, Brian Granger wrote: > I don't think you need to add an additional WebSocket channel for any > purpose. Of course your Javascript widgets are free to talk to *any* > WebSocket server in the world, including a modified IPython notebook > server. But as long as you want to talk to your Python code in the > backend, you should just use our existing channels. > > On Mon, Feb 13, 2012 at 4:03 PM, Chen-Shan Chin wrote: >> Yes. It will nice to use the ipython architecture for interactive >> stuff. Let's say if I create a javascript widget, and I want to send the >> event to a user defined function/method, what is the best way to do that? >> What I think is to have a auxiliary websocket-zmq bridge for this purpose. >> Does it make sense? >> >> >> On Feb 13, 2012, at 2:34 PM, Brian Granger wrote: >> >> We already have WebSocket based channels that the notebook uses to >> talk between the Javascript and Python code running in the kernel. >> While it needs to be refactored, all of that infrastructure is already >> setup and doesn't need to be reinvented. >> >> > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com From cschin at infoecho.net Mon Feb 13 21:00:03 2012 From: cschin at infoecho.net (Chen-Shan Chin) Date: Mon, 13 Feb 2012 18:00:03 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> <824E5632-1051-4C5B-879A-24FCF5A6FE60@infoecho.net> Message-ID: <025A825C-8F02-41FC-9C4C-BD5B3DD43877@infoecho.net> I think this will work.... On the javascript widget side, we can use this javascript call IPython.notebook.kernel.shell_channel.send() to execute some python function defined within the kernel And one the python side, one can use Javascript() and/or display_javascript() to update the widget.... This is cool. Thanks. (Wish I have time to implement something fun... too much day job overflow.) On Feb 13, 2012, at 5:09 PM, Brian Granger wrote: > I don't think you need to add an additional WebSocket channel for any > purpose. Of course your Javascript widgets are free to talk to *any* > WebSocket server in the world, including a modified IPython notebook > server. But as long as you want to talk to your Python code in the > backend, you should just use our existing channels. > > On Mon, Feb 13, 2012 at 4:03 PM, Chen-Shan Chin wrote: >> Yes. It will nice to use the ipython architecture for interactive >> stuff. Let's say if I create a javascript widget, and I want to send the >> event to a user defined function/method, what is the best way to do that? >> What I think is to have a auxiliary websocket-zmq bridge for this purpose. >> Does it make sense? >> >> >> On Feb 13, 2012, at 2:34 PM, Brian Granger wrote: >> >> We already have WebSocket based channels that the notebook uses to >> talk between the Javascript and Python code running in the kernel. >> While it needs to be refactored, all of that infrastructure is already >> setup and doesn't need to be reinvented. >> >> > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com From ellisonbg at gmail.com Mon Feb 13 22:51:03 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 13 Feb 2012 19:51:03 -0800 Subject: [IPython-dev] datavis with ipython notebook In-Reply-To: <025A825C-8F02-41FC-9C4C-BD5B3DD43877@infoecho.net> References: <201201271419.05307.mark.voorhies@ucsf.edu> <10221EEA-576F-4022-98A2-1FBBC049D46B@infoecho.net> <4F310C7E.6070603@continuum.io> <76A8F7F4-9955-486F-8A7F-026E9E1BAD63@infoecho.net> <21CB9CDD-1657-4E21-90A2-452D3A5D9924@biologie.hu-berlin.de> <824E5632-1051-4C5B-879A-24FCF5A6FE60@infoecho.net> <025A825C-8F02-41FC-9C4C-BD5B3DD43877@infoecho.net> Message-ID: On Mon, Feb 13, 2012 at 6:00 PM, Chen-Shan Chin wrote: > I think this will work.... Yes, you are thinking in the right terms now, but...it won't quite work yet. > On the javascript widget side, we can use this javascript call IPython.notebook.kernel.shell_channel.send() to execute some python function defined within the kernel This logic is currently tied to the cell implementation in a way that won't allow the cell to get the right output. We need to refactor something to make this fully possible. But, once that is done, it will work in exactly the way you are thinking. > And one the python side, one can use Javascript() and/or display_javascript() to update the widget.... Yep! > This is cool. Thanks. (Wish I have time to implement something fun... too much day job overflow.) > > > > On Feb 13, 2012, at 5:09 PM, Brian Granger wrote: > >> I don't think you need to add an additional WebSocket channel for any >> purpose. ?Of course your Javascript widgets are free to talk to *any* >> WebSocket server in the world, including a modified IPython notebook >> server. ?But as long as you want to talk to your Python code in the >> backend, you should just use our existing channels. >> >> On Mon, Feb 13, 2012 at 4:03 PM, Chen-Shan Chin wrote: >>> Yes. It will nice to use the ?ipython architecture for interactive >>> stuff. ?Let's say if I create a javascript widget, and I want to send the >>> event to a user defined function/method, what is the best way to do that? >>> What I think is to have a auxiliary websocket-zmq bridge for this purpose. >>> ?Does it make sense? >>> >>> >>> On Feb 13, 2012, at 2:34 PM, Brian Granger wrote: >>> >>> We already have WebSocket based channels that the notebook uses to >>> talk between the Javascript and Python code running in the kernel. >>> While it needs to be refactored, all of that infrastructure is already >>> setup and doesn't need to be reinvented. >>> >>> >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> bgranger at calpoly.edu and ellisonbg at gmail.com > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From klonuo at gmail.com Tue Feb 14 03:45:01 2012 From: klonuo at gmail.com (klo uo) Date: Tue, 14 Feb 2012 09:45:01 +0100 Subject: [IPython-dev] Using Google App Engine channels instead of zmq in new IPython In-Reply-To: <9d4cb5b5-542d-495e-ba37-dfa1bb55b07a@email.android.com> References: <4F395A0B.9050609@creativetrax.com> <9d4cb5b5-542d-495e-ba37-dfa1bb55b07a@email.android.com> Message-ID: Excuse my jump, but IMHO GAE is attractive as you can experiment for free (in a limited manner), and there is no such option with EC2 On Tue, Feb 14, 2012 at 12:26 AM, Hugo wrote: > > > just curious, why GAE over somethying like ec2 where you get full control? > Zmq should be plenty scalable. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Wed Feb 15 06:18:53 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 15 Feb 2012 11:18:53 +0000 Subject: [IPython-dev] Introduction to contributing to IPython Message-ID: My local Python user group is looking to do a session on contributing to open source Python projects, letting people get their hands dirty with some code during the session. I've suggested it could be based on IPython, since I'm familiar with the codebase. What sort of things could people make reasonable progress with in a couple of hours? Is there a useful extension that could be written without having to understand too much of IPython's internals? Should people tackle quickfix bugs (I see 2 open at present)? Fernando, I know you've run something a bit like this before, so I guess you have some thoughts on how to go about it. To give you an idea of the format: there's usually about 10-20 people, who divide into groups of 2 or 3 for the coding. People will bring their own laptops, and there's wifi in the room. Everyone's broadly familiar with Python code, but I doubt anyone (besides me) will have looked at the IPython codebase before. Thanks, Thomas From orenbaracha at gmail.com Fri Feb 17 07:34:30 2012 From: orenbaracha at gmail.com (Oren Bar) Date: Fri, 17 Feb 2012 12:34:30 +0000 (UTC) Subject: [IPython-dev] Trying to enhance auto-completion of IPython in emacs - need help with debugging Message-ID: Hi, Deriving from the ipython-complete implementation in ipython.el, i tried to implement "greedy-completion" and i think it works pretty well. Now I try to combine both: 1. try regular completion 2. if none, try greedy- completion. This is good for auto-completion that will complete both: In [15]: "".jo and In [16]: print(os.pa When combining, It seems to me that the result string from IPython for greedy- completion (2) skips the comint-preoutput-filter-functions, and write it to buffer. strange. the code works smoothly if i use only one of the completion methods. I can't debug it, since if I debug it using Edebug - accept-process-output seems to get stuck. I'm not so experienced in emacs, so i don't know how to attack this issue. If anyone has tips for debugging this, or may see my bug in the code below, it would be great: ;; my requests strings are a bit different, i dont ask only for completions - i ask for the seed also, and append the completions to it. ;; Greedy completion - complete by whole line and position of cursor (setq ipython-greedy-completion-command-string "print(';'.join([elem if i == 0 else ';'.join(elem) \ for (i,elem) in enumerate(get_ipython().complete('', '%s', %d))])) \ #PYTHON-MODE SILENT\n") ;; Regular completion - complete only by the symbol before point (setq ipython-regular-completion-command-string "print('\\f'.join([elem if i == 0 else '\\f'.join(elem) \ for (i,elem) in enumerate(get_ipython().complete('%s'))])) \ #PYTHON_MODE SILENT\n") (defun get-current-line-for-ipython-completion () "Get current line, make sure that all \"'\" and \"\\\" are properly quoted" (let ((tmp-line (buffer-substring-no-properties (point-at-bol) (point-at- eol))) (i 0)) (while (setq i (string-match "\\\\" tmp-line i)) (setq tmp-line (replace-match "\\\\" nil t tmp-line)) (setq i (+ i 2))) (setq i 0) (while (setq i (string-match "'" tmp-line i)) (setq tmp-line (replace-match "\\\'" nil t tmp-line)) (setq i (+ i 2))) tmp-line)) (defun ipython-build-greedy-completion-request () "Build the string to be past to IPython for greedy completion" (format ipython-greedy-completion-command-string (get-current-line-for-ipython-completion) (- (point) (point-at-bol)))) (defalias 'ipython-try-greedy-completion 'ipython-build-greedy-completion-request) (defun get-pattern-for-ipython-completion () "Get the largest valid symbol from point and backwards" (buffer-substring-no-properties (save-excursion (skip-chars-backward "a-z0-9A-Z_." (point-at-bol)) (point)) (point))) (defun ipython-build-regular-completion-request () "Build the string to be past to IPython for regular completion" (format ipython-regular-completion-command-string (get-pattern-for-ipython-completion))) (defalias 'ipython-try-normal-completion 'ipython-build-regular-completion-request) (defvar ipython-completion-functions nil "List IPython completion methods that are allowed to run.\ Will be executed one-by-one according to their order until we get any completions.") ;; if ipython-completion-functions contains only one function, it all works as expected (either normal or greedy) (setq ipython-completion-functions '(ipython-try-normal-completion ipython-try- greedy-completion)) (defun gcp-completion (completions-table seed) "Completion at point to the Greatest-Common-Prefix" (let ((completion (try-completion seed completions-table))) (when (and completion (not (eq completion t))) (insert (substring completion (length seed)))))) (defun my-ipython-complete-2 () (interactive) (let* ((ugly-return nil) (python-process (or (get-buffer-process (current-buffer)) ;XXX hack for .py buffers (get-process py-which-bufname))) (comint-preoutput-filter-functions (append comint-preoutput-filter-functions '(ansi-color-filter-apply (lambda (string) (setq ugly-return (concat ugly-return string)) "")))) (functions ipython-completion-functions) (completions '("")) seed completions-table) (while (and (string= (car completions) "") functions) (process-send-string python-process (funcall (car functions))) (accept-process-output python-process) (setq completions (split-string (substring ugly-return 0 (position ?\n ugly-return)) ";")) (setq seed (car completions)) (setq completions (cdr completions)) (setq functions (cdr functions))) (setq completions-table (loop for str in completions collect (list str nil))) (gcp-completion completions-table seed) (cond ((or (not completions) (eq (length (car completions)) 0)) (message "Can't find completion for '%s'" seed) (ding)) ((> (length completions) 1) (message "Making completion list...") (with-output-to-temp-buffer "*IPython Completions*" (display-completion-list completions)) (message "Making completion list...%s" "done"))))) Regards, Oren Bar From matt.clarke at stfc.ac.uk Fri Feb 17 07:35:37 2012 From: matt.clarke at stfc.ac.uk (matt.clarke at stfc.ac.uk) Date: Fri, 17 Feb 2012 12:35:37 +0000 Subject: [IPython-dev] Interactive help on QtConsole Message-ID: Hi, Sorry if this has already been reported, but there is a problem with the interactive help. If I try to use the interactive help, it returns the same help page for anything I type. Thanks, Matt -- Scanned by iCritical. -------------- next part -------------- An HTML attachment was scrubbed... URL: From cekees at gmail.com Fri Feb 17 12:56:59 2012 From: cekees at gmail.com (Chris Kees) Date: Fri, 17 Feb 2012 11:56:59 -0600 Subject: [IPython-dev] latex writer Message-ID: Has anybody considered developing a latex or pdf writer for the notebook? I'm trying to finish a report, and it would be nice if i could just stick the entire notebook in the appendix. I was going to try \usepackage{pdfpages} (the notebook is about 20 pages so I can't include it as a floating figure), but then I noticed that none of my web browsers do a very good job generating a pdf of the notebook. -Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Fri Feb 17 14:34:34 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Fri, 17 Feb 2012 19:34:34 +0000 Subject: [IPython-dev] Introduction to contributing to IPython In-Reply-To: References: Message-ID: OK, I'm intending to get people to fix some quickfix bugs. Can I ask everyone to leave the issues tagged quickfix, until our meeting at the end of this month? Also, if you find any more bugs that can be easily fixed by new contributors, please make sure they're tagged, and we'll have a go at tackling them. Hopefully we can have a few pull requests by the end of the session. Best wishes, Thomas On 15 February 2012 11:18, Thomas Kluyver wrote: > My local Python user group is looking to do a session on contributing > to open source Python projects, letting people get their hands dirty > with some code during the session. I've suggested it could be based on > IPython, since I'm familiar with the codebase. > > What sort of things could people make reasonable progress with in a > couple of hours? Is there a useful extension that could be written > without having to understand too much of IPython's internals? Should > people tackle quickfix bugs (I see 2 open at present)? > > Fernando, I know you've run something a bit like this before, so I > guess you have some thoughts on how to go about it. > > To give you an idea of the format: there's usually about 10-20 people, > who divide into groups of 2 or 3 for the coding. People will bring > their own laptops, and there's wifi in the room. Everyone's broadly > familiar with Python code, but I doubt anyone (besides me) will have > looked at the IPython codebase before. > > Thanks, > Thomas From fperez.net at gmail.com Fri Feb 17 18:57:56 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Fri, 17 Feb 2012 15:57:56 -0800 Subject: [IPython-dev] Introduction to contributing to IPython In-Reply-To: References: Message-ID: Hi Thomas, On Fri, Feb 17, 2012 at 11:34 AM, Thomas Kluyver wrote: > OK, I'm intending to get people to fix some quickfix bugs. > > Can I ask everyone to leave the issues tagged quickfix, until our > meeting at the end of this month? Also, if you find any more bugs that > can be easily fixed by new contributors, please make sure they're > tagged, and we'll have a go at tackling them. > > Hopefully we can have a few pull requests by the end of the session. I'm really sorry to not have responded, I'm currently abroad handling some family business and fly back tomorrow. I'll try to give you a more decent answer on Sunday... Cheers, f From ellisonbg at gmail.com Sat Feb 18 00:05:34 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Fri, 17 Feb 2012 21:05:34 -0800 Subject: [IPython-dev] latex writer In-Reply-To: References: Message-ID: Chris, I am already writing a paper in this way. Here is the simple latex exporter that I have: https://github.com/ellisonbg/sympy-qcpaper/blob/master/notebooks/exportlatex.py Some changes that could be made: * I would put the latex in plaintext cells instead of Markdown cells. * Images could easily be exported into standalone files and the latex for inclusion could be autogenerated. But the script is super simple and should be quite easy to adapt to your needs. Cheers, Brian On Fri, Feb 17, 2012 at 9:56 AM, Chris Kees wrote: > Has anybody considered developing a latex or pdf writer for the ?notebook? > I'm trying to finish a report, and it would be nice if i could just stick > the entire notebook in the appendix. I was going to try > \usepackage{pdfpages} (the notebook is about 20 pages so I can't include it > as a floating figure), but then I noticed that none of my web browsers do a > very good job generating a pdf of the ?notebook. ? -Chris > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From cekees at gmail.com Sun Feb 19 04:24:17 2012 From: cekees at gmail.com (Chris Kees) Date: Sun, 19 Feb 2012 03:24:17 -0600 Subject: [IPython-dev] latex writer In-Reply-To: References: Message-ID: Brian, Thanks a lot. I'll let you know how it turns out. Chris On Fri, Feb 17, 2012 at 11:05 PM, Brian Granger wrote: > Chris, > > I am already writing a paper in this way. Here is the simple latex > exporter that I have: > > > https://github.com/ellisonbg/sympy-qcpaper/blob/master/notebooks/exportlatex.py > > Some changes that could be made: > > * I would put the latex in plaintext cells instead of Markdown cells. > * Images could easily be exported into standalone files and the latex > for inclusion could be autogenerated. > > But the script is super simple and should be quite easy to adapt to your > needs. > > Cheers, > > Brian > > On Fri, Feb 17, 2012 at 9:56 AM, Chris Kees wrote: > > Has anybody considered developing a latex or pdf writer for the > notebook? > > I'm trying to finish a report, and it would be nice if i could just stick > > the entire notebook in the appendix. I was going to try > > \usepackage{pdfpages} (the notebook is about 20 pages so I can't include > it > > as a floating figure), but then I noticed that none of my web browsers > do a > > very good job generating a pdf of the notebook. -Chris > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From glacycr at gmail.com Sun Feb 19 16:22:37 2012 From: glacycr at gmail.com (Gerardo Lacy Mora) Date: Sun, 19 Feb 2012 23:22:37 +0200 Subject: [IPython-dev] error initiating ipython notebook Message-ID: Hi! I am getting the following error when trying to open a notebook: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.6/bin/./ipython", line 7, in launch_new_instance() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", line 406, in launch_new_instance app.start() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", line 376, in start return self.subapp.start() File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/html/notebook/notebookapp.py", line 447, in start browser = webbrowser.get(self.browser) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", line 47, in get command = _synthesize(browser) File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", line 84, in _synthesize cmd = browser.split()[0] IndexError: list index out of range What might be the problem? Thanks -Gerardo -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Sun Feb 19 16:25:18 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Sun, 19 Feb 2012 13:25:18 -0800 Subject: [IPython-dev] error initiating ipython notebook In-Reply-To: References: Message-ID: By default, the notebook with open a web browser. There appears to be a problem in that part of the code on your system. Not sure what would cause that failure, but this should get you around it: ipython notebook --no-browser Cheers, Brian On Sun, Feb 19, 2012 at 1:22 PM, Gerardo Lacy Mora wrote: > Hi! > > I am getting the following error when trying to open a notebook: > > Traceback (most recent call last): > ? File "/Library/Frameworks/Python.framework/Versions/2.6/bin/./ipython", > line 7, in > ? ? launch_new_instance() > ? File > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", > line 406, in launch_new_instance > ? ? app.start() > ? File > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", > line 376, in start > ? ? return self.subapp.start() > ? File > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/html/notebook/notebookapp.py", > line 447, in start > ? ? browser = webbrowser.get(self.browser) > ? File > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", > line 47, in get > ? ? command = _synthesize(browser) > ? File > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", > line 84, in _synthesize > ? ? cmd = browser.split()[0] > IndexError: list index out of range > > What might be the problem? > > Thanks > > -Gerardo > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From glacycr at gmail.com Mon Feb 20 04:43:11 2012 From: glacycr at gmail.com (Gerardo Lacy Mora) Date: Mon, 20 Feb 2012 11:43:11 +0200 Subject: [IPython-dev] error initiating ipython notebook In-Reply-To: References: Message-ID: Hi! I am following the development branch for ipython, and seems that the problem was with the commit https://github.com/ipython/ipython/commit/2a436aee039c5cf851d045062142371876685ad3 changing back to if len(self.browser) == 0: makes my notebook work again... Cheers, Gerardo On Sun, Feb 19, 2012 at 11:25 PM, Brian Granger wrote: > By default, the notebook with open a web browser. There appears to be > a problem in that part of the code on your system. Not sure what would > cause that failure, but this should get you around it: > > ipython notebook --no-browser > > Cheers, > > Brian > > On Sun, Feb 19, 2012 at 1:22 PM, Gerardo Lacy Mora > wrote: > > Hi! > > > > I am getting the following error when trying to open a notebook: > > > > Traceback (most recent call last): > > File "/Library/Frameworks/Python.framework/Versions/2.6/bin/./ipython", > > line 7, in > > launch_new_instance() > > File > > > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", > > line 406, in launch_new_instance > > app.start() > > File > > > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", > > line 376, in start > > return self.subapp.start() > > File > > > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/html/notebook/notebookapp.py", > > line 447, in start > > browser = webbrowser.get(self.browser) > > File > > > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", > > line 47, in get > > command = _synthesize(browser) > > File > > > "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", > > line 84, in _synthesize > > cmd = browser.split()[0] > > IndexError: list index out of range > > > > What might be the problem? > > > > Thanks > > > > -Gerardo > > > > _______________________________________________ > > IPython-dev mailing list > > IPython-dev at scipy.org > > http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > > > -- > Brian E. Granger > Cal Poly State University, San Luis Obispo > bgranger at calpoly.edu and ellisonbg at gmail.com > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Mon Feb 20 10:02:47 2012 From: benjaminrk at gmail.com (MinRK) Date: Mon, 20 Feb 2012 10:02:47 -0500 Subject: [IPython-dev] error initiating ipython notebook In-Reply-To: References: Message-ID: Yes, I just saw this, and pushed the fix. The logic got reversed, so 'if self.browser' should have been 'if not self.browser'. On Mon, Feb 20, 2012 at 04:43, Gerardo Lacy Mora wrote: > Hi! > > I am following the development branch for ipython, and seems that the > problem was with the commit > > > https://github.com/ipython/ipython/commit/2a436aee039c5cf851d045062142371876685ad3 > > changing back to > > if len(self.browser) == 0: > > makes my notebook work again... > > Cheers, > > Gerardo > > > > > > On Sun, Feb 19, 2012 at 11:25 PM, Brian Granger wrote: > >> By default, the notebook with open a web browser. There appears to be >> a problem in that part of the code on your system. Not sure what would >> cause that failure, but this should get you around it: >> >> ipython notebook --no-browser >> >> Cheers, >> >> Brian >> >> On Sun, Feb 19, 2012 at 1:22 PM, Gerardo Lacy Mora >> wrote: >> > Hi! >> > >> > I am getting the following error when trying to open a notebook: >> > >> > Traceback (most recent call last): >> > File >> "/Library/Frameworks/Python.framework/Versions/2.6/bin/./ipython", >> > line 7, in >> > launch_new_instance() >> > File >> > >> "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", >> > line 406, in launch_new_instance >> > app.start() >> > File >> > >> "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/terminal/ipapp.py", >> > line 376, in start >> > return self.subapp.start() >> > File >> > >> "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/IPython/frontend/html/notebook/notebookapp.py", >> > line 447, in start >> > browser = webbrowser.get(self.browser) >> > File >> > >> "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", >> > line 47, in get >> > command = _synthesize(browser) >> > File >> > >> "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/webbrowser.py", >> > line 84, in _synthesize >> > cmd = browser.split()[0] >> > IndexError: list index out of range >> > >> > What might be the problem? >> > >> > Thanks >> > >> > -Gerardo >> > >> > _______________________________________________ >> > IPython-dev mailing list >> > IPython-dev at scipy.org >> > http://mail.scipy.org/mailman/listinfo/ipython-dev >> > >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> bgranger at calpoly.edu and ellisonbg at gmail.com >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Mon Feb 20 23:44:30 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Mon, 20 Feb 2012 20:44:30 -0800 Subject: [IPython-dev] Interactive help on QtConsole In-Reply-To: References: Message-ID: On Fri, Feb 17, 2012 at 4:35 AM, wrote: > Sorry if this has already been reported, but there is a problem with the > interactive help. > > If I try to use the interactive help, it returns the same help page for > anything I type. > > Could you be more specific? I don't see the problem you report with the help() command, nor with ipython's own '?/??' forms. Cheers, f From satra at mit.edu Tue Feb 21 08:38:13 2012 From: satra at mit.edu (Satrajit Ghosh) Date: Tue, 21 Feb 2012 08:38:13 -0500 Subject: [IPython-dev] FYI: Task parallelism Message-ID: FYI: a thesis on task parallelism built into python language constructs. ---------- Forwarded message ---------- From: Pierre Bellec Date: Mon, Feb 20, 2012 at 11:45 PM Subject: reference To: Satrajit Ghosh Dear Satrajit, I thought you might find the following work interesting (and it's developed in Python !): http://people.cs.uchicago.edu/~tga/pubs/armstrong-masters.pdf Best, Pierre -------------- next part -------------- An HTML attachment was scrubbed... URL: From jorgen.stenarson at bostream.nu Tue Feb 21 13:49:50 2012 From: jorgen.stenarson at bostream.nu (=?ISO-8859-1?Q?J=F6rgen_Stenarson?=) Date: Tue, 21 Feb 2012 19:49:50 +0100 Subject: [IPython-dev] Slow testsuite? Message-ID: <4F43E74E.8040305@bostream.nu> How long does the testsuite take to run on an average linux machine? On my windows machine it takes 125s with 100s for the parallel stuff. Is that normal? The reason I'm asking is that I think the running time for the parallel stuff has increased significantly from the last time I ran tests. (is there a way to just skip the parallel tests but run all the others?) /J?rgen From fperez.net at gmail.com Tue Feb 21 14:00:04 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 21 Feb 2012 11:00:04 -0800 Subject: [IPython-dev] Slow testsuite? In-Reply-To: <4F43E74E.8040305@bostream.nu> References: <4F43E74E.8040305@bostream.nu> Message-ID: On Tue, Feb 21, 2012 at 10:49 AM, J?rgen Stenarson wrote: > How long does the testsuite take to run on an average linux machine? On > my windows machine it takes 125s with 100s for the parallel stuff. Is > that normal? The reason I'm asking is that I think the running time for On my fairly new and fast linux desktop, I get nearly identical results: IPython test group: IPython.parallel Ran 121 tests in 98.502s ... Ran 10 test groups in 125.719s > the parallel stuff has increased significantly from the last time I ran > tests. (is there a way to just skip the parallel tests but run all the > others?) No, we don't currently have an easy way to skip one group. We do have an easy way to *include* one or more: iptest IPython.core IPython.lib will do just core and lib, for example. But there's no way to spell 'everything but X'. But in a pinch, you could make a simple shell alias/batch file that does iptest IPython.core IPython.lib IPython.... listing manually everything but parallel. The list of groups hardly changes, so it's not a big deal to maintain that alias. We do need to start tagging tests as slow (nose supports labeling), so that it's easier to have a 'quick tests' that gets run in < 30s, and a 'full suite' that can take much longer. Cheers, f From jorgen.stenarson at bostream.nu Tue Feb 21 17:07:51 2012 From: jorgen.stenarson at bostream.nu (=?ISO-8859-1?Q?J=F6rgen_Stenarson?=) Date: Tue, 21 Feb 2012 23:07:51 +0100 Subject: [IPython-dev] Slow testsuite? In-Reply-To: References: <4F43E74E.8040305@bostream.nu> Message-ID: <4F4415B7.8090404@bostream.nu> Fernando Perez skrev 2012-02-21 20:00: > On Tue, Feb 21, 2012 at 10:49 AM, J?rgen Stenarson > wrote: >> How long does the testsuite take to run on an average linux machine? On >> my windows machine it takes 125s with 100s for the parallel stuff. Is >> that normal? The reason I'm asking is that I think the running time for > > > On my fairly new and fast linux desktop, I get nearly identical results: > > IPython test group: IPython.parallel > Ran 121 tests in 98.502s > ... > Ran 10 test groups in 125.719s > Ok good to know, then there isn't anything wrong in my setup. /J?rgen From cekees at gmail.com Tue Feb 21 18:37:43 2012 From: cekees at gmail.com (Chris Kees) Date: Tue, 21 Feb 2012 17:37:43 -0600 Subject: [IPython-dev] latex writer In-Reply-To: References: Message-ID: That's what I needed. It's nice to see how to grab the contents with IPython.nbformat.current.read. Somebody with time on their hands and some latex and pdf expertise could really go to town on making functionality from the notebook available to a pdf document. Thanks, Chris On Sun, Feb 19, 2012 at 3:24 AM, Chris Kees wrote: > Brian, > > Thanks a lot. I'll let you know how it turns out. > > Chris > > > On Fri, Feb 17, 2012 at 11:05 PM, Brian Granger wrote: > >> Chris, >> >> I am already writing a paper in this way. Here is the simple latex >> exporter that I have: >> >> >> https://github.com/ellisonbg/sympy-qcpaper/blob/master/notebooks/exportlatex.py >> >> Some changes that could be made: >> >> * I would put the latex in plaintext cells instead of Markdown cells. >> * Images could easily be exported into standalone files and the latex >> for inclusion could be autogenerated. >> >> But the script is super simple and should be quite easy to adapt to your >> needs. >> >> Cheers, >> >> Brian >> >> On Fri, Feb 17, 2012 at 9:56 AM, Chris Kees wrote: >> > Has anybody considered developing a latex or pdf writer for the >> notebook? >> > I'm trying to finish a report, and it would be nice if i could just >> stick >> > the entire notebook in the appendix. I was going to try >> > \usepackage{pdfpages} (the notebook is about 20 pages so I can't >> include it >> > as a floating figure), but then I noticed that none of my web browsers >> do a >> > very good job generating a pdf of the notebook. -Chris >> > _______________________________________________ >> > IPython-dev mailing list >> > IPython-dev at scipy.org >> > http://mail.scipy.org/mailman/listinfo/ipython-dev >> > >> >> >> >> -- >> Brian E. Granger >> Cal Poly State University, San Luis Obispo >> bgranger at calpoly.edu and ellisonbg at gmail.com >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Tue Feb 21 18:53:09 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 21 Feb 2012 15:53:09 -0800 Subject: [IPython-dev] latex writer In-Reply-To: References: Message-ID: On Tue, Feb 21, 2012 at 3:37 PM, Chris Kees wrote: > Somebody with time on their hands and some latex and pdf expertise could > really go to town on making functionality from the notebook available to a > pdf document. Here's the start of a more structured writer: https://gist.github.com/1569580 This one produces rst, so you could easily run it through sphinx to produce a PDF using sphinx's latex export capabilities. It handles export of figures into image tags already. What it doesn't have yet is any nice style/CSS support for a prettier output. It would be both fun and easy to take this and start building a more structured exporter library that can take a notebook and produce: - pure latex meant for standalone compilation with pdflatex - rst for standalone docutils conversion - rst for sphinx conversion into html or pdf. Cheers f From benjaminrk at gmail.com Wed Feb 22 01:32:56 2012 From: benjaminrk at gmail.com (MinRK) Date: Wed, 22 Feb 2012 01:32:56 -0500 Subject: [IPython-dev] Slow testsuite? In-Reply-To: <4F4415B7.8090404@bostream.nu> References: <4F43E74E.8040305@bostream.nu> <4F4415B7.8090404@bostream.nu> Message-ID: Much of the reason the parallel test suite is slow is that it starts engines at many points, since numerous tests involve the behavior during changes of the number of engines. Further, the reason the test suite has become slower is the recent increase of the default heartbeat period from 1s to 3s. This means it can take 6s from starting an engine to the Hub confirming that the engine is up on its first heartbeat response. I can shorten the heartbeat time in the test suite quite easily (via the `--ping` argument to the controller). It's still slow, due to the starting of many processes, and various waiting periods, but adding `--ping=100` (milliseconds) to the controller args, shaved ~60s off my runtime. Very nearly all of the time in the parallel test suite is spent waiting for something or other, so a fast machine will make approximately no difference. -MinRK On Tue, Feb 21, 2012 at 17:07, J?rgen Stenarson < jorgen.stenarson at bostream.nu> wrote: > Fernando Perez skrev 2012-02-21 20:00: > > On Tue, Feb 21, 2012 at 10:49 AM, J?rgen Stenarson > > wrote: > >> How long does the testsuite take to run on an average linux machine? On > >> my windows machine it takes 125s with 100s for the parallel stuff. Is > >> that normal? The reason I'm asking is that I think the running time for > > > > > > On my fairly new and fast linux desktop, I get nearly identical results: > > > > IPython test group: IPython.parallel > > Ran 121 tests in 98.502s > > ... > > Ran 10 test groups in 125.719s > > > > Ok good to know, then there isn't anything wrong in my setup. > > /J?rgen > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Wed Feb 22 01:38:37 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 21 Feb 2012 22:38:37 -0800 Subject: [IPython-dev] Slow testsuite? In-Reply-To: References: <4F43E74E.8040305@bostream.nu> <4F4415B7.8090404@bostream.nu> Message-ID: On Tue, Feb 21, 2012 at 10:32 PM, MinRK wrote: > Much of the reason the parallel test suite is slow is that it starts engines > at many points, since numerous tests involve the behavior during changes of > the number of engines. ?Further, the reason the test suite has become slower > is the recent increase of the default heartbeat period from 1s to 3s. ?This > means it can take 6s from starting an engine to the Hub confirming that the > engine is up on its first heartbeat response. ?I can shorten the heartbeat > time in the test suite quite easily (via the `--ping` argument to the > controller). ?It's still slow, due to the starting of many processes, and > various waiting periods, but adding `--ping=100` (milliseconds) to the > controller args, shaved ~60s off my runtime. +1, go for it. > Very nearly all of the time in the parallel test suite is spent waiting for > something or other, so a fast machine will make approximately no difference. Yup, that was clear from the near-zero cpu activity during that part. Cheers, f From takowl at gmail.com Wed Feb 22 08:20:18 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 22 Feb 2012 13:20:18 +0000 Subject: [IPython-dev] ShiningPanda email notification Message-ID: Now that we've got ShiningPanda running smoothly, I've just configured it to run the tests on all Python versions every day (rather than every other day). I think we should consider setting up e-mail alerts - these would fire whenever the tests failed, and with the first successful build after tests have been failing. There are a few routes we could take: - Send e-mails to the core developers. - Have a new ipython-build mailing list which interested parties can subscribe to. - Send e-mails here (ipython-dev) - downside: some extra mail for subscribers. upside: greater incentive to fix test failures quickly. - Have some service automatically turn e-mails into Github issues. I don't know of anything to do this, but I imagine we could write one if needs be. Thanks, Thomas From fperez.net at gmail.com Wed Feb 22 13:44:59 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 22 Feb 2012 10:44:59 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: Message-ID: On Wed, Feb 22, 2012 at 5:20 AM, Thomas Kluyver wrote: > - Have a new ipython-build mailing list which interested parties can > subscribe to. > - Send e-mails here (ipython-dev) - downside: some extra mail for > subscribers. upside: greater incentive to fix test failures quickly. These two are my favorites, with a slight preference for the first. While I see the upside you point out in #2, I tend to prefer separating human-driven from machine-driven lists by default... But maybe that's a very XX century view :) I guess we could try pushing to ipython-dev for a while, and check in a few weeks to see if the extra traffic bothers people; if it does we move it out to a separate list. That seems like the path of least effort. Thoughts? f From benjaminrk at gmail.com Wed Feb 22 14:01:49 2012 From: benjaminrk at gmail.com (Min RK) Date: Wed, 22 Feb 2012 11:01:49 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: Message-ID: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> On Feb 22, 2012, at 10:44, Fernando Perez wrote: > On Wed, Feb 22, 2012 at 5:20 AM, Thomas Kluyver wrote: >> - Have a new ipython-build mailing list which interested parties can >> subscribe to. >> - Send e-mails here (ipython-dev) - downside: some extra mail for >> subscribers. upside: greater incentive to fix test failures quickly. > > These two are my favorites, with a slight preference for the first. > While I see the upside you point out in #2, I tend to prefer > separating human-driven from machine-driven lists by default... But > maybe that's a very XX century view :) > > I guess we could try pushing to ipython-dev for a while, and check in > a few weeks to see if the extra traffic bothers people; if it does we > move it out to a separate list. > > That seems like the path of least effort. Thoughts? The path of least effort is to just use the rss feed ShiningPanda already provides. This is how I'm following build failures. > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From takowl at gmail.com Wed Feb 22 14:11:43 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 22 Feb 2012 19:11:43 +0000 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> Message-ID: On 22 February 2012 19:01, Min RK wrote: > The path of least effort is to just use the ?rss feed ShiningPanda already provides. ?This is how I'm following build failures. I no longer regularly look at an RSS reader, but I do generally notice new e-mails. So I'd like e-mail notifications at least for myself. Thomas From fperez.net at gmail.com Wed Feb 22 15:17:13 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 22 Feb 2012 12:17:13 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> Message-ID: On Wed, Feb 22, 2012 at 11:11 AM, Thomas Kluyver wrote: > I no longer regularly look at an RSS reader, but I do generally notice > new e-mails. So I'd like e-mail notifications at least for myself. Same here, I've stopped using RSS years ago, though it's good that Min reminds us of that option, for those who have a regular RSS workflow. Cheers, f From benjaminrk at gmail.com Wed Feb 22 16:02:05 2012 From: benjaminrk at gmail.com (MinRK) Date: Wed, 22 Feb 2012 13:02:05 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> Message-ID: On Wed, Feb 22, 2012 at 12:17, Fernando Perez wrote: > On Wed, Feb 22, 2012 at 11:11 AM, Thomas Kluyver wrote: > > I no longer regularly look at an RSS reader, but I do generally notice > > new e-mails. So I'd like e-mail notifications at least for myself. > > Same here, I've stopped using RSS years ago, though it's good that Min > reminds us of that option, for those who have a regular RSS workflow. > Okay, then I would vote for a new mailing list, because I'd rather not need to add a filter to auto-delete any ShiningPanda emails to ipython-dev. -MinRK > > Cheers, > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Wed Feb 22 16:04:32 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 22 Feb 2012 13:04:32 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> Message-ID: On Wed, Feb 22, 2012 at 1:02 PM, MinRK wrote: > Okay, then I would vote for a new mailing list, because I'd rather not need > to add a filter to auto-delete any ShiningPanda emails to ipython-dev. OK, I'll look into creating ipython-build at ipython.org. Does that sound like a good name, or would people prefer ipython-autotests or something else? Not a big deal, so unless anyone feels really strongly about it, let's just go with ipython-build. Cheers, f From fperez.net at gmail.com Wed Feb 22 16:17:59 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 22 Feb 2012 13:17:59 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> Message-ID: On Wed, Feb 22, 2012 at 1:04 PM, Fernando Perez wrote: > OK, I'll look into creating ipython-build at ipython.org. ?Does that > sound like a good name, or would people prefer ipython-autotests or > something else? ?Not a big deal, so unless anyone feels really > strongly about it, let's just go with ipython-build. Done, the new list is at: http://lists.ipython.org/listinfo.cgi/ipython-build-ipython.org I've made Brian, Min and Thomas list admins as well, so I'm not the bottleneck on this. I'd appreciate it if someone can update the main page with a link to this list, as well as putting a mention of it in the dev guide part of the docs. Cheers, f From takowl at gmail.com Wed Feb 22 16:28:00 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 22 Feb 2012 21:28:00 +0000 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> Message-ID: On 22 February 2012 21:17, Fernando Perez wrote: > Done, the new list is at: > > http://lists.ipython.org/listinfo.cgi/ipython-build-ipython.org I've set up ShiningPanda to send e-mails to the list, but the first one won't come through because I don't know what address it will come from. Once I've seen the first e-mail (it will go directly to me as well), I'll whitelist it so it can send to the list. Thomas From pivanov314 at gmail.com Wed Feb 22 19:18:29 2012 From: pivanov314 at gmail.com (Paul Ivanov) Date: Wed, 22 Feb 2012 16:18:29 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> Message-ID: <20120223001829.GA4540@ykcyc> Fernando Perez, on 2012-02-22 13:17, wrote: > Done, the new list is at: > > http://lists.ipython.org/listinfo.cgi/ipython-build-ipython.org "(The current archive is only available to the list members.)" - that should probably be changed, especially since all of these messages will be auto-generated. > I'd appreciate it if someone can update the main page with a link to > this list, as well as putting a mention of it in the dev guide part of > the docs. Here you go: https://github.com/ipython/ipython-website/pull/6 best, -- Paul Ivanov 314 address only used for lists, off-list direct email at: http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7 From fperez.net at gmail.com Wed Feb 22 20:03:15 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 22 Feb 2012 17:03:15 -0800 Subject: [IPython-dev] ShiningPanda email notification In-Reply-To: <20120223001829.GA4540@ykcyc> References: <624C03EE-602F-4D6A-A8FD-2DF7C118E406@gmail.com> <20120223001829.GA4540@ykcyc> Message-ID: On Wed, Feb 22, 2012 at 4:18 PM, Paul Ivanov wrote: > > "(The current archive is only available to the list members.)" - > that should probably be changed, especially since all of these > messages will be auto-generated. Fixed. >> I'd appreciate it if someone can update the main page with a link to >> this list, as well as putting a mention of it in the dev guide part of >> the docs. > > Here you go: > > https://github.com/ipython/ipython-website/pull/6 Great, thanks! f From matt.terry at gmail.com Fri Feb 24 02:04:51 2012 From: matt.terry at gmail.com (Matt Terry) Date: Thu, 23 Feb 2012 23:04:51 -0800 Subject: [IPython-dev] interrupting local kernels Message-ID: I want to be able to interrupt an ipython kernel that is local to my machine, but not owned by the current process. I recognize that the general problem of interrupting a truly remote kernel is a harder problem and i'm not explicitly not addressing that. However, I think interrupting a local kernel is worth having a special case. All you need to interrupt a local kernel is its pid, so you can send a SIGINT to the appropriate process. The only way I can think of to get that information is to ask the remote kernel (over the shell channel) to return the output of "os.getpid()". The kernel might restart and change pid, so you'd have to poll. This seems ugly and failure prone. What you need is A) the kernel to have a nanny that always knows what the kernel's pid is or B) the kernel to communicate its pid someway other than over the shell channel What about using the heartbeat channel to echo the pid? To my understanding, the heart beats even if the kernel is chugging away. We could have the heartbeat channel return the pid instead of the uuid, or we could return them both. Alternatively, we could pid information in a file in .ipython/somewhere, but that seems potentially contentious. -matt From mirage007 at gmail.com Fri Feb 24 09:15:12 2012 From: mirage007 at gmail.com (Ivan Zhang) Date: Fri, 24 Feb 2012 09:15:12 -0500 Subject: [IPython-dev] using ipkernel to provide access to an application's internals Message-ID: Hi dev list, I thought this place more appropriate as I am looking to change the internals of IPKernel, or perhaps just extend it. Perhaps I am simply not experienced enough with the code and this is already done and obvious, forgive me in this case. Say I have a typical python gui that creates some python objects, modifies them, etc...Now instead of just running this code directly, say I want to run this inside the IPKernel so that all of its data can then be inspected by someone connecting an qtconsole to it. i.e. I envision something like this rough pseudocode below: >from ipython.zmq.ipkernel import * > >class someGui(): > > controller = Controller() > > > > def onSomeEvent(self): > > self.controller.doSomething() > > > > class Controller(): > > > > def __init__(self): > > self.app = IPKernelApp.instance() > > self.app.initialize() > > self.app.start() //make this a returning call so that this doesn?t hang forever. > > > > def doSomething(self): > > self.app. execRequest (?a = 5?) > > > > def doSomethingElse(self): > > return self.app.evalRequest (?a?) > > > > def main(): > > gui = someGui() > > gui.show() > > ____________________ Now somewhere else, someone starts a qtconsole and type in ?a? to check that it?s 5. It?s fairly obvious that the implementation of qtconsole already does something similar, but it was my understanding that it communicates to the kernel through zmq (perhaps I am mistaken?) In my example, I kind of want to give this gui special status, i.e. it is in the same process as the ipkernel itself (maybe another thread) but it would talk to ipkernel directly instead of via zmq. So basically my 2 basic questions are: 1. How to make the ipkernelapp.start() non blocking, or dispatch it as another thread that I can call additional functions on. 2. How to make a simplified exec/evalRequest a blocking call that would evaluate the code on the spot and return or maybe after waiting to acquiring some lock, i.e. not interweaved as an iteration of the ipkernel event loop to make it as responsive as a regular application as possible. 3. How to create the option to broadcast any errors(or print statements) to connected qtconsole instances. If anyone can provide some clues as how to get started towards this direction, it would be greatly appreciated. -i -- Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: From benjaminrk at gmail.com Fri Feb 24 13:58:51 2012 From: benjaminrk at gmail.com (MinRK) Date: Fri, 24 Feb 2012 10:58:51 -0800 Subject: [IPython-dev] interrupting local kernels In-Reply-To: References: Message-ID: The nanny process is ultimately the way we need to go, otherwise you won't ever be able to interrupt remote kernels. On Thu, Feb 23, 2012 at 23:04, Matt Terry wrote: > I want to be able to interrupt an ipython kernel that is local to my > machine, but not owned by the current process. I recognize that the > general problem of interrupting a truly remote kernel is a harder > problem and i'm not explicitly not addressing that. However, I think > interrupting a local kernel is worth having a special case. > > All you need to interrupt a local kernel is its pid, so you can send a > SIGINT to the appropriate process. The only way I can think of to get > that information is to ask the remote kernel (over the shell channel) > to return the output of "os.getpid()". The kernel might restart and > change pid, so you'd have to poll. This seems ugly and failure prone. > > What you need is > A) the kernel to have a nanny that always knows what the kernel's pid is > or > B) the kernel to communicate its pid someway other than over the shell > channel > > What about using the heartbeat channel to echo the pid? To my > understanding, the heart beats even if the kernel is chugging away. > We could have the heartbeat channel return the pid instead of the > uuid, or we could return them both. Alternatively, we could pid > information in a file in .ipython/somewhere, but that seems > potentially contentious. > > -matt > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.terry at gmail.com Fri Feb 24 14:33:11 2012 From: matt.terry at gmail.com (Matt Terry) Date: Fri, 24 Feb 2012 11:33:11 -0800 Subject: [IPython-dev] interrupting local kernels In-Reply-To: References: Message-ID: I agree, but i think local interrupts would be a very useful stop gap until the nanny process is implemented. Personally, I'm willing to hack on local interrupt issue, but I don't have the spare attention for the more general problem. -matt On Fri, Feb 24, 2012 at 10:58 AM, MinRK wrote: > The nanny process is?ultimately ?the way we need to go, otherwise you won't > ever be able to interrupt remote kernels. > > On Thu, Feb 23, 2012 at 23:04, Matt Terry wrote: >> >> I want to be able to interrupt an ipython kernel that is local to my >> machine, but not owned by the current process. ?I recognize that the >> general problem of interrupting a truly remote kernel is a harder >> problem and i'm not explicitly not addressing that. ?However, I think >> interrupting a local kernel is worth having a special case. >> >> All you need to interrupt a local kernel is its pid, so you can send a >> SIGINT to the appropriate process. ?The only way I can think of to get >> that information is to ask the remote kernel (over the shell channel) >> to return the output of "os.getpid()". ?The kernel might restart and >> change pid, so you'd have to poll. ?This seems ugly and failure prone. >> >> What you need is >> A) the kernel to have a nanny that always knows what the kernel's pid is >> or >> B) the kernel to communicate its pid someway other than over the shell >> channel >> >> What about using the heartbeat channel to echo the pid? ?To my >> understanding, the heart beats even if the kernel is chugging away. >> We could have the heartbeat channel return the pid instead of the >> uuid, or we could return them both. ?Alternatively, we could pid >> information in a file in .ipython/somewhere, but that seems >> potentially contentious. >> >> -matt >> _______________________________________________ >> IPython-dev mailing list >> IPython-dev at scipy.org >> http://mail.scipy.org/mailman/listinfo/ipython-dev > > > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > From fperez.net at gmail.com Sat Feb 25 21:01:52 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Sat, 25 Feb 2012 18:01:52 -0800 Subject: [IPython-dev] Introduction to contributing to IPython In-Reply-To: References: Message-ID: On Fri, Feb 24, 2012 at 2:45 PM, Thomas Kluyver wrote: > Just a quick reminder about this: I'll be preparing at the weekend, so > any tips would be greatly appreciated! Mmh, it's unfortunately true that we've done a poor job with organizing small, newcomer-friendly tasks. The big event I had of this kind was in India, and because of this problem I ended up directing most people to just do docstring fixes in magics. This isn't necessarily a bad idea, BTW, for people who may be completely new to the github worfklow, as it's pretty safe and leads to very easy to review requests. So you should keep it in mind as an option in case you have some absolute newbies in the group. But for more experienced developers, just fixing a docstring isn't really too interesting... A few other things that come to mind: - helping review existing PRs. This is genuinely useful, they can run the test suite, report on it and then comment on the code. It will require reading the code, which is a good way to learn up, and helps the project. Not super interesting perhaps, but doing one or two before diving into a feature may be a good warmup. - Starting to write the notebook export code. My quick script (https://gist.github.com/1569580) is just a start, but this is a nice isolated project that would be very useful. I'd call it 'nbexport' to start with, and later we can turn it into a standalone sub-command 'ipython nbexport'. A reasonably modular architecture with options to export to rest for sphinx (html and latex), pure docutils html, and direct latex, would be great to have. - Starting something for testing the web notebook with selenium. Stefan and a Berkeley student have been planning to tackle this one, but if you get a head start on the problem, it would be great. We *really* need to get a grip on testing the notebook before long. - Integrating the sympy bot with our PRs. I'd *love* it if every PR had automatically a link to a report from the bot with the test results. Initially it could be just on one platform, though ultimately the best would be to have a summary of tests on various buildbots. This would make the review process even quicker, as one would know that the tests are already in good shape. Aaron gave a great description of their system a few weeks ago. - Tagging groups and tests in our test suite with 'slow', so that it's easy to have a 'quick tests' option in addition to the full suite. Eventually I hope we'll have three levels: default, 'quick' and 'full', where default takes at most 2 minutes, quick is < 30s, and 'full' takes however long is necessary. I'm afraid these aren't all super newbie-level, unfortunately, but it's the best I can come up with right now... Anyone else have other ideas? Cheers, f From takowl at gmail.com Sun Feb 26 07:40:09 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Sun, 26 Feb 2012 12:40:09 +0000 Subject: [IPython-dev] Introduction to contributing to IPython In-Reply-To: References: Message-ID: On 26 February 2012 02:01, Fernando Perez wrote: > Mmh, it's unfortunately true that we've done a poor job with > organizing small, newcomer-friendly tasks. ?The big event I had of > this kind was in India, and because of this problem I ended up > directing most people to just do docstring fixes in magics. ?This > isn't necessarily a bad idea, BTW, for people who may be completely > new to the github worfklow, as it's pretty safe and leads to very easy > to review requests. ?So you should keep it in mind as an option in > case you have some absolute newbies in the group. ?But for more > experienced developers, just fixing a docstring isn't really too > interesting... My current thinking is to get each group to attempt to fix one of the quickfix bugs from the issue tracker. This will take them through the workflow of forking, branching, committing changes and submitting a pull request, but with something a bit more meaty than changing a docstring. Hopefully there'll also be time to add a test for each issue. Brief thoughts on the other ideas: - Reviewing pull requests: I may get people doing this if there's spare time at the end, but I think it's less satisfying, as there's only so much you can say without being familiar with the codebase. - Notebook export/Selenium/PRbot: I think you'd need to know the relevant architecture to make much headway with these during the meeting. My experience is that the time goes by very quickly, and there'll be an overhead for getting set up with the repository, virtualenv, etc. - Test tagging: something else that I may well hold in reserve. Thanks, Thomas From bussonniermatthias at gmail.com Sun Feb 26 08:57:17 2012 From: bussonniermatthias at gmail.com (Matthias BUSSONNIER) Date: Sun, 26 Feb 2012 14:57:17 +0100 Subject: [IPython-dev] Introduction to contributing to IPython In-Reply-To: References: Message-ID: Le 26 f?vr. 2012 ? 03:01, Fernando Perez a ?crit : > On Fri, Feb 24, 2012 at 2:45 PM, Thomas Kluyver wrote: >> Just a quick reminder about this: I'll be preparing at the weekend, so >> any tips would be greatly appreciated! > > > - Starting to write the notebook export code. My quick script > (https://gist.github.com/1569580) is just a start, but this is a nice > isolated project that would be very useful. I'd call it 'nbexport' to > start with, and later we can turn it into a standalone sub-command > 'ipython nbexport'. A reasonably modular architecture with options to > export to rest for sphinx (html and latex), pure docutils html, and > direct latex, would be great to have. > [...] > Anyone else have other ideas? A nbv3-> nbv2 converter ? Either as an export option of the current notebook or as a standalone. Update current example notebook to use Heading cells and all the new stuff ? Write other examples. On the QtConsole, in a few places code deal with tabs numbers(int) because of Qt. It should be possible to change it to use reference of the widget inside the tabs. We then could allow reordering of the tabs by drag and drop. The "All magics..." menu does not update if new magic are added to the kernel, like when starting the parallel code. It might not be to hard to update the list at some action like changing tab/ executing code. Clean the closing tab logic. Splitting the close_tab function into internal_close_request and user_close_request might allow to have a much simpler code. I can try to open some issues on github giving a few pointer on to which file to look for that in the next few days. Good luck for PyCon, I regret not being able to come. -- Matthias (aka Carreau) From hans_meine at gmx.net Mon Feb 27 04:57:50 2012 From: hans_meine at gmx.net (Hans Meine) Date: Mon, 27 Feb 2012 10:57:50 +0100 Subject: [IPython-dev] interrupting local kernels In-Reply-To: References: Message-ID: <2945946.DVsr9iBSQi@hmeine-pc> Am Freitag, 24. Februar 2012, 11:33:11 schrieb Matt Terry: > I agree, but i think local interrupts would be a very useful stop gap > until the nanny process is implemented. Personally, I'm willing to > hack on local interrupt issue, but I don't have the spare attention > for the more general problem. I would suggest to copy the nanny process idea from these mails into the source code such that future contributors willing to fix this will immediately see why it hasn?t been implemented yet, and that the consensus is indeed that this makes sense. Best, Hans From cekees at gmail.com Mon Feb 27 10:39:26 2012 From: cekees at gmail.com (Chris Kees) Date: Mon, 27 Feb 2012 09:39:26 -0600 Subject: [IPython-dev] browser support tests for HTML/JS features Message-ID: Hi, Has their been much discussion on how the IPython Notebook is going to support users and developers trying to debug browser and HTML/JS issues? I ask becauseI spent some time over the weekend fooling with some animations, the related HTML5, and various browsers. I find that chrome, for example, appears to display videos fine in some formats on HTML5 test pages but not in the Notebook whereas Safari and Firefox have inconsistent support as well. Since the notebook is inherently dependent on browser capabilities it seems like a strategy for differentiating between browser issues (i.e. those that need to be pushed back to Google/Apple/Mozilla) and IPython Notebook issues might be worthwhile. If you're interested in the video and image display tests, I made a public repository of some simple notebooks at https://github.com/erdc-cm/proteus-notebooks. Most of these will not run for most of you because they require either our PDE code Proteus and/or a package for conservation laws called PyClaw. The one that may be of general interest is display_test.ipynb. It brings in various image and animation files in what I think is proper HTML5 via IPython.core.display.HTML. Somebody handy with matplotlib could easily remove the dependency on the files and generate the images and animations inline. Cheers, Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: From ellisonbg at gmail.com Mon Feb 27 13:09:59 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Mon, 27 Feb 2012 10:09:59 -0800 Subject: [IPython-dev] browser support tests for HTML/JS features In-Reply-To: References: Message-ID: Chris, On Mon, Feb 27, 2012 at 7:39 AM, Chris Kees wrote: > Hi, > > Has their been much discussion on how the IPython Notebook is going to > support users and developers trying to debug browser and HTML/JS issues? I > ask becauseI spent some time over the weekend fooling with some animations, > the related HTML5, and various browsers. I find that chrome, for example, > appears to display videos fine in some formats on HTML5 test pages but not > in the Notebook whereas Safari and Firefox have inconsistent support as > well. ?Since the notebook is inherently dependent on browser capabilities it > seems like a strategy for differentiating between browser issues (i.e. those > that need to be pushed back to Google/Apple/Mozilla) and IPython Notebook > issues might be worthwhile. We really are at the mercy of the browsers when it comes to HTML5 support. We have followed the parts of HTML5 that affect all notebooks (flexible box model + WebSockets) but HTML5 has many additional features we have not tracked. But I have no idea why somethings would display fine in a test page but not in the notebook. It could have to do with the fact that the HTML code generated by the HTML object is dynamically inserted into the DOM. Maybe some types of HTML5 features need to be static on the page? I will have to think about how we could get around that. > If you're interested in the video and image display tests, I made a public > repository of some simple notebooks > at?https://github.com/erdc-cm/proteus-notebooks. Most of these will not run > for most of you because they require either our PDE code Proteus and/or a > package for conservation laws called PyClaw. The one that may be of general > interest is display_test.ipynb. It brings in various image and animation > files in what I think is proper HTML5 via IPython.core.display.HTML. > Somebody handy with matplotlib could easily remove the dependency on the > files and generate the images and animations inline. Oh, great! Thanks for putting this up and playing around with these things. We might want to pull some of the generic ones into the IPython examples directory. Cheers, Brian > Cheers, > Chris > > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev > -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com From takowl at gmail.com Mon Feb 27 14:40:12 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Mon, 27 Feb 2012 19:40:12 +0000 Subject: [IPython-dev] Google Summer of Code Message-ID: If we're interested in participating in Google Summer of Code this year, we need to be thinking about it. We have a list of projects people can have a go at here: http://wiki.ipython.org/Potential_projects In particular, I think these projects might be suitable: - A curses/urwid frontend, perhaps using code from bpython. - Flexible readline replacement (though I think we'd need to have a clearer idea ourselves of how this would work first). I imagine there are also things that could be done with the notebook. **9th March** is the deadline for organisations to apply. Thanks, Thomas From fperez.net at gmail.com Tue Feb 28 17:43:23 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 28 Feb 2012 14:43:23 -0800 Subject: [IPython-dev] Google Summer of Code In-Reply-To: References: Message-ID: Hi Thomas, On Mon, Feb 27, 2012 at 11:40 AM, Thomas Kluyver wrote: > If we're interested in participating in Google Summer of Code this > year, we need to be thinking about it. We have a list of projects > people can have a go at here: > http://wiki.ipython.org/Potential_projects > > In particular, I think these projects might be suitable: > - A curses/urwid frontend, perhaps using code from bpython. > - Flexible readline replacement (though I think we'd need to have a > clearer idea ourselves of how this would work first). > > I imagine there are also things that could be done with the notebook. > > **9th March** is the deadline for organisations to apply. The real question is: how much *mentor* bandwidth do we have? I'm unfortunately out of the loop, unless the mentee were to be already someone very plugged into our development process, because I'm already maxed out on ipython work for this summer. The DoD grant on parallel/notebook integration will consume my available bandwidth this summer, and whatever's left is not enough for the kind of dedicated mentoring expected of the GSoC program. So of the potential mentors, who is available and interested in mentoring a student? It's also important to note that I would want any student coming in to have already proven to some extent their ability to contribute actively to the codebase in its current state. We're simply too small a team right now to do 'from scratch' mentoring at this point. As the codebase gets cleaner, I hope well be able (perhaps for next year) to have a much easier 'on-ramp' for the project with well-isolated tasks for beginners to get moving. But we're not there yet: the code is *much* cleaner and more modular than before, but it's still a relatively complex project to jump into right now. I do think that creating those 'easy on-ramps' is both feasible and important, we just haven't done it, and it won't happen in the next 9 days for sure. Cheers f From asmeurer at gmail.com Tue Feb 28 18:49:25 2012 From: asmeurer at gmail.com (Aaron Meurer) Date: Tue, 28 Feb 2012 16:49:25 -0700 Subject: [IPython-dev] Google Summer of Code In-Reply-To: References: Message-ID: You might consider just working under the umbrella of the Python Software Organization (assuming of course that they are accepted). That's basically all they do is serve as umbrella for projects, except for maybe a handful of core Python projects. I'm sure they won't mind if you put stringent restrictions on who you accept. Aaron Meurer On Tue, Feb 28, 2012 at 3:43 PM, Fernando Perez wrote: > Hi Thomas, > > On Mon, Feb 27, 2012 at 11:40 AM, Thomas Kluyver wrote: >> If we're interested in participating in Google Summer of Code this >> year, we need to be thinking about it. We have a list of projects >> people can have a go at here: >> http://wiki.ipython.org/Potential_projects >> >> In particular, I think these projects might be suitable: >> - A curses/urwid frontend, perhaps using code from bpython. >> - Flexible readline replacement (though I think we'd need to have a >> clearer idea ourselves of how this would work first). >> >> I imagine there are also things that could be done with the notebook. >> >> **9th March** is the deadline for organisations to apply. > > The real question is: how much *mentor* bandwidth do we have? ?I'm > unfortunately out of the loop, unless the mentee were to be already > someone very plugged into our development process, because I'm already > maxed out on ipython work for this summer. ?The DoD grant on > parallel/notebook integration will consume my available bandwidth this > summer, and whatever's left is not enough for the kind of dedicated > mentoring expected of the GSoC program. > > So of the potential mentors, who is available and interested in > mentoring a student? ?It's also important to note that I would want > any student coming in to have already proven to some extent their > ability to contribute actively to the codebase in its current state. > We're simply too small a team right now to do 'from scratch' mentoring > at this point. > > As the codebase gets cleaner, I hope well be able (perhaps for next > year) to have a much easier 'on-ramp' for the project with > well-isolated tasks for beginners to get moving. ?But we're not there > yet: the code is *much* cleaner and more modular than before, but it's > still a relatively complex project to jump into right now. > > I do think that creating those 'easy on-ramps' is both feasible and > important, we just haven't done it, and it won't happen in the next 9 > days for sure. > > Cheers > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From fperez.net at gmail.com Tue Feb 28 18:56:52 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Tue, 28 Feb 2012 15:56:52 -0800 Subject: [IPython-dev] Google Summer of Code In-Reply-To: References: Message-ID: On Tue, Feb 28, 2012 at 3:49 PM, Aaron Meurer wrote: > You might consider just working under the umbrella of the Python > Software Organization (assuming of course that they are accepted). > That's basically all they do is serve as umbrella for projects, except > for maybe a handful of core Python projects. ?I'm sure they won't mind > if you put stringent restrictions on who you accept. Oh, that's actually what I had in mind, as that's how we've operated in the past. I most certainly don't think we have the bandwidth right now to be a mentoring organization ourselves, as at the most we'd have room for one or two students. I didn't realize Thomas' link was about being a mentoring organization, sorry for the confusion. Cheers, f From takowl at gmail.com Wed Feb 29 07:32:51 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 29 Feb 2012 12:32:51 +0000 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) Message-ID: Some thoughts on the workshop I ran in Sheffield last night, introducing people to contributing to IPython. Hopefully this will be useful to anyone doing a similar event in the future. In the end we had 11 people besides me. The session was 1h45 minutes long, and I'd asked them to make sure Python and git were installed beforehand, and to make a github account. They worked in 5 groups of 2-3, each group tackling one quickfix bug. I showed a few slides to introduce what we were doing, then got them to read the bugs and pick which one they'd work on, then circulated to help different groups. Overall, I was very pleased with how it went. All 5 groups succeeded in submitting pull requests (one was finished off when the author got home). All the groups managed to get to grips with their issue, and most of them added automated tests as well, which I'd mentioned as part of the bug fixing process. Technology: * Everyone seemed to be OK with github, and there were only a couple of difficulties with git itself. One person had a Windows laptop, so rather than attempting to set it up with git, that pair worked on the other guy's Linux laptop. * The pair working with the Qt console had some difficulty getting the dependencies installed. One had an older version of Ubuntu without the necessary ZMQ, the other had Fedora, where I wasn't sure what the relevant packages were called. They worked it out themselves after a while. * Running the development version of IPython in a virtualenv proved surprisingly difficult. I'd assumed that many people would be familiar with virtualenv, but it caused some confusion. Clearer instructions would have helped with this (create virtualenv, activate, install IPython, move out of source directory, run). * I had the repository and the bug reports on a memory stick in case the Wifi failed, but happily it wasn't needed. Group work: * Group sizes of 2-3 work well: you can discuss what you're doing, but it's small enough that everyone is involved. We did a coding event with groups of 4 previously, and it felt like some people were just watching. * I'm not sure what the ideal teacher:student ratio is. I was kept busy steering people in the right direction, and I certainly wouldn't want to mentor many more groups by myself. But with a second mentor, maybe groups would have got help too quickly, and learned less than they did by trial and error. So approx. 1:10 was a reasonable number. * I think quickfix bugs were a good thing to do: small enough for newcomers to tackle in a couple of hours, but a concrete achievement - one person, on reproducing the bug they were working on, said "This is an *actual* bug" in a tone of mild surprise. It also meant that people had to get the codebase and run the development version. * People seemed quite at ease with the idea of adding tests for their bug - perhaps because many of them are professional coders (a number write Java or .NET at work, and do Python as a hobby). That's everything I can think of now - let me know if you have any questions about it. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Wed Feb 29 14:06:02 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 29 Feb 2012 11:06:02 -0800 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: On Wed, Feb 29, 2012 at 4:32 AM, Thomas Kluyver wrote: > Some thoughts on the workshop I ran in Sheffield last night, introducing > people to contributing to IPython. Hopefully this will be useful to anyone > doing a similar event in the future. First of all, many thanks!!! It's wonderful both that you did this and even more that you wrote this detialed report. Hopefully some of them will get hooked on ipython and will remain active, but even if they move on to other things, there is still value in their participation in the process. > In the end we had 11 people besides me. The session was 1h45 minutes long, > and I'd asked them to make sure Python and git were installed beforehand, > and to make a github account. They worked in 5 groups of 2-3, each group > tackling one quickfix bug. I showed a few slides to introduce what we were > doing, then got them to read the bugs and pick which one they'd work on, > then circulated to help different groups. Care to make the materials you used to introduce things available? I'm thinking if we can make this a 'sprint in a box', we'll be more likely to repeat these events... > Overall, I was very pleased with how it went. All 5 groups succeeded in > submitting pull requests (one was finished off when the author got home). Excellent. > Technology: > * The pair working with the Qt console had some difficulty getting the > dependencies installed. One had an older version of Ubuntu without the > necessary ZMQ, the other had Fedora, where I wasn't sure what the relevant > packages were called. They worked it out themselves after a while. Yes, we should provide copy-paste lines for the major distros with the right package names, to save people some time. > * Running the development version of IPython in a virtualenv proved > surprisingly difficult. I'd assumed that many people would be familiar with > virtualenv, but it caused some confusion. Clearer instructions would have > helped with this (create virtualenv, activate, install IPython, move out of > source directory, run). Yup, again a copy/paste mini-howto would solve this. > * Group sizes of 2-3 work well: you can discuss what you're doing, but it's > small enough that everyone is involved. We did a coding event with groups of > 4 previously, and it felt like some people were just watching. This matches my experience from multiple occasions, 4 should be avoided for actual coding. For a longer-term project it may be OK, but coding-focused work does seem to break beyond 3 people. > * I'm not sure what the ideal teacher:student ratio is. I was kept busy > steering people in the right direction, and I certainly wouldn't want to > mentor many more groups by myself. But with a second mentor, maybe groups > would have got help too quickly, and learned less than they did by trial and > error. So approx. 1:10 was a reasonable number. Interesting and useful. Your point about forcing enough trial and error on their own is a very good one. > * I think quickfix bugs were a good thing to do: small enough for newcomers > to tackle in a couple of hours, but a concrete achievement - one person, on > reproducing the bug they were working on, said "This is an *actual* bug" in > a tone of mild surprise. It also meant that people had to get the codebase > and run the development version. Yes, we need to do more/better triage for this kind of tasks. Many thanks for your leadership on this front already! > * People seemed quite at ease with the idea of adding tests for their bug - > perhaps because many of them are professional coders (a number write Java or > .NET at work, and do Python as a hobby). Glad to hear that, it should indeed become second nature. Again, many thanks for this excellent work; I'm thrilled at the amount of work you've put into improving our development process and community. Best, f From takowl at gmail.com Wed Feb 29 14:28:41 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 29 Feb 2012 19:28:41 +0000 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: On 29 February 2012 19:06, Fernando Perez wrote: > Care to make the materials you used to introduce things available? > I'm thinking if we can make this a 'sprint in a box', we'll be more > likely to repeat these events... No problem. I've just put the slides (ODP) here: http://archive.ipython.org/media/Contributing%20to%20IPython.odp Feel free to use & adapt any of it. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Wed Feb 29 14:46:25 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 29 Feb 2012 11:46:25 -0800 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: On Wed, Feb 29, 2012 at 11:28 AM, Thomas Kluyver wrote: > > No problem. I've just put the slides (ODP) here: > http://archive.ipython.org/media/Contributing%20to%20IPython.odp quick question: isn't it easier to run 'setup.py develop' than 'install' in the venv? I don't use venv for ipython development and instead run straight from the git repo, so I'm not sure. But my understanding was that this would help people shorten the edit/test cycle by not requiring re-installation in the venv after any changes. f From takowl at gmail.com Wed Feb 29 14:57:17 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 29 Feb 2012 19:57:17 +0000 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: On 29 February 2012 19:46, Fernando Perez wrote: > quick question: isn't it easier to run 'setup.py develop' than > 'install' in the venv? I don't use venv for ipython development and > instead run straight from the git repo, so I'm not sure. But my > understanding was that this would help people shorten the edit/test > cycle by not requiring re-installation in the venv after any changes. > I never use 'setup.py develop' myself, and I'm never entirely sure how it works (some symlinking, I guess), so went with what I knew. Also, I know it doesn't work when using Python 3 via the 2to3 install step, and I wanted to keep things consistent. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From fperez.net at gmail.com Wed Feb 29 15:02:56 2012 From: fperez.net at gmail.com (Fernando Perez) Date: Wed, 29 Feb 2012 12:02:56 -0800 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: On Wed, Feb 29, 2012 at 11:57 AM, Thomas Kluyver wrote: > > I never use 'setup.py develop' myself, and I'm never entirely sure how it > works (some symlinking, I guess), so went with what I knew. Also, I know it > doesn't work when using Python 3 via the 2to3 install step, and I wanted to > keep things consistent. Understood. I think for py2 use it's OK, but your poinnt about py3 is 100% valid, and given the need to run 2to3, I don't think there's a way out of using 'install' for py3 then. Cheers, f From asmeurer at gmail.com Wed Feb 29 15:22:30 2012 From: asmeurer at gmail.com (Aaron Meurer) Date: Wed, 29 Feb 2012 13:22:30 -0700 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: I agree with this. Virtualenv is for more hardcore development than was likely to be encountered at something like this. It's useful if you want to completely isolate yourself from your work, either because you want to test dependencies (or lack thereof), or because you need to keep a working environment even while you develop. For something like this, I would think that in most cases, installing would not be necessary at all, but it should be sufficient to just work straight out of the git directory. Aaron Meurer On Wed, Feb 29, 2012 at 12:46 PM, Fernando Perez wrote: > On Wed, Feb 29, 2012 at 11:28 AM, Thomas Kluyver wrote: >> >> No problem. I've just put the slides (ODP) here: >> http://archive.ipython.org/media/Contributing%20to%20IPython.odp > > quick question: isn't it easier to run 'setup.py develop' than > 'install' in the venv? ?I don't use venv for ipython development and > instead run straight from the git repo, so I'm not sure. ?But my > understanding was that this would help people shorten the edit/test > cycle by not requiring re-installation in the venv after any changes. > > f > _______________________________________________ > IPython-dev mailing list > IPython-dev at scipy.org > http://mail.scipy.org/mailman/listinfo/ipython-dev From takowl at gmail.com Wed Feb 29 15:27:09 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 29 Feb 2012 20:27:09 +0000 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: On 29 February 2012 20:22, Aaron Meurer wrote: > I would think that in most cases, installing would not be > necessary at all, but it should be sufficient to just work straight > out of the git directory. > I'm not sure that our test suite can be run without installing - and at least two of the five groups (those working on Python 3, and on the Qt console), needed to install it even to replicate their bug. Thomas -------------- next part -------------- An HTML attachment was scrubbed... URL: From takowl at gmail.com Wed Feb 29 15:28:15 2012 From: takowl at gmail.com (Thomas Kluyver) Date: Wed, 29 Feb 2012 20:28:15 +0000 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: On 29 February 2012 20:27, Thomas Kluyver wrote: > I'm not sure that our test suite can be run without installing - and at > least two of the five groups (those working on Python 3, and on the Qt > console), needed to install it even to replicate their bug. Where 'installing' includes setup.py develop (as far as I understand it). -------------- next part -------------- An HTML attachment was scrubbed... URL: From jtaylor.debian at googlemail.com Wed Feb 29 16:12:11 2012 From: jtaylor.debian at googlemail.com (Julian Taylor) Date: Wed, 29 Feb 2012 22:12:11 +0100 Subject: [IPython-dev] Introduction to Contributing workshop (Python Sheffield) In-Reply-To: References: Message-ID: <4F4E94AB.20607@googlemail.com> On 02/29/2012 09:27 PM, Thomas Kluyver wrote: > On 29 February 2012 20:22, Aaron Meurer > wrote: > > I would think that in most cases, installing would not be > necessary at all, but it should be sufficient to just work straight > out of the git directory. > > > I'm not sure that our test suite can be run without installing - and at > least two of the five groups (those working on Python 3, and on the Qt > console), needed to install it even to replicate their bug. > > Thomas > you can run py2 the testsuite without installing and even without X with: LC_ALL=C.UTF-8 PATH=$PWD/IPython/scripts/:$PATH PYTHONPATH=$PWD xvfb-run -s "-screen 0 1280x1024x24 -noreset" python $PWD/IPython/scripts/iptest -v; this is what the debian package does. I still did not have time to look at running py3 tests but it should be possible to run it from the build directory with a little wrapper script to call the entry point. Now that debian has py3 nose I should have a look at that. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: OpenPGP digital signature URL: From ellisonbg at gmail.com Wed Feb 29 19:17:00 2012 From: ellisonbg at gmail.com (Brian Granger) Date: Wed, 29 Feb 2012 16:17:00 -0800 Subject: [IPython-dev] MathJax 2.0 support Message-ID: Two MathJax related warnings: * MathJax v2.0 (the release) will NOT work with the notebook. I don't know what is wrong, but it is completely borked. But, the CDN latest 2.0.2 does work. * If you update your MathJax, you need to do a full browser cache clearing. A simple page reload will not work (at least in Chrome). Here is an issue to follow these things: https://github.com/ipython/ipython/issues/1313 Cheers, Brian -- Brian E. Granger Cal Poly State University, San Luis Obispo bgranger at calpoly.edu and ellisonbg at gmail.com