A self-indulgent post about connections

What I am going to try and say in this post is that stuff is complicated and connected. Learning, teaching, working. Everything. So if you have neither the time of the inclination to waste several minutes of your life reading my drivel, then you can take that and go. Of course, if you disagree violently with the “stuff is complicated” hypothesis then you can go straight to the comments and leave one. Its also likely to be a bit of a stream of consciousness so those of you who yearn for structure in your life, buckle up, it’s going to be a bit of a ride! To make you scroll to the bottom, I’ve added pictures.

So, before we get to the preachy stuff, a story. About me!

A few months back, we had a problem. We needed to be able to produce an online graphical display of data, where the graphs were updated live from information entered into the system. You know how it happens, someone asks “Can it do…” and you answer “Of course it can.” and before you know it you have a weekend to produce a solution with no money or development support to do it with. So your colleagues say, “How are we going to do this?”, you rather foolishly say “I’m sure I can do that. I mean, how hard can it be…?”.


I mean, it wasn’t pure bravado, but I had never done anything quite like it before. I knew it could be done. I knew people who could do it. So, why not.

My first (truly) programable device was this gorgeous thing from Sinclair Research.


It taught me a really important lesson. If at first you don’t succeed, don’t expect the manual to help you.

Since then I have been through a considerable number of programmable devices – A ZX-81, an Acorn Atom, an Amstrad PC or two, an Apple SE-30, an original Macbook and I was one of the fourteen people who paid full price for a Sinclair QL.

The QL was important as it was my first exposure to relational databases, with its much under-rated Archive package. I never used it seriously for anything useful, but I learned a lot from it. Since which time I have become a bit of a database whizz  (self-certified).

Over the years I have worked a lot with data, both on the creation and the analysis side. Around 17 years ago I realised that there was an incredible power in being about to use web-based databases to both store and interrogate data. Now this probably put me behind the curve, but being me I didn’t just want to be able use such systems, I wanted to be able to create them. This was partially because I liked the challenge, but predominantly because the systems we wanted didn’t exist, and I knew they could be developed.

My first real system was a Praise and Concern system for the school. When I arrived I was introduced to the “Praise and Concern System”. It was a five-part self-carbonating pad. Top (white) copy to student, yellow copy for you, blue copy for office, green copy for head of year and pink copy for head of department. I discovered that between us we generated around 13,000 slips each year. I asked what happened to all the information the system produced. I was taken to a dark office and shown several rusting file cabinets. “All the blue copies are in here.”


Now, I’m not suggesting that it’s the total answer, but I do believe if you have some past information about behaviour in a school it can help inform your response in the future.

So, over a few weekends I set myself the task of computerising the system (yes, I know there are issues with that approach, but it was just the start). We ended up after a few iterations of a web-based front end to a SQL database. Teachers put their own data in, using a few clicks. Summary info was produced for HoDs and HoYs and I think it was an improvement.

So I knew this stuff could be done, but I had never worked with graphs. So I did what anyone would do in this position and hit Google. A few hours later, after looking at a number of expensive online graphing packages, I discovered the answer to our needs. And it was staring me in the face all along. Yep, it was Google.

Now love ’em or hate ’em, Google produce a lot of stuff. Specifically a lot of stuff that is free at the point of use. Yes, I know why they do that and I know their business model etc etc, but this stuff was free. Google Visualization Tools. Obviously they had designed it to create their analytics graphs with, then just made the API public.

So now it was all very simple. SQL to get the data out of the database.

Select observations.grade, count(*) as g_total FROM observations inner join users on (users.id = observations.observed_id) WHERE users.account_organisation_id = 9 and (observations.grade) is not null and observations.date_of_observation BETWEEN (CURDATE() – INTERVAL 365 DAY) AND CURDATE() Group by observations.grade

Thats easy, its just SQL. Create your database in Access, then use the visual query editor to create the query, then take the SQL and use it. Simple. Well, not quite that simple. Firstly, the syntax of MS SQL and MySQL is slightly different. How do I know? I know because when I first tried it out, it didn’t work. So, back to Google to search for the correct syntax (and you won’t believe the quantity and quality of advice and support available) and that was fixed. Then, of course, because the data was going to be live the SQL had to be created on the fly. So it had to be generated in a PHP script. That’s ok, I’ve done that before with ASP, I just had to get the correct syntax.

Screen Shot 2013-11-23 at 15.36.07

By the way, I’m leaving out all the stuff about connecting to the database in the first place. That bit is just plain boring.

