You are currently browsing the category archive for the ‘Uncategorized’ category.

Education in Victoria is succeeding in some areas, but failing in many others – we have new school buildings, but they are overflowing and the school rolls climbing so quickly that teachers and principals have no bandwidth left for improving educational outcomes.  Schools are adapting to technology, but failing to handle the wide range of ability and rates of learning our kids have. The system is not flexible enough to handle the needs of low achievers and high achievers in specific areas.

Every couple of months there is a new study showing how badly Australia is doing compared to other countries in areas such as Math.  We know there are approaches that have worked elsewhere but we seem unwilling or unable to change and adopt them.

Homeschooling is an important right for Victorians – in many cases it is the only way to solve problems with bullying, with low achieving students and with high achieving students.  Homeschooling is a rising demographic which serves as an important barometer of how well our schools are serving students and parents.

If the government understands this, then it will understand the value in Homeschooling, and will preserve that  right as a legal option, and keep the current registration regulations intact.   Homeschooling also serves the Dept of Education – it relieves pressure form a strained system, and gives a flexible way of educating students who are not well served by schools.  It is part of the solution, not part of the problem.

It is so important that the Department of Education _listen_ to Homeschoolers, not try to tell them how to educate, or punish them – rather use it as important feedback.  I was surprised to find many ex-teachers among Homeschool parents, and other parents had studied education theories in some depth.  Homeschoolers as a rule are those who value education highly – they are pro-education, not anti-education.

I can say personally, it is heart rending to make the decision to take your child from school, you would only do it if there was a real problem to solve, or a clear benefit in doing so.

My son has just turned 13yo, he is by some accounts gifted – but the reality is simply that he was read to a lot from an early age, and had some opportunities for books and learning and discussion, and excelled because of normal healthy genes and a supportive environment.   He has attended public schools in inner Melbourne for 3 years, the other years being Homeschooled – so I have some basis on which to compare the good and bad of each approach.

Early this year he was accepted into the SEAL program at a very good new school in inner Melbourne.  The SEAL program is great for many kids because they immediately skip a year and jump ahead closer to their current level.  I’m in favor of the SEAL program, its a good thing – but its not the complete answer.  In my sons case he was repeating material he had done a couple years earlier in Math, so the homework was ‘busy work’.

I tried him out on year 10 questions and he worked through them well, so it seemed he was at that level.  I asked the teacher if he could work ahead in Math, then asked the year coordinator and finally the deputy principal – and was surprised that this request was politely ignored in every case.  At first I was angry, but then I realized that they probably just saw my request as “more work” for them, and they are already straining to keep up with massive expansion in student numbers.   The roll is growing at a massive rate, and I think this is why they just don’t have bandwidth to gather a real focus on learning outcomes, let alone catering flexibly to students who fall outside the norm.

As an aside, there are ways to teach and learn math that are vastly better for all students than the approach we have in most Australian schools now.  You don’t have to invent new methods, they are tried and work well overseas – you can read about Jo Boaler, ProofSchool, MathCircles, KhanAcademy,, Australian Math Competition etc. You can read any review of our current math texts by university mathematicians, or look at any comparison study with other countries to know we are doing it badly.   The system needs to be flexible enough to accommodate and experiment with these new methods.  Its not the curricula per-se, it is the way its communicated – it is not visual enough, it is too topic-centric and should be more problem-centric, it is not interactively explored.

Id like to see schools adopt these approaches – but right now they are too busy handling roll growth alone, and in moving from paper books to ipads.

This means the only solution, for now, is to Homeschool your child if they excel in Math – school is a hostile environment towards learning math deeply.

We need to change the way we think about Homeschooling – it is valuable for mainstream education in Australia, it is a place to see how new methods work and take the needed risks in new approaches to learning.  It is a pressure valve for a school system experiencing the stress of rapid growth, and it is the only way to accommodate that small minority of students who will not excel at schools, no matter how good those schools become in future.

To this end I propose that the Victorian Government / Department of Education Victoria consider supporting Homeschooling in the following practical ways :

  • Preserve the current lite-touch Homeschool registration regulations in Victoria [ realise that making regulations tighter will likely result in mass non-registration ]
  • Fund a fulltime Homeschool liaison specialist educator in DETV  [ to support homeschoolers, not police them ! ]
  • Establish an open registry of public school events that Homeschoolers can join in with
  • Fund several masters/phd opt-in studies on Homeschool education approaches and attainments
  • Fund Math and Science specific programs for both schools and homeschoolers, eg: [ alternative curriculum materials, such as books,  Math Circles and Robot workshops ]
  • Establish a yearly tax deduction for extra costs associated with homeschooling your child [ taken from the money that homeschooling saves the government on schooling ]

