Monthly Archives: March 2009

Kind of Neat Day

Today was a kind of neat day.
It started at 3:30 AM in Boston when I got up to go to the airport to make a 5:56AM flight to Detroit – I was still geeked because I thought my keynote at Apple Academix at MIT went pretty well.
The flight arrived in Detroit at 8:10 AM – so I drove home arriving about 9:30AM.
I spent a few hours cleaning up some code I owed Alan Berg and cleaning up a Melete patch for Mallika Thoppay fixing a bug McGraw-Hill found in their testing.
By about noon I had sent the two code bis off and went to Office Max to print 100 30% off coupons for my App Engine book to take to Pycon.
I left for Pycon in Chicago at about 1:30. After I got on the road I called Bryan H. for a quick chat -but we starrted just catching up and we ended up talking for over an hour. By that time I was past Kalamazoo.
At that point Christina Sherman of the extensible catalog(XC) project called and we talked for about 2.5 hours – all the way until I reached PyCon at O’Hare Airport – it was a lovely chat and made the drive seem almost instantaneous.
I walked in, got registered, and sat down to use the WiFi and Steve Githens walks by and we catch up. Then I go to the lightning talk.
After the lightening I stop by the O’Reilly booth to talk to Laurel Ackerman and introduced myself and promised to bring in the coupons tomorrow morning.
Then I wandered back to meet the Edu-Sig crew for dinner at a Mexican restaraunt. I ended up sitting with Andrew Harrington from Loyola, the guy who write the Crunchy package, and Jeff Elkner who is a High School teacher from Virginia who loved the idea of teaching App Engine to his students.
After dinner, we went to the BOF where I reconnected with Anna Ravencroft, Kirby Urner, and the whole gang. As usual the topics were pretty broad and big – but it was a good group and I got the strong sense that the cause of teaching with and about Python had really advanced in a year. There were small and large successes to talk about and it felt to me that we were moving away from the notion of “if” and toward the notion of “when”.
We talked about the Punch/Enbody talk – which I did not see but was well received.
And now at 12:39 AM I am finally in the hotel ready to go to sleep. What a cool day.

CloudSocial: Changing Teaching and Learning by Changing Perspective

Charles Severance, Joseph Hardin, Ted Hanss
With well over a decade of development, deployment, and experience, enterprise learning management systems are deeply integrated into most institutions of higher education. There are very few remaining schools that rely solely on paper, face-to-face conversations, lectures with overhead projectors and chalkboards. Much like the shape and structure of classrooms is nearly universal around the world, so too is the shape and design of the enterprise teaching and learning management systems around the world.
Much like the physical shape of the classroom is a forced perspective that affects how we teach and learn, so too the layout and shape of these LMS systems forces perspective that strongly shapes how we think and teach using technology. In a sense given that these learning management systems are provided by the central campus authority and often faculty are forced by the administration to use these systems, it is no wonder that our approach to teaching and learning is affected by the capabilities and structure of these systems.
Given that higher education faculty are often independent thinkers, there is a natural tendency to reject the convention that comes from the administration and strike out on one’s own direction and quest (like teaching at a coffee shop or outside on a nice day). This has led to a movement for “Personal Learning Environments” that advocates that learning software should be similar to Peer-To-Peer software like Napster or BitTorrent. While some of these experiments have been interesting in particular contexts, the idea that we can replace the central Learning Management Systems with software that runs on each student’s laptops has not enjoyed adoption.
Another approach faculty use to break out of the enterprise LMS has been to simply teach using public Web 2.0 features like Twitter, Blogger, Flickr, Google Docs, etc. Often each teacher invents their own approach and ultimately takes the responsibility for teaching the students to use their chosen suite of teaching technologies. This takes essential time away from teaching the subject of the course.
The

Playing with IMS Learning Tools Interoperability and Blackboard’s Proxy Tool

Last week I spent two fun days at Blackboard hacking with John Fontaine and George Kroner. My goal was to advance my understanding of the Blackboard Proxy tool and get a better sense of how to fit the upcoming IMS Learning Tools Interoperability specification into Blackboard’s product. Part of my job as the IMS Developer Network Coordinator is to “network” with developers and this was a perfect example of a situation where I could advance the cause of interoperability amongst learning management systems and learn something new.

