Wednesday, 1 May 2013

সর্বকালের সর্বশ্রেষ্ঠ বিজ্ঞানী আলবার্ট আইনস্টাইন

একটি ছোট ছেলে মাত্র চার কি পাঁচ বয়স। একদিন বাবা তাকে একটা কম্পাস কিনে দিলেন । তা দেখে তো সে বিস্মিত। ঘুমানোর সময়ও এইটা নিয়ে তার কৌতূহল যায় না। বাবার কাছে প্রশ্ন- আচ্ছা বাবা কম্পাস উত্তর-দক্ষিন মুখ করে থাকে কেন? বাবার উত্তর- কারণ আছে। কিন্তু উত্তর তো হল না। রাতের বেলা এই বাবুটির ঘুম হয় না। মাঝ রাতে বাবা এসে দেখে ছোট বাবু ঘুমায় নি। আর বাবাকে দেখে তার প্রশ্ন- কম্পাসের কাঁটা কেন কেবলই এক দিকে মুখ করে থাকে? বাবা গম্ভীর গলায় বলল- চৌম্বকত্ব , আর বললেন ঘুমিয়ে পড়, অনেক রাত হয়েছে। ঘুমাতে ঘুমাতে ছোট বাবুর ভাবনা-হুম!! চৌম্বকত্ব! বড় হয়ে ব্যাপারটা আরো ভালো করতে বুঝতে হবে। বড় হয়ে ঠিকই বুঝেছিলেন সেই ছোট বাবুটি। আর তাইতো তড়িৎচুম্বকীয় মূলনীতি সংস্কার করে প্রতিষ্ঠা করেছিলেন আপেক্ষিক তত্ত্ব, আর বিবেচিত হয়েছিলেন সর্বকালের সর্বশ্রেষ্ঠ বিজ্ঞানী হিসেবে। সেই দিনের ছোট বাবুটিই ১৮৭৯ সালের ১৪ই মার্চ জার্মানিতে জন্মগ্রহণ করা সর্বকালের সর্বশ্রেষ্ঠ বিজ্ঞানী আলবার্ট আইনস্টাইন।
তিনি ১৯২১ সালে পদার্থবিজ্ঞানে নোবেল পুরস্কার লাভ করেন। তার পুরস্কার লাভের কারণ হিসেবে উল্লেখ করা হয়, তাত্ত্বিক পদার্থবিজ্ঞানে বিশেষ অবদান এবং বিশেষত আলোক-তড়িৎ ক্রিয়া সম্পর্কীত গবেষণার জন্য। বিজ্ঞানের বিভিন্ন ক্ষেত্রে তার রয়েছে ব্যাপক অবদান। ৫০টিরও অধিক বৈজ্ঞানিক গবেষণাপত্র এবং কিছু বিজ্ঞান-বহির্ভূত পুস্তকে রচনা করেছেন তিনি। ১৯৯৯ সালে টাইম সাময়িকী আইনস্টাইনকে "শতাব্দীর সেরা ব্যক্তি" হিসেবে ঘোষণা করে। এছাড়া বিখ্যাত পদার্থবিজ্ঞানীদের একটি ভোট গ্রহণের মাধ্যমে জানা গেছে, তাকে প্রায় সবাই সর্বকালের সেরা পদার্থবিজ্ঞানী হিসেবে স্বীকৃতি দিয়েছেন।

Tuesday, 23 April 2013

CSS Static, Absolute, Relative, Fixed Positioning How Do They Differ ?

Static :
A STATIC positioned element is what are we get by DEFAULT.

Or

Normal positioning of objects.

Or

একটি element স্বাভাবিক (default)অবস্থায় যে অবস্থানে থাকে সেটিই তার static position ।অর্থাৎ element এ কোন position set করা না হলে default তার position static (style="position:static") । 

Relative :
Relative to it’s (element) current position, but can be moved.

Or

A RELATIVE positioned element is positioned relative to ITSELF.

Or

কোন element এর relative position হল ঐ element টির current position যা অন্য কোন element এর সাপেক্ষে নয়।কোন element এর style="position:relative; left: 20px;" এর অর্থ হল কোন element তার current position এর ডান থেকে বামে 20px সরবে। 

