“Supported” versus “unsupported” ICTs in a network age

Just heard of a PhD student exploring the question behind where teachers’ decide to use unsupported learning technologies in higher education. A topic near and dear to my heart. Not to mention I think part of the challenge that Deb faces.

The question that immediately arose – mostly from the NGL course I’m currently participating in – was what’s the definition of “supported” and “unsupported”.

I imagine that the official enterprise definition of “supported” would include officially evaluated and approved by the organisation and its IT experts. Not to mention that the support resources and staff provided by the institution have some training and expertise with the supported tools.

Assuming we’re in a “network age”, many of the assumptions underpinning that definition appear questionable. For example

  1. The only or best form of support for a tool is within the institution.

    When I have a problem with Moodle – the approved institutional LMS – I do a Google search and find help on the wider web. Knowing where to find the institutional support is too difficult, time-consuming and probably not going to match or exceed what I can find online.

    I would suggest that the community/network around most of the widely used tools will always exceed what an institution, especially a small one, can provide.

  2. The institutional support people have to be trained and have expertise in order to support a tool.

    A connectivist perspect suggests it’s the ability to know where to find information/knowledge that is more important now than knowing something. You can never know everything you need to know, it’s more important that you can learn what you need as quickly as possible.

  3. The staff and students need a middle-person between them and the broader community of support around tools.

    This assumption is probably still applies. However, if institutions ever achieve the goal of having digitally fluent staff, then what will institutional support staff do? Won’t the digitally fluent staff know how to engage with the broader community – they’ll have good “know were”?

I have to admit to feeling significantly better supported with the “unsupported” tools that I use in my teaching (Diigo, WordPress etc), then I do with the “supported” tools provided by the institution. Even with the “supported” tools, I predominantly use the “support” provided from outside the institution, not inside.

Do not fear perfection, you’ll never achieve it

Impossible Perfection by mikecogh, on Flickr
Creative Commons Creative Commons Attribution-Share Alike 2.0 Generic License   by  mikecogh 

The title of this post is a quote attributed to Salvado Dali. I hadn’t heard of it before, but it appears to fit very nicely with a struggle a couple of the participants in the NETGL course are having. The desire to get everything “perfect” is getting in the way of engaging in the network. This appears somewhat connected with the more traditional approach to formal education and perhaps the understandable desire not to be seen to make a mistake.

I’d like to suggest that to get the most out of the NetGL course there needs to be a shift to a different mindset. One perhaps better represented by the Dali quote and a saying I’ve been using for a few years

It’s not how bad you start, it’s how quickly you get better

For me this idea arose out of the difference between teleological and ateleological processes. The teleological approach (aka the planning approach process) is based on the idea of knowing exactly what you’re going to do before you do it and then planning how you’ll most efficiently achieve that plan. The ateleological approach (aka the learning approach to process) starts with where you are, makes a small change in response to local needs and learns from that experience.

The reason I think the ateleological approach works better for the type of world that the NetGL course assumes arises from Introna’s (1996) identification of the three conditions that must apply if the teleological aprpoach is going to work

  1. The system’s behaviour must be relatively stable and predictable.
  2. The designers must be able to manipulate the system’s behaviour directly.
  3. The designers must be able to determine accurately the goals or criteria for success.

The nature of a distributed world is that it is inherently unstable and unpredictable. You don’t know what’s going to happen so investing lots of time and resources in a fixed plan is wasteful. Better to be able to respond quickly. To get better.


Introna, L. (1996). “Notes on ateleological information systems development.” Information Technology & People 9(4): 20-39.

Catching up on the NGL participation – part B

So Part B of the NGL catch up. Main focus here will be on the 11 participants blogs I haven’t yet caught up on and a to do list to follow up on.

The challenge of now knowing

Tracey reflects on the challenges posed in crossing disciplines linked with the almost traditional challenge that the more open approach to NGL poses.

But she’s also tackling the challenge in an organised way. For example, setting up her own glossary and discovering new tools. Trello is a new one to me and looks exactly like the type of tool I’ve been thinking about recently. This looks like a real find.

