I got an E-mail recently from Silvester Draaijer of Open Virutal University of Amsterdam (ond.vu.nl) asking me whatever had happened to CloudSocial (www.cloudsocial.org) and I realized that it has been well over a year since I had talked publicly about my grand visions for the future of the Learning Management System.
If back in 2009, you listened to my vision speeches as part of Apple Academix, I liberally sprinkled words like CloudSocial, CloudCollab, and the Tsugi framework throughout my talks. But I have become strangely silent about these lately.
I got CloudSocial to a working prototype stage and then realized that it was a good idea – but something I had come up with too early. :)
The problem was that CloudSocial was a floating tool bar that needed tools for it to function and these tools needed to be available using IMS Basic Learning Tools Interoperability – and then I needed IMS Basic Learning Tools Interoperability support in the various Learning Management systems so they could launch CloudSocial.
Until these two pre-requisites were complete, there was no way to make CloudSocial real. So I stepped away from active development of CloudSocial in order to focus on getting IMS Basic LTI into Learning Management Systems and get tools to support IMS Basic LTI.
It has taken a while. The Basic LTI spec was completed in May and nearly 100% of the LMS marketplace (Desire2Learn, Blalckboard, Jenzabar, Sakai, OLAT, ATutor, Moodle…) has some support for Basic LTI either in their shipping product or as an add-on. Tools are slowly coming adding Basic LTI support. WImba, LearningObjects, LectureTools, Chemvantage are among the pioneering tools with real Basic LTI support. I think that the arrival of tools naturally will lag the LMS support and so I think that 2011 will be the year of the Basic LTI tool.
Also, Full LTI will come out in 2011 and it will add auto-provisioning and run-time services to the LTI capabilities and that will take some time to complete.
But… Once all that is well in place, it will be time for CloudSocial to make its re-appearance in my research. It has been a bit of a detour – but it will come back when the time is right.
The Tsugi Framework
I also built a whole framework (http://code.google.com/p/cloudcollab/) with the idea of building a portlet / widget framework that allowed you to build a single widget and have it work with Basic LTI, FaceBook, Ajax, etc. Tsugi is written in Python and runs on Google App Engine. I anticipated tons of widgets floating around the cloudsphere all plugged in using IMS Basic LTI. I wrote the O’Reilly book on Google App Engine and then wrote a Chapter 12 that taught folks how to write my Tsugi widgets. I was even aligning the Tsugi approach with the Plone portlet spec.
I even had an independent study student use Tsugi to build a portlet. She built a nice little reading list portlet.
… Then I realized that frameworks generally suck. By writing my own framework, I learned that the reason that existing frameworks like Ruby on Rails, Hibernate, Symfony, (etc etc) sucked because they are frameworks. Previously I thought they sucked because I had not written them – but after writing and using my own “perfect” framework and then explaining it to other people and watching the pained expressions on their faces, I realized that frameworks are simply a bad idea.
So that was a good lesson too.
I recently have started gentle development of “Tsugi2” – it is simpler and more like a Python servlet with a few helper utilities. I have made less of it “magical” and only altered stock servlets where necessary. And I am only doing Basic LTI in this new library. It is not a framework at all and just a cool set of libraries. You can see it emerging in some sample code for Python App Engine for Basic LTI that I built for IMS. It focuses on a light touch – unlike Tsugi1. Here is some Documentation for this new lighter approach to building tools on App Engine. Compare it with the earlier Tsugi1 documentation. They are similar in the problem being solved – but different in the approach taken.
So where is this all going?
After I learned all these important lessons about how hard it is to do something awesome in a vacuum, I decided to focus most of my energy in the real world of teaching and learning like IMS standards and working with Sakai, Blackboard, Moodle, Angel, OLAT, and ATutor.
What is cool about all this is that the problems are in many ways simpler and I can have more impact quickly. It has been great to work inside the code bases of all of these software programs – each has their own strengths and weaknesses and with my experience across them, I am learning a lot about how to build real, significant software.
And interestingly, none of these successful products depend on a framework – they have best practices, reusable patterns, and depend on their programmers to be responsible. Amazing – who would have thought?
And I hope to come back to CloudSocial one day – a flexible floating tool bar infrastructure embedded into content is a cool idea and I would love to find a way to make it happen.