The LMS and Its Dis-Contents

So, I’m following up on yesterday’s post re: connected blogs as a content management system, as opposed to putting content into the LMS with its semester-based course-defined approach. For me, blogs are better in every way, and I’ve actually never put content into an LMS; before I switched to blogging platforms exclusively around 2005, I created freestanding websites with tools like Composer and Dreamweaver. There are a lot of factors involved, and I’ll sort them into two categories:

  • the advantages of publishing on the open Internet and using real publishing tools
  • the disadvantages of publishing inside an LMS and using the LMS tools.

I’ll try to limit myself to just 10 factors (5 for each category), and then maybe somebody who has had success with content inside the LMS can share their experiences. I’m sure that content inside the LMS can work well in some situations, but I honestly don’t know what those situations would be. What I do know is that publishing content on the Internet with real tools has worked great for me, and here are the main reasons why… and I hope I’ve zoomed in on the most important reasons here, but I’m giving myself the option to add to the list later if I realize I left something important out! 🙂

Advantages of publishing on the open Internet and using real publishing tools:

1. Fast, fast, fast, fast, fast. Did I say fast? The whole reason I have opted for blogs over websites is that blogs optimize my time for content creation. I rely on labels and other blogging tricks to manage the navigation, and I am happy with simple templates for the design. That means I can focus on content creation. And I have so much content I want to create and share! If you look at the list of blogs for my classes, you will see what I have created lots of content. Beyond those blogs, I have many other blogs for my writing and research that are full of yet more content. The thought of trying to create all that content inside an LMS makes me shudder.

2. Fun. It may sound silly, but the fun factor matters a lot to me. If I am going to spend serious time creating content (and I do), I want to be able to have fun doing that, creating fun widgets to use in my blog sidebars and playing around with the template design. Nothing fancy, but being able to just play around with it. There is nothing (NOTHING) fun or playful about creating content inside the Canvas LMS. At least D2L kind of sort of tried to provide some fun design templates. In Canvas, the goal is clearly to stop anyone from having fun because everything is supposed to look exactly the same in every course everywhere all the time.

3. Project-Based. As you can see from my list of content blogs, they are project based. Some are old projects, some are new projects; some are retired projects, some are ongoing projects, and some are projects that I’m thinking about reviving. A few of the blogs are specific to a course, but the majority of blogs are actually not course-specific. I need to be able to develop content based on specific project goals, and it would be very limiting if I were to think of my content in course-based terms.

4. Co-Learning with my Students. As I mentioned in previous posts, my students are blogging too, so we are learning about blogging together. Canvas is not a tool I can co-learn with my students. I far prefer to use the same tools as my students so that we can do that together. I learn more, they learn more. We all learn more. Connecting learning: it works.

5. Real Tools for the Real World. This is closely related to the previous reason I gave about using the same tools with my students, but with a forward-looking / outward-looking emphasis. If my students and I are using real tools as we work and learn online, it’s more likely that we will able to use those same tools for other tasks, both now and in the future. The LMS is a faux tool that does not have a lot of transference. Blogs have great transference, as do the other digital tools that I encourage my students to use as they create content for this class. Their blogging and content creation skills are something they could put on their resume; their use of the Canvas Discussion Board is not.

Disadvantages of publishing inside an LMS and using the LMS tools.

6. Lack of Course Continuity. Instead of seeing a course that persists over time with new cohorts of students (which would make sense), the LMS treats every new semester instance as starting from scratch: new students and new content. So, each semester you “copy” content from the old semester to the new semester, but that’s a bad way to do business — and it’s a TERRIBLE way to do business if you want to make your courses public, as I do. If you make your courses public to share with other teachers and learners, you want the links to continue to be valid, and you want the links to lead to the current version of the content. That kind of content continuity is impossible when the LMS treats every semester as starting from scratch. How did we end up with this deplorable mess? It happened because the LMS was built, first and foremost, to meet the administrative needs of enrollment and grading, not for the purpose of developing online content.

