Archive for the ‘Talk’ Category

Mukthi

Friday, March 17th, 2006

Today, I talked at Mukthi 6.03 at M S Ramaiah Institute of Technology.

First of all, M S Ramaiah is a huge campus. So huge that the students actually tell the teachers that they were late for class because they couldn’t find the class, and that’s a fact. I made sure that Srichand, the student who took me inside to the auditorium led me back to the front gate as well, so that I wouldn’t get lost.

The auditorium where the talk was scheduled was in the new building, so it was plush, comfy, and it wasn’t a big auditorium which was perfect. The talk (introduction to Python) went well, the students were alert and interactive (even though the talk was between 5-6 pm) and I was especially happy with the range of questions that came at the end of the talk.

After the talk was over, one of the students announced that Mukthi was originally planned as a 1-day event, but later they made it a 2-day event because I had informed them that I would be available only on 17th to present a talk and not on the 18th. Whoa!

Why won’t I be here on 18th? That’s where my next post comes in.

MCC FOSS Day

Saturday, February 18th, 2006

Yesterday, I talked about Python at the FOSS Day at Mount Carmel College For Women.

I was not able to attend the earlier sessions in the day because my team (at work) is making a release soon and as expected, that means crunch time. I managed to make time for presenting my own talk and attending Shreyas’ talk (who spoke after me).

Before I started my talk, Surjo warned me to make my talk as non-technical as possible. I was informed that some of the earlier talks had not been well received by the audience since it was “too technical”. That reminded me of Guy Kawasaki’s notes from a Stevenote where he says it helps that Steve has a beautiful operating system to show off, and for me, it helps that I have a beautiful language to show off, heh.

Earlier in the day, I had reminded myself of Simon’s notes on public speaking where he makes two good suggestions:

  • Show, don’t tell
  • Never, ever put up a whole slide full of code

Following this advice, I had stripped down the content of my presentation (the same presentation that I have used earlier for beginner Python talks) to the bare minimum.

The mistake in my last talk at foss.in was that I had made the slides too detailed and I suffered by trying to “stick to the slides”. Since I had avoided that this time, I had a free hand in what I spoke and actually used the slides for what they were meant - a reminder of what topics to talk about and not a replacement for the speaker. As a result, my talk was better than I anticipated.

Since I was asked to try to make the talk non-technical and I had also perceived the audience to have a short attention span, I decided to make the talk more about interaction rather than about Python. Most of them knew about C, so I followed the principle of “always start from the known to the unknown” and kept comparing C to Python and that helped to keep them interested. I knew the talk was going well when I compared their 6-line version of Hello World in C to 1 line in Python, and when I demoed some simple statements and asked them “I just ran a program, but where’s the semicolon?” - that surprised them and they started clapping. From there on, it was all about keeping them enthused.

Me at MCC FOSS Day

I asked them if they liked cricketers or film stars, and they gave an overwhelming response that cricketers were preferred. So, I wrote a Python list and added names of cricketers they liked (Irfan Pathan is popular indeed) and asked them how they would get the second and third cricketers names in a C array and compared that with slicing in Python and that received cheers as well.

One of the few mistakes I did was waste a lot of time in the last part of my talk trying to download FeedParser to demonstrate how to use it.

After the talk was over, I received some good feedback as well as questions, which is always a good sign. It’s good to know that I’m improving my speaking skills. I’ve come a long way from a kid who thought thrice before standing up in class.

Interestingly, this has been my 10th talk on stage.

foss.in day 2

Wednesday, November 30th, 2005

Today morning, the first session was a Linux Kernel roadmap by Jonathan Corbet. Although I’ve never been a kernel-level guy, the talk was interesting and he clearly explained how features have been added and improved over the various versions, and how the development process has improved and become more “professional.”

Jonathan Corbet

Then, it was my turn to talk and I talked about TurboGears. The talk went pretty good and it was well-attended which made me quite happy even though I had some tough competition, heh.

TurboGears Talk TurboGears Talk TurboGears Talk

I did make two mistakes. First was that I got worried about the time I had to finish the talk, and second, I concentrated too much on the slides. Whenever I have presented well (which has been most of the time, thankfully), I tend to leave slides as guidance for the audience, and have my thoughts free-flowing enough to be coherent and entertaining. Well, I don’t think I’ll be making these mistakes again. However, I did get good feedback about the talk from various people, and a good number of questions after the talk, which is always a good sign. For those who couldn’t attend, my TurboGears slides are online.

And one more thing … my book’s website byteofpython.info is now running on TurboGears! This is only the second public website ever running TurboGears after diggdot.us.

