SOFA Changelog

What's new in SOFA 1.4.5

Aug 17, 2015
  • Bug fixes:
  • Fix bug when problem with imported data.
  • Fix to title and date concatenation code so doesn't break when title has non-ascii characters e.g. in Spanish (affecting Windows and Mac)
  • Reordered regression line plotting in js so appears on top of dots.
  • Added zero division error trap to spearman's test error output.
  • Fixed bug which prevented ods_reader from importing repeating rows at the end of a spreadsheet. Only repeated empty rows at the end are considered the end of the data.

New in SOFA 1.4.4 (May 12, 2015)

  • Bug fixes:
  • Fix bug resulting in Pearson's r being displayed instead of Spearman's rho. Fixed bug on some systems when saving a worksheet with spaces in name. Prevented numerous bugs related to quoting table names, fully qualified file names etc. Fixed bug with misuse of escape_pre_write on python code rather than normal content. Skew, and normality test now cope with the nan issue better e.g. sqrt of a negative number. Just says unable to calculate instead of displaying nan (not a number). skewtest function now copes with negative number as input to square root. Fixed bug when importing NaN text - now treated as a missing value in a numeric field. Removed bug which sometimes prevented Mac users from being able to successfully change the report name. Stopped making export folder if no output to export into it.

New in SOFA 1.4.3 (Mar 17, 2014)

  • Can import tab-delimited data.
  • More options for attractive charts and reports. Three new themes available - sky, prestige (screen), and prestige (print).
  • Better support for automation (i.e. headless, running without GUI) esp in international context.
  • Exporting to spreadsheet now relies on more robust code library (xlwt)
  • Easy to select or deselect lots of row stats measures at once.
  • Faster opening in many cases.
  • Bug fixes:
  • Minor tweak to PostgreSQL plug-in to handle timestamps without timezone.
  • Resolved bug when SQLite numbers are stored in a non-numeric field and processed for Chi Square test.
  • Importing csvs now copes better when only missing vals in sample of a field. Gives user the choice.
  • Fixed bug when doing a Row Stats table with a rows variable e.g. by Gender and some of the fields can't be calculated for some of the row categories.
  • Headless importing now works in the event of inconsistent data types in fields.
  • Headless importing now reads entire dataset rather than a sample to avoid need for (human) decisions.
  • Scripts no longer rely on translated arguments. Much safer to use on other machines with different locales.
  • Fixed circular import bugs which only became visible when other bugs occurred.

New in SOFA 1.4.2 (Feb 11, 2014)

  • Fixed bug introduced in 1.4.1 which stopped SOFA working with MS Access databases.
  • Fixed misc bugs associated with sort order of value labels when configuring a variable.
  • Default project path for sofa_db connection now copes with paths containing single quotes e.g. Grant's Machine.
  • Fixed bug which occurs when running scripts directly in a non-English locale. The locale folder stored in the script is now the one the GUI identified as the correct one. So translated config e.g. for Mean, Sum etc will match what it should.

New in SOFA 1.4.1 (Feb 1, 2014)

  • Scatterplots now have option of displaying regression line with slope and intercept details.
  • Export output plug-in (proprietary add-on) now gives option of exporting tabular data to spreadsheet.
  • Better positioning of legend in scatterplots made by matplotlib.
  • Tweaked algorithm for getting optimal min and max axis values so more sensible when no variation.
  • Bug fixes:
  • Fixed bug in charting when users use variable names SOFA used in underlying SQL queries.
  • Fixed bug when refreshing database table dropdowns when no databases visible - was assuming the databases were included in the number of items in the sizer.
  • Fixed bug when print content redirected to output file in Windows and Mac - now coverted to utf-8 byte strings directly by overriding sys.stdout and sys.stderr with codecs.getwriter etc. Immediate impact is fix for bug when recoding a table and field names include non-ascii characters.
  • Fixed up fonts used so always look good on all systems.
  • Fixed bug which can occur when designing a new table. If we recode it before clicking the Update button, SOFA thinks we are trying to override another table of the same name. This is because SOFA started out thinking our table had no name and was never updated to tell it otherwise.
  • Minor changes to enable translation.
  • Fixed bug when importing empty pairs of double or single quotes. These were already being de-escaped (as a side-effect of the approach necessary to handle internal quote escaping in the csv module) and turned to solo quotes - and thus evading the check for blank raw vals which would have been turned to NULL.
  • Fixed bug giving error message for too many rows instead of too many columns when too many columns e.g. in Chi Square test.
  • SOFA now checks very early to see if you've installed SOFA under a local user folder instead of a program folder.
  • Fixed bug in PostgreSQL plug-in when working with a numeric field lacking a defined decimal points or numeric precision setting.
  • Show scatterplot minor axis ticks more readily so better when fewer distinct x values.
  • Scatterplots cope with absence of variability in an axis by forcing a different min and max for that axis.

