Monthly Archives: October 2010

It Seems You *CAN* Sign JSON Requests with OAuth (Thanks OpenSocial)

As I am investigating possible ways to get IMS to move to more REST-style bindings, I came across this nice bit of information:

http://blog.opensocial.org/2009/04/important-oauth-signing-changes-coming.html

It was written back in 2009 (I hope the April 1 date does not mean it is a joke!) and describes how to post JSON structures and sign them using OAuth. It is already in place for iGoogle and orkut.

They have also already built client libraries for (Java, PHP, Python, Ruby)

This is very cool and *might* just be the REST-versus-SOAP breakthrough that we need.

Here is a spec for OAuth Request Body Hashing

Comments welcome – please.

IMS Basic LTI Support in ATutor (Prototype)

I have been talking with Greg Gay of the ATutor (www.atutor.ca) project about adding IMS Basic LTI to ATutor. ATutor already has a very solid certified implementation of IMS Common Cartridge 1.0 and so I wanted to see them with the Basic LTI certification as well and prepare them for IMS Common Cartridge 1.1 that includes Basic LTI.

I started working in earnest Sunday morning (coding helps me recover from jetlag) and finished it by Monday evening. Working in ATutor was quite nice – the module extensions are well documented and Greg and Cindy were quick with help any time I got stuck. The content system is less pluggable than the module system so my changes there are less elegant.

Here is a demonstration of the resulting work showing Wimba and the IMS Basic LTI test harness working in ATutor:

IMS Basic Learning Tools Interoperability in ATutor (Prototype) from Charles Severance on Vimeo.

It is always fun to experiment with and learn about a new architecture and approach to building an LMS, having now worked on Sakai, Moodle, and OLAT. I am in particular curious as to how to best build PHP applications and so it is nice to look at how a mature project views plug ins and how it implements Model-View-Controller.

The code consists of a module that primarily provides a new administrator capability called “Proxy Tools” to create instances of IMS Basic LTI Tools. I took this design approach from the Moodle/Blackboard approach rather than the Sakai approach but adapting it a bit to more naturally align with Full LTI when it comes out.

The other portion of the code is an extension to the ATutor content system. The content system is not designed for extensions – so I have patches scattered across ATutor. I am sure that when Greg takes a look at it, he will have some good suggestions as to how it can be improved structure-wise. I was in a hurry so I made things work.

Getting the Software

Source Code to be checked out into /atutor/docs/mods/basiclti

There is a README file with instructions.

You first check the code out into the module directory (above) and then apply the included patches to the rest of the ATutor (trunk) distribution to make the changes to the content system.

After that it is module installation and making some IMS LTI Tools and adding content and testing. The video (above) is a good test plan and shows what it should look like when everything is installed.

Next Steps

This is really only prototype code – written quickly. My next steps are to talk to Greg and the ATutor team to figure out how to do this properly in the ATutor code base in a way that is more maintainable.

It is always fun making prototypes – but then the hard work really begins.

ORM Experiment

I was creating some new tables and decided to build a simple ORM/form framework to automate common tasks of displaying displaying create/edit/view forms and INSERT/UPDATE SQL statements. I really like how this one turned out – it is the simplest ORM/FORM system I have ever built. It is here:

Dr. Chuck’s new FORM/ORM Experiment

I need to do a bit of re-factor to make the HTML generation more pluggable and separate the portable and reusable bits from the ATutor specfic bits. But it was good fun to write and saved me from lots of repeated cutting and pasting to make forms and avoided making classes for objects. It kept my re-typing of the same thing over and over again to a minimum and made my code easier to debug and validate.

Jasig and Sakai Foundations To Pursue Merger

[This is simply the text of the joint announcement with no editing or commentary — Chuck]

Early this year, Jasig, the parent organization for uPortal, CAS, Bedework and other open source software serving higher education, and the Sakai Foundation, which supports the Sakai Collaboration and Learning Environment, formed Board-level groups to examine ways the two organizations could collaborate more closely. These Strategic Alliance Committees, led by Jasig Chair Aaron Godert, and Sakai Foundation Chair Josh Baron, met in New York in September to consolidate the outcomes of their discussions and bring proposals to their respective Boards.

