like uber, for education

A long, roaming article in The New Yorker on Anthony Levandowski’s groundbreaking/questionably-ethical work on self driving cars. This is a guy that used to report to Sebastian Thrun, and it makes me wonder how much of this ethos is already pervasive in Silicon Valley Edtech™…

After bypassing restrictions on how to hire staff, purchase supplies (including hundreds of cars), and safely design and operate self-driving vehicles (resulting in serious injuries and property damage), this whopper gets laid:

“The only thing that matters is the future,” he told me after the civil trial was settled. “I don’t even know why we study history. It’s entertaining, I guess—the dinosaurs and the Neanderthals and the Industrial Revolution, and stuff like that. But what already happened doesn’t really matter. You don’t need to know that history to build on what they made. In technology, all that matters is tomorrow.”

Charles Ruhig (2018). Did Uber Steal Google’s Intellectual Property?

Rules are for the weak. History is moderately entertaining but irrelevant. People are inefficient and unpredictable. Nothing matters.

Compare and contrast with Randy Bass’s article in Change:

Technology can best improve education by helping us distinguish ourselves from machines and to make that distinction itself fundamental to the “project” of education.

As we look to the future, and as machines get better at being machines, the primary purpose of higher education must be helping humans get better at being human. Ultimately technology (machine intelligence) will have its greatest impact on human learning through the evolution in human capacity—the ‘complementarity’—that will be required to stay ahead of its advance.

Randy Bass (2018) The Impact of Technology on the Future of Human Learning, Change: The Magazine of Higher Learning, 50:3-4, 34-39, DOI: 10.1080/00091383.2018.1507380

History is important. Humans are important. Pushing toward a techno-centric future with no consideration for history or how the human condition might be improved (not made more efficient. not monetized. not synergized.) seems like the kind of thing a devout libertarian with a Netflix queue full of “because you watched Terminator…” suggestions might want.

why we need a video management platform

I’ve been involved with edtech at my institution for… awhile. We’ve worked on many projects over the years, and one of the common problems has been related to authoring, publishing, and managing videos. It’s been left as an exercise to be solved by every individual, which has resulted in people publishing content in various platforms all over the internet.

DRM Theatre

Which is fine, until you realize that in doing so, they’re hosting university-related content for courses along with their dog videos and vacation videos and whatever else, in individual YouTube/Facebook/Vimeo accounts. And those platforms are injecting their own tracking and surveillance software to monitor who watches what and then connect it with their advertising platforms so you can be force-fed ads and algorithmic recommendations based on what you’ve watched1. And to vigorously defend the copyright claims of corporations by taking down legitimate academic content that legally contains clips of commercial media2.

Personally, I don’t think that’s OK. I think we, as a university, have a moral imperative to provide platforms that simultaneously:

  • make it easy (and sustainable) to publish video
  • protect the rights of our community
  • not force every individual to feed their content to the global advertising machines so they can monetize the data generated when our students view the videos and other forms of media

So, we’ve been in the process of looking for a video content management platform that would serve the needs of our community, in such a way that individuals still have the flexibility to create, edit, publish, view, and manage content without having to give control over to a company that has no relationship with the university.

And, to have rich video content integrated into other platforms ranging from public websites, to wikis, to the LMS. So instructors and students can create and publish content and easily embed it wherever they need (just like with YouTube etc.) – without having to give up privacy and control as part of the bargain.

We’re close – the RFP went out this summer and vendor demos wrapped up last month. This has been one of my major projects this year, and I’m looking forward to getting it launched. There will hopefully be an announcement in the next few weeks, and then we can work on implementing – and, more importantly, on creating videos that can enhance the learning experience.

  1. Vimeo doesn’t do ads or tracking, which is why it’s been our recommended platform – we use it within the Taylor Institute to publish our videos – but imagine the cost of all of the individually-licensed Pro subscriptions, with people needing to keep track renewal periods and billing and account provisioning on their own []
  2. we’ve had instructors stuck in the middle of a semester because YouTube’s content matching software flagged their account and deleted the media for an entire course []

1 year