New in SOFA 1.4.0 (Dec 17, 2013)

  • Cleaner interface for viewing, saving, and exporting output.
  • Data export to spreadsheet plug-in now automatically exports as csv as well as xls.
  • Data importing copes with spaces at the end of dates - trailing spaces are removed and the value is treated properly as a date.

New in SOFA 1.3.5 (Oct 14, 2013)

  • Fixed bug in histogram output when limited data spread. Error caused by miscalculation of significant decimal points required for display.
  • Fixed bug stopping late-added title details appearing when exporting output. The demo output is refreshed first so the source file is forced to be up-to-date. Probably needs a proper tidy-up some day but this works well in the mean time.
  • Fixed bug in exporting to desktop folder in fix_pdf - need to strip end off folder name when no AM/PM under localisation used.
  • Fixed various bugs associated with exporting output. When copying output, message about keeping form open now names form it means (to reduce confusion).
  • Fixed bug when using a project after it has just been deleted (by pressing cancel in select projects dialog after having deleted the currently active project).
  • Fixed bug which meant "Show Results" and "Add to report" options were displayed when setting up a project.
  • Fixed bug when cancelling a variable details selection in a project.

New in SOFA 1.3.4 (Jul 23, 2013)

  • Bug fixes:
  • Fixed bug with calculation of mean with MS SQL Server data (now explicitly cast as float to avoid integer result).
  • Fixed bug in ANOVA output for precise (as opposed to speed) - it used to try mixing Decimals and other numeric types unsuccessfully.
  • Fixed bugs with chart data gathering queries so works in MS SQL Server properly. Also cleaner for the others in any case.
  • Fixed bug in underlying code if unique=False ever applied with scatterplots (currently never but it was still, technically, a bug).
  • Fixed bug in scatterplot SQL which affected MS Access and MS SQL Server (can't use aliases in group by etc).
  • Adjusted y-title position in dojo scatterplots to avoid it being cropped.
  • Fixed bug when Postgresql date date being displayed as a category (couldn't calculate a length of a datetime.datetime object).
  • Fixed layout bug when report table resized after Add to Report checkbox hidden. Now freshens layout when checkbox reappears.
  • Fixed bug preventing charts from being produced when linked to MS Access.
  • Fixed bug adding large delay to display of output when linked to MS Access.

New in SOFA 1.3.3 (Apr 6, 2013)

  • 95% confidence intervals now added to ANOVA and t-tests. Also right justified numbers in associated output.
  • Can now sort by category labels in clustered bar charts, line charts, area charts and box plots.
  • Area charts can also be sorted ascending or descending by count/mean/sum.
  • The series and category are now displayed in tooltips e.g. Italy, 20-29 for clustered bar charts, multi-series line charts, and box plots.
  • This is especially helpful when there are lots of categories and/or series.
  • Improved statistics output footnotes. Borders on bar-type charts are now optional.
  • This can be useful when bars are very short.
  • Chi square clustered bar charts can cope with higher default limits for number of values. Importing field names with more than 90 characters prohibited at the point of import rather than causing problems later.
  • The group by max number of values is now controlled by a single my_globals setting (making it easier to override).
  • The default settings for some remaining max values have been increased.

New in SOFA 1.3.2 (Jan 28, 2013)

  • Minor GUI bugs on start screen fixed.

New in SOFA 1.3.1 (Jan 10, 2013)

  • Adding sum as an option for charting e.g. a line chart showing total income per month by product.
  • Matplotlib scatterplots now have optimal min and max settings calculated for their x-axis.
  • Added footnote to Wilcoxon output explaining that different statistics packages may report the test statistic differently.
  • Misc fixes to chart layout including left margin offset.
  • Easier to add new variable definition files from within dialog for choosing them.
  • Modified recode column labels and help content to reduce confusion about which columns to enter range information into.

New in SOFA 1.3.0 (Nov 5, 2012)

  • Added Mode as an option to Row Stats report tables.
  • Line and area charts can show major labels only as an option.
  • Pie charts now have option of displaying count and percentage (not just in the tooltips as at present).
  • Histograms use consistent bins when charted by a second variable.
  • Better placement of y-axis title when wide labels.
  • Pie charts keep consistent colours even if sorted by count rather than value or label. Better message when adding new reports if required subfolder with javascript and background images is missing.
  • Only show message now if a problem.
  • When trying to export report, SOFA checks for expected subfolder as well (otherwise dojo fails for any charts and export fails).
  • SOFA prevents attempt to export report if no report file (yet).
  • No longer displays View or Export Report buttons on Projects dialog.

New in SOFA 1.2.2 (Sep 20, 2012)

  • Restored standard deviation option to row stats report tables.
  • Fixed bug which meant row % was appended multiple times to config col dialog (until session closed).
  • Restored PostgreSQL functionality by fixing faulty psycopg import statement.

New in SOFA 1.2.1 (Aug 29, 2012)

  • Fixed nasty bug breaking demo report tables. A casualty of the changes to the independent display of titles from report tables in 1.2.0 so wide titles didn't mean wide table cells.
  • Fixed bug with display of percent symbols in report tables.
  • Fixed bug with Data List reports - wouldn't update display after changing sort order of a variable. Sort by value now works properly in Data List reports.
  • Can now handle excessively long values being used as categories in report tables or charts etc.
  • Checks are also now made for excessively long category variable values. If encoding problems try to use the field encoding e.g. iso-8859-1.

New in SOFA 1.2.0 (Aug 18, 2012)

  • Now able to export output as PDFs and images (if export_output plug-in installed - Windows and Linux only so far)
  • Scatterplots can have more than one series e.g. different coloured male and female dots on same plot.
  • Can now sort by individual columns within a data display report table.
  • Report tables of summary statistics e.g. mean, median, sd, now show the measures across columns instead of down rows. Easier to compare results and notice difference. The demonstration tables displayed when configuring report tables now use real data instead of random data if the data source is small enough to make updating fast. The "Show Results" button becomes "Add to Report" when report tables are able to use live data for examples (and the "Add to report checkbox" is hidden).
  • Add to report now defaults to False and remembers the last setting throughout the user session. Repositioned some standard GUI items to increase logic of placement and speed of use. Added IQR (Inter-Quartile Range) to the Row Stats Table.
  • Can now do a boxplots of a single variable (not requiring a variable for it to be By).
  • Now save and show cropped matplotlib charts. Scatterplots are a better size. Excel importing copes with faulty dates better and tells the user where the problem is.
  • Filter dialog now checks if user wants to apply a filter when the settings haven't been changed.
  • Prevents inadvertent filtering to null.
  • Better font sizes in auxiliary clustered bar charts (matplotlib). GUIs no longer update if the user selects the same database as is already selected.

New in SOFA 1.1.7 (Jul 6, 2012)

  • Fixed bug encountered when importing spaces in fields.
  • Fixed bug when missing values in some fields in a boxplot with multiple series.
  • Table design changes now cope with pre-existing sofa id index and demo values no longer updated on exit (inadvertently via on_show event).
  • Fixed bug in tooltip display of averages in general charts - no longer rounds to lower integer.
  • Charts of averages don't show percentages in tooltips.
  • All matplotlib histograms, including those in stats display such as for one-way ANOVAs, now cope with sigma of 0.
  • Fixed bug calculating percentages where all values in a chart (of a series) are 0
  • Fixed bug in showing rotate when changing to clustered bar charts.
  • Fixed bug in ods importing where display of sample values didn't include repeated cells (only showing the first value).
  • SQLite now correctly identifies more types as numeric.

New in SOFA 1.1.6 (Jun 22, 2012)

  • Fixed ODS import bugs when encountering fields formatted as fractions, boolean, percentage etc.
  • Fixed bug stopping linked images external to the html e.g. generated by matplotlib, from displaying in the internal GUI if the report path was different from the default report path. Fixed bug when running scatterplots and histograms with chart by (because of use of dd object which cannot be used headless).
  • Fixed bug in charts dialog where second variable drop down would sometimes be overly restrictive when doing a chart of average values.
  • Fixed bug where old pycs can interfere with Windows upgrades.

New in SOFA 1.1.5 (May 28, 2012)

  • Charts now have the option of rotated (vertical) x-axis labels. This can be useful for longer labels.
  • Scatterplots now focus on the data better by starting axes just below the minimum x and y values of the data unless the value is close enough to 0 to make it worth using 0 anyway.
  • Numeric values are right justified in data tables.
  • Kurtosis values in the normality test include the Fischer adjustment (subtracting 3).
  • Duplicated field names in imports are given unique suffixes and allowed (now that they are unique). Excel importing now handles times without dates.
  • More date formats are accepted when importing data. Better guidance on data preparation before importing data.
  • More robust handling of variable definition files if corrupted. Note: if upgrading on Linux, the two user folders (sofastats and sofastats_recovery) may be shifted from inside your home folder to a better location e.g. "/home/username/Documents" if free desktop standards are supported. After upgrading you may wish to manually replace the contents of the new folders with the contents of the old ones.

New in SOFA 1.1.4 (Feb 24, 2012)

  • Fixed bug where getting observed values e.g. for chi square test, fell over when one field in pair had missing values while the other didn't.
  • Fixed bug in calculation of upper and lower whiskers in box plots.
  • Single bar charts don't show a bar title anymore - only needed if multichart.
  • Fixed bug which only changed variable definitions when the extra settings dialog was closed with OK and didn't ever set it otherwise e.g. when changing the selected project. Now copes with newer versions of matplotlib on Linux.
  • No longer stores empty strings as variable labels if user doesn't enter a label.

New in SOFA 1.1.3 (Dec 19, 2011)

  • Better support for non-English translations.

New in SOFA 1.1.2 (Nov 24, 2011)

  • SOFA now copes with non_English installations much better. SOFA on Windows can still generate messages in the non-console version (before the GUI appears) without a risk of an error.

New in SOFA 1.1.1 (Oct 10, 2011)

  • More sophisticated extraction of cell values from ODS spreadsheets. Now copes with formatted content of cells and other complex cases by handling subelements in the XML.

New in SOFA 1.1.0 (Aug 22, 2011)

  • Fixed bug when trying to display feedback on resizing operation on data table from dialogs other than data select.
  • Fixed regression when running data list report tables.

New in SOFA 1.0.7 (Jul 28, 2011)

  • Fixed bug in chi square when no labels set for numerical variables. Needed to convert value to unicode before using as label.
  • Fixed bug when importing datetimes with 'T' as the separator between date and time.
  • Fixed bug caused by SQLite queries sometimes returning strings instead of floats when extracting REAL (numeric) data. Fixed it where it affected Row Stats medians and std devs; and statistical tests.
  • Fixed bug when uwhisker and lwhisker not set. Also copes better when no boxes are displayed in boxplot.
  • Handling Python 2.6 unicode keyword bug.
  • Replaced pprint.pformat where it messes up unicode e.g. user paths with non-ascii characters. Misc other changes to fix internal issues.
  • Fixed bug allowing None to be displayed in Val A and Val B drop-downs under Group by e.g. ANOVA.
  • Config dialog in Report Tables widened slightly when needed to display title.
  • Fixed bug when decimal entered into value label list for an integer field.
  • Fixed CSV import bug when trying to guess whether a header or not.

New in SOFA 1.0.6 (Jun 4, 2011)

  • Fixed bug preventing comma being used as decimal separator when importing data.
  • Fixed bug when making line charts with averages - shows smoothed data line and trend line appropriately. Also only enables or disables checkboxes for smoothed data line and trend line where appropriate.
  • Better handling of comtype errors.
  • Fixed bug in histogram code when no default limits supplied.

New in SOFA 1.0.5 (May 16, 2011)

  • Fixed bug occurring when user selects a google docs spreadsheet and clicks on download after manually selecting a spreadsheet but without manually selecting a worksheet.
  • Fixed bug with report tables which occurred sometimes when a field value was the same as a field name.
  • Fixed bug when pie chart label has new line characters in it.
  • Adjusted y-axis placement on bar charts so not truncated in some cases.
  • When importing ODS data without a header, and responding to a data type inconsistency with Cancel, the progress bar is now reset to the start.
  • Fixed bug when saving projects in Windows with different name (albeit the same name if case insensitive). Would not appear in projselect list and would be unable to reopen projselect.

New in SOFA 1.0.4 (Apr 13, 2011)

  • Added a new "Get Started" button to main form and emphasised the most important buttons.
  • When importing csv files, SOFA now sets the default for 'Has header row?' according to a review of the sample contents.
  • On exiting for the first time, users get option of giving brief feedback.
  • Added feedback link to main form.
  • Exit control added to all forms where appropriate.

New in SOFA 1.0.3 (Mar 19, 2011)

  • Bug fix when importing from ODS any data which could potentially be a year e.g. 2631.
  • Report quality histograms no longer leave out values falling right on the upper limit.
  • Two-tailed vs one-tailed corrections in output display.
  • Fixed problem with table names (esp safetblname) surviving test for SQLite validity and breaking future tests.

New in SOFA 1.0.2 (Feb 9, 2011)

  • Fixed bug when reporting on datetime fields as rows or columns in report tables in MySQL, PostgreSQL, Access, and SQL Server.
  • Fixed minor bug which meant MySQL importing failed on Macs because it didn't recognise the platform.

New in SOFA 1.0.1 (Feb 3, 2011)

  • Fixed bug preventing single reports from having multiple styles.
  • Fixed error in O'Brien's homogeneity of variance test.

New in SOFA 0.9.25 Beta (Jan 24, 2011)

  • Fixed numerous recode bugs - mostly to do with application of recoded value labels.
  • Fixed bug when making a new table with an existing name. Now stays open to give user choice as to what to do next e.g. change table name.
  • Fixed misc bugs when deleting/adding/renaming tables while a database other than the default SOFA database is selected.
  • Fixed bug running frequency table using MySQL where the category items are long integers.
  • Fixed bug where Data List report selected and then the database is changed.

New in SOFA 0.9.24 Beta (Dec 23, 2010)

  • All lines in multi-line text cells are now imported from ods spreasdsheets correctly.
  • Errors when getting project settings file at start return useful message and don't fail because tried to use msgbox before the GUI application is running.
  • Better handling of errors when identifying date format. Falls back to a reasonable default.
  • Fixed error preventing message being shown when unable to change database details e.g. selecting a different db in the drop-down.
  • Fixed bug in legend of auxiliary clustered bar charts when long value labels. Now has automatic line splitting.
  • Correct initial display of csv data when importing if missing cells in some rows.
  • Majorly reduced impact of bug when creating report tables using numbers with more decimal points than python displays when converting to text e.g. into an SQL statement ready for execution.
  • CSV importing now provides useful error messages if actually an Excel spreadsheet saved as a csv with Excel features preserved (i.e. a faulty csv file). Also copes better with faulty delimiters being manually supplied.