Wednesday, December 17, 2014

Office 365 Moodle Integration Project - Progress

Along with the OneNote integration, discussed in my last post, the work with Microsoft Open Technologies has also produced two integrations with Office 365. The first is an integration with Outlook calendars and the second is a OneDrive for Business integration. In this post, I will describe and provide brief demos of the Outlook calendar integration.

The Outlook calendar synchronization allows Moodle calendar events to be synchronized back to your Outlook calendar. If you are someone who uses an Outlook calendar as a key tool, I think you will find this very useful.

This particular functionality has been built to use Office 365 for Business, meaning that it expects everyone on the site to have an Office 365 for Business account. Users without these accounts will not be able to synchronize to their Outlook calendars.

The function will allow Moodle users to connect their personal Moodle calendar, and any course calendars they have access to. To set up the calendars to connect, a local plug-in has been created. As well, a user profile field plug-in has been provided that can be added to each user's profile, providing access to the calendar sync configuration page.

Once I have logged into Moodle with my Office 365 AzureAD account, I will be able to access these functions. Looking at my profile, I will see two Office 365 functions: "AzureAD" and "Office365 Connection". The next image shows this screen:


Clicking through the "Manage" function for the "Office365 Connection", I get to the "Outlook Calendar Sync" page. This is where I can select the specific Moodle event types I want to synchronize back to Outlook:


Once I have selected my calendars, any changes to those Moodle event types will be reflected in my Outlook calendar as well. In this case, I will see any personal Moodle events and any Moodle events from the "Moodle Integration Project" course.


In the above image, there are two events in my course Moodle calendar. On the 14th, there is a personal event, and on the 16th a course event. We can see the details of the course event in the image. When I look over at my Outlook calendar, I see the same two events:


In my next post, I will discuss the OneDrive for Business integration. It takes advantage of Sharepoint to allow shared course directories as well.

If you want any more information on how you can benefit from these developments, contact Remote-Learner at moodleo365@remote-learner.net.

Friday, December 5, 2014

OneNote Moodle Integration Project - Progress



In my last post, I started talking about the work we are doing with Microsoft Open Technologies to create integrations with Moodle and a number of Microsoft technologies and applications. That work has progressed quickly, and we are now testing our first efforts. In this post, I will describe where we are with the OneNote / Moodle integration.

The work so far is focused on providing access to OneNote's notebook pages as repository selections and as assignment plug-ins. The current work has been done for the free, OneNote for Consumer application. In future phases, the commercial OneNote plug-in will also be added.

For the assignment plug-in, the key goal is to allow Moodle assignments to be created in OneNote, using any and all of OneNote's content features. Then, once the student feels their assignment is done, they simply need to click the Moodle assignment's "submit" button, and the student's Moodle assignment submission will be automatically associated with the OneNote page they worked on in OneNote. No downloading and uploading required. No conversion into Moodle compatible content required.

An additional feature developed allows the instructor to provide feedback to the provided submission using OneNote.

To get these features working correctly, a number of problems had to solved:
  • Establish a defined, secure connection between the OneNote application and the Moodle site.
  • Establish a defined, secure connection between each user's Moodle account and their OneNote account.
  • Connect a specific OneNote page in a user's OneNote account with a specific Moodle assignment submission.
  • Connect a specific OneNote page in an instructor's OneNote account with a specific Moodle assignment submission's feedback response.
  • Ensure that a specific submission can be "frozen" at the time of submittal, so that any changes that occur afterward can be prevented or allowed but visible.

I'll describe the approach taken for each problem.

A Moodle local plug-in establishes a secure connection between the specific Moodle site's instance of the Microsoft plug-ins and the Microsoft API's for OneNote. The plug-in works with Microsoft's "Live App management site" (https://account.live.com/developers/applications) to establish unique identifier and secret codes that ensure communication between the Moodle site and the OneNote API's are for the intended purpose. The connections are managed using OAuth 2.


This is set up by a Moodle administrator and configured into the plug-in as above.

A Moodle user can establish a connection to their OneNote account in several ways. In each case, the connection is live for the duration of the Moodle session, but is lost when the Moodle session is complete. Each time a user logs back into the Moodle site, the user will need to login to the OneNote account as well.

The OneNote account connection can be established by accessing the repository plug-in, by using the OneNote block or by using the sign-in button on the assignment plug-in. Using any of these options logs the user in for all OneNote plug-ins for that Moodle session.



The assignment submission plug-in allows the specific assignment to connect to a OneNote page for each user's submission. Once a user has logged into their Microsoft account, the assignment will offer a "Work on this" in OneNote button. Clicking this button will open the OneNote web application in a new browser tab, logged into the user's account.



If the OneNote page has not already been created (if this is the first time the user has opened this assignment), a new page will be created in a section for the Moodle course in a notebook for the Moodle site. Each of these will be created as necessary. Each book/section/page is given a name according to the Moodle site, course name, assignment name, user name and action (submission, feedback). These names are important, but data references are also kept in Moodle to keep the associations.



