Category Archives: thesis

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.

A bit more exploration of identity

A bit more reading/thinking about identity in the form of reading Day et al (2006) and also in light of some conversations going on around identity and the Reclaim Project. More on my personal Reclaim my Domain project tomorrow, hopefully. Day et al (2006) was one of the readings set in the NGL course, meant to spark some thinking about identity and its connection with NGL.

Implications/questions

  1. How has the identity of the participants in NGL evolved over the last couple of weeks? A few have reported struggles with the change in “structure” the course has wrought, often due to their limited agency in being able to handle/respond.
  2. How does identity play out in the context of enterprise educational technology in Universities? (How) Does the amount of percieved agency one holds about your ability to “hack to suit our needs” the enterprise systems impact your identity at a teacher?
  3. If Goffman’s idea of being able to adapt the self is essential, then what does this say for the templated self and the limits it places on being able to adapt the digital self?
  4. What if any links have been established/discussed between agency and affordances?

Beyond the summary of the literature on identity, not sure I got a lot out of this reading.

Abstract

Recognitions that the environment in which teachers operate impact their identity. If identity is an influence on teachers’ sense of purpose, motivation, satisfaction etc, then investigating these impacts is important. Mentions the impact of “centralist reform contexts”. Looks at the research and then draws on a project with 300 teachers in 100 schools “which investigated variations in teachers’ work and lives and their effects on pupils” and finds that

identities are neither intrinsically stable nor intrinsically fragmented, as earlier literature suggests. Rather, teacher identities may be more, or less, stable and more or less fragmented at different times and in different ways according to a number of life, career and situational factors

Which challenges some of the propositions in this conversations. Perhaps not all that surprising that something as complex as identy(ies) influenced by complex environments demonstrates more complex behaviour. But perhaps increasing the argument for systems/tools that enable the complexity of change in identity(ies) to be more in the hand of the holder of the identity(ies).

Early notions of identity

Understanding selves – cognitive and emotional identities – central to work, lives and effectiveness. In this work of teachers, but perhaps more broadly. A dynamic tension between “structure (external influences) and agency (one’s ability to pursue the goals that one values)” have a significant influence.

Self and identity used interchangeably. Both complex drawing on philosophy, psychology, sociology and psychotherapy. Concept has evolved

  • Early ideas see it as “singular, unified, stable essence that was little affected by context or biography” the focus on individual creating concepts that lasted
  • Self-awareness and the perceived opinions of others a major influence on the construction of self extending to a “reflexive, learning process by which values, attitudes, behaviour, roles and identities are accumulated over time”.
  • Mead suggested the “generalised other” which included a range of values, roles, identities and many other attitudes that were integrated and influenced an individual’s view of self.
  • A view that the self is stable but “could take on different approaches to different social experiences based on the particular part played by they individual”.
  • But lives are multi-faceted – Goffman (1959) suggests we have a number of selves focused on particular roles, time and situation. Being able “to adapt the self was essential in order to effectively communicate the social processes within each situation”
  • Ball (1972) “separates situated from substantive identity – the situated is malleable, but there is a “more stable, core presentation of self that is fundamental to how a person thinks about himself or herself”.
  • Erikson (1959) from psychoanalysis identifies three stages/crises in adult life
    1. distantiation – readiness to define identity against threats
    2. generativity versus stagnation – goal oriented or coasting to disenchantment
    3. integrity versus despair and disgust

Teacher’s identity

Common thread is agreement that understanding of self is important to understanding beliefs, attitudes and actions. There’s research in teacher education that shows this and that’s it influenced by technical/emotional aspects of teaching, personal lives and the social, cultural and institutional environment. Perhaps because that teaching “demands significant personal investment”. Lots of that research summarised.

References

Day, C., Kington, A., Stobart, G., & Sammons, P. (2006). The personal and professional selves of teachers: stable and unstable identities. British Educational Research Journal, 32(4), 601–616. doi:10.1080/01411920600775316

#moodle Activity Viewer (MAV) and the promise for bricolage

I’ve spent the last few days – on and off – getting the Moodle Activity Viewer installed on my local Moodle instance. There were two main reasons for doing this

  1. Analyse how students were using my 2013 course sites.

    This will be the topic of later posts.

  2. Lay the foundation for exploring MAV as a platform for bricolage.

    This is the topic of this post.

Rationale

