Thursday, October 27, 2011

মাইক্রোসফটের অমনিটাচ প্রযুক্তি


মাইক্রোসফট করপোরেশনের গবেষকেরা সম্প্রতি এমন এক প্রযুক্তি উদ্ভাবন করেছেন, যাতে যেকোনো তল বা পৃষ্ঠকেই (সারফেস) টাচস্ক্রিন হিসেবে ব্যবহার করা যাবে। টাচস্ক্রিনটি ব্যবহারের জন্য বিশেষ ধরনের কোনো পৃষ্ঠের প্রয়োজন পড়বে না। যেকোনো পৃষ্ঠ থেকেই এ সুবিধা নেওয়া যাবে এবং নিত্যব্যবহার্য যেকোনো কঠিন পৃষ্ঠেই টাচস্ক্রিন তৈরি করা যেতে পারে। এর নাম দেওয়া হয়েছে ‘অমনিটাচ’। 
যুক্তরাষ্ট্রের ক্যালিফোর্নিয়ায় অনুষ্ঠিত মাইক্রোসফটের ইউজার ইন্টারফেস সফটওয়্যার অ্যান্ড টেকনোলজি (ইউআইএসটি-২০১২) সেমিনারে এ প্রযুক্তি প্রদর্শন করা হয়েছে। এ প্রযুক্তি লেজারভিত্তিক পিকো প্রজেক্টর ও ডেপথ সেন্সিং ক্যামেরা ব্যবহার করে তৈরি করা হয়েছে। ডেপথ ক্যামেরার প্রটোটাইপ তৈরি করেছে ক্যামেরা নির্মাতা ‘প্রাইম সেন্স’।
গবেষকেরা বলেছেন, প্রযুক্তিটি মাইক্রোসফটের ভবিষ্যৎ ডিভাইসগুলোয় ব্যবহার করা হবে। এ প্রযুক্তিতে বাস্তবে কোথায় স্পর্শ করা হয়েছে, তাতে কিছু যায় আসে না। এর মাধ্যমে আঙুল শনাক্ত করা হয় এবং তার নড়াচড়া লক্ষ করা হয়। —সিনেট

Router Configuration


-        First we have write enable command for selecting privilege mode in the hyper terminal command window.
-          Then write configure terminal command for global configuration mode.
[In this simulation software we have four router named Lab_A, Lab_B, Lab_C, Lab_D. I configure only Lab_a and all are same]
-          Then write hostname Lab_A.
-          Then write enable secret class
-          Then give line console 0 for selecting console port.
-          Then give login command
-          Then password command
-          Then give exit command
-          For virtual terminal selecting give line vty 0 4 command.
-          Give password command
-          Then exit.
-          For configure Ethernet line and serial line we have to write three command. For Ethernet 0:
i.                    interface Ethernet 0
ii.                  ip address 192.5.5.1 255.255.255.0
iii.                no shutdown
-          for serial 0
i.                    interface serial 0
ii.                  ip address 205.7.5.1 255.255.255.0
iii.                no shutdown

-          give clock rate 56000 if DCE line.
-          Then exit
-          For routing protocol started give router rip command.
-          The give the networks addresses such as network 192.5.5.0.
-          Then exit
-          For testing network connection give ping command.
-          then the router configuration is completed.

Sunday, October 16, 2011

কিন্ডলকে চ্যালেঞ্জ জানাতে আসছে আইপ্যাড মিনি

ট্যাবলেট পিসির বাজারে এ মুহূর্তে অ্যাপলের নতুন মাথাব্যথা অ্যামাজনের কিন্ডল ফায়ার। সাত ইঞ্চি স্ক্রিন-সমৃদ্ধ ১৯৯ ডলারের এই ট্যাবটির বিক্রি শুরু হবে আগামী ১৫ নভেম্বর থেকে। তবে বাজারে কিন্ডলের প্রভাব সংকুচিত করে দেওয়ার লক্ষ্যে অ্যাপল অচিরেই সাত ইঞ্চি স্ক্রিনের একটি ট্যাবলেট পিসি বাজারে নিয়ে আসার পরিকল্পনা করছে। খবর সি-নেটের।
এটি হবে অ্যাপলের বিখ্যাত ট্যাবলেট ব্র্যান্ড আইপ্যাডেরই আরও একটি কমদামি সংস্করণ। তবে এর দামও হবে ২০০ ডলার। আইপ্যাড মিনি নাম দিয়ে বাজারে আসার অপেক্ষায় থাকা এই নতুন ট্যাবলেট পিসিটি কিন্ডলকে চ্যালেঞ্জর মুখে ফেলবে বলেই মনে করা হচ্ছে। কারণ, প্রযুক্তিপণ্যের ব্র্যান্ড নাম হিসেবে অ্যাপলের তুলনায় অ্যামাজন অনেকটাই পিছিয়ে আছে।
উল্লেখ্য, গত বছরের অক্টোবরে অ্যাপলের প্রয়াত প্রধান নির্বাহী স্টিভ জবস বলেছিলেন, একটি ট্যাবলেট পিসির সব ধরনের সুবিধা পরিপূর্ণভাবে উপভোগ করার জন্য কমপক্ষে ১০ ইঞ্চির স্ক্রিনের প্রয়োজন হয়। অ্যাপলের সাত ইঞ্চি স্ক্রিন সমৃদ্ধ কোনো ট্যাব বাজারে ছাড়ার পরিকল্পনা নেই বলেই তিনি জানিয়েছিলেন।

