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.
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.
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.
/******* * $URL$ * $Id$ *******
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.
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:
http://www.youtube.com/v/N94s7ix0JPo
And a cool sample site:
http://www.myfirstearthquake.com/index_fc.php
I have sent a note to Google pleading for early access.
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.
Big mistake giving out the grade assignment and asking to turn it into a login assignment. DOH! There are so many unintended consequences! it is better to hand out a complex chapter with bits and pieces scattered through out and have the students construct the application by typing in little snippets of code and getting them right - working through little issues that naturally come up.
Far more learning happens as students attempt something and backtrack and re-read/re-attempt stuff.
The next 539 assignment will be different. I have to send a note to my future self to make sure I don't make this mistake over and over each semester.
This is a keynote at the Google I/O developers conference by Marissa Mayer, VP of Search and User Experience. I was there at Google I/O and really loved the talk:
Keynote: Imagination, Immediacy, and Innovation... and a little glimpse under the hood at Google
She talks about user studies and the design of the search page - seemingly simply stuff - but a lot of thought goes into things.
Jeff MacKie-Mason is our Dean of Academic Affairs at the UM School of Information and my boss. He is a cool dean and I really like his style - he has agenda which he does move forward firmly but take a really easygoing approach to things and always takes input along the way.
Recently we adopted a policy about requiring Learning Objectives in all syllabuses starting Winter 2009 - and in Dean 2.0 fashion - Jeff used his blog to host an open discussion about the policy.
Here is Jeff's original blog post on the topic.
I tried and tried to resist commenting - but a lazy Saturday morning, a free keyboard, a fresh and warm cup of coffee, and the fact that it is really too cold outside to do anything but write blog posts - and I was hooked.
I reproduce my comments below (which will likely get me in trouble - but what the heck - Jeff asked...)
My Comments
I think that constant awareness of learning objectives is fundamental to being a successful teacher. I very much appreciated the Learning Objectives that I was given when I started teaching SI502 - they were detailed - they captured a wealth of thinking by smart folks on what SI502 needed to accomplish for the students. I also tried to derive some of the learning objectives of SI502 by looking at PowerPoint files, tests, and other materials from previous semesters. Using a combination of the Learning Objectives I was handed and learning objectives that I derived from the course materials - I was able to form a good set of learning objectives for the course and developed a course outline and course materials and approach to achieve those learning objectives.
Before I teach the course next semester, I will do an assessment of how well the students achieved my learning objectives as well as the Learning Objectives given to me. I may have found new Learning Objectives that should be added for the course or found that I felt certain Learning Objectives were not so valuable - so I might want to see them removed from the course. In any event, for the next semester I try make the course better by doing a better job of achieving my learning objectives and/or doing a better job meeting the Learning Objectives for the course - and then hopefully at the end of that semester - my experience further informs the Learning Objectives and learning objectives for the course.
This is a dynamic and agile process and is focused at all times on giving the students the best possible and most valuable learning experience as its highest priority – the secondary priority is recording the Learning Objectives for the course and fitting those Learning Objectives in with the rest of the courses in the curriculum.
So for me the problem comes down to the definition of "Learning Objectives" and what we accept as the Learning Objectives at various points in the course life-cycle and whether the school treats these as carefully negotiated contracts fully approved put in place well before the course starts - or instead Learning Objectives are an opportunity to have a continuous conversation amongst the faculty and students focused on improving our program.
I will say that my recent experience with the curriculum committee suggested (at least to me) that they were more interested in getting three pounds of Learning Objectives before course approval - than in having a long-term interactive discussion about how courses should ideally fit together to create a program that produces outstanding graduates and brings our school credibility and accolades. Given some of the personal feedback from I have received from members of the committee – I am sure that this was only my perception of the process and a direct result of my own lack of time during the approval process to interact with the committee and the fact that I should have gone to the meetings instead of just waiting for the outcome.
I just stumbled across a cool site that does performance testing on Amazon's S3 service and Google's App Engine clouds. I thought it was pretty cool.
Here is the web site:
http://www.cloudstatus.com/
This is the video:
http://www.youtube.com/watch?v=taHoH-yjyjk
The title of Frank's blog post is in English - but the content is in Dutch. Given the delightful title, I needed to know what the content said in English! Off to BabbleFish I go...
The translation misses a few Dutch words like "gedurft" - but the gist is very nice.
This is an old video about the future of students and education - and since there are no really good keywords to find it - It took me 30 minutes to find it searching through old E-Mail.
So not I will just put this link in my blog:
http://www.youtube.com/watch?v=dGCJ46vyR9o
This gets shown at SI student orientation - so it is redundant for me to show to my classes as I learned today :)
Here is a similar one from Eileen about SI502 (the class I am teaching this semester):
http://www.youtube.com/watch?v=e5vHYup6nqg
In the same style - she entered it as part of last years University of Michigan School of Information video contest.
I love Java 1.5isms like foreach. It makes me yearn somewhat less for languages like Ruby, Python, and PHP. It makes it so I do not feel itchy when I code in Java. Also I am moving towards Properties instead if Map<String,String> because it seems more "native" - but it is just ugly to iterate through a Properties object in Java:
Properties props ...
for(Object okey : props.keySet() ) {
String key = (String) okey; // Creepy
What is up with that? And the leys() method returns an Enumeration which does not work with the foreach. What is up with that?
I am loving the discourse around this topic - I like the fact that there are many voices - lets keep talking about this and really explore and understand these issues. Regardless of the outcome - the more we as a community understand about our governance - the better off we are we are. Here is Michael's Blog Post. My response is below.
Michael - I understand and agree with your position on conflict of interest. Conflict of interest is more of a tactical issue - how particular decisions get made in particular meetings - and I agree that commercial folks have more *structural* conflict of interest - one significant example is that we do not require board approval for a new higher education partner - but we do need board approval for a new commercial partner. My concern and the source of my comments is not tactical but instead more strategic I am concerned that (a) we are still defining "community source" - we are still figuring out and defining the core values and even the mission of the Sakai Foundation - and I want those values to be reflective of the community and sharing and altruism of the higher education world - rather than driven by the need to improve the monetization Sakai IP in the next few quarters, and (b) by putting a just a few of our commercial partners on the board it creates an impression of undue competitive advantage could accrue to those commercial partners that secure seats on the Sakai Foundation Board. In order to avoid both the perception and realities of unfair competitive practices within the Sakai commercial ecosystem, we are best served if for a while we keep the focus of the board on higher education and not monetization. To continue on this second point - part of my proposal was to *increase* the access that commercial partners have to the Sakai Foundation by creating an advisory board where we invited *all* commercial partners to participate. I am very supportive of a healthy commercial ecosystem around Sakai - my proposal intended to *improve* the situation - it is not intended to harm commercial partners. Like you I am very committed to a diverse board - I love the idea of bringing in talent and perspectives to the board - a key here is that this works best when the underlying community values are well-established. I would love to see more participation from smaller schools, and a better representation reflecting the worldwide nature of Sakai, and I would love to see folks from places like Facebook or Diigo on the board to give us a better perspective for the future.
So the essence of my proposal is a campaign speech for this year entreating the voters to prefer candidates from higher education instead of candidates from our commercial partners - even if those candidates come from a smaller school or a less-known school. Frankly we have seen an immediate and positive impact from electing Josh Baron last year. We have seen an exciting increased focus on the use and application of Sakai - I credit this in a large part to Josh's board position. Perhaps we should elect some more teachers to the Sakai board.
This is only my own personal editorial opinion. I wanted to share it before the nominees for the Sakai Board are announced.
I would like to suggest that we choose to elect board members exclusively from higher education and choose not to elect anyone from a for-profit company. At some future point, my opinion is that we may even want to amend our bylaws to this effect. But for now, I think that it is sufficient for the Sakai Foundation voters to simply choose to elect board members from higher education.
I am making this suggestion to insure that the core values of the Sakai Foundation focus on the nurturing of the Higher Education backbone of the Sakai community.
Much of the reason that Sakai was formed was to insure that the higher education community has an alternative to a commercial product. At the same time, we chose an open source license (Apache-style) which is as commercial-friendly as possible to encourage the broadest possible commercial ecosystem around Sakai. We consciously wanted to give companies large and small an opportunity to make money off and add value to the Sakai intellectual property.
Our commercial partners are very important to making Sakai available to organizations that do not have the technical expertise to be full-participants in the software creation process - and it is completely healthy for companies to make money off services around Sakai.
However, these companies have a core purpose - to make money. The Universities which contribute nearly all of the intellectual property which makes up Sakai - set their priorities based on their institution's needs. A company which is monetizing Sakai will set priorities based on how *their particular company* can best monetize Sakai. Different companies will likely have different views as to what is the most important task to maximize profit for one particular company. It is fine for companies to have these priorities - it is *not fine* for these priorities to find their way into the Sakai Foundation's priorities through the Board of Directors.
Having one or two companies on the Sakai board allows those companies to influence the investment of Sakai Foundation resources based on the priorities of those companies with board seats. To be fair we should either allow all commercial partners to be on the board or have none of the partners be on the board. I prefer the option of "no commercial partners" on the Sakai Foundation Board.
This is not about particular individuals or even particular companies - individuals can try to (and claim to) think independently from the context of their needs to monetize Sakai - but in the final analysis - it is not possible to expect any person who is a principal in a commercial partner to completely ignore the needs and priorities of their company when participating on a board.
What worries me is if we get to the point where a significant fraction of the board (or even 100% of the board) seats are held by companies. The Sakai Foundation will naturally be encouraged to move from its care-taking and community building role into becoming a "vendor" for software. And while this might seem "comforting" in the short term to schools which wish there were paid Sakai Foundation developers to fix bugs - if we evolve Sakai into a commercial vendor (albeit nonprofit) - we will have (by our own hands) once again lost control of our own destiny.
These culture changes are slow and barely noticeable over time - we only notice that things have changed after it is too late to undo the cultural change. We must keep the Sakai Foundation higher-education centered and non-commercial in its focus. We do this by electing Foundation board menbers from higher education.
I am sure these comments will be taken the wrong way - I do not mean to under-value the contributions we have received from the Sakai Commercial Partners. Our commercial partners are all pretty wonderful folks and are great promoters of Sakai around the world - many of the folks from the commercial companies are my personal friends - I want them all to succeed. Many of them are making some decent money on Sakai - that is great - it is part of the rich, diverse, and healthy commercial ecosystem around Sakai!
I further think that the Foundation and Community very much *need input* from the commercial partners. However we need to get input from *all* the partners and take that input in a forum where (a) all commercial partners have an equal opportunity to influence direction and (b) where the commercial partners are simply giving advice to the Foundation. I suggest that we need a Commercial Partner Advisory board which includes all commercial partners and meets 1-2 times per year. I would further suggest that the Foundation Board and Commercial Partners meet together with Michael as part of a regular strategic planning effort.
This allows the strategic planning for the Sakai Foundation and Community to be done in a broader and more open manner - and in particular - it allows the Sakai Foundation Board to focus on the very important but narrow responsibility to properly operate a non-profit corporation.
So my suggestion to all of the voting members of the Sakai Foundation is to "Vote Higher Education" - to reaffirm the fact that we are a community of higher education institutions who have banded together to share the load of innovating in teaching and learning and collaboration. While we are committed to being extremely commercial friendly in our processes, licensing, and governance - the Sakai Foundation must not play favorite to any of our commercial partners - they must all compete on an equal footing - without the benefit of a board seat given to one or two particular commercial organizations.
Thank you for listening to my personal opinions and as always your comments are welcome.
Comments
On Nov 6, 2008, at 4:29 PM, Carl Jacobson: University of Delaware wrote:
>Our current charter allows for the nomination and election of commercial
> partners. The current election has received nominations for commercial
> partners. If they accept their respective nominations, they will be on the slate.
Of course. I was not suggesting that people not be allowed to run. My post was simply a campaign speech to try to raise awareness on an issue that I think is important.
On Nov 6, 2008, at 5:55 PM, Sean Keesler wrote:
> Would you object to these schools voting for a representative from
> their chosen vendor to represent their interests? Wouldn't their
> interests be interests of a larger cross section of higher ed than
> someone from a single institution?
Actually this is an excellent point. If a paying voting member of the Sakai Foundation feels that one of the commercial nominees truly is the best person to represent the values and priorities of that voter's organization - then by all means they should cast their vote for the that person.
We *do* need to think of the votes in this manner. Vote for the candidates that you feel best *represents* your organization's values and priorities.
I was pleased to appear on a panel on openness with Michael Chasen of Blackboard, Michael Morrison of Syracuse University, and Serge Goldstein of Princeton and moderated by Scott Jaschik, Editor, Inside Higher Ed. I think that this kind of debate is a very interesting way to get ideas out on the table. It is far better than some dry 70-slide PowerPoint presentation narrated in hushed intellectual tones.
In our panel discussion - there were several threads (a) open is not as simple as releasing source - and open software is not anti-commercial - open is more of a philosophy - releasing source code is part of the nature of open, (b) interoperability standards are the path to freedom for end users and faculty, and (c) BlackBoard's connector is a good step in the right direction but there is more BlackBoard could do to be "open".
In our talk we just did not have enough time - so I did not get to get all my ideas out. Hence this blog post.
I apologize in advance as this goes in and out of rant-mode. Sometimes I am reasonable and sometimes I get a little out of hand in this post. But I have had a lot of coffee on the plane ride back from Educause 2008 so that is my excuse.
Props for BlackBoard and the Connector
I feel that the Blackboard Connector effort with Sakai at Syracuse University and the recently announced Moodle Connector at Iowa State are great steps in the right direction.
The connector projects have a number of good aspects:
o Blackboard will now expose a much larger audience of teachers and students to Sakai and Moodle through BlackBoard's channels - this will be really cool - when I last checked - over 50% of the Sakai partner schools had BlackBoard and wanted to keep it - but loved the idea of Sakai - this makes it a win-win - and the Moodle connector will be REALLY cool because Moodle has so many teacher friendly things and will let a subset of the teachers at a school to be part of an active Moodle community exchanging Modules and content. Let teachers freely associate with what ever community of teachers around the world they like. Freedom for teachers.
o The source to the connectors will be put out in the open for all to see and contribute to and build a community around - when folks can look at the connector - they will see that it is a significant bit of work.
o Going forward instead of Blackboard coming to open source events and listening - they have something to talk about and show and get feedback about - this will cause lots of mixing and interaction and friendships and lead to more collaboration over time.as trust and respect is built up.
o Oscelot and EduGarage are cool - I can (and have) joined the free BlackBoard Development communities - there are lots of open source Building Blocks that I can download, hack , and reverse engineer - I want to write and release my first Building Block - even though my school does not run BlackBoard - IMS Simple tools Interoperability - Oh yeah.
As soon as the Sakai Connector was announced - I immediately contacted the Syracuse team and offered my help. Jim Pease and the Syracuse team are very sharp - skilled both in Sakai and BlackBoard - I am happy to say that I was able to help some in getting the connector in place as quickly as possible - but the real work was done by Jim and his team. I have seen a connector demo and was pleased with the work so far - it is much more than than an iframe/portal implementation - I already have a few more suggestions about how to improve the connector after seeing the demo - I would like to get to the point where I can read the source code and can see other possible places for improvement.
I also am really very proud of how well the Sakai Architecture was prepared to work with the connector - there is a reason that the Sakai connector will be the first (and best) connector delivered - Sakai's service oriented architecture, use of APIs throughout, event bus, entities and entitybroker, excellent enterprise data provisioning strategy - separation of EID/UID in our data models which can support multi-tenancy at a data model level - all mean Sakai probably has the best internal architecture of any LMS on the planet which it comes to flexibility from a developer perspective (thanks and kudos to folks like Glenn, Ian, and Aaron for guiding us toward the right SOA architecture).
Yes Sakai does have flaws - Hibernate, JSF, iFrames, and non-relational blobs in the wrong place - but the overall SOA nature and pluggability of Sakai holds up well when folks want to use Sakai as technology components instead of an overall product. Yes Sakai's other flaw is that it takes to long to train a new developer. But other than that Sakai should be rightly proud of an architecture that is industry leading. (And Sakai NG will be even better in this respect - Go Ian!)
Philosophy of Open
I strongly disagree with some people in Open Software that claim that "Open Source is automatically good" and "Not releasing source is bad" or alternatively "Open Source is good" and "Commercial is bad". This position is such an amazing oversimplification of the issue that it is pretty much absolute crap - and when someone takes this position or states it in public - you should assume that they are not real open source people - but instead just beginners who are trying to be part of the "buzz wave" of open source - it means they have not studied the inherent nature of open source and what makes it work and be successful.
One of the questions in the talk which pained me greatly was a person who stood up and said that she was tired of feeling like she was "wrong" for buying a commercial product even though she felt she was getting good value and she loved the product This is sadly due to overzealous uninformed open-software people and companies that do not get that *real* open software is pro-commercial and pro-choice. These "open source pundits" are so enamored with "beating commercial folks" that they cross the line and substitute loud anti-commercial marketing for actually building good products. They are looking at open source as a win-lose proposition - I try to make every situation into a win-win unless the other party repeatedly insists on losing.
I am not sitting here saying that Blackboard gets a 10 / 10 on the Dr. Chuck Open Software Scale - but there are open source projects and open source companies that frustrate me because they espouse anti-choice rhetoric to gain competitive advantage - which to me is hypocrisy - at least BlackBoard admits that they are doing marketing and honestly trying to compete and convince folks to buy BlackBoard based on its merit and cost benefit. Others are simply selling their product because it is "open" - and since the product may not be "better" - they have to go with the "open is good" as their marketing mantra.
There are sometimes where you want software that provides source code - whether or not it is the "best". For many of the Sakai schools - an LMS system like Sakai that is Open Source and easily expanded/changed - is essential because those schools do not want to let a commercial vendor hold us hostage in the area of innovation in that most basic task - teaching. The choice to "Go Open" is often quite expensive - but for certain top-200 schools - it is the only choice - at least for their LMS.
There are some times when "free software" is more important than the "best" software. For many Moodle Schools there is just so little technical resource available - that a free and easy to install/maintain system like Moodle is their only real choice.
I am *not* saying Moodle is "bad" here - I am just saying in some situations - cost is the overriding factor - just like in other situations open source and an open community is an overriding factor. But folks must recognize the difference between an "overriding factor" in a particular situation - and "good".
The fact that something is Open Source is lost on the customers of MoodleRooms or Etudes (Sakai). The fact that the underlying software these companies are using is free - so it reduces the overall cost structure - but source code availability has little impact on the end-user experience.
So in Chuck's book - many companies and projects have a ways to go before they get the "Chuck Seal of Openness Approval" - even when those organizations release source.
Richard Stallman says, "Free Software is about Freedom - not price." I say, "Open Software is a philosophy - not a zip file with source code in it".
My BlackBoard Openness Agenda for the Next Year
I was able to share a few of my "hit list" tasks for Blackboard to move up on the "Dr. Chuck Open Software Scale" - I hope to revisit the debate with Michael Chasen this time next year and see how far things go.
Here is the full hit list with explanation.
o Issue a statement that Blackboard will not pursue faculty or other LMS systems for reverse engineering the Blackboard proprietary extensions to IMS Content Packaging which make up the BlackBoard export format. Quit dancing on this one! This is a yes/no question. This is not a patent or copyright issue - this is DMCA - reverse engineering. If Bb only wants to give immunity to the Open Source folks only - like in the patent - this is a decent half-way step which I would applaud - even if I would prefer universal permission. I absolutely feel that BlackBoard loses *nothing* by such a statement - they tacitly allow it to happen all the time. I am *not* asking for reverse engineering permission to anything but their export format - I feel BlackBoard has every right and even responsibility to keep folks from reverse engineering things like BlackBoard data models and internal APIs without permission. While some may think that this a right they should have - it is a support nightmare if folks start writing to tables directly - the software breaks and no one knows why. I don't like it in Sakai when folks hack the tables - In Sakai if folks do this - they *know* that no one will feel sorry for them when stuff starts breaking if they hack into tables instead of using the published APIs.
o Support the IMS Common Cartridge - Support it for Import and then support it for Export - do this before us open source guys do it - show us that you can beat us at our own game! Show that BlackBoard is more committed to interoperability than Sakai! If you beat me to it - I will give you mad props in the press release about Bb doing it faster than Sakai. The spec is out there - the cartridges are there - you have smart developers. It could be a hot fix. I challenge you to a programming sprint! I will even give you a head start - I am not starting on CC import in Sakai until December 1 when my classes end at Michigan. If IMS CC Export in Bb happens quickly enough - then Bb can ignore request #1 above - this actually works out well for Bb because IMS CC has less data than the BB export format - so folks moving between systems will lose some fidelity - but then Bb can blame it on the standard :) The market wins because the more folks use CC as an export format - the more we free the content as a bearer instrument for the Faculty. And as we improve Common Cartridge - all boats get raised together.
o You need to give away free BB Developer Editions - like Yesterday! Through my IMS Learning tools Interoperability work - I have access to a Blackboard developer environment. I had never seen the Admin or Developer Interface until last month - I had seen Building Blocks documentation a long time ago - but I never read it - I prefer to read code. I was able to grab an open source Building Block and hack it up a bit and test it in my Bb dev environment. Here is a little bit of feedback: "Building Blocks are very cool!" - it is a fun place for developers to just fiddle around in. Why have you been hiding this so long? I would have been writing building blocks years ago if you gave me a free edition - I would have made building blocks to give to other schools - even if my school did not run Bb - then maybe I would pester my school to install BlackBoard so I could run my blocks. Or of course alternatively I might have tried to make Building Blocks work inside Sakai - but really that would be silly and painful - too many APIs to implement - it is easier to buy BlackBoard. All in all - you have got to realize (like Oracle did a long time ago) - giving free developer-only versions to developers is the smartest possible for sales and marketing in higher ed.
o I know you won't do this one - but it does not hurt to ask :) When I finally see the Bb-Sakai connector source code and Moodle connector source, You know I am going to reverse engineer the Bb side of the APIs and hack it up so Sakai can use Moodle via the Moodle connector. Because a lot of Sakai schools would *LOVE* to have Moodle available nicely integrated into Sakai. I would ask that you promise not to send Matt Small to visit me when I start this skunkworks project. I know this is too much to ask to get permission in advance - and since I am a teacher - I really don't have time to seriously make it work - but it is fun stuff. And part of "Open" is understand that losing control is not a bad thing - trust the market to explore alternatives and come back to your alternative because of its features and quality - not because you send Matt around to stamp out little explorations before they start. You are in a much better marketing position if I try and fail on my own - rather than having you stamp me out in advance - because if you force me to stop - I actually don't have to do the work - and I have a great "Mean BlackBoard" story to tell my CIO and anyone else who will listen.
So this is my "hit" list - this is just the few things that come to my mind right away - I am sure there will be other cool opportunities for BlackBoard to continue to improve its "Dr. Chuck Open Software Score" over the next 12 months.
I will continue to support and engage and cajole BlackBoard to venture farther into "open thinking" about their product and their market - the BlackBoard customers should also make their own lists of how they think BlackBoard should open up - Serge Goldstein of Princeton wants better "user exits" for authorization, authentication, and access control in BlackBoard - I could not agree more. By the way Serge, Sakai *rocks* when it comes to user own code for enterprise information.
Open - From Which Perspective?
My next topic is to talk about Open - but from a user-centered approach. Open Source and Open APIs are all good for geeks in the IT team at a university. But what does it mean to be "Open" from a faculty and student perspective?
What does open mean for the real user of this software? Here are my thoughts:
o As a faculty member - I do *not* want to change learning management systems at the whim of the IT folks. If word came down that my school (University of Michigan) was going to switch to some other open source or commercial LMS - I would totally bust a gasket. I could care less about your TCO or your MIPS or your Service Oriented Architecture or long-term maintenance budget. Here is the deal that I will accept - bring up your "new-fangled idea" - run it for a few years side by side - fully integrated - let me kick the tires once in a while - and see if my teaching works. Only change when >50% of us faculty have voluntarily switched (props to Chuck Powell). After 50% switched voluntarily - you can start to lean on the laggards. I will switch if and only if it is better - so you IT folks need to bring your best game. (By the way that means that if Sakai is better than Bb from an end-user perspective it means that in the next 2 years Bb will lose more customers than it will gain - because Bb now gives its users unprecedented choice in LMS systems - what Moodle school would give their faculty the option of Bb running inside of Moodle for a few years to kick the Bb tires)??
o I hate vendor lock in - I want my data. I refuse to use Either of Sakai's testing engines - including one written by my close friend Glenn Golden - because it does not have import from QTI. I am not going to type my questions into a silly web-based interface that takes 10 seconds each time I add a question option. I want to edit my test questions in vi (a very user friendly interface) and then write a Python script to transform them to QTI and then upload QTI into the test engine. Oh yeah - I have source code - whoopie - I could write an import and export if I felt like it? I might just get angry enough to do that (I *am* about to write some Melete Import code for Common Cartridge). I want to get something out of the LMS when I am moving to a new school or new LMS. I want an export button that works as well as an import button. Absent that - I want a way to have an online service that transforms a Bb export into a Moodle Import - or a Sakai Export into a Bb Import - maybe this would even be a web service thing and LMSs could use this conversion service live. Hmmm. Google App Engine. Hmmm. Christmas vacation...
OK - So I have now ranted enough - you can see that it is good they did not give me the microphone for the whole hour at Educause - it took three hours to write this blog post on the plane and in my office back at Michigan.
Summary (If you have read this far)
I am happy to see BlackBoard engaging open source in real and tangible ways - I look forward to seeing how Blackboard follows this up - I hope this is not a one-shot marketing thing and instead represents a real sea-change for BlackBoard - only time will tell.
I think that the dialog needs to move away from win-lose thinking between open software and commercial software and look instead where all the technology providers can work together - for the benefit of teachers and learners around the world. I think that BlackBoard has taken a step - I think that Open Software organizations might want to take their own step towards win-win.
BlackBoard has taken a risk in introducing Sakai and Moodle to its existing customers - lets not underestimate that risk to their market. At the same time Bb must be very confident that when customers see all three products - those customers will prefer BlackBoard. If Bb is not superior, BlackBoard will have been the agent of its own undoing - if and when a campus notices that 95% of its teachers voluntarily choose Sakai to teach - it is not much of a step to simply turn off Blackboard.
So lets give BlackBoard some credit for "guts" and some credit for letting the "users decide". Perhaps BlackBoard has decided that the best way to protect and grow market share is to think more openly - and let the market decide - and perhaps challenge the open source projects to think a bit more openly as well.
Comments
Please send Comments to me via email.
Edward Mansouri at 10:58am November 2
This is an excellent posting that highlights the obvious massive large-scale changes taking place in the for-profit versus open source LMS landscape right now.
On Nov 2, 2008, at 12:01 PM, Stephen Marquard wrote:
As an aside, on the subject of testing engines, Samigo both does QTI import (though QTI 1.x is not very standardized so chances are some QTI export from something else won't import into it), but more importantly has a very cool "Quick Create" feature. You could edit your questions in vi & just cut & paste them into Samigo. For example you can create a bunch of MCQs (literally in plain text in one long paste). Most of our staff use Quick Create nowadays.