carpentries-incubator / sage-lesson

SageMath Software Carpentry Lesson
https://carpentries-incubator.github.io/sage-lesson/
Other
7 stars 3 forks source link

Instructions for SageMath installation #3

Open olexandr-konovalov opened 8 years ago

olexandr-konovalov commented 8 years ago

It is a Software Carpentry custom that attendees of the workshop are supplied with installation instructions for the software that they are asked to install prior to the workshop (see e.g. "Setup" section at http://kkwakwa.github.io/2015-11-16-manchester-codima/).

We need to discuss what is the recommended way to use SageMath during the workshop. As I've mentioned in #2, SMC (SageMathCloud, https://cloud.sagemath.com/) is good to ensure that all users have same experience independently on their operating system, and "installation" is trivial because it works in the browser.

On the other hand, this makes teaching very dependent on the network connection (workshop for 40 people in the same room will require extra care). Also, it's good if the workshop gives a hands-on tutorial after which learners are able to continuing on their own machines (as a usual condition of the workshop is to bring your own laptop). With a cloud based solution this may not be the case (though of course, they will be able to continue "in the cloud" when they have network connectivity).

So each choice has its own benefits and downsides.

dimpase commented 8 years ago

SMC has an option to use jupyter notebook, and such an option is also provided by local Sage installations. This way one has a uniform interface to either SMC or to local Sage installs (with notebooks that can be used locally as well as on SMC). This looks like the ideal setup to me.

drvinceknight commented 8 years ago

I like this idea.

On Tue, 16 Feb 2016, 22:11 Dmitrii Pasechnik notifications@github.com wrote:

SMC has an option to use jupyter notebook, and such an option is also provided by local Sage installations. This way one has a uniform interface to either SMC or to local Sage installs (with notebooks that can be used locally as well as on SMC). This looks like the ideal setup to me.

— Reply to this email directly or view it on GitHub https://github.com/alex-konovalov/sage-lesson/issues/3#issuecomment-184896242 .

olexandr-konovalov commented 8 years ago

@dimpase - sounds great! If all files developed on SMC during the workshop may later be migrated to local installations and vice versa, that addresses some of my concerns. Also, if once you've started the Jupyter notebook, the interface is the same, the audience may combine those using Sage locally with those accessing it via SMC if they have difficulties to install it locally (or eg came with a temporary laptop and can't install it there). This will also reduce the pressure on the network.

So my suggestion would be to describe both alternatives and let the learners choose whether to work with local Sage installation or use SageMathCloud.

Another SMC constraint - free SMC projects may be slower, and since the workshop consists of intensive teaching, slowdowns because of waiting till the notebook connects to the Sage kernel etc. are not desirable. How could we deal with that?

dimpase commented 8 years ago

I think a decent modern desktop with lots of RAM running Linux can handle 10-20 Sage sessions; so we can set up such 2 or 3 desktops, ship them to the location, and then can start Sage sessions there and let participants connect to it via a web browser. Setting up networking would be a bit of a pain (unless desktops will come with a wireless hub). This is probably 4-6 hours of work to set this all up, but it is quite doable.

defeo commented 8 years ago

I've already had my laptop serve as wifi AP (linux with hostapd), with dnsmasq configured to point any dns query to a running instance of the jupyter notebook, and have (a few) students connect to it to work on python (no sage, tough).

It's a no-brainer for the student. The AP configuration is not for the faint of heart, though, not all wifi cards support it, and I'm not sure how many connections the average card can handle. Wired network over a switch might be more robust, easier to configure, and dnsmasq could still be used to give IP addresses and map DNS queries (and is easily scriptable).

olexandr-konovalov commented 8 years ago

@dimpase and @defeo thanks. There will be a place to describe special knowledge needed for the preparation for the workshop in the Instructor's Guide (for the current similar guide on GAP, see @here), and clearly there should be other alternatives described there.

Just to note that a typical software carpentry workshop is 2 days long (e.g. shell and version control for the 1s day and SageMath for the 2nd), sometimes three, and there may be one SageMath instructor coming, who knows SageMath but don't possess all skills for the technical setup that you're outlining. Bringing more people for more nights to set up it in advance will cost organisers more. And even though we may be able to do that for the 1st workshop, our ultimate goal is to make is possible for the lesson to be taught by others (and to be used for a self-study).

On the other hand, if you will suggest to the instructor that everyone who can work locally should work locally, and it will be useful just to bring several memory sticks with Sage distributions to quickly distribute them around the room for those who haven't managed to get them in advance, that may be very practical and low-cost solution.

slel commented 8 years ago

Yes, SageDebianLive offers a practical way to run Sage on a bootable USB drive which can be just an 8 GB memory stick. The stick has self-cloning capability, so starting with a stick or two it replicates quite fast to all participants needing it. http://sagedebianlive.metelu.net/ http://arxiv.org/abs/1311.6754