Tracey also has an interesting post on getting organised, but I wonder whether she’s missed a very NGL type solution

Brick walls

Brick Wall by larstho, on Flickr
Creative Commons Creative Commons Attribution-Share Alike 2.0 Generic License   by  larstho 

It appears Eleisha may have broken through the brick wall concept that is NGL etc. It’s good to see some increasing evidence of this.

I’m wondering whether there is anyway to make it easier to achieve this? Does the fact that I’ve broken through that brick wall and as Bigum and Rowan (2013) suggestion the bottom rungs of the ladder have fallen away for me, mean that I can’t do that. Perhaps that’s a cop out. A bit more work required here.

And some more suggestion of broken brick walls and light bulb moments.

Cheese making

Oh that is interesting. Goksu is planning to learn how to make cheese in warm climates (that climate might make a difference reveals my ignorance). The more I see of the variety of topics people are exploring, the more I like the choice of assignment. Shall be interesting to see how it all evolves.

NGL applied to central L&T support

Interesting there appears to be a number of participants (one, two, three) who are engaged in “central L&T support”. i.e. employed by an organisation to help teaching staff develop their teaching. They’ll be seeking to apply NGL to their practice. In fact, it’s the major aim of assignment 2.

A bit of self-organising and critique

Also nice to see some self-organising occurring.

Even better to see some critique coming out of the course.

The constrains of assessment and concepts

Annelise touches on the constraints of assessment and

how the consistent focus on assessment would prevent any discussion of other ideas that may or may not be directly related to the exam or assignment.

It will be interesting to see how well the assessment for NGL avoids this problem. There’s already a bit of tension around the assessment, or perhaps more correctly it’s lack of clarity. Something I need to look into.

Perhaps the issue arises from another point from Annelise

Learning, regardless of the environment, should foster the ability of individuals to actively participate in creating something that they, themselves, find as valuable.

Perhaps by engaging in NGL participants are finding their way in terms of being able to actively participate in learning, but perhaps the assessment isn’t helping them create something they find valuable.

Ahh, the Pomodoro technique. One of those buzz words I’ve seen circulating through social networks but have never taken the time to explore. Thanks for the pointer Annelise. And the quote from Siemens – “The 21st century is a terrible time to be a control freak” – and its contradiction in the formal education system. Though this seems to attribute it to Jared Cohen.

Annelise is also writing about what to do when you’re different from your peers. This speaks to me about the difference between group and network (a particular schema I’ve been mentioning a lot recently). The NGL approach is not to require similarity, but to actually value the difference. It’s the difference that will provide some real benefit. The more we’re all the same, the more similar our networks and the less our learning from each other can be. Goksu worries about homophily. Something I hope a network approach can avoid more successfully than a group approach.

Will continue this anon.

Joining the “swarm”: what a course might be?

Early this week I received an email from a student who took the course EDC3100, ICT and Pedagogy in 2013. In essence he had remembered a useful bit of information in the course study material and wanted to use it. On the plus side, he still had access to course material but because of the big flaw (the absence of a search engine) in our institution’s Moodle implementation he has to manually search through the information to find what he was looking for and didn’t have the motivation/time to do so.

Evaporating “residue of their experiences”

A couple of days later I was reading Riel and Polin (2004) and this quote pointing to a bigger problem with the course site

Over time, the residue of these experiences remains available to newcomers in the tools, tales, talk, and traditions of the group. In this way, the newcomers find a rich environment for learning. (p. 18)

The problem is that the current course site isn’t as rich an environment for learning as it could be. Largely because each semester the course site is created a new and as such destroys any chance of the residue of the experiences of past students being available to the new.

Some examples of the residue of experience

For this particular course, there is already a couple of examples where the “residue of experience” hasn’t evaporated due to the end of semester migration.

The residue of experience by David T Jones, on Flickr

For example, this blog post from @irasocol is used in the first week to help the students think about ICTs as part of their toolbelt. The activity is also used to have them begin experimentation with course Diigo group. The image to the right shows the residue of experience available via Diigo in terms of highlights and annotations.