Over recent months I’ve heard various statements of the form “We know all there is to know about online learning and teaching”. Statements that reflect the perspective that the provision of quality learning and teaching at universities is a tame problem. It typically arises from experts – be they instructional designers or information technologists – and from people in “leadership” positions. Those in “leadership” positions seem increasingly convinced that leadership is the design of a single solution/vision to a problem and the successful implementation of that vision.

The problem is that by seeing “quality learning and teaching” as a tame problem they believe that it can be “solved in a linear fashion using straightfoward, reductionist, repeatable, sequential techniques”. As a consequence, you get the organisational decomposition of skills into different organisational units. This decomposition prevents connections between the disparate knowledge bases of technology, pedagogy, content and context. The difficulty (impossibility) of making these connections limits the capability of organisational learning and teaching to learn and improve.

What’s worse is that the “tame problem” perspective results in the adoption and perception of technologies (e.g. the LMS) as immovable. This results in the situation where if the technology doesn’t well support a particular pedagogy, then you better change the pedagogy because changing the technology is too hard. Again limiting the capability of organisational learning and teaching to learn and improve its practice. It also leads to the problem identified by Ciborra (2002)

..if every major player in the industry adopts the same or similar applications, any competitive advantage evaporates.

On a more personal level, all of this results in crappy systems that don’t actively help me improve the learning of my students.

For me, using technology to improve learning and teaching is a complex or wicked problem. The type of problem where lots of small scale, rapid experiments are the best way forward. The infrastructure underpinning MAV seems to be the best current foundation to enable this.

How MAV works

MAV is a plug-in for the Firefox plugin that communicates with a MAV server that provides access to a database. It enables the modification of a web page produced by Moodle. Currently it will modify a Moodle course page by adding a heatmap representing how particular groups of students have used the resources and activities on the course page.

It changes something that looks like this

Without heat map by David T Jones, on Flickr

Into something that looks like this

EDC3100 S2, 2013 - heat map by David T Jones, on Flickr

Now this is somewhat useful for a teacher wanting to understand how various aspects of a course site have been used (or not). It can be argued that this information is available via other means (e.g. Moodle’s activity report), but I’d suggest that the in-situ, colourful representation provided by MAV provides some additional affordances that the activity report doesn’t provide.

MAV does this using the following process

  1. I visit my course’s home page in Moodle.
  2. MAV recognises this as a Moodle course page and adds an “Activity Viewer” option to the Moodle settings.
  3. If I’ve turned MAV on, MAV then sends a request to the MAV server asking for how many students or clicks there have been on all of the links on the course page.
  4. The MAV server queries a copy of the Moodle database and sends the results back to MAV.
  5. MAV changes the background colours for all of the links (or it can change the size of the text) to represent usage. MAV also adds some text with the actual number of clicks or students.

But MAV’s real strength isn’t what it currently does, it’s how it could be used to support bricoloage.

It’s on my computer

The version of MAV that produced the above screen shots is running on my computer. The server is running on my computer. This means that I can write extensions to MAV to solve the problems I encounter when trying to support 300+ students in a course. If I come across a problem during semester, I currently have three options:

  1. engage in the heavy-weight processes associated with trying to get something changed in these systems (which probably won’t be able to be changed anyway); or
  2. implement some manual work around to solve the problem;

    e.g. create a zip file for each of the 60 assignments I marked and manually upload each one individually into the system.

  3. make do without.

For example, the pre-service teachers who take my course come from a range of sectors including early childhood, primary, middle years, secondary (content specialisations) and vocational education. The type of response I should give to a question can depend on the pre-service teacher’s sector. The Moodle discussion forum will tell me the name of the person who asked the question, but it doesn’t provide any other information. In fact, it can’t because information about a pre-service teacher’s sector is very specific to Bachelor of Education students and so is not part of the information from the university’s student records system that is inserted into Moodle.

It should be fairly easy to write a MAV extension that whenever it sees a student’s name, adds to the name the student’s sector. Perhaps even a mouse-over that shows a range of information about the student, perhaps including some personal annotations I’ve made about the student. Perhaps documenting (and reminding me of) the various unique complications that impinge on the lives of my students.

With MAV (and my capabilities), I can implement this modification without having to engage in the heavy-weight institutional processes. I can engage in bricolage.

This example probably doesn’t excite the learning theorists or instructional designers. It doesn’t offer any large change in the fundamental practice of pedagogy supported by an appropriately convoluted theoretical framework. It’s somewhat prosaic, simple, and only a very small change. But then such people don’t really get the concept of complex adaptive systems and bricolage (see below).

