Archive for August, 2009

How SSL Works?

SSL technology relies on the concept of public key cryptography to accomplish its tasks. In normal encryption, two communicating parties each share a password or key, and this is used to both encrypt and decrypt messages. While this is a very simple and efficient method, it doesn’t solve the problem of giving the password to someone you have not yet met or trust.

In public key cryptography, each party has two keys, a public key and a private key. Information encrypted with a person’s public key can only be decrypted with the private key and vice versa. Each user publicly tells the world what his public key is but keeps his private key for himself.

The SSL handshake protocol determines how the server and client negotiate which cipher suites they will use to authenticate each other, to transmit certificates, and to establish session keys.

  • SSL structure builds with  public key cryptography
  • In SSL there are three (3) steps of Encryption.
Key Exchange Cipher Encryption Hashing

Diffie Hellman







How SSL Works

I. Obtaining an SSL Certificate

XYZ Inc., intends to secure their customer checkout process, account management, and internal employee correspondence on their website,

Step 1: XYZ creates a Certificate Signing Request (CSR) and during this process, a private key is generated.

Step 2: XYZ goes to a trusted, third party Certificate Authority . Certificate Authority takes the certificate signing request and validates XYZ in a two step process. Certificate Authority validates that XYZ has control of the domain and that XYZ Inc. is an official organization listed in public government records.

Step 3: When the validation process is complete, Certificate Authority gives XYZ a new public key (certificate) encrypted with Certificate Authority‘s private key.

Step 4: XYZ installs the certificate on their webserver(s).

II. How Customers Communicate with the Server using SSL


Step 1: A customer makes a connection to on an SSL port, typically 443. This connection is denoted with https instead of http.

Step 2: sends back its public key to the customer. Once customer receives it, his/her browser decides if it is alright to proceed.

  • The public key must NOT be expired
  • The public key must be for only
  • The client must have the public key for Certificate Authority installed in their browser certificate store. If the customer has Certificate Authority trusted public key, then they can trust that they are really communicating with XYZ, Inc.

Step 3: If the customer decides to trust the certificate, then the customer will be sent to his/her public key.

Step 4: will next create a unique hash and encrypt it using both the customer’s public key and’s private key, and send this back to the client.

Step 5: Customer’s browser will decrypt the hash. This process shows that the sent the hash and only the customer is able to read it.

Step 6: Customer and website can now securely exchange information.


Before performing a marketing research, the researcher must have develop a marketing research proposal upon which researcher will prepare marketing research report.

The followings are the basic steps for a marketing research proposal:

  1. Define origin of the report
  2. Describe Background of the Research
  3. Identify Problem Definition/Objective
  4. Identify Dependent Variables
  5. Identify Independent Variables
  6. Research Design
    • Select type of Research
    • Select Date Collection method
    • Identify Respondents
    • Design Questionnaire
    • Scaling technique
    • Define Sampling technique
    • Hypotheses Testing
  7. Methodology for data analysis
  8. Results and Discussion
  9. Reference

These all are the basic steps. these may vary according to research requirements.

President Obama extends his best wishes to Muslims around the world during Ramadan.

Now-a-days, We can’t think of a website without Search Engine Optimization. SEO is the #1 marketing strategy for promoting a site.

This is a pretty nice and Cool. 🙂

The following link shows some nice SEO tools widget:

English Victory

England completed an emotional victory over Australia in the fifth and final Test on Sunday to regain the Ashes they surrendered so abjectly in 2006-7. Its definitely a great achievement for the English. The Aussies cricket glory is starting to decline but Aussies are very talented and well organized hope they will come back again with their power cricket that they played in last decade.

But It is the time to celebrate the victory and Really Its a emotional victory for England.

Life With JQGrid

I ‘m a beginner in Jquery. As the time I am passing with Jquery, It’s making my life so simple and easier because I was always afraid of Ajax. jQuery is a fast and well organized JavaScript Library who has the slogan “Write less, Read more”.

Recently I worked with its grid system JQgrid. When I worked with that, I found that pretty interesting. That’s really Cool :).

Link for JQGrid demo:

Now I’m playing with this tool and enjoying a lot……

Problems with ORDER BY RAND()

I was a frequent user of MySQL RAND() function like “SELECT id,title,publishDate FROM mytable ORDER BY RAND() LIMIT 5”. It was my first choice for random ordering the data in the MySQL tables. But at last, I got the idea that how painful it was.

MYSQL ORDER BY RAND () makes query slowest ever because MySQL first creates a temporary table with all the data, then orders it, and then applies the limit to the selection. That’s why even using LIMIT will not improve the performance. MYSQL ORDER BY RAND () operation assigns a random number ID to each row of the table and then delivers the results.

My previous thought about RAND () was to avoid that when there will be a large amount of data in the database but I was shocked when I run  the Apache benchmark utility (ab) for concurrent user testing and found that more than 85% request were failed for the use of ORDER BY RAND() even tables contains small amount of data like 2/3 rows.