I’m interested in how this type of functionality would work on the course site. For this to work, the pages in the course site couldn’t change URL each semester as they do now. Students could us Diigo to highlight what is important and annotate connections or questions they have. Teaching staff could do the same.

One of the difficulties would be that while I wouldn’t necessarily want the URL to change, I might want to change some of the content of the page. Largely in response to student feedback. The problem is doing that while effectively retaining the residue of experience.

The other large residue of experience now available to new students is the work past students have done in public on the web. Either in their blogs or in artefacts for assignments.

Making stuff available early

If the course site never moved, then the course site could always be available. This fits with a suggestion from a current student. The first few weeks of the course are tough for many students as they are thrown into the deep-end and expected to learn a range of new tools. The student suggested that if the course site was available early, some students could get an early start and be better prepared.

The main limit to this at the moment is that “opening up” of the course site is controlled by an institutional process that does it at a fixed time – 2 weeks prior to the start of semester.

Group, network and swarm

Dron and Anderson (2007) make the distinction between group, network and collective as outlined in the following table.

Table 2 - Group, network and collective by David T Jones, on Flickr

It’s perhaps possible to suggest that “group” is the predominant label for most existing courses. The current shape of EDC3100 is perhaps moving into (in a very slight way) a network. The aim here is perhaps to move further into the network and add aspects of the collective. Dron and Anderson (2007) suggest

The benefits of and, indeed, the distinguishing features of social software are only fully realised when they embody networks and collectives

The aim here perhaps is for the course to operate as both network and collective. For current students to enter into the network and perhaps only stay for a semester. But if it becomes useful perhaps hang around as part of the collective for a bit longer. Either way the on-going participation in the network could/should provide aspects of the collective.


Apart from the time and motivation to get this done. Perhaps the biggest barrier is going to be the challenge to the existing institutional systems and processes. Questions such as

  1. Can it be negotiated that the EDC3100 course site is always open and always in the one Moodle course site?
  2. How would/could Moodle by configured to have multiple cohorts of students enrolled in the course and still be manageable in terms of fulfilling the traditional course-based requirements (tracking participation/marks etc)?
  3. More broadly both the organisation and everyone involved being able to learn and respond to the unexpected problems and possibilities that arise from a fairly major change in underlying assumptions.


Dron, J., & Anderson, T. (2007). Collectives, networks and groups in social software for e-Learning. In World Conference on E-Learning in Corporate, Government, Healthcare, and Higher Education (pp. 2460–2467).

Riel, M., & Polin, L. (2004). Online learning communities: Common ground and critical differences in designing technical environments. In S. A. Barab, R. Kling, & J. Gray (Eds.), Designing for Virtual Communities in the Service of Learning (pp. 16–50). Cambridge: Cambridge University Press.

Strategic plans, theoretical models and just doing it

Suffering a minor malaise brought on the strategic/operational planning process currently underway at my place of work. As a process it always seems an exercise in futility and frustration, but at least the current process is significantly better than some I’ve observed.

The problem is that it’s all based on a faulty assumption. That an institution can respond to an incredibly complex and rapidly changing context by having some smart people go away for a few months and create a theoretical conception of the way forward for the institution. A theoretical conception informed by their own existing schemata, which in an incredibly complex and rapidly changing context are always going to be insufficient. Especially when those smart people are those that have been successful in the current system which is based on old ideals. Some (many?) of which are unlikely to be relevant in the future.

As it happens one of those smart people came across the following tweet/image which essentially summarises what is wrong with this approach.

I’d suggest some additional related statements

  • A prototype is worth a thousand strategic plans.
  • A prototype is worth a thousand theoretical models.

and also the definition that a prototype is NOT some toy system that no-one uses. It’s a system that has been used in anger and been used to learn real practical lessons.

The illusion of the “one university”

Much of this practice seems to emerge from the belief that it’s important that the institution take center state. The institution has to have a plan, a set of graduate attributes, a set of systems for doing X etc. Perhaps an artefact of the rise of the Vice-Chancellor as CEO approach to leading universities.

