Category Archives: design theory

Random #fedwikihappening ramblings

The Christmas break is over. It’s the start of a new week and I’ve completed some holiday tasks (complete a run through of Dragon Age Inquisition, watch the final series of The Newsroom, and upgrade the family computers to Yosemite). Time to start engaging with #fedwikihappening and trying to make sense of how it connects with other work I’m doing.

The new routine

The new routine around SFW goes something like

  1. Log into my SFW.
  2. Join the neighbourhood(s) I’m interested in .
    Currently this is limited to the #fedwikihappening folk. Over time the hope would be that this diversifies and in some cases specialises. Finding, forming and contributing to the right neighbourhoods would seem a key success factor for on-going use of SFW. And this is perhaps also one of the major hurdles. More on this below.
  3. Load up the recent changes.
    Having joined the right neighbourhood, the recent changes list reflects what’s been going on. Time to catch up on what folk have been doing.

One challenge for SFW

The issue with creating the right neighbourhoods in part comes down to the difficulty of people understanding what is different and potentially beneficial about SFW. Maha Bali identifies a large part of that in this blog post

I’ve written a lot about how I would love to make cMOOCs more understandable to other people, and that I think it might not be possible unless they actually experience them…(5 barriers listed)…But how do you encourage people to experience them, given how much of a mindset-shift that would entail? And the time investment and change in your work process it would require in order for it to work out well for you enough that you relax and enjoy it instead of stress over it or worse, drop out completely?

While describing the difficulty around understanding cMOOCs, I see this applying to SFW as well.

During my last ramble into the #fedwikihappening neighbourhood I came across a couple of related articles: Experiencing Imposter Syndrome and Incremental Caging. I came across these articles just as I was thinking about Pattern Entrainment. Incremental caging in turn reminded me of adaptive stretch.

These two patterns are fairly large members of the set of patterns that make up my schema. These are factors I see all the time contributing to the limitations of institutional e-learning. Factors that aren’t limited to teaching staff. Institutional leaders and support staff – both from central L&T, but also central IT – suffer from the same problems.

These are also factors I see in my teaching (helping pre- and in-service teachers think about how ICT can help in their teaching/learning). Factors which appear to require the solution Maha suggests – “people to experience”. This is why my courses tend to focus on creating/encouraging learners to gain experience with new technologies and the pedagogies that they enable. But even this isn’t always sufficient. As the experience can fail to break the existing schema and instead is understood through those existing schema.

Adding my new site to the neighbourhood

I’m still not listed on the happening folks page. Time to fix that. This was one of those little tasks that didn’t work the first time and I couldn’t immediately see what I was missing. Until I was reading through this post titled “Using Federated Wiki in the Classroom: Getting Started” from @holden. The trick was to use the “icon” for the page as the thing you drag. Combine that with opening my profile page with shift-click to get it to appear at the end of the list of pages, and bob’s your uncle.

There are some other interesting points in Mike’s post around the experience of using SFW in a class. I can’t help comparing some of this to my experience with BIM and individual student blogs. Some quick observations/comments

  • The difference size creates.
    I’m using BIM in a class of 300+. Mike’s current experience is in a class of 20. I think the order of magnitude difference in numbers makes a significant difference in workload/issues. e.g. manually setting up the class circle. Something I currently do by creating OPML files.
  • Roll your own class circle
    SFW allows students to create their own circle. With my course the same outcome is achieved through a combination of feeds/feedreaders and WordPress’ follow feature. I do have a feeling that more students use the follow feature than feeds. That might be interesting to explore.
  • Tracking recent changes
    The recent pages approach works with 20 students, but would it work with 300. This is not something I’ve done well with BIM/blogs. A challenge I’d like to set myself this year to improve.
  • Different metaphors
    At some stage a blog post has to be published. It is complete. SFW, as Mike notes, is more a personal journal that allows for incomplete contributions.
  • The “twins” approach to compare students’ work is something very different.

SFW as a pattern language

patterns in elearning

Back when I was reading about idea mining I had a vague sense of deja vu. This was quickly resolved as I explored some of SFW space and came across articles like Positive Outdoor Space. Ahh, design patterns and pattern languages. Confirmed by discovering articles such as Pattern language and the connection Ward Cunningham (originator of SFW) has with design patterns.

