A Tribute to Philo Irudhayanath

Dr. Philo Irudhayanath

A Pioneer Photographer of Tribes, Temples, People and Places 

தமிழகத்தின் முதல் மானுட ஆய்வாளர்.

Philo was a primary school teacher in Chennai who, over a period of 50 years (1940 to 1990), travelled all over south India, often in a bicycle, photographing and writing about Tribes, Temples, People and Places. His photographs and articles run into thousands. He died in 1993 unknown and unsung.

E-Commerce Logistics: Delivering goods

An unquenchable thirst for reading books drove me to the great Connemara Library at Egmore, on 28th September,2013.  I usually hang around the history section trying to pick up some interesting books on people, both common and extraordinary, in the pre-independence period. This time I noticed that section contained books on a mix of categories: Computers, History, Biographies, Literature. It may have been the mistake of the librarian or a purposeful assortment of varieties. Whatever it is, as usual I picked up some armful of bulky books planning to skim and sip through whatever tastes good in all of them. Then, there was one particular book which attracted me the most: “E-commerce Logistics and Fulfillment, by Deborah.L.Bayles”. There were 2 things, in the first place, that attracted me to this book:

1.    One, the fact that I work at a place, which is aimed at designing and providing a web presence to retail giants in US and UK, coupled with the fact that my performance appraiser had recently pointed out my deficiency  in e-commerce knowledge.
2.    Second, being acquainted with friends from various walks of life, who have set foot on e-commerce business, I had some curiosity to dig a bit into this buzz word.
The book, at the end of reading  its initial chapters for about 2 hours, was excellent! It was clear, crisp and made me realize facts that I wouldn’t have thought about otherwise.

I have taken some notes on  few interesting concepts from the initial chapters and I wish to share them here.  These are in no way complete and will just give some idea to anyone who ventures into e-commerce business. I suggest you to buy hardcover of this book at Amazon

Tagline of this book: “The first e-commerce book that tells you how to get product orders from the Buy button to the doorstep – quickly, cost-effectively, and hassle free”.

In e-commerce or in any business, learn from the mistakes and successes of those who had already blazed a trail, partner with others when there is a mutual benefit, hire experienced guides to help you through parts unknown, and never assume that the road ahead is just like the road behind.

In order to make money, you must understand your expenses before establishing your prices, and the most flexible among the expenses are the charges of your partners, for advertising, banking, shipping, software development, Internet hosting etc.

40% of cost of selling online takes place after the customer presses the “Buy” button:  Payment processing, Order fulfillment, Product delivery and Product returns handling.

Most online businesses are doomed to fail because they won’t be able to fulfill orders or ship their products adequately to their customers as sales grow.

E-commerce logistics and fulfillment is ensuring the customer gets what the customer wants when the customer wants it.

E-Logistics Landscape:
Today’s online customers want to be able to track their orders instantly, from the moment they click the “Buy” button  until the moment the package arrives at their doorstep.
Land’s End and Victoria’s Secret are two catalog retailers that have transitioned to the Internet very successfully.

Defining your own business:
When defining your business you need to answer the following questions:
1.    What business am I in?
Determine complete range of products that you plan to stock and to offer online. Start out with the top 20% of the     products that represent 80% of your business.
2.    Are all your offerings  physical goods, or will you be selling digital goods, such as service contracts, insurance policies or software?
3.    You need to figure out how many unique products, including variations in size, color, fabric, texture, and the other features, you want to offer, and develop a Stock Keeping Unit(SKU) system for your product line.
4.    Will you be selling a product mix that will change frequently(eg. Seasonally) or technical products with constantly    updating versions and data?
5.    Are any products hazardous in any way?
6.    Are there any special packaging requirements?
7.    Are any products perishable?
8.    What are the core requirements?
9.    Do any products require assembly?
10.  Product description, promotional verbiage, care instructions, sizing charts, and a whole host of other documentations need to be written and assembled so that your online product catalog can be comprehensive and your customer service staff can be fully informed.

You should  also weigh each product and measure its dimensions(both packaged and unpackaged) so that you will have that data for shipping purposes as well as for customer reference online.

As per Federal Trade Commission(FTC) rules you need to  offer the Substitution Products for out-of-stock products, before the customer places the order.

Navigation in e-commerce sites:
One of the most important features customers remember is whether or not they can easily navigate through your site to find what they are looking for. Put yourself in their place and try to figure out the terms they would use for  searching, for categorizing products, for price ranges, for brands, for specific requirements, for specific features, or other criteria when looking for a product. The more fun and engaging you make this process, the more often a customer is likely to return.

Custom configurations:
Dell Computer’s online  configurator is so accurate that there are fewer product returns from the customer who have used the configurator than from those who used Dell customer representatives to configure their orders.

