The Software Sustainability Institute

PyConUK afforded me a great oppportunity to converse with fellow technicians, including those working in HE.  Carwyn, based at Bangor University, reminded me about the Software Sustainability Institute, based at the universities of Edinburgh, Manchester, Oxford and Southampton.  Whose aim is to support better research by helping researchers to build and use better software.

http://software.ac.uk/

Micro Python – shrinking Python down to run on a micro controller (Damien George)

Damien George, a researcher at the University of Cambridge, has rewritten Python to be optimised for running on a micro controller.  For example, the small computers that you might find in your washing machine, sometimes only have 64kb of RAM, so are generally controlled by programs written in C.

MicroPython is implemented on Python 3 and includes the usual Python features, such as:

  • floating point
  • complex numbers
  • bignum
  • math apps
  • generators
  • classes

Uses 528 bytes of RAM at standing and MicroPython will run on various operating systems as well as bare metal.

There are some differences, like not redefining built-ins functions and Micro Python uses garbage collection.  For more information https://github.com/micropython/micropython/wiki/Differences

The open source project at: http://github.com/micropython has been well received with over 1200 stars and 170 forks.

The Pyboard

  • is Python on bare metal, USB port, SD card port, accelerometer, 192k RAM or can can run stand alone from a battery.
  • made by Geltech
  • £28 per board
  • Light version is coming that is a lot cheaper, expected to be around £20

More information: http://micropython.org/

How does a spreadsheet work? A tour of the codebase of Dirigible, the Pythonic spreadsheet by Harry Percival

As always an entertaining speaker.  Harry gave us a world wind tour of the code related to a end of life, open source, project https://github.com/pythonanywhere/dirigible-spreadsheet

He also encouraged any self respecting Pythonista to sign up and register for an account at  www.pythonanywhere.com.

Tip: Did you know you could add a name space to eval commands, to limit their scope.

Plot.ly

Talk entitled: Collaborative, streaming, 3D, and interactive matplotlib, ggplot2, and MATLAB plots in an IPython Notebook with Plotly by Chris Parmer & Carole Griffiths

The idea behind plot.ly was to bring web standards to graphing and data analysis.

Reason for being: Experiencing teams making graphs in various tools and trying to share it them.  This could literally be a case of working with a dedicated graphing tool and then creating and emailing screen shots, as their colleagues all used different tools.

The team wrote a wrapper for iPython to translate graphs into a plot.ly based graphs.

Graphing news feed- https://plot.ly/feed/#sob

Overview

  • creates shareable d3.js graphs links that are interactive
  • includes plotting streaming data
  • limited by the browser – 50,000 points before browser slows – can get to 200,000 points in some cases using optimisation of rendering overlapping points
  • like github for graphs
  • aimed at small to medium data at present
  • currently around 20 developers – doubling ever few months over the last 6 months
  • 18 month old project
  • can have it installed locally on a private network – paid for model. Free tool, can create a limited number of private graphs, say 20.

Wrappers/APIs

Various wrappers exists – https://plot.ly/api/

  • ggplotly for R
  • matplotlib
  • MATLAB
  • plot.ly – has a spreadsheet like interface online too.
  • any graph can be edited via code or through online GUI

User base

  • data journalists
  • engineers
  • etc

Various output formats, such as svg, png, available as RESTful calla.

Open source library – cached request model – to handle connectivity breaks.

Can pull graphs back into Python. Also can extract JSON output of the data used in the graph.

No limit on the data storage at this stage.  1/2 million rows have been uploaded say

Technology

  • d3.js for the graphs
  • Uses map.js – for adding notations/formulas to graphs
  • Plot.ly is  a layer written on top of d3.js

JavaScript makes this graphing tool available to more people, as the technology is already in their browser.

Roadmap

  • Better data API
  • Adding datasets directly to plot.ly – several graphs referencing a single dataset.
  • Symbolic formulas, to plot transformations say in Physics
  • To keep a trace of the transformations, all the steps to transformation.
  • Improve 3D maps