Python Anywhere is a fascinating
new web service (currently in beta) from the good folks
at Resolver Systems.
I’m using it to host the Django port of my
AboutTag
web application, used, among other things,
for searching Fluidinfo, but I’ll blog separately about that.
I first came across Resolver Systems a few years ago when their
main focus was on
Resolver One
a spreadsheet that you program in Python.
This is so obviously a good idea I was strongly rooting for
Resolver, but competing successfully against Excel,
whatever the merits of the alternative,
was always going to be a tall order, and last time I heard
Microsoft still had the edge in the spreadsheet market.
Python Anywhere grew out of a project Resolver ran to produce a web
service—Dirigible—based around
the same fundamental concept of a python-programmable spreadsheet.
Digirible is also notable for its support for grid computing, so it
offers potential to perform really large calculations while exploiting a
spreadsheet structure and all the goodness of Python, Numpy and
parallelism.
Python Anywhere retains Dirigible’s concept of writing python in a browser,
but dispenses with the spreadsheet.
So in a nutshell, Python Anywhere is marketed as a Python console
you can access through a browser. But it’s actually more than that.
When you log into the Python Anywhere site, your primary choice is to
launch any of half a dozen different kinds of interactive Python
consoles (Python 2.7, Python 2.6, Python 3.2, IPython 2.7, IPython 2.6
or IPython 3.2). These are all well configured in terms of libraries,
and seem to work well, and they absolutely allow you just to use Python
interactively. But so far, I’ve made very little use of any of those,
for the same reason that most of the time when I write Python on my
own computers I spend comparatively little time in the interactive
Python consoles, and I when I do, I prefer to launch them from a
terminal (or Emacs).
With Python Anywhere, I almost always use the seventh option, which is
to launch a Bash console. From there, I have access to all the same
Pythons, and most of the Unix (Linux?) tools you’d expect.
Including Emacs.
Including Emacs.
I am one of those people who spends more time in Emacs than in all the
rest of my applications put together. And while Emacs in a console in
a browser isn’t perfect, the achievement in making it work at all (and
quite well) is remarkable, and the result is pretty good. Even if
Python Anywhere did not actually offer Python, for me the availability
of Emacs, from (almost) any device, through a browser would be very
interesting.
But while I prefer to do it from bash than in a Python console, the
availability of well-configured Pythons through a browser is also
fascinating.
One clear use case is access from iPads, iPhones and other devices
that don’t allow you to run Python on them. Although this isn’t
working particularly well yet, this is clearly in Resolver’s sights,
and I think will be most useful. (Even I have to admit, however, that
Emacs and the iPad/iPhone don’t seem like a match made in heaven; I
can see I might have to dust off my vi skills, though maybe the lack
of an escape key on an iPad is a problem even for vi? Presumably it
can be rebound?)
The Python Anywhere Platform also offers other services. There’s
Dropbox integration for transferring files, and good access to things
like Github. There’s the ability to schedule jobs (cron, essentially)
and they are trialling hosted web applications through Django and
other WSGI-compatible frameworks. My port of AboutTag (the new version is available at
ArtOfTagging.com, which redirects to
Python Anywhere) is running on this, and looks great. Now obviously
there are lots of web hosting platforms around, with various pros and
cons, but I’m not aware of any others that you console access through
a browser, which I can see being handy for all those critical fixes
when your only available device is a friend’s machine,
or a phone or an internet café.
I don’t know what the future holds for Python Anywhere, but it’s a
fascinating project from some very smart and friendly
people, so if you like Python (or Emacs, (or vi) or Bash, or any of
that command-liney goodness), head on over and request an invitation
to the beta.