03 December 2012

Monassis release 1.0.9

The first release for a while, mostly because we've madly been writing free textbooks over at Siyavula. Now that the dust has settled, I'm back onto Monassis development and the first order of business was to switch to a new database server. We've been using SQLite until now, which has been holding up really well with about 3700 users, but it won't scale for the future, so we're moving to PostgreSQL.

  • Migrated to PostgreSQL.
  • Much improved ASCIIsvg to PNG pipeline. The latest figures are beautiful!
  • Mathematics and Physical Sciences, Grades 10 and 12 are complete.
  • Bugfixes and unit tests.

Over the course of the next month we're getting ready for the start of the 2013 school year. This means completing alignment of Grade 11 exercises to the new curriculum and finalising a few additional features for learners and teachers. Expect the next release in about 4 weeks!

28 September 2012

Monassis release 1.0.8 (codename: nostalgia)

I just noticed that it's 1 year ago to the day that the first version of Monassis went live. It was version 0.1, which had 6 templates and supported only numeric and multiple choice responses. We now have more than 650 templates and can interpret chemical compounds, equations and spectroscopic notation, multiple choice, coordinates, mathematical expressions, equations and inequalities, factorised and expanded polynomials, proper fractions, decimal numbers, intervals and lists!

The main purpose of the v0.1 release was to have Grant Hillebrand's class try out the system and give some feedback on how to improve it. The practice service has come a long way since then thanks to a great templating team and some very strong support and great feedback from school teachers and learners.

To celebrate the occasion there's a small release going out today. (Ok, that's not entirely causal. I was actually preparing this release and then noticed that v0.1 went out on 28 September 2011.)

In this release:
  • Implemented equation responses
  • Better error reporting.
  • Support for logarithms with non-default base using underscore notation.
    Some more prep for releasing on mobile and Mxit.

11 September 2012

Monassis release 1.0.7

This is a minor release and mostly a collection of fixes (listed below). The exciting bit is that some of the modifications are in preparation for releasing the practice service over mobile phones... but, you'll have to wait a few more weeks for detailed news on that front.

  • New features:
    • Each chapter in dashboard is now a link, filtering on that chapter only
    • Implemented coordinate response type
  • Fixes:
    • Minor fixes to ASCIIsvg to PNG converter (Thanks Leen!)
    • Do not show "future chapters" section on dashboard when there are no more future chapters. (We finally need this since the Physical Sciences Grade 12 book has been fully templated!)
    • Fixed list response type so that it can have sub-types that use semi-colons
    • Implemented separate sessions for each book. You can now practice maths and science simultaneously without confusing the practice service.
  • Mobi prep:
    • Check for Mxit in request headers
    • Added spans and divs around dynamic elements in dashboard and question views
    • Implemented per-book access control

30 August 2012

Monassis release 1.0.6

Version 1.0.6 of the intelligent practice service went live late yesterday! This release is mostly a collection of fixes.

The major fix is that ASCIIsvg images are now being converted to PNG images on the server side. Some browsers (notably IE and Chrome under Windows) do not support SVG images natively. Since most of our clients are Windows users, this was a bit of a problem. The cool thing is that images are still created using the ASCIIsvg format, making it possible to template and randomize them.

The ASCIIsvg to SVG code was created by Leen Remmelzwaal here at Siyavula and is available under the GPL here. The new code base has an improved version of the original Javascript library (cleaned up and with some additional functionality) for client-side conversion and a new Python library for server-side conversion.

A whole bunch of chapters have also been released in the mean time. We are very close to finishing up all of Grade 12 Mathematics and Physical Sciences and not too far off from finishing Grade 10 too.

26 June 2012

Monassis release 1.0.5

The next release (version 1.0.5) of the practice server went live today.

The most notable new features are

  • a "Try this question again" button, for when you got a question wrong, read the feedback in the worked solution and want to give it another try with a new random set of numbers.
  • 8 new chapters to practise including
    • Mathematics Grade 10, Finance and growth
    • Mathematics Grade 10, Trigonometry
    • Mathematics Grade 11, Hyperbolic functions and graphs
    • Physical Sciences Grade 10, Electric circuits
    • Physical Sciences Grade 10, Quantitative aspects of chemical change
    • Physical Sciences Grade 11, Quantitative aspects of chemical change
    • Physical Sciences Grade 12, The chemical industry
    • Physical Sciences Grade 12, Electromagnetic radiation
  • Corrections to existing templates, based on comments from our users. The "Report a problem" button is really working and we're able to iron out any remaining problems within 24 hours of a report. Whoever reported the problem gets a personal thank-you note and the other users never even know that there was a problem!
