{"id":1630,"date":"2011-02-07T19:07:24","date_gmt":"2011-02-07T23:07:24","guid":{"rendered":"http:\/\/www.dr-chuck.com\/csev-blog\/?p=1630"},"modified":"2011-02-07T19:08:28","modified_gmt":"2011-02-07T23:08:28","slug":"where-oh-where-is-cloudsocial-or-cloudcollab-or-the-tsugi-framework","status":"publish","type":"post","link":"https:\/\/www.dr-chuck.com\/csev-blog\/2011\/02\/where-oh-where-is-cloudsocial-or-cloudcollab-or-the-tsugi-framework\/","title":{"rendered":"Where oh where is CloudSocial?  Or CloudCollab?  Or the Tsugi Framework?"},"content":{"rendered":"<p><a href=\"http:\/\/www.cloudsocial.org\/\" target=\"_new\"><img decoding=\"async\" src=\"http:\/\/www.cloudsocial.org\/img\/cs-logo.jpg\" align=\"right\"><\/a>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.<\/p>\n<p>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.<\/p>\n<p>I got CloudSocial to a working prototype stage and then realized that it was a good idea &#8211; but something I had come up with too early. \u00a0 :)<\/p>\n<p>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 &#8211; and then I needed IMS Basic Learning Tools Interoperability support in the various Learning Management systems so they could launch CloudSocial.<\/p>\n<p>Until these two pre-requisites were complete, there was no way to make CloudSocial real. \u00a0 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. \u00a0<\/p>\n<p>It has taken a while. \u00a0The Basic LTI spec was completed in May and nearly 100% of the LMS marketplace (Desire2Learn, Blalckboard, Jenzabar, Sakai, OLAT, ATutor, Moodle&#8230;) has some support for Basic LTI either in their shipping product or as an add-on. \u00a0 Tools are slowly coming adding Basic LTI support. \u00a0WImba, LearningObjects, LectureTools, Chemvantage are among \u00a0the pioneering tools with real Basic LTI support. \u00a0 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.<\/p>\n<p>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.<\/p>\n<p>But&#8230; Once all that is well in place, it will be time for CloudSocial to make its re-appearance in my research. \u00a0 It has been a bit of a detour &#8211; but it will come back when the time is right.<\/p>\n<p><b>The Tsugi Framework<\/b><\/p>\n<p>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 <a href=\"http:\/\/oreilly.com\/catalog\/9780596801601\" target=\"_new\">O&#8217;Reilly book on Google App Engine<\/a> and then wrote a <a href=\"http:\/\/cloudcollab.googlecode.com\/svn\/tsugi\/trunk\/static\/docs\/Tsugi-Portlet.doc\" target=\"_new\">Chapter 12<\/a> that taught folks how to write my Tsugi widgets.  I was even aligning the Tsugi approach with the Plone portlet spec.<\/p>\n<p>I even had an independent study student use Tsugi to build a portlet.   She built a nice little reading list portlet.<\/p>\n<p>\u2026 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 &#8211; but after writing and using my own &#8220;perfect&#8221; 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.<\/p>\n<p>So that was a good lesson too.<\/p>\n<p>I recently have started gentle development of &#8220;Tsugi2&#8221; &#8211; it is simpler and more like a Python servlet with a few helper utilities.   I have made less of it &#8220;magical&#8221; 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 <a href=\"http:\/\/ims-dev.googlecode.com\/svn\/trunk\/basiclti\/python-appengine\/\" target=\"_new\">sample code for Python App Engine for Basic LTI<\/a> that I built for IMS.  It focuses on a light touch &#8211; unlike Tsugi1.  Here is some <a href=\"http:\/\/ims-dev.googlecode.com\/svn\/trunk\/basiclti\/python-appengine\/static\/BasicLTI-AppEngine.pdf\" target=\"_new\">Documentation<\/a> for this new lighter approach to building tools on App Engine.  Compare it with the earlier <a href=\"http:\/\/cloudcollab.googlecode.com\/svn\/tsugi\/trunk\/static\/docs\/Tsugi-Portlet.doc\" target=\"_new\">Tsugi1 documentation<\/a>.   They are similar in the problem being solved &#8211; but different in the approach taken.<\/p>\n<p><b>So where is this all going?<\/b><\/p>\n<p>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.<\/p>\n<p>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 &#8211; 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.    <\/p>\n<p>And interestingly, none of these successful products depend on a framework &#8211; they have best practices, reusable patterns, and depend on their programmers to be responsible.   Amazing &#8211; who would have thought?<\/p>\n<p>And I hope to come back to CloudSocial one day &#8211; 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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1630","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/1630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/comments?post=1630"}],"version-history":[{"count":15,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/1630\/revisions"}],"predecessor-version":[{"id":1645,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/1630\/revisions\/1645"}],"wp:attachment":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/media?parent=1630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/categories?post=1630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/tags?post=1630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}