Sunday, March 28, 2010

Classifiers and Routing Modules: Putting a default classifier in a node using "$ns node"

Note: This is a detailed note for the book, Introduction to Network Simulator NS2. You may have to read chapter 6 of the book for better understanding.

Introduction

This post is a sequel of the previous post, which demonstrated the relationship of classifiers, routing modules, and nodes: What are they, their purposes, their relationship, and how to configure them conceptually.

What's in This Post

Now that you get the concept, let's look at how NS2 actually configure them. I will demonstrate the process by walking through a command $ns node, which creates a node.
This post focuses mainly on how a default classifier, namely classifier_, is create and inserted into a node. I will discuss about routing modules in subsequent posts.

Friday, March 26, 2010

My Question on the Security Now Show

Security Now!

I have been following a Security Now! show for a while. It is a weekly show where Steve Gibson and Leo Laporte talk about Security. You can find the show at GRC or TWIT. But usually, I subscribe to its podcast version on i-Tune.

Why do I like this show
Steve Gibson is not only a Security Guru, but also the one who know how to make things easy. The show is fun and insightful. I have learned a lot listening to this show during past few years.


Thursday, March 25, 2010

[BookReview] The Social Network Business Plan: 18 Strategies That Will Create Great Wealth by David Silver

Rating: 4/5

Summary


This book focuses on online recommender community, which is a platform (e.g., a website) where the members gather to rate, review, and recommend services and products. An online community will succeed since

Sunday, March 21, 2010

Classifiers and Routing Modules: Configuration

Note: This is a detailed note for the book, Introduction to Network Simulator NS2. You may have to read the book for better understanding.

Introduction
This post is a sequel of the previous post, which demonstrated the relationship of classifiers, routing modules, and nodes: What are they, their purposes, and their relationship.
Great! Now that you know the relationship of classifiers, routing modules, and nodes. Let see how NS2 actually do it in Tcl! 

Saturday, March 20, 2010

Entrepreneurial Principles: Eighteen Sustainable Revenue Channels (for an online community website)

When operating a website, the first revenue people can think of is advertisement. David Silver provides us with a lot more revenue channels below:

Wednesday, March 17, 2010

Including New Modules into NS2

Your New NS2 Modules
You are doing research. One day you come up with a great idea, and you want to show it to the world how great your idea is. So you decided to go for NS2. You start learning NS2, while developing your idea using C++ and Tcl.

The Coding Completes; Frustration Begins
Great! After a long work, you finish coding in C++ and Tcl. Now, you are asking yourself, "What do I do next?"

Of course you would like to incorporate you codes into NS2, you don't really know how. Frustrated, eh?

Including Your Modules into NS2
The following slide shows you how new modules are incorporated into NS2:
Including Your Modules into NS 2

View more presentations from Teerawat Issariyakul.

------------------------------------------------------------------------------------------------------------
For more information about incorporating new modules into NS2, see Chapter 2 in the following book from Springer:
T. Issaraiyakul and E. Hossain, “Introduction to Network Simulator NS2”, Springer 2009.

You may also find lecture notes and other resource at the following website: http://www.ece.ubc.ca/~teerawat/NS2.htm

Monday, March 15, 2010

My online platform

List of my choice of online platforms

