Author Archives: Charles Severance

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.

Sakai 12.1 Released

The text of this post is taken from the announcement made by Wilma Hodges – The Sakai Community Facilitator.

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

Sakai 12.1 has 97 improvements [2] in place including

  • 20 fixes in Gradebook (aka GradebookNG)
  • 9 fixes in Tests & Quizzes (Samigo)
  • 7 fixes in Assignments
  • 6 fixes in Resources
  • 5 fixes in Lessons

Other areas improved include:

  • Calendar
  • CKeditor
  • Dropbox
  • Forums
  • Portal
  • Preferences
  • Profile
  • Roster
  • Section Info
  • Security
  • Signup
  • Site Info
  • Statistics
  • Syllabus
  • Web Content

Four security issues fixed in 12.1 (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.1/

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

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

 

Sakai Community Leadership Update

By now, you know that Neal Caidin will no longer be our full-time Community Coordinator as of April 30, 2018 because of a reduction in Apereo membership revenue for Sakai. We still have funding – just not enough for a full-time coordinator. We will miss Neal’s smile, talent, and tireless dedication to our community.

http://www.dr-chuck.com/csev-blog/2018/04/sakai-coordinator-funding-in-2018/

The Sakai PMC, Sakai Commercial Affiliates, and Apereo Board have been coordinating on how to fill the roles that will be left open when Neal leaves. I attach a draft of a document we have been developing that looks at the community leadership roles in general that are currently filled by Neal and others.

We will fill these roles by a combination of volunteer leadership and by paying for time. Some of these roles are 20 hours per week and so we will use Sakai membership money to fill them. Here is a list of the people who will be leading us in these roles going forward; where we have a lead / back-up in the position, there are two names:

  • Community Facilitator: Wilma Hodges (Longsight)
  • Release Manager: Matthew Jones (Longsight)
  • Branch Manager: Matthew Jones (Longsight) / Earle Neitzel (Longsight)
  • QA Lead: Dede Hourican (Marist) / Jolie Tingen (Duke)
  • A11Y Lead: Tiffany Stull (Virginia) / Terry Golightly (Johnson)
  • I18N Lead: Miguel Pellicer (EDF)
  • Security Lead: Miguel Pellicer (EDF)

At this point, we have worked out an arrangement with Longsight to cover some of Wilma’s and Matt’s time taking on the Community Facilitator and Release Manager roles. The terms of the arrangements have been shared with the Apereo, the Sakai PMC and all the Sakai Commercial Affiliates. The PMC is making these appointments for 3 months and will review these roles August 1, 2018, and then formally consider others who might be interested in these roles.

The other roles are not directly compensated at this point, so we should thank those who have taken on this leadership as volunteers–as well as others who are not currently listed but are already part of our community leadership. To provide some support to these volunteer leaders, the PMC will retain some of the Sakai member funds and make them available to help with travel and other necessary expenses if a person’s organization is not able to cover them in the individual’s volunteer role. This will not be a lot of money but we feel that it can be very helpful in ensuring that our volunteer leadership makes it to meetings, conferences, and events.

The PMC will monitor the costs of these new approaches and make adjustments over the coming months, including additional compensated roles as finances permit. All funds that are spent will be done so in the open within the PMC and all of the Sakai SCAs. The PMC chair will report a summary of the expenditures around community support to the whole community quarterly.

You are welcome to join the PMC public mailing list to watch this happening more closely if you are interested and want to participate.

https://groups.google.com/a/apereo.org/forum/#!forum/sakai-pmc

Our goals in this staffing activity is to end up with Sakai community leadership that is both broad and deep and can handle turnover in these roles. We want to encourage involvement from all of our SCAs if they have interest.

Release 0.5.0 of Tsugi coming soon

If you have been watching Tsugi-php and tsugi lately, you have seen the pace of commits slowing down.  This is good because ultimately Tsugi wants to be a library that just works.   But a few recent efforts like improving blob support and activity tracking took a lot of effort and a lot of commits. But that code is now solid and has been in production for a while at scale.
The Tsugi release approach is that you run master and in a periodic cron (for me it is hourly) do a “git pull” and run upgrade.php.   Master needs to always be production ready and all my production servers run master within an hour of a commit.  While many of you may not be this aggressive (and don’t need to be) – I do this so I know if something goes wrong almost instantly.   We are working on better unit tests and post-commit hook functionality tests to make this strategy even safer.
But with this as approach, the way releases work is more to do with freezing master at a very safe place so that we can try something in master.  That way if something goes awry in master – you just jump back to  a safe place.  Kind of like mountain climbing with a lead climber.  Always have a place to fall back to.
I will be making a change in master that I expect will be safe, but just to be sure, I want to make the 0.5.0 release / branch to come back to.
Some of you have noticed that I have frozen various versions of dependencies in composer.json:
I did this because I did not want to update a dependency and mix it with a change I was making as we went along the path.  This way I did not make my change and update a dependency in the same breath so I *know* if something broken is my fault or a dependency failure / regression.   Dependencies are software too – and can make make mistakes in minor releases.  I conside my own QA to be QAing both all of tsugi plus its dependencies.
So what I will do as soon as I make the 0.5.0 release is update composer.json to let the dependency versions upgrade.  I will do this in a series of steps to allow for some QA/production experience at each step.
I will try to make no changes in tsugi-php or tsugi during this time unless a bug appears or a dependency upgrade breaks something.
What you will see is a series of updates that update a *lot* of files – all in the vendor folder.   It is OK.