A user can then work on their OneNote assignment in any of the OneNote applications - web based, desktop application or mobile. When the user is happy with the assignment, in Moodle, they simply need to click the "Save changes" for their OneNote assignment submission. Doing this, records the submission in Moodle, provides a direct link to the OneNote page for the user and the instructors and uploads a zipped submission of the page in HTML format to the Moodle course assignment. This upload provides a snapshot in time of when the assignment was submitted, helping to control what was submitted with any changes made to the page after submittal.



On the instructor side of things, the student's submission is available to be reviewed in OneNote, reviewed as submitted zipped HTML pages and for feedback in OneNote. When the instructor opens the students OneNote submission in OneNote, that page is copied into the instructor's course section in their site notebook with a name identifying the assignment and the student. If the instructor elects to offer feedback using OneNote, a new page will be created in the instructor's notebook containing the content of the submission, allowing the instructor to provide feedback inline in the content. That feedback page will likewise be available to the student, by copying it into the student's notebook when the access it.



We are currently running this work through closed beta-testing, and it will available for more general beta testing in the new year. I think this add-on will be a very useful addition to the Moodle landscape, and look forward to seeing what people can do with it.

If you want any more information on how you can benefit from these developments, contact Remote-Learner at moodleo365@remote-learner.net.

Monday, October 27, 2014

OneNote, the Surface and Moodle

I recently (through my company, Remote-Learner) became involved in a partnership project with Microsoft Open Technologies. This project has the ambitious goal of providing tighter integration of a variety of new Microsoft products with Moodle. I'm very excited about this.

The products we are focusing on initially include OneDrive, OneNote, Outlook Calendar and the various pieces these integrations will support, such as the Office 365 applications and Azure Active Directory.

For me, this meant getting myself reacquainted with Microsoft technology and systems. I chose to buy a new Surface Pro 3 running Windows 8.

The Surface is an interesting device. From my perspective, it’s a tablet that tries to be a laptop when you want it to be. But in my experience so far, I like it far better as a tablet. And for me, the killer app is OneNote on the Surface.

