Category Archives: Uncategorized

Putting Sakai Behind Cloudflare

I love Cloudflare.  I use it extensively for any production server I support.  I use it for https termination, DDOS mitigation, performance improvement for static content, super flexible DNS management and many more things.

In building my support for IMS LTI Advantage I decided I just needed a server that would run a particular tag or branch of Sakai in production for basic testing rather than pushing everything to master and waiting until the nightly server went through the rebuild.

Here are my notes on putting Sakai behind Cloudflare.

– In CloudFlare under “Overview” Make sure SSL is “Flexible” to keep CloudFlare talking on the backend on port 80

– In CloudFlare, under “Crypto” turn on “Always use HTTPS” and “Automatic HTTPS Rewrites”

– In the sakai server in the file ./apache-tomcat-8.0.30/conf/server.xml set up the connector like this

<Connector port="80" 
    protocol="HTTP/1.1"   
    connectionTimeout="20000" 
    scheme="https"  />

This runs an http (port 80) without requiring any key fussing.  Since Cloudflare does the SSL we don’t need it in Tomcat.   See https://tomcat.apache.org/tomcat-7.0-doc/config/http.html#SSL_Support

Interestingly, one thing I did not need to do was adjust the caching for the “/library” urls in Sakai.   Sakai sets all the headers so well that Cloudflare needs no further guidance and neither does the browser.  Just as a simple test, the actual un-cached download for the initial page in Sakai Prior to login is 8.8KB.  That is *KILO-BYTES*.  A normal post-login page in Sakai’s Lessons is 31.4 KB  data transferred. Amazingly low bandwidth usage for an enterprise application like Sakai.

Pretty cool.

Sakai-19 has MVP support for LTI 1.3 and LTI Advantage – Certification is coming soon

I am happy to announce today that Sakai’s master branch has minimum viable product (MVP) for all of the aspects of IMS LTI Advantage.  

We have this code in our code base before the specs are completed and before certification tests are available for LTI Advantage.  Because of the specs and certifications are not available/final, we cannot claim compliance to the specs at this time (October 2018) – all I am announcing at this time is that we have an initial, complete implementation that we will move into certification.

Sakai (and Tsugi) will help IMS test their certifications and reference implementations as they are rolled out and I expect we wil be certified as soon as the certifications are available.

http://www.imsglobal.org/lti-advantage-overview

In short LTI Advantage includes an OAuth 2.0 / JWT security model for launches and services, a names and roles service, and the ability for a tool to make create and manage their own grade book columns.

The LTI Advantage code is already included in Sakai-19.   Any issues identified during certification and interoperability testing with other vendors will be fixed using our normal fix-merge-and-minor-release process – so we will be able to field a 100% certified LTI Advantage implementation in Sakai-19 once IMS finalizes the specs and provides the certifications.

I am excited.   My feeling is the LTI Advantage will be as revolutionary as the initial LTI 1.1 was nearly a decade ago.

https://www.youtube.com/watch?v=akDUM1SXMxE

All the other major LMS systems in the market are making good progress towards LTI Advantage by the end of the year and Sakai will have LTI advantage in the same timeframe as the rest of the market.

This will be a great development for Sakai – since the Advantage APIs cover such a broad scope and all major vendors will be implementing the full range of the APIs, it means that far richer LTI tools can be built without using proprietary LMS-specific extensions.   Other LMS vendors will push tools towards LTI 1.3 / Advantage by making it so that switching to LTI 1.3 is the only way to get access to certain capabilities.

Technical Details

If you are interested in the nerdy details of what it took to make it happen, you can look at the Sakai issue tracker:

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

The short summary is that while it took me four months to build LTI Advantage for Sakai, the new code is simpler and cleaner than the LTI 1.1 code and far simpler than the LTI 2.0 support in Sakai. As a comparison, I worked on LTI 2.0 in Sakai off and on for three years before it was completed.

Acknowledgements

It is important that I acknowledge the help, support and guidance by the other participants in the LTI Advantage process.   They know much more about this spec than I do and I was able to lean on them as I raced through my implementation and for that I am very thankful.

Thanks to: Claude Vervort / Cengage, Nathan Mills / Canvas, Karl Lloyd / Canvas, Eric Preston / Blackboard, Derek Haskins / IMS, James Risler / IMS, Martin Leonord / TurnItIn, Paul Gray / Learning Objects, and many others.

Making LTI Advantage work on a tight time schedule required an unprecedented trust and sharing of code and best practices between participants.

We knew we were all going to succeed together or fail separately and the the effort was large but also important and transformational.  I for one know I could never have done this without the help I received from the rest of the working group.   So my heartfelt thanks is in order.

Open Apereo 2019 – the Premier Conference for Open Source in Education

Open Apereo 2019 will take place at the Omni Los Angeles Hotel at California Plaza ( http://bit.ly/OpenApereo2019Hotel ) between Sunday June 2nd and Thursday June 6th 2019. Hold those dates!

Open Apereo has a growing reputation as a great conference for learning and networking around open source in education. What makes it great are the volunteers from the Apereo community that bring their priorities and vision into the planning process, ably supported by our outstanding conference planners, Concentra.

If you would like to participate in the planning of the conference, please contact Ian Dolphin of the Apereo Foundation (https://www.apereo.org/content/contact-and-mail-lists).

 

Register now for the Sakai Virtual Conference Nov 7, 2018

Sakai Virtual Conference 2018
Sakai – Enabling Educators and Engaging Learners
November 7, 2018 – Online
http://virtconf.apereo.org/   #SakaiVC18

Register now! Registration is open for the Sakai Virtual Conference. Registration is $50 per person, or $500 for group/institution registration, with all proceeds going toward Sakai feature development.

The Sakai Virtual Conference will take place entirely online on Wednesday, November 7, 2018.  You’ll attend presentations in virtual meeting rooms, ask the presenters live questions, participate in interactive activities and contests, and get the conference experience without the expense of travel. The “conference location” will be in Sakai, and we will be using Sakai tools to facilitate interaction among attendees. If you are comfortable in Sakai, you will easily engage in this virtual experience.

Find out how your peers are using Sakai at their institutions! Learn about new features in the upcoming release! Presentations will focus on effective teaching and learning practices, online pedagogy, and engaging students using technology.

The Sakai Virtual Conference is a unique opportunity to network with your peers and share stories and best practices in an online venue.

Register today and stay tuned for publication of the full program!

F2F @Coursera Office Hours Friday October 5, 5:30-6:30 Hyderabad Convention Center Room 2.03

I am pleased to announce Coursera F2F Office Hours on the first day of my first trip to India to speak at PyCon India.  Friday October 5, 5:30-6:30 Hyderabad Convention Center Room 2.03.

HICC Complex (Near HITEC City)
P.O Bag 1101, Cyberabad Post Office
Hyderabad – 500 081

http://www.hicc.com/

http://www.hicc.com/floor_plan/HICC-Second-Floor.pdf

There is no charge to attend office hours and you do not have to register for Pycon India to come to office hours.   It is a separate pre-conference event that the Pycon India organizers helped me arrange (thanks Ram and Subash).

Even though this is my first trip to India, my second trip will be coming shorty.  I will be having office hours in Bangalore and Mumbai in December when I come over to speak at IIT TechFest.  Like in Hyderabad, my Coursera office hours events will be free and separate from the conference.

Here is a map view of all my (70) office hour videos since 2012 with my most recent office hours video in the center of the map. You can click on the pins to see the videos.

http://www.dr-chuck.com/office/

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.