An aside on requirements gathering

I almost didn’t include the “pre-service teacher sector” example above. I found myself not being able to think of an example about how I might use MAV. This is not indicative of there not being a need for this sort of approach. It is indicative of limitations of human cognitive capabilities/memory and the stupidity of the assumptions underpinning traditional requirements gathering processes.

My difficulty in identifying example arises from the observation that I’m not currently teaching the course. Asking for requirements when I’m not engaged in an activity, is always going to result in significantly fewer and less detailed requirements than asking me while I’m engaged in the activity or actively observing me. And yet, how do organisations gather requirements for new systems? Months or years before people actually start using the system, they ask people, “What would you like to do with this system?”

The value of bricolage

Of course bricolage is always frowned upon by organisational folk. Bricolage is messy. It can lead to the ultimate evil in organisational IT – shadow systems.

But there is another perspective, again from Ciborra (2002)

If these approaches look rough compared to neat and tidy formal procedures, they are on the other hand highly situated: they tend to include an added element of ingenuity, experience, and skill belonging to the individual and their community (of practice) rather than to organizational systems. Finally, they all seem to share the same way of operating: small forces, tiny interventions, and on-the-fly add-ons lead, when performed skilfully and with close attention to the local context, to momentous consquences, unrelated to the speed and scope of the initial intervention. These modes of operation unfold in a dance that always includes the key aspects of localness and time (the ‘here and now’); modest intervention and large scale effects; on-the-fly appearance but deeply rooted in the personal and collective skill and experience

And drawing on research projects into Strategic Information Systems, Ciborra (2002) goes onto argue that

The capacity to integrate unique ideas and practical design solutions at the end-user level turns out to be more important than the adoption of structured approaches to systems development or industry analysis

and more directly for those who know the answers

All these cases recount the same tale: innovative, strategic applications of IT are not fully designed top-down or introduced in one shot; rather they are tried out through prototyping and tinkering. In contrast strategy formulation and design take place within pre-existing cognitive frames and institutional contexts that usually prevent designers and sponsors from seeing and exploiting the potential for innovation hidden in the artefacts….SISs (strategic information systems) emerge when early adopters are able to recognize, in use, some idiosyncratic features that were ignored, devalued, or simply unplanned.

References

Ciborra, C. (2002). The Labyrinths of Information: Challenging the Wisdom of Systems. Oxford, UK: Oxford University Press.

Creative Commons, Flickr and presentations: A bit of tinkering

The following is a summary of some tinkering to develop a script that will help me appropriately attribute use of Creative Commons licensed images in presentations. Beyond addressing a long-standing problem of mine, this bit of tinkering is an attempt to feel a bit productive.

The problem

When I give presentations I use Powerpoint (not inherently the problem). I use it in a particular way. Lots of slides, little if any text, and each slide with an interesting photo related to the point I’m trying to make. What follows is an example. (Move beyond the first slide for a feel).

The images are all licensed with a Creative Commons licence and I source them from Flickr via the Creative Commons search. According to this source

All Creative Commons licences require that users of the work attribute the creator. This is also a requirement under Australian copyright law. This means you always have to acknowledge the creator of the CC work you are using, as well as provide any relevant copyright information.

The document continues with “For many users of CC material, attribution is one of the hardest parts of the process”. My current practice is to include the URL of the original image on Flickr on each slide. This has three problems

  1. It adds text to each slide, taking away some of the impact of the image.
  2. Doesn’t fulfil the requirements of the CC licence.
  3. With this style of presentation, most 20/30 minutes presentations are getting close to 100 slides often with the same number of images to attribute.

The requirements are

you should:
  • Credit the creator;
  • Provide the title of the work;
  • Provide the URL where the work is hosted;
  • Indicate the type of licence it is available under and provide a link to the licence (so others can find out the licence terms); and
  • Keep intact any copyright notice associated with the work.

There are a range of online services that help with attribution. ImageCodr generates HTML, which I use often. flickr storm does a similar task somewhat differently. The Flickr CC helper will generate HTML or text.

