My Experiences at Dev8D-2010 (Sponsored by JISC)

I came to Dev8D in London with two tasks in mind. First, the IMS Global Learning Consortium had just released the public draft of the IMS Basic Learning Tools Interoperability specification and I needed to come up with some materials to help developers understand and use the specification. My second goal was to give a workshop based on my O’Reilly book titled, “Using the Google App Engine”. This was my first Dev8D experience so I was not sure what to expect.
This is one of many Dev8D happy stories. You can visit the Dev8D wiki see the other Dev8D Happy Stories.
Like any good procrastinator, I was putting the finishing touches on my PHP sample application for IMS Basic LTI on the flight and train ride into London. I knew it would be a bit rough around the edges but since I had a free laptop and free iPod as inducements to get folks to try the software out, I figured I would have some takers who would help me work out the kinks and I could work on things throughout Dev8D.
On the first day, I spent most of my time either in the Base Camp or in the Expert talk area. When I gave my first expert talk, my job was to do a sales pitch to the developers in the audience to convince them that my bounty (building the best LTI tool) was (a) the best bounty and (b) I would be able to help them succeed. Since I had just finished the sample code the night before, I did not have slides ready to describe my sample code – so I have a general talk about how awesome Basic LTI was in general and promised to have a tutorial ready for tomorrow. I told them to download the code and start hacking. It turned out that a few of the attendees already worked on their campus VLE and a better way of plugging in an external tool was quite attractive to them o we had a few programmer teams off and running.
I did not want to disappoint “Team Tools Interoperability” so I worked late on Wednesday night to build a set of slides on how to work with the sample code for my Thursday expert talk. On Thursday morning, I started talking with some of the programmers and explaining things and decided that I needed to add a feature to my sample application (Classified ads) and then add more slides to my tutorial just in time for my afternoon expert talk on Learning Tools Interoperability.
I decided to sign up for a 10-minute lightening talk about “Teaching Programming to non-Programmers” – this is something I think a lot about and get “a little cranky from time-to-time” I have written a few blog posts expressing my frustration abut the way we teach the first “programming class” but had been nervous about giving a talk about the topic (which is a bit critical of the status quo).
I did not have enough time to make slides for my lightening talk so I just scribbled down some rough notes and started talking off the cuff. It seemed like the audience was not going to lynch me so I kept talking about increasingly non-status-quo radical ideas bout what was wrong with the current approach and how I saw it differently in the future. I just said what I felt about the matter using very direct and risky language and let the chips fall. By the end, I figured I had so much that I would be escorted from the premises.
When I stopped talking, I waited for the questions or criticism. But instead people started telling me their own stories about their own frustration with the status quo in teaching about technology. These conversations continued into the evening party. At some point in these conversations, I realized that I was among people who had made it through the educational system and came through on the other side. They could see that programming, networks, data, technology, etc was a wonderfully creative place to be and a lot of fun. And most of the folks wish that lots of other people could share the fun we were all having. I was among my own kind – those who think of computing and technology as a form of creative expression.
But there was no time to rest – I had my Google App Engine Workshop to give – so I again on Thursday night I stayed up late getting prepared for the Friday workshop.
On Friday morning morning, both of the teams working on Basic LTI had found a bug in the Moodle support for BasicLTI. I had meant to test it out myself – but ran out of time – so we sat down Friday morning and found and fixed the code. Steve Coppin had already found and fixed one bug in the Moodle code (the hard one) and sent it to the Moodle Basic LTI team. I helped Steve find the last (easy) bug and got all the teams going again.
In the afternoon on Friday, after a bit of a scare getting my handouts printed (the University of London Union staff totally saved me!) and finding a Mac Air VGA adapter (yikes!) things settled down and my workshop started.
Since most of the folks at the meeting were geeks – getting software installed and the simple demos working was a piece of cake. I quickly sold the books I had brought over – so I had enough money for cab fare for my return. We cruised through the first 3 hours of the lectures and hands-on exercises having a great time it was fun to teach a new language to existing programmers – we could move pretty quickly.
Then we got to Chapter 8 about how App Engine does not support relational data but instead the Datastore is sorted, sharded data aimed at quickly reading through large amounts of data. As I was describing the advantages of Data Store – the crowd started to get a bit “restless”. They started thinking that App Engine was kind of crappy and started asking even more tough questions. I started to defend App Engine and point out its strengths and we moved into a free flowing discussion that went from search engine architecture to the future of computer science – reacting to the in-depth questions made me think a lot on my feet about “how” and “why” and “what this all means in the grand scheme of things”.
The group discussion that ensued was lovely – and by the end, I think that we all learned something by having our collective thinking bent one way and then another exploring this we technology and approach to data storage. I now I learned plenty during the impromptu “debate” part of the evening.
The awards dinner on Friday was great fun – you could start to see the JISC leaders and organizing committee relax a bit – we were past the half-way point and everything was going fine.
Saturday morning, I no longer had any more formal duties so I figured I would relax and judge the Basic LTI competition for the “bounty”. There was some space in the Arduio hardware workshop so I decided to sit in and learn how to teach using Arduino. I was having great fun learning Arduino and making an LED blink on and off when Tobias Schiebeck of Manchester came in because he was having trouble plugging Access Grid into Sakai using JSR-168 and he thought there might be a bug in JSR-168. He showed me what was happening and it looked like a bug so I stepped out of the Arduion workshop to look at it more thoroughly.
I had written the support for Sakai for JSR-168 back in 2005 and the bug was something I sort-of remember in the back of my mind as something that I had never fully tested. It had to do with sessions of different scope in JSR-168. Now he was getting stuck – his application was working but there was some yucky text on the screen because of the bug. He had even fixed one bug and then found another bug and had sent a note to the developers list some time ago which somehow I had missed. So we started to jointly hack on Sakai’s JSR-168 support. I wanted to figure this out once and for all and get it fixed right. Tt was great to have Tobias sitting next to me who (a) needed the fix, (b) knew Sakai internals pretty well, and (c) would help me work through the issues, and (d) would use the fix immediately.
We started about 10 AM – it was slow going at first because I had not touched the code in five years – but Tobias knew the code well enough to help me start to remember things. We quickly narrowed the problem down to the code he had patched – but his patch was not enough. So we just kept digging – we broke for a quick lunch and got back to coding and debugging. I kept being pulled out to judge the prizes and other things but would always come back and code more. We worked through the awards ceremony and it started to feel closer and closer. ANd finally I realized what was going wrong at a high level and started to narrow down the problem and solution. We started trying things and we were both testing and editing our own copy of Sakai at the same time. I got closer and closer – but finally Tobias had to leave to catch his 6PM train. I told him to save his version of the code and pack up while I ran one more test that I thought was finally going to make it work. He stood there as my Sakai instance restarted and after a few minutes we ran the test and realized that had the fix. Tobias was quite happy – as he ran to the train to go home to Manchester. In four hours, together we had cracked a bug that had eluded me for five years hidden deep in the code of Sakai.
By the time we were done, the room had become empty – and the staff were cleaning up the papers – and had taken away our power plug – and the food was gone – but we got the bug fixed and finished and TObias made his train with five minutes to spare!
Back to the main reason I came to Dec8D, the IMS Basic LTI prize winners were great – they had built and integrated their tools into Moodle, Sakai, Blackboard, and WebCT using Basic LTI in less than 48 hours. I was really proud. One of the projects integrated an existing reading list application and the other used Apache Wookie to plug widgets into a learning management system using Basic LTI.
Afterwards, I talked to both teams about helping work on and support the Moodle Basic LTI software and I think that this might work out.
So in summary, I cam with two ideas in mind and ended up doing a lot of things that just popped up as an opportunity. I worked on code from five years ago and worked on code that will be in the next release of Moodle – I did a bit of teaching and a lot of learning. A big “thanks” to Dan Hagon, Scott Wilson, Mark Johnson, Steve Coppin, and Ben Charlton.
I will write a separate blog post with screen shots of the software when I get more time! We awarded the Asus EEPC and iPod provided by Blackboard and gave away IMS T-Shirts – I was quite thankful as my luggage would be much lighter for the rest of the trip!
Being in the same rooms for four days with such smart people in a completely supportive environment (with plenty of snacks) was like several weeks of working by myself in terms of the variety of things I worked on. I made progress on so many fronts and had such a great time doing it.