I find this increasing importance of “one university” way of doing things interesting when talking about personal/personalised learning and the inherent diversity and flexibility inherent in such a concept.

Feeling left out of the conversation

In a comment on this post about the ups and downs participants are going through in the NGL course Mari shares the struggles of being offline in this type of a course. The feeling where being offline feels a bit like you’ve left the conversation and have fallen behind the evolution of where the others are up to.

I’m wondering whether is something inherent in a NGL course, or whether it’s a combination of a bunch of other stuff.

Learn to love the ignorance

I wonder how much of this is similar to Elisha’s worry about keeping “up to date with the latest educational trends and research”. In an NGL world can you know everything or keep up with all the conversations? Should you even try? Should you instead do what works for you, maintain and build your connections to others, and use those connections in ways useful and appropriate to you.

Dr. Strangelove or: How I Learned to Sto by twm1340, on Flickr
Creative Commons Creative Commons Attribution-Share Alike 2.0 Generic License   by  twm1340 

In an NGL course, do you have to learn to stop worrying and love the knowledge you can’t know everything?

And doing this is hard.


The NGL course itself has been emerging fairly quickly. This has likely created an enhanced level of uncertainty amongst participants beyond the need to make the above transformation. Something that hasn’t been helped perhaps by the lack of appropriate modeling of this practice from others.

Groups versus networks

I wonder if the distinction between network and group is also part of this. Many online courses take the group approach. People working toward common outcomes or projects. Which in turns requires a more synchronous approach to participation as others are directly depending on your contribution.

The NGL course is (in my head) trying to take a more network approach. There isn’t a common outcome or project. Everyone is working on their own projects as student, learner and teacher. They are working on roughly the same schedule but it’s intended to be a fairly flexible schedule. You do what you need, when you need it as much as possible. With there really only being two fixed deadlines, and even they are fairly flexible.

If you need to drop out for a while and work on something, then you should be able to and then reconnect as needed when you return. Perhaps not necessarily catch up on all the conversations. Plus if ideas have moved on, that’s a positive in terms of being able to learn from that.

Do others feel this about the course? Or is it just a group-based online course in a network course’s clothing?

Catching up on the NGL participation

The last couple of weeks have been just a bit hectic and my participation in the network forming about the NGL course has been less than I’d aimed for. The following is an attempt to document some of the interesting bits I’ve missed and sign-post them for further action. It’s really just an attempt to experiment with what any participant might need to do in such a course if they wanted to catch up. It’s a test to see how well some of the technology has been set up and whether it helps capture most of what’s happened.

What’s in Feedly?

There’s an OPML file for the course that includes feeds for all the participant blogs (17 or 18), the course blog, the discussion forum feed from the Moodle course (now rarely used), the Diigo group and the Mendeley group (I think this is the one tool we I haven’t fully explored yet). On Feedly it’s showing 172 items from that OPML file that I haven’t engaged in. 39 from the Diigo group, 5 from the discussion forum, 19 from Mendeley, 8 from the course blog and 2 from my blog. Leaving 99 as coming from the other participants.

Discussion forum

Most of the discussion forum posts are announcements/updates from me. Except for one from Anne talking about her “Because we care” project. Must read more about this. We are slowly fazing use of the discussion forum out. So shouldn’t be too many more there.

Mendeley feed

The Mendeley feed appears to include the title and abstract of articles added to the NGL group. I wonder how/if we can share the annotations we make on these papers? Given this functionality, it might be appropriate to use the abstract field for other comments, rather than the abstract. Sadly the RSS feed from Mendeley doesn’t appear to use the name of the person who shared a document. For example, this paper was added by GG Dines but it shows up in the RSS feed as either no mention of GG Dines. At least Diigo does better.

Has he gone yet? by johnmuk, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  johnmuk 

Diigo resources

Good that Diigo’s feed clearly includes the name of the person sharing the resources. Though difficult to figure out how to easily add a comment on a resources from the RSS feed. A mix of resources being shared by all, including media stories related to NGL, people to follow, academic papers etc that add to the course readings, resources providing technical help with the tools,. There is the need to encourage folk to add a comment to the resources they share.