To fit with the workflow I use when creating presentations, I’m after something that will

  1. Parse a text file of the format

    1 http://my.flickr.com/photo
    2 http://my.flickr.com/photo2

  2. Use the Flickr API to extract the information necessary for an appropriate CC attribution.
  3. Add that to a text/HTML file that will form a “credits” slide at the end of a presentation.

    As per the advice from this source

    Alternatively, you can include a ‘credits’ slide at the end of the show, that lists all the materials used and their attribution details. Again, you should indicate the slide or order so people can find the attribution for a specific work.

  4. Optionally, add a message to the photo on Flickr summarising how/where the photo has been used.

Tinkering process

What follows is the planned/actual tinkering process toward implementation of a solution as a Perl script. The script will use the Flickr API to extract the licence information and hopefully add a comment.

Flickr API working – extracting information

Perl has a range of Flickr related modules. Flickr::API2 seems to be the current standard.

The flickr.photos.licences.getInfo method gives a list of all the licenses. When you get a photo by id (part of the URL) Flickr returns a licence id with which you can find the URL and name of the licence for the photo.

Some limitations of the information

  • Flickr doesn’t provide the abbreviation for the CC licences.
    hard-coded into the script.
  • The url_l method for Flickr::API2 doesn’t seem to be working.
    that’s because it’s not a method – page_url works.
  • The owner_name method for Flickr::API2 doesn’t seem to always reliably return the owner’s name.
    Use the username as a supplement.

Generating credits page

Initially, I was going to copy the format used by the flickr cc attribution helper i.e.

cc licensed ( *ABBR* ) flickr photo by *username*:
*URL*

But this suggests that the title of the work and a link to the licence is also required (though it does mention flexibility). The format they’re using is

*title* by *name* available at *url*
under a *licence name*
*licence url*

Will do this as simple text, single reference to a line. Will also add in the slide number.

After a bit of experimentation the following is what the script is currently generating

Slide 2, 3: “My downhill run!” by Mike Mueller available at http://flickr.com/photos/mike912mueller/6407874723 under Attribution-NonCommercial-ShareAlike License http://creativecommons.org/licenses/by-nc-sa/2.0/

Slide 4: “Question Mark Graffiti” by zeevveez available at http://flickr.com/photos/zeevveez/7095563439 under Attribution License http://creativecommons.org/licenses/by/2.0/

Slide 1: “Greyhound Half Way Station” by Joseph available at http://flickr.com/photos/josepha/4876231714 under Attribution-NonCommercial-ShareAlike License http://creativecommons.org/licenses/by-nc-sa/2.0/

Modified to recognise that I sometimes use an image on multiple pages. I should perhaps add a bit of smarts into the code to order the slides correctly, but time is short.

Adding comment on Flickr

The flickr.photos.comments.addComment method seems to offer what I need. Of course it’s not that simple. To make a comment the script needs to be authenticated with flickr. i.e. as me.

The documentation for Flickr::API2 is not 100% clear on this and the evolution of authentication means that flickr is moving on, but the following process seems to work

  • Get a “frob”
    use Flickr::API2;
    my $api = Flickr::API2->new({
                    'key'    => <em>mykey</em>,
                    'secret' => <em>mysecret</em> });
    my $result = $api->execute_method( 'flickr.auth.getFrob' );
    my $frob = $result->{frob}->{_content};
    
  • Get a special URL to tell Flickr to authorise the script
    my $url = $api->raw->request_auth_url( 'write', $frob );
    print Dumper( $url );
    # wait until I visit the URL and hit enter
    <STDIN>;
    
  • Get the token
    my $res = $api->execute_method( 'flickr.auth.getToken', { 'frob' => $frob} );
    print Dumper( $res );
    
  • Copy the token that’s displayed and hard code that into subsequent scripts, including adding a comment using my flickr account.
    my $comment =<<"EOF";
    G'day, This is a test comment. 
    EOF
    my $response = $api->execute_method( "flickr.photos.comments.addComment",
                          { photo_id => 3673725336, comment_text => $comment, 
                            auth_token => <em>the token I got</em> } );
    

Put it all together

I’m going to use a small presentation I use in my teaching as a test case. I’ll hardcode the link between image and slide number into the initial script. Longer term the script will rely on there being a text file of the format

1,flickr photo url
2,flickr photo url

(see below for some ideas of how I’ll do this)

It all works. Up above you can see the credit text produced based on a small presentation I use in my teaching. The following is one of the images used in that presentation. If you click on the image you can see the comment that was added by the script.

Greyhound Half Way Station by joseph a, on Flickr
Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic License  by  joseph a 