7. Terrible Content Creation Tools. I’ve now created a fair number of pages at Canvas for my Canvas Widget Warehouse and my Growth Mindset Playground, and it is a very frustrating experience. Probably the biggest frustration for me is how little of the screen space I control. Looking at a 1200×800 display, I have 900×500 of real estate that I can edit, which is less than half of the available space.

8. Terrible Content Navigation. Or, rather, there is no navigation. I have to build the Pages navigation menus manually, which is a nightmare. If I want to try to use the left-hand navigation bar, my only recourse is to keep adding instances of the Redirect LTI, as opposed to just editing the navigation directly. If I want to, god forbid, put an external site in the sidebar navigation, students are warned of the danger of leaving Canvas, even though I am the one who put the link in the navigation bar for them! The idea, of course, is that I am supposed to do all the navigation through the Modules, arranging everything in linear order. But there is nothing linear about my pedagogy, and nothing linear about my content: it’s exploratory, not a one-size-fits-all scripted experience of “previous” and “next.”

9. Terrible Content Maintenance Tools. Or, rather, the LMS content maintenance tools are non-existent. In Pages, I cannot put my pages into folder or tag them in order to help me manage my workflow. Why are there folder options in the Files section, but not in the Pages? I can sort Pages by creation date and last edit, but that’s it. There are no other tools available for me to use in managing the content. Not even a search box. Eeek.

10. Uncertain Longevity. My school stayed with D2L for many years, and based on that, I can imagine we will stay for many years with Canvas LMS. But that’s not something that I control; Canvas could go away next year or the year after. As someone who is in this for the long term (I’ve been developing online course materials since back in 1998), that worries me. I’m not a proponent of “it must all be on my own domain,” but I am a proponent of being able to make my own decisions about the platforms that I use, and longevity is important to me. When it comes to my school’s commitment to an LMS, I can hope for longevity, but it is just that: a hope. They could change LMSes any time, a decision completely beyond my control and even beyond my influence.

So, as part of driving my own learning, I need to be able to drive my own content… and the LMS just does not give me a way to do that. For me, blogging is by far the better option.

I drive my own learning.

Crossposted at OU Canvas Community.

A Blog Network for Class Content

Yesterday I wrote about how I use Inoreader to collect all my student blog posts so that I can read them, and also how I use Inoreader to organize those posts into content streams that I can then share with my class. My students’ blogs form a network that IS our class: all that they are reading and writing and learning travels through that network, reaching me and reaching the other students in the class. Connected learning. I cannot imagine teaching any other way.

What I want to write about today is a different blog network: the interconnected set of blogs that provide the content for my classes. I do have a class wiki, but it just contains the class calendar and assignment instructions: Online Course Lady Wiki. All the actual class content comes through my various blogs.

Why blogs? I use blogs for my content because they are the fastest, easiest, most flexible, and most organized type of web publishing that I have found. YMMV. Today I will list the different blogs I use to support my classes, and then in tomorrow’s post I’ll describe the advantages of using blogs for content as opposed to (ugh) using the LMS.

Daily Class Announcements. This is the blog that I use as the homepage for my Canvas courses; it features new content every day during the semester, but I do not use it when school is not in session.
Total posts: 1839.

Writing Laboratory. This is a writing support site with all my help pages for English punctuation and other writing mechanics. Plus, I add new humor and motivational materials during the semester. This blog houses the content for my Writing Inspiration and my Writing Humor widgets.
Total posts: 537.

Growth Mindset Cats. I added new content to his blog regularly for three semesters; now I add new content periodically, and I also recycle old posts to bring them back to the front page of the blog. This blog also houses the contents for my Growth Mindset Cats widget.
Total posts: 426.

Learning by H.E.A.R.T. This is a newish blog, a companion to the Growth Mindset blog, and I am actively developing it this semester; I’ll be adding new content several times each week as the semester gets underway. I also have a H.E.A.R.T. widget using contents from this blog.
Total posts: 178.