So, I have the data I need from my database. No, I don’t know where it is. It’s held in a virtual container somewhere in the memory of a server somewhere on the planet, and is in the process of being passed to the browser of my local computer. Obviously, all this is done by magic, so we don’t have to worry about that bit. What I now need to do is take the data I have and put it into the right format so that my browser can send it to the Google servers where they (again, using magic) turn it into a graph and send it back (again, using magic) to my browser.

We clearly need more PHP, and here it is:

Screen Shot 2013-11-23 at 15.42.13

Sorry. I know for some of you this is all a bit, well, geeky. What you have to realise is that for some readers this is like sitting by a riverbank on a sunny day eating ice cream with Brad Pitt or Megan Fox*.

So, a bit more simple stuff and magically my browser displayed this:

Screen Shot 2013-11-23 at 15.48.17

There was some more work to do with fonts etc, but essentially that was it. We then used the same process to create lots of other useful graphs. Job done.

We went back to the client who had asked for the graphs. “We’ve done it!” “Great, lets see them.” We logged onto the system in their office. “And here they are…”

Hmmm. Blank screen. Why? Bloody Internet Explorer of course. We forgot that every single copy of Internet 7 and below still in use resides on a school computer.

Back to the drawing board. Google search. Forums. Finally. It was a comma. At the end of a string. Chrome, Safari, Firefox etc, etc, all ignore it. Internet Explorer 6, 7 and 8. Not a chance. Quick rewrite of the code later, works fine. Job. Done.


I have written this partly because I wanted to. Its a bit of fun. Someone out there might be looking for a way of doing something similar and it might help (but please don’t post technical questions in the comments). I’ve also done it so I can pose a question.

This one.

Could anyone have done this?

And I’ve posed the question because I want to have a stab at the answer. Which is this.

Probably, but not everyone will want to or should have to.

Firstly, and you have to take this on trust, this is not any part of an attempt at an entry into the knowledge versus skills debate. It could be if I wanted it to. Lots here about pre-existing knowledge required to even understand some of the correct answers to questions asked. Lots about definitions of what is a skill and what is knowledge and so on. Lots about being resilient when things don’t go right first time. We could even have a bit of a knock-about around “Don’t have to learn anything ‘cos it’s all on Google” if we really wanted to.

But that is not what I wrote the post for. And its not part of my answer above.

What I started thinking about was this. Where would I start if I wanted to ensure that someone else had the same capability as me to have created those graphs on the web-page? What knowledge would they need? Which bits of Maths, English, Design, Psychology etc would they need to have been exposed to. What skills, both soft and hard, would they need to master to get to the same point? Then I got to thinking what desires would they have had to have had in order to want to get there? And they would need to have a desire to get there because the journey is very boring and unfulfilling in places. And it got me thinking how long could the journey take. For me the time was not under my control. Some of the technologies did not even exist (in a public, meaningful sense) when I started it. So for me it has been a *mumbles*-year journey from that Sinclair Programmable. How far can a student realistically get in the time available to them over 11 years schooling. And how far should they get? That is does everyone need to know how to do this stuff? I mean, its not as essential as reading and writing, is it?

On the other hand if we don’t set as a goal the kind of capability I have described, then we limit those that would be able to follow that journey, and get even further. So, probably most people would be able to get to the same point (or beyond) as me. But we must expect many not to want to. And because it is not reading and writing we should accept their right not to want to venture along the path.

Here’s my final thought. Given the rest of the post it relates specifically to the Computing curriculum, but the thought is valid elsewhere as well. We have a new curriculum, and there are lots of disagreements over how it came about and what is in it, and how it can be delivered and so on. How should we go forward? I think we look and see where we need to end up; in the case of Computing, what do we want people to be able to do? Don’t build a curriculum by looking at the discrete bits we can teach. Look to see what we want young people to be able to achieve with the knowledge schools can give them, and work backwards to get to what they should be taught. If we do this then we can have a sharable vision for why we are teaching what we are teaching and why children should learn what they need to learn.

It needs to be sharable for two main reasons. The students need to understand why they are on the journey. They need to know the goal. It keeps them interested in the ride, and makes them want to get on in the first place. Secondly, perhaps more importantly, everything, EVERYTHING (sorry) worth doing is multi-disciplinary. This doesn’t mean that we all have to tear up our curricula and indulge in a mass frenzy of project based learning. It does mean, at the very least, subjects need to understand, support, nurture and, above all else, value their interconnectedness.

My explicit point is this. Subject disciplines are important. But not as important (to most students) as the whole they go together to make. If we build a new curriculum in subject silos, with little reference to the connections between subjects, students will not be supported to become all that they could be. The sooner they connect knowledge the better. We understand this when children are young, and the structure of schools for young children support this. As children get older, our school structures support this less and less. With a new curriculum to build we have a chance to address this.

I’ll save the controversial opinion about Scratch for another time.

* delete as required