What follows are various bits of the script, happy to share the file, but I don’t imagine that there’s a lot of folk with Perl installed and configured that would want to use it. There needs to be some more work tidying up and adding in error checking. But it works well enough for now.

The main logic of the script is

use strict;
use Flickr::API2;

# hard-code abbreviations for CC licences based on Flickr id
my %CC = ( 1 => "BY-NC-SA",  2 => "BY-NC",  3 => "BY-NC-ND",
           4 => "BY", 5 => "BY-SA", 6 => "BY-ND" );

my $TOKEN = "my token";
my $auth = {
    'key'    => 'my key',
    'secret' => 'my secret' 
};

# which flickr URLs appear on which slides
# flickr photo URL is the key, value is array of slides on which the image appears
my $PHOTO_SLIDES =
{
    'http://www.flickr.com/photos/7150652@N02/4876231714/' => [ 1 ],
    'http://www.flickr.com/photos/27933068@N03/6407874723/' => [ 2, 3 ],
    'http://www.flickr.com/photos/zeevveez/7095563439/' => [ 4 ]
};

my $COMMENT =<<"EOF";
--whatever comment I want to add
EOF

my $API = Flickr::API2->new( $auth );
my $credits = generate_credits( $PHOTO_SLIDES, $API );
add_comment( $PHOTO_SLIDES, $COMMENT, $API );
print $credits;

To add the comments (I’m guessing the extraction of the Flickr ID will break eventually)

sub add_comment($$$) {
    my $photo_slides = shift;
    my $comment = shift;
    my $api = shift;

    foreach my $photo_url ( keys %$photo_slides ) {
        if ( $photo_url =~ m#http://www\.flickr\.com/photos/.*/([0-9]*)/# ) {
            my $id = $1;
            my $response = $api->execute_method(
                "flickr.photos.comments.addComment",
                { photo_id => $id, comment_text => $comment,
                  auth_token => $TOKEN } );
        }
    }
}

And finally generating the attribution information

sub generate_credits( $$ ) {
    my $photo_slides = shift;
    my $api = shift;

    ## Get the licence options
    my $response = $api->execute_method( "flickr.photos.licenses.getInfo" );
    my $licences = $response->{licenses}->{license};

    my $content = "";

    foreach my $photo_url ( keys %$photo_slides ) {
        # extract the id
        if ( $photo_url =~ m#http://www\.flickr\.com/photos/.*/([0-9]*)/# ) {
            my $id = $1;
            my $photo = $api->photos->by_id( $id );

            #  get the licence
            my $info = $photo->info();
            my $licence = getLicence( $info->{photo}->{license}, $licences);
            die "No CC licence found for $photo_url\n"
                if ( ! defined $licence ) ;
            $content .= displayInfo( $licence, $photo, $info, $photo_slides->{$phto_url} );
        }
    }
    return $content;
}

sub displayInfo( $$$ ) {
    my $licence = shift;
    my $photo = shift;
    my $info = shift;
    my $slides = shift; # array of slide numbers

    my $slide = join ", ", @$slides;

    my $url = $photo->page_url;
    $url =~ s/ //g;
    my $name = $photo->owner_name;
    $name = $info->{photo}->{owner}->{username} if ( $name eq "" );

    return <<"EOF";
Slide $slide: "$photo->{title}" by $name available at $url under $licence->{name}
$licence->{url}

EOF
}

sub getLicence( $$ ) {
    my $id = shift;
    my $licenses = shift;

    foreach my $licence ( @{$licenses} ) {
        return $licence if ( $id == $licence->{id} );
    }

    return undef;
}

Getting the URLs of images

The final script assumes I have a text file of the format

The question of how to generate this text file remains open. I can see three possible options

  1. Construct the file manually.

    This would be painful and have to wait until after the presentation file is complete. Manual is to be avoided.

  2. Extract it from the Slideshare transcript.

    As well as producing an online version of a presentation, Slieshare also produces a transcript of all the text. This includes flickr photo URLs. This currently works because of my practice of including the URLs on each slide, something I’d like to avoid. As a kludge, I could probably include the URL on each slide but place it behind the image. i.e. make it invisible to the eye, but still to slideshare?

  3. Extract it from the pptx file.

    Powerpoint files are now just zip file collections of xml files. I could draw on perl code like this to extract the URLs. Perhaps the best way is to insert the Flickr URL of the photos used in the notes section (as they too are XML files).