E-Storybook Central. This is a blog which used to house a lot of content, but it has been mostly spun off to the Freebookapalooza blog. With the coming demise of the old Google Sites, though, I will be repurposing this blog to archive past student projects in a kind of online catalog before the old Google Sites is shuttered in 2018. Right now, the main purpose of this blog is to provide a list of past student Storybook projects in both of my classes, along with the Storybook widgets.
Total posts: 68.

Freebookapalooza. This blog was a summer project from 2016; I managed to add about 900 books that summer. I hope to spend a good chunk of next summer adding more materials. I have created a variety of Freebookapalooza widgets using the contents of this blog.
Total posts: 937.

Myth-Folklore UnTextbook. This blog was a summer project from 2014; it contains the 100 reading units that students choose from in the Myth-Folklore class. I also add new content periodically that I think would be of interest to students in that class.  Most of the stories in the reading units have illustrations, and so I have a Myth-Folklore Images widget that uses those illustrations.
Total posts: 2572.

Indian Epics Images. I regularly add new content to this blog, based on artwork that people share at Twitter or that I find at museum websites. This blog is also the home of my Public Domain Editions of the Ramayana and the Mahabharata (a project from Summer 2015), which students use in for reading in the Indian Epics class. I reuse the images from this blog in my Indian Epic Images widget.
Total posts: 1142.

Indian Epics Reading Guides. This blog houses reading guides for the additional reading materials that I use in the Indian Epics class, along with other content that I think would be of interest to students in that class.
Total posts: 371.

Indian Epics Comic Books. This blog was a summer project from 2015; it contains pages for the 100+ comic books that students use as reading options in the Indian Epics class. I don’t add new posts here, but when I have time I add more detailed reading guides to the comic books that are most popular with the students.
Total posts: 151.

Proverb Laboratory: Posters. This blog was a summer project from 2013; I don’t add new Posters, but I recycle the old posters by using them in the daily class announcements. The new content at this blog consists of Latin LOLCats (a hobby, not for a class that I teach since my school, alas, will not let me teach Latin). Using the contents of this blog I’ve made a Proverb Posters widget and also a Latin LOLCats widget.
Total posts: 1665.

What I like best about blogs: they start small, and then they grow!

Big oaks from little acorns grow.

Crossposted at OU Canvas Community.

Open: It’s the Canvas Difference

For the past two days I was participating in a WEC minicourse in Canvas, and yesterday I also got to participate in a fun remote session with the TLInnovations group at CSU Channel Islands. They have a Domains project and are also looking at a Canvas transition in the near future, so we had a lot to talk about. And yesterday was the debut of Keegan’s Canvas Camp: Learn and Build Courses in Community website, which is what I am eager to write about today. Other people have been busy with finals this week, but I have been having such a good time just connecting with people and sharing ideas. Definitely more fun than finals. 🙂

The Canvas Camp site is published at Keegan’s domain, as you can see, and it provides support for his four-day in-person Canvas workshop. I am really glad that there is now something like this site to go along with all the face-to-face training that has been happening all summer and fall. Having online resources like this benefits people who, for whatever reasons, do not attend the in-person training, and it also benefits people who attend the training and later want to refer back to what was covered. Everybody wins!

The Big Picture. Keegan also provides a helpful background page to give an overview of the thinking behind the materials he has assembled, and it’s a really attention-getting list of topics, very different from the click-here-click-there approach of so much LMS training:

Teaching the technical skills to use Canvas
Engaging faculty in course development
Producing Canvas courses
Reflecting on why the university switched to Canvas
Learning Canvas as part of a community

I’m most interested in course development and community along with institutional goals, and Keegan is providing a real service by including those areas in his work with the faculty. There’s already a super-abundance of materials online from Canvas and from other schools that address Canvas features and technical support, but these other areas are what will lead us to a truly successful Canvas adoption. Without a discussion of those broader topics, people are probably going to seek to use Canvas just as they used D2L, and D2L use was very limited (and also typical; see How Instructors (Don’t) Use the LMS). If we want Canvas to be something not just new but something better in terms of teaching and learning on campus, those broader topics are the key.

