Sub assignment groups
site join via url
cm producer
Dev choice - 168 / RSF ?
build a sample service
Deployment scripts
autoddl storage
resources in the long term
integration testing and IMS Stuff
I am at Charles Sturt University these past few days and having a cool new experience - for the first time I am facing all of the "local customization" issues that they have and trying to find clever solutions that meet their needs. It is great fun and we are coming up with clever ways to make subtle local changes to do some pretty cool stuff.
For me this is a neat learning experience. Next week is Educause in Melbourne where I give an invited talk on Pushing the boundaries of Innovation using Community Source and a Teaching with Sakai Workshop and a Programming in Sakai Workshop.
Busy days.
I am here in Bathurst, NSW, Australia and need to turn in a paper for Educause. I would like some review and comments if you have a moment.
http://www-personal.umich.edu/~csev/papers/2007/educause_v01.doc
Thanks.
I was pulling out a suit I had not worn in quite a while and found this list scribbled on a paper in the pocket. It was a list about things to think about in the future. None of this is solid - just notes from a plane or cab ride months ago.
- Build a tool which allows a site to be created in a constructivist manner replacing site setup.
- Build a Boddington-like view of resources
- Improve Portfolio support
- Bring the Lancaster tool set forward into the release
- Improve Accessibility
- PDA integration
- Data Interoperability
- A Collaborative writing tool
- iCal feeds
- RSS Feeds
- User tracking and data mining
- Portal integration
- IMS enterprise support
- IMS Common Cartridge - import in 2.3 and export in 2.4
- More relaxed development pace
- K12 exploration - Schools Interchange Format
- Tetra changes - hierarchy - inherited authz
- JSR-170 support
- Revisit OSIDs
- Improve Open courseware integration
- Exchange events with portals
Hello all, I am using WURFL in the Sakai collaboration system (www.sakaiproject.org).
Like several others - I found the need to "touch up" the Java APIs so I grabbed a copy of the code, put it in our SVN.
https://source.sakaiproject.org/svn//portal/trunk/portal-impl/impl/src/java/net/
I added an acknowledgement to Sakai's acknowledgements:
https://source.sakaiproject.org/svn//reference/trunk/library/src/webapp/content/gateway/acknowledgments.html
The main thing I needed to fix was that the Loos match was too loose :) I ultimately needed to decide whether or not I *had* a mobile device from the user agent. So I made some new code that effectively takes the UA sets it to lower case, removes spaces and numbers and then demands an exact match to the UA in WURFL (with the text reduction aplied to the UA)
This handles a lot of situations where the version numbers increment but nothing else changes in a UA.
I also was bummed that I could not get the actual UA form a device id that I got from a Loose lookup.
I also did what others did and got rid of the System.out.printlns.
I am happy for others to use these mods or contribute them.
Again - thanks for the work on WURFL.
Charles Severance
www.dr-chuck.com
Coming back form the airport - I was playing with my Treo and realized that if I *knew* I was talking to a narrow device, I could do things like place the "Log In" text more nicely.
There was a discussion on the dev list a whle back about a thing called WURFL(Wireless Universal Resource File) that gave yo all kinds of properties about mobile phones. So at 6AM on a bus, I decided to "look into" what it would take. Now about 20 hours later I have it ready to go :) It was trickier than I thought.
The biggest issue was the existing Java APIs around WURFL did a really bad job of matching user agents - particularly when a Treo 600 user agent changes on upgrades with minor versions change on the browser compatibility.
So, I pulled the source into Sakai, fixed it, added an acknowledgement, and made it work for the PDA portal. All to save a line on my Treo 600 display :)
I put in my stock dev notes that have little or no meaning.
charles-severances-computer:/tmp csev$ cvs -d:pserver:anonymous@wurfl.cvs.sourceforge.net:/cvsroot/wurfl login
Logging in to :pserver:anonymous@wurfl.cvs.sourceforge.net:2401/cvsroot/wurfl
CVS password:
charles-severances-computer:/tmp csev$
cvs -z3 -d:pserver:anonymous@wurfl.cvs.sourceforge.net:/cvsroot/wurfl co -P tools
cvs checkout: Updating tools
cvs checkout: Updating tools/asp
U tools/asp/CheckCapability.asp
U tools/asp/DeviceCapability.asp
~/dev/sakai/portal/portal-charon/charon csev$ svn commit
Sending charon/pom.xml
Sending charon/project.xml
Adding charon/src/webapp/WEB-INF/wurfl.xml
Adding charon/src/webapp/WEB-INF/wurfl_patch.xml
Transmitting file data ....
Committed revision 29429.
svn commit project.xml pom.xml src/java/net
Sending pom.xml
Sending project.xml
Adding src/java/net
Adding src/java/net/sourceforge
Adding src/java/net/sourceforge/wurfl
Adding src/java/net/sourceforge/wurfl/wurflapi
Adding src/java/net/sourceforge/wurfl/wurflapi/CapabilityMatrix.java
Adding src/java/net/sourceforge/wurfl/wurflapi/ListManager.java
Adding src/java/net/sourceforge/wurfl/wurflapi/ObjectsManager.java
Adding src/java/net/sourceforge/wurfl/wurflapi/UAManager.java
Adding src/java/net/sourceforge/wurfl/wurflapi/Wurfl.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflDevice.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflException.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflServletInit.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflSource.java
Adding src/java/net/sourceforge/wurfl/wurflapi/WurflTester.java
Transmitting file data ............
Committed revision 29430.
Change the processing of the Loose matching to simply drop
numbers, spaces, and periods - so as to factor out version
changes.
Also switch to using logging rather than System.out.println.
:~/dev/sakai/portal/portal-impl/impl/src/java/net csev$ svn commit
Adding net/README.txt
Sending net/sourceforge/wurfl/wurflapi/ObjectsManager.java
Sending net/sourceforge/wurfl/wurflapi/Wurfl.java
Transmitting file data ...
Committed revision 29432.
Add support for mobile portals using the WURFL libraries.
Sending portal-api/api/src/java/org/sakaiproject/portal/api/Portal.java
Sending portal-impl/impl/src/java/org/sakaiproject/portal/charon/SkinnableCharonPortal.java
Transmitting file data ..
Committed revision 29433.
Add support ot the PDA portal do emit simpler HTML when dealing with
a smaller PDA device. This uses WURFL (Wireless Universal
Resource File) with some local modifications.
See http://wurfl.sourceforge.net/ for details
Sending portal-impl/impl/src/java/org/sakaiproject/portal/charon/handlers/PDAHandler.java
Sending portal-render-engine-impl/pack/src/webapp/vm/defaultskin/macros.vm
Sending portal-render-engine-impl/pack/src/webapp/vm/defaultskin/pda.vm
Transmitting file data ...
Committed revision 29434.
If you were in the workshop and want something fixed - let me know.
April 19, 2009
Paul Clark OU, UK
Weave academic and professional competencies
Distance ed makes this particularly acute - and need intervention
Tim Omeara - Ninth House - Leadership
Competence - Leadership dev - soft skills - simple scope
What do people know - what do they need to know - and how to get the info to those folks.
Interest in portable competency definition - PDI as an example.
--- What about the need to flex - folksonomy - or top down taxonomy
Shiela MacNeill - JISC CETIS
Design for Learning - design content learning situations.
Interest in TenCompetence
David O'Conner - Pearson
HE focus - moving into K12
Outcomces and assessing
What are we trying to learn?
Chris Kaefer - McGraw Hill - K12 - professions
Content Models
Focus increasingly work with learning objectives - tagging level align learning objectives - take it outside of text book covers - must insure that design meets needs of adopting customers. Many different meanings and definitions.
Michael Erdely - Thomson Learning
Engineer - technical
Find a way for learners to own their core competencies
Portable competencies - secure interoperability
Maggie Beers - BC IT -> SFSU
Link between a LT Center - best practices - moving into a more technical application for that. Used to being on ent architecs.
PDI - consulting firm - intervention 3 x 6 competency model for soft skills
Learning objective - comes close to content - tracking point and patch cord connects content - (Satisfied, score) - to some other point in my system.
Competency is contextualized to "my world"
The two are connected but the connection between them is no universal - there is no "one mapping".
There are lots of levels. Hierarchy is present in both LO and competency definitions.
k12 does this in each state.
Should we standardize learning objectives? Nah - just give a GUID? Connect them in.
Lacking: No place to indicate if something helps with a concept or measures a concept - this ends up in
Build global competencies? Portable for what purpose?
Global LO's are important for things like CSU Digital market place.
Language for describing and exchange competencies
Where do the learners fit in? Who knows the mapping? Does the teacher or student or the content maker know about this?
Important to bring learner into this - so folks can find themselves in the netowkr of learning objectives and competencies.
Basic Reading skills. Have some trusted bodies. Testing body might certify this that can measure that core competency for you.
Problem with national qualification - passing exam is not "does not need remediating".
Who cares?
New Media in BC - not enough graduates - eCompetencies tool - self identifiy - action plan - expected competencies. - marketing plan - data mining. Book volunteer industries that wanted the skills - BC ministry helped seed the thing. Helpful for students.
Lots of customers care about this? Saves them money to figure this out. Helps keep down wasted time investment - they care when they hire.
Make a map - state by state.
In Europe - Working group - IEEE + SCORM folks - lots of europeans - competency data interchange format schema/manifest. Couple of drafts 0 looks like SCORM 1.3 manifest - roll up - same sort of roll up as simple sequencing. These
Transport Canada have competiecies - are there federal examples?
Will folks open source the stuff? Not interested in keeping things close to chest.
Making a schema is easy - but true portability - because no one will bow to other opinions of competency model.
Describe problem - Scope and Use cases
What is the barrier?
Lack of agreement of competency terminology - taxonomy. But quickly
Must stop at a certain level of generality that we must stop at? Accept that the detail is local not global.
At what point do these things become useful?
Top down or folksonomy?
Do both at once - recognizable interface - to they converge to one point?
In a way - we can do this! In LOM there *is* a taxon-path into *some* catalog - a set of definitions map descriptions. Publish and define the map. Everyone publishes their taxon paths reference - publish the reference - go to catalog - has keywords, etc. Could have maps of things UK HE to Pearson.
Can build system that will self assemble.
Agreement on common terminology. What does "critical thinking mean"? 300 learning objectives in a book.
What about a standard of a taxon-path catalog and a services API and web service for a catalog service. Folks could publish their catalog.
If two organizations publish catalogs - then they can
if everyone had a catalog that is published - pointers to maps.
Taxon catalog - LOM educational purpose - why not require this?
What about contrib?
Make TAXon paths - real uris
Catalogs are something that can be searched with text or keywords and give you some potential Taxon paths that might be appropriate for the content you are working on.
Competency model definiton schema. Import and export comp
Question - should IMS be in the taxonomy registration business? no.
Should IMS be in the business of protocols and APIs to navigate taxonomies? OK.
Format of taxonoly description exchange? Certainly yes but - don't reinvent the wheel?
Portfolios is the venue to demonstrate these competencies. Portfolio is something you take with you.
Look at IMS ePort and make sure there is a place to capture taxonomy marking - imitating the IEEE LOM pattern for tag marking with Taxonomies.
Collection of artifacts that demonstrate some competency.
Note general need to improve ePortfolio standards in general - not our particular scope but something we are nervous about.
Where do they get stored? Who owns them? Where is the border between that which the organization and individual
. What is authoritative? In the corporate environment - it is even larger.
Use cases
Cal State Digital Market Place / Content Federation
Help lead faculty to appropriate content from many sources (free and commercial) and help them mix in content from many publishers in some uniform model based on globally known competency identifiers.
Faculty Development / Lesson Planning
Lesson plans - never saw a proper learning outcome - enter a topic - prompts for competencies - select competencies - learning outcomes present - make a lesson plan - learning activities - learning tools. Suggests resources - ranking - Amazonning - select some assessment - automatically makes space - find other portfolios that demonstrate achievement - practice achieving these things - export their own competency into a portfolio which joins the other sources of evidence.
Pedagogy planners - wiki based approach - pedagogy wizard - suggests tools, (1) Phoebe - Oxford (2) London Metropolitan Pedagogy Planner.
Open Learn
Inform counseling session - from perhaps a publisher that has info about a student from prior activity.
Learn Direct - Map courses - what we could do is advise them to go to learn direct - learn direct helps optimize student's learning path.
Have a free-text description of the learning outcome - not there is no assessment as to whether the outcome was accomplished.
Publishers
Something spans the secondary school / college space - re-mediation - placement test. Placement service that can measure competencies.
Standard that could be imported into counselor's system. Note - often publishers are stymied by privacy issues. But counselors and teachers *need* the this information! Have a conversation with instructors where the common vocabulary is what competencies and learning objectives are what is needed.
LMS like Sakai/BB
Adding competency tagging to portfolio systems to enhance the richness and usefullness of portfolios as they move from system to system.
Corporate like Ford/Pharma
As training coordinator - I need ot import content and have it align itself and register with my competency model. I just got a mail from the CEO and it is time to get good at "fiber optic" - I need to find content and vendors and select - including soe sense of how effective this will work in my context and competencies.
Blues Bar
http://www.theyale.ca/
Karaoke Info:
Fantacity
645 Thurlow St.
(604) 899 0006
We did Karaoke Tuesday night and Are planing to meet at 9:00 Wednesday night.
For me, one of my personal holy grails has been the elimination of all frames - another step has been taken in that direction and is now in the trunk of Sakai for you to use and play with. Over the past few weeks I have been working on changing the Sakai PDA portal to eliminate the *last* frame and blend the navigation of Sakai with the tool.
Here is a picture of frameless Sakai running on the PSP and some pictures of the portal running on my Treo.
http://www-personal.umich.edu/~csev/images/2007/04/DSC01054.JPG
http://www-personal.umich.edu/~csev/images/2007/04/DSC00039.JPG
http://www-personal.umich.edu/~csev/images/2007/04/DSC00041.JPG
http://www-personal.umich.edu/~csev/images/2007/04/DSC00043.JPG
I got a PSP for my son Brent yesterday for his birthday and he was quite unhappy as I immediately took it from him for several hours as I tested it out on the new Sakai frameless PDA portal. He will be even less happy if I tell him I need to take his brand-new PSP to the IMS Learning Impact meeting all next week so I can do demos. :)
The technical approach is pretty straightforward. Since the PDA portal only allows one tool on the screen at the same time, then entire portal page becomes a tool page with href based navigation interspersed in the tool output. The portal.css is not used at all in the PDA portal - the tool CSS owns the whole page with a little tiny CSS added for the navigation bits.
Technically, when the feature is turned on for a tool, when the portal is displaying a page with a tool on it - instead of emitting an iFrame - it actually dispatches a buffered request/response to the tool to get the tool markup. It then scans the markup extracting the body and head material and passing this up to the Velocity rendering (macros.vm and pda.vm) which assembles the final page interspersing the head and body material appropriately. The portal code and the Velocity code do this on a reques by request basis and if anything goes wrong with the markup parsing or buffering the portal drops back to using iframes.
Thanks to testing from David Horowitz and Stephen Marquad and debugging by Antranig, we have quite a few tools working. The only tools that do not work at this time are the chat tool (both old and new) and the old discussion tool and wiki - these seem to use iframes or pull data from tool urls - the problem is that the tool URL now contains navigation in addition to tool output so you see extra navigation's. I have not tested *all* tools so folks will need to test. The only requirement is really simple - this is *not* XSLT - the HTML does not have to be perfectly well-formed. All that is necessary is a clearly identifiable head and body tags (both begin and end) that the parsing code can find. This would not have been possible without the portal refactoring work of Ian Boston and the JSR-168 work of David DeWolf - because JSR-168 was already buferring and wrapping requests - it was pretty easy for me to imitate that work and do a similar thing for non-portlet tools. So many deserve the credit for this.
Stephen and David H. came up with a very clever idea - in the place where we redirect to /portal - they are going to write a JSP that looks at which browser folks are using and redirects them to either /portal or /portal/pda. As an example, Blackberrys, Treos, and PSPs can be automatically sent to the PDA portal. But *EVEN MORE COOL* - JAWS can be sent to the PDA portal. We could ultimately make this part of Transformable/FLUID - where users set a preference for "less complex navigation" or some such and then folks get sent there because they want to be sent there.
This work is now complete and works at an "experimental" level in the trunk.
For folks who want to run production or test the new feature, the feature must be enabled on a tool by tool basis after testing. The default for this property is *COMPLETELY OFF* :)
portal.pda.experimental.iframesuppress=sakai.motd:sakai.iframe:...:sakai.synpotic.chat:
If you are bold/brave/foolish you can turn on for all tools - this version of the property is bad for production but plenty fun for testing.
portal.pda.experimental.iframesuppress=:all:debug:
I have a version of Sakai all checked out and running at the following URL
http://s-sakai-1.dmc.dc.umich.edu:8096/portal/pda
If you don't want to type this nasty URL, I also made a shortcut page at www.dr-chuck.com/pda/. This is the dev sandbox server so it might be down. If the server gets rebooted my tomcats might not get restarted. But it is a nice place to play. I also have a version of IMS Tool Interoperability Tool and Tool Interoperability Portlet installed on this system as well as Zach's latest IMS Common Cartridge stuff - so it might be a fun playground.
Of course there is still much to do. I want to have Mike and Colin take a look at the accessibility of the portal and if there are markup improvements that need to be done. I also want to get transformable into this portal - because this view will react REALLY well to Transformable as the whole screen will react and resize perfectly if we get it right.
There is a LOT of testing to be done - I have not tested every single tool - there is a neat debug property that can be set (see above) that logs the parsing of the buffered responses. If the portal sees a response that it cannot parse - it simply falls back to putting the tool in an iframe. So we might find a few tools that really mangle their head or body tags like adding spaces or new lines. The solution will either be to clean up the markup from the tool or teach the parser of the buffered response to be more tolerant.
Another general issue this new capability and the new browsers it brings will expose is "within tool" markup which is tending towards increasingly heavy use of Javascript. As we have pushed more and more features into tools and demanded increasingly slicker interfaces- we have been increasing the complexity of the Javascript in the tool's output. The frameless portal cannot compensate for this. What it really means is that we will have a bunch of new non-compliant browsers (albeit small communities) complaining about feature X or Y working on the Treo browser or some other tiny browser. My hope is that we can focus on the more modern PDAs like the PSP and upcoming iPhone - but I do think that we need to keep things a bit simple as we embark on"improving usability" - for many users and for many browsers - "more usable" is often related to"more simple". The nice thing is that for accessible users and other transformable users - the frames are gone and they are using modern speech-enhanced browsers - so they will see improved benefit across a wider range of our existing tools than things like a Treo.
This was too late to make 2.4 even as provisional - we can probably put it into a 2-4-x maintenance branch because it is not user visible without the property being set - it is just a few commits in the portal directory - the commits are simple and pretty safe and not likely to harm the normal portal or operation with the property turned off. It will not make it into a 2.4.1, .2, etc release - but I assume many sites who are concerned about accessibility and support for PDAs - and hey it might even work with IE7 since the portal CSS is extremely simple.
Since a lot of schools are planning on running 2.3 in production this fall, I am planning to back-port the entire 2.4 portal including these capabilities to 2.3 so folks can make use of these features without being forced to go to 2.4 just to gain support for PDAs and improved accessibility. This will also bring JSR-168 support to Sakai 2.3. I expect to do this ins a branch (not the 2-3-x branch) and make it so that folks can check out a complete replacement for the portal code in 2.3 from this back-port branch. The 2-3-x branch needs to continue to maintain the 2.3 Charon (non-velocity) portal. This also will not appear in a formal Sakai Foundation 2.3.n release.
At this point, I am kind of "done" to the level I can go with this (other than the back-port to 2.3) - it works and passes my dev-tests. So if people find this interesting and important - you should test it, debug it, fix it and use it and give me feedback. If no one tries this stuff - it won't get any better (even though in my considered opinion it is already VERY VERY cool right now).
Now that this is done - I can start working on taxes this weekend. :)
Again - thanks to Stephen, David, Ian, and Antranig for all the help on this.
This is a proposal I sent to the Sakai Foundation Board as to my thoughts on whether or not we should have one or two large Sakai conferences per year. Since there is a public discourse on this now, I will put it up on my blog.
One Conference Per Year
I strongly feel that we should drop to one world-wide conference per year. This would free up somewhere between $200K and $300K from the annual budget. This document describes what I would suggest we do with the freed up funds. This proposal stays under @200K so that it should reduce budget pressure in the net.
The high level proposal breaks down into two related parts: (a) encourage smalller regional Sakai meetings organized locally and support those meetings and (b) hire a training coordinator for the Foundation.
Regional Conferences
I think that we need to encourage smaller conferences - regional in nature and organized by a local group - not the Sakai Foundation. The Sakai Foundation needs to send staff to these meetings and at times financially support these meetings. Some examples are probably the best way to describe this:
- South Africa has its own Sakai User's meeting - the SF gave them $2K for incidentals and there are a number of community members from the UK going at their own expense to present at the meeting.
- Sakai Europe was a great success - we sent three people from the Foundation and a Fellow went at his own expense.
- We are coordinating a track at the June JA-Sig meeting in Denver - we are sending two people from the SF to present and Cambridge is sending Aaron to do the programmer Cafe - this cost would be less than $10K.
I think that another important trend is to have meetings focused on teaching with Sakai - these meetings need to be organized, hosted, and attended by teachers. The SF can support these meetings by covering incidentals such as food and snack breaks. Often $2K is a large sum for these small meetings and finding money for snacks is often the most difficult challenge for meeting organizers.
Training Coordinator
The first thing I would do is hire a training coordinator and buy out half of their salary and give them travel money. The job description for the TC is very much like the QA position:
- Maintain a training site for Sakai
- Act as an organizing point and single point of contact for training activity in the Sakai community
- Develop, gather, and maintain a library of training materials for Sakai
- Give training at Sakai conferences and other venues as needed
- Create a "train the trainer" program so Sakai community members can become competent in giving the training
- Develop and collect reusable on-line training materials for Sakai
The curriculum would include topics like
- Teaching with Sakai
- Distance
- Hybrid
- Intro to Sakai Programming
- Advanced Sakai Programming
- Installing and Configuring Sakai
The effort would be a combination of work performed directly by the training coordinator and community work as well.
Summary
I would spend about $200K on this effort including the salary support, meeting support, and travel to the smaller meetings.
This would really enhance the feeling of community with Sakai and reduce the feeling that Sakai is a "vendor". By bringing Sakai to regional meetings, overall member expense is significantly reduced. We have to remember that the world wide meetings are expensive for our members as well as expensive for the Foundation.
We depend too much on automatic things like maven and ant sometimes and forget how to to the simple things. For example - how do you compile a java program on the command line and use a jar like jdom-1.0.jar and then run that with the java command finding the dependencies in the jar.
rm *.class
javac -extdirs . HelloWorld.java
java -cp .:jdom-1.0.jar HelloWorld
We depend too much on automatic things like maven and ant sometimes and forget how to to the simple things. For example - how do you compile a java program on the command line and use a jar like jdom-1.0.jar and then run that with the java command finding the dependencies in the jar.
rm *.class
javac -extdirs . HelloWorld.java
java -cp .:jdom-1.0.jar HelloWorld
This may seem obvious but it needs to be documented so I can refer back to it later.
The way you copy a file from folder to another folder on Apple Mac OS/X in the finder is to hold down the option key while dragging the file.
It is hard to find documentation on something this simple - so I am providing this blog entry as a public service and as a personal reminder to save me a minute or so re-deriving it.
Funny how this is so much simpler in the Terminal program where you type "cp " and then drag the file into the terminal window then type " ." and enter. :)
I just defragmented my MacBook pro with iDefrag - and the simple answer is that I should have gotten this a long time ago. I do a lot of video and a lot of development and my drive runs between 75% - 85% full all the time.
I used the variant of iDefrag that makes a boot ROM and then can totally defrag my disk. It was horribly fragmented - particularly the free space.
My main issue was that I could not keep up with capture (on a dual 2GHz Intel!) and lost frames.
Once iDefrag came up it was clear - there was no real clear free space so it was seeking like crazy and not able to keep up with frames - reminds me of the old days with a PC :)
iDefrag of my 90GB out of 120GB took about 5 hours with a cool picture all the time so you don't get nervous. On reboot all is well. I will likely defrag after every large media project from this point forward.
I really need to get a 200GB drive to do all this video :)
The Question:
The trickiest one is tool integration: how do you integrate non-Sakai tools into the framework? I know this is complex (probably why I put it off for so long). Are there recognised steps required to integrate a non Sakai tool. I know this also depends on the type of tool and what integration really means, lets assume for now that the tool needs to know enough about Sakai to behave like a native tool.
Of course, Plan B in all of this would be to write a portlet wrapper around the tool and just plug it in to 2. 4. Would this approach introduce any limitations on what could be integrated and the level of integration?
There are three options:
(a) Use the Rutgers Link Tool - this is a tool much like CWebProxy in uPortal - it allows a quick and tight integration into Sakai because it is very REST based and already provides all kinds of groovy Sakai session information so that tools can make call backs to Sakai web services. It has clever two-way certificates that allow very secure interactions between the tool and Sakai to the level that the external tool can submit grades (a very hard thing to do securely because it depends on a combination of user trust and server trust). It is high functionality and easy to use - folks can usually do simple integration in a few hours. The only downside is that it is Sakai unique. But it is the only high functionality choice since IMS Tool Interoperability is so weak.
https://source.sakaiproject.org/svn//linktool/
(b) Use the Sakai IMS Tool Interoperability Tool - Written by Anthony. This is a 100% compliant tool for IMS Tool Interoperability - to use it you must support SOAP. As an example SOAP is pretty crappy in PHP. See http://www.dr-chuck.com/csev-blog/000267.html for my whining about how hard this is. Anthony's code supports Outcomes which are a weak form of grading - so weak that I would not use it - if I had to grades I would use the link tool. Anthony is also working on the producer end for Sakai for a demonstrator endpoint.
https://source.sakaiproject.org/svn//imsti/
https://source.sakaiproject.org/svn//imsti_target/
(c) Use the Sakai IMS Tool Interoperability Portlet - Written by me. This portlet is *not* 100% compliant with the IMS TI spec - there is no provision for the Outcome service - my opinion is that this is barely worth using in IMS TI 1.0 - I hope we fix this in IMS TI 2.0 and all signs are promising. By dropping the Outcome service I make it so that this can actually work in portals other than just Sakai (Sakai 2.4 supports JSR-168). I hope to have this portlet in good shape by the IMS Learning Impact conference in two weeks. I am also going to use this portlet to experiment with some IMS 2.0 ideas. Ths most important idea is to produce a simpler WSDL for IMS TI and a pure REST binding for IMS TI. These will make IMS TI much simpler to add to an application - these will be non-standard but I hope to feed this back into the IMS TI 2.0 work that Anthony and I are both involved in so I hope these approaches *become* standard in the future. I hope that in two weeks I have the following: (1) The portlet working in Sakai and uPortal (2) the portlet supporting IMS TI WSDL, IMS TI-Lite WSDL, and IMS TI-Lite REST, (3) sample code for PHP that supports IMSTI WSDL, IMSTI-Lite WSDL, and IMSTI-Lite REST and (4) Sakai supporting the producer-end of IMS TI-Lite WSDL so that we can use IMSTI-Lite WSDL to place Sakai tools in Sakai and uPortal. So this is cool but still emergent. If all goes well my IMS Learning Impact demo will be pretty cool - I will also show this at the Sakai track at the JA-Sig meeting in Denver in June. Both Anthnoy and I will be there and we will eb talking a lot about Portlets in Sakai in general.
https://source.sakaiproject.org/contrib/portlets/trunk/imsti-portlet/
I also have built a IMS TI WSDL Endpoint in PHP (oh the pain...)
http://www.sakaiproject.org/imsti-test/
It took less than 24 hours :)
I have code that I will check into trunk soon that eliminates the last iframe in the Sakai PDA view.
http://www.dr-chuck.com/images/2007/04/index.php?img=05-04-07_143454_01.jpg
Thanks to David and Stephen for testing the PDA portal and making sure I kept thinking about this :)
Presense is still in an iframe - but it can be suppressed as it is optional and browsers that ignore iframes.
Adding portal-impl/impl/src/java/org/sakaiproject/portal/charon/handlers/ByteArrayServletResponse.java
Sending portal-impl/impl/src/java/org/sakaiproject/portal/charon/handlers/PDAHandler.java
Sending portal-render-engine-impl/pack/src/webapp/vm/defaultskin/macros.vm
Sending portal-render-engine-impl/pack/src/webapp/vm/defaultskin/pda.vm
Transmitting file data ....
Committed revision 28476.
Here are the properties:
# Indicate the tool Ids that work with the PDA inline feature
# Add the String :debug: to indicate we want to see debug output in the log
# portal.pda.experimental.iframesuppress=debug:sakai.createuser:sakai.motd:sakai.iframe:sakai.ifame.service:sakai.iframe.myworkspace:sakai.iframe.site:sakai.profile:sakai.membership:sakai.resources:sakai.dropbox:sakai.announcements:sakai.sitesetup:sakai.synoptic.discussion:sakai.announcements:sakai.synoptic.announcement:sakai.mailbox:sakai.news:sakai.messages:sakai.synpotic.chat
# Only use this for testing
#portal.pda.experimental.iframesuppress=all
# Problems with non-iframe that need testing
# sakai.summary.calendar "< and > seem to fail but right click works - crazy"
# sakai.schedule "Next Day seems to Fail but right click works - crazy"
# sakai.chat (fails badly - too many frames)
# sakai.discussion (fails badly - too many frames)
# sakai.siteinfo (page order fails)
# sakai.rwiki (preview fails)
# blogger
# sakai.poll
I can try to get Megan to accept the mod for 2.4 - but perhaps it will not make it. It needs testing nonetheless.
I woke up this morning and while laying in bed at the Cupertino Inn - it dawned on me that there might be a way to remove the tool frame from the PDA portal. I am giving myself the next 24 hours to get it done.
I apologize if I seem distracted in meetings today...