#3 is the long term option. Will use #2 as my first test.

Statistics in Education – Week 1

Have signed up for another MOOC – Statistics in Education for Mere Mortals – to fill a hole. What follows is the diary of the first week.

According to the syllabus, I’m already a bit behind.

So the instructor is doing some research around participation – one of the motivations for offering the course. Google map of participants. Seems I’m #2 for Queensland. Concentration seems to be Eastern US.

Canvas

The MOOC is being run using the Canvas LMS. Second time using the system. Am finding it interesting that there seems to be in-built support for the idea of a learning path. The series of activities/resources is sequential and the system seems to support that. The lack of support for this type of functionality in Moodle is something I’ve missed. Finding the ability to step through each step sequentially appealingly efficient.

Research questions

Will be interesting to see the research that comes of this. Have to admit to some of the questions leaving me a little underwhelmed.

First presentation

And the content begins. A 20 minute video. Lecture with a talking head in the bottom left hand corner, which disappears when the slides start. No annotation of the slides during the lecture, might have helped in places.

:) A “wii play station” as a type of video game console.

Good quote

Measurement is limiting the data … so that those data may be interpreted and, ultimately, compared to an acceptable qualitative or quantitative standard

Data limited by: measurement construct; instrument capability; amount of raw information we are prepared to deal with

Need to think about this applies to analytics. Data mining has approaches to get around this limitation of statistical approaches.

Metaphor

Isolating meaningful data when conducting most research studies is like …. filling a tea cup with a fire hose

Four scales of measurement

Different scales suggest different operations are possible.

  1. Nominal scale – Frequency distribution

    Nominal == name. Numbers are used as a name, not as a quantity. Doing arithmetic on these numbers is nonsensical.

  2. Ordinal scale – median and percentiles

    Ordinal == order/ranking. e.g. ranking preferred candidates.

  3. Interval scale – add or subtract, mean, standard deviation, standard error of the man
    • Has equal amounts of measurement.
    • Zero point established arbitrarily.

      e.g. temperature and 0 degrees.

    • Can determine, mean, standard deviation, and product moment correlation.
    • Can apply inferential statistical analysis.
  4. Ratio scale – ratio
    • Equal measurement units.
    • Has an absolute zero point.
    • Expresses values in terms of multiples and fractional parts and the ratios are true ratios (e.g. ruler )
    • Can determine geometric mean and percentage variation
    • Can conduct virtually any inferential statistical analysis

Measuring temperature is given as example of interval scale. Where you can’t say 40o is twice as hot as 20o. It’s just an interval, not a ratio. Where as length is.

Types of Statistics

Presents two

  1. Measures of central tendency – first module
  2. Measures of variability – second module

Measures of central tendency

  • Mean – average of a set of numbers
  • Median – the number at the midpoint of a set of numbers.
  • Mode – the most popular number.

All are the same in a normal distribution. But not in a skewed distribution.

So the statistics in this course assume a normal distribution. Seems limiting.

In passing the central tendency gets defined as the number that best represents a group of numbers. The explanation of median/mean would have been better illustrated visually, rather than by narration of a text-based powerpoint slide.

Normal distribution

Woo hoo. Narrated lecture + graphics tablet.

As the description of the normal distribution proceeds, I’m wondering how on earth I would ever be doing anything that would have data in a normal distribution? But perhaps just indicates the value of “central tendency”.

The Galton Machine

A bit of fun. Link to Java applet.

Computing the man of a set of scores

It appears that Excel will be the statistical software of choice. Perhaps including some auto marking of student work. The first is a simple task to test this out. Apparently going to take an hour to do. 11 minutes in, not sure how it could drag on that long.

It will be interesting to see how many questions arise from simple technical issues – like using different versions of Excel. Shall also be interesting to see how the difficulty of the activities grows.

Interesting that the quiz self evaluation asks for results in tenths, but the quiz system wants to add a couple of zeros to the end. I can see that throwing a few people off.

Woo hoo. 100%.

The next page after the quiz is a discussion forum for general help. There are a few folk reporting problems. Especially with the second and third questions. I’m guessing this arises from this combination of factors

  1. The video creating the spreadsheet only rounded off results in set of averages, and not the averages that would be used for the second and third questions. It didn’t need to, because that data meant the averages were rounded to a tenth
  2. The new data doesn’t result in data rounded to the tenth.
  3. The quiz question asks for results rounded to the tenth.