Then, I attended Gopal_V’s talk on programming in the Mozilla platform. He gave a very detailed approach to creating Mozilla applications and how to go about things. I must get the slides from him later, but it shouldn’t be a problem grabbing hold of him since he works in the same floor as me at Y! His slides are online.

Gopal on programming Mozilla

I was on my way to the OpenLaszlo talk, but took a peak in the Ruby on Rails tutorial. Does Ruby on Rails really need the CREATE TABLE SQL statements to be written by hand? …. I think I prefer the SQLObject approach of having all the database-schema in one place as simple Python classes instead of having separate database creation and database manipulation (ActiveRecord) parts.. Update: The new RoR migrations feature is simply brilliant. Thanks to Mark Ramm for the tip.

Other than that, Rails looked cool. The directory structure created by rails as well as the test-driven nature was good.

Then, I got into the OpenLaszlo talk by Nirav Mehta. I had seen the OpenLaszlo demos before and used to follow Oliver Steele’s blog, but I never got around to writing anything with it. Nirav kept the audience engaged and showed off some eye candy stuff that OpenLaszlo provides from images to animation. Somebody in the audience asked him to put audio as well, but unfortunately, he didn’t have any mp3s.

Then, my friends and myself headed to the food court and then went around the FOSS Expo section. The Sun Microsystems booth was the best one and they showcased real open source projects such as Belenix (the OpenSolaris LiveCD) and NetBeans. I got a demo of OpenSolaris’ DTrace functionality and it was pretty impressive.

Food Court

Sadly, the other stalls like the Google and Yahoo! booths didn’t showcase any open source projects at all! When Google has open sourced many projects and Yahoo! has contributed open source stuff such as the Alternative PHP Cache, why can’t they show it off and demonstrate they too are part of the community (and invite people to join the company), which I thought was the point behind the stalls…

Yahoo! stall at foss.in

Then, I saw Pramode in the Phoenix stall and it seems people are showing interest in Phoenix which was good to hear. Nearby, Anush and Tejas were in the Python stall and trying to entice people to talk about Python, heh.

Soon, we were back in the Intel hall for Jaya Kumar’s talk on GPL and non-GPL code interaction in the Linux kernel. He stressed that binary-only kernel driver modules are not a good idea and his explanation was pretty simple - it screws users on other architectures and users using different distro-compiler-etc. combinations. Another point is that they are not respecting the people who wrote the Linux kernel. He quoted Linus Torvalds saying it has to be a two-way street, if somebody wants to write something using the Linux kernel, they have to contribute back as well. Jaya Kumar was over-shooting his time slot but he had a lot of interesting examples and incidents to talk about. I think he had more than 100 (sic) slides in his presentation. Outside the hall, Jaya Kumar and Harald Welte were mobbed and they had a good time interacting with others.

Jaya Kumar and Harald Welte Jaya Kumar and Harald Welte

Then, I attended the “FOSS in Education” BoF. Philip, Manish and Praveen were also there. The discussion involved quite a number of issues and Praveen has added a nice page in the FCI wiki regarding the discussion. The focus was mainly in creating awareness, and getting students interested, at the high school level. The emphasis shouldn’t be in simply using open source but stressing the points on why open source is good for everybody, and how the community is the core strength.

FOSS in Education BoF

Phew. As you can gather, it was a long day but an exciting, educative and interesting one.

I was looking at planet.foss.in and hoping to look for any insights from the many talks that I missed today (there are 6 tracks running in parallel!), but it seems very few people write such long posts as dumb me!

PESIT FOSS Day

Tuesday, November 29th, 2005

Last Thursday (24th November, 2005), there was a FOSS Day at PESIT, my alma mater.

Typically, I managed to leave office and reach PESIT at 4.10 when I was supposed to be there at 4. The venue had shifted from the hall in the “new” building to the MCA seminar hall, because of confusion on who had booked the original hall or rather who gets to use it.

When I entered the MCA hall, there were quite less number of students, but they slowly started trickling in and finally filled up the place. I met one of my teachers (after 2 years) and he still remembers me by name. That was cool.

The first talk was by Tejas on ‘Why FOSS?’ where he gave the “free as in freedom, not free as in beer” speech. I don’t think there has ever been a FOSS introductory talk without that phrase. Then, he dispelled some FUD on FOSS. Yes, open source software does not necessarily mean free software but the vice versa is true.

Next was Anush talking on FOSS development.

Tejas Anush

Then, it was my turn to give my usual ‘Slither Away with Python’ talk. This must be my fifth or sixth Python intro talk that I have given :-).

I was worried that my coughing would affect the talk, but Vicks VapoRub came to the rescue. Man, that stuff is powerful. Anyway, I digress…