Fixed :
An element is fixed to the browser window.

Or

A FIXED positioned is positioned relative to THE BROWSER WINDOW.

Or

Fixed position element টি সবসময় browser window এর সাপেক্ষে তার অবস্থান পরিবর্তন করবে অন্য কোন element (div, span, body, h1, h2 ....) এর সাপেক্ষে নয়। যেমন : style="position:fixed; left: 10px; top: 50%;" অর্থাৎ element টি browser window এর top থেকে buttom এর দিকে 50% (মাঝখানে) নিচে এবং left থেকে 10px right এ থাকবে। 

Absolute :

Relative to the last relatively positioned object, if one is present, then it works like fixed.....relative to the window.

Or

An ABSOLUTE positioned element is positioned relative to ITS CLOSEST POSITIONED PARENT. if one is present, then it works like fixed.....relative to the window.

Or

কোন element এর closest(last relatively positioned element) parent এর position যদি relative হয়( style="position:relative;"), তবে ঐ element টি তার ঐ closest parent অনুযায়ী position change করবে।
<div style="position:relative"> <!--2nd parent div-->
    <div>   <!--1st parent div-->
        <div style="position:absolute;left:10px;....."> <!--Middle div-->
          Md. Arif
       </div>
    </div>
</div>

এখানে যেহেতু 2nd parent div টির position relative তাই middle div টি 2nd parent div অনুযায়ী position change করবে। যদি 1st parent div এর position relative হত তবে Middle div টি 1st parent div অনুযায়ী position change করতো। 

Reference-1 : http://www.youtube.com/watch?v=dSYg9-S-S9I

Reference-2 : http://www.youtube.com/watch?v=-pW8HZdIuEk

Saturday, 6 April 2013

"দস্যুরানী" ফুলন দেবী

হতে পারে,তার পরিচিতি দস্যুরানী হিসেবে। হয়ত বা কুখ্যাত খুনির তালিকায় তার নামটার অপব্যাখ্যা দেওয়া হয়। তবুও সেই ইতিহাসই সাক্ষ্য দেয়, প্রথম জীবনের বঞ্চনা এবং পরের জীবনের বিদ্রোহ তার প্রতি মানুষের একটা সহমর্মিতা তৈরি করছিল। তার আমৃত্যু সংগ্রাম তাকে একজন ধর্ষিতার কাতার থেকে নিয়ে এসে পরিয়েছিল জনপ্রতিনিধিত্বের বরমাল্যও।

তিনি আর কেউ নন ইতিহাসের অন্যতম বিদ্রোহী নারী,"দস্যুরানী" ফুলন দেবী। তার জন্ম ১৯৬৩ সালে ভারতের এক নিচু পরিবারে। দারিদ্র্য এবং সামাজিক কারণে জীবনের শুরু থেকেই সংগ্রামের মুখোমুখি হয় ফুলন। মাত্র এগারো বছর বয়সে বাবার বয়সী এক লোকের সঙ্গে বিয়ে হয় তার।
ফুলনের গ্রাম এবং আশপাশের একাধিক গ্রামে ঠাকুর বংশের জমিদারী ছিল। আর জমিদারের লোকেরা প্রায়ই গ্রামের দরিদ্র গ্রামবাসীর কাছ থেকে ফসল নিয়ে নিত এবং তাদের ওপর নির্যাতন চালাত। ফুলন এসবের প্রতিবাদ জানিয়ে দখলকারীদের নেতা মায়াদীনের বিরুদ্ধে আদালতে মামলা করে। এ অপমানের প্রতিশোধ নিতে ঠাকুরেরা তাকে ধরে নিয়ে যায় বেমাই নামে প্রত্যন্ত এক গ্রামে। এরপর তার ওপর চলে অমানুষিক নির্যাতন। দুই সপ্তাহ ধরে প্রতি রাতে ঠাকুর ও তার লোকেরা ফুলনকে গণধর্ষণ করে। প্রতি রাতেই ফুলন জ্ঞান না হারানো পর্যন্ত চলত এ পাশবিকতা। ১৬ দিনের মাথায় এক রাতে নির্যাতন শেষে তারা ফুলনকে মৃত মনে করে ফেলে রাখে। আর প্রায় মৃত্যুপথযাত্রী ফুলন এই সুযোগ কাজে লাগিয়ে সেখান থেকে পালিয়ে যায়।

