Installation script for Tamil Text to speech System

The Tamil TTS system provided by IITM and SSN College of Engineering, has a lengthy installation process.

I have written them here.

It may not be easy to follow and you may find some issues. To make the life easier, I have created shell script, to automate the entire process.

Here it is –

System requirements:

Ubuntu 16.04

How to execute:

git clone

cd tamil-tts-install

Edit the file,

Fill the following details.

DOWNLOAD_PATH=/home/ubuntu/tts/packages #to download the required packages

COMPILE_PATH=/home/ubuntu/tts/compiled # to place the compiled files and folders

Register here and get a username and password



Then, execute the file as


How to convert a text to audio?

export FESTDIR=/usr

cd COMPLIE_PATH ssn_hts_demo/scripts/complete “தமிழ் வாழ்க” linux

This will convert the text and store as wav in


you can play it with any audio player.

The full details of what is on the compile process is explained here.

To hear a demo on how the tamil TTS system sounds, click here

Thanks for IITM Team – Prof Hema  and Anju for their great support on helping us to get installed the tamil TTS system.



How to compile Tamil TTS engine from source?

IITMadras and SSN College of Engineering team have released a Open Source Text to speech conversion engine for Tamil and other indian languages.

Check their efforts at

In this blog post, let us see how can we compile and install the tamil tts system in a ubuntu 16.04 machine.


Go to this link

It will ask for Signup.
Register by giving username and email address.

Soon, you will get an email with the password to login.

If you dont’ get any password, send an email to


Once you got a password, login to the same link.

Now, you will get two select drop down lists.

Select Language = Tamil
Select Voice type = HTS-2.3

Click “Agree & Download”

It will download a file ssn_hts_demo_tamil_male.tgz


gunzip ssn_hts_demo_tamil_male.tgz
tar xvf ssn_hts_demo_tamil_male.tar

cd ssn_hts_demo

Read the README.txt

as step 1, it says as
Step 1: Configure the folder
./configure –with-fest-search-path=/$FESTDIR/examples/ –with-sptk-search-path=/usr/local/SPTK/bin/ –with-hts-search-path=/usr/local/HTS-2.2beta/bin/ –with-hts-engine-search-path=/PATH TO hts_engine_API-1.06/bin/


It requires, following software

1. Festival – we can install it using apt-get
3. HTS
4. hts_engine_api

2,3, and 4 should be downloaded from respective sites as source and they should be compiled.


1. To install festival, run the below command

sudo apt-get install festival


Install few required packages

sudo wget festival libx11-dev build-essential g++-4.7 csh gawk bc sox tcsh default-jre -y

2. Download SPTK source from


tar xvzf SPTK-3.10.tar.gz

cd SPTK-3.10
./configure –prefix=/home/ubuntu/tts/sptk
make install



Download from


mkdir hts-htk
cd hts-htk

tar xvjf HTS-2.3_for_HTK-3.4.1.tar.bz2

The INSTALL file says few things to do.

let us do them

Download HTK from

it requires to register with username, email, organization and address.
Once registered, you will get password in mail.

using that you can download the packages


wget –user=htkuserchennai –password=sgqY=t=M


download HDecode from

wget –user=htkuserchennai –password=sgqY=t=M

tar -zxvf HTK-3.4.1.tar.gz
tar -zxvf HDecode-3.4.1.tar.gz

cd htk

patch -p1 -d . < ../hts-htk/HTS-2.3_for_HTK-3.4.1.patch

./configure –prefix=/home/ubuntu/tts/hts



Now, I got the following error.


(cd HTKLib && make HTKLib.a) \
|| case “” in *k*) fail=yes;; *) exit 1;; esac;
make[1]: Entering directory ‘/home/ubuntu/htk/HTKLib’
gcc -Wall -Wno-switch -g -O2 -I. -DPHNALG -c -o HGraf.o HGraf.c
HGraf.c:118:77: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
<builtin>: recipe for target ‘HGraf.o’ failed
make[1]: *** [HGraf.o] Error 1
make[1]: Leaving directory ‘/home/ubuntu/htk/HTKLib’
Makefile:141: recipe for target ‘HTKLib/HTKLib.a’ failed
make: *** [HTKLib/HTKLib.a] Error 1

To solve this, run the below command

sudo apt-get install libx11-dev

Thanks to the s.t.o community for the answer.


run make again


Got another error as below.


gcc -Wall -Wno-switch -g -O2 -I. -DPHNALG -c -o esignal.o esignal.c
In file included from /usr/include/string.h:630:0,
from esignal.h:34,
from esignal.c:29:
esignal.c: In function ‘ReadHeader’:
esignal.c:974:29: error: ‘ARCH’ undeclared (first use in this function)
if (strcmp(architecture, ARCH) == 0) /* native architecture */
esignal.c:974:29: note: each undeclared identifier is reported only once for each function it appears in
esignal.c: In function ‘WriteHeader’:
esignal.c:1184:25: error: ‘ARCH’ undeclared (first use in this function)
architecture = ARCH;
esignal.c: In function ‘GetLine’:
esignal.c:1760:4: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
fgets(buf, len+1, file);
esignal.c: In function ‘GetLong’:
esignal.c:1808:4: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
fgets(buf, len+1, file);
<builtin>: recipe for target ‘esignal.o’ failed
make[1]: *** [esignal.o] Error 1
make[1]: Leaving directory ‘/home/ubuntu/htk/HTKLib’
Makefile:141: recipe for target ‘HTKLib/HTKLib.a’ failed
make: *** [HTKLib/HTKLib.a] Error 1