If you are not familiar with OneNote (I wasn't), it has been around for a lot longer than you think - since at least 2003. If you're familiar with Evernote, its a very similar application. To put it simply, it is your collection of notebooks, available to you on all your devices. You organize each notebook into sections, and add pages to the sections. Pages can include your created notes, media, clipped information from the web and photos you take on the device. Kind of a notebook / scrapbook hybrid.

OneNote is integrated pretty tightly with the Surface. It comes pre-installed as a Surface app, meaning it works well with the tablet interface of Windows 8 and the Surface stylus. The stylus allows you to call up OneNote with a click of the button on the end (like clicking a ballpoint pen), and then write your note using handwriting, on the open page. For myself, I have really gravitated to using the stylus and OneNote to take quick notes, in the same way I used to use a pen and a pad of paper. And if you upgrade to OneNote 2013, you can use the "Ink-to-text" feature to turn your handwriting into a digital text document.

Marking up existing documents in OneNote is a great feature. For example, you can import a PowerPoint slide into a note, and then mark it up with your comments and drawings (if you use the stylus). Likewise with a clipped web page. And add-ons like Office Lens, let you use your device camera as a scanner, capturing notes on paper or whiteboards directly into your OneNote notebook. And you can then mark them up as needed. In fact (I haven't tried this yet), I believe you could even capture audio markup and place it in the page (I will try this and confirm in a later post).

You can share your notebooks with other collaborators, via email addresses. People you share with don't even need the OneNote app; they can use OneNote on the web as a web-based application. The OneNote notebooks and their content are all stored in the OneDrive cloud, making them available to any connected device.

Prior to using OneNote with my Surface, I was unsure what an integration of OneNote with Moodle would be good for, or how it would be useful. Now I really want to make this happen.

From a learning system standpoint, consider the markup and collaboration. As a Moodle assignment, OneNote could be submitted for grading. If the OneNote interface was used by all participants, teachers could mark up the submission directly on the pages. And, as a collaborative assignment, multiple users could work on the submission contributing and marking up existing content before submitting.

And that is where we have our focus right now. In the works are integrations to allow OneNote to become an assignment type. To be fair, OneNote can be used to create assignment documents to be submitted by upload to Moodle right now. OneNote allows the exporting of its notes as PDF's, Word docs or as single web pages. But we want to make it work without that extra step.

So, for the next little while, we will be working with the Microsoft Open Technologies group to build out the necessary Moodle pieces. As a start, these will include:

  • SSO with Azure Active Directory - necessary to make the account access between Moodle and the cloud seamless for the user.
  • OneNote and OneDrive repository plugins - give easy access to document in OneDrive and specific parts of OneNote.
  • OneNote assignment plugins.
I will post regular updates to our progress along with my thoughts and experiences with the technologies and how they can be further used with Moodle and the learning environment.

Watch this space for more information on what's coming and how you can be involved.

Friday, April 11, 2014

Chromecast - What have we got here?

Starting out

I'll be honest, I wanted to try the Chromecast out primarily to see how it would work as an entertainment piece at home, but I am curious to see if it has other potential applications for presentation in business and education. I already have a 1st gen AppleTV that has been jailbroken so it can run XBMC, and a Raspberry Pi that can run XBMC but this little dongle for $39 piqued my curiosity. Can it replace all of that and provide a highly accessible streaming point for any media source? If it can, and is as portable as it appears, it could be a device that sits in the classroom and any place where collaborative presentation can happen.

Setting up

To start, I can see that Google has taken a page from Apple's book and created attractive, fun-to-open packaging. The box is much heavier than expected, but I now see the weight is primarily the box; the device and adapter are as light as I expected.


The instructions were simple; there are three of them detailed on the inner box lid:

  1. Plug into TV & power.
  2. Switch TV input.
  3. Set it up at chromecast.com/setup.

And, it really was that simple. I plugged the dongle into the side HDMI port on my TV, plugged the power into the wall (turns out I could actually just plug the USB end of the power into the available USB port on my TV; I'll do that later), switched the TV to HDMI4, and I'm looking at a Chromecast setup screen:


The website link takes you to a download link to get the app you need to set it up. You can also download this app on any Android and iOS device. The only thing this app is needed for is to set it up and configure it later.

I used the app on my Nexus 7 Android tablet. The app found the new Chromecast device right away, and I had to enter the code it displayed on the TV to verify the connection. The only other things I had to do were change the name of the device if I wanted to (I did), and give it my WiFi password. After that, everything was automatic. A couple of automatic updates and a reboot later and it was up and running. I don't think it could be much easier.

Time to play:

I had the advantage of a room full of people when I first started it up. We had several devices and systems, Android and iOS. Each of us looked at our Youtube apps, and there was a new icon. This icon was similar to the Airplay icon on iOS devices, and selecting it allowed us to choose the new Chromeplayer device as output. Again, this was available on an Android phone and tablet, as well as an iOS phone and tablet, without doing anything to those devices first. The one exception was an iPhone in the group that had not been regularly updated. But, a quick App Store update to the Youtube app, and it too could use Chromecast.

Sticking with Youtube, we each were able to target a video play to the Chromecast. It is interesting to note that the way this works with Chromecast is not what I originally thought. When you play, you are not streaming the content from your device to the Chromecast. Instead, you are telling the Chromecast Youtube app to play the content you requested. In that sense, each of us is using a remote control. It also means that any device can request the play and then carry on doing anything else (I didn't check if I could power down, but I suspect not).

Testing other apps, all of the devices could similarly use Netflix, Vevo and Songza. The Android devices could also use Google Play Music and Google Play Movie. I believe the Google Play apps may allow streaming from the device but I have not verified that. The native music player on the iOS devices could not select the Chromeplayer however.

While playing with the Youtube app, we all discovered that the app on our device would show us what was playing on the Chromecast device, regardless of whether we were the ones who played it or not. We then realized that there was an "add to queue" option instead of "play". This allowed each of us to add a video to the playlist and not stop the one that was already playing. The queue was similarly visible to all of us. We quickly set the ground rules that no video (music only) could be aborted or removed from the queue without two thirds vote. And we each began to plan the music.

The queueing feature seemed to be Youtube specific, and did not exist on the Vevo app. I think this feature would be one that would be copied by many other Chromecast apps. It would be really interesting if it could become a standard part of the Chromecast itself, allowing all types of play requests to be queued.

Observations

We were all pretty excited about being able to queue up videos on the Youtube app, but we also would have liked to be able to send anything we had - music, videos and photos. It would also be good to have a "mirroring" option like with Airplay. These might exist, or might be in development. I still need to do a lot more looking and playing.

The fact that the basic functions were simply "there" for everyone without having to do anything was huge. Since the device is so portable, this makes it something that can be carried with you to other locations and easily used. All you need is an HDMI device, WiFi and power.

Looking ahead

The entertainment value of the device was very obvious. But to be true to my subject, could this be used for any kind of learning environment?

I think, this could be huge if it can just fill in the gaps. It has the ability to be a collaborative presentation tool replacing projectors, cameras, laptops, etc. Every person has a controller, a recorder, a camera and a media library. And they can all present to the common screen.

Why this can be huge, and some other things that are needed...

  1. Be completely cross platform. Out of the box, its pretty close. If it could allow direct streaming from all platforms as well, this would be a slam dunk. Cross platform would also make this a far better option than Airplay on Apple TV.
  2. The price point is amazing. $39 in Canada. This falls into just about everyone's budget. The more people who buy this and play with it, the more clever people will come up with great applications.
  3. It needs to be able to mirror the device screen. Airplay on iPhones and iPads can do this. Consider the power of using your device as a live camera in a walk around the room way. Consider the power of demonstrating your work.
  4. The collaborative queueing feature in Youtube gives a hint as to how this could be used in an active, exciting way. Imagine collaborative groups getting their items into the play queue, and then have feedback/voting actions on the queue. Queueing and queue control at the device level would be very interesting.
The best part of this is that any of these outstanding needs could be filled by the community of app creators. I think I need to go learn app development.


I'll post again about this when I see or learn more.