Just made a couple of videos explaining multiplication in a visual way, using the ‘Box Method’

Playlist on youtube, here


Havent posted for a good while.. been incredibly busy working on a side project which seems to have a life of its own. is not quite ready for release, but I’ve been using it to get real work done for a while.  Its basically a much quicker way to develop data centric apps.  This kind of app is useful for tracking all the information you need to run a business well – the stuff that goes on paper / word / excel forms.  It would be great if there was a quick way to make it mobile / web and have the data in electronic format from the get-go so you could search it more easily and so on.

Example App :  Gym Membership Sales Pipeline

We can start by making a form each for our Salespeople, and our potential Customers.  I configure up the data model in the App Designer for these, save those changes… then the app comes up on web and tablet straight away :



I did this by configuring the fields, checkbox items etc, and the app reflects this ‘datamodel’  : 


Apparently there’s a sales-cycle thing we want to keep track of –

  • initial contact
  • see if the customers interested
  • what are their goals
  • book a meeting
  • get them to signup
  • success! happiness! cash!

So here’s a go at modeling up a sales call…


… hmm, promising and a good place to start, I can actually put that in front of the Gym Owner and her Chief Sales Maven, and they can try it out on the web or on their tablet device.


The point of this article is not to say ‘you can do apps real quick in Collabapi’ … which is kinda true.

The coolness is really just the way we can iterate and experiment : get something out there quickly and get the users to make suggestions.  

Its more of a GSD or MVP / lean-startup approach to making apps.  Its not just for business apps, but I think it will be really handy for business … putting the love back into the ‘small-data’ that’s important to most people.

I’ll talk a bit about the technology under the hood at some stage – and there is a lot of tech under the hood – but for now, that’s a good place to pause and have a cup of tea :]

cheers,  gord.

justgord at gmail dotcom


Tagninju is an ergonomic tag-centric Time and Cost tracking tool.

Its very simple to use and extremely flexible :

  • use keyword tags to organise and group entries
  • rather than type a long description, keep it terse, with tags
  • tags suggest : topic, person, subject, code, urgency, project, specifics
  • inbuilt auto clock timer with pause and continue
  • set todos into the future quickly
  • provides rapid insight into costs and time


TagNinju app is handy for :

  • gain real insight into your time usage [ procrastination or productivity ]
  • keep yourself motivated with objective progress notes
  • track progress towards a goal like weight loss, fitness, savings
  • budgeting : shopping list and track expenses quickly
  • track hours worked on jobs for freelancers and contractors
  • HTML5 local storage means works on mobile tablet or web


I noticed a lot of time dissapeared on unimportant things, and my productivity and motivation was inconsistent. Some days I would feel motivated and get a lot done, other days Id languish and could not really recall what I spent time on or what goals had been achieved.

I looked for a good app, but the note takers were too general, and a spreadsheet was not easy to use on mobile, many time tracker systems were slow or overkill. Eventually I started working on a simple web app to do this. I added an automated timer clock, and this at least allowed me to note down tasks. I started off writing readable sentence notes, but migrated to a terse form with just keywords. I added a simple filter search and found that worked well : I could zoom into areas of interest by keyword, such as shopping or weight or fee or run or billable.

I gradually noticed a useful psychological side-effect of tracking my time : I wanted to get stuff done just so that I could note it down! Id catch myself thinking.. Hmm I havent put in any entries for exercise the last 2 days, I better do some situps or a run so I can put that in.
So actually noting things down had the effect of pushing me to get more good things done.
Theres a kind of objectivity, and also the effect of your motivated self observing your unmotivated self and kind of comparing the two.

I recently heard a talk by memory expert Josh Foer, about autopilot subconscious plateaus. This is where your activity matches your expectation set point at the OK level and so your conscious mind doesnt need to be engaged. We do this everyday for routine tasks, we perform them uncounsciously or rather subconsciously, on auto-pilot.

Autopilot is great for things we dont want to improve : washing dishes, shaving, driving to work.
For things we do want to improve, we need some way of making the activity stand out to our conscious minds so we can evaluate performance and goals and try a different strategy. Time tracking seems to help with this, it makes you review what youve just been doing.

Im not recommending tracking everything, in fact I think its good to decide to not track some areas, maybe the weekends or reading time in the evening. But it can give real insight and motivation for those areas we want to improve : lose weight, gain fitness, reduce cigarettes, study more effectively etc.