As this 1999 paper suggests, I have a lot of time for the design pattern idea. The paper even proposed a process for enhancing e-learning based around design patterns, constructive patterns and pattern mining (the ugly, obviously 1990s image to the right). A colleague and I started working on that, but nothing ever came of it. Ten years later I reflected on that experience in this blog post and proposed three reasons why design patterns didn’t work in our context (the obvious other reason is that we weren’t very good at doing this).

One point that doesn’t come out strongly in that old post is the difficulty of abstraction. Pattern mining/writing requires some significant capability with abstraction. Both to identify a practical problem/solution and abstract that into a general pattern, but also to simply grasp the value of pattern languages in the first place. This is demonstrated in the observation that the object-oriented programming (OOP) community adopted the concept of design patterns much more readily than architects (the design pattern idea was developed by an architect). Really good OOP folk are very good at abstraction.

I’m not sure that the broader community has this capability. This can be seen somewhat in the early struggles some of the #fedwikihappening folk had with idea mining, not to mention questioning whether something is lost by this approach

The third place for e-learning – gathering ideas

One of the vague applications I’m considering for SFW is in term of gathering ideas for papers/frameworks. I have a tendency to create frameworks – e.g. the BAD mindset – in my attempt to understand the world. I’m after a way to group together resources and ideas that fit within those frameworks. A page on Third Place is the spark for this. This resonates with some vague ideas I’m having around the BAD mindset. So how to do this?

First attempt

  • Create the BAD mindset page
    Will borrow various bits from the paper.
    Was going to do this all on one page, but I don’t think that fits with the SFW way and I can see it reducing reusability. So time to move it out into separate pages for Bricolage, Affordances, Distribution.
  • Add to each of those pages a brief definition and a “See also” section into which I can copy references to related pages.

Creating all those separate pages and ensuring some consistency requires a bit a work. But the hope is that this “framework” will help in the future as there will be “slots” into which useful resources can be added.

Could go on for a lot longer, but will bring this to a close for now.

FedWiki 7, 8 and 9 – Moving, catching up and engaging

Thanks to the good folk of @reclaimhosting I know have a FedWiki working as part of my own domain – http://fedwiki.djon.es/. That’s the good news. The bad news is that the move creates two problems

  1. A small loss of data.
    In setting up the new fedwiki there was a need to copy over the old one. However, just after that copy (of which I was clueless due to ignoring email) I got inspired and added something. Not a big problem, but something to explore how I might remedy this within the fedwiki model.
  2. Re-connecting with the neighbourhood.
    With a new home, I have to explore how best to reconnect with the #fedwikihappening neighbourhood.

Beyond those, I just have to catch up and delve a bit deeper.

Recovering the lost data?

A brainstorm whilst laying in bed on Sunday morning led to the creation of this page on ideas for future papers and the creation of the first paper idea page. Nothing earth-shaking in either and I could perhaps just re-create them manually on my new FedWiki. But I want to see if there’s a more “fedwiki way” of doing this.

One approach is the one I stumbled across earlier

  1. Visit the page and get the URL – http://djones.federatedwiki.org/view/welcome-visitors/view/paper-ideas
  2. Construct a new URL that combines aspects of that URL with my new FedWiki site.
    The format is my fedwiki’s “home page” http://fedwiki.djon.es/view/welcome-visitors/ followed by the page slug for the paper ideas page. The page slug is the

    Which gives
    http://fedwiki.djon.es/view/welcome-visitors/djones.federatedwiki.org/paper-ideas

  3. Visit that URL
  4. Fork the page to my new fed wiki
  5. Visit the first paper idea and fork that page.

Done.

Updating your icon

Have been replying to this comment on an earlier post and have noticed folk have figured out how to change the icon used to indicate forking etc.

Happening Folks and fancy icons

Will have to figure out/come across how to do that in this session. Documented toward the end of this blog post. Requires access to the file system and using that to replace an icon.

Question: Do I have this access? Probably not. Would rely on @reclaimhosting having installed a single FedWiki instance within the file system I have access to, not likely.

But the neighbourhood to the rescue. Alex North has shared an interesting kludge that I should be able to replicate. Here’s the process

  1. Find a new icon.
    Possibly the step I’ll have the most trouble with. Hate taking/choosing selfies. Will stick with my Twitter profile image. Not the best representation, but hopefully distinctive.
  2. Convert to PNG and right size.
    Seashore on the MAC to the rescue.
  3. Find the values for a PUT request using Chrome.
  4. Use curl to make the change.