Friday, October 14, 2011

অ্যাপল আনল ‘আইক্লাউড’

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

অস্ট্রেলিয়ায় গ্যালাক্সি ট্যাব বিক্রি বন্ধ

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

Monday, October 10, 2011

নিউট্রিনো ছোটে আলোর চেয়ে বেশি গতিতে?


আধুনিক পদার্থবিজ্ঞানের অন্যতম গুরুত্বপূর্ণ অংশ হলো আদর্শ মডেল নামের একটি তত্ত্ব। এই মডেল অনুসারে মৌলিক কণাগুলো তিন প্রকার—কোয়ার্ক, বোসন, লেপটন। এর মধ্যে লেপটন দুই প্রকার—ইলেকট্রন ও নিউট্রিনো। নিউট্রিনোর ধারণা প্রথম বিজ্ঞানীরা জানতে পারেন পরমাণুর বেটা ক্ষয়ের বিশ্লেষণ করতে গিয়ে। বেটা ক্ষয়ের মাধ্যমে পর্যায় সারণির একটি পদার্থের পরমাণুর কেন্দ্র থেকে ইলেকট্রন নির্গত হয় এবং পরমাণুটি পর্যায় সারণির পরবর্তী পদার্থে পরিণত হয়। বিজ্ঞানী পাউলি দেখলেন যে ভরবেগ, শক্তি, কৌণিক ভরবেগ ইত্যাদির নিত্যতা বজায় রাখার জন্য ইলেকট্রনের সঙ্গে আরেকটি খুবই হালকা, আধানহীন এবং প্রায় অদৃশ্য কণার উপস্থিতি প্রয়োজন—এই কণাটিরই নাম দেওয়া হয় নিউট্রিনো। নিউট্রিনো এবং ইলেকট্রন প্রকৃতিতে দুই ভাইয়ের মতো। তিন ধরনের ইলেকট্রন আছে—ইলেকট্রন ইলেকট্রন (অথবা শুধুই ইলেকট্রন), মিউ ইলেকট্রন (মিউয়ন), টাউ ইলেকট্রন (টাউয়ন); এর প্রতিটির সঙ্গে আছে একটি করে নিউট্রিনো—ইলেকট্রন নিউট্রিনো, মিউ নিউট্রিনো, টাউ নিউট্রিনো। নিউট্রিনোর উপস্থিতি টের পাওয়া খুবই কঠিন। কারণ, এর ভর অতি সামান্য, কোনো আধান নেই এবং অন্যান্য পদার্থের সঙ্গে এর বিক্রিয়াও খুবই ক্ষীণ। এমনকি ঠিক এ মুহূর্তে আপনার শরীর ভেদ করে হাজার কোটিরও বেশিসংখ্যক নিউট্রিনো যাচ্ছে, কিন্তু আপনি বুঝতেও পারছেন না। পৃথিবীতে আগত নিউট্রিনোর মূল উৎস সূর্যের অভ্যন্তরে ফিউশন বিক্রিয়া। নিউট্রিনোর ভর এখনো সুনির্দিষ্ট নয়, এখন পর্যন্ত আমরা যতটুকু জানি তা হলো, এই তিন ধরনের নিউট্রিনোর ভর যথাক্রমে সংশ্লিষ্ট ইলেকট্রনের ভরের দুই লাখ ভাগের এক ভাগ, ৬০০ ভাগের এক ভাগ, ১১০ ভাগের এক ভাগ হতেও কম। তবে অনেকের মতে নিউট্রিনোর আসলে কোনো ভরই নেই, অর্থাৎ আলোর মতো ভরহীন।

নিউট্রিনোর গতি
নিউট্রিনো যদি আসলেই ভরহীন হয়, তাহলে আইনস্টাইনের তত্ত্ব অনুযায়ী তার গতি হবে আলোর গতির সমান, আর যদি ভর থাকে, তাহলে গতি হবে আলোর গতির চেয়ে কম। কিন্তু অপেরা পরীক্ষণের ফলাফলে দেখা যাচ্ছে যে নিউট্রিনোর গতি হলো আলোর গতির ১.০০০০২৫ গুণ (০.০০২৫ শতাংশ বেশি)। , আবিষ্কারে নির্ভুলতা যাচাই করা এবং আবিষ্কারটি ব্যাখ্যা করা যায়—এমন গাণিতিক তত্ত্ব হাজির করা।

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

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