তখন ফুলনের বয়স ছিল মাত্র সতের। পালিয়েও রক্ষা পেলেন না ফুলন। আরেকবার ধরা পড়লেন এক দস্যুদলের হাতে। দস্যুদের নেতা বাবুর নজর পড়ে ফুলনের ওপর। সে ঝাঁপিয়ে পড়তে চাইল ফুলনের ওপর। কিন্তু আরেক দস্যু এতে বাধা হয়ে দাঁড়াল। বাবুকে খুন করে ফুলনকে রক্ষা করে সে। এরপর ফুলনের সঙ্গে বিক্রমের বিয়ে হয় এবং শুরু হয় ফুলনের নতুন জীবন। রাইফেল চালানো শিখে পুরোদস্তুর দস্যু হয়ে ওঠে। ফুলন তার আলাদা বাহিনী নিয়ে প্রথম হামলা চালায় তার সাবেক স্বামীর গ্রামে। নিজ হাতে ছুরিকাঘাতে তার স্বামীকে খুন করে রাস্তায় ফেলে রাখে।

ফুলন তার সংগঠিত দস্যুদল নিয়ে ক্রমাগত ধনী গ্রাম এবং জমিদারবাড়িগুলোতে আক্রমণ চালাতে থাকে। এর মধ্যেই একদিন ধনী ঠাকুর বংশের ছেলের বিয়েতে সদলবলে ডাকাতি করতে যায় ফুলন। সেখানে ফুলন খুঁজে পান এমন দুজন মানুষকে, যারা তাকে ধর্ষণ করেছিল। ক্রোধে উন্মত্ত ফুলনদেবী আদেশ করে বাকি ধর্ষণকারীদেরও ধরে আনার। কিন্তু বাকিদের পাওয়া না যাওয়ায় লাইন ধরে ঠাকুর বংশের বাইশজনকে একসঙ্গে দাঁড় করিয়ে ব্রাশফায়ার করে মেরে ফেলা হয়। বেমাইয়ের এই গণহত্যা ভারতবর্ষে ব্যাপক সাড়া ফেলে।

সরকার ফুলনকে ধরার জন্য ব্যতিব্যস্ত হয়ে ওঠে। আবার ফুলনের পক্ষেও আন্দোলন হয়। শেষ পর্যন্ত ১৯৮৩ সালের ফেব্রুয়ারিতে সরকার সন্ধিপ্রস্তাব করলে ফুলন অনেকগুলো শর্ত দেন। সরকার সেই শর্ত মেনে নিলে ১০,০০০ মানুষ আর ৩০০ পুলিশের সামনে ফুলনদেবী অস্ত্র জমা দেন গান্ধী আর দুর্গার ছবির সামনে। ১১ বছর কারাভোগের পর ফুলন সমাজবাদী পার্টিতে যোগ দেন এবং ১৯৯৬ এবং '৯৯-তে পরপর দুইবার লোকসভার সদস্য নির্বাচিত হন। ২০০১ সালের ২৫ জুলাই ঠাকুর বংশের তিন ছেলের এলোপাতাড়ি গুলিতে ফুলন দেবী নিহত হন।

সেই সাথেসাথে শেষ হয়ে যায় একজন নির্যাতিতার জগতখ্যাত বিদ্রোহ।কখনও নন্দিত কখনও নিন্দিত হলেও ধরিত্রী সাক্ষ্য দিবে যুগে যুগে ফুলনদের এহেন বিদ্রোহের মূলে সমাজব্যবস্থা ও সমাজপতিরাই দায়ী। সমাজই তাদের বাধ্য করে আইন নিজের হাতে তুলে নিতে যখন একজন নির্যাতিতা বিচার চেয়ে পায় ধর্ষিতার খেতাব আর ধর্ষকরা হয় সমাজপতি যাদের পায়ে ফুল-চন্দন দিয়ে দিয়ে নমঃ নমঃ করে সমাজ।