Thanks again to the team of technical content editors for pushing out templates at an alarming rate and welcome to Eric Gulbis who joined us on the 18th!

(P.S. For those who are paying attention: version 1.0.4 was a minor bug-fix release.)

12 June 2012

Monassis release 1.0.3

Another development cycle completed! New user-facing features:
  • A user feedback form for reporting problems with the service or any particular problem. The issues get logged in GitHub and our crack team of technical content editors process them.
  • A "How should I write this?" button that shows the user a short tutorial on the notation for different types of inputs. It is context sensitive, so if you are answering a chemistry problem, it will show you how to write chemical notation. Here's an example for fractions:
  • 12 new chapters available between the 6 books! There are now 438 templates in the database.
 New back-end features:
  • Implemented the <rawvalueof> tag, so that XML can be generated directly using Python.
  • Consolidated the type library and added the chemical equation and string set types.
  • Bugfixes: better scientific notation rendering, changed default numeric error function to relative (rather than absolute), interval parsing failed on + operator.
The next release will focus more on back-end development, although the following user-facing features are high on the list:
  • links from practice problems to the textbook, so that you can review content related to the problem before attempting it;
  • a "Try this question again" button if you want to repeat the same problem, but with a different set of random values.
As always, you can sign up for a free trial at or

28 May 2012

Monassis release 1.0.2

I'll be trying out a micro-release schedule over the next few weeks. The schedule consists of a 2-week cycle with feature development, testing and bug-fixing in-house after a feature freeze, and finally roll-out to the live site. The first cycle just completed!

This is the first non-bugfix release since v1.0 with the following new developments (roughly in order of importance):
  • lots of new chapters available (398 templates total)
  • more robust response type library
  • spectroscopic notation for electron configurations
  • chemical compound notation
  • arbitrary precision floating point numbers
  • better unicode support
  • display subject and grade on dashboard
  • file and email logging of server errors
  • rudimentary usage analytics
Many thanks to the Siyavula team of technical content editors for churning out templates at an alarming rate :) The practice service would be nothing without its exercises.

The next release will focus on new UI and active users should see a few cool new features on 11 June 2012!

16 April 2012

We're live!

Good news everyone! The Monassis practice service is now at version 1.0 and running as part of Siyavula's Everything Maths and Everything Science textbook sites. This actually happened 3 days ago, but I was too exhausted to even think about writing a post.

If you'd like to try out the software, you can register as a user on or, which will get you a free 30-day trial subscription to the service. Note that this is currently a paid-for service that supplements Siyavula's free, CC BY textbooks, so if you want to use it for more than 30 days, you will have to sign up for a paid account.

What's under the hood?

Templated questions: Each question that you see is actually generated from a Python and XML-based template in a MVC framework. Numbers, names, variables and a little bit of problem structure are generated randomly each time that you reload a template. We currently have about 350 templates, which might not sound like a lot but each templates equates to a bunch of individual exercises.

Cool maths parser: Maths problems requiring symbolic responses -- like factorised or expanded polynomials, inequalities, intervals on the real line, proper fractions, sequences and sets -- are all parsed from a simple calculator-like notation; and compared to a model solution.

Instant feedback: This is a practice service, which means that you get a detailed solution to each exercise once you've submitted your response.

Dashboard: Simple feedback on your progress with different types of exercises. Exercises are organised by chapter in the Everything Maths and Science textbooks and users see a breakdown of their progress per chapter.

What's next?

Gathering data: You can't make an omelette without eggs and you can't do inference without data. Now that the service is live, we'll be encouraging people to sign up with the aim of getting as broad coverage as possible of school-age students in the country.

Diagnostics: We're already gathering usage data from the textbook websites, giving insight into how our books get used around the country. This will be extended to mining user data from the practice service for a couple of purposes:
  • helping individual users identify weaknesses and helping them find educational resources to remedy those weaknesses;
  • discovering correlations between exercises across grades and subjects, to better understand how students can learn difficult concepts;
  • reporting on the state of education in South Africa, to inform decision about educational programmes or interventions.
Scalability: We're aiming to get a lot of people to sign up and we'll need a bit more work on the hardware and software to handle the load.

More templates: Work continues to get good coverage of all the chapters in all our current and future books. Making templates takes time, effort, technical skill and good exercise design. Our crack team of technical content editors is on the job.

Mobile interface: Most of our target audience use mobile phones to access online content and the service will soon be re-styled to accommodate them.