User Tools

Site Tools




Extensions and Piracy

Start with the approach which minimises hassle to people who want to pay. Handle piracy by making cracked versions unnecessary (hardship - contact me for the extension for free). If lots of money is being lost to piracy, and the reduction of sales by introducing anti-piracy measures didn't outweigh it, consider using encryption/internet checking/registration processes antipiracy.

People just select the price to pay and click buy now at http://localhost/SOFA/website/get_extensions.php. Or email me for a free version because of hardship. Let them know it may take up to 48 hours to send the extension (although typically much quicker).

A painless anti-piracy measure (more for detection that prevention) I can use from the start is to tag extension modules with a string which can be decrypted by me to identify the person it was originally supplied to.

Tell hardship users they can help support the project by voting for it (Like it/Google+ it/Sourceforge/Freecode), or otherwise spreading the word (including tweeting, blogging, word of mouth).

A module is supported for 1 year from purchase (although it may well keep working for longer if the code hasn't fallen out of date).

Open Core Extensions

Save as Image/PDF

  • Use SOFA Python code to split output into individual images (split chart series into individual charts). Each will have the massive html header (css and javascript etc) plus a tiny end bit (close body and html tags). Store in _internal folder.
  • Also split out any text in same order so that numbering can be sequential. Store names inside html original so we can name “001 - Gender by Ethnicity.png” etc.
  • Use wkhtmltopdf to convert into mini PDFs. Uses WebKit to render into a guaranteed good result. wkhtmltopdf. Can crop to desired size as per wkhtmltopdf –page-height 85 –page-width 80 –margin-top 0 –margin-right 0 –margin-bottom 0 –margin-left 0 file:///home/g/Documents/sofastats/reports/cropthis.htm Desktop/test.pdf
  • Use ImageMagick to convert into mini PNGs.
    »> im = PythonMagick.Image()
    »> im.density(“600”)
    »> im.write(“Desktop/test.png”)
    NB don't instantiate image with content otherwise at 72dpi no matter what you change later. Open empty. Set density THEN read image.
  • Put all images and any text into a named folder.


Wkhtmltopdf - Packaged for Ubuntu and cross-platform. An active projects but some tricky bugs too: Problems with space between characters

ImageMagick - Packaged for Ubuntu and cross-platform.

PythonMagick -

User suggestion (Marek Paweł Karczewski Maybe you could make an option: “Export charts to separate files” and “Export tables to separate files”. Then save each table or file to a separate file, preferably in pdf format. For instance me; I have written a thesis in latex, using lyx. I needed to show a couple of charts. Lyx likes the input format of graphics to be PDF.

NB enable images saved to be in high resolution for publishing purposes.

Also be aware of alternatives:

Gael Varoquaux (core developer for Mayavi2) has developed a very helpful ad-hoc implementation of “pyreport”.

pyreport is a program that runs a python script and captures its output, 
compiling it to a pretty report in a pdf or an html file. It can display the 
output embedded in the code that produced it and can process special comments 
(literate comments) according to markup languages (rst or LaTeX) to compile a 
very readable document.

It can also embed pretty plots from captured matplotlib output within the compiled document. Really, quite neat:



Ability to Save and Reuse Recodings inc Batch

Add 4 buttons - Load, Save, Save Batch, Run Batch.

Data Management Tools e.g. col cats to row ids

The SQL is easy enough - it is the interface that would require the work.

Save Output to Word etc

It would be good to be able to export the output to a Word and Open Office file.

Ability to push output to the cloud and email someone a link.

R extensions

Daniel Myall may be able to advise

Apparently not as easy as it may seem

Export Data

The ability to export data to spreadsheets and other statistics applications.

Perhaps export as HTML tables which Excel can read native just fine. Or CSV. The main Excel writing library doesn't support Python 2.7 or 3+.

HTML as Excel best - open fine in Open Office as well as Excel and can handle all the things that CSV will have problems with.

Automatic Backups

Automatic prompting to backup default data on exit (date-time stamped)


  • plug-in to assist with transferring data and vdts to students e.g. it looks for SOFA in the obvious place (the sofastats folder under the user folder) and carries out the update (perhaps renaming the existing files with a datestamp suffix rather than deleting them).
proj/opencore.txt · Last modified: 2012/09/07 11:48 (external edit)