Pages

Showing posts with label RotateContent. Show all posts
Showing posts with label RotateContent. Show all posts

November 1, 2015

A Blog Randomizer for my Online Courses

Well, I have been very neglectful of this blog of late... but I've been busy, I promise (see the stream for details day to day). Anyway, on my walk today I thought of something really nifty to try: a blog randomizer using iframe. I'm not really into iframe as a tag, but that's how Inoreader does the HTML clipping view of RSS streams, so I've come to appreciate how useful it can be.

So, what I did was to grab the list of addresses for my students' blogs (which I have in a spreadsheet), and then I popped them into iframe tags (that was easy), and with that I built a RotateContent.com table around those iframes... but I made sure not to open that table in my browser: THAT would have been scary, eeeeek. Instead, I just created the table in a text editor, and then converted the table to a randomizing javascript using RotateContent.com and ... it worked!!! If only every half-hour were that productive, ha ha.

The results will not look good here in a skinny blog panel, but you can see the vanilla pages I put up:


And I linked to the random blog pages at the Blog Directory and also at the Myth-Folklore hub and the Indian Epics hub.

I am a big believer in the power of random for navigating lots of content, and I would say that the blogs in my classes count as a LOT of content. I'm not quite sure what I will use this for next semester, but I am sure I will use it for something! :-)

Here's a screenshot that shows how the random blog fills the screen with just a single line across the top to let people refresh and reload.


December 24, 2014

More on the Power of Random: Random Storybooks

Because of the crazy school calendar (spring semesters starts sooooo early: too early!), I am actually doing a little schoolwork this morning to get ready for the new semester... but I saved my favorite of all new-semester tasks for today: updating the random Storybook widgets that automatically display Storybooks at random in my different class blogs and websites. You can see the updated widgets in action all over the place:
There might even be some other places where the widgets are on display, places I don't even remember... and that is the power of distributed widgets: I don't have to go update the individual places where the widget is embedded. I just update the widget script in one place, and it is automatically updated everywhere.

So, for example, here's the 400-pixel version of the script that features Storybooks from both classes:


I create these scripts using an amazing tool built years ago by Randy Hoyt, a former student: RotateContent.com. This free tool takes any HTML table and converts it to a javascript that either displays the table cells at random (as I've done with these scripts) or based on a calendar (either a perpetual calendar or a fixed-year calendar, as you prefer). When Randy created this tool years ago, I never suspected I would still be using it eight years later: javascript was definitely a good choice because it is still going strong! You can also choose to create PHP versions of the scripts if you want instead.

In terms of the nitty-gritty, I have one giant HTML table that lists the Storybooks for both classes, Myth-Folklore on top and Indian Epics down below. There is a title linked to the Storybook online, plus a quick little blurb written by me, along with a screenshot of the coverpage, 400 pixels wide. I then cut that table in two, creating a separate script for each class. Then I copy those scripts and manually replace the 400 pixel widths for the 200-pixel version I use in the blog sidebars, giving me two different versions of each script. I publish those new javascripts, and then everything runs automatically, with class-specific widgets or with the meta-widgets that randomizes the already randomized widgets as above. The actual creation of the scripts takes just a few minutes; the part of the task that takes some time is making the screenshots and writing the blurbs for each semester's Storybooks as I add them to the HTML table. But it's fun, as I said: I'm always so proud of the new Storybooks that go into the script every semester!

As I've mentioned in previous posts, I think randomization is the most powerful tool we have for scaling in online classes, whether small or medium or massive. So, for example, I use random blog groups and random project groups to make sure that there is good student-to-student interaction in class every week, and I built some magic crystal balls to help students as they choose items each week from the Myth-Folklore UnTextbook. Random also works for the archive of student Storybooks. I really want each semester's new students to be aware of past student projects, but just showing them long lists of projects is not effective. So, instead of expecting the students to come to the Storybooks, I bring the Storybooks to the students: the random widgets display a new Storybook each time they visit the class homepage or look at the class announcements, along with each time they visit the class support sites, etc. It's non-stop Storybooks ... one at a time, randomly.

Of course, I never know just what Storybooks will capture their attention, and that's fine: the power of random means they see all kinds of Storybooks and, sooner or later, they are bound to be intrigued enough to click on a link and learn more. That's my hope anyway... and the power of random means that 24 hours a day on all those webpages and all those blog posts, there are wonderful Storybooks waiting to appear by magic, bringing their stories with them.

Random: it really is a superpower! I continue to be baffled that MOOC platforms and LMS software (like the D2L BS used at my school, or our MOOC wannabe platform, Janux) do not make good use of the power of random in order to scale course content and interactions. Random is great: it means we can all get to know each other and we can see all kinds of content all the time ... but just one person or thing at a time, not all at once! Massive stuff, but on a human scale. It works! :-)