As I work through the Diigo feed I’m finding lots of good resources leading to the danger of running down a few rabbit holes. But also good to see that some of the other participants are also using these resources and making connections (e.g. one commented on a blog post shared by another participant and written by a third party).

It does appear, however, that Clare has broken Diigo with her comments and link here

Participant posts

So now to dive into what the other participants have been writing about on their blogs.

Keeping up

Elisha worries

How do I ensure I am up to date with the latest educational trends and research.

I’m wondering whether that suggestion fits with a NGL perspective? There’s the principle of connectivism “learning is more critical than knowing”. Does keeping up mean having the right network connections that keep you up to date? Or is it the right network connections to find out what you need, when you need to know it? Or is it a bit of both? Then there’s the Siemens’ idea of “know where replacing know what and know how”. There is simply too much information for one person to know.

This is a problem I struggle with all the time, I don’t “know” enough. At least in the sense most people apply. Siemens (2006) argues

“Know where” is replacing “know what” and “know how”. The rapid, continual knowledge flow cannot be contained and held in the human mind. To survive, we extend ourselves through our networks: computers, humans, databases, and still unfolding new tools. (p. 93)

To a large extent this blog post is an example of extending my mind. There’s no way I could capture all of the observations and connections I’ve made in this post in my head. I’m writing them down here so there’s an artefact I can come back to and remind myself. To a large extent that’s the primary purpose of this blog.

Related courses

Hayat talks about another course in the program she’s doing NGL as part of

EDU8114 – Online Pedagogy in Practice had a focus on ‘presence’ as learning, including social, teaching and cognitive presence.

I’m assuming that’s the Community of Inquiry model. I only recently became aware that there are some other folk here using that model quite heavily. Had assumed it might have been in a course, but didn’t know. I wonder what that says about the level of “know where” within the University and between courses?

Reality of doing it

Deb talks about the reality of actually doing it. Where it is either more traditional online learning, or be it NGL. There always appears to be a gap between the fantastic possibilities and the actual doing of it. Reminds me of the my favourite quote about e-learning (image to the right).

Deb also talks about OERs, perhaps another case of a gap between the rhetoric and reality?

And there there’s Deb’s interesting connection between Zentangles and NGL.

Not to mention Deb’s really interesting (and relevant to me) problem of exploring how NGL can inform how university academics can be supported to engage more with NGL.

Oh and I like this question from her minute paper thoughts

How long will it take me to become familiar and comfortable with using the new technology and to feel more comfortable engaging in the public click pedagogy?

How long did it take me? Part of the problem with answering that is when do you start? Playing with computers since I was 15, studying computer science at Uni and teaching Information Technology at University had to have helped. Encouraging budding Systems Administrators to keep a journal also reinforced the benefit of recording what is going on and why things happened.

The WayBack archive suggests that I first started using a blog in anger in 2006. Already sharing a bit of stuff. By 2007 I was in a new job and sharing more. But even then I was careful with what I shared, but perhaps not as careful as with others.

Will continue this tomorrow


Siemens, G. (2006). Knowing Knowledge (p. 176). Lulu.com.

Resilience and other implications of technological changes

Unavailable by David T Jones, on Flickr

What passes for institutional e-learning within Universities appears to be largely stuck in the “enterprise”, centralised mindset of the first decade of this century. As the technological environment is changing it is increasingly appearing more and more clunky. This creates challenges for those stuck with these systems and provides impetus to move beyond the confines of institutional systems. An impetus given more kick along for me by the last couple of days observing the difference between the centralised, institutional systems and the ad hoc collection of external systems I rely upon to teach.

As the image suggests, the institutional systems have been having some issues with availability. Issues that have been increasingly frustrating as I’ve been away for a few days and need to catch up on work related to some online courses. It’s not much fun responding to discussion forum posts and requests for extensions when the institutional systems are taking up to minutes to respond and occasionally falling over. Actually it’s not all the centralised approach causing the problems. The distribution of institutional technologies is adding to the frustration.