You might find these tips handy :

  • tap timer to pause the clock and restart it
  • tap and drag out from timer box to select a time period
  • use meaningful tags, use multiple tags
  • use quick filter search to zoom into that topic or area

Coming soon

These are some future features which might make Tagninju more useful :

  • sync between versions [ entries shared across devices : mobile, web and tablet ]
  • dropbox integration
  • csv import / export [ to and from spreadsheet ]
  • bar charts to show time and cost spent by tag
  • shared groups

Some of these features will be more useful to professionals, small business founders and freelancers and will be released as part of the upcoming paid version : TagNinju Pro.


Im interested to see how people use TagNinju for tracking time and cost, for achieving goals and personal growth.

Please do email me with your suggestions and feedback at

I get the feeling a lot of people are surprised when they find out you can _understand_ math.. it isn’t just a series of random facts and some Rube Goldberg machinery.

I think this problem must start quite early in school, and get enforced so often it becomes a belief system.   For example its rare that the distributive rule is related to areas of rectangles.. but that’s such a good visual explanation, it should be the default way of introducing the idea :


After a couple of these diagrams you can mention it works for any rectangle with sides of length a+b and c+d , namely :  (a+b)(c+d)=ac+ad+bc+bd.

Maybe with tablet computers we can make Math more intuitive,  when good visualizations can be seen by most students.

I wonder if teachers are so constrained to teach the points of the curriculum, handle admin tasks and control the class, that there is no time left for cultivating Math ‘understanding’ ?  But surely its faster to learn / teach by understanding?

If you never get that little rush of endorphin from understanding, I could see how Math would be very boring and random.. because its not really math then, its something else ( and that’s not good, is it Precious?   Not at all.. no it isn’t.. Precioussss… hmm… ghollum ! )

Here’s a nice problem to introduce simultaneous equations and Algebra.  I saw this on the blog here

There are 100 chickens and rabbits altogether. The chickens have 80 more legs than the rabbits. How many chickens and how many rabbits are there?

In GridMaths there are a couple ways to approach simultaneous equations visually – sometimes you might use a different color bean to represent each variable, lets say an orange jellybean and a brown coffee bean, and you don’t know how much each weigh, but you might be able to figure it out.  This is nice, as your not tempted to add apples and oranges together [ or jellybeans and coffee beans ].

Another way is to have rectangles or lengths and color or shade them differently – this is easy in GridMaths, you just draw color rectangles, or Cuisenaire Rod lengths.  Remember to make the point this is not to scale, you cant yet measure off the diagram, the length is standing in for the real length which youll arrive at.

Here’s a sheet with the C chickens and R rabbits problem [ Chickens in green, Rabbits in orange, known lengths in blue ] :


Apparently this is called the ‘Bar method’ in Singapore maths – I think its good to have a name so teachers, parents and kids can talk about this approach.  Someone asked me about an earlier post, whether it was the Singapore method.. and actually no, I’m not familiar with that method or series of books.. but from what I hear it seems quite good in terms of using visual keys to get the concepts across.

Here’s another problem solved using pink! jellybeans and brown coffee beans to represent X and Y :


A good order to broach these ways of looking at simultaneous equations  is :

  • a word problem
  • jellybean approach
  • shaded length bars
  • algebra / variable names
  • linear graph intersection

Likewise, I think that using rectangles for multiplication is a huge thing that isn’t done enough.  This approach can help reach some learners who see algebra as just wacky rules with no meaning.  The great thing about this Visual representation is its easy to work with.. and leads directly to algebra.   Once you’ve done a couple, you can just use letters instead of colored lengths and everything works the same way.  So its seen as an efficiency, to save making the diagram each time.

I was first introduced to simultaneous equations through one of the books of W.W.Sawyer a great teacher of math teachers.  I read his book as a youngster and so got interested in Calculus.. he had a wonderful way of making things simple and interesting.  He talked about how the average speed of a car over its entire journey was not that important, if you happened to get hit by the car just when it was travelling at its maximum speed.  In court you’d want to know the average velocity of the car in the few meters and seconds before the event.. this led directly to ds/dt type discussion.  Awesome guy!

So is in open beta, now works reasonably well on iPad and recent desktop browsers.  Android browser support coming sometime soon.

Heres a pic my 9yo created while testing things out on the iPad.. with the obligatory battle scene [ dad vs browser quirks ? ] :


Here’s a couple of sheets on how I like to present long multiplication…

Firstly a concrete rectangle where you can actually count the squares to satisfy yourself its right…


Then move to a more compact form, which still shows the rectangle grid, but not to scale..


This shows that lots of digits should not induce panic.. the same systematic approach works [ which is why computers can do multiplication so well ].