(Cartoon by Sumanta Baruah)

December 17, 2014

The Power of Re-Use and Randomization: Students Advise Students

One of the things I like best about teaching and learning in a digital environment is how easy it is to reuse and recycle useful materials. I'm also a big believer in the power of random as a way to manage abundance: either an abundance of people and/or an abundance of stuff. So, I had a lot of fun with this little project today, which is a good example of recycling AND randomizing: I made a giant list of advice that students in past classes shared with future students, and then I used RotateContent.com (a randomizing javascript tool built by a genius former student) to display bits of advice at random!


Student-to-Student:




Students from the past are obviously the best possible advisors for students in the future, so I really want to maximize the use of this material. Here's an overview of how it all came together:

1. In the past I had a blog post where I asked students to leave comments for future students; this semester, I asked students to write up that advice at their own blogs, and I collected those posts using Inoreader. The students' blog posts contained feedback for me AND advice for future students, so I went through the posts to find advice for me and advice for students and I wrote up this page with the advice for students: The Voice of Students Past.

2. Since the total list of advice is so long, I created a randomizer to display bits of advice at random. I included that random advice on the class website page, and I will probably add the advice randomizer on other pages at the class website too! You can see the randomizer in action at the top of the post; reload the post to see more random bits of advice.

3. More reuse: I will include the advice randomizer in the daily class announcements. Students see the announcements whenever they log on to D2L, for example, so that will be another way to keep the advice appearing and re-appearing!

4. And even more reuse: I need to go through the advice list and extract Twitter-sized pieces. That way I can share advice through our class Twitter stream each day too.

ADVICE: It's something we all need... and good advice bears repeating. I'm glad to have this way to share and re-share advice from past students with the new students this semester! Content reuse, content recycling: waste not, want not. :-)



July 9, 2014

Course Redesign Update: July 9 - The Crystal Ball

One of the things I've been pondering with my new "un-textbook" is how students will choose from the MANY choices they have for reading each week. In the past, I had just two options each week... and students were often undecided, so I had written a little javascript called "let the fates decide" which just popped up a text message at random ("The Fates say India!" or "The Fates say Japan!"). I know the students really liked that and actually would use it to make their choice. And hey, I believe in random, so that's cool.

So, now the question is: how to keep that element of random while at the same time promoting some active selection amongst the many available options each week...? I need a new randomizer that integrates the idea of random while ALSO providing information that the students can quickly access to see if they want to go with the random suggestion or not (hopefully they will want to investigate at least a little bit, ha ha).

You can see the solution I'm considering below: a crystal ball. I found a public domain crystal ball, used Cheezburger to create the specific messages (yes, I am a doofus; that is how pathetic I am at graphics editing... I use Cheezburger, ha ha), and then used RotateContent.com (the genius javascript creation tool built by Randy Hoyt) to make the crystal ball randomizer. Then I put that in a blog post and added links so that the students who, hopefully, don't put ALL their faith in the crystal ball can learn something about the reading options.

