Author Archives: Charles Severance

Dr. Chuck Coursera Office Hours in India in October and December

This Fall, I will be coming to India twice to give talks.  I will be attending these conferences and giving talks:

PyCon India October 6-7, Hyderabad

https://in.pycon.org/2018/

IIT Techfest, December 14-16, Mumbai

https://techfest.org/

I will also be visiting Microsoft in Bangalore on the December trip to give a talk.

So I would like to arrange office hours in Hyderabad, Bangalore, and Mumbai as part of these trips.   In order to help me make arrangements (reserving venues, etc), if you might be able to attend the office hours, please fill out the Google form:

https://goo.gl/forms/wncHE3TR8WSfXGGu2

Once I make arrangements with exact dates and times I will send another announcement to the class.

I a very excited as this will be the first time I have ever been to India :)   So I hope to have a chance to meet as many of you as I can on these trips.’

Progress on LTI 1.3 and LTI Advantage in Sakai and Tsugi

I have been making good progress towards LTI Advantage in Sakai – the following have initial implementations and are in Master:

– LTI 1.3 Core

– LTI 1.3 Basic Outcomes

– LTI 1.3 Lineitem

– LTI 1.3 Names and Roles (with a Groups extension available)

The specs are still somewhat in flux so as we clean up bits here and there the code will evolve but the major work is in place.  

Like I have mentioned before,  I have a nice set of utility routines in to handle OAuth 2.0, Access Tokens, Java Web Tokens, and PKI message signing.  The speed at which I can roll out new web services using the LTI 1.3 security model is pretty amazing.   I adapted the old Sakai memberships extension to become LTI 1.3 Names and Roles with the OAuth 2.0 security model in less than two days because of the nice OAuth 2.0 infrastructure I have built.

As Sakai evolves, so does Tsugi.  I use Tsugi to test all the Sakai LTI 1.3 implementations.  I have built an LTI 1.3 test harness in Tsugi that exercises the LTI 1.3 APIs:

https://github.com/tsugicontrib/lmstest

I will get this into production on one of my Tsugi servers so when I write LTI 1.3 QA documentation we will have a ready made server to work with.

You can track activity this by watching the JIRAs connected to this JIRA:

https://jira.sakaiproject.org/browse/SAK-40533

Up next for LTI Advantage:

– LTI 1.3 ContentItem – Should be < 1 week

– LTI 1.3 Assignments and Grades – ???

The Assignments and Grades is the most intricate spec so I will leave its implementation as my last task.

Two Abstracts for the Sakai Virtual Conference – November 7, 2018