I only know about the discussion forum posts because the LMS is configured to email me whenever someone posts to a forum. These emails are dutifully filtered into a folder for working upon. This means I can see what has been posted in my email client. Even if the LMS is down. The frustration is that whilst I know about the posts, I can’t respond.

Update: it appears that the email notification of new posts is either down or has been turned off. I haven’t gotten any recent emails and there have been forum posts (though not many, I imagine because of the system unavailability). But as it happens the LMS being used (Moodle) does support the option of generating RSS feeds and for this course we have encouraged students to use them. As I look at Feedly I can see those new posts and because the LMS is now available, I can respond. The point is that as one form of distributed notification is unavailable, another is available to take its place. Now I could see someone arguing that having both email notification of posts and RSS feeds could be considered duplication and inefficient. But it also increases resilience and diversity.

Eggs in one basket by mama tang, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  mama tang 

At least with the other course I’m teaching I’m relying on externally hosted tools that don’t rely on the LMS. So when it’s down I can still do some work. My practices are a little more resilient due to the distribution made possible by these tools. There’s some advantage to not putting all my eggs in one (institutional) basket. Which makes me wonder about an institutional that is pushing “personalised learning” and the promise of partnering “with learners in the pursuit of their study objectives regardless of their background, location or stage in life” that is still largely centralised and pushing ideas such as “one university” and “consistency”. Is the “enterprise”, institutional, centralised mindset get in the way of the strategic goals?

But what’s the alternative?

What would a more decentralised approach look like? I hesitate to add, what would a “personalised” approach look like? Can a university with an embedded enterprise mindset make such a transition?

It appears that a distributed, personalised approach would require a radical rethinking of the very underpinnings of the strategic management approach to institutions and the attendant IT, HR and other support practices.

And then there’s Postman’s point

Technology always has unforeseen consequences and it is not always clear, at the beginning, who or what will win, and who or what will lose…

Most of Postman’s other 5 things about technology also generate questions in this case.

The LMS and more broadly the requirement for the institution to provide a fixed set of institutional systems and services seem to have become mythic to universities. Imagining a situation where the instituion doesn’t have to provide an e-portfolio system for students is nonsensical in this context.

Technology tends to become mythic; that is, perceived as part of the natural order of things, and therefore tends to control more of our lives than is good for us.

You can’t adopt a new technological approach and expect to have the same organisation, the same policies, the same processes, and the same people.

Technological change is not additive; it is ecological, which means, it changes everything

This is perhaps one of the challenges facing the participants in the NGL course. When everything changes, it’s hard.

With those changes there will be winners and losers. What if the losers are those in positions of power currently?

There are always winners and losers, and that the winners always try to persuade the losers that they are really winners

What the alternative isn’t

Of course it’s possible that the current issues with the institutional systems suggest that the institution hasn’t invested sufficient resources to keep up with the requirements of an increasing reliance on the centralised systems. More money spent, more centralisation and more control might prevent this type of downtime from happening again. Which is essentially what out-sourcing the hosting of the systems would involve.

But that alternative is also going to hold the institution back from the increasing distribution of the technological environment. Sacrifice long-term practice for the short-term priority of having a stable system that fits existing mindsets. However, it’s also the alternative most likely to occur exactly because it fits the existing mindsets.

Bringing the LMS into the network – Experiment # 1 – Activity completion

The following is the first step in an attempt to modify the Moodle Activity Viewer (or at least a local instance). I’d like a modified version of MAV to allow me to

  1. find out how students are progressing with activity completion.

    Rather than use clicks (as MAV does currently) to track student usage, use activity completion. I use this in EDC3100, however, activity completion isn’t even turned on at the Moodle level at the other institution.

  2. Easily display additional information about students as a roll-over/popup for any links to a student profile page.

The following is an initial exploration of how MAV works and what changes I’ll need to kludge it to work within the local constraints.

It starts with a description of how this is going to work, follows with some initial explorations getting MAV to work within my browser, an exploration of how MAV actually does this and some initial explorations of the changes I’ll have to make. It finishes with some suggestions for the next step.