LMS… or the Internet. Of course, there’s an obvious irony here, one which Adam already pointed out in his share of Keegan’s site at Twitter: If we must teach the LMS, then we shall build on the domain. Indeed! Keegan has chosen not to build this site as a Canvas resource course, building it instead outside of Canvas at his domain. My guess is that a statement about the reasons why he made that choice would be a great way to get faculty to ask themselves that question as well, reflecting on alternatives rather than just uploading their content into the LMS willy-nilly.

There are both advantages and disadvantages to putting content in an LMS, and it’s important for faculty to ponder that before they get started. That is exactly the kind of thing they need help with, in fact, since it is probably a question they have never asked themselves before. The assumption has always been “just put your course materials in the LMS.” That was true when we had Blackboard and when we had D2L, but I hope we can have a better informed conversation about that now with Canvas, especially because Canvas offers very different options than D2L or Blackboard when it comes to content.

OUCreate. In addition to Canvas being very different from D2L (more on that below), OU’s Domains project (OUCreate) provides faculty with strong support for web publishing that they did not have in the past, along with all the hosted options out there too (I’m still loyal to Blogger; here is Blogger-in-Canvas). My guess is that most faculty still do not really know what OUCreate is about, and we probably need to use every possible opportunity to educate people about it, yet it has not been the focus of any of the Canvas Taskforce emails I’ve received.

The Canvas Difference. In D2L, it was impossible to share courses on the open Internet. That has now changed with Canvas: you can choose to share your course publicly, or you can choose to share just the syllabus. Canvas also makes it possible for faculty to create resource courses on their own, without having to ask an administrator (as in D2L). So, in addition to deciding what content goes in the LMS, faculty also now have different options for what to do with their LMS content. The ability to create resource spaces in Canvas, not just official courses, allows Canvas to become a true content platform. Instead of having content associated with a course (so that you have to copy the content from one semester to the next to the next), you can now create a true content space in Canvas, linking to it (to the pages, to the modules, etc.), thus developing the content over time, using and re-using it from semester to semester. I’ve written a blog post about that already, and I hope that is an option faculty will explore: Open Content: Resources, not Courses.

My Canvas Resources. I choose to keep all my course content outside the LMS (“open by default” is my motto, so I never put content in D2L), but now I’m having fun developing some resources in Canvas: last summer I built a Growth Mindset resource that demonstrates the use of live content in Canvas (Twitter, RSS, etc.), and for winter break I’ve built a Widget Warehouse where I am sharing Canvas-friendly javascripts (feel free to use them in your courses if you want, or use them as models to inspire you to build your own). Since both of those projects are about Canvas, I am really glad that I can do the content development inside Canvas, while sharing that content on the open Internet. Good scholarship needs a community to grow, and so does good teaching. Canvas gives us that opportunity to share and learn from each other.

This openness is, in my opinion, the most important difference between Canvas and D2L, and about that I say: vive la différence!

Learn to look at things from different angles.

Crossposted at OU Canvas Community.

Become a Javascript Wizard in Canvas: HTTPS is the key

I’m taking a break today from the series of posts on Grading to share something fun: a Gaudium Mundo javascript for Latin holiday songs during the month of December. My school won’t let me teach Latin, but that doesn’t stop me from making javascripts and sharing them at my Bestiaria Latina blog.

In this post, I’ll explain the double-hack that mere mortals need to display javascripts inside Canvas. All it requires is the magic of HTTPS webspace so that you can host both the javascript and also the HTML webpage that you will use to sneak the javascript into Canvas. Here’s how it works:

1. Create your javascript. I use the wonderful free tool to create my javascripts; I’ll write up a post later about just how that works. Zero programming required! You just create an HTML table of the content you want to use (date-based or random), and then RotateContent generates the script for you. For Gaudium Mundo, I made two scripts: one 400 pixels wide, and one 200 pixels wide. New songs appear automatically each day of December; I don’t have to do anything. It’s automatic! 🙂

2. Create an HTML webpage. Next, I create a vanilla HTML webpage which does nothing more than call the script. You can see the page here: Gaudium Java. When I said vanilla, I wasn’t kidding! All it does is call the script.

