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