Customer Dialogs:
Your e-business site will be open for business 24 hours a day, 365 days a year. You must determine how you will respond to questions and conduct customer dialogs throughout the sales cycle.
1.    Who will answer emails?
2.    Will you accept phone calls, faxes, and snail mail from customers asking questions or placing orders?
3.    What scripts will you use for the most frequently asked questions?
4.    Do you have written policies and procedures for handling customer inquiries?
Many sites offer live chat, online video conferencing thru’ NetMeeting and 24 hour toll free customer service.
5.    What kind of response time you will offer?

Order Processing:
If you are selling high-ticket items, buyers may not want to put the hefty sum on their credit cards. In this case, you’ll have to decide if you want to offer terms, take purchase orders or credit applications, and set up a billing infrastructure.

Tax and Shipping Calculations:
Your site must automatically calculate all taxes and shipping expenses and add them to the total cost – prior to the customer placing the order.

There are software and services such as those offered by Vertex and Taxware  that can provide the tax calculations for your site. You should be familiar with the states in which the tax is applicable to your sales and which items you’ll be selling that are taxable.

First, consider which products are small enough to ship with small parcel carriers. For larger products, you may be dealing with a variety of shipping methods, such as by truckload, Less than truckload(TTL), train, ocean carrier, and so on.

Also, its important to note that some U.S. carriers do not ship or deliver on New Year’s day, Independence day, Labor day etc.

International Ecommerce:
First, make sure your site covers all of the expected ecommerce conventions for the U.S. In other words, you should include privacy and customer services policies; contact methods(English only or other languages); participation in industry groups(Better Business Bureau, etc); seal programs(Verisign, Trustee etc); and clear product guarantee policies.

Also include any information about restrictions, limitations, or conditions on purchases;  instructions for proper use of products, including safety and health care warnings; cancellation or refund policies; gift wrapping and special handling; and ongoing customer service.

Next, decide on the currency in which you will handle all sales(e.g. U.S. dollar). Determine how long it will take an order to de delivered to various worldwide locations and if any unexpected taxes/duties may be added to the cost.

Finally, think about whether you will localize the site for different countries. Localization is more than language translation; it is transforming the site according to local customs and idioms so that a native buyer will feel  comfortable.

Integrating with inventory and fulfillment:
When you first launch your site, I strongly suggest that you offer only those products that are in your immediate inventory.
Figure out policies for when you want to stop offering an item for sale – when inventory count is at a minimum or when there are none left in inventory.  Also, chart whether the same policy should be applied to all products or should differ by product.

Some very successful sites offer the ability for a customer to place an order by 5.00pm for an overnight delivery and have the order leave the dock that same day. Other sites batch up their orders and only process them at the end of each day. The timing and techniques of how you’ll conduct order processing is of paramount concern.

According to Forrester research, online customers check order status on an average of 7 times to figure our when their item will arrive and who will deliver it! UPS and FedEx both offer free online tools to enable you to track packages through assigned shipping numbers.

A brand is not a catchy tagline – a brand is the entire experience someone has that is associated with your company.
How do you want people to experience your e-business? As the most trustworthy?  The most competent? The most innovative? What makes your site unique?

Think carefully about your value proposition. Why would someone shop at your site instead of a competitor’s? What “pain” are you solving with your e-business?

As we’ve seen, anyone can develop a pretty web interface, slap it onto an electronic shopping cart, and say they’re doing e-commerce. In truth, they haven’t even started and they will eventually fail.


The need for network simulators

Source of this article: MOHIT’S DEN

The three main techniques to analyze the behavior of wired and wireless networks are:

  • Analytical Modeling,
  • Computer Simulations and
  • Real Time Physical Measurements.

Analytical Modeling is very tedious and Real Time Physical Measurements may not be possible all the time.

Computer Simulation is the only feasible approach to the quantitative analysis of networks.

Computer Simulations can be

Discrete Event Simulations (e.g.: arrival and departure of customers in a bank) or Continuous Simulations (e.g.: waterflow in a mountain).

Computer Simulations are generally Discrete Event Simulations.

Network Simulator – 2 (NS-2) is a discrete event and packet level simulator developed at UC Berkeley to analyze the performance of wired and wireless networks.

The architecture of NS-2 is composed of five components::

  • Event Scheduler (there are four: List, Heap, Calendar and Real),
  • Network Components (like nodes, links, protocols, etc),
  • Tool command language command language (Tclcl),
  • Object Oriented Tcl (OTcl) library and
  • TCL scripting language.

    NS-2 has C++ as the back-end language and TCL as the front-end language.

Cognitive Radio Network Simulator(CRCN) installation

Cognitive Radio Cognitive Networks(CRCN) Simulator is based on ns2 simulator. In this post I would explain in detail the steps needed to run CRCN simulations in your Linux.