None of the statements or pictures in this post represent any product commitment by anyone. They are just hacks to show proof of concept.

I arrived with a plan to write a SimpleLTI (simplelti.appspot.com) Building Block – but quickly decided to spend our time playing with BB9 proxy to see how it lined up with SimpleLTI, BasicLTI, and LTI 2.0.

Continue reading

Perspective: A Meteor Strike May Cause LMS Systems to become Extinct!

Dr. Charles Severance, University of Michigan School of Information

Today’s learning management systems, such as Sakai, Blackboard, Angel, Moodle, and others, represent a very mature and smoothly functioning ecosystem. These systems are all mature enough that the majority of faculty and student users are generally satisfied – regardless of which system their university has chosen. Increasingly, these products adopt each other’s features and are slowly beginning to look like clones of one another. This behavior is quite natural in a well diffused market, where the only way to get a new customer is to take that customer away from a competitor. The right marketing approach in a saturated market is to claim “we have everything they have – and more!”. Products compare themselves with the others in the market and adopt features to either gain an edge over a competitor or take away a competitor’s edge in some area.

One might see this seeming stability and maturity in the ecosystem as the “golden age” of Learning Management Systems. However, when things start to appear to be “too stable” – perhaps it really means that we are waiting for a disruptive change to move us in a new direction and evolve and grow. When we look back a few years from now, we may realize that this was just the late Jurassic period and the current crop of LMSs are the Tyrannosaurus, Triceratops and Apatosaurus – unknowingly waiting for the meteor to strike.

There is a significant unsolved problem when moving course information between Learning Management Systems and Open Educational Resources such as the MIT Open Courseware initiative. There is a similar tension moving course content between commercial publishers and LMSs. Currently, the LMS holds the ‘high ground’ in the conflict with content producers because we force students to use an LMS. Content producers must convince the teachers to adopt their content and then bring the content into the LMS. So, in order to reach their market, content producers are forced to adjust to the technical demands of the LMS vendors – even if those technical demands change each time the vendor produces a new release of the LMS. There is a lucrative sub-industry in the publishing business to take a copy of publisher content and produce up to 5-10 versions of the same content for the each LMS.

The problem is no better when we are taking content out of an LMS. To produce an Open Educational Resource from LMS-based materials, there is often a completely custom, high touch/high cost process to extract, convert and clean up the materials so they can be published into the OER Repository. Of course, once in the OER Repository, other teachers want to use the materials and so they need to pull the learning resources *back into* their local LMS. The need to go through two painful conversions to get “open” learning content out of one LMS and then back into another makes the cross-flow and remixing of learning content between different LMS systems via OER repositories virtually impossible and sadly rather rare.

The meteor strike will happen when the owners and holders of content tire of the current situation and decide to take the initiative and simply change the rules of the game. Content holders will realize that the current crop of Learning Management Systems are mostly a set of “learning gadgets” arranged around a simple content management system. It will quickly become clear that it is easier for the learner to bring the Learning Management System “gadgets” to the content than laboriously convert and copy the content into the LMS. We should not redundantly embed learning resources in hundreds or thousands of Learning Management Systems just so the content can be “close” to the learning gadgets.

Bringing the learning software to the content has many benefits. There is a single carefully curated and maintained copy of the materials. The providers of information can more easily track use metrics and report on impact. Commercial content providers can build scalable business models that do not include tailored conversion and duplicative content handling. Dramatically reducing the production and logistics costs of published materials may lead to new attractive business models for publisher-provided content as well as greatly increase the reuse of open materials.

What is needed is a way for the LMS to “tag along” as the user moves between various sources of content. In essence, the LMS should be a small unobtrusive menu layered on top of the content. This “embedded” LMS has all of the features of the current LMS offerings. It does not have to be any one LMS system – it can even make use of best-of-breed existing tools and capabilities in Moodle, Angel, Sakai, Blackboard or others as long as the current LMS providers invest the time to make their tools and capabilities available as widgets.

The content must be able to retrieve a list of LMS tools to use and identify the appropriate learning context for the current student viewing the material. With this approach, literally thousands of students in hundreds of learning contexts could be simultaneously using the same freshman calculus materials at an OER repository such as open.umich.edu. Each student is given a personal set of tools appropriate for an individualized learning context.

