Thursday, July 5, 2012

Case Study: EucaSchool Part 5 - Screencast Your Shell

In my last post I detailed how to set up your own MeetBot to log your IRC presentations.  In this post I want to discuss how to log a screen cast your demonstration shell for later viewing.  While MeetBot can log your session interactions in IRC (such as lecture/talk and questions/answers from the audience), using shell logging on the demonstration screen session can lack being able to see what happens inside an editor, for example.  This leaves the lasting record lacking for demonstrative purposes.

This is where Shelr comes in.  To quote their about page "Shelr.tv allows you to record something interesting from your terminal and share it to your followers."  This means you can upload a screen cast of your shell, and to add a dash of awesome, the uploaded video also allows for pause, rate changes in speed of playback and to be able to copy/paste from the video directly.  Let me repeat that:  Unlike a youtube video, or other screen sharing/casting program, you can copy/paste text of what happened in the shell demonstration when watching it later.


That's a pretty powerful video tool for teaching shell-fu.  So let's get it installed on the demonstration instance (referred to here as demo server.)  In Part 2 we set up a screen session that allowed multiple student connections to the teacher's demonstration.  This is the place where we will install shelr to record our session for later use by students.  Of course, you could install this on your local laptop/desktop and use it just the same.  Instructions to install in linux (Ubuntu-specific as our demo server is Ubuntu) are pretty simple.  Per the QuickStart section of the about page, add the repo/install the package of your distro and issue the following commands:

aptitude install ruby rubygems
gem install shelr

Now when you want to record the shell session, you issue the command:

shelr record

You will be asked to provide a title for your record and you're off to the races.  Once finished an exit command or a control-d stops the recording and you can push that record up to the hosting with shelr, play it locally or dump the session as a json.  Here's the help output of the shelr command:

  Usage: shelr command [arg]

  COMMANDS:

    Recording:

      record              - record new shellcast

    Publishing:

      push last           - publish last record
      push last --private - publish private record
      push RECORD_ID      - publish record with given id

    Getting record as json:

      dump last           - dump last record as json to current dir
      dump RECORD_ID      - dump any record as json to current dir

    Replaying:

      list                - print list of records
      play last           - play last local record
      play RECORD_ID      - play local record
      play RECORD_URL     - play remote record
      play dump.json      - play local file dumped with `shelr dump`

    Setup:

      setup API_KEY [API_URL] - set your API key and API site
      backend [ttyrec|script] - setup recorder backend

    Visit: http://shelr.tv/ for more info.

You can sign in to shellr.tv with your Github, Google, Twitter or OpenID account and receive an API key to publish to their host with.  Before uploading, you'll want to issue the following command with that key:

shelr setup <API_KEY>
In the next installment, I will put all of the previous parts of this series together and demonstrate how to create a customized EMI in Eucalyptus to be launched on demand that will provide not only the host for the screen demonstration, but the IRC service (including MeetBot) and shelr capabilities as well.


Wednesday, May 9, 2012

Case Study: EucaSchool Part 4 - MeetBot

In my last post I detailed how to set up your own IRCd with Pam authentication and SSL.  In this post we'll discuss how to add a meeting log IRC bot based on debian's meetbot, which is a module for supybot.  Eucalyptus uses this extensively for all irc meetings as well as to log the irc session for EucaSchool.  Our specific bot's documentation is here.

Thursday, April 19, 2012

Case Study: EucaSchool Part 3 - Setting up an IRCd

In my last post I detailed using screen as a teaching tool.  In this post I will go over using IRC to augment the demonstration with lecture/Q-and-A sessions and using a bot to record your sessions.  This post will deal specifically with setting up your own IRC service.

Tuesday, April 3, 2012

Case Study: EucaSchool Part 2 - Using Screen

In my last post I detailed the why on this project; this post will focus on the how.  Specifically this post will consolidate the various resources on the internet I culled to be able to set up screen to be used as a teaching tool.

Monday, April 2, 2012

Case Study: EucaSchool Part 1 - Introduction

At Eucalyptus one of the community projects that was suggested was to have IRC-based sessions in the style of "Learn From Eucalyptus."  In this series of blog posts I will detail the process by which EucaSchool was born: what tools were used, the pitfalls we encountered and ultimately how we've streamlined this process.  In the end, this is a work in progress with the following goals:
  1. Connect with community users on topics of interest for less formal learning sessions.
  2. Accomplish the above with minimal tool requirements for the end-users/students.
  3. Assess needed and currently available tools then determine how best to implement these in an automated fashion using best practices (what can be referred to as drinking our own champagne.)