Note: The installation is successful only in version 2.31 of ns (ns-allinone-2.31)

Step 1: Download CRCN from <here>
and ns-allinone-2.31 from <here>

Step 2: IMPORTANT: backup your ns-allinone-2.31 folder before proceeding. This is will help us to restore the working ns2 installation in case anything unexpected occurs.

Step 3: Extract CRCN.zip and you will see several files inside that. You have to copy each file in that and replace the corresponding files in ns2.31 folder.

Let me explain this in more detail.

If you have a folder named AODV in crcn. Copy all its contents and paste it in /home/micman/ns-allinone-2.31/ns-2.31/aodv folder.

Here micman is my username, replace it with your username.

You would be replacing the existing aodv folder contents with the new one you copied from crcn. Leave rest of the files unmodified.

Similarly, you will have folders named common,mac, mobile and so on. Repeat Step2 for all these folders.

Step4: Finally, you will be left with some tcl and perl scripts inside the crcn folder. Just copy them and place them in any folder, preferably /home/micman/ns-allinone-2.31/ns-2.31

Step5: Open Makefile in root user mode

$ su

# gedit /home/micman/ns-allinone-2.31/ns-2.31/Makefile

Here I have used gedit editor. replace it with the editor of your choice.

Step6: In the Makefile, find the line that says

OBJ_CC = \

In my system it is at line 164.

Step7: Copy the following lines and append it to OBJ_CC listing as shown

wcett/wcett_logs.o wcett/wcett.o \
wcett/wcett_rtable.o wcett/wcett_rqueue.o \
mac/macng.o mac/maccon.o\

Save and close the Makefile.

Step8: Next execute the following commands in Terminal.

make clean
make depend

If each of these commands run without any error, then crcn installation is successful.

Errors were experienced in other versions of ns2.

There is also a GUI available for CRCN simulation. Its just a jar file that just needs to be executed. All you need to do is to run it straightaway, but before that it has some dependencies/pre-requisites:

* JDK 6 or later versions should have been installed. [Download Java JDK]

* Gnuplot should have been installed. [Download Gnuplot]

Ubuntu10.10 users could install it easily by executing the following line in Terminal.

$sudo apt-get install gnuplot

* Download <this> perl script and place it in /home/micman/ns-allinone-2.31/ns-2.31/

Here micman is my username

* Finally Download <this> jar file.

The jar file could be executed as follows:

$ java -jar CRCN.jar

For more help on how to use the CRCN GUI go <here>

Installing Ns2.34 with Mannasim in Linux Mint 14

GCC version used: 4.7.2

This is the version of GCC that comes default with Linux Mint 14.
If you wish to install ns2.34 without Mannasim skip steps 4 and 9.

1. Download ns-allinone-2.34 from this site:

2. Extract the downloaded file into your home folder(say, /home/micman)

Throughout this post, I shall be mentioning my home folder /home/micman. When you follow these procedures, replace my username micman with your username.

3. Place the file ns2.34-mannasim-gcc4.3.patch into the following folder:


4. In Terminal, type the following commands:

cd /home/micman/ns-allinone-2.34
path -p1 < ns2.34-mannasim-gcc4.3.patch

5. If the patch gets applied without any error, proceed to next step open the following file

Replace the following lines:

SHLIB_LD="ld -shared"

with the following:

SHLIB_LD="gcc -shared"

6. Next, open the following file:
In line 219, make the following changes:
Find this line:

return GammaRandomVariable::GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

and replace it with:

return GammaRandomVariable(1.0 + alpha_, beta_).value() * pow (u, 1.0 / alpha_);

7. Next, open the following file:


In line 65, make the following changes:
Include this header file

#include "cstddef"

8. Open the following file:

Find the following code:

if (int_m == m) {
resultPower = ErlangRandomVariable::ErlangRandomVariable(Pr/m, int_m).value();
} else {
resultPower = GammaRandomVariable::GammaRandomVariable(m, Pr/m).value();
return resultPower;

Replace it with the code below:

if (int_m == m) {
resultPower = ErlangRandomVariable(Pr/m, int_m).value();
} else {
resultPower = GammaRandomVariable(m, Pr/m).value();
return resultPower;

9. In the following file, some code needs to be commented:

Comment the following lines:


OnDemandData :: OnDemandData()
/// REAL request type is default.


10. Finally, in the following file:


Make the following changes:
In line 137, change the following line


void eraseAll() { erase(baseMap::begin(), baseMap::end()); }


void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }

11. When all the above steps have been completed successfully, run the following commands in Terminal before we begin installing ns2:

sudo apt-get install build-essential autoconf automake libxmu-dev

Once the above updates are successful, we shall proceed with installing ns2.


12. Navigate into the ns-allinone-2.34 folder:

cd /home/micman/ns-allinone-2.34

13. Just run the following command:


14. Meanwhile, while the installation is happening, create the following file in /home/micman, if it doesn’t exist(else use the existing file):


15. Copy the following contents into .bashrc file created now:


Here, micman is my username, replace it with your system username.

16. Meanwhile, in the Terminal, if the installation completes without any error, then close the terminal, and reopen it and type the following command:


if % sign appears then the installation has been successful.

Additional Links:
Download Linux Mint: http://www.linuxmint.com/download.php

Download mannasim patch for ns2.34: https://www.box.com/shared/th6qi9b5v0

Download PowerIso: http://www.poweriso.com/download.htm

Finding Node Position,Velocity and Speed in NS2.34

In this article I would explain the use of three predefined functions in MobileNode.cc to access a nodes position,velocity and speed dynamically. Let me choose the AODV protocol.

1. Include mobilenode.h header in aodv.h


2. In protected scope declare the variables you would be using to store the node parameters.

double xpos;

double ypos;

double zval;

int node_speed;

MobileNode *iNode;

3. In aodv.cc initialize the declared variables.

xpos = 0.0;
ypos = 0.0;
val = 0.0;
node_speed = 0;
MobileNode  *iNode;

4. Finally access the required functions from mobilenode.h. I am accesing those functions from AODV::forward() function

/***This code retrieves node position*****/

iNode = (MobileNode*) (Node::get_node_by_address(index));
((MobileNode *) iNode)->getLoc(&xpos,&ypos,&zpos);
printf("Position of %d,  X=%f,  Y=%f,  Z=%f   \n ", index,  xpos, ypos, zpos);

/***This code retrieves the nodes velocity*****/
iNode = (MobileNode*) (Node::get_node_by_address(index));
((MobileNode *) iNode)->getVelo(&xpos, &ypos, &zpos);
printf("Velocity of %d,  X=%f, Y=%f, Z=%f   \n", index, xpos,  ypos, zpos);

/***This code retrieves the nodes speed*****/
iNode = (MobileNode*) (Node::get_node_by_address(index));
node_speed = ((MobileNode *) iNode)->speed();
printf("Velocity of %d, Speed=%d  \n",  index, node_speed);

Remember to run
make clean; make all

command after any changes to aodv.cc or aodv.h

After all these steps are done, execute simple-wireless.tcl found at ~/ns-allinone-2.34/ns-2.34/tcl/ex with the protocol mentioned in it changed from DSDV to AODV.
The result would be displayed on the terminal whenever AODV::forward() is invoked(in this case).

Common errors in Ns2 installation and solutions


  • If the tk compilation failed, especially for tk3d.c, make sure you have installed libx11-dev package.
  • If the otcl configuration failed, make sure you have installed x-dev and xorg-dev packages.


nsbash: ns: command not found


This could be because you have not set the $PATH variable. Therefore, the OS does not know where to look for the command “ns“. more detailed solution <here>


Segmentation Fault


found here


Undefined reference to vtable


found here

Installing Network Simulator(ns2.34) in Ubuntu10.10

This procedure works in all latest versions of Ubuntu.
Install ns,nam and xgraph by just a single command in the Terminal:

$ sudo apt-get install ns2 nam xgraph

You will be prompted for the user password. Enter it and watch Ubuntu do the things for You!


These are the steps to install ns2.34, the traditional way.

Step1: Download ns-allinone-2.34 package from here: http://sourceforge.net/projects/nsnam/files/
I will be using ns version 2.34.

Step2: Place the ns-allinone-2.34.tar.gz file in your home folder(/home/micman in my case). Right click on the package and extract the contents in the same home folder.

Step3: Next, open the Terminal(Applications–>Accessories–>Terminal in ubuntu)

Step4: Change to ns-allinone-2.34 directory

$ cd /home/micman/ns-allinone-2.34

Step5: First, Install the dependencies

$ sudo apt-get install build-essential autoconf automake libxmu-dev gcc-4.3

Note that we are downgrading the gcc version, as ns2.34 works well with gcc4.3

Edit Makefile.in found at this location ns-allinone-2.34/otcl-1.13/Makefile.in as follows:

Find the line that says:
CC= @CC@
and change it to:
CC= gcc-4.3

Step6: Begin ns2.34 installation

$ sudo su

# ./install

Step7: Once the installation is successful i.e. without any errors, we need to add the path information to the file ~/.bashrc

$ gedit ~/.bashrc

Step8: Append the following lines to the file ~/.bashrc






# Note: the above two lines starting from XGRAPH should come in the same line


Here replace /home/micman with the path to your home folder.

Step9: For the changes to take effect immediately, do the following:

$ source ~/.bashrc
Thats all!

type ns to see % and type nam to show the nam startup window. This shows your installation has been successful.