তত্ত্ব
অপেরার ফলাফল যদি সত্যি প্রমাণিত হয়, তাহলে নিঃসন্দেহে তা পদার্থবিজ্ঞানে একটি বিপ্লব সৃষ্টি করবে। এ ঘটনা এবং সার্নের বিশাল হ্যাড্রন সংঘর্ষক নামক যন্ত্রের উচ্চশক্তি পরীক্ষাগুলোর প্রতিক্রিয়া গত শতাব্দীর শুরুর দিকে পদার্থবিজ্ঞানের যে নবযুগ সৃষ্টি হয়েছিল, তাকেও ছাড়িয়ে যেতে পারে বলে অনেকের ধারণা। এ ঘটনার ব্যাখ্যায় বিজ্ঞানীরা ইতিমধ্যেই বিভিন্ন নতুন-পুরোনো তত্ত্ব নিয়ে আলোচনা শুরু করেছেন। নিউট্রিনোর এই আপাত গতি আইনস্টাইনের তত্ত্বের পরিপন্থী। তবে আপেক্ষিকতার তত্ত্ব পদার্থবিজ্ঞানের অত্যন্ত গভীরে নিমজ্জিত এবং অন্যান্য ক্ষেত্রে প্রায় শতভাগ সফল (অন্য কোনো তত্ত্বের এ ধরনের সাফল্যের রেকর্ড নেই) হওয়ায় বিজ্ঞানীরা প্রাথমিকভাবে একে রক্ষা করেই নতুন তত্ত্বের প্রবর্তনের চেষ্টা করছেন।
একটি সম্ভাব্য তত্ত্ব হলো, স্ট্রিং থিওরি। স্ট্রিং থিওরি প্রস্তাব করে যে মহাবিশ্বে আমাদের দৃষ্টিগোচর স্থান-কাল ছাড়াও আরও অনেকগুলো মাত্রা আছে। কোনো কোনো উচ্চ শক্তিবিশিষ্ট কণা (যেমন, অপেরার মিউ নিউট্রিনোগুলো) এই বাড়তি মাত্রাগুলোকে স্থান-কালের মধ্যে বিচরণের জন্য চোরাগলি বা শর্টকাট হিসেবে ব্যবহার করতে পারে। সে ক্ষেত্রে আমাদের কাছে (আমাদের পর্যবেক্ষণ স্থান-কালের মধ্যে সীমাবদ্ধ) কণাটির গতি প্রকৃত গতির চেয়ে বেশি মনে হবে। এ ব্যাখ্যা আইনস্টাইনের তত্ত্বকে রক্ষা করেই নিউট্রিনোর আপাত গতি ব্যাখ্যা করতে পারে।
আরেকটি সম্ভাব্য তত্ত্ব হলো, সিমেট্রি ব্রেকিং (সুষমতা ভঙ্গ)।  ‘লরেঞ্জের সুষমতা’-এর আবিষ্কর্তা বিজ্ঞানী লরেঞ্জের সম্মানে নামকৃত। লরেঞ্জের সুষমতার মূলনীতি হলো, পদার্থবিজ্ঞানের নিয়মগুলো পর্যবেক্ষক নিরপেক্ষ। মহাবিশ্বের অন্য সুষমতাগুলো কিছু বিশেষ প্রক্রিয়ায় ভঙ্গ হতে পারে; তবে লরেঞ্জের সুষমতা ভঙ্গের কোনো দৃষ্টান্ত এখন পর্যন্ত পাওয়া যায়নি। তবে যদি কোনো ক্ষেত্রে লরেঞ্জের সুষমতা ভঙ্গ হয়, তাহলে সেখানে আইনস্টাইনের আপেক্ষিকতার তত্ত্ব প্রযোজ্য হবে না। যদি তা-ই হয়, তাহলে বস্তুর গতি আলোর গতির বেশি সেটা যা-ই হোক, বিজ্ঞানের চমৎকারিত্ব যে নতুন নতুন দিকে সব সময় ডানা মেলছে সার্নের এ পরীক্ষা হলো তার বড়ো প্রমাণ। 
কাজে তত্ত্বের বেড়াজাল ডিঙিয়ে শেষ পর্যন্ত জয় হবে বিজ্ঞানের, মানুষের কৌতুহলের ও মহাবিশ্বকে জানার দারুণ আগ্রহের।

Friday, October 7, 2011

স্টিভ জবসের ১০ ‘বিপ্লব’ - প্রথম আলো

স্টিভ জবসের ১০ ‘বিপ্লব’ - প্রথম আলো
তথ্যপ্রকৌশলে স্টিভ জবসের কোনো প্রাতিষ্ঠানিক শিক্ষা ছিল না। তার পরও যুক্তরাষ্ট্রের মালিকানায় থাকা প্রায় ৩০০ প্রযুক্তি পেটেন্টের উদ্ভাবক অথবা সহ-উদ্ভাবক হিসেবে জবসের নাম জড়িয়ে রয়েছে। বিভিন্ন তথ্যপ্রযুক্তি উপকরণের উদ্ভাবক ও এগুলোর তৈরির আগে প্রাথমিক ভাবনার নিয়ামক হওয়ার কারণে অনেকেই এই প্রযুক্তিবিদকে আধুনিক পৃথিবীর ‘লেওনার্দো দ্য ভিঞ্চি’ হিসেবে অভিহিত করেন। প্রিয় পাঠক, আসুন দ্রুত চোখ বুলিয়ে নিই, তথ্যপ্রযুক্তি জগেক বদলে দেওয়া স্টিভ জবসের ১০টি যুগান্তকারী কাজের ওপর।

১. অ্যাপল-১ (১৯৭৬): এটি ছিল অ্যাপল কম্পিউটারের উদ্ভাবিত প্রথম পণ্য। মূলত শখের কম্পিউটার ব্যবহারকারী ও প্রকৌশলীদের কথা মাথায় রেখে এটি তৈরি হয়েছিল। অ্যাপলের সহপ্রতিষ্ঠাতা স্টিভ ওজিয়ানিকের ডিজাইন করা এই অ্যাপল-১ কম্পিউটারের অর্থায়ন ও বিপণনের সঙ্গে জড়িয়ে আছে স্টিভ জবসের নাম। এই অ্যাপল-১ বদলে দিয়েছিল ব্যক্তিগত কম্পিউটারের ধারণা।