In entering the new data, I added the rounding. But I imagine others didn’t.

Appears that other folk didn’t modify their existing spreadsheet.

Ahh, other folk from China and Pakistan reporting being unable to access the YouTube videos.

Descriptive statistics – Standard Deviation

Onward and upward.

Statistic has two meanings: a description or an estimate about population.

Mm, the video didn’t do a great job of clearly defining the difference betwen sample and population. Use an example, but didn’t clearly define it. Google is my friend.

And here comes the terminology

  • Population – “a set of entities concerning which statistical inferences are to be drawn.
  • Sample – a subset of the population.

The questions

  1. Collecting data on a population?

    Describe the population using a parameter.

  2. Want to know about a population, but can only collect data on a sample?

    Sampling gives the sample and then we do a description using a statistic, which is then used to make an inference about the parameter for the population.

  3. Only collecting data on a sample?

Mmm, seems Broad is cleaning up in Durham.

Here comes the maths and symbols.

Population is mu. Sample is Summation of X i.e. X bar (a bar over the top of X).

So, we did central tendency above. That’s one type of descriptive statistic. Now it’s the other main type of descriptive statistics. Measures of variability. Kurtosis – shape of the curve, it’s peakedness.

Three methods to measure variability

  1. Range – Difference between high and low scores.

    Only tells the difference between two scores. Ignore the others.

  2. Deviation scores – Computer the difference between each score and the grand mean.

    Now take the average. Well the average of this always 0.

    This is described, could have been much better with a visual.

  3. Standard deviation

    Square the difference scores first (gets rid of the negatives). Then take the square root.

 by kxp130, on Flickr
Creative Commons Attribution-Noncommercial 2.0 Generic License  by  kxp130 

When estimating the population parameter for a sample has a N-1, rather than N. Why? Apparently a rule thumb developed over time, imagine there must be some research behind it. Instructor admits not a good explanation. It’s a problem area.

At this point, interesting that there hasn’t been much placement of why we’re doing this.

Another example with this table where some visualisation accompanying the verbal explanation would have helped.

And now the difficult stuff. What does a SD of 8.66 mean?

If all sold the same then SD = 0. If all sold about the same, then SD should be small. But what is considered small?

And now another Excel exercise, apparently 26 minutes of video == 90 minutes worth of activity. I don’t think so….really dragging now. Small win. Picked up an Excel tip.

2nd quiz done. I think I’ll stop there for the night. Time to watch some cricket and read a book.

Professional development is created, not provided

Over recent weeks I’ve been so busy that I’ve largely ignored Twitter. To my detriment. A quick return to it this afternoon found me following two links via tweets from @palbion. The two links were

  1. How effective is the professional development undertaken by teachers?, and
  2. Removing the lids of learning.

The first is a blog post outlining the many limitations of professional development as practiced in schools and many other locations (e.g. the L&T PD at Universities) and suggesting how it can be fixed to become both “useful and cost effective”. This post troubled me greatly. I agree that much of Professional Development is essentially worthless. But at least two aspects of the post troubled me.

The assumption that impact on student learning outcomes is the only true measure of the value of Professional Development worries me significantly. It’s simplistic in that it reduces the complexity of schools, teaching and teachers to a single measure. The practice of such abstraction is always going to lose something. But worse, if you focus everything on one particular measure and it becomes a target, it’s useless. i.e. Goodhart’s law

But what really bugged me was that the solution to the woes of Professional Development was better Professional Development. I disagree. I think you have to get rid of Professional Development and replace it with learning. i.e. the teachers (and academics) essentially have to continue learning. Here’s my provocative proposal

Professional development is mostly a solution provided by management due to flaws in the system that management preside over.

i.e. the education (or university) system – in its broadest understanding – is set up to make it difficult for the members of that system to learn and more importantly make changes based on what they learn.

The post actually makes the point itself when it says

Fortunately there have been a raft of reports (e.g. from EPPI and from Ofsted, among many others) that tell us exactly what to look for, and the good news is that great teacher learning is a remarkably similar beast to the great pupil learning.

Slide 19 of the Removing the lids of learning presentation by Dean Shareski contains the following quote from Stephen Downes

We need to move beyond the idea that an education is something that is provided for us, and toward the idea that an education is something that we create for ourselves.

I suggest that you can replace “education” with “professional development” and as a result you identify the solution to the problem of Professional Development.