তবুও একজন ফুলন দেবী "দেবীর" মর্যাদায়ই আসীন রবে সকল নির্যাতিতার বিদ্রোহের মূলে।সমাজের সকল অন্যায়ের বিরুদ্ধে সোচ্চার কণ্ঠস্বর হিসেবে তাদের মন্ত্রণা দিবে ফুলন দেবীর রেখে যাওয়া জীবন-ইতিহাস। [সংগৃহীত]

Wikipedia Reference : http://en.wikipedia.org/wiki/Phoolan_Devi

Tuesday, 26 March 2013

11827 - Maximum GCD

#include<stdio.h>
#define max(a,b) (a>b)?a:b

int num[100];

int gcd(int a, int b)
{
    if(a)
        return gcd(b%a, a);

    return b;
}

int main()
{
    int c,i=0,j=0,m;
    char buffer[100];
    //freopen("in.txt","r",stdin);
    scanf("%d\n",&c);
        while(c--)
        {
            gets(buffer);
            i=0,j=0;
            while(buffer[i])
            {
                num[j] = 0;
                while(buffer[i] && buffer[i]!=' ')
                    num[j] = num[j]*10 + buffer[i++]-'0';
                while(buffer[i]==' ')
                    i++;
                j++;
            }

            m=1;
            for(i=0;i<j;i++)
            {
                for(int k=i+1;k<j;k++)
                {
                    m = max(m,gcd(num[i], num[k]));
                }
            }
            printf("%d\n",m);
        }
    return 0;
}

575 - Skew Binary

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
    char skem[100];
    int k = 0;
    long sum = 0;
    //freopen("in.txt","r",stdin);
    while(gets(skem))
    {
        int n = strlen(skem);
        int num = skem[0]-'0';
        if(n==1 && num == 0) break;
        for(int i=0;i<n;i++)
        {
            k=n-i;
            sum += ((skem[i]-'0')*((long)pow(2,k)-1));
        }
        printf("%ld\n",sum);
        sum = 0;
    }
    return 0;
}

Friday, 15 February 2013

Multi-dimensional array in C/C++

At a low level, there is no such thing as a multi-dimensional array. There is just a flat block of memory, large enough to hold a given number of elements. In C, a multi-dimensional array is conceptually an array whose elements are also arrays. So if you do:
int array[2][3];
Conceptually you end up with:
array[0] => [0, 1, 2]
array
[1] => [0, 1, 2]
This results in the elements being arranged contiguously in memory, because array[0] and array[1] are not actually holding any data, they are just references to the two inner arrays. Note that this means that only the [0, 1, 2] entries actually occupy space in memory. If you extend this pattern out to the next dimension, you can see that:
int array[2][3][2];
...will give you a structure like:
array[0] => [0] => [0, 1]
            [1] => [0, 1]
            [2] => [0, 1]
array[1] => [0] => [0, 1]
            [1] => [0, 1]
            [2] => [0, 1]
Which continues arranging the elements consecutively in memory (as above, only the [0, 1] entries actually occupy space in memory, everything else is just part of a reference to one of these entries). As you can see, this pattern will continue no matter how many dimensions you have.

And just for fun:
int array[2][3][2][5];
Gives you:
array[0] => [0] => [0] => [0, 1, 2, 3, 4]
                   [1] => [0, 1, 2, 3, 4]
            [1] => [0] => [0, 1, 2, 3, 4]
                   [1] => [0, 1, 2, 3, 4]
            [2] => [0] => [0, 1, 2, 3, 4]
                   [1] => [0, 1, 2, 3, 4]
array[1] => [0] => [0] => [0, 1, 2, 3, 4]
                   [1] => [0, 1, 2, 3, 4]
            [1] => [0] => [0, 1, 2, 3, 4]
                   [1] => [0, 1, 2, 3, 4]
            [2] => [0] => [0, 1, 2, 3, 4]
                   [1] => [0, 1, 2, 3, 4]
What is the meaning of int (*p)[5], char *x[3][4], int *(*a[10])() and int (*t[])() ?
Ans :
int (*p)[5] : A pointer to an array of 5 integers.char *x[3][4] : x is an composed of "3 arrays of 4 pointers to character".int *(*a[10])() : An array of 10 pointers to functions returning an integer pointer.int (*t[])() : An array of pointers to function returning an integer pointer.