All as a local instance

First constraint is that this is all being done as a local instance. I’ll be the only one who can see it when I’m using my laptop. It will work something like this

  • I have MAV installed on a version of the Firefox browser.
  • When I visit one of my institutional Moodle course sites MAV will recognise this and as a result will
    • Send a query to a web server running on my laptop asking for activity completion (and other) data for all, some or one student.
    • The web server on my laptop will query a database on my laptop that contains a copy of the activity completion data for my courses and send a reply back to Firefox/MAV.
    • On receipt of the reply Firefox/MAV will update the display of my course site to colour code the activities based on how many student(s) have completed the activity.

The reliance on my laptop and a local database is due to the difficulty of making connections to the institutional servers/data.

From a “theoretical” perspective, this is part of our argument that the LMS is not a full fledged member of networked learning. It’s too hard to make new connections to the LMS to enable new learning. MAV and local databases are an attempt to make it easier to connect to the LMS and its large number of individual parts. The theory is that by making this easier, it is easier to innovate and encourage the development of more interesting learning that is more used.

MAV recognising institutional LMS page

First some documentation on MAV and how it works

The local mav code is /usr/local/www/mav and /usr/local/www/smarty

MAV has to separate servers it knows about

  • balmiServer – this will be my local laptop
  • Moodle Server – this is the institutional LMS

    POINT: Would be interesting to see if this could be multiple servers? e.g. when I want it to work on both my local Moodle server and the institution one

These are set in ~/mav/gmdocs. Set it to http://usqstudydesk.usq.edu.au/m2

Go to this link http://localhost/fred/mav/gm/moodleActivityViewer.user.js and install the updated version of MAV

That seems to working. Getting at least some information dumped into the console. Seems to be breaking on a call to balmi.getLoggedInUserIDNumber() — moodleActivityViewere.user.js 1199

Ahh, seems the USQ study desk has an extra bread crumb in the list that breaks the code. Modify the code in balmi.user.js and all is good.


balmi.user.js has a function getMoodleLinks that extracts all the Moodle type links from the page. This includes setting up some regular expressions to do the extraction.

Change: the RE needs to be updated for my institutional Moodle. Also another RE replacement a little further down for link name.

How does MAV work?

Try to nut out the process MAV uses and identify what possible changes I’ll need to make for both the activity completion and also the student information idea.

The client runs the GreaseMonkey script ~/mav/gmdocs/moodleActivityView.user.js installed on Firefox. It starts off and calls.

  • balmi.getCoursePageLink – Will only run MAV is the page is a valid Moodle page.

    Looks for the Moodle breadcrumbs and extracts the course id.

    CHANGE: this is where I could hard code the detection of my courses and also do the translation between the course ID on the USQ Moodle server and the course ID on the Moodle server on my laptop.

    If not what MAV is looking (getCoursePageLink returns NULL) for MAV exits.

  • moodleActivityView.user.js – does a range of set up prep. Adding the MAV interface etc.

    CHANGE: Some of these will need to change based on what I want to be able to do.

  • Adds mavUpdatePage function as a listener for the load page event – i.e. this is what updates the page.
  • mavUpdatePage does some debug stuff and then calls
  • generateJSONRequest – generate the particular request to send to the MAV server in JSON
    • balmi.user.js – balmi.getCoursePageLink() – A duplicate call
    • balmi.user.js – balmi.getMoodleLinks

      get’s all the links that are part of a Moodle course page. This is for the activity tracking.

      returns data of the form

      “/mod/forum/view.php?id=12345”: [“forum”,”view.php?id=12345″]

      CHANGE: For activity completion the aim here will be to return the links only for value Moodle activities.

      CHANGE: For the user details option, looking at returning the links to user details.

    • Filters out a range of links that shouldn’t be included
    • calls requestData – actually makes the request
  • updatePage – takes the data returned from the MAV server and updates the links. Either through increasing font size of changing the background colour of the links.

    CHANGE: the activity completion will be closest to a version of the number of students. Rather than the number of students who clicked on the link, it will be the number of students who completed the activity.

    Has a loop that goes through all the links in the page. If they link matches something that’s come back from the MAV server, then make the change.

