কম্পিউটার প্রোগ্রামিং ল্যাগুয়েজে পিএইচপির গুরুত্ব অপরিসীম।

পিএইচপি

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

কোড কনভেনশন কেন প্রয়োজন?: Why do you need code convention?

লেখকঃ নাদিম ইমন
কোড কনভেনশন কেন প্রয়োজন?
একটি সফটওয়্যারের জীবনচক্রের ৮০% সময়ই রক্ষণাবেক্ষণে ব্যয় করা হয়। খুব কম সময়য়েই মূল লেখক এই রক্ষণাবেক্ষণের কাজটি করে থাকেন। তাই কোড পাঠযোগ্য হওয়া একান্ত প্রয়োজন। কোড কনভেনশন সফ্টওয়্যারকে পাঠযোগ্য করে তুলে।
জাভা কোড কনভেনশন
• একটি স্টেটমেন্টে একই মান বিভিন্ন ভেরিয়েবল এর জন্য নির্ধারণ করা যাবে না।
• একটি ক্লাসের মেথড বা ভেরিয়েবলকে অ্যাক্সেস করার জন্য অবজেক্ট এর পরিবর্তে ক্লাস এর নাম ব্যাবহার করতে হবে।
• উপযুক্ত কারণ ছাড়া কোনো ইনস্ট্যান্সের বা ক্লাস ভেরিয়েবলকে পাবলিক করা যাবে না। যখন ক্লাসটি একটি ডাটা স্টাকচার গঠন করবে, তখন পাবলিক ভেরিয়েবল ব্যবহার করা যাবে।
• দুটি ফাঁকা লাইন: একটি সোর্স ফাইলের বিভাগের মধ্যে, ক্লাস এবং ইন্টারফেস এর মধ্যে।
• একটি ফাঁকা লাইন: মেথডের মাঝে, মেথডের মাঝে লোকাল ভেরিয়েবল এবং প্রথম স্টেটমেন্ট এর মাঝে, একটি ব্লক অথবা লাইন এর পূর্বে, মেথডের ভিতর লজিকাল সেকশন এর মাঝে।
• ফাঁকা জায়গা: কীওয়ার্ড এবং বন্ধনী মধ্যে, যুক্তি তালিকায় কমার পরে , কাস্ট পরে।
• প্রতিটি লাইনে একটি স্টেটমেন্টে থাকা উচিত ।
• প্রতি লাইনে একটি ডিক্লারেশন থাকা বাঞ্ছনীয়।
• লোকাল ভেরিয়েবল যেখানে ডিক্লেয়ার করা হয় সেখানেই ইনিশিয়ালাজ করা উচিত।
• শুধুমাত্র ব্লক এর শুরুতে ডিক্লারেশন রাখা উত্তম।
• একটি মেথডের নাম এবং বন্ধনীর মধ্যে কোন ফাঁকা স্থান রাখা যাবে না।
• মেথড গুলু একটি ফাঁকা লাইন দ্বারা বিভক্ত করতে হবে।
• কোডের মাঝে কমেন্ট করার জন্য চার প্রকার পদ্দতি: ব্লক, একক লাইন, ,ট্রেইলিং এবং লাইনের শেষে।
• ডকুমেন্টেশন কমেন্ট জাভা ক্লাস, ইন্টারফেস , কন্সট্রাকটর , মেথড এবং ফিল্ডের ক্ষেত্র বর্ণনা করা হয়। ডকুমেন্টেশন কমেন্ট করার জন্য /*…*/ ব্যাবহার করা হয়।
• ডকুমেন্টেশন কমেন্ট: প্রতিটি ক্লাস, ইন্টারফেস ও মেম্বারের জন্য একটি কমেন্ট থাকবে। একটি শ্রেণীর প্রতি মন্তব্য , ইন্টারফেস , অথবা সদস্য
• ডকুমেন্টেশন কমেন্ট: শুধু ডিক্লারেশনের আগে প্রদর্শিত হওয়া উচিত।
• প্রতিটি লাইনে ৮০ অক্ষরের বেশী ব্যাবহার করা যাবে না।
• এই লিঙ্কে http://www.oracle.com/technetwork/java/codeconvtoc-136057.html জাভা কোড কনভেনশনের বিস্তারিত পাওয়া যাবে।

Reference:
http://salearningschool.com/displayArticle.php?table=Articles&articleID=742&title=Code%20Conventions%20for%20the%20Java%20Programming%20Language

জাভা JDK 1.0.x এর সাহায্যে ফাইল খোলা এবং পড়া

জাভা JDK 1.0.x এর সাহায্যে ফাইল খোলা এবং পড়া
——————————————————————

১। ফাইল ক্লাস অনুযায়ী ফাইল খুলুন।