At a high level, the approach is quite simple – we borrow a well-understood pattern from service-oriented architecture called “inversion of control”. The content does not know in advance which LMS will be used — instead, at the moment the student visits the content page, the content contacts a central server and asks “what tools are configured for the current viewer of my content”. The tools are then displayed in a menu bar that hovers unobtrusively over the content. The learner experience consists of traveling from one content page/site to another and this little LMS toolbar just follows them around. The toolbar can even have a “Content Map” tool that leads the student from site to site.

This is accomplished in a similar manner to Google Analytics, Google Maps, or Google Friend Connect. A bit of JavaScript from a trusted source is embedded in the content and handles all of the management of determining which tools are appropriate for the current user viewing the page and displays the appropriate menu above the page. When a menu item is chosen the learning gadget pops up on top of the content. The gadgets can run back on the servers at the students’ campus – the content does not even know the identities of the students visiting the content. All of the logging and identity is stored back at the system that is running the widgets. All of the orchestration of identity, menus, and tool launching can be handled by an emerging FaceBook-like standard for learning – IMS Learning Tools Interoperability.

When the content providers decide to enable the use of learning management system widgets on top of their content, the transformation from LMS-centered learning to student and content-centered learning will likely happen very rapidly.

If this approach is widely adopted it will dramatically change the role of the LMS in education. The move away from LMS-centered thinking to content-centered (and web-centered) thinking in teaching technology could be the meteor-like transformative event that may make the current LMS walled-garden approach extinct in a few years. Of course, this new approach is open and standards based so it allows any LMS to produce an “embedded” version of itself for use in this new content-centered learning environment.

Perhaps the dinosaurs will evolve instead of going completely extinct after the content meteor hits. The more adaptable LMS platforms will survive by evolving to grow wings and feathers and learning to fly.

If all goes well, perhaps a few years from now when learners, mentors and teachers are flying around the web, learning as they go, clever embedded versions of Moodle, Angel, Sakai, and Blackboard will be their ever-present “co-pilots” along with a new and diverse set of learning tools to meet the needs of portfolios, lifelong learning, user-centered learning, and ideas that we have not even imagined.

Musings on eScience / eResearch

This is an E-Mail I sent a while responding to a query that triggered me to think about “how I would do research collaboration” if I ever once again got the chance.
First off, I would love to help in your effort – I have a long history of trying to get researchers to collaborate – sadly many of my efforts were less than successes.

Instructions for a Sakai Demo with LTI

This describes how to get a simple demo of Sakai with LTI running quickly. Sorry about the word wrapping.
Edit your ~/.bash_login file, add the following long line:
JAVA_OPTS=’-Xmx1024m -Xms1024m -XX:PermSize=32m -XX:MaxPermSize=256m -XX:NewSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC’ ; export JAVA_OPTS
Make sure it is one line.
Close all of your terminal windows and open a new terminal window. In that terminal window, type:
dhcp2-229:~ csev$ echo $JAVA_OPTS
-Xmx1024m -Xms1024m -XX:PermSize=32m -XX:MaxPermSize=256m -XX:NewSize=256m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
dhcp2-229:~ csev$
Again – all one long line.
Download the following file:
http://www-personal.umich.edu/~csev/sakai/sakai-trunk-lti.tar
Put it in some nice, empty directory and then open a terminal window and navigate to that directory.
Un-tar it into a directory – it should create a folder called sakai-trunk-lti
67-194-4-195:sakaifun csev$ tar xfvz sakai-trunk-lti.tar
sakai-trunk-lti/
sakai-trunk-lti/bin/
sakai-trunk-lti/bin/bootstrap.jar
sakai-trunk-lti/bin/catalina-tasks.xml
sakai-trunk-lti/bin/catalina.bat
sakai-trunk-lti/bin/catalina.sh
sakai-trunk-lti/bin/commons-daemon.jar
sakai-trunk-lti/bin/commons-logging-api.jar
sakai-trunk-lti/bin/cpappend.bat