3. Use iframe in Canvas. Then, all you have to do is use iframe to embed the contents of the HTML page where you want it inside a Canvas page. For example, here I split the page and made the script display in the right-hand column: Javascript: Gaudium Mundo.


If you are a Latin teacher and want to use my script and page, go ahead; I am glad to share! You will find the iframe code there on the Canvas pageand if you want the script for use in a blog where javascripts are allowed without the extra layer of the iframe, you can get the javascript here.

And whether or not you are a fan of Latin holiday songs, I hope this might inspire other Canvas users who have access to HTTPS webspace to experiment with creating javascripts and displaying them inside Canvas. It is a fun and easy way to add dynamic content to your classes! Plus, you can choose to share your scripts with others if you want. For more examples, see my Writing Motivation widget in Canvas, and … of course … the Growth Mindset cats in Canvas.


Thanks as always to Reclaim Hosting for putting the magic power of HTTPS under my control. We can all be javascript wizards in Canvas this way!


Crossposted at OU Canvas Community.

Here’s the script in action:

Canvas Hack: Repeated Quiz Content

Yesterday I explained how I have “hacked” the true-false quiz format to create a Grading Declaration system so that students do their own grading: Student Gradebook DeclarationsIn today’s post, I want to explain another hack that helps me manage repeated quiz content that recurs from week to week. This hack might be useful to anyone who uses repeated quiz content from week to week for whatever reason, either in a Declaration-style system or for some other recurring purpose.

Here’s the problem: Canvas does not understand repeated content. If you have a quiz question one week and you repeat that quiz question in another week, they are completely separate entities. If I copy quizzes, Canvas doesn’t understand that they are copies; if I use the question bank, Canvas does not update existing instances when you change a question bank question. The result: if I decide to make a change (to fix an error or to make any other change), I have to go to each quiz and edit the question again, and again, and again, week by week by week. This was really frustrating for me. REALLY frustrating. I’m always trying to tinker with the language in the Declarations to make them as clear as possible and also to fix the inevitable typos, etc. Having to spend 30 minutes or more just to correct one error in one Declaration, going click-click-click through one week after another, is a terrible use of my time, not to mention the way that it introduces even more opportunities for errors to creep in. Ugh.

In D2L, I did not have this problem. The D2L question bank was no help (it did not update quizzes containing questions if the questions were later edited), but if you used the D2L “copy” feature, D2L would remember that questions had been copied one from another. So, if I created a Declaration quiz for Week 1, and then copied that to Week 2 and Week 3 and so on, D2L understood the connection. If I needed to make a change or correction later on, D2L would ask me if I wanted to apply the change to all the other instances of the question. You could say yes or no, and I always said yes, so D2L would automatically update all instances of the repeated question (if you said “no,” then D2L would sever the connection, no longer considering the questions to be the same).

My Canvas hack. So, after pondering this problem all summer, I came up with a solution, a weird solution, but it’s ended up working really well. Since Canvas refuses to let me create connected content, I decided that I would host the content remotely, and then display it via a remote-linked image, along with a link to the text for students who, for whatever reason, couldn’t read the image. You can see an example of what I did here in a Reading Declaration, one of 24 Reading Declarations that appear in each of my two classes (48 instances total per semester). 


As you can see, the content of the Canvas quiz question is an image which is remote-hosted (image file) and displays as part of the quiz, along with a link to the quiz text (text file). This exact same remote image and link appears in each Declaration, week by week, matching the assignment instructions. Even better: this solution works across my two classes, which makes this hack even more efficient than my D2L system (which required me to make the same changes to my two classes separately). So now, if I want to make a change to a Declaration, I just edit the assignment and update the image and the text file — presto, the new image appears in all the quizzes, and the link is the same link but it leads to the new text. I don’t even have to do anything in Canvas at all!

The magic of HTTPS. The key to making this solution work is having HTTPS webspace so that the images I use in Canvas will not be blocked out according to the mixed-content rules which require that remote linked images come via HTTPS. I am so lucky that the Domain of One’s Own project at my school, powered by Reclaim Hosting, gives me access to HTTPS webspace. That’s also the key to making my javascripts run in Canvas; I’ve written about that here: New Countdown Widget on Homepage.