Again s.t.o helped.

Run the below commands

sudo apt-get install g++-4.7
export CC=gcc-4.7 CXX=g++-4.7
./configure CFLAGS=”-DARCH=linux” –prefix=/home/ubuntu/tts/hts
make install


Next is hts_engine_API

download from


tar xvzf hts_engine_API-1.10.tar.gz
cd hts_engine_API-1.10
./configure –prefix=/home/ubuntu/tts/hts_engine_api
make install


Then, few more commands.

cd /usr/share/doc/festival/examples/
sudo gunzip dumpfeats.gz

sudo gunzip
sudo chmod a+rx /usr/share/doc/festival/examples/dumpfeats

Thats all. We install all the dependancies of ssn_hts_demo.
Let us install it now.

cd ssn_hts_demo

./configure –with-fest-search-path=/usr/share/doc/festival/examples –with-sptk-search-path=/home/ubuntu/tts/sptk/bin/ –with-hts-search-path=/home/ubuntu/tts/hts/bin/ –with-hts-engine-search-path=/home/ubuntu/tts/hts_engine_api/bin/

sudo mv /usr/share/festival/radio_phones.scm /usr/share/festival/radio_phones.scm-old

sudo cp ~/ssn_hts_demo/radio_phones.scm /usr/share/festival/

sudo cp ~/ssn_hts_demo/ /usr/share/perl5/File/

gcc scripts/tamil_trans.c -o scripts/tamil_trans


Thats all. Done with all the compilation works.

Let us invoke the command to make the tamil text to audio.

export FESTDIR=/usr
ssn_hts_demo/scripts/complete “தமிழ் வாழ்க” linux

This will make audio file as ssn_hts_demo/wav/1.wav

I can now play the file with any audio player and hear a good voice of the text in tamil.


I tried with a little huge text.

here is the demo

The text I gave is

என் சரித்திரம், உ. வே. சாமிநாதையர் எழுதிய தன்வரலாறு ஆகும். இதில் 1855ஆம் ஆண்டு முதல் 1898ஆம் ஆண்டு வரை அவருடைய வாழ்வில் நிகழ்ந்தவை பதியப்பட்டுள்ளன. இதில் அவர் தமிழ் கற்ற வரலாறு, தமிழ் நூல்களைப் பதிப்பித்த வரலாறும் பதிவுசெய்யப்பட்டு உள்ளன.தமிழ்த்தாத்தா டாக்டர் உ.வே.சா. அவர்கள் எழுதிய தன் வரலாற்று நூல் இது. இந்நூலைக் கற்றால் ‘பெருக்கத்து வேண்டும் பணிதல்’ என்ற இலக்கணத்துக்கு இதுதான் சரியான இலக்கியம் என்ற உண்மை தெளிவாகும். பேதங்களுக்கு அப்பாற்பட்ட போதம்தான் தமிழ்ஞானம் என்பது இந்நூலின் தொகுமொத்தப் பொருள் என்றால் அது மிகையாகாது. ’நன்றிக்கு வித்தாகும் நல்லொழுக்கம்’ என்ற தொடரை விளக்குவதற்காக இவர் மண்ணுலகில் பிறந்தார் என்று கொள்ள வேண்டி இருக்கிறது. டாக்டர் உ.வே.சா. அவர்களின் என் சரித்திரமும் மகாத்மா காந்திஜி அவர்களின் சத்திய சோதனையும் ஒரேதரம் உடையவை. இவற்றின் ஒவ்வோரெழுத்தும் வாய்மை நிரம்பிய வைர எழுத்துக்கள்.என் சரித்திரம் கற்றால் தமிழார்வம் வரும். வந்த தமிழார்வம் வளரும். பத்துப்பாட்டும், எட்டுத்தொகையுள் ஐந்தும், மூன்று பெரும் காப்பியங்களும், ஐம்பதிற்கும் மேற்பட்ட பிற இலக்கியங்களும், இலக்கண நூல்களும் நின்று நிலவுவதற்குக் காரணம், டாக்டர் உ.வே.சா. அவர்களின் அயரா உழைப்பே என்பதை, இந்த மன்பதை அறியும். அந்த நூல்களைக் கற்கும் முன், ’என் சரித்திரம்’ என்னும் இந்த நூலைக் கற்க வேண்டும். இதனைக் கற்றால் தமிழ் நூல்களை அச்சுக்குக் கொண்டுவர அவர்பட்ட இன்னல்கள் புரியும்.1. எங்கள் ஊர்சற்றேறக்குறைய இருநூறு வருஷங்களுக்கு முன்பு தஞ்சாவூர் ஸமஸ்தானத்தை ஆண்டு வந்த அரசர் ஒருவர் தம்முடைய பரிவாரங்களுடன் நாடு முழுவதையும் சுற்றிப் பார்க்கும் பொருட்டு ஒருமுறை தஞ்சாவூரிலிருந்து புறப்பட்டார். அங்கங்கே உள்ள இயற்கைக் காட்சிகளை யெல்லாம் கண்டு களித்தும், ஸ்தலங்களைத் தரிசித்துக்கொண்டும் சென்றார். இடையில், தஞ்சைக்குக் கிழக்கே பதினைந்து மைல் தூரத்திலுள்ள பாபநாசத்திற்கு அருகில் ஓரிடத்தில் தங்கினார். வழக்கம்போல் அங்கே போஜனம் முடித்துக்கொண்ட பிறகு தாம்பூலம் போட்டுக்கொண்டு சிறிது நேரம் சிரம பரிகாரம் செய்திருந்தார்; தம்முடன் வந்தவர்களோடு பேசிக்கொண்டு பொழுதுபோக்குகையில் பேச்சுக்கிடையே அன்று ஏகாதசி யென்று தெரிய வந்தது. அரசர் ஏகாதசியன்று ஒரு வேளை மாத்திரம் உணவுகொள்ளும் விரதமுடையவர்; விரத தினத்தன்று தாம்பூலம் தரித்துக்கொள்வதும் வழக்கமில்லை. அப்படியிருக்க, அவர் ஏகாதசி யென்று தெரியாமல் அன்று தாம்பூலம் தரித்துக்கொண்டார். தஞ்சாவூராக இருந்தால் அரண்மனை ஜோதிஷர் ஒவ்வொரு நாளும் காலையில் வந்து அன்றன்று திதி, வார, நக்ஷத்திர, யோக, கரண விசேக்ஷங்கள் இன்னவையென்று பஞ்சாங்கத்திலிருந்து வாசித்துச் சொல்வார். அதற்காகவே அவருக்கு மான்யங்களும் இருந்தன.அரசருடைய பிரயாணத்தில் ஜோதிஷர் உடன் வரவில்லை. அதனால் ஏகாதசியை அரசர் தெரிந்துகொள்ள முடியவில்லை. எதிர்பாராதபடி விரதத்திற்கு ஒரு பங்கம் நேர்ந்ததைப் பற்றி வருந்திய அரசர் அதற்கு என்ன பரிகாரம் செய்யலாமென்று சில பெரியோர்களைக் கேட்கத் தொடங்கினர்.(மேலும் படிக்க…)