২.অ্যাপল-২ (১৯৭৭): অ্যাপল-১-এর সাফল্যে অনুপ্রাণিত হয়ে পরের সংস্করণটি তৈরি করে অ্যাপল কম্পিউটার। অ্যাপল-১ খুব অল্প কয়েকটি তৈরি হলেও অ্যাপল-২-এর ক্ষেত্রে গণ-উত্পাদনের ব্যবস্থা করা হয়। এটি বিপুলভাবে জনপ্রিয় হয় ব্যক্তিগত কম্পিউটার ব্যবহারকারীদের মধ্যে। পরের প্রায় ১৪-১৫ বছর ধরে এই অ্যাপল-২ কম্পিউটারের বাজারে টিকে ছিল। এর মধ্যে বেশ কয়েকটি উন্নত সংস্করণও বাজারে ছাড়া হয়। ১৯৯৩ সাল পর্যন্ত বিশ্ববাজারে এটি অ্যাপল-২ নামেই টিকে ছিল।

৩. লিসা (১৯৮৩): লিসা ছিল একটি বাণিজ্যিক কম্পিউটার। মূলত বাণিজ্যিক ব্যবহারের উদ্দেশ্যেই এটি তৈরি করা হয়। এতেই প্রথমবারের মতো আইকন, মাউস-নিয়ন্ত্রিত কারসর ও গ্রাফিক্যাল ইউজারস ইন্টারফেস ব্যবহার করা হয়। বর্তমান সময়ে আমরা যে কম্পিউটার ব্যবহার করি, সেটার ধারণা এই লিসা থেকেই উত্সারিত।

৪. ম্যাকিনটোশ (১৯৮৪): এটিও গ্রাফিক্যাল ইন্টারফেস ব্যবহার করে তৈরি। লিসার চেয়েও ম্যাকিনটোশ ছিল সস্তা ও দ্রুতগতির। ব্যাপক বিপণন ও প্রচারণার মধ্য দিয়ে ম্যাকিনটোশ পৃথিবীময় বাজারজাত করা হয়। ম্যাকিনটোশ বাজারে আসার পরপরই ব্যবহারকারীরা বুঝতে পারে, বিভিন্ন অলংকরণের জন্য গ্রাফিক্যাল ইন্টারফেস কতটা জরুরি। ডেস্কটপ প্রকাশনার জগতেও নতুন বিপ্লব ঘটায় এই ম্যাকিনটোশ।

৫. ‘নেক্সট’ কম্পিউটার (১৯৮৯): স্টিভ জবস ততদিনে অ্যাপল ছেড়ে দিয়েছেন অভ্যন্তরীণ কোন্দলের কারণে। তিনি প্রতিষ্ঠা করলেন নেক্সট কম্পিউটার নামের একটি প্রতিষ্ঠান। যারা তৈরি করা শুরু করল বিভিন্ন কম্পিউটার প্ল্যাটফর্ম। সেই সময়ই তৈরি হয় এই ‘নেক্সট কম্পিউটার।’ এতে প্রথম সংযোজিত হয় ওয়েব ব্রাউজিংয়ের সুবিধা। যদিও নেক্সট কম্পিউটার কখনোই তেমন অধিক পরিমাণে বিক্রি হয়নি। কিন্তু একে বলা হয়, আজকের আইফোনের অপারেটিং সিস্টেমের ওপর ভিত্তি করেই প্রতিষ্ঠিত। একে আইফোনের জনকও বলা যেতে পারে।

৬. আই-ম্যাক (১৯৯৮): বিল গেটসের প্রতিষ্ঠান মাইক্রোসফট করপোরেশনের ‘উইন্ডোজ’ অপারেটিং সিস্টেম নিয়ে তখন মেতে আছে গোটা পৃথিবী। তখন ব্যক্তিগত কম্পিউটার অপারেটিং সিস্টেম বলতেই মানুষ বোঝে উইন্ডোজের কথা। ১৯৯৬ সালে স্টিভ জবস ফিরে এসেছেন অ্যাপলে। সে সময় তাঁর প্রচ্ছন্ন উত্সাহ ও ভাবনার ফল ছিল এই আই-ম্যাক। নব্বই দশকের শেষ দিকে রং-বেরঙের বাহারি আই-ম্যাকের কথা নিশ্চয়ই কেউ ভুলে যায়নি। পুরো কম্পিউটার ও মনিটরটি ছিল একটি প্লাস্টিক বাবলের ভেতর। সেই সঙ্গে ছিল একটি মাউস। ইন্টারনেট ব্যবহারের জন্য দারুণ উপযোগী ছিল সেই আই-ম্যাক। কম্পিউটার ব্যবহারকারীরাও পেয়েছিল উইন্ডোজের বাইরে গিয়ে পছন্দের কম্পিউটারটি কেনার সুযোগ।

৭. আইপড (২০০১): আইপড হার্ডড্রাইভ-সমৃদ্ধ একটি ডিজিটাল মিউজিক প্লেয়ার। যদিও এটি পৃথিবীতে উদ্ভাবিত প্রথম ডিজিটাল মিউজিক প্লেয়ার নয়, তার পরও সফলতার দিক দিয়ে এটিকে শীর্ষে রাখতেই হবে। এটি সংগীতপ্রিয়দের এনে দেয় একসঙ্গে কয়েক হাজার পছন্দের গান একটি ছোট্ট ডিভাইসে স্টোর করে রাখার অনন্য সুযোগ। গান শোনার ক্ষেত্রেও এটি তৈরি যোগ করে নতুন এক মাত্রা।

