punchagan's blog

Installation How-to

Installation of packages used during FOSSEE Python Workshops

Linux

Packages from Repositories

  • Ubuntu

    # apt-get install ipython python-numpy python-scipy python-matplotlib mayavi2 scite
    


  • Fedora

    # yum install ipython numpy scipy python-matplotlib Mayavi scite
    


Sage installation

Download Linux binaries

  1. Select the one that suits your setup and extract it in your
    file-browser by right clicking "extract" or on the
    command-line using:
    tar xvzf sage...tar.gz. 
    
  2. Run sage by calling the command:
    sage
    

Windows

Enthought Distribution

  1. Download Enthought's EPD from
    http://www.enthought.com/products/getepd.php
  2. Follow the step-by-step installation process of the
    installer.

Sage installation

HTML generated by org-mode 7.01trans in emacs 23

Workshop - "How to write a script for a Spoken Tutorial"

Date - 1st April, 2010
Venue - A1-A2, Mathematics Dept., & KRESIT, IIT-B
The session started at 10:40 AM with a brief welcome to all the participants from Prof. Kannan Moudgalya. Then each of the participants gave a brief introduction of themselves to everybody assembled. The participants mainly consisted of B.Ed teachers and student-teachers from Mumbai and near-by areas. A few of us from the FOSSEE team, Vivek Khurana, and Ganesh from SPACE were the only programmers, who were participating. Dr. J. Shah and Dr. Manojendu, domain experts for Netlogo and Geogebra, respectively, were present to help and guide the participants.
This was followed by a short talk by Prof. Kannan highlighting the importance of Spoken Tutorials for a country like India. He started with a short demonstration on how simple it is to make a spoken tutorial. Using this, he highlighted, what he felt were the advantages of a spoken tutorial. Firstly, a well made spoken tutorial captures everything and doesn't leave anything to the imagination of a viewer, and eliminates problems of mis-communication. Secondly, it can be
prepared using relatively easily available equipment - A PC, and a mic. Thirdly, anybody can do it - from kids to housewives to retired people. Hence, it is a highly scalable thing. The talk lasted for about 20 mins and put the workshop in perspective and was a nice way to start.
Next was a talk by Nancy, giving the participants a guide on how to write a script for a spoken tutorial. Most of the things were common sense, but it's nice to have them stated explicitly. Notes [slightly modified] that I took during the workshop are at the end. This presentation also lasted for about 20mins.
This was followed by a talk by Dr. J. Shah on Netlogo. He showed a small demonstration of Netlogo and followed it up with a list of ideas he had for spoken tutorials. He also shared a few scripts that he had started working on, but, not completed. Next, Dr. Manojendu gave an introduction to Geogebra and a few ideas for spoken tutorials. It was already noon, by the time we reached the end of the talks and the hands-on part began.
The participants were then divided into groups of three and they chose one topic each, from the pool of ideas to make spoken-tutorials on. We then began working on our scripts. Our group chose, "Introduction to Arrays" in numpy as the topic. I already had some outlines ready, which we worked on improving. It was good to have a novice in our team, who could review the script. But, this tutorial being a part of a series of tutorials was a slight problem for us. We had about 45mins
before we dispersed for lunch.
Post lunch, we had another half-an-hour to forty-five minutes to review finalize our script, and try out some rehearsals of recording. Then began the series of live recordings. Each of the teams were given an opportunity to record their scripts in-front of all the participants. It was an exciting thing for the participants and they were enthusiastic. But, a few of us felt, this was a bit too long and more time could've been spent in the script finalization and rehearsal stage with more critical feedback being given to the participants.
The workshop ended with a few participants giving their feedback. On the whole it was an educative workshop, but I would've liked more critical feedback, with fewer specimens.

  • Steps for script writing
    1. Identify the need
    2. Prepare
      1. familiarize self
      2. test all the features
    3. Focus on a key feature that you want to demonstrate
    4. Choice of words
      1. Use short sentences
      2. Use simple words - avoid jargon
      3. Use a combination of screen-cast and slides
      4. Be specific
    5. Follow a pedagogical approach
      1. Brief intro
      2. OS compatibility, system requirements
      3. Show screen-shots of download sites?
      4. Mention pre-requisite knowledge
        Ideally that material should be available as another spoken tutorial
      5. Write ALL steps
      6. REMEMBER - Visual medium - SHOW
    6. Review the script for accuracy and clarity
      1. Ask a novice
      2. Improve until novice can follow until novice can follow
        without help
    7. Review the script for grammar
    8. Time duration
      10 minutes
    9. File size
      ~ 10MB
  • Narration - Dos and Don'ts
    1. Speaking
      • politely
      • do not give orders
      • make it a pleasant experience
      • speak naturally
      • speak clearly and slowly
    2. Tips to cut external noise
      • closed room with min. disturbance
      • switching off the fan helps
      • close windows
    3. Dummy rec. for 2-3 mins to finalize rec. parameters
      • predict file-size
      • check clarity of audio narration and video
      • full-length dummy narration will help improve tone of
        voice and pronunciation
    4. Final narration
      • do it in one go
        • keeps tone of voice uniform
        • reduce editing time
    5. While dubbing
      • if possible, remove original audio stream
      • else, just add another stream (not more than 2 streams)
      • audio-video sync
      • meaning should be same
      • file size remains (almost) same
      • recording dimensions