I think having the box grid is a nice way to remember where all the pieces come from [ single digit products ].  Also I think it really helps to use the blank grid spaces, rather than fill in every 0.

The lattice method is slightly more compact, but I think this box approach reminds students of whats really going on.

Thanks for all the emails and encouragement so far as I build this.

Enjoy, and let me know how your using GridMaths.

Been ultra busy lately on two distinct web projects, both of which really need a good architecture so they can scale easily.

One nice way to do this is with services which message each other – if you have a fast, persistent reliable message queue you can have many processes grab jobs off the queue and thus scale out over many cores.  I feel this is a natural way to scale out node.js apps.

I immediately discarded SQS [ Amazon’s scalable queue service ] as it basically polls a web url to check for messages, so it really is not a message queue at all.

Another nice option is Mongo tailable cursors, which is the message queue approach that mongo uses internally to replicate between mongo instances.   This worked sort of ok, but didnt strike me as ultra high performance.  see mongoMQ npm module for a simple api wrapper.

I was very impressed with Redis Publish/Subscribe semantics… which are very fast, but dont have persistence.

In the end I decided to use a combination of Redis pub/sub for notifications, and Redis List operations rpush/lpop to store/retrieve the actual message data.  I wrapped this in a simple node.js api, which Im calling redpill.

I have an initial implementation of a typical web app which has users and info items.  This performs rather well, with web request response times under 50ms whle 1000 items/sec are being inserted as a background task.

The nice thing is that using message queues allows you to scale up by running any number of servers.

See code + comments here :

redpill : persistent messaging using Redis primitives

gorgon : demo web server architecture with messaging between server components

Lots of things to optimise, but basically a good proof of concept and initial working demo code for this approach.

This would have been a tweet but has snowballed beyond its 140 char limits into a definite POST.

Twitter has been offline for the last 40minutes, and I really wanted to blip / tweet / ping the world that I had been enjoying some things…


Have been enjoying the following without any guilt whatsoever :

– ‘religulous‘ doco last nite, very irreverend, very entertaining

– ‘Rereading Darwin‘ – still radical & relevant if we can grok eon sized time-spans

– web based interactive graphing calculator :

These are all awesome things, relying as they do on the advances that can be made when young people have freedom to think, to learn, have access to books and mentors and dont need to spend all their time either at war or gathering food or preparing shelter.


So that was going to be the basis of my tweet, but that has been subverted into a rant on why Twitter, and Facebook, and Foursquare and LinkedIn and… are fundamentally wrong, whereas the Internet is fundamentally right.

Twitter and Facebook etc. [or the social networking needs they serve] should really be implemented as a distributed system. Each person or a cluster of people would have a local server ‘node’, and it would route messages to other nodes and so on.

For popular tweets or status updates, or checkins or wall postings there would be thousands of copies of that tweet sitting on servers all over the globe. This redundancy is a good thing, there would be less chance that a single Denial of Service attack or plain old human error or of a hardware failure or a mass event taking down the whole system. It could also mean we have more control of our own data – we should ‘own’ the posts we make, and the company we pay [ in advertising or in cash ] would provide the plumbing for the routing of messages and content.

This kind of distributed agent approach requires us to grow psychologically beyond the need for a ‘Central Authority’.. in fact I think that the technology will eventually take us forward to better forms of government, security and privacy, in that they are less centralised, more efficiently optimised to the local and the global environment – fundamentally they will offer more freedom and may require more responsibility. is a Y-combinator startup offering a fest-setup and easy -to-use backend store for iOS and web apps …

Here are some impressions after using on a commercial iPhone app project :

My feedback after using Parse for real work for a few days on iOS is that there are a few things that Id like to see added :

  • allow Pointer type cols [aka relations / object refs ] to be added via the web / DataBrowser
  • allow double click on objectIDs in DataBrowser, for ctrl-C/V
  • add csv export, json export [ imnso, these make me more likely to pay for Parse, not less ]
  • search/filter, sort cols, in DataBrowser

As a workaround I had to do “inspect element” of the Data Browser web page to get the object id, then write some test code to create the object Pointer references.


Also Ive been pining for a detail button for each row – that would pull up a detail grid with [ colname | value ] so I can see all a rows attributes vertically at a glance [ if it can be left open while I select rows, all the better ]

Generally, the iOS Parse api is nice, and it just works… in fact a lot of this I had already implemented myself in js + Node.js + mongo, but a client wanted a Parse backend so that gave me an excuse to evaluate.

So my first impression is good, but as people use this for real work, youll need those little details to save time.

( btw, prefetch link/reference with includeKey is handy )