Based on the recommendation of both Strategic Alliance Committees, the Jasig and Sakai Foundation Boards of Directors are today, October 7, 2010, jointly announcing an intention to pursue a merger of their two organizations, subject to the approval of their respective communities. The new entity would foster the development and use of open source software that supports the academic mission. This goal would be achieved through the identification and promotion of related best practices for increasing effectiveness, efficiency, and innovation in academic institutions, while lowering the risk of the development and adoption of open source software. It would support the further development of communities of interest and practice to explore the use of open source systems and tools to support teaching, learning, research, and other aspects of the academic enterprise. These communities of interest will strongly inform future software development effort.

“Through the discussions over the past several months it has become clear to me that Sakai and Jasig share, at a strategic as well as operational level, much in common”, said Josh Baron. “I am excited by the coming together of our organizations, which I see as a natural step in the evolution of higher education open source initiatives, as it will facilitate many new and exciting opportunities across the academy.”

The new organization would provide shared infrastructure, expertise, and other resources for the development of a wide range of open source software projects that are designed to meet the needs of academic institutions. It would conduct outreach and explore more meaningful relationships with a broad range of open source and standards organizations. It would provide a clearinghouse for best practices on related management issues such as crafting open source-friendly procurement processes and assessing the adoption risks of open source software.

The Jasig and Sakai Foundation Boards of Directors share the conviction that the values of openness, transparency, and meritocracy that underpin successful open source projects are profoundly congruent with academic values. We believe that, beyond the benefits that the software itself can provide, fostering the skills and experience necessary to manage the development and implementation itself will strengthen both the commitment and the effectiveness with which our respective institutions uphold these values across the entire range of academic endeavors.

“As we look to position our products and communities for continued and sustainable success into the future, the opportunity for Jasig and Sakai to join efforts and create a more robust network of open source innovation and community engagement, is one I am enthusiastic about,” said Aaron Godert.

Moving forward, the two Strategic Alliance committees will continue their due diligence regarding the mechanics and practicalities of a merger and will seek ongoing input from their communities. They will craft a detailed proposal to be approved by the respective Boards of Directors and then voted on by their respective communities in the coming months and will be regularly communicating as this work progresses.

About Sakai
The Sakai Community develops and distributes the open-source Sakai Collaborative Learning Environment, an enterprise-ready collaboration and courseware management platform that provides users with a suite of learning, portfolio, library and project tools. Sakai collaborators – ranging from educators to engineers – share in their successes and challenges, honing the community’s collective expertise to drive rapid development of this enterprise-ready platform. Sakai is distributed as free and open source software under the Educational Community License. Sakai is an open source software project driven by the Sakai Foundation, a worldwide consortium of institutions, organizations, and individuals dedicated to providing collaboration, research, and e-portfolio tools. The Sakai Foundation is a nonprofit organization that is dedicated to coordinating activities around Sakai and the Sakai community to insure Sakai’s long-term viability. For more information, please visit www.sakaiproject.org.

About Jasig
Jasig is a global consortium of educational institutions and commercial affiliates sponsoring free and open source software projects for higher education. Jasig is a member supported, non-profit corporation aiming to attract, advance, and sustain communities developing enterprise-level, open source software that helps institutions fulfill their goals. Jasig connects people, provides infrastructure, and sponsors events that foster innovation and collaboration. Jasig’s flagship projects include uPortal, an enterprise portal; CAS, the Central Authentication Service used for single sign-on and secure, proxied authentication; and Bedework, an enterprise calendar used for public events and personal and group calendaring. Jasig also manages a Project Incubator designed to mentor new open source projects and sponsors communities of practice, such as The 2-3-98 Project, which aims to help institutions understand how to exploit open source. For more information, visit the Jasig website at www.jasig.org.