Here the audio now.



Yes. This is the best open source text to speech engine for tamil, so far.

Tons of thanks for IITM team and SSN College of Engineering for making the TTS engine and releasing as open source and for free.

Working on making the installation easier with a shell script.

Will share once done.



Solution for passwd: Module is unknown issue in ubuntu

I have a AWS instance with Ubuntu installed.

When I add a new user, or try to change the password, I got the following error.

# passwd
passwd: Module is unknown
passwd: password unchanged


Let us check the auth.log for any issues.

root@ip-172-31-9-242:~# tail -n 2 /var/log/auth.log
Jun  3 14:06:01 ip-172-31-9-242 CRON[31435]: pam_unix(cron:session): session closed for user root
Jun  3 14:08:01 ip-172-31-9-242 CRON[31490]: PAM unable to dlopen( /lib/security/ cannot open shared object file: No such file or directory


It means that it misses the pam_cracklib. Let us search for it.

root@ip-172-31-9-242:~# apt-cache search pam | grep crack
libpam-cracklib – PAM module to enable cracklib support


Good. Let us try installing it.

root@ip-172-31-9-242:~# apt-get install libpam-cracklib

Let us try now to change the password.


Great. It works now.


Lesson : Look for the log files, before googling.


How to run apache and ngnix in same server?

I wanted to run a rails application and wordpress in a same amazon ec2 server.

Rails app on
wordpress blog on

Added a CNAME to in the DNS settings.

Enabled port 22,80,443,3000 on amazon ec2

To enable port 80

Login to and goto EC-2
Go to the Security Group settings in the left hand navigation
Find the Security Group that your instance is apart of
Click on Inbound Rules
Use the drop down and add HTTP (port 80)
Click Apply and enjoy

Rails application and WordPress in LAMP are already running in the server.

Here is the ngnix configuration:

File: /etc/nginx/sites-enabled/example

upstream unicorn {
server unix:/tmp/unicorn.nabthat.sock fail_timeout=0;

server {
listen 80;

root /home/ubuntu/apps/nabthat/current/public;

return 301 https://$host$request_uri;

if ($http_user_agent ~ “Purebot|Lipperhey|MaMa CaSpEr|libwww-perl|Mail.Ru|gold crawler” ) {
return 403;

location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;

try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;

error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;

server {
listen 443 ssl default_server;
ssl on;

root /home/ubuntu/apps/nabthat/current/public;

ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;

try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;

error_log    /var/log/nginx/ debug;

error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;

ssl_session_cache  builtin:1000  shared:SSL:10m;


The above configuration makes nginx to listen on port 80 and 443

Now, let us add the configuration for wordpress blog served by LAMP on port 3000

File : /etc/nginx/conf.d/blog

server {
listen 80;
location / {
proxy_set_header Host $host;


To run apache on port 3000, change the file /etc/apache2/ports.conf

File: /etc/apache2/ports.conf

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
Listen 3000


File : /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:3000>

ServerAdmin webmaster@localhost
DocumentRoot /var/www

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www>
#Options -Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all



Now, the rails app is running fine on
but, if we access it is not redirecting to wordpress blog.
it redirects to same rails application.

To debug this, I stopped the ngnix server.

sudo /etc/init.d/nginx stop

Now, only apache is running.

let us access it using console browser links, inside the server itself.

links http://localhost:3000

got the the following error.

can not connect.

To test the internals, tried with wget

wget http://localhost:3000
–2014-02-20 10:35:03–  http://localhost:3000/
Resolving localhost (localhost)…
Connecting to localhost (localhost)||:3000… connected.
HTTP request sent, awaiting response… 301 Moved Permanently
Location: http://localhost/ [following]
–2014-02-20 10:35:03–  http://localhost/
Connecting to localhost (localhost)||:80… failed: Connection refused.
Resolving localhost (localhost)…
Connecting to localhost (localhost)||:80… failed: Connection refused.

Got this weired error.

I dont know how the port 3000 is automaticaly redireced to port 80.

After a deep research, found the following.

LAMP is running wordpress.

In its setting->general, the WordPress Address (URL) and Site Address (URL) are defined as

When the browser contacts port 3000, it reaches only, which means port 80.
Hence, the 301 redirect happens.

To solve this, we have to make WordPress Address (URL) and Site Address (URL) as

To change the Site Address of an existing wordpress blog,
add the following entries in wp-settings.php


That’s all.

Now, if you access
the wordpress blog works fine.

Thus, I managed to run rails app ( and wordpress blog( in a same amazon ec2 server.

Ubuntu Release Party at Chennai

An Ubuntu release party and the Introduction to FOSS classes to be held in

Madras Institute Of Technology, Chrompet, Chennai

on Saturday, 21st July from 1pm to 4pm.

The agenda of the day:

  • Inspirational talk on FOSS and Features on Ubuntu  by Mr.Ramadoss of Yavarukkumana Software foundation
  • Release of Ubuntu 12.04.
  • Installation Demo.
  • Introduction to FOSS Classes.

The FOSS classes to be conducted by Mr.Ramadoss are to continue throughout, every month on the third  Saturday from 4 to 5 pm.

It will involve a 20 minute session of brainstorming wherein they will share their experiences. The highlight of these classes is that the students are mentored to do projects on various areas in FOSS, with a chance to release an Open source application, certificates and internship at his organization.

We hope this initiative is successful and it is well received. We are looking forward to hear from you.

Entry Free. All are Welcome

Kaniyam – 07

Kaniyam – is a monthly E Magazine in Tamil Langiage for Free Open Source Software.

We are happy to release the seventh issue of Kaniyam.

Now, Kaniyam reaches all the Ubuntu users in the world via Ubuntu Software Center.
Thanks for all the contributors who make Kaniyam running.

Kaniyam is released under creative commons license.
You can
Share with anyone.
Modify and publish.
Use for commercial purpose.

But, you have to attribute the original article, author name and
You have to give the same rights to all. Have to release in the same creative commons license.

We have a “Ubuntu Release Party” at chennai on 21 July 2012 at MIT Chrompet. All are welcome.

This issue has the following contents in Tamil:

  • Getting Started with Ubuntu 12.04 – Book Review
  • Clipgrab – Download youtube videos
  • apt-fast – download applications faster
  • How to use awk?
  • Free software in the Business World
  • Ubuntu 12.04 Release Party in Chennai
  • Network monitor – NetHogs
  • How to make Ubuntu looks like Mac OSX
  • pySioGame – Games for Kids
  • How to Dual Boot Ubuntu 12.04 and Windows 7
  • Introduction to Python
  • Shri/Sri – A Discussion
  • An Interview with Fedora Science – Amit Saha
  • How to use Indian Rupee Symbol in GNU/Linux?
  • Article Competition

Get your copy at

ILUGC Monthly Meet ( July 14 )

ILUGC Monthly Meet ( July 14 )

Indian Linux Users Group, Chennai [ ILUGC ] is spreading awareness on Free Open Source Software in Chennai since Jan 1998. We meet regularly on every month second saturday with technical talks and discussions on various Free software.
Check our website for further details.

Join our mailing list at

We have our July 2012 Meet.

Check the details below.

ILUGC Monthly Meet (July 14 th):-

Time : Sat July 14, 2012 (3.00 – 5.30 PM)

Venue: Classroom No 3,
Areo Space Engineering,
Near Gajendra Circle,
IIT Madras.

Link for the Map:


Topic: Preparing open office slide show presentation on “Thanjai Periya Koil”

The talk is on collecting information on “Thanjai Periya Koil”, adding the background sound  by cutting the music for ‘n’ number of chunks using audacity, adding them to appropriate slide, adding custom animation and rehearse the slide show.

Duration: around 15 to 20 minutes.

About the speaker:  Aadithya Thyagarjan is studying 5th standard at velammal vidyasharam,surapet chennai. Son of Thyagarajan Shanmugam.


Topic : Programming with libpcap

Description : libpcap is famous library used to capture packets going through a network interface. It is the core part of ‘tcpdump’ network utility. Also, it has been used by many famous applications like ‘Wireshark’, ‘Snort’, ‘Scapy’ etc.,

In this talk we will explore about howto write an application using libpcap and the various use of filters available in libpcap to capture specific packets.

Time : 30 mins


About Speaker:
Mohan, mohan43u <at>, A linux programmer who is trying to fix his day-to-day issues by writing code.


RT Linux

RTLinux is a hard real-time OS (RTOS) that is generally used for executing the transactions in seconds.

Duration: 30-45 minutes.

Links to Read:
1) (Rajesh contributed this Article)

About the Speaker:
I am A. Rajesh, Pursuing my Bachelor’s degree in Electrical and Electronics Engineering at St. Joseph’s College of Engineering.  I am a final year student and had done a course in Embedded Systems. Certified by Accel, “Embedded Systems Designer”.  I am intrested in bringing out projects in Embedded, OS and Networks. And spend most of my time in finding out new things  and intrested in contributing to Wikipedia.

Email :  cityofdhavud AT


Discussion about Software Freedom Day 2012 celebrations.

General group discussions on any queries, events etc.
CDs/DVDs can be shared on prior request.
Announce this to all your friends, social network sites etc.

All are welcome. Entry Free

What to do after learning Python Programming?

Few months back, My friend Raguvaran, introduced me his brother Murugesan.

Murugesan is a fresher and looking for learning something to get a job.
I suggested him to learn whatever he is interested in.

After some discussions, I suggested him to learn python programming  or linux administration.
He chose python and started learning it.

After some time of learning the basics, he asked me on how to proceed now to become a better python programmer.

Here are the answers for him.

0. Solve these 46 problems:


1. Start writing small programs yourself

You might be coded some snippets when you learn python. Using the knowledge of python, try to write small commandline applications.

Some examples:
1. A simple diary to store all your notes
2. An Address book to store/edit/search/delete address,phone,email of friends
3. Simple financial app to manage the income/expense
4. create all these using text file as storage and extend to use mysql as storage
5. twitter client in commandline
6. script to send email to all mail ids in a text file
7. webscrap a site automate its operations
8. A simple RSS reader in commandline
9. process access.log of apache and extract details from it.

learn PyGTK or PyQT
Do all the applications you did as commandline apps, using GUI

once you are done with these basic simple applications, you can start exploring on the existing applications. Read the code and learn the advanced techniques like unit testing, Object oriented programming, network programing etc.

2. Use GNU/Linux

All GNU/Linux distributions like ubuntu/fedora/OpenSuse use python extensively.
You will use lot of python applications and you can see their code to learn from them.
Learn to use their package managers to install various packages with source.
You will be using many software and you will get ideas for improving them.

Join a local Linux Users group to meet awesome people with tons of learning.

Indian Linux Users Group – Chennai [ ]

3.  contribute to any open source project

As you start to use linux and python applications, you will get to know the existing bugs and required enhancements. There are tons of open source applications looking for contributions.

You can choose any one.
Look for its website.
Join the user and dev mailing list and read the archives.
Discuss with the developers for contributing.

There will be a issue tracker for all projects.
Check for bitsize/small bugs to fix them yourself

check this links too

You can see the projects I contribute here.

4. Learn IRC

Learn to use Internet Relay Chat
Join the project’s IRC channel and meet the developers.
They will help you to understand their code.
You can ask all your doubts to them regarding the project.

5. Start a Blog

Start a blog in or
start writing all your learnings.
Write daily on what ever you do technically.
Write what you learn, what you discuss in mailinglist/irc etc

6. Learn version Control System

Version control system like subverison or git is very important to contribute your code to any project.
Read the book

7. Join the User group and meet people

Python has users group everywhere.
Search net and find your local python suer group.
Join the list and participate in the meetings.
Ask questions and try to answer for existing questions.

ChennaiPy :
Banglore Py:

8. Read books

Read good python books and explore more.
Tons of books are available in internet for free.


read here

9. Teach Python

start to teach python to your friends.
Reach the training centers near you to teach.
else, create video tutorials and host in
You can find some of my videos here

The more you do programming, the more you will get skills.
Start contributing to any open source applications
Create new applications and share them in or

10. Get projects from surroundings

Look your environment for projects. You can discuss with a medical merchant to do a billing  application.
You can contact any photographer to automate his tasks on photography.
Talk to any Hospital / Shop / Startup / etc. You will project to do.
You can charge for doing the projects for them.

It may lead to start your own company too.

Reply here with your activities like blog and irc nick name.
Will follow your blog and give you suggestions whenever required.

Once you started to do all these, forget about the job market.
Update your resume with all these activities.
Provide your blog address, details about the projects you are contributing.
It will lead you to a job you wont feel as a job.

Waiting to see your contributions.


This post can be matched with any programming language. Not only Python.
I dedicate this to all the freshers who are looking for how to start their programming career.

ILUGC Monthly Meet (April 14 th)

Indian Linux Users Group, Chennai [ ILUGC ] is spreading awareness on Free Open Source Software in Chennai since Jan 1998.
We meet regularly on every month second saturday with technical talks and discussions on various Free software.
Check our website for further details.

Join our mailing list at

We have our April 2012 Meet.
Check the details below.

ILUGC Monthly Meet (April 14 th):-

Time : Sat April 14, 2012 (3.00 – 5.30 PM)

Venue: Classroom No 3,
Areo Space Engineering,
Near Gajendra Circle,
IIT Madras.

Link for the Map:


Topic: Dancer – perl web framework

Description: dancer is simple but powerful web application framework in perl.


Duration: 20 minutes

About Speaker: Raman.P [ raamanp AT ]

He is working as DBA in Railways. An ardent user of linux and perl for over a decade.
His blog:


Topic : Snort – Intrusion detection system

Description : Installation of snort. Simple signature creation & using snort to detect the security attacks via intrusion.


Duration : Max 45 to 1 hour

About Speaker : Balasubramaniam Natarajan [ bala150985 AT ]

Bala is an Information Security Engineer. He creates Video tutorials in Tamil and English. You can get them here.


Topic: Giving Back to the Community

Description: Everybody who comes to know about the principles of open source, gets excited about giving back to the community. But, Many of them are not sure about how to contribute in a way that actually adds value to the project and the community. In this talk, I’ll tell about how I started giving back, and how it changed my life.

Duration: 30 min

About Speaker: Sathish Manohar [ design.sathish AT ]

I learned web design/development all by myself because of generous people all around the world who shared their knowledge, through Internet, now I’m reciprocating the favor. I do client work for web design and development. When I’m not working, you can find me cooking or messing with friends.

I create video tutorials in Tamil on various open source technologies. Find them here.


General group discussions on any queries, events etc.
CDs/DVDs can be shared on prior request.
Announce this to all your friends, social network sites etc.

All are welcome. Entry Free

Chennai Unofficial Wikimedia Hackathon Report

Here is the detailed report on the wikimedia hackathon I attended recently.

From: Yuvi Panda <yuvipanda @>

Date: Tue, Mar 27, 2012 at 1:47 PM
Subject: [Wikimediaindia-l] Chennai Unofficial Wikimedia Hackathon Report
To: “Discussion list on Indian language projects of Wikimedia.” <>

The Chennai Unofficial Wikimedia Hackathon Report

Apologies for the delayed email. Work ate me.

TL;DR: 13 completed hacks, including 2 core mediawiki patches, 3
tawiki userscript updates and 2 new deployed tools. It was super
awesome and super productive!

The ‘Unofficial’ Chennai Wikimedia Hackathon

happened on Saturday, March 17 2012 at the Thoughtworks office in
Chennai. It was a one day, 8 hour event focusing on getting people
together to hack on stuff related to all Wikimedia projects – not just
Mediawiki patches.

The event started with us sailing past security reasonably easily, and
getting setup with internet without a glitch. People trickled in and
soon enough we had 21 people in there. Since this was a pure
hackathon, there were no explicit tutorials or presentations. As
people came in, we asked them what technologies/fields they are
familiar with, and picked out an idea for them to work on from the
Ideas List (
This took care of the biggest problem with hackathons with new people
– half the day spent on figuring out what to work on, and when found,
it is completely outside the domain of expertise of the people hacking
on the idea. Talking together with them fast to pick an idea within 5
minutes that they can complete in the day fixed this problem and made
sure people can concentrate on coding for the rest of the day.

People started hacking, and just before lunch we made people come up
and tell us what they were working on. We then broke for lunch and
usual socialization happened over McDonalds burgers and Saravana
Bhavan dosas. Hacking started soon after, and people were
concentrating on getting their hacks done before the demo time. And we
did have quite a few demos!


Here’s a short description of each of the demos, written purely in the
order in which they were presented:

1. Wikiquotes via SMS
By: @MadhuVishy and @YesKarthik

What it does:
Send a person name to a particular number, and you’ll keep getting
back quotes from that person. Works in similar semi-automated fashion
as the DYKBot. Built on AppEngine + Python.

Deployed live! Send SMS ‘@wikiquote Gandhi’ to 9243342000 to test it
out! Has limited data right now, however.

2. API to Rotate Images (Mediawiki Core Patch)
By: Vivek

What it does:
Adds an API method that can arbitrarily rotate images. Think of this
as first step towards being able to rotate any image in commons with a
single button instantly, without having to wait for a bot. Patch was
attached to

It was reviewed on that day itself (Thanks Reedy!). Vivek is now
figuring out how to modify his patch so that it would be accepted into
Mediawiki core. Vivek is also applying to work with Mediawiki for
GSoC, so we will hopefully get a long term contributor 🙂

3. Find list of unique Tamil words in tawiki
By: Shrinivasan T

What it does:
It took the entire tamil wikipedia dump and extracted all unique words
out of it. About 1.3 million unique tamil words were extracted. Has
multiple applications, including a tamil spell checker.

Code and the dataset live on github:

4. Program to help record pronunciations for words in tawikt

What it does:
Simple python program that gives you a word, asks you to pronounce it
and then uploads it to commons for being used in Wiktionary. Makes the
process much more streamlined and faster.

Code available at:
Preliminary testing with his friends shows that easy to record 500
words in half an hour. Is currently blocked on figuring out a way to
properly upload to commons

5. Translation of Gadgets/UserScripts to tawiki
By: SuryaPrakash [[:ta:பயனர்:Surya_Prakash.S.A.]]

What he did:
Surya spent the day translating two gadgets into Tamil, so they can be
used on tawiki. First is the ‘Prove It’ Reference addition tool
( The second
one was the ‘Speed Reader’ extension that formats content into
multiple columns for faster scanning
( Last I
checked, these are available for anyone with only tamil knowledge to
use, so yay!

(He also tried to localize Twinkle for Tamil, couldn’t because of
issues with the laptop he was using.

6. Structured database search over Wikipedia
By: Ashwanth

What it does:
Built a tool that combined DBPedia and Wikipedia to allow you to
search in a semantic way. We almost descended into madness with people
searching for movies with Kamal and movies with Rajni (both provided
accurate results, btw). Amazing search tool that made it super easy to
query information in a natural way.

The code is available at Definitely
would be awesome to see this deployed somewhere, so would be great if
the community could come up with specific ideas on how to make this a
specific cool tool.

7. Photo upload to commons by Email
By: Ganesh

What it does:
Started with building a tool that will let you email a particular
address with pictures + metadata in the body of the page, and it will
be uploaded to commons. This was for the benefit of people with older
outdated phones *cough*Logic*cough* who would like to use their
phone’s camera to contribute to commons, but can not due to technical

He wasn’t able to get that to work during the hackathon – too many
technical issues cropped up. However, he’s *very* definitely
interested in   setting it up, and has made progress towards it. I
hope someone from the community (perhaps people doing WLM?) should be
able to get in touch with him to see if this tool could be developed
further with a specific goal in mind.

8. Lightweight offline Wiki reader
By: Feroze

What it does:
There is a project called qvido
( which was a
‘lightweight’ offline Wiki reader (compared to Kiwix, which is
heavier). It has been abandoned for a while, however. Feroze took the
time to revive the project, figure out how to build it (and wrote
build instructions!) and also fixed a bug so that it can be used to
demo showing offline Wiki navigation. He was able to demo it showing
the Odiya Wikipedia dump offline, with working link navigation.

There exists a git repo ( with the
code + the build instructions. I hope that people interested in
offline projects check this out and see if it can be made useful, and
take this forward.

9. Patches to AssessmentBar
By: gsathya

What it does:
AssessmentBar is a small widget/tool I’m building to make WP India
assessments easier (at the request of User:AshLin. Stay tuned for an
announcement in the next few days). Sathya spent time making the
backend for it more scalable, so the same server can support multiple
projects and concurrent users in a better way. Before that he was
contemplating setting up a hidden Tor node for Wikipedia (he’s a Tor
core contributor) and then playing with data visualizations with WP

There is a pull request (
that I need to merge 🙂

10. Parsing Movie data into a database
By: Arunmozhi (Tecoholic) and Lavanya

What it does:
It scrapes the infoboxes of all movies from whatever category you give
it and stores this into a database. This is harder than it sounds
because parsing wikitext is similar to beating yourself up repeatedly
in the head with a large trout. They managed to figure out a nice way
to extract information from all Indian movie pages, and put it in a
database for programmatic easy access later.

I’ve asked them to put the code up publicly somewhere, and since I
believe Tecoholic is in this mailing list, he’ll reply with the link
🙂 These kinds of data scraping can be used to build very nice tools
that show off how much information Wikipedia has, and perhaps also
help people contribute back by editing information for their favorite
movies. I hope the community comes up with a nice idea to utilize
this, and takes this project forward to its ultimate destiny: A super
sexy IMDB type site for Indian Movies with data sourced from Wikipedia
(I can dream :D)

11. Random Good WP India article tool
By: Shakti and Sharath

What it does:
It is a simple tool that shows you one B, A, GA or FA article every
time you go there. The idea is to provide a usable service for people
who want to accumulate lots of knowledge by randomly reading stuff,
but only want good stuff (so stubs, etc are filtered out (unlike
Special:Random)). I’ll also note that neither of them had worked with
any web service before the hackathon, nor with JSON, nor with the
mediawiki API, yet were able to build and deploy this tool within the
day. /me gives a virtual imaginary barnstar to either of them

It is currently deployed at Everytime you hit
that link, you’ll get an article about India that the community has
deemed ‘good’. The source code is available
( They are eager to
do more hacks such as these, and I’m hoping that the community will
find enough technical cool things for these enthusiastic volunteers to
work on

12. Fix bugs on tawiki ShortURL gadget
By: Bharath

What it does:
The short url service used in tawiki ( is shown in the wiki
via a gadget. It is not the most user friendly gadget – you need to
right click and select copy. Bharath looked for a solution by which
you could click it and it would copy to the clipboard, but did not
find any that would work without flash. Hence he abandoned that and
started figuring out easier ways of making that happen. He also fixed
several bugs in the implementation of the gadget, and I expect it to
get deployed soonish. Thanks to SrikanthLogic for helping him through
the process.

Code is available at
He’s still fixing things on the script. If the community needs people
to come fix up their user scripts/gadgets, Bharath would be a willing
(and awesome!) candidate!

13. Add ‘My Uploads’ to top bar along with My Contributions, etc
(Mediawiki Core Patch)
By: SrikanthLogic

What it does:
Not satisfied with being the organizer of the hackathon, Srikanth
wanted to flex his programming muscles and spent time fixing a bug in
core mediawiki (
He spent a while digging around the proper way to do this, and managed
to make a proper patch!

It has been committed in gerrit (currently unable to find a link).
Should be merged in soon. Yay!

Honorable Mentions
1. WikiPronouncer
By: Russel Nickson

What it was supposed to do:
Exactly like Shrini’s tool to record word pronunciations and upload to
commons, but written for Android so people could add prononciations on
the go.

Code is available at He
ran into technical issues with Android setup (it stops working
completely if you look at it the wrong way), and was unable to
complete this. I think this would still be a very useful tool, and
hope someone from the community steps up to work with Russel and get
this finished.

2. Wiktionary cross lingual statistics
By: PranavRC

What it was supposed to do:
It was a statistical tool that generated statistics about how many
words overlap between all indic languages in Wiktionary (as measured
by interwiki links).

The code has been written (I’ve requested the author to put it up
publicly, will update list when it is). It, however, requires a lot of
time to be run. So validation by the community that such stats would
be useful would, IMO, definitely give Pranav the impetus to finish it
up and show us the pretty graphs 🙂

So, in all, 13 demos were produced (+ 2 near misses). I think we can
call this one a success, no? 🙂

Next Steps
Where do we go from here? Random thoughts:

1. Geek retention – this is reasonably easy. If we keep feeding
hackers interesting problems that affect a lot of people, they’ll keep
helping us out. Is it possible to have some sort of a ‘tools required’
or ‘hacks required’ or ‘gadgets required’ page/queue someplace where
we can always direct hackers looking for interesting problems to? IMO
Wikipedia is full of interesting technical problems, so this *should*
be feasible.

2. Follow ups – this time, I am able to do this personally (small
enough group). Clearly this will not scale. Do we have ideas/methods
for following up with these people so that they stay with us?
3. More of these? This was pretty much a ‘zero cost’ event – stickers
were the only ‘cost’. A lot of places around the country would love to
have their space used for a hackathon of sorts. Should we do more of
these kind of ‘Unofficial’ hackathons?

Thanks due (in random order)

1. Thoughtworks/BalajiDamodaran: He graciously hosted us at
Thoughtworks. The biggest challenge for any hackathon is to find a
nice place which understands what hackathons are, and provides what is
considered the lifeblood of a hackathon – working WiFi. Balaji
(@openbala) was incredibly awesome, and this entire thing would’ve not
been possible at all without him and ThoughtWorks.

2. Dorai Thodla: He helped popularize the hackathon among the Chennai
Geeks crowd, and acted as a sounding board at various important times.
He also connected us with @openbala and enabled us to get the venue.

3. Srikanth Lakshmanan: The hackathon was his idea, and he made sure
it was executed in a nice way. He was the official ‘organizer’, and
made sure that all logistics were taken care of. Once the event
started, he was very helpful in helping people technically and in
picking up ideas, while also hacking on his own patch. This event was,
in essence, organized and run by him. He took an overnight trip from
Hyderabad straight out of office just for this. Thanks for making this

4. Shrini (aka the relentless forwarder): This event wouldn’t have
been as much a success without him either. Evangelism across multiple
lists, adding a lot of ideas that could be done, helping the people
there out technically at all times and writing two really good hacks –
Thank you! I’m glad we get to keep you 🙂

5. Subhashish Panighrahi: For sending us stickers 😀 (And who all is
involved in that logistical process too!)

Most of all, this event was a success because of the quality and
dedication of the people who turned up, giving up their Saturdays.
Hope everyone who turned up had a nice time 🙂 I am personally in
touch with most of them, and I also have their email address, phone
number *and* permission to contact them again. If anyone here thinks
that they liked one of the hacks and want to take it further, please
contact me (User:Yuvipanda on or yuvipanda @
and I’ll get you people in touch. If there is a more accepted,
standard way of handling this type of private information, please let
me know as well!


Yuvi Panda T