Checklist for One Question Mneme Test

Update: Please see my New post (with video) describing the one-question Mneme test

This is my checklist to to make a one question test for my course in Mneme/Test Center. I do this a lot and I find myself making one little mistake and things are messed up because you can’t fix a test once published. Hopefully by writing this checklist I won’t make as many mistakes.

Add new Pool – set the point value that you want for the whole test. There is a way to change the points on a pool – I just couldn’t find it when I was in a hurry – so I just blast the one question pool and start over.

Add a question to the pool – paste in your question text. Make sure to proof this text and any attachments carefully – again hard to change later. Here is the text I use for my question:

This entire test is in a file which you edit. You are to download the test and insert your answers to the questions in the document and then save and upload the document. This file should open in any word processor. When you upload the file you can upload text file, Word Document, or PDF.

You have now entered the test and so the timer for you to take this test has *started*. You should download the test and begin working so you can finish and re-upload your answers within the three hour time period.

Exam Document: Download Here

The file may open in your browser – in this case you use Save As. Or the file may download to your computer – in this case you go and find the file on your computer.

If you have technical difficulties – send a note to csev@umich.edu – in a pinch send a text message to +1 517-xxx-yyyy – please include a callback number in your text message.

Once you have downloaded the file, you can leave this screen by pressing “Continue Later” and then come back *within 3 hours* and upload your answers.

When you have finished the exam – come back and upload your modified document as an attachment to this question below.

For the text Download here, you use the editor to turn this into a link and upload a copy of the exam document with no answers as the linked document.

Make sure to “Select Attachments Only” *before* saving the question.

Then “Done” to save the question to the pool.

Then Select “Assessments” and then “Add” make a new Assessment.

Put in a title – the good news here is that the title can be the same as an Assessment that you archived so if you are doing this to fix a typo on the exam, you can republish later (with only a loss of any submitted grades at that point).

Then press “Add Manual Select”

Leave Part Title Blank. Press “Select Questions”.

Pick the single question from the pool you just made. And press “Done”. Press “Done” again to finish editing the Assessment.

The next step is to check the test to see if it works using the Publish and Test Drive.

The last time I tried to test drive (December 2009) – I was unsuccessful – I have three possible reasons: (a) Mneme was simply broken, (b) some bit of permission is not correctly configured at UM, or (c) because I have admin power and Mneme gets confused when it sees someone who is both an Instructor and an Admin. In December 2009, I simply gave up and knowing I had properly authored the test. So I published the test at the right time and things were fine.

Hopefully this works better for a normal “Instructor” – or perhaps some upgrade to Mneme made things work better – I hope that Publish and Test Drive works for you.

I am really looking forward to the next version of Mneme/Test Center which makes this use case much easier because it is less obsessed with regards to always making a pool for everything.

Sakai Board Elections 2008

By now, everyone has seen the Sakai Board election slate at:

Sakai Board Candidates

Avid readers of my blog will recall my rant about having not having any commercial members elected in this round:

Editorial Position: Sakai Foundation Board Members should be from Higher Educatiion

To summarize – I am not “anti-commercial” – I just think that giving 1-2 board seats to a commercial partners does not end up doing a good job “representing commercial interests”. For the company that gets a board seat, *their* commercial interests are well represented – but different companies have *very different* interests in Sakai. I made the case that we needed a way for *all* commercial partners to participate in strategic discussions – not just the lucky one that gets elected to the board.
My feeling is that academic board members – whilst they may have subtle differences in local agenda and needs – there is far more commonality than disagreement – and with 6-7 academic representatives – we will hopefully have most of the main perspectives represented.

Back to my point…

That said, I want to talk a bit about the slate of nominees. This is a great bunch of folks! The nominating committee has assembled a great set of nominees – like open source somehow tends to accumulate some of the best technical talent – the folks who are nominated are pretty great in terms of commmunity leadership talent. If I were ever to want to form a different non-profit board – this group of folks would make a damn fine founding board.

I am pleased to see some of the leaders from the top contributing schools (John Norman – Cambridge and Stephen Marquard – University of Capetown). Both have contributed a large amount of technical leadership, technical resources, and community leadership and community building. You can see in the visualization of Sakai activity that both UCT and Cambridge are strong long-term contributors to Sakai and also are increasing their commitment to Sakai at this time.

Maggie Lynch is a teacher and represents the teacher perspective – the recent successful regional meeting at VA Tech shows how badly we need to voices of teachers in our thinking. Funny – some teachers actually *like* Sakai – while all us tech folks always want to dramatically change and improve Sakai – because it is our “pride and joy” – sometimes stuff that just works – is also mighty nice. Also perhaps we need to separate the UX complaints between “transition complaints” that are effectively “I am pissed cause I lost one feature from the last LMS we had” – to real UX complaints that actually lead to improved software functionality like “I have tried as hard as I can try with this new software and while I like most of it – this little thing needs fixing”. Again – a teacher perspective is badly needed to balance the overwhelming tech and commercial perspectives that currently “own” community direction and thinking.

Speaking of Virginia Tech, John Moore has made himself available – John has been a solid leader and contributor to Sakai and other open source projects from the beginning. The recent teacher’s workshop at VA Tech is hopefully the beginning of a whole new set of contributions that will greatly richen our community.

Both Per Wising of Stockholm and Sean Mehan of University of the Highlands and Islands bring a much needed viewpoint from the international community. Sakai has been too US-centric for too long – the increasing technical leadership from Cambridge and increasing participating and leadership from folks like Per and Sean will lead the Foundation to the right perspective for the whole community – where the growth will increasingly happen outside the US.

Both Per and Sean also have the advantage that they have been involved in Sakai for a “long time” – but they were not involved in Sakai “from the beginning”. Those of us who were in Sakai at the beginning have a lot of baggage (myself included). While some baggage might be counted as “valuable experience”, most baggage is just baggage and not helpful in forming the right vision for the future of the product and the community. Both Per and Sean came into the community after the (somewhat explosive) initial formation of Sakai – they came into the Sakai community with eyes-wide-open – they could see the what was right and what was wrong with the product and community – and not always viewing it through the foggy lenses of living through the experience (like I and many others do).

I am glad that I am not voting. I do think that we should *all* vote for John Norman to continue for three years – Cambridge is so essential to the future of Sakai – I think that we should show John the love in our votes. But for my second choice – it is so painful to have so many good choices. I wish we could vote for 3-4 people this round – but ah well at least we are choosing amongst great alternatives.

Good luck to the voters and candidates.

Visualizing Sakai Commit Data

I am preparing for my Data Mining/Social Networking course next semester (SI301) and of course the main project will be about analyzing Sakai activities as a developer community and social community. Of course visualization will be a big part of the course activity.

So I got a head start and played with some data from commit logs. Because I was not aware of the xml output from svn -log (thanks Seth) – I did this by screen scraping ViewSVN at source.sakaiproject.org. I scraped all the commits in the main SVN and Contrib into some SQLite3 databases. The databases allowed me to restart the process if it croaked. It took about a day and I ended up with 540 MB of data. Then I ran a process to parse and categorize the data – that process read all 540MB and produced a nice, normalized database of 3MB in about 20 minutes.

After I had my nice 3MB database, I wrote some Python+Sqlite3 scripts to grock, and accumulate the data various ways. The work is still in draft form.

http://www-personal.umich.edu/~csev/sakai/data/

There are five graphs – the most fun one is the movement graph including both the main SVN and Contrib. Hint: To make it visually more fun follow these hints: (1) Change from “Same Color” to “Unique Colors”, (2) Change from “Same Size” to “Cumulative”, and (3) Experiment switching from Linear to Log scale to make it more exciting, (4) hover over a data point to see who it represents, and (5) you can click on a data point and then replay the data to make it have a “trail”.


This is all pretty cool and it uses the Google Vizualization API which does all the work in Flash/Javascript.

Wow – An Index really matters

I am doing some spidering using Python and SQLite 3 – I made a process to allow my spider to be restarted by retrieving and storing spidered material i the database – to make sure that I could restart this – I was doing the following select to find a url to make sure I did not re-retrieve:
select text from revisions where url = ? limit 0,1
But after there were about 50000 pages – this started to slow down a lot. It was doing a full scan. So I stopped the process and added an index:
create unique index revidx on revisions (url) ;
Wow – it is so much faster. Nothing like a ton of data to remind you of the speed difference between Order(N) and Order(Log N).
I am liking Python and its built in support for Sqlite3. Nice.

Laptop Serendipity

This is a Shaggy Dog story about my Mac Air. I have been doing some Sakai coding lately (adding LTI to Melete) so I have been carrying both my MacBook Pro and MacAir in my backpack this week. The MBP is just *so much faster* when doing big stuff that it was worth carrying around two laptops. So my backpack weighs differently than usual this week.
This is a short and stressful week – My SI539 Assignment 10 (true to form) missed a few essential steps at the beginning so I had a lot to do in lab Tuesday night running around – figuring our how students got confused from my instructions and figuring about how to un-confuse things for the whole class as quickly as possible. I foolishly sent out some code and by mistake sent out a partial answer key. And I did not have slides ready for Wednesday morning’s lecture (10 short hours away) – so I wanted to get out of lab on time – but I need to stay.
All in all Tuesday evening was pretty frazzling. So when I put my Mac Air laptop down in the third row working with one student and then ran off to help several other students – I quickly forgot about the laptop. As folks got a little caught up – and the last bus was leaving the room started clearing out. I rushed to the front grabbed the backpack – got dressed and took off. The backpack *felt* pretty good. It was heavy and fled about right. Of course the Air is so light – weight is a *bad* way to judge whether or not you have what you need.
Of course I left the Air sitting on a desk in the third row.
About 20 minutes later cruising downthe highway – I get a e-mail on my iPhone from Lisa – the last student left in the lab – telling me that I left my laptop! Of course! I quickly told her to grab it and bring it to class – but she never got the message.
She was unable to decide whether to take it or not – she thought if she took it – I would be rushing back and it would be gone – if she did not take it – of course that is a a “not in possession of a known person” problem.
I decided not to turn around since I was 1/3 of the way home and it was 11PM and I had to be back at 7AM anyways for the next day’s lecture – I figure that either Lisa took the laptop or ti would be there at the crack of dawn when I got in.
Of course between 11PM and 7AM I had to do some slide preparation. Here is where I lucked out – I had done a full time machine backup at 6AM that very same day. I plugged the Time Machine disk into my MacBook pro – and Viola! I could get my partially worked on slides onto the MBP. SO I worked slides that night before going to bed at 1:30AM. Teh I got up at 5:00 AM and worked on slides some more and at 6AM I started to drive back to UM.
Up to this point – no mail from Lisa – so it was “rush into the lab” and hunt for the Laptop. The library was not open until 8AM. So I waited until it opened and rushed in (with the 2 other 8AM library patrons) and rushed up to the lab.
Of course – no laptop. Not so good.
I figured – not much could be done – so I pulled out my MacBook and started finishing the last 15 slides or so aiming for the 9AM lecture. I sat alone in the lab working on slides in the partial darkness for about 25 minutes.
Then the door opened and the Janitor popped in with a Vacuum cleaner. He says, “Sorry – usually there is no one here at this time in the morning – I hope I don’t bother you.” I said, “Don’t worry – I am only here because I am depressed because I stupidly left my laptop here last night and it is not here.”.
He said, “That’s funny – I found a laptop here last night. The guy who is missing the laptop must be pretty bummed – it is one of those fancy Apple ones and it has a bunch of stickers on it.”
So I said “Where would the laptop be now?” He said he gives that kind of stuff to his boss – and if I hurry down to the front desk – they might have not turned it over to the police yet. He said the police are a little slow at 8AM.
I said, “Boy I am glad you had to vacuum this room this morning.” He said, “you just must have good Karma.”. I agree that it never hurts to have a bit of spare Karma around for situations just like this.
So I thank him profusely and rush down to the front desk. There is my pride and joy on the back counter – I tell them that it is mine. They ask me to identify it – Duh – they were kidding. Their tech support guy had looked around on the desktop and realized it was my computer. So with a flash of my UM id, I had my baby back! And it was still 8:20 – time enough to get a $2.00 latte, knock out 5-6 more slides and make lecture at 9:10.
At lecture – I ran into Lisa and she shared with me that she just could not decide if she should have taken it or not. I told her that I generally prefer “in possession of a known human” versus “sitting on a desk in the open” any time.
After lecture I caught up on my e-mail and had a nice message from the library staff telling me they had my laptop. Since I had already picked it up – I just sent a nice thank you note.
All is well that ends well. Maybe I should put a password on the system. Hmmm.

Mission: AC/DC

A few months back, I promised Brent that we would go see AC/DC. I kind of figure that this is likely the last chance to see them touring. Unfortunately they were in Detroit on November 5 and I was away at an IMS meeting. There were several other options – there was a Saturday date in Chicago and some week day dates in Cleveland and Columbus. I teach during the week so the weekday dates were impractical.
The only other weekend dates were in Los Angeles at the Forum. So Brent and I will be off to Los Angeles to see AC/DC on December 6 in the Forum. He will miss one day of school (Monday). The seats are not so great – I got them from StubHub at about 2.5X face value – the tickets are pretty pricey but this probably is the last opportunity for another 5-10 years – so what the heck. CHristmas comes a little early.

I Want This Right Now: Google Friend Connect

This is the coolest thing since sliced bread. It is a set of OpenSocial Widgets that you can add to your site that makes your site “instantly social”. Take a look:
http://www.google.com/friendconnect/
I want this SOOOO badly. Because I am writing all these widgets as we speak. And my stuff is not OpenSocial enabled – and the Google UI’s are much better than mine – makes me sad to be wasting time – but until I have access to these awsome widgets – I simply cannot wait and have to keep coding. Grrr. Sakai 3.0 needs these as part of ts initial release.
There is a great video:

And a cool sample site:
http://www.myfirstearthquake.com/index_fc.php
I have sent a note to Google pleading for early access.

Book Proposal: Google Application Engine – Up and Running

As I have been teaching SI502 (www.si502.com) and SI539 (www.si539.com) I have been accumulating a bunch of lecture and written material about the Google Application Engine. It started to very much feel like a book that should have a pretty good market if it could be done quickly.
So I called up my buddy Michael Loukides at O’Reilly and pitched a book proposal to him. Half of the book already has first draft written materials from SI539 and the other half of the book has well-developed lecture materials from a combination of SI539 and SI502.
Here is my book proposal for you to look at if you find it interesting:
http://www.appenginelearn.com/chapters/toc.htm
The proposal has links to existing printed and lecture material for all of the proposed chapters.
I hope and expect to be able to keep the first drafts of the AppEngine chapters in their current form under Creative Commons Attribution License. Once I sign a contract with O’Reilly, further work will be according to their terms and conditions. Of course ORA is pretty cool about giving books back to me under CC after they are out of print – another reason I like ORA as a publisher.
As always, comments are welcome. I may be looking for reviewers if the book moves forward.