Change into the directory sakai-trunk-lti/logs and type this command:
67-194-4-195:logs csev$ cd sakai-trunk-lti/logs
67-194-4-195:logs csev$ ../bin/startup.sh
Using CATALINA_BASE: /Users/csev/dev/sakai-trunk/apache-tomcat-5.5.23
Using CATALINA_HOME: /Users/csev/dev/sakai-trunk/apache-tomcat-5.5.23
Using CATALINA_TMPDIR: /Users/csev/dev/sakai-trunk/apache-tomcat-5.5.23/temp
Using JRE_HOME: /System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home
67-194-4-195:logs csev$ tail -f catalina.out
2009-03-11 08:32:21,764 INFO main org.apache.catalina.startup.Catalina – Initialization processed in 1006 ms
2009-03-11 08:32:21,960 INFO main org.apache.catalina.core.StandardService – Starting service Catalina
2009-03-11 08:32:21,967 INFO main org.apache.catalina.core.StandardEngine – Starting Servlet Engine: Apache Tomcat/5.5.23
—- There will be lots of lines here — It will take 1-2 minutes for Sakai to start.
— If it is successful – you will see the messages below
2009-03-11 08:34:53,100 INFO main org.apache.jk.common.ChannelSocket – JK: ajp13 listening on /0.0.0.0:8009
2009-03-11 08:34:53,106 INFO main org.apache.jk.server.JkMain – Jk running ID=0 time=0/30 config=null
2009-03-11 08:34:53,225 INFO main org.apache.catalina.storeconfig.StoreLoader – Find registry server-registry.xml at classpath resource
2009-03-11 08:34:53,280 INFO main org.apache.catalina.startup.Catalina – Server startup in 151516 ms
Navigate in your browser to
http://localhost:8080/portal
Login as admin / admin
Click WorkSite Setup on the Left
Click “New”
Select “Project Site”
Fill in Site Title – the rest can be left blank.
On the list of tools, scroll down and pick the Proxy Tool and press Continue.
At “Project Site Access” Click Continue
At “Confirm Project SIte Setup” Click Continue
Navigate to your new site using the tab at the top.
Select “Proxy Tool” – It should say “not yet configured”
Click the pencil icon in the upper right to get the configuration screen.
Remote URL: http://simplelti.appspot.com/launch
Secret: secret
Press “Update Options”
When it asks “Would you like to save your settings?” Press “Yes”
Viola! Dr. Chuck Sings the Blues
When you are done, in the terminal window with the tail, press CTRL-C and then type ../bin/shutdown.sh
2009-03-11 08:40:36,978 INFO http-8080-Processor25 org.apache.pluto.core.PortletContainerImpl – Portlet Container [sakai]: Container initialized successfully.
^C
67-194-4-195:logs csev$ ../bin/shutdown.sh
Using CATALINA_BASE: /Users/csev/dev/sakai-trunk/apache-tomcat-5.5.23
Using CATALINA_HOME: /Users/csev/dev/sakai-trunk/apache-tomcat-5.5.23
Using CATALINA_TMPDIR: /Users/csev/dev/sakai-trunk/apache-tomcat-5.5.23/temp
Using JRE_HOME: /System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home
67-194-4-195:logs csev$
Note – this is using an in-Memory database so each time you restart Sakai your sites will vanish.
Lather, Rinse, Repeat.

Google App Engine Trace Routes

One of the advantages of using Google App Engine is that your applications can run in various data centers around the world (i.e. the cloud). So if your users are far away (like I was in South Africa last week) they can use servers that are closer. Google can fake IP addresses, routers, etc.

SO as an experiment, while I was in South Africa I did a trace route to my appspot application and then did the same trace route from a server in Michigan. The results are not very conclusive – but I put them here so I can come back and check again later.

I do get a quite different IP address from South Africa compared with Michigan – but the traceroute in either case seems to lead to southern California. These were done at pretty much the same time – I was logged into my Michigan server using SSH.

