A delayed report on the meeting of 10th January, 2012

4 views
Skip to first unread message

Tibs

unread,
Jan 26, 2012, 3:30:56 PM1/26/12
to cam...@googlegroups.com
Present were: Tom, Joe, Bryan, Graham, Jacob and (from Enthought) Robert, Pietro, Javier, Simon and Ioannis. It's quite likely I got some of those names wrong, for which apologies if so.

So, the presence of so many people from Enthought (who now have Cambridge offices) was a nice surprise.

Probably because of my lack of announcement of the meeting, no-one formally had any talks ready. However, Bryan volunteered to give an overview of IPython, particularly looking at the new notebook interface (which they had blogged about recently). He went over basic use of IPython:
  • ls, cd, etc.
  • tab completion
  • !<system command>
  • object? for help on an object, object?? for source code if available
  • matplotlib integration (and pylab interface) and the plot command
He then demonstrated a notebook he had prepared earlier. Basically, this uses a browser interface to a local server running a Python interpreter to allow producing a set of Python snippets which are evaluated, and may be re-evaluated, to give a document as a whole. It uses 0mq (zeromq) to do the communication, and the tornado webserver, as well as a recent webbrowser. Bryan was running it on Windows, although that might not have been quite properly supported at the time (but it seemed to work well). It looked as if it would be very useful in the scientific sort of environment, in particular.

Some discussion ensued on how it presented its plots, and whether it would be feasible to have plots in the document that could be interacted with. Mention was made of flot (http://code.google.com/p/flot/) as a very useful javascript plot library. Mathjax (http://www.mathjax.org/) was also mentioned as a good solution for producing typeset mathematics on webpages.

Enthought pyreport (http://gael-varoquaux.info/computers/pyreport/) was also mentioned, although it is perhaps not being developed - it is a literate programming solution using reStructuredText in comments, with output to PDF.

Someone (maybe Graham?) also suggested that if one didn't want something as sophisticated as IPython, but just wanted tab completion, then fancycompleter (http://pypi.python.org/pypi/fancycompleter) might be all that is needed.

We then spent some time talking about favourite Python tools:

objgraph (http://mg.pov.lt/objgraph/), particularly for finding objects that have not been garbage collected

xdot (http://code.google.com/p/jrfonseca/wiki/XDot), which is an interactive viewer for graphs written in Graphviz's dot language. It's used by objgraph, and we use it at my work.

pyflakes (http://pypi.python.org/pypi/pyflakes) of course (although I also use pylint from logilab, http://www.logilab.org/857)

runsnakerun (http://www.vrplumber.com/programming/runsnakerun/) which is a viewer for Python profiling information.

shedskin (http://code.google.com/p/shedskin/), which compiles a subset of Python, and is apparently now powerful enough to be very useful.

rpythonic (http://code.google.com/p/rpythonic/) was discussed as a project which may also be of interest, particularly as it can generate ctypes wrappers, and can be used for generating stuff for Android.

I pushed sphinx (http://sphinx.pocoo.org/) and http://readthedocs.org/, both of which are invaluable for documenting projects.

psutil (http://code.google.com/p/psutil/), a cross-platform "ps" and many other tools. `Which led to winpdb (http://winpdb.org/), a very useful Python debugger, and nothing to do with Windows. And that led to heapy (http://guppy-pe.sourceforge.net/#Heapy), which is a tool for analysing memory usage, although it's not terribly simple to use, and may not scale.

I suggested grin (http://pypi.python.org/pypi/grin), which is a Python "better than grep" tool, at which point Robert pointed out he was the author. So thanks to him for a tool I use every day. Someone else also recommended Robert's line_profiler (http://packages.python.org/line_profiler/) which, as it sounds, does profiling on a line-by-line basis.

There was some discussion of cwrap, https://github.com/enthought/cwrap, a tool for generating Cython skeletons (.pxd) directly from .h files. It uses gcc/xml, so it supports C++ rather than C as such.

Finally, we looked up android-scripting (http://code.google.com/p/android-scripting/), which actually led to us all watching the phone-in-a-rocket videos on that page.

And after that, the meeting closed, and many people went on to the Flying Pig pub round the corner, but I went home, so can't say more on the events of the evening.

Tibs

(typed in Google's new Google Groups editing interface, which lacks a Preview button, so I shall just have to hope. I shall be interested to see if it recognised all the URLs as such, or only the ones I highlighted as such before I got bored.)
Reply all
Reply to author
Forward
0 new messages