It’s weird. It was only last summer that the whole cancer thing happened, but it feels like so much longer. It went from a simple strange blood test to a confirmed strange blood test to every-single-blood-test-ever to a biopsy and CT scan and full diagnosis within a few weeks last year. I have trouble remembering a time before cancer. And now, it’s part of everything I do and think and feel.

“it’s probably nothing, but it could be one of these…”

That’s the note I was handed by my GP after the initially-confirming blood test. Quick googling suggested it could be either nothing, something really-bad, or something really-really-bad. Referral to The Big Regional Cancer Centre and introduction to my (MY!) hematologist. More blood tests, biopsies and a CT scan showed I had the really-bad option (but, thankfully, not the really-really-bad one).

Blah blah blah. I’m still here. I still haven’t needed to start treatment. I have learned to moderate my energy level (the only real symptom so far is chronic anemia, which is an… adjustment). I hardly ride my bike anymore – when I do, it’s for a comically-short-and-easy 10km ride around my community, followed by a full day of recovery. Ouch. I drive to work. I walk more slowly. I have occasional dizzy spells, and have “the sighs” as I occasionally gulp for air.

I’m still working – everyone I work with has been extremely supportive, which I am grateful for. I’ve taken a leave of absence from my PhD program (after completing coursework and beginning to prep for candidacy). And I’m learning to not be so hard on myself for any of these things. I have good days and bad days. Sometimes more good days, sometimes more bad.

One of the weird realizations is that I need to live with less data about my health. I get monthly blood tests, and of course (of course!) have been visualizing the data in charts etc. so I can see trends and extrapolate to the OMG I AM GOING TO DIE TO DEATH crossover point. My doctor politely suggested I should give my head a shake, and he’ll be giving me results every 6 months. *twitch* But, letting go of the data has helped. It’s more important how I feel, rather than tracking some numbers.

Anyway. 1 year. Holy crap. Here’s to many more.

Fixing the YD-Recent-Images widget

I’ve been using the handy YD-Recent-Images plugin for awhile now, to generate the /photos page here on my site. It provides a widget that displays the latest n images uploaded in posts here – and provides a nice photostream view for my photoblogging here as well1 . The plugin hasn’t been updated for… 7 years!… but it works. I’ve been expecting it to start misbehaving over time, though.

The /photos page here on my site. Self-hosted photostreamy goodness.

The plugin has been working flawlessly, but I noticed it was throwing an error after the latest WordPress update to 4.9.8. Something about:

Warning: Declaration of YD_RecentImageWidget::display() should be compatible with YD_Widget::display($args, $instance) in /[redacted]/wp-content/plugins/yd-recent-images/yd-recent-images.php on line 110

That’s weird. The plugin has been working flawlessly until now. And the recent images widget on the photos page is displaying normally, so it’s still working, but with an error message blasted at the top of the page. I’m guessing2 something changed in WordPress to become more stringent about PHP classes and functions. So, I follow instructions and take a look at line 110… The display() function in yd-recent-images.php didn’t have any function parameters, but the YD_Widget::display function in the class had 2 parameters: $args and $instance.

So, being a reckless “let’s just modify it in production to see if I can get it working” “programmer”, I just modified yd-recent-images.php’s display() function (on line 110), to include the two parameters:

function display() {
function display( $args, $instance ) {

and hey, presto! the error message went away. Note, this is absolutely NOT the same thing as saying this fixed anything. It might be fixed. I don’t know. I just typed things until an error message went away. This is probably the absolute worst practice, but whatever. It worked. Functional trumps correct.

ps. this post was written in the fancy new Gutenberg editor. Dang. It’s slick! I don’t get the hate about it – this improves editing in many, many ways. And is backward compatible because it just creates normal HTML rather than some kind of freaky shortcode/embed nonsense.

  1. I use the Widget Shortcode plugin to embed the widget on the photos page. []
  2. totally guessing. I have no idea what might have changed, but there was a WordPress update yesterday. Who knows? could have been a coincidental PHP version update on the server… []

Using Brightspace’s “Terms and Conditions” tool

As a university, we’ve had two major issues related to the use of the campus learning management system.

  1. Sharing of personal information with third party services/companies1
  2. Copyright of materials uploaded to courses, and subsequently downloaded and shared with third parties as per above. Copyright compliance is a pretty big deal at Canadian universities.

We needed a way to provide a reminder of university policies, to provide guidance about what is allowed and not allowed, and to document that people have acknowledged these.

Brightspace has a relatively new “Terms and Conditions” tool, which provides an End User License Agreement style modal page with content after people log in – but before they advance to the main Brightspace interface. In our case, people will be coming from a single sign-on tool (CAS for main campus users and Destiny One for Cont Ed users). After they log in, they’ll be presented with something similar to this:

The initial text content of the Responsible Use statement, with some branding header stuff added for good measure

If they click the “I have read…” checkbox and then “I accept”2, they get taken to the main Brightspace homepage and they don’t see the T&C statement again3. If they click “I decline…”, they go to a page with more info. Either way, there’s an audit trail so the university can reach out with support if needed.

The statement has gone through relevant committees for revision, and is ready to go live on Monday.

Some tips, from our implementation:

  1. Implement first on a test environment, not in production. Obviously. This is a tool that inserts a modal agreement page before people get access to Brightspace, so it needs to be configured correctly the first time to prevent issues for, say, 40,000 people who suddenly see this. Implement on Test, iterate a bunch, and get it right before moving to Production. It’s best to annoy the small subset of people who are exploring Test rather than everyone on Production. (because everyone on Test will have to re-re-re-agree to the T&C every time there’s an edit. Sorry, Izzy.)
  2. Edit the content outside of Brightspace. Just In Case™. I never fully trust WYSIWYG editors. They have a way of helpfully “fixing” html. It’s best to write higher profile content outside of the editor so you have control over it – and have a full backup that’s easy to copy/paste into the HTML view of the Brightspace content editor.
  3. Editing the content of the Terms and Conditions tool triggers a reset – all people will need to re-agree to the statement if the content is edited. So, get it right the first time. Even fixing a typo or grammatical error will trigger the reset. Test it a bunch on the test environment first. I’ve been running versions of it there for a few months now, as we gave demos to various groups on campus to include them in the revision process and prepare their units for the change.
  4. Change the wording of the buttons through the Language Management tool. It’s under the “Terms and Conditions” tool, under “Page”. We changed the text of the checkbox, as well as the text of both buttons, after feedback from committees and people who are in front line support roles.
  5. Apply some branding to the page. By default, the tool provides a stark white page with the text. People will think that seems odd – has the site been hacked? is this a phishing attempt? Adding a logo can help. BUT. The content editor for the tool doesn’t allow uploads. And content within Brightspace requires a successful login to view. When the Terms and Conditions page is presented, people are in the nether space between not-logged-in and successfully-logged-in, so images and other resources need to be hosted outside of Brightspace4 – and, it needs to be on a server that runs SSL so the content is served via HTTPS. For our page, I just borrowed the live UCalgary logo (in .svg format), via HTTPS. And am crossing my fingers that the URL for that image doesn’t change because if I have to edit the T&C content it forces the reset and everyone gets to re-agree to the statement. Which is not optimal.
  6. Instead of the “Decline – I need more info” button just logging people out, we set it to take them to a page on the Provost’s website with a copy of the statement and links to get more info.

Anyway. I get to throw the switch on Monday. Bracing for… “enthusiastic” feedback emails from the community shortly afterward.

Update: Almost forgot – the plugin that runs the T&C tool needs to be activated by D2L, as well as some configuration of the login workflow. There are some bits that need to be set that aren’t visible to System Administrators – only to the super-secret D2L role.

Update 2: After a week, 11,000 people have had the “responsible use” statement displayed. All but 3 clicked “Agree” – so, either it’s not a problem, or people are doing the EULA scroll/click shuffle…

  1. homework sharing sites especially – recruiting our students to essentially copy the classlist for their courses and use that to let the company recruit students. which is a rather huge violation of privacy and the acceptable use of electronic communication policy that everyone is bound by as part of gaining access to university resources like email and Brightspace and others []
  2. not sure why the tool is designed to have this level of failsafe – we’re not launching missiles or anything… []
  3. until we reset it – likely once per year – or until we have to change the content and it resets automatically []
  4. there might be a way to do it through the LOR, but I didn’t spend much time trying to get that going []