That sounds like a lot of work, but it wasn't. Maybe 10 minutes, although I will need to do 12 of these scripts for it to be all ready to go. I'm going to sit on this for a little bit, though, and ponder just to make sure this looks good to me before I make the other scripts.

Anyway, I was glad it was easy to do. I know the students liked the Fates in the old version of the class, so hopefully they will be fans of the crystal ball. :-)




You can get more information about the Classical Units here:
Or you can check out the units individually:

December 16, 2013

Google Sites, Diigo, and the Storybook Archive

I just finished one of my very favorite tasks that happens at the end of each semester: I added the links of the Storybooks from this semester to the LONG lists of links for my Myth-Folklore Storybook archive and my Indian Epics archive. Then, I also updated the randomizing widget which shows some great Storybooks at random for each class separately (you see that widget at the top of each list) and which can also show Storybooks at random which you can see from both classes, as on the homepage of my wiki. All told, the process takes several hours, but it is a pure pleasure from start to finish.

This screenshot below shows a Storybook newly added from the Fall semester of Myth-Folklore:


And this screenshot happens to show a Storybook from Indian Epics year before last:


Given that I have now made Diigo a regular part of my content management process, I have also bookmarked all the Storybooks in Diigo and plan to start using tags there to sort and label them by both content and style. That is my next big project in fact! Diigo does handily let me know that I have over 500 Storybooks bookmarked there. That's a really good feeling; almost all the students do leave their projects online for future students to consult, and I am so grateful to them for sharing their work after the class is over.

It's an especially good feeling having all these Storybooks in the archive since it was about three years ago that my school's IT department deleted, without warning, almost all the Storybook websites that my students had built at students.ou.edu (the IT-provided web hosting I relied on, woe is me). At that time, I had over 1000 Storybooks in the archive, seven years' worth of student work - all thrown into the digital trash can by my school just a few days before the start of the school year. That was the worst day ever in my career as an online instructor!

Slowly but surely, though, the archive has recovered, and I have more confidence in Google Sites than I ever will in a service provided by my school, based on that terrible experience of losing my archive without warning. I know that Google Sites is not forever, but when the time comes to migrate and/or rebuild my archive, I am ready to do that again, hopeful that Google will give me more warning than my school did. More importantly, I am confident that there is ALWAYS wonderful work that my students are creating, if I can just find a way to capture and preserve that somehow. It's the single best thing I know of for inspiring future students to aim just as high, or higher! Unlike Rebecca Schuman (see her delightfully provocative article in Slate: The End of the College Essay), I love reading my students' writing, and the Storybook archive is a source of nothing but pride and joy for me, year after year after year.