It’s fun to introduce a language like python to students who know only C/C++. The first thing that amazes them is that you can type at the interpreter prompt and gives back results immediately, no edit-compile-run cycles. One of the evergreen examples is the swapping. I asked them on the algorithm we learn on how to swap variables in C and they promptly gave me the function that uses pointers to achieve the same and I said ‘This is how you do it in Python’ and typed b, a = a, b. Of course, you can do that in almost any modern interpreted language these days, but they didn’t know that, heh. One of the cool things that is specific in python is the slicing such as a[:4] to get the first 4 characters of a string and the for..in loop, which the audience was impressed with.

Audience at PESIT FOSS Day

Shreyas was next. He was my classmate, I was meeting after a long time. He was supposed to speak on debugging. Although, he had a 17″ PowerBook with him (with a “Suse Linux inside” logo, although he was still using Mac OS X :-P), he didn’t have any source code to demonstrate the talk and there was no connectivity at college.

FOSS Projects

He did talk about the importance of real world skills and how learning to read code is one of the most important skills that a programmer needs to learn. He gave some examples from his own experience. One of the examples was how he was working on some OpenOffice bug along with Michael Meeks and Miguel de Icaza. He started working on the problem while these guys went out for a break and when they returned, they solved the problem in a jiffy. He asked “How did you guys solve this so fast?” assuming he was pretty smart compared to them (no comments there from me). They said “I had seen the code before.” There you go. Simple and straightforward answer, but a lot to understand from that. The students were quite inspired by his talk.

Shreyas speaking on Real World Skills

This was followed by Praveen speaking on the education software initiative.

Atul was late for his slot. Unfortunately, quite a few students left during this gap. Well, it was their loss, because Atul’s talk was thought-provoking and he really made the students feel that they can do something innovative and they can do it now. He gave many examples of students such as Kalyan, Shreyas and even me (okay, I admit it, I was surprised to be part of that list).

Chitnis

Two of his slides said “There are two times you can innovate. One is when you are a student. The other is when you retire.” …. I hope that’s not an absolute statement, because that means there’s no hope left for me! However, it is true that I have not been able to do so many things that I wanted to do, compared to my college days when I had done a lot more.

Two times in life when you can innovate Two times in life when you can innovate

Overall, the day was successful and it seems quite a number of students have got enthu to do stuff now.

Note: Tejas and Praveen have entries regarding the day on their blogs.

Journey to Trichur

Thursday, February 24th, 2005

I am giving a talk on Python tomorrow at the Renaissance 2005 festival at Government Engineering College, Trichur, Kerala, India.

Renaissance 2005 is a festival about Free and Open Source Software (FOSS) - they have many talks, seminars and competitions planned for the 3 days. As they say in their website:

It is time to acknowledge the Renaissance, FOSS is effectuating in the software field all over the world. It is time to appreciate its sheer power to obliterate the digital divide in our society by making the software available to all user class. The event will enhance the gist and gravity of software freedom and how each can benefit from it.

Also, see the event brochure and the list of talks.

I have to board the train in exactly 2 hours and I am still in office… gotta run!

I’m talking at LB04

Thursday, November 25th, 2004

Yep, that’s right. I’ll be taking over the stage at LB04 to convert Perl/C++/Java programmers into Python programmers under an hour ;)

The talk is titled ‘Python for Programmers’ and a short blurb follows:

Python for Programmers

This talk/tutorial is designed to introduce Python to experienced programmers and get them started on it quickly.

First, the necessary backgrounder stuff on Python is introduced. Then, the main features and virtues of Python are introduced, highlighting the factors that make it different from other interpreted languages.

I always take an example-oriented approach to teaching the language (just like in my book at byteofpython.info) and using examples, I intend to give a quick review of important topics such as the syntax, the looping statements, functions and OOPs, the built-in data structures, exception handling and the standard library.

The examples give enough information to make it easy to understand but also such that the audience does not have to consume too much information in a limited time.

This will be followed by some real world examples of some interesting areas where Python is easy to use such as wxPython for GUI making, Twisted library for networking and the IronPython and Jython software for .NET/Mono and Java users respectively.

A brief outline is mentioned below:

  1. Python for Advanced Programmers who know Perl, C++,etc.
    • What’s unique about Python
    • Examples on looping, functions, classes
    • Built-in data structures
    • List comprehensions, Exception handling
    • Sampler on advanced stuff like metaprogramming
    • Gotchas
  2. Twisted for Networking
    • Introduction
    • Example, say a blog reader or ssh client
  3. wxPython for GUI
    • For building cross-platform GUI apps
  4. IronPython for .Net/Mono-ers and Jython for Java-ers
    • Interoperate with .NET/Mono and Java

See you there!