SOFA Statistics - Developing a Python Application

download SOFA Statistics - Developing a Python Application

If you can't read please download the document

Transcript of SOFA Statistics - Developing a Python Application

SOFAPaton-Simpson & Associates LtdAuckland, New Zealand

SOFA Statistics

Developing an Application in Python

Grant Paton-Simpsonsofastatistics.com

SOFAPaton-Simpson & Associates LtdAuckland, New Zealand

Overview

Focusing on the SOFA application

Touching on topics like: GUI toolkits

Integrating web tech into desktop

Internationalisation

Resources for open source projects

Promoting a project ...

Please ask questions

SOFAPaton-Simpson & Associates LtdAuckland, New Zealand

SOFA Introduction

Statistics technical, intimidating, and essential

SOFA Making Statistics Open For All

Desktop reporting, analysis and stats package

Gap in marketfree and open source

ease of use

learn as you go

beautiful output

SOFAPaton-Simpson & Associates LtdAuckland, New Zealand

Introduction cont ...

Good response - over 25,000 downloads so far

Runs on Windows, Mac, Linux

Released under AGPL3 open source licence

Built with Python, wxPython, Matplotlib,
and the Dojo Javascript/SVG library

SOFA Architecture

SQLiteMySQLMS Access

Linking

Python scripts ready to glue together

PostgreSQLSQL ServerExcelCSVGoogleODFImporting

HTML with Javascript and dynamic images. Printable and web-ready.

Display within SOFA GUI

SOFA Architecture

SQLiteMySQLMS Access

Linking

PostgreSQLSQL Server

HTML with Javascript and dynamic images. Printable and web-ready.

(no GUI)

HTML Report Table Output

Complex tables possible nesting, row and col %s, std dev, raw data etc

Can copy and paste into spreadsheet

Themable and ready for sharing

Dojo Javascript/SVG Toolkit for Charts

Needed to build single Dojo script, modify, and minify

Needed decent web rendering engine for wxPython on each platform

Matplotlib for Auxiliary Charts

Histograms, clustered bar charts, and scatterplots

Boomslang for clustered bar charts

Cross-Platform wxPython GUI Toolkit

Native widgets

If you can figure out how, you can probably do it

Internationalised

Have to think unicode at every point

Use standard approaches pot, mo files, gettext, _() function

Launchpad makes it easy

English, Croatian, Spanish, Russian, Galician, & Breton so far

Encouraging Responses

Demonstration