These are two abstracts I wrote for the Sakai Virtual Conference (https://virtconf.apereo.org/) on November 7, 2018. This is a great conference – it has a good number of tracks and is virtual so it can be attended by people around the world at very low cost.

OAuth 2.0, Public / Private Keys, and LTI 1.3, Oh My!

This session will cover the basic technologies that underlie IMS Learning Tools Interoperability (LTI) version 1.3 that makes use of OAuth 2.0, Public/Private Keys, and Java Web Tokens.  This session is about the technologies and there will be another session that will cover how LTI 1.3 is built into and works within Sakai 19.

Looking at LTI 1.3 in Sakai-19

This session will cover the end-user and administrator user interface for the support for LTI 1.3 in Sakai-19.   This session will not cover the implementation details and underlying technologies used to implement LTI 1.3 – that will be a separate session.

Abstract for 2019 ELI – Building a Cross-LMS Open Source Learning Tool Community

There are quite a few schools that are switching to new LMS systems.  Often, thinking about a “Next Generation LMS” becomes “What will be our Next LMS?”  If we are to find out way to the NGDLE, we will need a strategy that works with any LMS and can work even when a school is in transition from one LMS to another. The Tsugi Tool framework provides a way to build and integrate innovative tools into any of the LMS systems in the market.  We will report on active outreach efforts to bring Tsugi to the Canvas and Blackboard communities.

In the first part of the session, we will quickly present the Tsugi product, give a simple demonstration of its capabilities, and report on outreach activities to various LMS communities.  Then we will do a series of hands on demos with Google Classroom, Canvas, and Moodle.   After the demos, we will have a group discussion to react to and make suggestions as to whether this approach is has potential and what might be the barriers to success.

Attendees will be aware of how tools can be integrated seamlessly and easily into a wide range of Learning Management Systems using IMS Learning Tools Interoperability and Deep Linking.   Attendees will see a “Portable Educational App Store” integrated into multiple LMS’s in action.

We will have a number of audience participation activities including using Google Classroom, Moodle and other LMS systems.   We will have a coordinated discussion about the veracity of this approach.

Dr. Severance is a founder of the Sakai project and is the lead developer / architect for the Tsugi project.   He also was instrumental in the creation of the IMS LTI and Common Cartridge standards.  He has well over a decade of experience working on and integrating tools into LMS systems.

Tsugi strives to lower the barrier to entry for those who might build learning applications.

Dodge Neon @SakaiCar update – September 10

Here is this week’s update from the crew chief of the SakaiCar:

https://photos.app.goo.gl/AsvhH8ENHr1x7kYA6

We worked on restoring the power steering. Not successful yet but moving toward it. We put in 9 hours each of solid work. Put the rear suspension and rear brakes together. Just missing lateral control arms, sway bar links, alignment and bleeding brakes and rear brakes and rear suspension is done. All should take 30 minutes. Put the old struts back on.
I did not get to the brake lines. I did manage to break a steel line while working on the swing arms. Steel brake lines are in bad shape. Up to 80% rusted through in places. I have to pull the gas tank to route the brake lines so I ordered a Denso fuel pump. I also ordered a Carquest starter. I just was not happy with the cobble I had going with the TYC.
We still have plenty to do so no rush on the seat brackets.
The gauges in the dashboard work except possibly the speedometer. I have not tested the new speed sensor yet. Black car as parts car has been a life saver over and over. I broke a unique bolt and picked it off the black car. Every time we run into a problem in the power steering we pick another part off black car.
I will pull the tank today and get the brake lines done. If I have time I will start on front suspension. The dash needs to be removed and a little/lot of wiring harness work needs done. I will be right back at it tomorrow after work. Can not see a clear path to roll cage until late this week early next.
Still looking for second set extra rims on ebay and craigslist.

 

How I Record My MOOC Lectures (Updated)

I am often asked how I record and produce my MOOC lectures.  I have used various technologies over time, but this is my current setup:

Video: Sony CX650 HD Camcorder

Audio: I use an Audio-Technica ATR3350 plugged into the camcorder for audio.  If I am doing a screen-only recording, I either plug the ATR3550 into a USB adapter or use a Shure PG58 connected though a XLR to USB adapter.  I love how the Shure PG58 sounds when recording voice and so If I am not on the video I use it.

Monitor: Wacom Cintiq 13HD – Allows me to scribble on the text

Screen Recording: Quicktime on the Mac – I always record in 720p resolution so the fonts and top nav bar are as visible as they can be.

Scribbling Software: My preference is OmniDazzle, but it is no longer available and each upgrade of MacOS/X breaks it in a different way.   My second choice is Ink2Go.  I want to be able to select a pen, change its color, and clear the screen all with keystrokes that I can program into the Wacom.  Ink2Go insists on leaving its UI somewhere on the screen – which is frustrating.

I edit everything on the Mac using Final Cut Pro. I switch between several views depending on the content.  I always use free / no attribution music available on the YouTube Audio Library – I prefer no acknowledgement required music and then I add an acknowledgment :)

In terms of shot selection, if I have powerpoint that is low complexity and I will be weaving a story I like split screen.  If the slide has material that I want the students to really focus on, I make the slide full screen.  If I am going to get philosophical or make a mini speech I take the video full screen.  I like full screen video towards the end as I wrap up.   In the last few seconds, I slip in some music and then add a slide at the end with a picture and pointer to my course web site and bring the music up full.  Watch from here to the end to see how I wrap up a video.

For demonstration videos I do everything 720P with full screen on the demo to maximize readability.  I don’t show any video of me during demos but I add music and the picture / web site slide at the end of each video to tie back to my web site.

I record all lectures twice.   I first record and edit my own copy of the lectures and publish them on YouTube with CC-BY and then when we move a course to Coursera we re-record the videos using the University of Michigan style.  The University of Michigan style goes back and forth between full-screen lecturer and full screen slides – they are optimizing for a smaller screen.  Their videos carry a CC-BY-NC license which is too limiting for me to achieve my Open Educational Resources goals.

I record my copies lectures in my home office, my work office and even sometimes in a hotel room or at a beach.  I think it adds intimacy and interest.   The University of Michigan lectures are all in a studio with the same camera framing, perfect lighting and nothing in the background.  The UM quality is very high and results in a more polished video.   Ultimately there is much to like in both styles of videos.

I record the demos once and use them both in my open courses and Coursera.  It turns out that with the right microphones, you can get decent audio – but pretty video is much harder.   So the “no instructor video” strategy works well for demos.

I know this sounds like a lot of effort – but the resulting videos have a very long shelf life and the videos I produce and own can be published through a wide range of outlets to accomplish my sharing of OER content goals.

I hope you find this useful for your own lecture recording.

 

Tsugi Support for WebSockets

I just finished adding support for a WebSocket based notification service to Tsugi.   It is not a full-up WebSocket server or SocketIO server where you can put a bunch of business logic and data storage in the socket server – it is just a low-latency notification service that can be used to make applications quicker and more efficient compared to techniques like polling.  Here is some documentation on the approach:

http://do1.dr-chuck.com/tsugi/phpdoc/Tsugi/Core/WebSocket.html

Here is a simple test harness that exercises Web Sockets that you can run in your Tsugi:

https://github.com/tsugiproject/socket-test

Here is a more complete chat application with messages, presence, and history and uses notification to work better.  It functions whether or not WebSocket notification is available – it is just more sluggish and has a performance impact when WebSockets are not available:

https://github.com/tsugitools/michat

You can play with the Chat tool at:

https://www.tsugicloud.org/tsugi/store/details/michat

I am going to record a walkthrough video of socket-test and michat sometime soon.

Experiences with Amazon Aurora Serverless

Recently I moved all my Amazon-hosted servers for my www.tsugi.org project from Amazon server-based Aurora to Amazon Serverless Aurora.  I was experiencing the classic problem where 98% of the time it vastly over paying for my servers and then when I hit a peak (like after I spoke at the Instructure conference), things would get slow.  Then I would upgrade my hardware and pay even more when things were slower.  So serverless is *perfect* for me.

I made a serverless cluster – in Aurora serverless you just make a cluster and do not make instances.  I was looking a this Amazon page – https://aws.amazon.com/rds/aurora/serverless/ and it has said:

You pay on a per-second basis for the database capacity you use when the database is active, and migrate between standard and serverless configurations with a few clicks in the AWS Management Console.

I could not find the “migrate with a few clicks” bit in the Amazon user interface.  So I asked a question on Stack Overflow .

When I did not get an answer in a few days, I did the conversion two ways with different results so I figured I would share my results here. I would still love to hear a better approach.

  1. When I did the conversion using mysqldump and restore, with a short outage things were fine.
  2. When I used AWS Database Migration Service it went pretty badly.

First, you have to get the binary log format as “ROW” and binlog retention to 24 hours. That necessitated server restarts on my old clusters.

Then when I got the data migration working, the new database was badly broken.  I lost all my auto increments, then NULL settings in my columns, the UNIQUE clauses and foreign keys in the new tables.

Literally the only thing that migrated correctly was that the actual data and PRIMARY KEY indications. Also, I would recommend migrating one database at a time (i.e. schema) and don’t try to migrate the mysql internal schemas. I said “migrate everything” and the migration tool tried to migrate the MySQL stuff – sheesh – you would think it would know better.

The one thing the AWS Database Migration Service did that was really cool was the migrate and monitor (made possible by the binary logging on the rows). You could watch it moving rows.

So the lesson is use mysql dump and restore  when moving from Aurors server based to serverless.

Sakai 12.2 Maintenance Release Is Available

This post is taken from a Wilma Hodges note to the Sakai mailing lists.

Dear Community,

I’m pleased to announce on behalf of the worldwide community that Sakai 12.2 is released and available for downloading [1] !

Sakai 12.2 has 105 improvements [2] in place including

  • 21 fixes in Assignments
  • 18 fixes in Tests & Quizzes (Samigo)
  • 8 fixes in Gradebook
  • 6 fixes in Forums
  • 6 fixes in Portal

Other areas improved include:

  • Chat Room
  • Lessons
  • Membership
  • Messages
  • PostEm
  • Preferences
  • Profile
  • Resources
  • Site Info
  • Statistics
  • Worksite Setup

There were 2 security issues fixed in 12.2 (details will be sent to the Sakai Security Announcements list).

Please also note the upgrade information page [3] for important notes related to performing the upgrade. 2 Quartz jobs need to be run to complete the conversion steps for Sakai 12, including a new one for the Job Scheduler in 12.1.

[1] Downloading information available at – http://source.sakaiproject.org/release/12.2/

[2] 12.2 Fixes by Tool –  https://confluence.sakaiproject.org/display/DOC/Sakai+12.2+-+Fixes+by+Tool

[3] https://confluence.sakaiproject.org/display/DOC/Sakai+12+upgrade+information

Deprecate and Remove support for IMS LTI 2.0 from Sakai

At this point, all the major LMS vendors that support LTI 2.0 have quietly decided to move away from LTI 2.0 and towards LTI 1.3 and ContentItem and follow-ons.

LTI 2.0 has a few good features and a lot of bad ideas.  Sakai’s LTI 2.0 (and almost LTI 2.1) is one of the best in the industry and one of only two formally certified LTI 2.0 LMS’s.

But even with all those positives, LTI 2.0 in Sakai is many lines of intricate code that if never used is a liability for security and maintenance – and as new features like LTI 1.3, its services, and new follow-on specs emerge – it is nice to clean up a large amount of code to make space for new stuff.

So at this point LTI 2.0 is deprecated in Sakai 12.x and will be removed in an upcoming release of Sakai.

If you have any concerns – or tools that require LTI 2.0 – please note them in this JIRA:

https://jira.sakaiproject.org/browse/SAK-40065

Or let me know using some other channel.