৮. আই-টিউন স্টোর (২০০৩): এই দশকের শুরুর দিকে পাইরেসি ও ডিজিটাল চুরি ঠেকাতে হিমশিম খাচ্ছিল বিশ্বের সংগীতশিল্প। ব্যবসায়িকভাবেও মার খাচ্ছিল তারা। জবস এই সমস্যা সমাধানে ২০০৩ সালে নিয়ে এলেন আই-টিউন স্টোর নিয়ে। এটি হয়ে উঠল সংগীতের এক বিরাট সংগ্রহ। সংগীতশিল্পের সঙ্গে জড়িত ব্যক্তিরাও খুঁজে পেলেন ডিজিটাল যুগে আদর্শ পরিবেশক-মাধ্যম। ২০০৮ সালে এটি যুক্তরাষ্ট্রে হয়ে ওঠে সংগীতের সবচেয়ে বড় খুচরা ক্রয়-বিক্রয় কেন্দ্র।

৯. আইফোন (২০০৭): মোবাইল ফোন আইফোন আসার আগে ছিল কথা বলার মাধ্যম। একই সঙ্গে সেটাতে ইন্টারনেট ব্যবহারেরও সুযোগ ছিল। কিন্তু আইফোন নিয়ে এল স্পর্শের মাধ্যমে মোবাইল ফোনে ইন্টারনেট ব্যবহারের অনন্য সুযোগ-সুবিধা। ম্যাকিনটোশ যেমন ব্যক্তিগত কম্পিউটারের বিপ্লব ছিল, ঠিক তেমনি আইফোন হলো মোবাইল ফোনে একধরনের বিপ্লব। আইফোন বাজারে নিয়ে আসার পর খুব দ্রুতই অ্যাপল পরিণত হয় মোবাইল ফোন বাজারের শীর্ষ খেলোয়াড়ে।

১০. আইপ্যাড (২০১০): আইপ্যাড কিন্তু প্রথম ট্যাবলেট পিসি নয়। এর আগে অ্যাপলসহ অনেক প্রতিষ্ঠানই ট্যাবলেট পিসি বানানোর চেষ্টা করেছে। কিন্তু সফল হয়নি। আইপ্যাড ২০১০ সালে এসে বদলে দেয় ট্যাবলেট পিসির ধারণা। ল্যাপটপের পর কম্পিউটার কী চেহারার হবে, এটি প্রথম চোখে আঙুল দিয়ে দেখিয়ে দেয় অ্যাপলের আইপ্যাড।

Tuesday, October 4, 2011

ডির্ক কস্টার

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

সাইসমোমিটার

ভূমিকম্পের প্রচণ্ডতা, স্থায়িত্ব শনাক্ত ও পরিমাপের যন্ত্রসমষ্টিকে সাইসমোমিটার বলা হয়। রিখটার স্কেলের মাধ্যমে ভূকম্পনের মাত্রা প্রকাশ করা হয়। সাইসমোমিটার বলতে সাধারণত মাত্রা পরিমাপ করার যন্ত্র সাইসমোগ্রাফকেই বোঝানো হয়। অন্যদিকে, সাইসমোস্কোপ শুধু ভূকম্পন শনাক্তকরণে আগে ব্যবহার করা হতো। ১৩২ খ্রিষ্টাব্দে চীনা জ্যোতির্বিদ, গণিতবিদ ঝাঙ হেঙ প্রথম সাইসমোস্কোপ উদ্ভাবন করেন। তাঁর উদ্ভাবিত যন্ত্রের নাম ছিল ‘হউফেং ডিডং ই’। তিনি মৌসুমি বায়ু ও পৃথিবীর গতি পরিমাপের জন্য দুই মিটার ব্যাসের ব্রোঞ্জের তৈরি এই যন্ত্র উদ্ভাবন করেন। ১৮৮০ সালে ব্রিটিশ গবেষকেরা আধুনিক সাইসমোমিটার উদ্ভাবন করেন। জাপানে কর্মরত ব্রিটিশ গবেষক ও ভূতত্ত্ববিদ জন মাইন, জেমস আলফ্রেড ইউইং ও প্রকৌশলী থমাস গ্রে আধুনিক সাইসমোমিটার উদ্ভাবনে একই সঙ্গে কাজ করে গেছেন। তাঁরা ‘অনুভূমিক পেন্ডুলাম সাইসমোমিটার’ উদ্ভাবন করেন। জন মাইন ও থমাস গ্রে সাইসমোমিটারের সাহায্যে ভূকম্পনের তরঙ্গবেগ পরিমাপ নিয়ে গবেষণা করেন। জেমস ইউইং ভূকম্পনের চৌম্বক ও তড়িৎ তীব্রতা নির্ণয়ের ওপর গবেষণা করেন। ১৯০৬ সালে রুশ বিজ্ঞানী বরিস গ্যালিৎজিন প্রথম ইলেকট্রোম্যাগনেটিক সাইসমোগ্রাফ উদ্ভাবন করেন। বর্তমানে টেলিসাইসমোমিটার, স্ট্রংমোশন সাইসমোমিটার বা অ্যাকরেলোগ্রাফ, জিওফোন নামের আধুনিক সাইসমোমিটার ভূকম্পন শনাক্ত ও তীব্রতা নির্ধারণে ব্যবহূত হয়ে থাকে।

Sunday, October 2, 2011

Knuth-Moriss-Pratt Algorithm