Currently, I have several online platform. Even I am confused sometimes. So, I decided to list the online platform, and their purpose (specific to me):
  1. My Personal Blog (http://t-issariyakul.blogspot.com/): This is the place where I post most of the stuff including 1) audiobook summary and review, technology, interesting stuff I see in life, and things about NS2. I am planning to move NS2 contents to NS2Ultimate website, and will lightly maintain NS2 contents at this site. 
  2. NS2 Ultimate website (http://www.ns2ultimate.com/): This is the main page where I post tutorial and FAQ related NS2.
  3. Twitter: Everytime I create a new post. I will let people know by Twitter.
  4. Facebook: This is the place where I interact with my friends. Most of it would be personal things.
  5. Facebook fan page: All the above platform do not allow people I don't know to send me messages. Facebook fan page allows people I don't really know to communicate with me. The created content could be interesting to others.
Efficiently ways to interact with me

Sunday, March 14, 2010

Entrepreneurial Principles: Should you sell, or are you having too much fun?

6 Rules to Consider When planning to Sell Your Community

  1. Do not listen to free advice.
  2. Do not discuss your plan with your relatives.
  3. Do not develop an inflated idea of how much your community worths.
  4. Look for strategic buyers before selling to a financial buyer (see below).
  5. No one every lost money selling too soon: Do not rush selling your community. Wait for the right moment before selling. Your chance will finally come.
  6. Consider selling to the public: If you can't find anyone to sell, that's ok. Try the public.
Strategic Buyers v.s. Financial Buyer

Strategic buyers are the ones who would like to have your community as a part of their business. They see the real value in your community. Financial buyers, on the other hand, seeks short-term capital gain. Their main goal is to come in, restructure your community to increase its value, and resell it to the others. They do not see the real value of your community, and therefore tend to offer much less benefits.

Arbitrage Flip: What a financial buyer is looking for.

Arbitrage means something can be purchased inexpensively in one market, and can be sold in expensively in another market. Financial buyers may spot an arbitrage opportunity. They may spend little money buying your community, and sell it dearly to a company who is looking for an online community. So why don't you sell your community to one of those strategic buyers.


Checklist for Those Who Want to Sell an Online Community
  1. Positioning: Get to the best position to get the best offer
  2. Clean out the fat from your company: Make thing more efficient.
  3. The rate of increase in the number of members is important.
  4. High renewal rate of members
  5. Do not discuss about the plan to sell. Keep it secret.


------------------------------------------------------------------------------------------------
About the summary: It takes time to finish up a book. And, when you do, sometimes, you want to review what you learn from the book. If you do not make notes as you read, you might have to go through the book once again. This can be time-consuming when you are dealing with a book. But you can still flip through the book and locate what you are looking for

However, when the material is an audiobook, it is extremely hard to locate a specific part of content. Most likely you will have to listen to the entire audiobook once again.

This book summary will help solve the pain of having to go through the book all over again.

I am leaving out the details of the books. Most books have interesting examples and case studies, not included here. Reading the original book would be much more entertaining and enlightening. If you like the summary, you may want to get the original from the source below.


Source: Social Network Business Model by David Silver, Chapter 7.
For more details, get this book online @ books.google.com [Link]

Monday, March 8, 2010

For NS2 Newbies

Starting to Use NS2 is Easy

At first glance, learning NS2 is not very hard. You can go through the tutorial by Mark Greis' Tutorial, and learn NS2 in few hours.

Then you will feel like you are on the right track. NS2 is a very simple. The Tcl is a very simple and intuitive language. You can construct a complex network (e.g., TCP over wireless networks) very easily. Moreover, you can get a nice animation from nam (network animator) and plot graphs using Xgraph. What's more do you want?

Hit by Reality when Extending NS2 beyond its Scope

There is only one problem. One big problem. Things are simple as long as what you would like to work on is built-in to NS2. What's the odds? Very slim! If you are doing research, you would do something innovative. Something that no one has done before. And, that thing, my friends, is not very likely to be one of NS2 built-in modules.

From this point, everything goes downhill. A common question everyone ask is as follow. I have a great research idea. How can run NS2 to validate my idea.? Good question but the answer can be harsh.

Nothing in Life is Easy

I don't mean to discourage you. But learning NS2 beyond its scope is excruciatingly painful. You've got a lot of work to do. If you really want to know NS2, here is the step that I would suggest you should learn.

Quick Fix: An Easy Way in Doing Simulation in NS2 (not Recommended)

I started learning NS2 in a wrong way. I did not start from basic. So I chose a quick and easy way, trying to modified the NS2 codes to fit my needs and hoping that it'll work. Sometimes, it did. Sometimes, it did not. In the end, I had to abandon NS2, and wrote my own simulation code in C++. Do not follow my footstep!

Prerequisite

If you are reading upto this point, it means you do not want to follow my mistake, and you are commit yourself to seriously learn NS2. Here are few things that you need to do before proceed further:

1. Learn C++: Not just C. The OOP (object oriented programming) concept is the very core of NS2.
2. Learn Tcl: The scripting language by NS2. I find the following book quite useful. You only need to read chapters 3-7.

3. Learn OTcl: Objected Oriented version of OTcl. The most useful resource is [This website].
4. Install NS2. Go to [NS2 Webpage] for further instuction.
5. Go through Mark Greis' Tutorial.

    After you clear the above checklist, you can proceed to the key steps in learning NS2 below.

    Key Steps in Learning NS2

    Regardless of you research work, I believe you should get the basic first. And, here are the key steps.

    1. Learn how NS2 pass packets from one object to another (e.g., from a Node to a SimpleLink).
    2. Learn how to bind C++ and OTcl. This is a hard one. But, it will be easier when you understand the first step.
    3. Learn the module you are interested in. Really, it's quite hard if you don't have the basic in NS2, and want to jump start to do your own work. It's like a baby trying to jump before learning how to crawl!
    4. Modify, include, and build. This would be the final thing that you need to learn.
    -----------------------------------------------------------------------------------------
    The details of NS2 can be found in the following book from Springer:
    T. Issaraiyakul and E. Hossain, “Introduction to Network Simulator NS2”, Springer 2009. Buy it now from

    You may also find lecture notes and other resource at the following website: http://www.ece.ubc.ca/~teerawat/NS2.htm

    Sunday, March 7, 2010

    Entrepreneurial Principles: Disruption, The Sumptuous Impertinence

    Disruption

    Disruption refers to the act of breaking equilibrium. In the old time, people go out an hunt animal everyday. Their routine is in equilibrium. Then along come agriculture, which disrupt their routine. Just like agriculture, online recommender communities would disrupt the current business model called Antelope Hunt Business Model.

    Antelope Hunt Business Model

    Impala









    A picture of an antelope
    An antelope hunt business model is old business model which works like this 1) Hunting an antelope (i.e., find a customer), 2) Kill it, bring it home, and eat it (Sell things to customer), and 3) Find another one. It is wasteful and costly. While the antelope hunt business model shrinks the market with each sale, the online community business model expands the market with each sale.

    Members of an online community find the community by themselves, pay the monthly fee for the privilege of being in the community (possibly for a year or longer), share search and information with other members.

    By now, you might wonder who would want to pay for monthly fee, just to be in the community. Well, read along and you will see that the community is a platform where only the members earns money while solving their pain.

    Benefit Number 1: A Pain Solver

    A recommendation online community is borned from pain. Each member of the community share pain and would be delighted if the community can help them relieve the pain. The pain arises from, for example, time needed to look for what they need. If they are not able to find solution, they will have to put up with what the vendor offers in the market. The first benefit of an online recommender community is to help member solve pain.

    Benefit Number 2: A Transfer of Wealth

    An online recommender community can act as a revenue generating platform for the members. Again, this is the place where the member rate, review, and recommend products. There are 18 revenue channels, which are the result of the members' actions. The community should share a part of its revenue with members to motivate the member to create more valuable content.

    Cost of products consists of production cost and marketing cost. An online community can leverage the marketing cost by doing the marketing for product vendors. The conversation of members can be sliced, diced, and then sold anonymously to the vendor. The vendors will, in turn, benefit from market cost reduction.

    Apart from 18 revenue channels discussed earlier, product branding is another one. When a company wants to launch a product, it can hire the community to survey the market, draft a plan, and come up with a fair pricing. The community rates, votes, or even design new products for the company. A community can even sell its brand to the company. The consumers who appreciate the community are likely to purchase the product with community's brand.

    Privilege of Being in a Community: Viewing or Creating the Content

    Being in a community gives members two above benefits. The former one, pain solver is pretty obvious. Members benefit from truthful information from other members.

    But the interesting is the latter one: A revenue generating platform. Here, the privilege is not for viewing the content, but for creating the content. The member can use the community as a marketplace where they can offer their content for sale. The high-quality content will get picked and purchased by the community, product vendors, and/or other members.

    The Endowment Effect

    People often things they own more than things they do not own. The value of a house depreciated as time elapses. Yet, the owners often refuse to sell their house at the depreciated price.

    Similarly, when people become a member, they tend to stick around. It is easier to keep the member in the community, than to persuade people to become a member. But it is also important to give member a glue factor such as lockers, closets, watch us grow page. See [here] for the elaboration of glue factors.



    Source: Social Network Business Plan by David Silver, Chapter 6.
    About the summary: It takes time to finish up a book. And, when you do, how would you review what you learn from the book. Flip through the books? What if the book is audiobook? You might have to go over the book again. Not plesant.


    The summary here contains insights I grasped when I read the book. It will tell you what to expect of the book. Giving key insights and the organization of books, the summary makes it easier and more entertaining when reading the book.


    What the summary does not give you is the details (e.g., business cases, anecdotes) and entertainments. So if you think this book will entertain you, you may buy it online here. Also you might want to check out the review of the book which shall be up soon.

    Thursday, March 4, 2010

    Classifiers and Routing Modules

    Note: This is a detailed note for the book, Introduction to Network Simulator NS2. You may have to read the book for better understanding.

    Classifiers

    Typically residing in a Node, a classifier is an NS2 component responsible for classifying packets. A classifier has one input link and several output links. When packets enters a classifier (via an input link), they are classified based on predefined criteria. Packets of different categories are forwarded to the different corresponding output links. These output links refer to logical connections from a classifier to another NS2 object such as a physical link, a transport layer protocol, a prioritized queue, etc.
    A node can contains several classifiers. Configuring classifiers one by one is a laborious task. It would be more convenient to configure all the classifiers via a single point of management. In NS2, that single points is called Routing Module.

    Routing Modules

    Routing module is an NS2 component designed specifically for managing classifiers. Via routing module, all classifiers can be configured by using a single command (e.g., add-route).

    Relationship of Classifiers and Routing Modules
    By convention, NS2 uses one routing module to manage a classifier. When a node has multiple classifiers, NS2 creates multiple routing module and associated each routing module with each classifier. An example configuration is shown below:


    From the above figure, a routing module has a pointer "classifier_" which points to the associated classifier. Multiple routing modules are links together by using pointer "next_rtm_". When we need to add a routing entry to all classifiers (by calling the instproc add-route), we only need to send the command through the first routing module (RM1), and the chain of routing modules will automatically propagate the commend to all connecting classifiers.

    Great! Now, we understand the purpose of routing modules. But how do we create the structure like the above picture? Stay tune. I will blog about it soon!

    For more information about classifiers and routing module, see Chapter 6 in the following book from Springer:

    T. Issaraiyakul and E. Hossain, "Introduction to Network Simulator NS2", Springer 2009. Buy it now from

    You may also find lecture notes and other resource at the following website: http://www.ece.ubc.ca/~teerawat/NS2.htm

    Changing domain name of NS2 website

    I just change the domain name of the NS2 website. It's now http:// www . ns2ultimate . com.

    Wednesday, March 3, 2010

    NS2, Windows 7, and Cygwin 1.7: What a nightmare

    The rumor has it that this is the worst combination ever. The reason? It doesn't work. I try it myself. Well what I did is to build NS2 (2.33 and 2.34) over Cygwin 1.7. It creates error when the installation suite builds Tcl.

    Looking for the solution online, someone also experience similar problems. Here is the summary:

    - NS2 works well over Cygwin 1.5, but does not work over Cygwin 1.7.
    - Cygwin 1.5 does not work on Windows 7 see[].

    Unfortunately, Cygwin 1.5 can not be obtained easily.

    Potential solution:

    I am planning to try this. If you have comments, please let me know.

    1. Use NS version 2.35 which has not officially available yet.
    2. Install Cygwin 1.5.
    - Windows XP: You have to get setup-legacy.exe file from Cygwin (instead of setup.exe). It helps install version 1.5 rather than version 1.7
    - Windows 7: Again, Windows 7 does not support Cygwin version 1.5. So you have to run it on the compatibility (Windows 95) mode.

    What I will do next is to test these solutions. I will blog about it again soon.