Final thoughts. So, I am really pleased with this solution… but the failure of Canvas to support quiz content reuse is very frustrating. One of the boons of digital content is distributed content for effective editing and reuse, but the folks at Canvas don’t seem to have figured that out. They could take a lesson from D2L in this regard: the way D2L handled quiz question reuse was not ideal, but it was far (FAR) better than the lack of support for quiz question reuse in Canvas.

Of course, this quiz question conundrum is part of a much larger problem with content reuse, as I explained here: Open Content: Resources, not Courses. Digital tools should encourage us to review and improve our work, and also to distribute it widely, sharing with others. Unfortunately, the Canvas approach does not encourage you to improve and reuse content; just the opposite: it creates a burden that can discourage people from reviewing and improving, deterred by the click-click-click of mindlessly having to do the work of the machine ourselves.

This growth mindset cat is ready to review and improve! 🙂



Crossposted at OU Canvas Community.


Open Content: Resources, not Courses

Yesterday I wrote about Open Syllabuses in Canvas, and I am a true believer: I would rate open syllabuses as my single biggest goal for Canvas at OU and, if anybody wants my opinion (ha ha), I would rate the number of open syllabuses in our Canvas system as a metric of success. For people who want metrics.

But content in the LMS: yikes, no. A thousand times no. I would never … let’s be clear: NEVER … recommend that anyone put any content in the LMS. There are so many better options! That is just my opinion, though, and I know that others feel differently. Canvas, unlike D2L, does allow for open content, and it even allows you to create persistent content on the Internet. That’s all very different from what D2L offered to us before.

For me, being able to get massive quantities of content online quickly and easily is the key, so I prefer to use blogs. That might seem weird, but it works great for me: blogs are very quick, they have good auto-navigation with labels, and they are linkable, searchable, scalable, and durable. The complete (and massive) UnTextbook for Myth-Folklore is a blog, the evolving (and also massive) Freebookapalooza library of free books online is a blog, and so on. That’s a solution I like, and there are so many other great solutions, especially now with OU’s project (see more about that below).

The traditional LMS, on the other hand, is a terrible solution for content. Totally aside from the specifics of each system, the overall purpose of the LMS defeats the content: the LMS is built to support courses which disappear at the end of a semester. At the end of each semester, what happens? Students — gone. Content — closed. And links — broken.

But, you say, I can extend the closing date of my course! Sure, you can do that. But what are you going to do when you offer the course again, with a new course space in the LMS filled with a new cohort of students? You are going to copy the content over — which is a disaster for sustainable, durable, shareable content. You don’t want multiple copies of content floating around. Instead, you want a stable location for evolving content where you can use, re-use, and improve course content over multiple classes and multiple semesters.

You need content as a lasting RESOURCE, not content that lives and dies with each expiring, self-destructing course iteration.

And Canvas, thank goodness, gives faculty one possible solution to this problem. Just like D2L, Canvas will automatically generate new course spaces for you every semester, but unlike D2L, with Canvas you can create your own spaces too. You don’t have to ask for an admin to do that; you can do it yourself. So, with just one click you can generate a Canvas space to use as an open, linkable, lasting resource that persists from semester to semester.

Here’s an example: this summer I created a Canvas course that I filled up with content, and you can see that here: It’s actually a two-fold experiment: it is a resource for Growth Mindset materials, and also a resource for live content strategies (embedding, javascripts, etc.). I’m personally not interested in any of the Canvas content management features like Modules, etc., but I could use those content management features if I wanted, just like when building a course.

So, when you see your Canvas course space automatically generated for you, don’t just leap into putting the content there. Step back and take a moment to ponder and plan: you have options!


You should definitely check out an amazing option that goes far beyond what Canvas could ever make possible: CREATE.OU.EDU. For serious content development, you need a domain of your own. And awaits you. 🙂

Find your own path!


Crossposted at OU Canvas Community.