#include
#include
int F[100],n,m,f=0;
void build_failure_function(char pattern[]){
 // let m be the length of the pattern 
 F[0] = F[1] =0;
 for(int i = 2; i <= m; i++) {
    /*j is the index of the largest next partial match 
    (the largest suffix/prefix) of the string under  
    index i - 1*/
  int j = F[i - 1];
  for( ; ; ) {
   /*check to see if the last character of string i - 
   - pattern[i - 1] "expands" the current "candidate"
   best partial match - the prefix under index j*/
   if(pattern[j] == pattern[i - 1]){ 
    F[i] = j + 1;break; 
   }
   // if we cannot "expand" even the empty string
   if(j == 0){ 
    F[i] = 0;break; 
   }
   // else go to the next best "candidate" partial match
   j = F[j];
  }
 }   
}

void Knuth_Morris_Pratt(char text[], char pattern[]){
 /*let n be the size of the text, m the 
 size of the pattern, and F[] - the
 "failure function"*/
 build_failure_function(pattern);
 int i = 0; // the initial state of the automaton is
       // the empty string
 int j = 0; // the first character of the text
 for( ; ; ) {
  if(j == n) break; // we reached the end of the text
  // if the current character of the text "expands" the
  // current match 
  if(text[j] == pattern[i]) {
   i++; // change the state of the automaton
   j++; // get the next character from the text
   if(i == m){
    f=1;
    printf("match found\n");   
   }
  }
  /*if the current state is not zero (we have not
  reached the empty string yet) we try to
  "expand" the next best (largest) match*/
  else if(i > 0) i = F[i];
  /*if we reached the empty string and failed to
  "expand" even it; we go to the next 
  character from the text, the state of the
  automaton remains zero*/
  else j++;
 }
 if(f==0)
  printf("not found\n");
}

int main()
{
 char s1[100],s2[100];
 gets(s1);
 gets(s2);
 n=strlen(s1);
 m=strlen(s2);
 Knuth_Morris_Pratt(s1, s2);
 return 0;
}

Friday, September 16, 2011

মাইক্রোসফটের উইন্ডোজ ৮ অবমুক্ত

মাইক্রোসফটের পরবর্তী প্রজন্মের জন্য তৈরি অপারেটিং সিস্টেম উইন্ডোজ ৮ অবমুক্ত হয়েছে। উইন্ডোজের নতুন এ সংস্করণ ডেস্কটপ এবং ল্যাপটপের পাশাপাশি ট্যাবলেট কম্পিউটারেও চলবে। প্রথমবারের মতো উইন্ডোজের নতুন এ সংস্করণ চলবে লো পাওয়ার প্রসেসরের মাধ্যমে।  সংস্করণটি দুটি আদলে এসেছে, যার একটি সাধারণ ডেস্কটপের জন্য এবং অন্যটি ট্যাবলেট সংস্করণের জন্য। ট্যাবলেট কম্পিউটারে জন্য তৈরি মেট্রো নামের এ সংস্করণ বিশেষভাবে স্পর্শকাতর পর্দার জন্য তৈরি। মাইক্রোসফটের উইন্ডোজ স্টোরে সংস্করণটি পাওয়া যাবে, যেখান থেকে এর উপযোগী অ্যাপ্লিকেশনও পাওয়া যাবে।
 প্রযুক্তি বিশেষজ্ঞদের মতে, বিশ্ববাজারে ট্যাবলেট ব্যবহারকারীর অবস্থা প্রায় সাত কোটিতে পৌঁছেছে, যা ২০১৫ সালের মধ্যে প্রায় ৩০ কোটি পৌঁছাবে বলে জানিয়েছে গার্টনার। আর তাই কম্পিউটারের চেয়ে ট্যাবলেট সংস্করণে বেশি সুবিধা যুক্ত করার ব্যাপারে নজর দিয়েছে মাইক্রোসফট।

Tuesday, August 30, 2011

tablet computer

tablet computer, or simply tablet, is a complete mobile computer, larger than a mobile phone or personal digital assistant, integrated into a flat touch screen and primarily operated by touching the screen. It often uses an onscreen virtual keyboard or a digital pen rather than a physicalkeyboard.

Smartphone

Wikipedia: 
smartphone is a high-end mobile phone[1][2][3] which combines the functions of a personal digital assistant (PDA) and a mobile phone. Today's models typically also serve as portable media players and camera phones with high-resolution touchscreensweb browsers that can access and properly display standard web pages rather than only mobile-optimized sites, GPS navigation, Wi-Fi and mobile broadband access.
The term smartphone is usually used to describe phones with more advanced computing ability and connectivity than a contemporary feature phonealthough the distinction can be vague and there is no official definition for what constitutes the difference between them.


A feature phone is typically based on proprietary firmware, while a smartphone runs a more open and complete mobile operating system.[2] Widespread examples of smartphone operating systems are Apple's iOSGoogle's AndroidMicrosoft's Windows Phone 7Nokia'sSymbianRIM's BlackBerry OS, and embedded Linux distributions such as Maemo and MeeGo.


Smartphones can run third-party applications using advanced application programming interfaces (APIs).
Allthough most of today's feature phones are also able to run third-party applications, for example mobile games, these applications are based on rather limited platforms such as Java ME (a virtual machine) or BREW (a pseudo-OS for native code).[1] A smartphone mobile appintegrates more tightly with the user interface and other phone features than a feature phone application, and relies on a more powerfulapplication programming interface (API).[4]


