Archive | April 2013

Master Yoda: A small linux virtual machine to make good computer simmulation

In The Empire Strikes Back, Luke Sywalker is send to the planet Dagobah by his first mentor spirit, master Obi-Wan Kenobi, to meet Obiwan’s mentor, Master Yoda. Luke’s first impression after knowing Yoda was of surprise, not because of Yoda’s skills, but due to Yoda’s look. He was a small green elder, with a peculiar way of talking, living in a swamp in the middle of nowhere. However his look, master Yoda was the greatest Jedi of all times.

Back on earth, in my programming curse in Mexico, students are expected to learn how to program in a higher level language, and being prepared to solve basic problems in numerical computing after this curse. Being the instructor, my main task is to teach a good programming language to a fairly big classroom for Mexico’s college standards (about 35 students). This term, I chose to use python instead of the more traditional matlab, given the difficulties that students have on getting the software for their personal computers, and the limited number of licenses that my school holds.

My first impressions teaching this way are rather positive. My students have learned quite easily python’s basics, and in the beginning we where working with  aptana in computers running ubuntu at the computer lab. Problems came when the students tried to install python in their own boxes running windows. Certainly, these problems where very easy to solve (apparently), because most were related to configuring the Windows path. Nevertheless, having 35 students with computer related problems, plus their mid term projects was big deal.

Being a linux guy, with fairly good experience in arch linux, and being arch very configurable, I decided to solve this issue once and forever. This weekend I decided to solve this question:

What are the minimum system requirements to have a virtual machine running python with the needed libraries to work on numerical problems?

As I expected, the answer was that I needed a very slim system. The final virtual machine was only 1.9GB, which meant that my students can take it with themselves home in their pendrives, and that they needed only 256MB or less of precious RAM to run (I tested as low as 128MB in my linux box at home).

In a future post, I will show how I did this, and elaborate more on how customisable arch can be, but for the time being, let me finish this post with some humor that expresses why I think it is important for my students to develop the basic skills in this course the “right (unix) way”:

Perl vs Python (this funny story is not only about perl and python, the author’s introduction reflects quite well what I call the Unix way.)