২। ফাইল অবজেক্ট ব্যাবহার করে একটি FileInputStream তৈরি করুন।

৩। FileInputStream কে BufferedInputStream এ রুপান্তর করুন যা আপনার ফাইল পড়ার গতিকে অনেক বাড়িয়ে দেবে।

৪। BufferedInputStream কে DataInputStream কনভার্ট করুন যা আপনাকে ফাইল পড়ার ক্ষেত্রে যথেষ্ট স্বাচ্ছন্দ্য প্রদান করবে।

৫। শেষ পর্যন্ত ফাইলটি পরুন।

নিচে প্রক্রিয়াটি দেখান হলঃ

File f = new File(“mydata.txt”);
FileInputStream fis = new FileInputStream(f);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
String record = null;

try {

while ( (record=dis.readLine()) != null ) {
//
// put your logic here to work with “record”
//
}

} catch (IOException e) {
//
// put your error-handling code here
//
}

Ref: http://salearningschool.com/displayArticle.php?table=Articles&articleID=652&title=Opening%20and%20reading%20files%20with%20Java%20JDK%201.0.x

জাভার নিয়মাবলী : Some important Java stuff

http://salearningschool.com/displayArticle.php?table=Articles&articleID=787&title=Java%20Rules

জাভার নিয়মাবলী
জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ অনুযায়ী প্রোগ্রাম লিখতে গেলে কিছু অবশ্য পালনীয় নিয়ম মেনে লিখতে হয়। কিছু জিনিস আছে যেগুলো করা যাবে না, আবার কিছু জিনিস আছে যেগুলো অবশ্যই মানতে হবে ; এই দুইয়ে মিলেই তৈরি হয়েছে জাভার নিয়মাবলী। নিচে জাভার কিছু গুরুত্বপূর্ণ নিয়ম দেয়া হলঃ

 
• অবজেক্ট (Object) এর ব্যবহার ছাড়া কোনভাবেই একটা ইন্সটান্স ভ্যারিএবল (Instance Variable) অথবা, একটা কোড ব্লককে (Code Block) একীভূত (Synchornize) করা যাবে না – জাভা প্রোগ্রামিং নিয়মমতে এটা পুরোপুরি নিষিদ্ধ।

 
• একটা ওভাররিডেন মেথড (Overriden Method) এর সাথে একটা যাচাই করা এক্সেপ্সন (Checked Exception) যুক্ত করা যাবে না।
• একটা সুপারক্লাস এর শ্রেণীকরণ (Seriallization) সবসময় সম্ভব নাও হতে পারে; কিন্তু, ওই সুপারক্লাস এর যে কন্সট্রাক্টর (Constractor) গুলি আছে তারা অবশ্যই একটা শ্রেণীকরণযোগ্য সাবক্লাস ইন্সটান্স (Seriallizable Subclass Instance) শ্রেণীমুক্ত (Desiriallized)করা হলেও রান করবে।
• লুয কাপলিং (Losse Coupling) – অন্য ক্লাসগুলোকে কোনরকম পরিবর্তন করা ছাড়াই, একটা ক্লাস এর বাস্তবায়ন পদ্ধতি (Implementation ) পরিবর্তন করা সম্ভব। যেমনঃ যদি ক আর খ যদি দুইটি ক্লাস হয় এবং তারা একে অন্যকে একেবারেই ব্যবহার (Use) না করে তাহলে বলা হবে যে তারা কাপল্ড নয়। এখন, যদি ক ক্লাসটি খ কে ব্যবহার করে কিন্তু, খ ক ক্লাসকে ব্যবহার না করে তাহলে বলা হবে তারা লুযলি কাপল্ড (Loosely Coupled)। আর, যদি ক আর খ দুজনেই দুজনকে সমানভাবে ব্যবহার করে তাহলে বলা হবে তারা টাইটলি কাপল্ড (Tightly Coupled)।
এখন, লুয কপলিং এর ক্ষেত্রে আশা করা হয় যে একটা ক্লাস তার সব মেম্বার (Member) গুলোকে প্রাইভেট (Private) রাখবে, আর অন্যটা গেটারস (getters) আর সেটারস (Setters) পদ্ধতিতে সেগুলোকে ব্যাবহার করতে পারবে।
মোটামুটি, এগুলই জাভার গুরুত্বপূর্ণ নিয়মাবলী। এগুলোর হেরফের হলে, প্রোগ্রাম রান করার পর এরর দেখাবে।

By:
Mohammad Saidur Rahman Akanda
Khulna University of Engineering & Technology (KUET)
Department of EEE
Email: sfahim113@gmail.com