So, It’s a good idea to avoid ORDER BY RAND() in MySQL because its performance is very poor and easily can destroy the scalability of your system whether it contain large or small amount of data  that doesn’t matter.

I’m a great fan of Bangladesh cricket team. I never get frustrated by their performance because I have the believe that they can do well and they are improving their performance day by day. I always like to keep me updated about Bangladesh cricket team statistics.

Here I share some statistics about our cricket team:

1. Bangladesh highest one day International total :  320/8 vs ZIM

2. Bangladesh lowest one day International total :  74 vs AUS

3. Bangladesh highest Test match total :  488  vs Zim

4. Bangladesh lowest Test match total :  62 vs SriLanka

5. Bangladesh highest TWENTY20 total : 166 vs ZIM

6. Bangladesh lowest TWENTY20 total : 78 vs New Zealand in 2010

7. Bangladesh highest individual score in Test : 158* vs India by Mohammad Ashraful

8. Bangladesh highest individual score in ODI: 154 vs ZIM by Tamim Iqbal

9. Bangladesh most hundreds in Test: 5 by Mohammad Ashraful

10. Bangladesh most hundreds in ODI : 4 by Shahriar Nafees

11. Bangladesh most wickets taker in Test: 100 by Mohammad Rafique

12. Bangladesh most wickets taker in ODI: 134 by Mashrafee mortaza

13. Bangladesh Best bowling figures in an innings in Test: 36/7 by Shakib Al Hasan

14. Bangladesh Best bowling figures in an innings in ODI :26/6 by Mashrafee mortaza

15. Bangladesh most fifties in Test: 24 by Habibul Bashar

16. Bangladesh most fifties in ODI: 18 by Mohammad Ashraful

17. Bangladesh Highest one day International total Against a Test Playing Nation : 296/6 vs IND

18. Bangladesh Highest Partnership in Test Cricket in any wicket : 200 vs IND at 2nd wicket by Tamim Iqbal and Junaed Siddique

I’ll add more and keep updating these information.

Go ahead Tigers.

The format is very important when writing a marketing research report because The quality of the entire project can be evaluated based on the quality of the report & presentation.

The followings are steps for writing a marketing research report:

Most research report includes the following elements:

i)     Title page

ii)    Letter of transmittal

iii)   Letter of authorization

iv)   Table of contents

v)     List of tables

vi)    List of graphs

vii)   List of appendices

viii)  List of exhibits

ix)     Executive summary

  1. Major findings
  2. Conclusions
  3. Recommendations

x)   Problem definition

  1. Background to the problem
  2. Statement of the problem

xi)   Approach to the problem

xii)  Research design

  1. Type of research design
  2. Information needs
  3. Data collection from secondary sources
  4. Data collection from primary sources
  5. Scaling techniques
  6. Questionnaire development and pretesting
  7. Sampling techniques
  8. Fieldwork

xiii)  Data analysis

  1. Methodology
  2. Plan of data analysis

xiv)  Results

xv)   Limitations and caveats

xvi)  Conclusions and recommendations

xvii) Exhibits

  1. Questionnaires and forms
  2. Statistical output
  3. Lists

Its not mandatory that all should be present in a paper but these are the basic elements that may present in a research report

I never thought I’m very good in CSS. Before playing with the 960 Grid System, I didn’t have much concepts on CSS frameworks. But After playing the 960 grid System, I’m immediately fall in love with it. Its make my life much easier because earlier I had to suffer a lot with the alignment problems.

The 960 Grid System is an effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels. There are two variants: 12 and 16 columns.

12 Column Grid

12 Column Grid

The 12 column grid is divided into portions that are 60 pixels wide. The 16 column grid consists of 40 pixel increments. Each column has 10 pixels of margin on the left and right, which create 20 pixel wide gutters between columns.

16 Column Grid

16 Column Grid

All modern monitors support at least 1024 × 768 pixel resolution. 960 is divisible by 2, 3, 4, 5, 6, 8, 10, 12, 15, 16, 20, 24, 30, 32, 40, 48, 60, 64, 80, 96, 120, 160, 192, 240, 320 and 480. This makes it a highly flexible base number to work with.

The container specifies how many total columns exist, either 12 or 16. For the most part, you will only ever need to specify a class name of grid_XX, where XX represents the column width.

If a grid unit contains grid children, the first child in a row will need a class of alpha and the last child in a row requires the class name omega. Likewise, if you want to insert empty space before or after a grid unit, use class prefix_XX or suffix_XX.

The following code is the Example of 960 grid:

<div class="container_12">
   <div class="grid_7 prefix_1">
     <div class="grid_2 alpha">
      <div class="grid_3">
     <div class="grid_2 omega">
 <div class="grid_3 suffix_1">