Problem: Would have liked to copy and paste the curl comment from Alex’s wiki page, but SFW supports drag and drop. Trying to drag the mouse over the page moves the paragraph, it doesn’t allow you to select. Would have to be a work around for that.

So the command is the following. Appears to be leveraging SFW’s reliance on JSON to communicate to send it the new icon. This is a great example of the BAD mindset – a bit of bricolage leveraging the affordance of technology and relying on distribution.

curl -X "POST" "http://fedwiki.djon.es/favicon.png&quot; -H "Cookie: YOUR_COOKIE" -H "Content-type: application/json" -d "{\"image:\": \"`base64 < ~/Desktop/flag.png`\"}"

Sadly I’m getting a 403 response. Verbose output of curl seems to suggest that the cookie is accepted. Appears that the server is saying “can’t do that”. Perhaps something with the way my server has been configured. The icon is at the expected location, perhaps the ownership on the image file is such it can’t be over-written?

Oh well, no great loss. Bugger it, lets annoy the reclaim hosting folk and see if they can help remedy this.

Time to try again.

So, first problem is user error. Missed a vital point through existing schema/expectations.

Not getting the 403 error anymore, moving onto a 500 Internal Server Error. Reporting as a type error.

On the plus side, @reclaimhosting have come to the rescue. The version of SFW they are using to provide me with my bit of fedwiki space has its own space on github. By which I can gain access to the “file system” of my wiki and replace the icon (via a pull request). All done. Great example of the BAD mindset. Have to blog about this separately.

And my new icon is showing up other places in FedWiki space.

Catching up with the neighbourhood

Was going to leave a comment on Alex’s page sharing the 403 problem, but that raises a question about my profile page and the moving of my SFW. If I use the practice of starting my comment with [[David Jones]] is it going to point to my old profile?

Actually, it appears to have worked. i.e. pointing to the new site. But is this because I’m logged in as me and [[David Jones]] points at the new site? What if I view these pages via the old site?

Yep, looks like it does connect back to the old site. Bugger.

Enough time thinking about the technology and implications of the move, time to engage in the neighbourhood. Of course, the wrong profile link has the potential to limit neighbourhood connections.

Ahh, others have linked to the concrete lounge article, which of course points to the old site. *sigh*

Perhaps if I just fork the page with the new server and perhaps modify the new concrete lounge article to point to it? It’s now a few days later, this seems to be working but can’t be sure.

It’s now Boxing Day and enjoying the traditional (for some) Australian past-time of watching the Boxing Day test match and doing a bit of catch up.

Started with creating an initial article on pattern entrainment and related articles on adaptive stretch and psychological dissonance. The latter articles sparked by articles from others on incremental caging and impostor syndrome.

More later.

FedWiki Daily #6 – Mining, fracking and exploring the process

And onto daily #6 of #fedwikihappening. I’m hoping this will start explore what the process might be around using fedwiki in my day-to-day thinking. To that end, I’m planning to

  1. Read and do a bit more idea mining.
  2. Explore how to catch up on what’s happening in fedwiki space via fedwiki (and not Twitter).
  3. Follow the paths that have been created by my neighbourhood.

Reading

Lots of things I need to read, but I came across Klemm (2002) today while marking an assignment. The points cited made it sound interesting and potentially relevant to #fedwikihappening and then I read the abstract

Conversation is central to human interaction. The usual way to conduct asynchronous “conversations” over the Internet is to post e-mail messages on an electronic bulletin board, with messages organized by topic. However, such environments do not allow us to exploit the richness of conversation theory for effective collaboration. This presentation will review key elements of conversation theory and describe our collaboration experiences with Forum MATRIX, a software application that runs in a Web browser and allows users to share and edit multi-media documents, plus make in-context links and notes

This is where Idea Mining (and perhaps fed wiki) bumps up against my normal approach for sharing what I read. Idea mining is focused on producing a short nugget summarising a particular idea. When I normally share what I read, it’s a summary of the whole paper (e.g. this one) not of an idea.

Sadly the paper didn’t delivery what I’d expected/hoped. See my standard summary if interested.

Running out of time, so perhaps straight onto catching up. Engaging is probably a more beneficial practice right now anyway

Catching up

Recent Changes

Connect to my fedwiki and away we go.

Interesting to watch the neighbourhood “icons” change as navigating from page to page. Notice also the indication that there is a “newer” version of the concrete lounge page. Appears @timklapdor has forked it and added a comment.

That’s one way to see changes, I wonder what the recent changes shows? A collection of changes, appears that @timklapdor has been busy and that he’s the only other person showing up on my recent changes. Suggesting he’s the only one in my neighbourhood? Perhaps because his is the only fedwiki I’ve forked pages from? We’ll see how that changes as I engage more.

Have been out to buy a Xmas present. In my absence my neighbourhood has grown. The list of “icons”/chicklets along the bottom has grown significantly. It appears there needed to be some time for all the connections to catch up. Suggesting that I needed to be connected to my fedwiki for this to happen. i.e. it didn’t happen overnight when I’m guessing much of this happened.

Which suggests that if I revisit my recent changes page, it should be significantly expanded. The image to the right success!

Now to catch up/find the good stuff and build.

Idea fracking

Idea fracking got a call out, so let’s start there. It appears idea fracking is almost an anti-pattern or in opposition to idea mining (not quite). But some of the origins of idea fracking arises from how ideas spread and one of the comments picks up on this “idea spreading”. Strikes me as two separate discussions, perhaps calling for two separate pages.

Do I add this as a comment? Do I do this by forking and adding, or can I edit the page directly as suggested in some of the other discussions going on? Does the video for daily #6 – which covers commenting – answer this? Not really.

Apparently @holden has a problem with comments. Comments are a way of avoiding fixing documents.

Which brings me to the other way of commenting, simply make the change and see what others thing/do. If others don’t like my change, can they remove it? Well, not from my copy, but they could from their own.

As I’m still getting used to fedwiki and still finding my way within the #fedwikihappening community, I’m loathe to take on the task of fixing the document, rather than commenting. Time’s also a factor.

I’ll leave idea fracking there and move on. Will be interesting to see how things evolve.

Reverse creativity, that scene in jaws and emergent development

Reading through this sequence of pages (it’s rather cool how with a single URL I can share the navigation sequence I used to get to this) ends with a comment apparently from Alan Levine (though he’s not using @holden’s recommended format, so I could be wrong about the identity. The point is the comment talks about software development experiences that aren’t driven by requirements and plans. This links to a topic near and dear to my heart – teleological versus ateleological processes.

Time to write an article, or at least to self-plagiarise. So

  1. Add a comment and link to the currently empty pages.
  2. Start writing the pages.
    Fedwiki doesn’t appear to like borders on tables.
    Oops, orange halo of death. Login. Ahh, have a lost stuff? No. Local changes has the stuff. Good. ANd here comes the neighbourhood back again.
  3. Think about whether there needs to be a broader process types page
    Added that article

Looking good

I’m starting to get a feel for fedwiki and am liking what I am experiencing. I could see how the type of community and process it supports could be valuable. Some questions

  1. How will it scale?
    The neighbourhood idea should help, but I wonder if it can become overwhelming.
  2. Can it scale?
    Is it too much of a change for folk to handle?
  3. Can I keep up?
    Haven’t had the time to engage more fully with the process. But keep in the cMOOC advice in mind, you don’t have to do/see it all.

References

Klemm, W. (2002). Software issues for applying conversation theory for effective collaboration via the Internet. Proceedings of the 2002 International Conference. Retrieved December 19, 2014, from http://www.cvm.tamu.edu/wklemm/Files/ConversationTheory.pdf

Starting to write for Fedwiki – Daily #4 (and 5)

Time to start using Fedwiki to do some writing.

While fedwikihappening has provided a Fedwiki for me, I’ve decided to go the “one of my own” approach and via various constraints will be using this one. Hopefully it may end up being connected with my nascent domain

Don’t think of it as a site

I have been thinking of Fedwiki as a site. Illustrated by the idea of “one of my own”. A site that is easily inter-connected with other Fedwiki’s, but still a site. So interesting to see the suggestion not to think of it as a site, but rather as a custom browser – “it is a custom piece of software your (sic) will use to browser federated wiki-space”.

Setting it up

My fedwiki is blank. I’ve claimed it, but time to add some information. The first suggestion is a bio page, in part because it can become your signature in federated wiki space. There’s a video that explains the process.

A little surprisingly we’re being discouraged from doing any heavy formatting in what we write. Makes it more difficult for reuse, apparently. Worries me a little. Will see how that pans out. And the suggestion that a normal linking approach should be limited to internal wiki links. Which does seem to be slightly ignored by some in appropriate contexts.

I’m a writer of raw HTML and my writing is littered with lists, headings and other layout/presentation artefacts intended to make it easier to understand. This means that the suggestion to do away with formatting will be a struggle. Hence the thought that I’ll start initially by sticking with the HTML stuff and see how that plays out. Perhaps a first sign of my inability to adapt to the new medium?

In my bio, I wanted to describe myself as a digital renovator and link to a fedwiki page that @holden has already created.

First attempt was to just us [[Digital Renovator]] and see if it auto-magically connects to existing stuff in federated wiki space. No, that didn’t work. Not that surprising.

Question: How do (can) I correctly link to @holden’s digital renovator page? Or is that very question showing my “old web” background? Time will tell.

I’ll leave that link to an empty page in my bio and fix it later on.

Oops, there’s the orange halo of death. Appears I got logged out. Back in we go. Hasn’t auto picked up that we’re back. Can’t find the icon to reconnect and push this back to the server. Back to the previous video. Ahh the icon I thought would do it was titled “Fork this page”, which I didn’t think was appropriate. But it does work.

Bio page done.

Connecting with others

The next task was to start Idea Mining.

Question: Actually is there a page on idea mining out in federated wiki space? How would I discover it? (Google?) How could I connect with it from my fed wiki?

The video above actually talks about how fedwikihappening folk can ask a question. But I assume that because I’ve got my own fed wiki, I’m not actually linked in with the other fedwikihappening wikis. I’m guessing @holden and his crew (is there a crew?) did some behind the scenes work to get this set up.

Which leads to what I want to do next

  1. Do I need to and how would I get links into the other fedwikihappening wikis?
  2. Can I find out if there’s already a page on an idea within federated wiki space?
    I assume a search would work. But I suppose the fedwiki approach might revolve around following interesting folk, seeing them post something interesting, and then forking their work. i.e. see task #1.
  3. Can I link/fork to another’s post?
    Is “link” even the right word in federated wiki space?
  4. Do a bit of idea mining.

Question: For this to

First stop is the “How to Wiki” page that is there by default in my (and all?) fedwikis.

The Follow Links page offers some explanation on the background.

I can see why #FedWikiHappening isn’t going down the path of explaining all this first up. Get people idea mining first without struggling with the difficulties.

Ahh, there’s the idea of a neighborhood.

The copy page has some suggestions by which you can manually view external pages, after a bit of experimentation (rather than search/read the documentation) I discovered this is the format I was after http://djones.federatedwiki.org/view/welcome-visitors/journal14.hapgood.net:3000/digital-renovator

This displays @holden’s page into my fedwiki – this really reinforces the idea of fedwiki being a browser. I cannot just do a Google search, find @holden’s page and enter the URL into my browser. Doing this appears to meant that I’m viewing federated wiki space through @holden’s browser, not mine. This is why forking will not work, because I don’t have permission on his wiki.

However, if I use the above method (or other methods that are simpler) then I am viewing @holden’s page through my fedwiki/new browser and here I do have permission to fork.

And now when I click on the “digital renovator” link in my bio page I get taken to my local copy of @holden’s page. And there are various ways back to his version.

There’s more here than meets the eye. Time perhaps to jump to the set task which seems a bit simpler and leave further exploration of fedwiki space to later.

Happening folks

My Generation by thjordan, on Flickr
Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License   by  thjordan 

But first, perhaps see if I can link to the happening folks.

  1. Take a link from @timklapdor’s fedwiki to the happening folks – http://tim.au.fedwikihappening.net/view/welcome-visitors/view/happening-folks
  2. Transform that into a URL that will allow me to view the page through my browser – http://djones.federatedwiki.org/view/welcome-visitors/tim.au.fedwikihappening.net/happening-folks
    I’m sure there is an easier way to do this
  3. Fork this page to my local site.
  4. Add a link to the beginning of my site.
  5. Update the list of happening folk to add in a link to my wiki.

    There seems to be some unique method being used to add those links. Not just straight internal links, but something extra. Need to explore the documentation a bit more.

    In theory, it appears dragging the URL of a fedwiki page and dropping it in a factory should do it, but not currently working for me.

Idea mining

The suggestion is that idea mining should arise from our regular reading. Be a summary of an idea that resonates. I can see the value in that approach, but I’ve been thinking about other uses. This time of year is when I finally get some time to think about my own ideas and writing. Recent paper presentation sand discussions have sparked a range of ideas, time to get those ideas out there and gather thoughts.

So create the December journal page and get writing. Ahh, now that I’m part of the neighbourhood I can see some related links appearing at the bottom of the blank page. That suggests to me that if I were to add a new blank page titled “React vs Respond” then fedwiki should suggest to me this page from @timklapdor with the same name?

Yes!!! Starting to get the hang of this.

Fork and comment experiment

Which suggests that if I visit Tim’s page and fork it, I can then make some comments/suggestions. The latest video talking about neighbourhoods offers to answer some of this.

So the approach appears to be

  1. Visit the page.
  2. Fork it locally.
  3. Add a comment down the end with a link to my bio page.

And look at the neighbourhood grow.

So, comments added. Will be interesting to see how well fedwiki lets Tim know about the comment.

Add my own

Time to add my own idea – Concrete Lounge. Will copy that page into another post on this blog.

Can I roll my own federated wiki? (not yet)

So I now have a federated wiki of my own. Rolled by the good folk of #fedwikihappening.

But it doesn’t feel like it’s mine. It’s on someone else’s server. Which sort of defeats the purpose of a federated wiki a little. Though I do recognise it makes it easier for folk to get started, which may not be a good thing?

The question this post is attempting to answer is, can I roll my own federated wiki?

Easy but not quite a good fit

There are some easy methods for installing the tool

However, it assumes a certain type of environment. One that I don’t have at the moment. I may have to get such an environment, but let’s see if I can kludge it into the environment I do have.

Use the source

Kludging will require playing with the source. So download that.

A source that would appear not destined for command line installation. Not a lot of suggestions how to do that. At least until you find the installation guide.

Will use this to install it locally and explore what is required. Will figure out if and what might be required for hosting in the cloud later.

Ahh, it appears that the installation guide is slightly out of date. The following doesn’t work with the current code
cd Smallest-Federated-Wiki/server/express

But the first step of that installation guide was to install NodeJS, which provides the npm command which is used to do the default installation approach.
npm install -g wiki
But that breaks if you don’t have write access to /usr/local/lib/node_modules. Suggesting I’d need to install NodeJS in my user account on the remote site.

That appears to have worked. With everything in /usr/local/lib/node_modules

Installing locally

It appears that NodeJS can be installed locally by using the source. However, I wonder if I can run the wiki as a stand alone server on the host? Only one way to find out (short of asking).

Bugger, get a “virtual memory exhausted” error when compiling NodeJS. Initial searching appears to suggest that the problem is with a bug in the version of gcc – 4.4.x

Next steps?

Options include

  • Still need to answer the question whether or not I could run the wiki as a server on a different port.

    The docs might say.

  • Ask the good folk at reclaim hosting for some insights.
  • Follow @holden’s advice and go with another host that’s known to support fedwiki.

Fixing one part of the peoplesoft gradebook

The following is a development log of an attempt to fix one aspect of the Peoplesoft gradebook used at my current institution.

Why and what?

The problem

At the end of semester all assignment marks end up in the Peoplesoft gradebook. An old school web information systems that the academic in charge of a course has to use to do some last minute checks and changes. One of those changes is to change the grade for students who are within 0.5 of grade level. e.g. a student with a mark of 49.6 shouldn’t get an F, they should get a C (which is the pass mark).

Peoplesoft won’t do this. The academic has to manually scroll through the list of students (ordered alphabetically by student name) looking for those that in this range. Once found the new grade has to be manually entered into a textbox. This is a problem, especially if your class has a couple of hundred students.

The solution

The solution developed below is a Greasemonkey script that will automate this process. It will, once installed

  1. Detect that the peoplesoft gradebook is being displayed.
  2. Look for any students within 0.5 of a grade level.
  3. For each of these students found
    • Change the background for that row to red.
    • Place the upgraded grade in the appropriate textbox.
  4. Look for any students who have already been upgraded, change the background of their row to green.

How?

Identifying the gradebook

First initial problem is that the Peoplesoft gradebook is using iframes. Which complicates things a little. Especially in identifying the appropriate iframe and then getting the script to only activiate when the appropriate document is loaded. Not to mention no great surprise that we’re talking some really ugly HTML here.


The actual data for each student is spread over a row with XXX main cells each with div elements with specific ids (the $0 appears to increment per student)

  • win0divHCR_PERSON_NM_I_NAME$0 – span HCR_PERSON_NAM_I_NAME$0 contains the name
  • win0divSTDNT_GRADE_HDR_EMPLID$0 – span STDNT_GRADE_HDR_EMPLID$0 – contains the EMPLID
  • win0divSTDNT_GRADE_HDR_GRADE_AVG_CURRENT$0 – span STDNT_GRADE_HDR_GRADE_AVG_CURRENT$0 – has the result.
  • win0divSTDNT_GRADE_HDR_COURSE_GRADE_CALC$0 – span STDNT_GRADE_HDR_COURSE_GRADE_CALC$0 – has the grade
  • input text box with id STDNT_GRADE_HDR_CRSE_GRADE_INPUT$0 is where the changed grade might get entered.

It appears to be part of a form with the URL ending in SA_LEARNING_MANAGEMENT.LAM_CLASS_GRADE.GBL and appearing in an IFRAME with id ptifrmtgtframe – which I assume is a generic iframe used on all the pages.

So the plan appears to be for the script to

  1. Only respond for the broad URL associated with the institutional gradebook.
    Done via the standard Greasemonkey approach.
  2. Only kick into action on the loading of the iframe with id ptifrmtgtframe.
    This appears to work.

    var theFrame;
    theFrame = document.getElementById('ptifrmtgtframe');
    theFrame.addEventListener( "load", my_func, true );
    
  3. Check to see if the form SA_LEARNING_MANAGEMENT.LAM_CLASS_GRADE.GBL OR perhaps the presence of the ids from the table above
    Have modified the above to pass the frame in and was using that to determine the presence of the textbox. The problem is that there is a further complication to the interface. Jumping to the specific page in the gradebook (there are three) is being done by a “javascript:submitAction_win0(document.win0…..)”. This isn’t showing up as an on load for the frame.

    Found this post which talks about one potential solution but also points to someone who’s been doing this for much longer and in more detail.

  4. Have they included the number of students in the HTML? – no, doesn’t look like it.

A rough attempt to understand what is going on

  1. Faculty centre loads with list of courses.
    The standard entry into gradebookFix is run at this stage – alert is shown. And then the iframes load.
  2. Click on gradebook icon trigger the current iframe load event and shows the three different gradebook icons.
    The my_func function is run via an event listener for onLoad for the ptifrmtgtframe iframe. But this is only run the once as….
  3. Click on the “cumulative grades” doesn’t load a new iframe, calls the javascript:submitAction_win0 method.

The aim is to modify the click on the particular link so that something else happens. How about

  1. Modify onload to look for that link and add a onclick event.
    The id for the link is DERIVED_SSR_LAM_SSS_LINK_ANCHOR3. The problem is that attempting to add an event listener to this is not working. i.e. a call to getElementById is not working. Aghh, that’s because these things aren’t normal Javascript type objects, but special Greasemonkey wrapped stuff.

    var theLink = theFrame["contentDocument"].getElementById('DERIVED_SSR_LAM_SSS_LINK_ANCHOR3');
    
    theLink.addEventListener( "click", function(){ alert( "CLICK ON LINK CUMULATIVE" ); }, false );
    
  2. Have a function that is called on click.
    The struggle here will be that the click is actually the start of a query that results in the content being changed. But not necessarily recognised by Greasemonkey.

    Perhaps a timeout and then another bit of code like this might work. This could be tested simply be re-adding the on-click. This will sort of work, but again, is only set when the iframe loads for the first time. If any other navigation happens it won’t re-add any changes in.

    Have added it to the other two main links for gradebook. Possible this will be a sufficient kludge for now.

  3. Looks like we need to capture the submitAction_win0 method after all.
    Nope, have figured a kludge

Identifying the student rows

The following code segment will change the background/font color of the first student’s name

function updateResults(element) {    var name = element.getElementById('win0divHCR_PERSON_NM_I_NAME$0');
    name.style.backgroundColor = 'red';
    name.style.color  = 'white';
}

Above specifies the names of the different student fields. The difference is the number after the dollar sign – 0 up to the last.

Steps required here

  1. Identify how many students are on the page.
    Will be useful for a for loop to go through each. xpath might offer a possibility? JQuery? A simple while loop could also do the trick. Will go with that.
  2. Determine what to change
    Plan is

    • RED – need attention i.e. marks that should be over-ridden with suggested override in place.
    • GREEN – those that have already been over-ridden previously.
    • no colour/change – correct as is.

All done. Seems to work.