এখন আপনিও পারবেন জাভা সফটওয়্যার এডিট করতে ও মাল্টিমিডিট বানাতে : Java and Multimedia

এখন আপনিও পারবেন জাভা সফটওয়্যার এডিট করতে ও মাল্টিমিডিট বানাতে
তনু রহমান

আসস্লামুয়ালাইকুম সবাই কে । অন্য প্রসঙ্গে না গিয়ে আসুন শুরু করা যাক
প্রথমে এই লিঙ্ক থেকে সফটওয়্যার টি ডাউনলোড করুন : http://vube.com/Walter+Alexandre+ONE+MAN+BAND/nhZzKVEQU1/L/vote?t=p&p=ggo
আপনি যদি মোবাইল ব্যাবহারকারী হন তাহলে এখান থেকে: http://www.mediafire.com/download/pgnuzbr7aqk6ca6/Blue_ftp_v60.jar
এবার সফটওয়্যার টি ওপেন করে উপরের ফাইল টা এক্সট্রাক্ট করুন ,যদি নোকিয়া মোবাইল হয় তাহলে যে কোন অ্যাপ্লিকেশান এরOption>application access> data access> read user data > ask first time এবং Option>application access> data access>add and edit data > ask first time K‡i w`b এটা করলে বারবার yes চায়না। কোন কোন নোকিয়া সেটে ask first time নাও হতে পারে আমার নোকিয়া X2-00 হয়েছে।
এবার নিচের ধাপ অনুসরন করুন
ধাপ 1 : প্রথমে আমি যেসব সফটওয়্যার দিয়েছি সেখান থেকে minihalo নামক সফটওয়্যার টি open করুন। আপনি যে জাভা সফটওয়্যার এডিট করতে চান তার extention আগে থেকে যেন .zip থাকে মানে .jar থেকে .zip। আপনি blueftp সফট এর মাধ্যমে .zip করে দেবেন ব্যাস এবার minihalo এর মাধ্যমে জাভা সফটওয়্যার টি ভাঙ্গুন। দেখুন ঐ সফটওয়্যার এর নামে একটা ফোল্ডার তৈরি হবে। আপনি চাইলে ucweb টা দিয়ে সফটওয়্যার ডাউনলোড করে কাজ করতে পারেন এটা দিয়া আপনি snapshoot ও নিতে পারবেন। আপনি আরেকটি পদ্ধতিতে জাভা সফটওয়্যার ভাঙ্গতে পারেন .zip extention দেয়ার blueftp ওপেন করে জিপ ফোল্ডার টিতে ঢুকে সব ফাইল সিলেক্ট করে আনজিপ করলে ও হবে ।

ধাপ ২: আপনি যদি ঐ সফটওয়্যার এর নাম পরিবর্তন করতে চান তাহলে moby explorer নামক যে সফট তা আছে সেটা ওপেন করুন। এবার ঐ সফটওয়্যার এর META-INF ফোল্ডার এ MANIFEST.MF নামক যে ফাইল টি আছে তা option থেকে text editor এর মাধ্যমে এডিট করুন ব্যাস ২য় ধাপের কাজ শেষ।
ধাপ ৩: আপনি ইচ্ছা করলে সফটওয়্যার বিভিন্ন picture বা ইমেজ পরিবর্তন করতে পারেন blueftp এর মাধ্যমে। আপনি ঐ সব পরিবর্তন করার সময় যেটাকে পরিবর্তন করবেন সেটার নাম এবং আপনারটির নাম একই করে দিন তারপর আপনার পিকচার টি replece করে দিন আর দেখুন মজা। সফটওয়্যার class পরিবর্তন করতে চাইলে class_translator দিয়ে করুন। class পরিবর্তন করার পর save করলে leave a backup file অপশন টা আসলে no করে দিন কাজ শেষ ।
ধাপ ৫: সবকিছু করা শেষ হলে blueftp এর মাধ্যমে ঐ ফোল্ডার ভেতর থাকা সব কিছু সিলেক্ট করে compress to jar করুন তারপর _jar কেটে দিয়ে .jar করে অ্যাপ্লিকেশান টা চালান। আর উপভোগ করুন আপনার এডিট করা অ্যাপ্লিকেশান গুলোর।
Multimidlet ধাপ : আপনি প্রথমে যে সব সফটওয়্যার Multimidlet বানাবেন তার শেষে .zip extention দিন । এবং আপনার মেমোরি কার্ড এর root এ অর্থাৎ e:\ তে icon.png নামক একটা পিকচার দিয়ে রাখতে হবে । এরপর Multimidlet.jar নামক যে সফটওয়্যার টি আছে সেটা ওপেন করুন । এবার আপনার .zip এর অ্যাপ্লিকেশান গুলো সিলেক্ট করে view list থেকে start Merge করুন । নাম পরিবর্তন করবেন না । তারপর আবার start Merge এ ক্লিক করুন শেষ হলে মেমোরি কার্ড এর ভেতর Multimidlet নামক ফোল্ডার এর ভেতর দেখুন আপনার করা Multimidlet টি আছে । নাম হতে পারে test.jar_jar blueftp এর মাধ্যমে test.jar করে দিন আর উপভোগ করুন মজা । তবে আপনাকে একটু সাবধান থাকতে হবে, আপনার সফটওয়্যার গুলার মধ্যে যদি কনো সমস্যা থাকে তাহলে Multimidlet টিতে সমস্যা দেখা দেবে।

http://salearningschool.com/index.php?table=Articles&categoryID=32&category=Java

আজ আমি আপনাদের জানাবো জাভা অবজেক্ট কিভাবে Thread তৈরি করা হয় এবং এর ব্যবহার।

বলা চলে প্রযুক্তি ছাড়া আমাদের জীবন অচল। আর একটি আধুনিক ফিচার ফোন হল তার একটি উদাহরন। আর ফিচার সমৃদ্ধ ফোন নিয়ে আলোচনা করতে গেলে যে বিষয়টি সামনে আসে তা হল অ্যাপলিকেশন অথবা জাভা।

 
আর শুধু জাভা সমপর্কে বলতে গেলে কিছু খুটিনাটি বিষয় আসে তা হল কিভাবে এই এই অ্যাপলিকেসন গুলো তরি হয়। তাই চিন্তার কিছু নেই । আজ আমি আপনাদের জানাবো জাভা অবজেক্ট কিভাবে Thread তৈরি করা হয় এবং এর ব্যবহার।

 
তাই দেখে নেওয়া যাক :

// Thread তৈরী করা
public class MyCustomThread extends Thread {
//variables
int someVariable;
String anotherVariable;
boolean threadRunFlag;
public MyCustomThread(int parameter, String parameterString){
this.someVariable=parameter;
this.anotherVariable=parameterString;
}

@Override
public void run(){
while(threadRunFlag){
//do something
try{

}catch(Exception ex){

}

}

}

জাভা প্রোগ্রামিংয়ের Thread তৈরি ও ব্যবহারের সংক্ষিপ্ত বিষয় জেনে নেই:

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

 
আর শুধু জাভা সম্পর্কে বলতে গেলে কিছু খুঁটিনাটি বিষয় আসে তা হল কিভাবে এই এই অ্যাপলিকেশন গুলো তরি হয়। তাই চিন্তার কিছু নেই । আজ আমি আপনাদের জানাবো জাভা অবজেক্ট কিভাবে Thread তৈরি করা হয় এবং এর ব্যবহার।
তাই দেখে নেওয়া যাক :
// Thread তৈরি করা
public class MyCustomThread extends Thread{
//variables
int someVariable;
String anotherVariable;
boolean threadRunFlag;
public MyCustomThread(int parameter, String parameterString){
this.someVariable=parameter;
this.anotherVariable=parameterString;
}
@Override
public void run(){
while(threadRunFlag){
//do something
try{
sleep(timeInMillis);
}catch(Exception e){
//do something
}
}
}
public void stopThread(){
threadRunFlag=false;
}
}

 
উল্লেখিত সকল বিষয় গুলো Thread এর object হিসাবে ব্যবহার করতে হবে।

 
এবার আসুন Thread কিভাবে ব্যবহার করতে হয়।
// Thread ব্যবহার করা :
import necessasy.packages;
public class NewClass {
//Class body
public static void main(String[] args){
MyCustomThread aThread=new MyCustomThread(intParameter, stringParameter);
MyCustomThread aThread2=new MyCustomThread(intParameter2, stringParameter2);
aThread.start();
aThread2.start();

//do something
aThread.stopThread();
aThread.stopThread2();
}
}
উল্লেখিত সকল বিষয় সম্পর্কে ভাল ভাবে ব্যবহার করলে আপনি Thread তৈরিও ব্যবহার ভাল ভাবে অনুশীলন করা যাবে। তাই চেষ্টা করুন । আসা করি ভাল ফলাফল পাবেন

2. 2. Java
http://salearningschool.com/index.php?table=Articles&categoryID=32&category=Java
উপরে ভিত্তি করে task লেখা ।

পিএইচপি (PHP), মাইএসকিউএল (MySQL), জাভা (Java)

পিএইচপি এর পুরো মানে হল হাইপারটেক্সট প্রিপ্রসেসর। ওপেন সোর্স সফটওয়্যার হওয়ায় এটি বিনামূল্য ডাউনলোড ও ব্যবহার করা যায়। পিএইচপি তে কাজ করার জন্য এইচটিএমএল এবং জাভাস্ক্রিপ্ট সম্বন্ধে ধারনা থাকা দরকার।
মাইএসকিউএল হল একটি ডাটাবেজ সার্ভার। এটি সকল এসকিউএল সমর্থন করে। পিএইচপি এর মত এটিও বিনামূল্য ডাউনলোড ও ব্যবহার করা যায়।
ডটনেট একটি মাইক্রোসফট এর ওয়েব সার্ভিস কৌশল, যেটা ইনফর্মেশন, লোকজন,সিস্টেম এবং বিভিন্ন প্রকার যন্ত্রের মধ্যে সংযোগ করে সফটওয়্যার এর মাধ্যমে । এটা বিভিন্ন ধরনের কন্ট্রোল বা ফর্ম প্রদান করে, ফলে অত্যন্ত দ্রুত ও সহজে অ্যাপ্লিকেশান তৈয়ারি করা যায়।
জাভা দ্রুত, নিরাপদ, এবং নির্ভরযোগ্য প্রোগ্রামিং ভাষা । এটা কোন প্লাটফর্ম এর উপর নির্ভর নয়। তাই জাভাতে তৈয়ারি যেকোনো অ্যাপ্লিকেশানকে যেকোনো প্লাটফর্ম চালানো যায়।

http://en.wikipedia.org/wiki/Php
http://en.wikipedia.org/wiki/MySQL
http://www.computerhope.com/jargon/n/dotnet.htm
http://en.wikipedia.org/wiki/Java

mobinmama0003@gmail.com

MongoDB Data Modelling . MongoDB ডেটা মডেলিং

MongoDB Data Modelling : MongoDB ডেটা মডেলিং
আদনান নাহিদ
সরকারি তিতুমীর কলেজ ।
MongoDB ডেটায় একটি নমনীয় স্কিমা আছে, যার ফলে একই ধরনের ডকুমেন্টে একই ধরনের গঠনের প্রয়োজন হয় না এবং সংগহে থাকা কমন ডকুমেন্টগুলো বিভিন্নভাবে রাখা যায় ।

MongoDB তে স্কিমা ডিজাইন করার সময় কিছু বিবেচ্য বিষয় :
 ব্যবহারকারীর প্রয়োজনীয়তা অনুযায়ী আপনার স্কিমা ডিজাইন ।
 যদি আপনি চান তাহলে একই ডকুমেন্টে অবজেক্টগুলো একত্রে ব্যবহার করতে পারবেন । অন্যথায় সবগুলো আলাদা করুন (তবে সেখানে একত্রীকরণের প্রয়োজন হয়না এটি নিশ্চিত করুন) ।
 ডাটাগুলো Duplicate বা কপি করুন (কিন্তু সীমাবদ্ধ)। কারণ ডিস্কের স্থান সস্তা সময় গণনার তুলনায় ।
 লেখার সময় একত্র করুন, পড়ার সময় না ।
 ঘন ঘন ব্যবহারের ক্ষেত্রে আপনার স্কিমাগুলো অনুকূলে রাখুন ।
 জটিল স্কিমা একত্রিত করবেন না বা আলাদা রাখুন ।

উদাহরণ :
ধরুন একজন ক্লায়েন্ট তার ব্লগ ওয়েব সাইটের জন্য একটি ডাটাবেস ডিজাইনের প্রয়োজন এবং RDBMS এবং MongoDB স্কিমা নকশা মধ্যে পার্থক্য দেখতে চায় । তাহলে ওয়েবসাইটটি নিম্নলিখিত প্রয়োজনীয়তা অনুসারে হবে ;
 প্রতিটি পোস্টের একটি অনন্য শিরোনাম, বিবরণ এবং URL হবে ।
 প্রতিটি পোস্টে এক বা একাধিক ট্যাগ করতে পারেন ।
 প্রতিটি পোস্টে তার প্রকাশক এবং মোট লাইকের সংখ্যা হবে ।
 প্রতিটি পোস্টে comments কারীর নাম, বার্তা, তথ্য-সময় এবং লাইকের সংখ্যা হবে ।
 প্রতিটি পোস্টে শূন্য বা তার বেশি comments বা মন্তব্য হতে পারে ।

RDBMS উপরোক্ত প্রয়োজনীয়তা অনুসারে স্কিমা ডিজাইন করার জন্য সর্বনিম্ন তিনটি টেবিল থাকবে ।

MongoDB স্কিমা ডিজাইন করার সময় একটি কালেকশান পোস্ট হবে এবং এর কাঠামো হবে নিম্ননুসারে ;
{
_id: POST_ID
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: [TAG1, TAG2, TAG3],
likes: TOTAL_LIKES,
comments: [
{
user:’COMMENT_BY’,
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:’COMMENT_BY’,
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}

এখন RDBMS এ ডাটা দেখানোর সময় আপনাকে 3 টি tables join করতে হবে এবং ডাটা শুধুমাত্র একটি সংগ্রহ থেকে দেখাতে হবে ।

C – Operators . সি অপারেটর গুলো

আপনাকে স্বাগতম আমাদের টিটোরিয়াল সাইটে আসার জন্য। আজ আমরা আপনাকে শেখাবো অপারেটর কি।

প্রোগ্রামিং শিখতে হলে আপনাকে ইংরেজীও শিখতে হবে কারণ আপনাকে কম্পিউটারকে ইংরেজীর মাধ্যমে ইনপুট দিতে হবে তাই আমার এই টিউটোরিয়ালে আমি বাংলার পাশাপাশি দরকারি কিছু যায়গায় ইংরেজী শব্দ ব্যভার করেছি।

অপারেটর হলো একটি গাণিতিক লজিক যা আপনার প্রোগ্রামকে বিভিন্ন দিক নির্দেশ দেবে। এটি সি প্রোগ্রামে সীমাবদ্ধ থাকে। নিচের নাম গুলো আপনাকে ইংরেজীতেই জানতে হবে। অপারেটর বিভিন্ন রকমের হয়ে থাকে তা হলোঃ

  1. Arithmetic Operators
  2. Relational Operators
  3. Logical Operators
  4. Bitwise Operators
  5. Assignment Operators
  6. Misc Operators

এই টিউটোরিয়ালট এ পাটিগণিত, রিলেশনাল, লজিক্যাল, নিয়োগ এবং অন্যান্য অপারেটরদের একের পর এক ব্যাখ্যা করবে।

Arithmetic Operators

নিচের টেবিলের সব Arithmetic Operators সি প্রোগ্রামকে সমর্থন করে। মনে করুন পরিবর্তনশীল A 10  পরিবর্তনশীল B 20:

Operator Description Example
== Checks if the values of two operands are equal or not, if yes then condition becomes true. (A == B) is not true.
!= Checks if the values of two operands are equal or not, if values are not equal then condition becomes true. (A != B) is true.
> Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. (A > B) is not true.
< Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. (A < B) is true.
>= Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. (A >= B) is not true.
<= Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. (A <= B) is true.

 

 

Relational Operators

নিচের টেবিলের সব Relational Operators সি প্রোগ্রামকে সমর্থন করে। মনে করুন পরিবর্তনশীল A 10  পরিবর্তনশীল B 20:

Operator Description Example
== Checks if the values of two operands are equal or not, if yes then condition becomes true. (A == B) is not true.
!= Checks if the values of two operands are equal or not, if values are not equal then condition becomes true. (A != B) is true.
> Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. (A > B) is not true.
< Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. (A < B) is true.
>= Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. (A >= B) is not true.
<= Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. (A <= B) is true.

Logical Operators

নিচের টেবিলের সব Logical Operators সি প্রোগ্রামকে সমর্থন করে। মনে করুন পরিবর্তনশীল A 10  পরিবর্তনশীল B 20:

Operator Description Example
&& Called Logical AND operator. If both the operands are non-zero, then condition becomes true. (A && B) is false.
|| Called Logical OR Operator. If any of the two operands is non-zero, then condition becomes true. (A || B) is true.
! Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false. !(A && B) is true.

Bitwise Operators

Bitwise অপারেটর বিট উপর কাজ করে এবং বিট-দ্বারা-বিট অপারেশন সম্পাদন করে:

p Q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

 

অনুমান কর যদি A = 60; এবং B = 13; নিম্নরূপ এখন বাইনারি বিন্যাসে তারা হবে:

A = 0011 1100

B = 0000 1101

—————–

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

 

সি ভাষা দ্বারা সমর্থিত Bitwise অপারেটরদের নিম্নলিখিত টেবিলে তালিকাভুক্ত করা হয়. পরিবর্তনশীল একটি 60 ঝুলিতে এবং পরিবর্তনশীল বি, তারপর 13 ঝুলিতে অনুমান:

 

Operator Description Example
& Binary AND Operator copies a bit to the result if it exists in both operands. (A & B) will give 12, which is 0000 1100
| Binary OR Operator copies a bit if it exists in either operand. (A | B) will give 61, which is 0011 1101
^ Binary XOR Operator copies the bit if it is set in one operand but not both. (A ^ B) will give 49, which is 0011 0001
~ Binary Ones Complement Operator is unary and has the effect of ‘flipping’ bits. (~A ) will give -61, which is 1100 0011 in 2’s complement form.
<< Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand. A << 2 will give 240 which is 1111 0000
>> Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand. A >> 2 will give 15 which is 0000

 

Assignment Operators

 

সি ভাষা দ্বারা সমর্থিত নিম্নলিখিত Assignment অপারেটর আছে:

Operator Description Example
= Simple assignment operator, Assigns values from right side operands to left side operand C = A + B will assign value of A + B into C
+= Add AND assignment operator, It adds right operand to the left operand and assign the result to left operand C += A is equivalent to C = C + A
-= Subtract AND assignment operator, It subtracts right operand from the left operand and assign the result to left operand C -= A is equivalent to C = C – A
*= Multiply AND assignment operator, It multiplies right operand with the left operand and assign the result to left operand C *= A is equivalent to C = C * A
/= Divide AND assignment operator, It divides left operand with the right operand and assign the result to left operand C /= A is equivalent to C = C / A
%= Modulus AND assignment operator, It takes modulus using two operands and assign the result to left operand C %= A is equivalent to C = C % A
<<= Left shift AND assignment operator C <<= 2 is same as C = C << 2
>>= Right shift AND assignment operator C >>= 2 is same as C = C >> 2
&= Bitwise AND assignment operator C &= 2 is same as C = C & 2
^= bitwise exclusive OR and assignment operator C ^= 2 is same as C = C ^ 2
|= bitwise inclusive OR and assignment operator C |= 2 is same as C = C | 2

Misc Operators ↦ sizeof & ternary

Sizeof  এবং সহ কয়েক অন্যান্য গুরুত্বপূর্ণ অপারেটর আছে  যা  সি ভাষা দ্বারা সমর্থিত.

Operator Description Example
sizeof() Returns the size of an variable. sizeof(a), where a is integer, will return 4.
& Returns the address of an variable. &a; will give actual address of the variable.
* Pointer to a variable. *a; will pointer to a variable.
? : Conditional Expression If Condition is true ? Then value X : Otherwise value Y

Operators Precedence in C

অপারেটর প্রাধান্য একটি অভিব্যক্তি পদ গ্রুপ নির্ধারণ করে. এই একটি অভিব্যক্তি মূল্যায়ন করা হয় কিভাবে প্রভাবিত করে. নির্দিষ্ট অপারেটরের অন্যদের তুলনায় বেশি প্রাধান্য আছে; উদাহরণস্বরূপ, গুণ অপারেটর ছাড়াও অপারেটর বেশী প্রাধান্য আছে.

 

উদাহরণস্বরূপ X = 7 + + 3 * 2; এখানে, এক্স, 13 নির্ধারিত হয় না 20 অপারেটর * + + চেয়ে বেশী প্রাধান্য আছে, তাই এটা প্রথম 3 * 2 দিয়ে গুন করা হয় এবং তারপর 7 মধ্যে যোগ করা হয়.

 

এখানে, সর্বোচ্চ প্রাধান্য দিয়ে অপারেটরদের টেবিলের শীর্ষে প্রদর্শিত হবে, সর্বনিম্ন সঙ্গে যারা নীচের অংশে প্রদর্শিত হবে. একটি অভিব্যক্তি মধ্যে বেশি প্রাধান্য, অপারেটর প্রথম মূল্যায়ন করা হবে.

Category  Operator  Associativity 
Postfix () [] -> . ++ – – Left to right
Unary + – ! ~ ++ – – (type)* & sizeof Right to left
Multiplicative * / % Left to right
Additive + – Left to right
Shift << >> Left to right
Relational < <= > >= Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR | Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
Comma , Left to right

(In Bengali) MongoDB Environment. Install MongoDB on Windows and Linux

স্বাগতম আপনাকে আমাদের টিউটোরিয়াল সাইটে। এখানে আজকে আমরা আলোচোনা করবো কিভাবে আপনি আপনার উইন্ডোজ এ এবং উবনটু তে MongoDB ইন্সটল দিবেন।

Install MongoDB On Windows

 

MongoDB ইন্সটল করতে আপনাকে আগে সর্বশেষ ভার্সন ডাউনলোড করতে হবে, যা আপনার উইন্ডোজ এর ভার্সন এর সাথে মিল থাকবে। এখানে সরাসরি ডাউনলোড এর লিংক দাওয়া হলোঃ http://www.mongodb.org/downloads আপনার উইন্ডোজ এর ভার্সন জানতে কমান্ড প্রমট এর সাহায্য নিন।

C:\>wmic os get osarchitecture

OSArchitecture

64-bit

C:\>

৩২-বিট ভার্সন এ MongoDB সাপোর্ট করে তাতে আপনার ২জিবি র‍্যাম থাকতে হবে। এগুলো থাকলে আপনি আপনার ডাউনলোড ফাইলটি ওপেন করে mongodb-win32-x86_64-[version] ফাইলটি ইন্সটল দিন।

এখন কমান্ড প্রমট এর সাহায্যে ওপেন করুন

C:\>move mongodb-win64-* mongodb

1 dir(s) moved.

C:\>

 

যদি আপনি অন্য কোন যায়গায় extract করেন তাহলে সেই যায়গায় যাবেন।

MongoDB এর নিজস্ব ফাইল সংরক্ষণ করার জন্য একটি ডাটা ফোল্ডার প্রয়োজন. তথ্য \ ডিবি \: MongoDB ডেটা ডিরেক্টরি ডিফল্ট গ. তাই আপনি যদি কমান্ড প্রম্পট ব্যবহার করে এই ফোল্ডার তৈরি করতে হবে. নিম্নলিখিত কমান্ড ক্রম সম্পাদন করে।

C:\>md dataC:\md data\db

 

 

আপনার বিভিন্ন স্থানে MongoDB ইনস্টল থাকে তাহলে আপনি mongod.exe পথ dbpath সেটিং দ্বারা \ তথ্য \ ডিবি জন্য কোন বিকল্প পথ দেখিয়ে দিতে  হবে. একই সমস্যা নিম্নলিখিত কমান্ডের জন্য

 

কমান্ড প্রম্পট-এ MongoDB ইনস্টলেশন ফোল্ডার মধ্যে উপস্থিত বিন ডিরেক্টরি নেভিগেট. ফোল্ডার ডি আমার ইনস্টলেশন ধরুন: সেট আপ \ \ MongoDB

C:\Users\XYZ>d:D:\>cd “set up”D:\set up>cd mongodbD:\set up\mongodb>cd binD:\set up\mongodb\bin>mongod.exe –dbpath “d:\set up\mongodb\data”

 

কনসোল mongod.exe প্রক্রিয়া সফলভাবে চলমান ইঙ্গিত করে যে এই সংযোগ বার্তা জন্য অপেক্ষা প্রদর্শন করা হবে.

 

এখন MongoDB চালানোর জন্য আপনি অন্য কমান্ড প্রম্পট ওপেন করুন এবং নিচের কমান্ড প্রয়োগ করতে হবে

D:\set up\mongodb\bin>mongo.exeMongoDB shell version: 2.4.6connecting to: test>db.test.save( { a: 1 } )>db.test.find(){ “_id” : ObjectId(5879b0f65a56a454), “a” : 1 }>

 

এই যে MongoDB ইনস্টল করা প্রদর্শন এবং সফলভাবে চালানো হবে.পরবর্তী সময়  আপনি শুধুমাত্র কমান্ড প্রয়োগ করে  MongoDB চালাতে পারবেন।

D:\set up\mongodb\bin>mongod.exe –dbpath “d:\set up\mongodb\data” D:\set up\mongodb\bin>mongo.exe

 

Install MongoDB on Ubuntu

 

MongoDB সার্বজনীন GPG key import করার জন্য নিম্নলিখিত কমান্ড ব্যবহার করুন:

sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10

Create a /etc/apt/sources.list.d/mongodb.list file using the following command.

echo ‘deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen’ | sudo tee /etc/apt/sources.list.d/mongodb.list

Now issue the following command to update the repository:

sudo apt-get update

Now install the MongoDB by using following command:

apt-get install mongodb-10gen=2.2.3

উপরে ইনস্টলেশন 2.2.3 বর্তমানে MongoDB সংস্করণ প্রকাশিত হয়. সবসময় সর্বশেষ সংস্করণ ইনস্টল করতে ভুলবেন না. এখন সফলভাবে MongoDB ইনস্টল করা হয়.

Start MongoDB

sudo service mongodb start

Stop MongoDB

sudo service mongodb stop

Restart MongoDB

sudo service mongodb restart

To use mongodb run the following command

mongo

 

এই mongod উদাহরণস্বরূপ চলমান সাথে সংযোগ করা হবে.

MongoDB Help

MongoDB ক্লায়েন্ট কমান্ড টাইপ db.help () এর তালিকা পাবেন. এই হিসাবে অনুসরণ করে আপনি কমান্ড তালিকা দিতে হবে:

MongoDB Statistics

MongoDB সার্ভার সম্পর্কে পরিসংখ্যান MongoDB ক্লায়েন্ট কমান্ড db.stats (টাইপ) পেতে. এই ডাটাবেস নাম প্রদর্শন ডাটাবেসের মধ্যে সংগ্রহ এবং নথি বাধা হবে. কমান্ড নীচে প্রদর্শিত হয় আউটপুট: