Workshop materials that compare React with knockout/MVVM