---- From South Africa -----
traceroute wiscrowd.appspot.com
traceroute to appspot.l.google.com (209.85.129.141), 64 hops max, 40 byte packets
1  172.16.64.1 (172.16.64.1)  64.578 ms  1.804 ms  3.092 ms
2  uwcfw-int.uwc.ac.za (192.102.9.1)  1.174 ms  1.951 ms  4.738 ms
3  uwc-uninet-router.uwc.ac.za (196.11.235.3)  37.678 ms  176.863 ms  142.694 ms
4  unknown.uni.net.za (155.232.144.173)  88.820 ms  7.056 ms  579.962 ms
5  v2750-tiger-brie.uni.net.za (155.232.145.226)  303.990 ms  13.773 ms  11.636 ms
6  unknown.uni.net.za (196.32.209.25)  552.896 ms  597.400 ms  613.206 ms
7  74.125.50.133 (74.125.50.133)  613.780 ms  532.660 ms  305.131 ms
8  209.85.252.76 (209.85.252.76)  320.321 ms 209.85.255.175 (209.85.255.175)  603.594 ms  610.238 ms
9  72.14.233.63 (72.14.233.63)  610.531 ms 209.85.248.80 (209.85.248.80)  317.499 ms  611.633 ms
10  72.14.232.209 (72.14.232.209)  303.452 ms 209.85.248.183 (209.85.248.183)  288.133 ms 72.14.232.209 (72.14.232.209)  302.015 ms
11  72.14.232.203 (72.14.232.203)  626.897 ms  610.341 ms  388.027 ms
12  72.14.233.210 (72.14.233.210)  534.247 ms 72.14.239.170 (72.14.239.170)  536.955 ms 72.14.233.210 (72.14.233.210)  610.059 ms
13  209.85.129.141 (209.85.129.141)  614.124 ms  609.336 ms  607.647 ms
--- From Michigan ---
zaxxon% /usr/sbin/traceroute wiscrowd.appspot.com
traceroute to appspot.l.google.com (74.125.19.141), 30 hops max, 40 byte packets
1  v-umce-login.r-aldca.umnet.umich.edu (141.211.2.130)  0.251 ms  0.210 ms  0.192 ms
2  198-108-11-160.umnet.umich.edu (198.108.11.160)  0.591 ms  0.431 ms  0.394 ms
3  l3-arbl-fxb.r-arbl.umnet.umich.edu (141.211.0.137)  0.541 ms  0.532 ms  0.493 ms
4  l3-barb-rarb.r-bin-arbl.umnet.umich.edu (192.12.80.129)  0.441 ms  0.430 ms  0.392 ms
5  v-bin-arbl-inet-aa.merit-wsu5.merit.edu (192.12.80.69)  1.890 ms  1.880 ms  1.890 ms
6  xe-0-1-0x76.eq-chi2.mich.net (198.108.23.12)  7.781 ms  7.721 ms  7.731 ms
7  198.110.131.78 (198.110.131.78)  8.130 ms  7.969 ms  7.981 ms
8  216.239.48.154 (216.239.48.154)  8.079 ms  8.121 ms 209.85.250.237 (209.85.250.237)  8.132 ms
9  209.85.249.19 (209.85.249.19)  30.485 ms  30.383 ms  30.295 ms
10  209.85.242.211 (209.85.242.211)  56.051 ms  56.143 ms  55.801 ms
11  209.85.243.122 (209.85.243.122)  55.950 ms  56.291 ms  56.152 ms
12  209.85.251.94 (209.85.251.94)  56.103 ms  64.126 ms  56.202 ms
13  cf-in-f141.google.com (74.125.19.141)  56.199 ms  56.288 ms  56.352 ms

Abstract: Evolving Teaching and Learning: Beyond the LMS (Apple Academix)

I have been invited to speak at a series of Apple hosted meetings to explore ideas around teaching and learning and technology beyond the Learning Management System. An exercise to think outside the box.
Here is the URL to the event:
http://edseminars.apple.com/seminars/event_template.php?eventTemplateID=578

The event is a free two-day seminar at MIT, Salt Lake City, Indianapolis and Duke. I will be at all the seminars except for the Salt Lake City seminar giving the this talk:
Evolving Teaching and Learning: Beyond the LMS
Dr. Charles Severance – University of Michigan
The LMS market today faces a strange contradiction – few teachers truly *love* their current LMS but at the same time no one wants to endure the pain of switching to a new LMS.

We Can Pay for Google App Engine!