Here is a link to a post by Nancy on the event.

Stress and us

Don't tell me I didn't warn you, if you walk into our lab sometime and mistake it for a game zone in your neighbourhood. You are indeed in "the" lab. If you came looking for Prof. Prabhu you'll have to return. You'll only find PR vowing to see the end of baali, for having a nice time pawning him. You won't find me around - I'm cloaked and busy creating havoc. Unless, of course, you are the seer KD. Watch your step extremely carefully or you won't know when and how fuchmed's GM hit you. And don't dare venture anywhere near madrazr, jumping all around with a shockwave, unless you are capable of enjoying some real nasty shocks. Well, the team is busy in one of it's two SB sessions per day. SB (short for Stress Buster) sessions are intense 15 minute rounds of bzflag - 3D first person tank battle game.
Hope you didn't start thinking, I'm just goofing off here, doing nothing at all. If it's not already clear, SB sessions are exactly what they are called - Stress Busters. Just to refresh ourselves and get back to work, with greater force. What then, am I doing for the rest of my time?
Mainly I've been developing course content that we have been working on, called Software Tools, Techniques and Practices. I have been working on a session for elementary LaTeX and basic Linux tools. I've also been attending classes of Digital Control and trying to Python-ize the Matlab/Scilab code that the course uses.
But, that's not all. I've helped a guy restore a Joomla site on Day-1. I screwed up a brand new installation of a server with some real skill; then expect to be screwed but get some encouragement with the words, "It was a good learning experience for us." Seen a Debian server upgrade from Etch to Lenny in under 10 minutes. Installed an instance of twiki and struggled to configure it. Helped a Humanities Scholar with LaTeX. Attended a workshop on Instruction Design. Restored Qmail on an old Fedora 3 server. Goofed around in gimp, for a CD cover and a T-shirt design. Chipped in with bits, for mutating Ubuntu into "LivePython". Did a bit of css and javascript tweaking... The list goes on!
Now, don't you think we deserve the SB's? ;)

Setting up Postfix & Mailman (Multiple Domains)

At the end of a meeting, I was only a contact point/person (the guy responsible for X, the guy to be questioned/queried regarding X) for setting up a mail system and mailing lists on the server. But slowly, I ended up being the guy who should set it up. And for a guy, who has only used mailman from the user end and didn't even know what Postfix meant, setting up Postfix and mailman for two different domains, is a challenge (if not anything, more). I struggled quite a bit with it, but finally managed a bare-bones system.
A simple Goo(gle)-search does throw up a hazaar blog posts and how-tos on how to get it done. And that probably is the trouble ;). Hundreds of posts on doing it for a single domain and a handful for doing it for Multiple domains. But, I didn't really find anything comprehensive, if I can say so. This post is a pretty comprehensive on on how to setup Postfix for a single domain (on Debian). I first followed this and got a working Postfix MTA. Then, I set-up a virtual domain on Postfix. The README has it all.
I only had to make a few changes, to add the virtual domain. You just need to add the virtual_alias_domains and add virtual_alias_maps. Here is a glimpse of how our main.cf looks:

myhostname = mail.abc.in
mydomain = abc.in
mydestination = $myhostname, $mydomain, localhost.$mydomain
myorigin = /etc/mailname
virtual_alias_maps =
hash:/etc/postfix/virtual-xyz,
hash:/etc/postfix/virtual-abc,
hash:/var/lib/mailman/data/virtual-mailman
virtual_alias_domains = xyz.in, mail.xyz.in

virtual-xyz and virtual-abc contain the virtual aliases for each domain. Note that Postfix expects hash files and postmap /etc/postfix/virtual-abc needs to be run, each time the file is changed, to keep the hash file in sync with the text file. Also, postfix reload needs to be run, each time changes are made either to main.cf or master.cf.
And now, Mailman. Well the Installation Manual of Mailman, literally has it all. Here is a look at how our mm_cfg.py looks:

DEFAULT_EMAIL_HOST = 'abc.in'
DEFAULT_URL_HOST = 'mail.abc.in'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
POSTFIX_STYLE_VIRTUAL_DOMAINS=['xyz.in']
add_virtualhost('mail.xyz.in', 'xyz.in')
MTA='Postfix'

Sweet and simple. But, we wanted to run lists with the same names on both the domains. This apparently isn't easy (and I didn't get this working). I experimented with multiple mailman instances but that didn't work, because Postfix (the MTA) can't differentiate between the two instances of mailman. The alternative is "probably" to have two instances of Postfix running too. But, that I felt, was like going too far. I settled with one mailman instance and different list names on each of the domains.
All this is pretty straight forward, right? But since I knew nought about MTAs and mailing lists, it took me quite sometime to get all this in place.
[Well, thanks to Shantanu and Vattam for the inputs; and all the people who cared enough to document their experiences with Mailman and Postfix]

Syndicate content