In 2000, the touchscreen Ericsson R380 Smartphone was released.[9] It was the first device to use an open operating system, the Symbian OS.[10] It was the first device marketed as a 'smartphone'.[11] It combined the functions of a mobile phone and a personal digital assistant (PDA).

Android Operating system

Wikipedia:
Android is an operating system for mobile devices such a smartphone, tablet Computer. It is developed by  Open Handset Alliance led by Google.
Google released most of the Android code under the Apache License, a free software licenseAndroid consists of a kernel based on the Linux kernel, with middlewarelibraries and APIswritten in C and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony. Android uses the Dalvik virtual machine withjust-in-time compilation to run compiled Java code. Developers write primarily in Java.

Monday, August 29, 2011

স্মার্টফোন যখন দূর নিয়ন্ত্রক যন্ত্র

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

স্যামসাংয়ের নতুন মেসেজিং সেবা

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

Sunday, August 28, 2011

Examples of Function pointer







#include
int * function();
int main(){
	auto int *x;
	int *(*ptr)();
	ptr=&function;
	x=(*ptr)();
	printf("%d",*x);
	getchar();getchar();
	return 0;
}
int *function(){
	static int a=10;
	return &a;
}
//Output: 10
/*Explanation: Here function is function whose parameter is void data type
and return type is pointer to int data type.
x=(*ptr)()
=> x=(*&functyion)() //ptr=&function
=> x=function() //From rule *&p=p
=> x=&a
So, *x = *&a = a =10*/
#include
int find(char);
int(*function())(char);
int main(){
	int x;
	int(*ptr)(char);
	ptr=function();
	x=(*ptr)('A');
	printf("%d",x);
	getchar();getchar();
	return 0;
}
int find(char c){
	return c;
}
int(*function())(char){
	return find;
}
//output: 65
/* Explanation:
x=(*ptr)(‘A’)
=> x= (*function ()) (‘A’) //ptr=function ()
//&find=function () i.e. return type of function ()
=> x= (* &find) (‘A’)
=> x= find (‘A’) //From rule*&p=p
=> x= 65*/
#include
char * call(int *,float *);
int main(){
	char *string;
	int a=2;
	float b=2.0l;
	char *(*ptr)(int*,float *);
	ptr=&call;
	string=(*ptr)(&a,&b);
	printf("%s",string);
	getchar();getchar();
	return 0;
}
char *call(int *i,float *j){
	static char *str="c-pointer.blogspot.com";
	printf("%s\n",str);
	str=str+*i+(int)(*j);
	return str;
}
//output: inter.blogspot.com
/*str= str+*i+ (int) (*j)
=”c-pointer.blogspot.com” + *&a+ (int) (*&b)
//i=&a, j=&b
=”c-pointer.blogspot.com” + a+ (int) (b)
=”c-pointer.blogspot.com” +2 + (int) (2.0)
=”c-pointer.blogspot.com” +4
=”inter.blogspot.com”*/

Implement of Callback Functions in C







Function Pointers provide the concept of callback functions. Implement a callback function using function pointer with an example of qsort algorithm.
The function receives the pointer to a comparison-function which takes void-pointers to two field-items, evaluates their ranking and returns the result coded as an int. So every time the sort algorithm needs a decision about the ranking of two items, it just calls the comparison-function via the function pointer.
#include  // due to: qsort
#include  // printf
// comparison-function for the sort-algorithm
// two items are taken by void-pointer, converted and compared
int CmpFunc(const void* _a, const void* _b)
{
	// you’ve got to explicitly cast to the correct type
	const float* a = (const float*) _a;
	const float* b = (const float*) _b;
	if(*a > *b) return 1; // first item is bigger than the second one -> return 1
	else
		if(*a == *b) return 0; // equality -> return 0
		else return -1; // second item is bigger than the first one -> return -1
}
// example for the use of qsort()
void QSortExample()
{
	float field[100];
	for(int c=0;c<5;c++)
		scanf("%f",&field[c]);
	// sort using qsort()
	qsort((void*) field, /*number of items*/ 5, /*size of an item*/ sizeof(field[0]),
	/*comparison-function*/ CmpFunc);
	// display first ten elements of the sorted field
	printf("The first five elements of the sorted field are ...\n");
	for(int c=0;c<5;c++)
		printf("element #%d contains %.0f\n", c+1, field[c]);
	printf("\n");
}
int main(){
	QSortExample();
	getchar();getchar();
	return 0;
}

How to Use Arrays of Function Pointers







#include
//2.8 How to Use Arrays of Function Pointers
int DoMore(float a,char b,char c){printf("DoMore\n");return int(a-b+c);}
int Dolt(float a,char b,char c){printf("Dolt\n");return int(a+b+c);}
// type-definition: 'pt2Function' now can be used as type
typedef int (*pt2Function)(float, char, char);
// illustrate how to work with an array of function pointers
void Array_Of_Function_Pointers(){
	printf("\nExecuting Array_Of_Function_Pointers\n");
	// 1st way using the typedef
	pt2Function funcArr1[10] = {NULL};
	// 2nd way directly defining the array
	int (*funcArr2[10])(float, char, char) = {NULL};
	funcArr1[1] = funcArr2[0] = &DoMore;
	funcArr1[0] = funcArr2[1] = &Dolt;
	// calling a function using an index to address the function pointer
	printf("%d\n", funcArr1[1](12, 'a', 'b')); // short form
	printf("%d\n", (*funcArr1[0])(12, 'a', 'b')); // "correct" way of calling
	printf("%d\n", (*funcArr2[1])(56, 'a', 'b'));
	printf("%d\n", (*funcArr2[0])(34, 'a', 'b'));
}
int main(){
	Array_Of_Function_Pointers();
	getchar();getchar();
	return 0;
}