We can now pay for services in the Google App Engine if we use resources beyond the free quotas. This is an amazing and very welcome development. I figured it would take longer. The timing is nicely positioned for the next Google Developer conference (Google I/O).
Here is the documentation on the new billing options including a video.
http://code.google.com/appengine/docs/billing.html
In May, free quotas will be reduced to 6.5 hours of CPU time per day 1 Gigabyte of bandwidth per day. That is not too big of a deal and makes sure that the free stuff stays free. Quota URL:
http://code.google.com/appengine/docs/quotas.html
Here is the Google I/O URL in case you want to go to it (academics get in for $50.00).
http://code.google.com/events/io/
And if you want to purchase a book on developing for Google App Engine (pre-order for now):
http://oreilly.com/catalog/9780596800697/
The author of that book is a really cool guy. If you pre-order the book but just cannot can’t wait for the book to come out in print, a rough draft of the book is available here:
http://www.appenginelearn.com/
This is great fun. Let the games begin.

Movie Reviews

Well – with about 40+ hours on A330s and B777s this week – it leads to a nearly automatic movie review post. Here are my lightning quick movie reviews from best to worst.

Vicky Cristina Barcelona (6/5) – Delightful from beginning to end – I loved the narrator popping in from time to time – it was like a book/movie combination. Maria Elena appeared at the perfect time as the plot needed a boost – I *knew* it was her when the phone rang in the bedroom scene. Magnificent editing – thank you Woody Allen for the fine editing touch. Scenes of Barcelona and Spain were very lovely and brought back many memories. Required viewing for folks going to the IMS Learning Impact meeting in May in Barcelona!

Baby Momma (5/5) Great fun – the middle could have been edited more crisply – I was getting bored with the repetition until Greg Kinnear appeared and things got interesting. I loved the ending and plot resolution.

Momma Mia (4/5) Good stuff. I always wish musicals would shorten the numbers. The cast did a fine job technically but all the older leads seemed completely mis-cast. The daughter was very well-cast as was her fiance – they belonged in a musical – the others did not – they were film actors – not singers. The plot and location were so wonderful – that I forgave the casting flaws and just enjoyed the film.

Traitor (4/5) I liked how they explored the dimensions of faith and the various levels of faith and how people interpreted the world differently based on the depth of the faith. The lead character was so well acted that you *had* to watch – so much depth.

Madagasgar 2: Escape from Africa (4/5) I had low expectations of this but was nicely surprised. The plot is a remix of Lion King but with enough fun differences that it was not bothersome. The little old lady is a *stitch*. This film series just makes lots of really likable characters.

Get Smart (3/5) – Had a lot going for it – and while I love Steve Carrell – he was mis-cast in my opinion. He is a *comedian* – Smart needs to be more of a straight guy who just bumbles because of his nature. Steve kept delivering it as if it were funny. Get Smart is funny when it is trying not to be funny. Don’t get me started about Steve Martin as the Pink Panther. Grrr.

Body of Lies (3/5) I generally liked this – it gave me a bit of the Bourne style of filmmaking which I love – I got a little tired of the Russell Crowe character being an idiot *continuously* – he could not have been that stupid. I liked the end of the film – again a study in people and trust and friendships.

Burn After Reading (2/5) – I wanted to like this – I liked the characters – I came back to watch it several times on the trip – after 20 minutes it was so painfully boring. Sure deadpan is fun and the Cohen brothers know how to do it (like No Country for Old Men) – but deadpan does not mean dull. This film was dull – but I watched a bit because I liked the characters – I just did not have the patience to get to the end of the movie after three tries.

Step Brothers (2/5) Wow – lovely cast – horrible film. I love Will Ferrel and John C. Reilly – the script was simply so bad and again went to the same cliche over and over and over and over (and over). I could not finish watching it. Perhaps a better approach would have been to simply film Mary Steenburgen reading the script – at least I would have watched that until the very end :)

Slum Dog Millionaire (1/5) Basically crap – again the same plot device over and over. Lead character says a line and then bad guy slaps him – then we have several flash backs to childhood and the TV studio – the the lead character says a line and the sequence is repeated. The plot was nowhere and going nowhere after the first hour – the first hour could have been done in a 2-minute montage. The only redeeming thing about the film was beautiful filmography in the youth scenes – beautiful colors – beautiful camera work – great locations and costumes. I wanted to like this – but it was just a bad Oliver Twist meets Clockwork Orange and zero reason to be emotionally connected to the characters.