Postscriptum: I just sat here for a few minutes, banging away on the widget and watching the brand-new Storybooks from this semester pop up at random together with Storybooks from last year and the year before (it's a javascript widget built with RotateContent.com). Time moves on - and yes, this Fall semester is now really over and receding into the past . . . but with a wonderful new semester to come, and I'm already excited about what new Storybooks will take shape then!

November 7, 2013

RotateContent.com for Randomizing Class Assignments

I mentioned in a previous post how I use RotateContent.com to create randomized and date-based content to distribute in widgets that I use in my blogs and other webpages. I thought I would write up a note today about how I use RotateContent.com as a randomizer for class assignments, too.

It seems to me that having a randomizer is an incredibly important tool for assigning student activities online, especially when you are not just sure which students will be participating. That is a very common situation in my classes because I try to give the students a lot of choice about just which assignments they do. So, because I don't know how many students will be doing an assignment, I can use a randomizer to spread that effort most effectively.

That all sounds a little weird in the abstract, so let me give a concrete example of how I used the randomizer today when setting up assignment instructions today. Every week, students have an option of writing a "famous last words" blog post as an extra credit assignment. Then, every three weeks or so, I have an extra credit blog responding assignment where, in addition to their usual blog responding quota, students can read and comment on some of those "famous last words" post by their fellow classmates.

Not all of the students write "famous last words" post, and it varies from week to week. Plus, not all of the students do the extra credit blog responding when it's available, and there's no predicting how many of them will opt to do it. Yet my goal is for all the students who do the "famous last words" posts to get as many comments as possible, distributed equally.

It sounds hard... but it's easy, thanks to the power of random.
I just quickly create a randomized widget using RotateContent.com which will display a blog that has a recent "famous last words" post in it at random. Each student who wants to do the extra credit responding uses the randomizer four times to get their blog post assignments. No matter how many students do the extra credit, I can have faith that the statistical power of random will spread out that effort as best as I can reasonably hope for. You can see it in action here: Extra Credit: Blog Responding - Famous Last Words. (Note: You can see the randomizer in action, but you can't get inside our actual Ning group blogging space; I keep that private just to the class members.)

It takes me a grand total of 10 minutes to make the randomizer; in a separate blog post here, I'll explain just what kind of class roster I maintain in a GoogleDoc Spreadsheet and how I am able to use that spreadsheet to create an HTML table super-quickly that then converts easily to the javascript, thanks to RotateContent.com.

And here's the thing: in addition to this being efficient for me, it's fun for the students too. After all, "random" has a kind of mystery to it, a kind of power... who is deciding exactly which blogs they should read...? Not me! I just built the randomizer; I didn't assign anything to anybody. It is the mysterious power of randomization that does the actual assignment. And who knows what hidden messages it may contain...

Happy randomizing!



(Cartoon by Sumanta Baruah)

November 5, 2013

My FAVORITE Tool: RotateContent.com

In yesterday's blog post about Kindle books, I included the Kindle eBook widget that I use in my class announcements blog sidebar, and I thought I would say something about the amazing tool that I used to create that widget along with the many other widgets and other randomized content generators that I use in my classes. It is hands-down my favorite content creation tool: RotateContent.com. Even better: it is freely available for anyone to use, thanks to its genius creator, Randy Hoyt.


Randy was a student in my classes many (MANY) years ago, and we've been friends ever since. I hired him to build RotateContent.com back in what must be around 2003 or 2004, and it's been going strong ever since. I must have built a hundred or more widgets in that time, and even some of my oldest widgets are still going strong.

Just today, in fact, I came across a blog where I was delighted to see my Greek Beasts widget in the sidebar! What a thrill! That widget must be at least seven or eight years old, but there it was, chugging along, thanks to the magic of javascript. I've included that widget at the bottom of this blog post.

The basic idea behind RotateContent is that it takes a simple HTML table that you create (using whatever HTML editor you prefer), and it then transforms that HTML table into a javascript (or PHP script if you prefer) which either displays the content in the table by date (based on dates you include in the left-hand column of the table, corresponding to content in the right-hand column) or at random. You can include any kind of valid HTML in the table - text, link, images, video embedding codes, or even other javascripts. To get a sense of the process I follow in creating a widget, you might enjoy this blog post describing the step-by-step creation of the Latin LOLCat widget.

In future posts here, I'll explain some the special ins-and-outs of working with distributed content like this, but one thing I want to emphasize here is how powerful it is to keep the content in one place, while displaying it remotely via the javascript. That means I can expand on and add to the content, while also editing and making corrections, and everyone who is using the javascript will get the latest version! To be honest, I haven't understood why we don't see more content distributed in this way. Of course, I'm not a web programmer so I don't really understand the big picture of content distribution online - I just know that for me, as a teacher, this tool has been of enormous value. And as someone who loves to work with text and images, creating a new widget is one of my very favorite things to do. If I have a chunk of free time available over any given weekend, it's very likely that I might create a new widget, just for fun!

Meanwhile, as promised above, here is Greek Beasts widget, a very old widget, one of the first that I created... and still going strong! You can learn more about the Greek Beasts widget at my Schoolhouse Widgets blog (yes, I really do put EVERYTHING in blogs, as you can see).