How to Return a Function Pointer







#include
float Plus (float a, float b) { return a+b; }
float Minus (float a, float b) { return a-b; }
//Direct solution
float (*GetPtr1(const char opCode))(float, float){
	if(opCode == '+')
		return &Plus;
	else
		return &Minus; // default if invalid operator was passed
}
// Solution using a typedef
typedef float(*pt2Func)(float, float);
pt2Func GetPtr2(const char opCode){
	if(opCode == '+')
		return &Plus;
	else
		return &Minus; // default if invalid operator was passed
}
// Execute example code
void Return_A_Function_Pointer(){
	printf("Executing Return_A_Function_Pointer\n");
	float (*pt2Function)(float, float) = NULL;
	pt2Function=GetPtr1('+'); // get function pointer from function ’GetPtr1’
	printf("%f\n",(*pt2Function)(2, 4));// call function using the pointer
	pt2Function=GetPtr2('-'); // get function pointer from function ’GetPtr2’
	printf("%f\n",(*pt2Function)(2, 4));// call function using the pointer
}
int main(){
	Return_A_Function_Pointer();
	getchar();getchar();
	return 0;
}

Pass a Function Pointer as an Argument







#include
int Dolt(float a,char b,char c){printf("Dolt\n");return int(a+b+c);}
void passPtr(int (*pt2function)(float a,char b,char c)){
 int result=(*pt2function)(12,'a','b');// call using function pointer;
 printf("%d\n",result);
}
int main(){
 //pass a function pointer as an argument
 passPtr(&Dolt);
 getchar();getchar();
 return 0;
}

Comparing Function Pointers







#include
//define the calling convention
int __cdecl Dolt(float a,char b,char c); //Borland & Microsoft
//void Dolt(float a,char b,char c) __attribute__((cdecl)); //GNU GCC
int main(){
	int (*pt2Function)(float,char,char)=NULL;
	int a;
	//assignment an address to function pointer
	pt2Function=&Dolt;	
	//comparing function pointer
	if(pt2Function>0){
		if(pt2Function==&Dolt){
			printf("Pointer points to Dolt\n");
			//calling a function using function Pointer
			//int result=pt2Function(12,'a','b'); //c short way
			int result=(*pt2Function)(12,'a','b');//c
			printf("%d\n",result);
		}
		else
			printf("Pointer does not points to Dolt\n");
	}
	else
		printf("Pointer not initialized!!\n");
	getchar();getchar();
	return 0;
}
int Dolt(float a,char b,char c){printf("Dolt\n");return int(a+b+c); }

Replace a Switch-Statement by Function Pointer







#include
#include
using namespace std;
//How to Replace a Switch-Statement with a founction pointer
float Plus (float a, float b) { return a+b;}
float Minus (float a, float b) { return a-b;}
float Multiply(float a, float b) { return a*b;}
float Divide (float a, float b) { return a/b;}
/*void Switch(float a, float b, char opCode)
{
	float result;
	// execute operation
	switch(opCode){
		case '+' : result = Plus (a, b); break;
		case '-' : result = Minus (a, b); break;
		case '*' : result = Multiply (a, b); break;
		case '/' : result = Divide (a, b); break; 
	}
	cout << "Switch: 2+5=" << result << endl; // display result
}*/
void Switch_With_Function_Pointer(float a, float b, float (*pt2Func)(float, float))
{
	float result = pt2Func(a, b); // call using function pointer
	cout << "Switch replaced by function pointer: 2-5="; // display result
	cout << result << endl;
}
// Execute example code
void Replace_A_Switch()
{
	cout << endl << "Executing function 'Replace_A_Switch'" << endl;
	Switch(2, 5, '+');
	Switch_With_Function_Pointer(2, 5, /* pointer to function ’Minus’ */ &Plus);
	Switch_With_Function_Pointer(2, 5, /* pointer to function ’Minus’ */ &Minus);
	Switch_With_Function_Pointer(2, 5, /* pointer to function ’Minus’ */ &Multiply);
	Switch_With_Function_Pointer(2, 5, /* pointer to function ’Minus’ */ &Divide);
}
int main(){
	Replace_A_Switch();
	int a;
	cin>>a;
	return 0;
}

What is Function Pointer

Function pointer points to the address of a function. It just a pointer or variable.

Uses of function pointer:

1. To replace switch/if else statement
2. Implement callback or late-binding
3. Allocation of  space in memory of a this function is very less the the normal function.
4. etc.
It is only important how you, or better your compiler/processor, interpret the memory a pointer points to.


//define a function pointer and initialize to NULL
        int (*pt2Function)(float, char, char) = NULL;
//define the calling convention
        void __cdecl DoIt(float a, char b, char c); // Borland and Microsoft
        void DoIt(float a, char b, char c) __attribute__((cdecl)); // GNU GCC
//assignment of an address to a function pointer
        pt2Function = DoIt; // short form
        pt2Function = &DoMore; // correct assignment using address operator
//calling a function using a function pointer
        int result1 = pt2Function (12, ’a’, ’b’); // C short way
        int result2 = (*pt2Function) (12, ’a’, ’b’); // C