The server is implemented using ~/mav/phpdocs/api/getActivity.php – processes the request

  • decodes and logs the request
  • getCourseIdFromCourseHomePageLink – extracts the course id which is used to query the Moodle database
  • SQL to count # student in course

    CHANGE: Not needed for the student ID stuff.

  • Checks to see if the user wants # clicks or # students and whether just for an individual student, a group(s) or all.

    CHANGE: Again not needed for student details.

  • Calls ~/mav/lib/generateSQLQuery’generateSQLQuery – just a wrapper around a fairly standard PHP template for dynamically generated SQL.

    The template is in ~/mav/lib/getActivityQueryTemplate.php This uses a range of PHP code to generate the appropriate SQL query to extract the stats per link

    CHANGE: the activity completion modifications could be implemented in here. Fairly similar to the S approach, but using activity completion rather than the Moodle log tables.

  • Processes the query for each link, placing the results into a data structure
  • Constructs the JSON object to send back to the browser.

    CHANGE: This is where my kludge will have to translate the student and activity ids returned by the SQL into the values that are being used on the USQ Moodle server and are thus what the browser will find embedded in the HTML.

Approach for changes

Separate clients and servers for the two approaches. Perhaps modify the existing for activity completion, but still do this separate from the existing MAV stuff so I have a clean copy? Definitely have to put this under git.


  1. What’s the format for links to the student profile? Does it use the Moodle user id?

    Basically a link to the script user/view.php with the user’s id and the course id as parameters.

    <a href="~/user/view.php?id=USERID&course=COURSEID">Fred Nerf</a>
  2. How do you distinguish activity links from other links in Moodle?

    Looks like a list element with a class of activity is a good first start. If it in turn contains a span of class autocompletion that’s another good sign.

    Above, that with the activity completion you’re only looking for stuff within the course-content div, or below that the weeks unordered list.

    <li class="activity book modtype_book " id="module-263678">
        <div class="mod-indent-outer"><div class="mod-indent"></div>
            <div class="activityinstance">
               <a class="" onclick="" href="..mod/book/view.php?id=263678"><img src="" class="iconlarge activityicon" alt=" " role="presentation" />
                  <span class="instancename">Setting up your tools: Diigo, a blog and Twitter<span class="accesshide " > Book</span></span>
            <span class="actions">
               <span class="autocompletion"><img title="Completed: Setting up your tools: Diigo, a blog and Twitter" alt="Completed: Setting up your tools: Diigo, a blog and Twitter" class="smallicon" src="" /></span>
  3. How am I going to get map the USQ Moodle activity and user ids with the ids used on my local server?

    A simple script to parse the HTML file for the course home page should be able to extract the ids for each of the activities on the USQ server and also the associated name. The above HTML shows that the id is in the id of the list element. Already have the names of the activities with a hard coded sequential idea in the local database. Can do the mapping that way.

To do

Misc tasks to do

  • Think through how this kludge is going to be done. Likely possibilities include
    1. Separate javascript plugins and servers for the activity completion and the user details.
    2. Modify the existing plugins and servers to handle the additional requests.
    3. Integrate activity completion into the existing MAV, but have user details separate

      Mainly because activity completion is largely the same as the existing display work that MAV does.

  • User detail display
    • Investigate what’s the best way to pass the data back to the browser – just data with the HTML generated by the browser or as HTML generated by the server and simply inserted by the
    • Chat with Rolley and see whether the rollover/popup idea can be implemented with the same HTML stuff used by the rest of MAV.
  • Extract the activity id data from the USQ server.
  • Find out if there is a report that Moodle will generate a list of all the users in a course so I can extract user ids from the USQ Moodle server to create a mapping to the local user ids.

    The activity participation report will generate a list of all students with a link that includes user id and their name.

  • Get the MAV code base into git.
  • Implement the separate user details version of MAV might be the first major change to do.