SOFA Statistics had its 100,000th download today, which is a doubling in just over a year. And more features and user experience refinements are in the pipeline. So please spread the word. There is no advertising budget so we need you to blog, tweet, like, +1 etc. Thanks!
Archive for the ‘general’ Category
More steady improvements to SOFA:
- Added ability to chart percentages as well as frequencies.
- Chart series now all have consistent y-axes (trellis style).
And there have been some bug fixes:
- 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.
Charts now have the option of rotated (vertical) x-axis labels. This can be useful for longer labels.
Note – if you have upgraded SOFA rotated labels may not work unless you update the sofastats_charts.js file in your local sofastats folder e.g. C:\Users\username\sofastats\reports\sofastats_report_extras with the sofastats_charts file for sofastats_report_extras
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.
And for Ubuntu users, a much nicer launcher icon :-). Actually, it’s a set of icons at different resolutions so that SOFA always looks good on the launcher.
Other changes include:
- 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.
- Fixed small bug stopping column labels displaying in data table view.
- Fixed bug in recode operation which would wipe the table if any errors at all where encountered trying to turn the user recode config into SQLite update clauses.
- Fixed bug in getting structured data e.g. for line charts, where a user names a field freq and thus has a conflict with my own freq field. Renamed the internal use field _sofa_freq to prevent collisions.
- Creating user’s default proj file now copes with apostrophes etc in user path e.g. /Users/Jim’s/etc.
- The project dialog now displays the default report and css details saved with it from previous occasions.
- Project settings are only applied if the project is selected – they are not automatically triggered by changes when configuring a project.
- Multi-line values entered into data cells e.g. variable label settings, automatically have the line breaks converted into spaces. Prevents errors in display of data e.g. in single line text boxes, and problems storing in python scripts (EOL error) etc.
- Fixed bug where the first SQLite database in a project was assumed to be the default sofa database even though it might not be. Now possible to link to multiple default databases e.g. testing copies etc as long as simple naming convention followed.
- SOFA now rolls back to last good database connection if a failure.
- Fixed strange bug where default database would lock if made a new table, then looked as design, then tried to write to the database e.g. importing, editing data. Just refreshed cursor after updating demo table design and problem gone.
The latest version adds a range of improvements:
- Added lower and upper quartiles to Row Stats report tables.
- Box plots now start y-axis from just below the minimum y value of the data unless the content is close enough to the bottom of the graph to make it worth using 0 anyway.
- Showing the percent sign in percent columns for report tables is now optional – which is good news for many dissertation students.
- SOFA now displays value labels sorted by the numerical version of numbers even if stored as text. So no more 1, 11, 2,3 etc in cases where people have stored the number as a Text data type.
- Added some more valid US date formats using dot dividers.
- New help button for importing data.
- New help button to advise on how to make of flexible data filters.
- English translations are handled better (no more messages about not having US English and using UK English instead etc).
Plus there are some useful bug fixes:
- 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.
The SOFA installers for Windows and Mac have shrunk substantially – from 43MB to 25MB for Windows and from a rather hefty 85MB to 36MB for Mac. They’ll be quicker to download, and the new installers also avoid possible conflicts with other Python packages on a system. It’s all self-contained. A final benefit is that the installation process itself has become much simpler, with much fewer steps. For those who are technically minded, it is thanks to pyinstaller and py2app (with some initial help from Gui2exe).
SOFA has been reviewed and included in the software CD for a recent edition of Germany’s c’t magazine (c’t 2011 Issue 26 p.118). C’t (Magazin für Computertechnik) has a sold circulation of about 367,000 so it was wonderful to show up on their radar.
Version 1.1.2 fixes a bug which affected people trying to install SOFA into many non-English environments. SOFA also has some changes which make it safe for SOFA to communicate progress in more detail while being run in Windows using the non-console version of Python. Overall, SOFA has become much more robust in recent versions.
SOFA Statistics 1.1.1 brings good news for Mac and Linux users. You can now import Excel xls files directly. This is no longer a Windows-only feature.
Here is the full list of changes:
- Excel can be imported from Mac and Linux as well as Windows.
- ODS importing now copes with single ‘divider’ columns – i.e. columns with no field name in the header.
- CSV importing now autofills blank columns with field numbers such as Var018.
- More informative if locale issues.
- More informative if unable to connect to MySQL on Mac.
- Changed standard deviation in report tables from population sd to sample sd.
There is one important set of bug fixes which allows more sophisticated extraction of cell values from ODS spreadsheets. SOFA now copes with formatted content of cells and other complex cases by handling subelements in the XML.
Version 1.1.0 finally brings it together adding some of the last features to round out the original vision for the application. The main change is much easier access to data – users can now open data tables from anywhere the table can be selected e.g. charts, report tables, statistical analyses.
Another change makes it easier to import from spreadsheets – SOFA now gives a preview of the first few rows of data to make it easier to determine whether there is a header row or not:
The two extra changes are: Importing from Google Doc spreadsheets now automatically starts import process if downloading was successful; Windows users can install into any folder now, not just one with sofastats in the name.
There are also a couple of bug fixes: Fixed bug when trying to display feedback on resizing operation on data table from dialogs other than data select; and fixed regression when running data list report tables.
Here are all the major feature changes since version 1.0 was released:
- Single line charts now have option of a trend line and data smoothing (weighted rolling average).
- Averages can be displayed for most chart types e.g. a line chart of average income by month.
- Attractive and dynamic Box and Whisker plots added.
- Much easier access to data – can now open data table from anywhere the table can be selected e.g. charts, report tables, stats analyses.
- Numerous usability improvements and bug fixes.
I hope you really like it.
It is now a lot easier and more pleasant to enter data directly into SOFA. Check it out and see if you agree. It is also easier to get CSV data in if there are lots of fields. Overall this is an incremental step forwards rather than the introduction of lots of new features. Here is the full list of improvements:
- Much easier and quicker data entry. Return key now functions like Tab in data entry tables. Deleting a cell automatically inserts the appropriate value.
- Much faster importing of csv files with lots of fields. Now has option of quickly checking field names collectively (in batches under the surface) rather than individually.
- Improved feedback to user if problem in early stages starting SOFA. Program now makes an error text file on the user desktop as well.
- All field or table name checks in SQLite now return the SQLite error text as well.
- Better message to user if installation of wx backend for matplotlib missing.
- If cancel process of changing file used to define variable config, report table display no longer reverts to random demo.
and bug fixes:
- 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.
Thanks to all the users who helped identify and resolve problems.