পিএইচপি ৫ : ফাইল তৈরি / লেখা (PHP 5 File Create/Write)

Huge Sell on Popular Electronics

আজ আমরা শিখবো কিভাবে পিএইচপি সার্ভারে ফাইল তৈরি করা যায় বা সার্ভারে থাকা ফাইল কিভাবে লেখা যায় ।

 

পিএইচপি ফাইল তৈরি বা fopen() ফাংশনের কাজ [PHP Create File - fopen()]

এখানে এই fopen() ফাংশনটি ফাইল তৈরিতে ব্যবহার করা হয় । পিএইচপি তে এই ফাংশনটি আবার কিন্তু ফাইল ওপেন করতে ব্যবহার করা হয় । তাই আসলেই ব্যাপারটা একটু হতভম্বকর তাই না? হতভম্বকর হলেও ব্যাপারটা কিন্তু পুরাটাই সত্য । সেটা কিভাবে? আসুন তাহলে জেনে ফেলি ।

আপনি যদি কোনো ফাইলের নামে fopen() ফাংশন ব্যবহার করেন যেটার অস্তিত্ব নেই, তাহলে এটি তখন নতুন একটি ফাইল তৈরির কাজে ব্যবহৃত হবে । মনে রাখবেন ফাইলটি ওপেন করে লেখার জন্য (w) এবং যুক্ত করার জন্য (a) ব্যবহৃত হয় ।


$myfile = fopen("testfile.txt", "w")

 

আসুন আমরা উপরের কোডটি লিখে "testfile.txt" নামে সেভ করি । আর কোডটি কিন্তু অবশ্যই পিএইচপি কোডের একই ডিরেক্টরিতে রাখবেন ।

 

পিএইচপি ফাইলের পারমিশন প্রদান(PHP File Permissions)

আপনি যদি উপরের কোডটি লেখার পর তা ওপেন করতে গেলে এরর রিপোর্ট দেয়, তাহলে বুঝতে হবে আপনার ফাইলটিকে রান (run) করার জন্য পারমিশন দেয়া হয়নি । তাই আপনাকে তখন হার্ডড্রাইভের ফাইলটিকে পারমিশন দিতে হবে যাতে পিএইচপি তা অ্যাক্সেস (access) করতে পারে ।

 

পিএইচপি ফাইল লেখা বা fwrite() ফাংশনের কাজ [PHP Write to File - fwrite()]

fwrite() ফাংশন ফাইল লেখার কাজে ব্যবহৃত হয় ।
fwrite() এর প্রথম প্যারামিটারটি ফাইলের লেখার জন্য নাম নির্দেশ করে এবং দ্বিতীয় প্যারামিটারটি যা ফাইলের ভিতর লিখতে হবে সেই কোডকে নির্দেশ করে ।


< ?php
 $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
 $txt = "Mostafizur Firoz\n";
 fwrite($myfile, $txt);
 $txt = "Wrongdhonu Firoz\n";
 fwrite($myfile, $txt);
 fclose($myfile);
 ?>

 

আসুন উপরের কোডটিকে "newfile.txt" নামে সেভ করি । খেয়াল করলে দেখবেন যে, আমরা "newfile.txt" কে দুইবার লিখেছি । প্রতিবার আমরা ফাইলের string $txt কে লেখার সময় এমনভাবে লিখেছি যেন প্রথমটায় "Mostafizur Firoz" এবং দ্বিতীয়টায় "Wrongdhonu Firoz" বিদ্যমান থাকে । লেখা শেষ হওয়ার পর আমরা fclose() ফাংশনের দ্বারা ফাইলটিকে শেষ করেছি ।

এখন আমরা যদি "newfile.txt" ফাইলটিকে ওপেন করি তাহলে নিচের মত দেখতে পাবোঃ


Mostafizur Firoz
Wrongdhonu Firoz


 

পিএইচপি ওভাররাইটিং (PHP Overwriting)

এখন এই "newfile.txt" ফাইলে কিছু ডাটা সংরক্ষিত বা জমা আছে । এখন আমরা দেখবো আগে থেকে থাকা এমন ফাইল আবার নতুন করে লেখার জন্য ওপেন করলে কেমন হবে । এমন আগে থেকে থাকা নামের ফাইল যদি আমরা নতুন করে ওপেন করি তাহলে তার ভিতর থাকা সকল তথ্য মুছে গিয়ে একটা খালি ফাইল ওপেন হবে ।


< ?php
 $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
 $txt = "Sa Learning School\n";
 fwrite($myfile, $txt);
 $txt = "sites tree\n";
 fwrite($myfile, $txt);
 fclose($myfile);
 ?>

 

আসুন আমাদের আগে থেকে সেভ থাকা "newfile.txt" নামের ফাইলটি ওপেন করি এবং তাতে উপরের কোডটুকু লিখে সেভ করি । তাহলে ওপেন করার সময় আগে থেকে লেখা Mostafizur এবং Wrongdhonu আগেই অদৃশ্য হয়ে যাবে এবং আমাদের নতুন করে লেখা ডাটাকে আমাদের সামনে দেখাবে । তাহলে আমরা তখন ফাইলটিকে ওপেন করলে নিচের মত করে দেখতে পারবো ।


Sa Learning School
sites tree


 

 

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

 

MongoDB Delete Document . MongoDB ডিলিট ডকুমেন্ট

Huge Sell on Popular Electronics

MongoDB ডিলিট ডকুমেন্ট

নয়ন চন্দ্র দত্ত

remove() পদ্ধতি

MongoDB এর remove() পদ্ধতি কালেকশন থেকে ডকুমেন্ট ডিলিট করতে ব্যবহৃত হয়।

দুটি প্যারামিটার বাদে সবক্ষেত্রে remove() পদ্ধতি গ্রণযোগ্য হয়। একটি deletion criteria এবং অন্যটি justOne flag ।

১। deletion criteria: (অপশনাল) ডকুমেন্ট অনুযায়ী deletion criteria মেছে ফেলা হবে।

২। justOne: যদি সত্য বা ১ সেট করা থাকে তবে শুধুমাত্র একটি ডকুমেন্ট মুছা হবে।

 

সিনট্যাক্স বা বাক্য গঠন:

remove() পদ্ধতি এর বেসিক সিন্ট্যাক্স নিম্নরূপঃ

>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)

 

উদাহরণঃ

নির্দেশিত ডেটায় mycol কালেকশন বিবেচনা করি।

 

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}

{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}

{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

 

উল্লেখিত উদাহণে 'MongoDB Overview' নামক টাইটেলের সকল ডকুমেন্ট মেছে ফেলবে।

>db.mycol.remove({'title':'MongoDB Overview'})

>db.mycol.find()

{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}

{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

>

শুধুমাত্র এক মুছে ফেলা

যদি একাধিক রেকর্ড থাকে এবং আপনি যদি শুধু প্রথম রেকর্ডটি মুছতে চান তাহলে remove() পদ্ধতির জায়গায় justOne প্যারামিটার ব্যবহার করুন।

>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

 

সব ডকুমেন্ট মুছে ফেলা

আপনি যদি মুছে ফেলার বিচার্য বিষয় উল্লেখ না করেন, তাহলে mongodb কালেকশন থেকে সব ডকুমেন্ট মুছে ফেলবে।

এটি এসকিউএল এর truncate  কমান্ড এর সমতুল্য।

>db.mycol.remove()

>db.mycol.find()

 

http://Bangla.SaLearningSchool.com

MongoDB Create Collection . MongoDB ড্রপ কালেকশন

Huge Sell on Popular Electronics

MongoDB ড্রপ কালেকশন
নয়ন চন্দ্র দত্ত

কেমন আছেন সবাই? আজ আমি আপনাদের জন্য নিয়ে এলাম একটি নতুন টিউটোরিয়াল - MongoDB ড্রপ কালেকশন । তাহলে চলুন আজকের টিউটোরিয়াল সম্পর্কে ।

drop() পদ্ধতি
MongoDB এর ডেটাবেস থেকে একটি কালেকশন ড্রপ করতে db.collection.drop() ব্যবহৃত হয়।

সিনট্যাক্স:
drop() কমান্ডের বেসিক সিনট্যাক্স বা বাক্য গঠন নিম্নরূপঃ

db.COLLECTION_NAME.drop()

উদাহরণ:
প্রথমত, আপনার mydb ডেটাবেসের মধ্যে available আছে এমন কালেকশন চেক করে নিন।

>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
tutorialspoint
>

এখন mycollection এই নাম দিয়ে কালেকশনটি ড্রপ করুন।

>db.mycollection.drop()
true
>

আবারো ডেটাবেস এর মধ্যে কালেকশনের লিস্ট চেক করে নিন।

>show collections
mycol
system.indexes
tutorialspoint
>

drop() পদ্ধতি সত্য দেখাবে যদি সিলেক্টকরা কালেকশনগুলো সঠিকভাবে ড্রপ হয়। অন্যথায় এটি মিথ্যা দেখাবে ।

MongoDB Create Database

Huge Sell on Popular Electronics

MongoDB ডেটাবেস তৈরি করা
লেখকঃ নয়ন চন্দ্র দত্ত

কি খবর সবার? আশা করছি সবাই ভাল আছেন। আজ আমি হাজির হয়েছি একটি নতুন টিউটোরিয়াল নিয়ে। আজ আমরা দেখব কীভাবে MongoDB ডেটাবেস তৈরি করা যায়। তাহলে আর কথা না
বাড়িয়ে আজকের টিউটোরিয়াল শুরু করি।

use কমান্ড
MongoDB use DATABASE_NAME ডেটাবেস তৈরি করতে বাবহৃত হয়। কমান্ড একটি নতুন ডেটাবেস তৈরি করে যদি এটা উপস্থিত না থাকে অন্যথায়, এটি বিদ্যমান ডেটাবেস এ ফিরে আসে।
সিনট্যাক্স
use DATABASE এর বেসিক বাক্য গঠন বিবৃতি নিম্নরূপঃ
use DATABASE_NAME

উদাহরণ:
আপনি যদি নাম দিয়ে একটি ডেটাবেস তৈরি করতে চান তাহলে use DATABASE বিবৃতি নিম্নরূপ হবেঃ
>use mydb
switched to db mydb

আপনার বর্তমান নির্বাচিত ডেটাবেস পরীক্ষা করার জন্য db কমান্ড ব্যবহার করুন
>db
mydb

যদি আপনি আপনার ডেটাবেস তালিকা চেক করতে চান তাহলে show dbs কমান্ড ব্যবহার করুন
>show dbs
local 0.78125GB
test 0.23012GB

আপনার তৈরি ডেটাবেস ( Mydb ) তালিকায় উপস্থিত নেই। ডেটাবেস প্রদর্শন করতে আপনি তাতে অন্তত একটি ডকুমেন্ট সন্নিবেশ করতে হবে।
>db.movie.insert({"name":"tutorials point"})
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB

MongoDB তে ডিফল্ট ডাটাবেস পরীক্ষা
আপনি যদি কোনো ডেটাবেস তৈরি না করে থাকেন তাহলে সংগ্রহগুলো টেস্ট ডেটাবেসের মধ্যে সংরক্ষিত হবে।

আশা করছি ভাল লেগেছে আজকের টিউটোরিয়াল। পরবর্তিতে MongoDB বিষয়ক আরো টিউটোরিয়াল নিয়ে হাজির হব। আজকের মত এই পর্যন্তই। সবাই ভাল থাকবেন আর কোন সমস্যা হলে নিশ্চই কমেন্ট করবেন ।
http://Bangla.SaLearningSchool.com

পিএইচপি ৫ ফাইল আপ্লোড (PHP 5 File Upload)

Huge Sell on Popular Electronics

Sheikh Mahfuzur Rahman

 

পিএইচপি'র সাহায্যে খুব সহজেই সার্ভারে ফাইল আপলোড করা যায়। যাহোক, সহজ হওয়ার কারণে বিপদও বেশি হতে পারে! তাই সার্ভারে ফাইল আপলোডের সুযোগ দেয়ার সময় সতর্ক হোন!

 

"php.ini” ফাইল কনফিগার করা

প্রথমে, ফাইল আপলোড করার জন্য পিএইচপি কনফিগার করা হয়েছে কিনা তা নিশ্চিত করতে হবে। আপনার "php.ini” ফাইলে file_uploads ডিরেক্টিভকে খুঁজে বের করুন এবং এটিকে সচল (On) করুনঃ


file_uploads = On

 

এইচটিএমএল ফর্ম তৈরি করা

তারপর একটি এইচটিএমএল ফর্ম তৈরি করুন যা ইউজারদেরকে ইমেজ ফাইল সিলেক্ট করে আপলোড করার সুযোগ করে দেয়:


<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
 Select image to upload:
 <input type="file" name="fileToUpload" id="fileToUpload">
 <input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>

 

উপরের ফর্মটি তৈরি করার সময় নিচের নিয়মগুলো অনুসরন করুন

  • ফর্মটি যেন method="post" কে ব্যবহার করে তা নিশ্চিত করতে হবে।
  • ফর্মটির উল্লেখিত এট্রিবিউটগুলোরও প্রয়োজন পড়বেঃ enctype="multipart/form-data"। ফর্মটি সাবমিট করার সময় কোন কনটেন্ট-টাইপ ব্যবহার করতে হবে তা এটা ঠিক করে দেয়।

উপরের উপকরণগুলো ছাড়া ফাইল আপলোড হবেনা।

 

অন্যান্য যেসব দিকে খেয়াল রাখতে হবে

<input> ট্যাগের type="file" এট্রিবিউট ইনপুট-ফিল্ডকে, ইনপুট-কন্ট্রোল এর পাশে একটি "Browse" বাটনসহ, একটি ফাইল-সিলেক্ট কন্ট্রোল হিসেবে দেখায়।

উপরের ফর্মটি "upload.php" নামক ফাইলের কাছে, যা আমরা এরপর তৈরি করবো, ডাটা পাঠায়।

 

আপলোড ফাইল পিএইচপি স্ক্রিপ্ট তৈরি করা

"upload.php" ফাইলটি ফাইল আপলোডের কোড ধারণ করেঃ


<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
     $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
     if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
     } else {
        echo "File is not an image.";
        $uploadOk = 0;
     }
}
?>

উপরের পিএইচপি স্ক্রিপ্টটির ব্যাখ্যা

  • $target_dir = "uploads/" - ফাইলটি কোন ডিরেক্টরিতে রাখা হবে তা ঠিক করে
  • $target_file - ফাইলটি আপলোড করার পাথ নির্ধারণ করে
  • $uploadOk=1 - এটি এখনো ব্যবহার করা হয়নি (পরবর্তীতে ব্যবহার করা হবে)
  • $imageFileType - এটি ফাইলের ফাইল এক্সটেনশন ধারণ করে

এরপর স্ক্রিপ্টটি চেক করে দেখে যে ইমেজ ফাইলটি সত্যিকার ইমেজ ফাইল কিনা।

লক্ষ্যণীয়ঃ আপনাকে '"upload.php" ফাইলটি যে ডিরেক্টরিতে আছে সেখানে "uploads" নামের ডিরেক্টরি তৈরি করতে হবে। আপলোড করা ফাইলগুলো সেখানে সেভ হবে।

 

কোন ফাইল ইতোমধ্যেই আছে কিনা চেক করা

এখন আমরা কিছু সীমাবদ্ধতা আরোপ করবো।

প্রথমেই, আমরা চেক করবো ফাইলটি এর মধ্যেই '"uploads" ফোল্ডারে আছে কিনা। যদি সেটি থাকে তাহলে একটি এরর মেসেজ দেখায় এবং $uploadOk শূন্যতে সেট হয়ঃ


// Check if file already exists
 if (file_exists($target_file)) {
     echo "Sorry, file already exists.";
     $uploadOk = 0;
 }

 

ফাইল সাইজ লিমিট করা

আমাদের এইচটিএমএল ফর্মের ইনপুট ফিল্ডটির নাম "fileToUpload"
এখন আমাদের ফাইলের সাইজ ঠিক করতে চাই। যদি ফাইলটি ৫০০কিলোবাইটের চেয়ে বড় হয় তাহলে একটি এরর মেসেজ দেখায় এবং $uploadOk শূন্যতে সেট হয়ঃ


 // Check file size
 if ($_FILES["fileToUpload"]["size"] > 500000) {
     echo "Sorry, your file is too large.";
     $uploadOk = 0;
 }

 

ফাইল টাইপ সীমিত করা

নিচের কোডটি শুধুমাত্র ইউজারদের JPG, JPEG, PNG, এবং GIF ফাইল আপলোড করতে দেয়। অন্য ধরণের ফাইল টাইপগুলো একটি এরর মেসেজ দেখায় এবং $uploadOk শূন্যতে সেট করেঃ


// Allow certain file formats
 if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
 && $imageFileType != "gif" ) {
     echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
     $uploadOk = 0;
 }

 

আপলোড ফাইলের পিএইচপি স্ক্রিপ্ট সম্পূর্ণ করা

সম্পূর্ণ "upload.php" ফাইলটি ঠিক এমন দেখাবেঃ


<?php
 $target_dir = "uploads/";
 $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
 $uploadOk = 1;
 $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
 // Check if image file is a actual image or fake image
 if(isset($_POST["submit"])) {
     $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
     if($check !== false) {
         echo "File is an image - " . $check["mime"] . ".";
         $uploadOk = 1;
     } else {
         echo "File is not an image.";
         $uploadOk = 0;
     }
 }
 // Check if file already exists
 if (file_exists($target_file)) {
     echo "Sorry, file already exists.";
     $uploadOk = 0;
 }
 // Check file size
 if ($_FILES["fileToUpload"]["size"] > 500000) {
     echo "Sorry, your file is too large.";
     $uploadOk = 0;
 }
 // Allow certain file formats
 if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
 && $imageFileType != "gif" ) {
     echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
     $uploadOk = 0;
 }
 // Check if $uploadOk is set to 0 by an error
 if ($uploadOk == 0) {
     echo "Sorry, your file was not uploaded.";
 // if everything is ok, try to upload file
 } else {
     if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
         echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
     } else {
         echo "Sorry, there was an error uploading your file.";
     }
 }
 ?>

 

পিএইচপি'র ফাইল সিস্টেম ফাংশনগুলোর পূর্ন রেফারেন্সের জন্য আমাদের পিএইচপি ফাইল সিস্টেম রেফারেন্সে যান।

 

jQuery Mobile – Events

Huge Sell on Popular Electronics

jQuery Mobile এর Event গুলো
ইন্দ্র ভূষণ শুভ

Events= একটি ওয়েব পেইজ যা সমস্ত পরির্দশকের বিভিন্ন কর্মকান্ডে সাড়া দিতে পারে।

jQuery Mobile এর Event গুলো

jQuery Mobile এ আপনি যেকনো মানের jQuery Events ব্যবহার করতে পারেন।
উপরন্ত, jQuery Mobile আপনাকে বিভিন্ন ধরনের Events ব্যবহারের সুযোগ দিবে যা মোবাইলে ব্রাউজিং করার উপযুক্ত।
Touch Events- যখন একজন ব্যবহারকারী পর্দা স্পর্শ করে তখনই শুরু হয় (tap এবং swipe)
Scroll Events- যখন একজন ব্যবহারকারী উপর এবং নীচে স্ক্রল করে তখন শুরু হয়
Orientation events- যখন যন্ত্রটি উল্লম্বভাবে বা অনুভূমিকভাবে আবর্তিত করা হয় তখন শুরু হয়
Page events- একটি পাতা যখন দেখানো, লুকানো, তৈরি, লোড অথবা আনলোড করা হয় তখন শুরু করে
jQuery Mobile এর সমস্ত Events এর reference এর জন্য, দয়া করে jQuery Mobile Events Reference পেইজটি পরিদর্শন করুন।
jQuery Mobile Events এর প্রণালীঃ
jQueryতে, আপনি jQuery কোড প্রতিরোধ করে শুরু হওয়ার পুর্বে শেষ হবে এমন document তৈরির event শিখতে পারেন (প্রস্তুত)

jQuery তে document প্রস্তুতের event

নিজে চেষ্টা করুন>>

যাহোক, jQuery Mobile এ আমরা পেইজ তৈরির event ব্যবহার করি, যা ঘটে যখন DOM এ পেইজ তৈরি হয়, কিন্তু বর্ধিতকরনের আগে সম্পূর্ণ হয়।
দ্বিতৃয় পরিমাপকটি ঘটনা উল্লেখ করতে ("#pageone") পেইজ আইডি পয়েন্ট করেঃ

jQuery Mobile এ পেইজ তৈরির event
>

বিশেষ দ্রষ্টব্যঃ jQuery on() পদ্ধতি event হ্যান্ডলার জোড়ায় ব্যবহার করা হয়
পরবর্তী অধ্যায় jQuery Mobile এর কিছু অধিক জনপ্রিয় event ব্যাখ্যা করবে।

jQuery Mobile – Touch Events

Huge Sell on Popular Electronics

Paste translated/written article here
মোবাইলের jQuery Touch Events
ইন্দ্র ভূষণ শুভ

Touch Events শুরু হয় যখন ব্যবহারকারী মোবাইলের পর্দা স্পর্শ করে।
Touch Events ডেস্কটপ কম্পিউটারেও কাজ করেঃ মাউসের tap and swipe এর মাধ্যমে।
মোবাইলে jQuery ট্যাপঃ
ব্যবহারকারী যখন কনো উপাদানে ট্যাপ করতে শুরু করে তখনই ট্যাপের ঘটনা আরম্ভ হয়। নীচের উদাহরণটি বলছেঃ বর্তমান

উপাদান আড়াল হয়ে যায়, যখন ট্যাপ

উপাদানে ইন্ধন যোগায়।
উদাহরণঃ
$("p").on("taphold",function(){
$(this).hide();
});
নিজে চেষ্টা কর>>
মোবাইলে jQuery ট্যাপহোল্ডঃ
যখন ব্যবহারকারী কোন উপাদান ট্যাপ এবং এক সেকেন্ডের জন্য তা ধরে রাখে তখন ট্যাপহোল্ড আরম্ভ হয়ঃ
উদাহরণঃ
$("p").on("taphold",function(){
$(this).hide();
});
নিজে চেষ্টা কর>>

মোবাইলে jQuery সুইপঃ
সুইপের ঘটনা তখনই শুরু হয় যখন ব্যবহারকারী 30px এর বেশীতে কোন উপাদানকে আনুভূমিকভাবে সুইপ করে।
উদাহরণঃ
$("p").on("swipe",function(){
$("span").text("Swipe detected!");
});
নিজে চেষ্টা কর>>

মোবাইলে jQuery সুইপলেফটঃ
সুইপলেফটের ঘটনা তখনই শুরু হয় যখন ব্যবহারকারী 30px এর বেশীতে কোন উপাদানকে বামদিকে সুইপ করে।
উদাহরণঃ
$("p").on("swipeleft",function(){
alert("You swiped left!");
});
নিজে চেষ্টা কর>>

মোবাইলে jQuery সুইপরাইটঃ
সুইপরাইট ঘটনা তখনই শুরু হয় যখন ব্যবহারকারী 30px এর বেশীতে কোন উপাদানকে ডানদিকে টানাটানি করে।
উদাহরণঃ
$("p").on("swiperight",function(){
alert("You swiped right!");
});
নিজে চেষ্টা কর>>

jQuery Mobile – Page Event

Huge Sell on Popular Electronics

জেকোয়েরি ইভেন্টঃ

ইভেন্টঃ

ওয়েব পেজে ইউজার কখনও মাউস ক্লিক করে (কোন একটা লিংক বা যেকোন কিছুর উপর), কিবোর্ড দিয়ে টাইপ করে (ফর্ম থাকলে), কখনও কোন একটা এলিমেন্টের উপর মাউস নিয়ে যেতে পারে এটা কোন লিংক, প্যারাগ্রাফ, ইনপুট ফিল্ড বা যেকোন কিছুর উপরে হতে পারে। এগুলি হচ্ছে এক একটা ইভেন্ট। যেমনঃ কোন একটা প্যারাগ্রাফ বা বাটনের উপর ক্লিক করলেন, তাহলে এটা একটা ইভেন্ট (ক্লিক ইভেন্ট)। কোন একটা এলিমেন্টের উপর মাউস নিয়ে গেলেন এটা একটা ইভেন্ট (মাউস হোভার ইভেন্ট)। এরুপ আরো ইভেন্ট আছে যেমনঃ scroll ইভেন্ট, load ইভেন্ট, focus ইভেন্ট ইত্যাদি।

ইভেন্ট হ্যান্ডলারঃ

ওয়েব পেজে এমন অনেক ইভেন্ট ঘটে, এই ইভেন্টগুলি ধরে আমরা ইচ্ছে করলে কোন কাজ করতে পারি, কোন জেকোয়েরির কোড (jQuery Code) এক্সিকিউট করাতে পারি। জেকোয়েরিতে অনেক ফাংশন আছে যেগুলি শুধু এসব কোন ইভেন্ট ঘটলে এক্সিকিউট হবে এই ফাংশনগুলিকে বলে ইভেন্ট হ্যান্ডলার। ready(), click(), hover() এরুপ আরো অনেক ইভেন্ট হ্যান্ডলার আছে। যখনি একটা ইভেন্ট ঘটল, এটাকে টেকনিকাল ভাষায় বলে অমুক ইভেন্ট fire হল। একটা ইভেন্ট fire হওয়ার সাথে সাথে ঐ ইভেন্ট সংশ্লিষ্ট হ্যান্ডলার এর ভিতর কোড এক্সিকিউট হয়।
কোন একটা এলিমেন্ট সিলেক্ট করে এরপর যদি ready() ইভেন্ট হ্যান্ডলার ব্যবহার করেন তাহলে ঐ এলিমেন্টটি পেজে সম্পূর্ন লোড হওয়ার পর ready() এর ভিতর কোডগুলি কাজ করা শুরু করবে। যদি এলিমেন্ট লোড হওয়া পূর্ন না হয় তাহলে এর ভিতরের কোড কাজ করবেনা বরং অপেক্ষা করবে। সাধারনত জেকোয়েরির কোডের শুরুতেই এই হ্যান্ডলার ব্যবহার করে অর্থ্যাৎ পুরো পেজ সম্পূর্ন লোড হবে এরপর জেকোয়েরির অন্যসব কোডগুলি কাজ করা শুরু করবে।
অনুরুপ অন্যান্য ইভেন্ট হ্যান্ডলার এর ক্ষেত্রেও প্রযোজ্য যেমনঃ $('#test').click() এভাবে থাকলে এর অর্থ হচ্ছে test আইডি সম্বলিত এলিমেন্টটি তে ক্লিক করার পর click() ইভেন্ট হ্যান্ডলার এর ভিতরের কোড এক্সিকিউট হবে।

এখন উপরের এই প্যারাগ্রাফটির click এর জায়গায় hover শব্দটি প্রতিস্থাপন করুন অথবা যেকোন ইভেন্ট হ্যান্ডলার এর নাম প্রতিস্থাপন করুন এবং লাইনটি পড়ুন।

ধন্যবাদ।

পিএইচপি ৫ সেশন্স (PHP 5 Sessions)

Huge Sell on Popular Electronics

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

পিএইচপি সেশান কি?

আপনি যখন একটি অ্যাপ্লিকেশনে কাজ করেন তখন আপনি সেটিকে চালু করেন, কিছু পরিবর্তন তৈরি করেন এবং তারপর আপনি অ্যাপ্লিকেশনটিকে ক্লোজ করেন। এটি একটি সেশানের মতো। কম্পিউটার এখানে জানে আপনি কে। এটা জানে আপনি কখন অ্যাপ্লিকেশনটি চালু করেছেন এবং কখন বন্ধ করেছেন। কিন্তু ইন্টারনেটের ক্ষেত্রে এখানে একটি সমস্যা রয়েছেঃ ওয়েব সার্ভার জানেনা, আপনি কে এবং কি করেন, কারন এইচটিটিপি অবস্থা বজায় বা মনে রাখেনা।

সেশান ভ্যারিয়েবলগুলো ইউজারদের তথ্য সংরক্ষণের মাধ্যমে এই সমস্যাটির সমধান করতে পারে যে তথ্য অসংখ্য পেজে ব্যবহার করা যায় ( যেমন ইউজারনেম, প্রিয় রং ইত্যাদি)। ডিফল্ট হিসেবে সেশান ভ্যারিয়েবলগুলো ইউজার বা সাইট ব্যবহারকারী ব্রাউজার বন্ধ করা পর্যন্ত কার্যকর থাকে।
তাই, সেশান ভ্যারিয়েবলগুলো একজন মাত্র ইউজারের তথ্য ধারণ করে এবং একটি অ্যাপ্লিকেশনের মধ্যে সবগুলো পেজে কার্যকর থাকে।

টিপসঃ আপনার যদি একটি একটি স্থায়ী তথ্য সেভ করার জায়গার দরকার হয় তাহলে আপনি সেই তথ্য ডাটাবেজে সেভ করতে পারেন।

 

একটি পিএইচপি সেশান শুরু করা

session_start() ফাংশনের মাধ্যমে একটি সেশান শুরু হয়। পিএইচপি গ্লোবাল ভ্যারিয়েবলের ( $_SESSION ) মাধ্যমে সেশান ভ্যারিয়েবলগুলো নির্দিষ্ট করা হয়। এখন "demo_session1.php" নামের একটি নতুন পেজ তৈরি করা যাক। এই পেজে আমরা একটি নতুন পিএইচপি সেশান শুরু করি এবং কিছু ভ্যারিয়েবল সেট করিঃ


< ?php
 // Start the session
 session_start();
 ?>
 < !DOCTYPE html>
< ?php
 // Set session variables
 $_SESSION["favcolor"] = "green";
 $_SESSION["favanimal"] = "cat";
 echo "Session variables are set.";
 ?>

 

লক্ষ্যণীয়ঃ session_start() ফাংশনটিকে অবশ্যই আপনার ডকুমেন্টের সর্বপ্রথম উপাদান হতে হবে; যেকোন এইচটিএমএল ট্যাগের পূর্বেই।

 

পিএইচপি সেশান ভ্যারিয়েবলগুলোর ভ্যালু পাওয়া

তারপর, আমরা "demo_session2.php" নামের আরেকটি পেজ তৈরি করি। এই পেজ থেকে আমরা সেশানের তথ্যকে অ্যাক্সেস করি যা আমরা প্রথম পেজে ("demo_session1.php") সেট করেছিলাম।

লক্ষ্য করুন, সেশান ভ্যারিয়েবলগুলো প্রত্যেকটি নতুন পেজে আলাদাভাবে চলে যায়নি, এর পরিবর্তে এগুলো ঐ সেশান থেকে পাওয়া যায় যা আমরা প্রত্যেকটি পেজের শুরুতে চালু ("demo_session1.php") করেছিলাম। আরও লক্ষ্য করুন, সবগুলো সেশান ভ্যারিয়েবল global $_SESSION ভ্যারিয়েবলে সেভ হয়ঃ


<?php
 session_start();
 ?>
 <!DOCTYPE html>
 <html>
 <body>
 
 <?php
 // Echo session variables that were set on previous page
 echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
 echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
 ?>

 

একটি ইউজার সেশানের জন্য সবগুলো সেশান ভ্যারিয়েবল ভ্যাল্যুকে দেখানোর অন্য একটি পদ্ধতি হলো নিচের কোডটিকে রান করাঃ


< ?php
 session_start();
 ?>
 < !DOCTYPE html>
< ?php
 print_r($_SESSION);
 ?>

 

কিভাবে এটি কাজ করে? কিভাবে এটি আপনাকে চেনে?

বেশিরভাগ সেশান ইউজারদের কম্পিউটারে একটি ইউজার-কি সেট করে যা এরকম দেখায়ঃ 765487cf34ert8dede5a562e4f3a7e12 । তারপর, যখন অন্য পেজে আরেকটি সেশান খোলা হয়, এটি ইউজার-কি খুঁজে পেতে কম্পিউটারকে স্ক্যান করে। যদি কোন মিল খুঁজে পাওয়া যায়, এটা ঐ সেশানে অ্যাক্সেস করে; যদি না পাওয়া যায় তাহলে এটি নতুন সেশান শুরু করে।

 

একটি পিএইচপি সেশান ভ্যারিয়েবল মডিফাই করা

সেশান ভ্যারিয়েবলকে পরিবর্তন করতে, শুধু এটাকে অভার রাইট করুনঃ


< ?php
 session_start();
 ?>
 < !DOCTYPE html>
< ?php
 // to change a session variable, just overwrite it
 $_SESSION["favcolor"] = "yellow";
 print_r($_SESSION);
 ?>

 

একটি পিএইচপি সেশানকে শেষ করে দেয়া

সবগুলো গ্লোবাল সেশান ভ্যারিয়েবলকে মুঁছে দিতে এবং নষ্ট করে দিতে session_unset() এবং session_destroy() ব্যবহার করুনঃ


< ?php
 session_start();
 ?>
 < !DOCTYPE html>
< ?php
 // remove all session variables
 session_unset();
// destroy the session
 session_destroy();
 ?>

 

জেকোয়েরি দিয়ে মোবাইল ফরমের মেনু সিলেকশন তৈরি ।

Huge Sell on Popular Electronics

জেকোয়েরি দিয়ে মোবাইল ফরমের মেনু সিলেকশন তৈরি ।
লেখকঃ মোস্তাফিজুর ফিরোজ ।

জেকোয়েরি দিয়ে কিন্তু সব কিছুই করা যায় । যদি আপনি জেকোয়েরি ভাল করে বুঝতে পারেন এবং আপনি সেটাকে নিজের মত করে ব্যবহার করতে পারেন । আজ আমি আপনাদের জেকোয়েরি দিয়ে মোবাইল ফরমের মেনু সিলেকশন তৈরি করা শিখাবো ।

জেকোয়েরি মোবাইলের মেনু সিলেকশন
আপনি দেখবেন আইফোনে মেনু সিলেক্ট করতে গেলে যেমন দেখায় অ্যান্ড্রয়েড ফোনে সিলেক্ট করতে গেলে আরেক রকম দেখায় । এটা আলাদা দেখায় কারণ তারা আলাদা আলাদা জেকোয়েরি এর সেটিংস করে রেখেছে ।
আসুন তাহলে আমরাও এমন একটা ড্রপ-ডাউন লিস্ট তৈরি করি ।

<form method="post" action="demoform.asp">
<fieldset class="ui-field-contain">
<label for="day">Select Day</label>
<select name="day" id="day">
<option value="mon">Monday</option>
<option value="tue">Tuesday</option>
<option value="wed">Wednesday</option>
</select>
</fieldset>
</form>

এখানে <select> element দিয়ে কতগুলো অপশন রাখা হয়েছে সিলেক্ট করার জন্য । আর <option> elements গুলো অপশন গুলো ড্রপ-ডাউন আকারে দেখাতে সাহায্য করছে ।

যদি আপনার অপশন লিস্ট অনেক বড় হয় তাহলে নিচের মত করে <optgroup> element যোগ করে আরো অপশন হিসেবে যোগ করতে পারেন ।
<select name="day" id="day">
<optgroup label="Weekdays">
<option value="mon">Monday</option>
<option value="tue">Tuesday</option>
<option value="wed">Wednesday</option>
</optgroup>
<optgroup label="Weekends">
<option value="sat">Saturday</option>
<option value="sun">Sunday</option>
</optgroup>
</select>

নিজের মত করে মেনু সিলেকশন
আমি আগেই বলেছি আইফোন আর এন্ড্রয়েডের আলাদা আলাদা মেনু সিলেকশনের কথা । আপনি আইলেই কিন্তু সব মোবাইলে নিজের মত করে একই রকম মেনু সিকশন দেখাতে পারেন । এজন্য আপনাকে data-native-menu="false" attribute যোগ করত হবে নিচের মত করে ।
<select name="day" id="day" data-native-menu="false">

একাধিক মেনু সিলেকশন
আমরা দেখি আমাদের অ্যালার্ম ক্লকে একাধিক বারের জন্য অ্যালার্ম সিলেক্ট করার অপশন থাকে । এটা করার জন্য আপনাকে <select> element এর ভিতর নিচের মত করে multiple অপশনটা যোগ করে দিতে হবে ।
<select name="day" id="day" multiple data-native-menu="false">

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

jQuery Mobile – Navigation Bars

Huge Sell on Popular Electronics

লিখেছেন সুদীপ্ত সাহা
জেক্যুয়েরি মোবাইল নেবিগেশন বার

জেক্যুয়েরি নেবিগেশন বার হল অনেকগুলো লিঙ্কের সমন্বয়ে গঠিত একটি গ্রুপ যা হেডারে বা ফুটারে আড়াআড়ি বা খাড়াখাড়ি অবস্থায় থাকে। [image] এই বারের লিঙ্কগুলো

ইলিমেন্টের ভেতরে আনঅর্ডারড লিস্ট হিসেবে থাকে এবং

ইলিমেন্টে data-role="navbar" অ্যাট্রিভিউট ব্যবহার করা হয়।

উদাহরণঃ

ইঙ্গিতঃ নেভিগেশন বারের লিঙ্কগুলো ডিফল্টভাবেই বাটনে পরিবর্তিত হয় ("ui-btn" অথবা data-role="button" ক্লাস ব্যবহার করার দরকার হয় না)। বাটনের প্রস্থ কন্টেন্ট হিসেবে ডিফল্টভাবেই নির্ধারিত হয়। আনঅর্ডারড লিস্টের কন্টেন্টগুলো বাটনের সম্পূর্ণ জায়গাকে % অনুসারে ভাগ করে নেয়, ১টি বাটন হলে ১০০% ২টি বাটন হলে ৫০% করে ৩টি বাটন হলে ৩৩.৩% করে ইত্যাদি। যদি নেভিগেশন বারে ৫টির বেশি বাটন থাকে তাহলে তা স্বয়ংক্রিয়ভাবে দ্বিতীয় লাইনে চলে যায়।

নেভিগেশন বারের আইকনঃ নেভিগেশন বারে আইকন অ্যাড করতে চাইলে data-icon অ্যাট্রিভিউট ব্যবহার করতে হয়। উদাহরণঃ Search আইকন চ্যাপ্টারে বর্ণিত CSS ক্লাসের নির্দিষ্ট ভ্যালুগুলোই data-icon অ্যাট্রিভিউট ব্যবহার করে, তবে একমাত্র পার্থক্য হল- "ui-icon-value" ক্লাসের পরিবর্তে data-icon="value" অ্যাট্রিভিউট ব্যবহার করতে হয়।

অ্যাট্রিভিউট ভ্যালু data-icon="home" data-icon="arrow-r" data-icon="search"

পজিশনিং আইকনঃ একেবারে "ui-btn-icon-position" ক্লাসের মতো (আইকন চ্যাপ্টারে বর্ণিত), আপনাকে শুধু বাছাই করতে হবে আইকনটি আপনি নেভিগেশন বাটনের কোথায় ব্যবহার করতে চানঃ লেফট, রাইট, আপ অথবা বোটম। আইকনের পজিশন নেভিগেশন বার কন্টেইনারে ঠিক করে দিতে হয় কারণ প্রত্যেকটা বাটনের জন্য আলাদা আলাদা করে পজিশন ঠিক করে দেয়া সম্ভব নয়। পজিশন ঠিক করার জন্য data-iconpos অ্যাট্রিভিউট ব্যবহার করতে হয়ঃ

অ্যাট্রিভিউট ভ্যালু বর্ণনা data-iconpos="top" আইকন টপে প্রদর্শিত হবে data-iconpos="right" আইকন রাইট সাইডে প্রদর্শিত হবে data-iconpos="bottom" আইকন বোটমে প্রদর্শিত হবে data-iconpos="left" আইকন লেফট সাইডে প্রদর্শিত হবে ইঙ্গিতঃ ডিফল্ট ভাবে আইকনের পজিশন টেক্সটের উপরে ঠিক হয়ে থাকে।

অ্যাকটিভ বাটনঃ নেভিগেশন বারের কোন লিঙ্কে যখন কিল্ক করা হয় তখন এটি সিলেক্টেড হয়েছে এরকম দেখানো হয় (নিচের দিকে কিছুটা ডাউন হয়ে যায়)। এই লুকটি আনার জন্য "ui-btn-active" ক্লাস ব্যবহার করতে হয়ঃ

উদাহরণঃ

 

অনেকগুলো পেজের জন্য যে পেজগুলোতে ইউজার অলরেডি ভিজিট করেছে সেগুলোকে সিলেক্টেড দেখানো দরকার হয়। এজন্য লিঙ্কে "ui-state-persist" ক্লাস এবং বাটনে "ui-btn-active" ক্লাস ব্যবহার করতে হয়ঃ

 

jQuery Mobile – Collapsibles

Huge Sell on Popular Electronics

লিখেছেন সুদীপ্ত সাহা
জেক্যুয়েরি মোবাইল কলাপ্সিবলস

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

কোন কন্টেন্ট ব্লককে কলাপ্সিবল করার জন্য কন্টেইনারে data-role="collapsib­le" অ্যাট্রিবিউট অ্যাড করতে হবে।
উদাহরণঃ

Click me - I'm collapsible!

I'm the expanded content.

ডিফল্টভাবে কন্টেন্ট ক্লোজ থাকে। পেজ লোড হওয়ার সময় কন্টেন্টকে রান করার জন্য data-collapsed="fals­e" অ্যাট্রিবিউট অ্যাড করতে হবে।
উদাহরণঃ

Click me - I'm collapsible!

I'm now expanded by default.

ন্যাস্টেড কলাপ্সিবল ব্লকসঃ
কলাপ্সিবল কন্টেন্ট ব্লক ন্যাস্টেডও হতে পারে (অর্থাৎ একটি কলাপ্সিবল ব্লকের ভেতর অন্য একটি কলাপ্সিবল ব্লক অ্যাড করা)।
উদাহরণঃ

Click me - I'm collapsible!

I'm the expanded content.

Click me - I'm a nested collapsible block!

I'm the expanded content in the nested collapsible block.

ইঙ্গিতঃ কলাপ্সিবল কন্টেন্টকে অনেকবার পর্যন্ত ন্যাস্টেড করা সম্ভব।

কলাপ্সিবল সেটসঃ
অনেকগুলো কলাপ্সিবল ব্লকের গ্রুপকে একত্রে কলাপ্সিবল সেট বলে। একটি ব্লক যখন ওপেন হয় অন্য ব্লকগুলো তখন ক্লোজ থাকে। কিছু কলাপ্সিবল ব্লক তৈরি করে সেই ব্লকগুলোকে কলাপ্সিবল সেটের ভেতর data-role="collapsib­leset" অ্যাট্রিবিউট দ্বারা একত্র করতে হয়।
উদাহরণঃ

Click me - I'm collapsible!

I'm the expanded content.

Click me - I'm collapsible!

I'm the expanded content.

jQuery Mobile – Tables

Huge Sell on Popular Electronics

অনুবাদক: ফয়সাল রকি (এম.এ)

--------

রেসপন্সিভ টেবিল (Responsive Tables)
যখন আপনি আপনার মোবাইল ওয়েব পেইজটির content কে ব্যবহারকারী ডিভাইসের স্ক্রীন সাইজ এবং ওরিয়েন্টশন অনুযায়ী পরিবর্তন করতে চাইবেন তখন রেসপন্সিভ ডিজাইন গুরুত্বপূর্ণ ভূমিকা পালন করে। jQuery Mobile নামক class এর সাহায্যে ব্যবহারকারী ডিভাইসের স্ক্রীন সাইজ জানা যায় এবং উক্ত স্ক্রীন সাইজের জন্য content কে স্বয়ংক্রিয়ভাবে resize করা হয়।
Responsive tables এর সাহায্যে a large set of tabular data কে মোবাইল এবং ডেস্কটপ উভয়ের জন্যই সুন্দরভাবে উপস্থাপন করা যায়।
দুই প্রকারের responsive tables রয়েছে, যথা:
১) reflow এবং
২) column toggle

Reflow Table
reflow mode এর সাহায্যে minimum size অতিক্রম না করা পর্যৃন্ত table data কে horizontally রাখা হয় এবং সকল row কে vertically গ্রুপ করা হয়।
টেবিল তৈরি করার সময়

element এর মধ্যে data-role="table" ও class="ui-responsive" যোগ করতে হবে। নিম্নে উদাহরনের সাহায্যে দেখানো হলো:সঠিকভাবে রেসপন্সিভ টেবিল ব্যবহারের ক্ষেত্রেওelement ব্যবহার করতে হবে। এক্ষেত্রে rowspan ও colspan attributes ব্যবহার করা যাবে না, কেননা উক্ত attribute গুলো responsive table সাপোর্ট করে না।

Column Toggle Table
"column toggle" mode-এ যেসকল কলামের ক্ষেত্রে পর্যাপ্ত width পায় না সেসকল কলামকে hide করে দেয়া হয়।
Column Toggle Table তৈরি করার জন্য

element টি নিম্নোক্তভাবে data-role, data-mode, id ও class যোগ করতে হবে:সাধারণত jQuery Mobile টেবিলের ডানদিক হতে কলামকে hide করে দেয়, তবে আপনি কলামের গুরুত্ব অনুযায়ী order নির্দিষ্ট করে দিতে পারেন। এক্ষেত্রে table এর header () এ data-priority attribute টি যোগ করতে হবে, যেখানে সর্বোচ্চ priority মান হলো=১ এবং সর্বনিম্ন priority মান হলো=৬।I will never be hiddenI am very important - I will probably not be hiddenI am less important - I could be hiddenI am not that important - there is a good chance that I will be hiddenএখন, নিম্নোক্ত উদাহরণের মতো সকল কোডগুলোকে একত্রিত করে একটি column toggle table তৈরি করুন। দেখা যাবে যে, টেবিলের উপরের ডান প্রান্তে framework স্বয়ংক্রিয়ভাবে একটি বাটন তৈরি করেছে যার সাহায্যে ব্যবহারকারী কোন কোন কলাম দেখানো হবে তা নির্ধারণ করতে পারবে।
উদাহরণ:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany

toggle table button এর text পরিবর্তন করার জন্য data-column-btn-text attribute যোগ করুন।
উদাহরণ:

Styling Tables
টেবিলের shadow যোগ করতে "ui-shadow" class যোগ করুন।
shadow যোগ করুণ:

টেবিলে আরোও বেশি style যোগ করতে চাইলে CSS যোগ করতে পারেন।
সকল table row এ bottom border যোগ করতে নিচের উদাহরণটি দেখুন:সকলelements এ bottom border এবং সকল even table row এ background color যোগ করতে নিচের উদাহরণটি দেখুন:

jQuery Mobile – Forms

Huge Sell on Popular Electronics

লিখেছেন সুদীপ্ত সাহা
জেক্যুয়েরি মোবাইল ফর্ম

জেক্যুয়েরি মোবাইল স্বয়ংক্রিয়ভাবেই HTML ফর্ম তৈরি করে যেন তা দেখতে অত্যন্ত মনোরম এবং স্পর্শের অনুকূল হয়। [image]

জেক্যুয়েরি মোবাইল ফর্ম স্টাকচারঃ জেক্যুয়েরি মোবাইল ইলিমেন্ট হিসেবে HTMLকে স্টাইল করার জন্য CSS ব্যবহার করে, ইলিমেন্টকে আকর্ষণীয় এবং ব্যবহার উপযোগী করে তোলে। জেক্যুয়েরি মোবাইলে আপনি নিচের কন্ট্রোলগুলো ব্যবহার করতে পারবেনঃ • Text Inputs • Search Inputs • Radio Buttons • Checkboxes • Select Menus • Sliders • Flip Toggle Switches

জেক্যুয়েরি মোবাইল ফর্ম নিয়ে কাজ করতে চাইলে আপনাকে অবশ্যই যে জিনিসগুলো জানতে হবেঃ •

ইলিমেন্টের অবশ্যই একটি মেথড এবং একটি অ্যাকশন অ্যাট্রিবিউট থাকতে হবে। • প্রত্যেক ফর্ম ইলিমেন্টের id অ্যাট্রিবিউট অবশ্যই ইউনিক হতে হবে। সাইটের সকল পেজের মধ্যেও id অ্যাট্রিবিউট ইউনিক হতে হবে। কারণ জেক্যুয়েরি মোবাইলের single-page navigation মডেল একইসাথে অনেকগুলো পেজকে রান করে। • প্রত্যেক ফর্ম ইলিমেন্টের অবশ্যই একটি লেভেল থাকতে হবে। ইলিমেন্টের id এর সাথে ম্যাচ করানোর জন্য লেভেলে for অ্যাট্রিবিউট সেট করতে হবে।

উদাহরণঃ

কৌশলঃ ইনপুট ফিল্ডে কি ধরনের ভ্যালু দেয়া যাবে তা সংক্ষেপে বোঝানোর জন্য placeholder ব্যবহার করা যায়। উদাহরণঃ

কৌশলঃ লেভেলকে হাইড করার জন্য "ui-hidden-accessible" ব্যবহার করা হয়। এটা সাধারনত তখন ব্যবহার করা যখন আপনি আপনার ফর্মের placeholderকে লেভেলের মতো করে দেখাতে চাইবেনঃ উদাহরণঃ

কৌশলঃ ক্লিয়ার বাটন (একটি X আইকন যা ইনপুট ফিল্ডের ডানপাশে থাকে কন্টেন্টকে মুছে ফেলার জন্য), অ্যাড করতে চাইলে data-clear-btn="true" অ্যাট্রিবিউট ব্যবহার করতে হয়ঃ উদাহরণঃ ইঙ্গিতঃ ক্লিয়ার বাটন ইলিমেন্টে অ্যাড করা যায়,

পিএইচপি ৫ সুইচ স্ট্যাটমেন্ট (PHP 5 switch Statement)

Huge Sell on Popular Electronics

পিএইচপি তে আমরা switch statement এর মাধ্যমে কোন শর্ত জুরে দিয়ে অনেকগুলো ব্লক code থেকে আমাদের নির্ধারিত ফলাফল পেতে পারি।

উদাহরণ এর মাধ্যমে আমরা এক এক করে switch statement এর বিষয় টি বুজতে পারব


 < ?php
 $favcolor = "red"; 
         /*এর মাধ্যমে আমরা নির্ধারণ করে দিলাম যে আমাদের red শব্দ টি দরকার*/
switch ($favcolor)  
         /*switch statement এর মাধ্যমে আমরা এর প্রক্রিয়া সুরু করলাম*/
 {
     case "red":  
         /*যদি declare করা value টি যদি মিলে যায় তাহলে এই case টি ডিসপ্লে হবে*/
         echo "Your favorite color is red!";
         break;
     case "blue":
         echo "Your favorite color is blue!";
         break;
     case "green":
         echo "Your favorite color is green!";
         break;
         /*এইভাবে করে আমরা অনেকগুলো case যুক্ত করতে পারি*/
      default:
         /*যদি আমাদের কোন case না মিলে তাহলে default হিসেবে এটি ডিসপ্লে করবে*/
         echo "Your favorite color is neither red, blue, or green!";
 }
 ?>

যদি ব্রাউজার এর মাধ্যমে আমরা রান করি তাহলে ফলাফল পাওয়া যাবে


Your favorite color is red!

এই ক্ষেত্রে বুঝা যাচ্ছে আমাদের প্রথম case টি কাজ করছে কারন প্রথম case টি আমরা বলেছি red এবং আমরা কোড এর শুরুতে নির্ধারণ করেছিলাম $favcolor = "red" ।

 

উইন্ডোজ 8.1 টিউটোরিয়াল: পিসির বিভিন্ন স্থানে যাওয়ার কৌশল (Getting around your PC)

Huge Sell on Popular Electronics

উইন্ডোজ টিউটোনিয়াল : 11 এর 4

টাচ, মাউস এবং কীবোর্ড

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

বিস্তারিত পড়ার আগে, এটি গুরুত্বপূর্ণ যে, আপনি ডেস্কটপ, Start Screen এবং App View এর সাথে পরিচিত কিনা। অ্যাপ্লিকেশন ব্যবহার, বন্ধুদের সাথে যোগাযোগ, ওয়েব সাইট পরিদর্শন করা এবং পিসিতে অন্য যেকোন কিছু, আপনি সম্ভবত কাজের সময় এর সবকিছুই ব্যবহার করেছেন।

ডেস্কটপDesktop

পূর্বের মতো ডেস্কটপ এখানেও বিদ্যমান। আপনি বিভিন্ন ব্যাকগ্রাউন্ড, রং এবং থিম দিয়ে এটিকে নিজের মতো করে সাজাতে পারেন এবং পছন্দের অ্যাপ্লিকেশনগুলোকে টাস্কবার এ পিন করে রাখতে পারেন।

ডেস্কটপ এ যাওয়ার জন্য Start Screen এর Desktop টাইলস এ টোকা দিন বা ক্লিক করুন অথবা কীবোর্ড থেকে উইন্ডোজ এর প্রতীক Windows Logo+ D চাপ দিন।

যদি ডেস্কটপ টাইলস Start Screen এ না থাকে তাহলে নিম্নোক্ত ধাপগুলো অনুসরণের মাধ্যমে এটিকে পিন করতে পারেন:

1. App View দেখার জন্য আপনার হাতের আঙুলের সাহায্যে Start Screen এর মাঝ বরাবর থেকে উপরের দিকে স্লাইড করুন অথবা Start Screen এর নিচের দিকে বাম পাশের অ্যারো Arrow এ ক্লিক করুন।
2. Desktop এর উপর চাপ দিন বা ধরে রাখুন বা রাইট ক্লিক করুন। তার পর Pin to Start এ টোকা দিন বা ক্লিক করুন। (যদি আপনি ডেস্কটপ টাইল না পান তাহলে Desktop লেখা শুরু করুন।)

 

স্টার্ট স্ক্রিণStart Screen

Start হচ্ছে এমন একটি জায়গা যেখানে আপনার অ্যাপ্লিকেশনগুলো, ব্যক্তি, ওয়েবসাইটগুলো, ফোল্ডার এবং অন্যান্য গুরুত্বপূর্ণ জিনিসগুলো দেখতে পারেন।
Start Screen এ যেতে পর্দার ডান প্রান্তের দিকে সুইপ করুন এবং Start এ টোকা দিন। যদি আপনি মাউস ব্যবহার করেন তাহলে মাউস পয়েন্টারকে পর্দার বাম প্রান্তের নিচের দিকে নিয়ে যান এবং Start বাটনে ক্লিক করুন।
Start Screen সম্পর্কে আরো জানতে দেখুন “Start সম্পর্কে সবকিছু

 

অ্যাপ ভিউ95cd6947-bab3-42c8-b148-d03ad0f4f6f1_32

App View এ আপনার কম্পিউটারে ইনস্টল করা সকল অ্যাপ্লিকেশন দেখতে এর টাইলস দেখতে পারেন। App View এ আপনি অ্যাপ্লিকেশন খুলতে পারেন, Start এ পিন করতে পারবেন, বা তাদেরকে টাস্কবারে পিন করতে পারবেন।

App View দেখার জন্য আপনার হাতের আঙুলের সাহায্যে Start Screen এর মাঝ বরাবর থেকে উপরের দিকে স্লাইড করুন অথবা Start Screen এর নিচের দিকে বাম পাশের অ্যারো Arrow এ ক্লিক করুন।

টাচ এর মাধ্যমে সর্বত্র যাওয়া

Using Touch

স্পর্শ ব্যবহার করে সাধারণ কর্ম

নিম্নোক্ত টেবিল আপনার পিসিতে সাধারণ কাজগুলো টাচ ব্যবহার করে কিভাবে করবেন তা দেখাচ্ছে। সম্পূর্ণ তালিকা পেতে দেখুন “টাচ, সুইপ, টেপ  এবং অন্যান্য”।

কীবোর্ড শর্টকাট

কাজ

কিভাবে করবেন

কীবোর্ড শর্টকাট

Charm খোলা পর্দার ডান প্রান্তের দিকে সুইপ করুন উইন্ডোজ প্রতীক কী Windows Logo+ C
অ্যাপ্লিকেশন এর কমান্ড দেখা পর্দার উপর বা নিচে সুইপ করে যাওয়া উইন্ডোজ প্রতীক কী Windows Logo+ Z
শেষ ব্যবহৃত অ্যাপ এ যাওয়া পর্দার বাম প্রান্তে সুইপ করে যাওয়া উইন্ডোজ প্রতীক কী Windows Logo+ Tab
শেষ ব্যবহৃত অ্যাপগুলো দেখা পর্দার বাম প্রান্তে সুইপ করে যাওয়া এবং হাতের আঙুল চাপা রাখা অবস্থায় বাম প্রান্ত থেকে ফিরে আসা উইন্ডোজ প্রতীক কী Windows Logo+ Tab
একটি অ্যাপ বন্ধ করা পর্দার উপরের প্রান্ত থেকে অ্যাপটি পর্দার নিচের অংশে টেনে আনা Alt+F4
জুম দুই বা ততোধিক আঙুল দিয়ে পর্দা স্পর্শ করুন এবং আঙুলগুলো একে অপরেরদিকে (ছোট করার জন্য) বা বিপরীত দিকে (বড় করার জন্য) সরাণ। Ctrl + Plus Sign (+) or Ctrl + Minus Sign (-)
একটি আইটেম নির্বাচন করা নিচের দিকে বা আইটেম এর দিকে সুইপ করুন, বা চাপ দিন এবং ধরে রাখুন

 

 

মাউস ব্যবহার করে সর্বত্র যাওয়া

Using Mouse

মাউস ব্যবহার করে সাধারণ কর্ম

কাজ

কিভাবে করবেন

কীবোর্ড শর্টকাট

Charm খোলা মাউস পয়েন্টার উপরের ডান প্রান্তে বা নিচের বাম প্রান্তে সরান। যখন Charm দেখা যাবে উপর বা নিচে প্রান্তে সরান এবং যেটি চান তার উপর ক্লিক করুন । উইন্ডোজ প্রতীক কী Windows Logo+ C
অ্যাপ্লিকেশন এর কমান্ড দেখা অ্যাপ এর উপর ডান-ক্লিক করুন উইন্ডোজ প্রতীক কী Windows Logo+ Z
শেষ ব্যবহৃত অ্যাপ এ যাওয়া পর্দার উপরের বাম কর্ণারে মাউস পয়েন্টার এবং পর্দার নিচ প্রান্তের দিকে নিয়ে যান উইন্ডোজ প্রতীক কী Windows Logo+ Tab
একটি অ্যাপ বন্ধ করা মাউস পয়েন্টার পর্দার উপরের প্রান্তে নিয়ে যান এবং Close  Closeএ ক্লিক করুন। Alt+F4
জুম Ctrl এ চাপ দিয়ে মাউসের হুইল গুরান Ctrl+Plus Sign (+)or Ctrl+Minus Sign (-)
টাস্কবার দেখা মাউস পয়েন্টার পর্দার নিচের প্রান্তে নিয়ে যান উইন্ডোজ প্রতীক কী Windows Logo + T টাস্কবার এর প্রথম অ্যাপ সিলেক্ট করুন

SEO বা সার্চ ইঞ্জিন অপ্টিমাইজেশান এর সহজ কৌশল

Huge Sell on Popular Electronics

আজকে আমি SEO বা সার্চ ইঞ্জিন অপ্টিমাইজেশান কৌশল নিয়ে আলোচনা করতে চাই. একটি ওয়েবসাইট প্রতিটি সার্চ ইঞ্জিনের ভিতরে একটি উচ্চাসন লাভ করতে চায়. আর এটা কি ভাবে করা যায় সেটাই হচ্ছে SEO বা সার্চ ইঞ্জিন অপ্টিমাইজেশান। SEO এর সবচেয়ে সহজ কৌশল হচ্ছে আপনার ওয়েব সাইটের লিঙ্কটি বিভিন্ন ওয়েব সাইটে শেয়ার করা, যেমন= সোশ্যাল নেটওয়ার্কিং সাইট (Facebook, Twitter, Google+, LinkedIn), বুকমার্কিং সাইট (Stumble, Pinterest , Digg, Reddit, Delicious), ব্লগ কমেন্টস্‌ এবং ফোরাম পোস্টিং ইত্যাদি কাজ গুলোর মাধ্যমে খুব সহজেই একটি ওয়েব সাইট কে গুগল পেজ-রেঙ্ক ১-৪ নিয়ে আসা যায়।

এস.ই.ও এর পূর্ণ রুপ হচ্ছে সার্চ ইঞ্জিন অপটিমাইজেশন : SEO

Huge Sell on Popular Electronics

এস.ই.ও এর পূর্ণ রুপ হচ্ছে সার্চ ইঞ্জিন অপটিমাইজেশন। এটি মূলত কিছু কৌশলের সমন্বয়। সার্চ ইঞ্জিন অপটিমাইজেশন হচ্ছে এমন একটি প্রক্রিয়া যার একটি ওয়েব সাইটকে সার্চ ইঞ্জিনের কাছে গুরুত্বপূর্ণ করে তোলা হয়। এটি ওয়েব মাস্টারদের জন্য খুবই গুরুত্বপূর্ণ কেননা তারা সার্চ ইঞ্জিন অপটিমাইজেশন এর মাধ্যমে তাদের নিজস্ব ওয়েবসাইটকে সার্চ রেজাল্ট এর প্রথম পেজে নিয়ে আসতে পারে। তাই বলা যায় য়ে এস.ই.ও হচ্ছে সেই প্রক্রিয়া যার ওয়েব সাইটকে একটি নিদির্ষ্ট শব্দ এর উপর ভিত্তি করে সার্চ ইঞ্জিনে গুরুত্বপূর্ণ পজিশন দখল করা। যাতে একটি নিদিষ্ট বিষয়ের সার্চ রেজাল্টে অন্য ওয়েব সাইটকে পেছনে ফেলে নিজের ওয়েব সাইটকে সবার আগে সার্চ ইঞ্জিনে প্রকাশিত করা।

সার্চ ইঞ্জিনের মাধ্যমে নিজের ওয়েব সাইটকে সবার আগে প্রকাশিত করা। সাইটের ভিজিটর বাড়ানোর যায় এবং নিজের ওয়েব সাটকে সকলের কাছে পরিচিত করানো যায়।

SEO বা Search Engine Optimization। SEO সম্পর্কে বিস্তারিত আলোচনা

Huge Sell on Popular Electronics

SEO হল Search Engine Optimization এর মাধ্যমে একটি ওয়েবসাইট বা ওয়েবপেজকে সার্চ ইঞ্জিন ব্যবহারকারীদের সার্চ বা অনুসন্ধান ফলাফলের তালিকায় প্রথম দিকে দেখানোর চেষ্টা করা হয়। ইহা কোন একক কাজ নয়। ইহা অনেক গুলো কাজের সম্মিলিত ফল। সাধারণত একটি সার্চ ইঞ্জিনের ওয়েব ক্রাউলার বিভিন্ন সময় কিংবা কোনো নির্দিষ্ট সময় ওয়েবে থাকা বিভিন্ন ওয়েবসাইট ঘুরে বেড়ায়। তখন ওয়েব ক্রাউলার কিছু নির্দিষ্ট বৈশিষ্ট্য খুঁজে বেড়ায়। সাধারণত রবোট একটি ওয়েবসাইট ক্রাউল করার সময় যে বিষয়গুলোতে দৃষ্টিপাত করে, সেগুলো হলো:

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

Internet থেকে যদি আমরা একটি বই ডাউনলোড করতে চাই, তাহলে আমরা সাধারণত যে কাজটি করি তা হল google এ আমরা ঐ বই এর নামটি লিখে search করি। এখন লক্ষ্য করুন আমরা search button press করার পর google কিছু website এর নাম দেখায় যেখানে আমরা ঐ বইটি পেতে পারি। এভাবে google প্রতি page এ ১০টি ওয়েরসাইটএর নাম দেখায়। এখন আপনার মনে প্রশ্ন জাগতেই পারে কেন কিছু সাইট প্রথম পেজে আসলো, আর কেনইবা বাকি ওয়েবসাইটগুলো পেছনের পেজে গেলো – google কি ইচ্ছা মত করছে নাকি এর পেছনে অন্য কোন কারণ আছে? নিশ্চয় প্রথমপেজের সাইটগুলোর মধ্যে বিশেষ কিছু আছে, যা অন্য সাইটগুলাতে নাই। এই বিশেষ কিছুই হল seo এর কৌশল, যার মাধ্যমে আপনিও আপনার ওয়েবসাইটটিকে প্রথম পেজে নিতে পারেন। আর প্রথম পেজ মানেই বেশি বেশি ভিজিটর।

seo কে সাধারণত ২ভাগে ভাগ করা হয়:

  • On Page Seo এবং
  • Off page seo.

একটি ক্রিকেট বিষয়ক সাইট আছে যা বর্তমানে #১০ এ অবস্থান করছে। আপনি চাচ্ছেন কেউ যদি search engine এ ” Cricket” লিখে search করে তাহলে এটি #১ অবস্থানে দেখাবে – এটা করতে হলে ঐ সাইট এর seo করতে হবে। seo সাধারণত কোন popular search term বা keyword ব্যবহার করে করা হয়। যদি seo করে আপনার Brand name কে উপরের দিকে নিতে চান এবং সফলও হন, তাহলেও এটিকে ঠিক seo বলা যায় না। কারণ search engine যথেষ্ট smart এবং seo আপনার company name ও keyword কে খুব সহজেই আলাদা করতে পারে। আর প্রধান ব্যাপার হল, যে keyword এর জন্য যত প্রতিযোগীতা, সেই keyword এ rank করা তত কঠিন।

এসইও বা “সার্চ ইঞ্জিন অপ্টিমাইজেশান” কী ? What is SEO?

Huge Sell on Popular Electronics

এসইও বা “সার্চ ইঞ্জিন অপ্টিমাইজেশান” কী ?

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

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

সার্চ ইঞ্জিন অপটিমাইজেশন এর উপর প্রাথমিক ধারণা

Huge Sell on Popular Electronics

সার্চ ইঞ্জিন অপটিমাইজেশন এর সংক্ষিপ্ত রূপ হল এস ই ও। এসইও এর কিছু মূলনীতি রয়েছে- যার প্রথমেই আসে, ওয়েবপেজটি কি ধরনের হবে? ওয়েবসাইটের প্রতি পেজের অবশ্যই একটি টাইটেল দিতে হবে এবং প্রতিটি টাইটেল এর মধ্যে ভিন্নতা থাকতে হবে। তবে এর মূল শব্দগুলো (keyword) সম্পর্কে সচেতন থাকতে হবে, শব্দগুলো যেন ভিজিটরদের কাছে অর্থবহ হয়। দ্বিতীয়ত, পেজ এর কন্টেন্ট সম্পর্কেও সচেতন থাকতে হবে, নিম্ন মান সম্পন্ন কন্টেন্ট যেমন ব্যবহার করা যাবে না তেমনি নকল কোন কন্টেন্টও ব্যবহার করা উচিত হবে না। এমন ধরনের কন্টেন্ট ব্যবহার করতে হবে যার মাঝে বৈচিত্র্যতা আছে, তবে তা যেন ভিজিটরদের বিরক্তির কারন না হয়ে আকৃষ্ট করতে পারে। তৃতীয়ত,অ্যাংকর (a tag) টেক্সট ব্যবহারে হতে হবে সচেতন। অর্থবহ এবং বর্ণনামূলক অ্যাংকর টেক্সট ব্যবহার করতে হবে। একই অ্যাংকর টেক্সট বার বার ব্যবহার করা যাবে না। চতুর্থত, h1থেকে h6 ট্যাগ এর ব্যবহার এমন হতে হবে যা ওয়েবপেজের কন্টেন্ট স্ট্রাকচার তুলে ধরতে পারে। এছাড়া robots.txt ফাইল ব্যবহার করতে হবে যাতে করে ক্রলার ওয়েবসাইটের নির্দিষ্ট কোন অংশকে ইন্ডেক্সিং করা থেকে বিরত থাকে।

এসইও – লিঙ্ক বিল্ডিং । SEO – Link Building

Huge Sell on Popular Electronics

স্বর্ণা আখতার

 

লিঙ্ক বিল্ডিং এস ই ওর গুরুত্বপূর্ণ কাজগুলোর মধ্যে অন্যতম যার মাধ্যমে ওয়েব সাইট এর ভিজিটর বৃদ্ধির পাশাপাশি গুগল এ এর রাঙ্ক বৃদ্ধিতেও কাজ করা যায়। সর্বোপরি ভাবে বলা যায়, লিঙ্ক বিল্ডিং শুধুমাত্র ওয়েবসাইট এর জনপ্রিয়তা বৃদ্ধিতেই সহায়তা করে।

কিভাবে লিঙ্ক বিল্ডিং করবেন

লিঙ্ক বিল্ডিং এর বিভিন্ন নিয়ম-কানুন বা পদ্ধতি প্রচলিত আছে। নিচে কিছু পদ্ধতি সম্পর্কে সংক্ষিপ্ত আলোচনা করা হল,

  1. ওয়েবসাইট কে বিভিন্ন ডিরেক্টরিতে সাবমিট করুন। তবে কোন অটোম্যাটিক উপায় অবলম্বন করবেন না এতে গুগল আপনার রাঙ্ক কমিয়ে দিতে পারে।
  2. অনেক মুক্ত ডিরেক্টরি আছে যেমন, “dmog.org, yahoo.com” এগুলোতে আপনার সাইটটিকে অন্তর্ভুক্ত করুন। যার ফলে অন্যান্য যেসব সার্চ ইঞ্জিন আছে সেগুলোতে আপনার সাইট এর জনপ্রিয়তা বৃদ্ধি পাবে।
  3. আপনার ওয়েবপেজ এর জন্য উন্নত মানের আর্টিকেল লিখুন যা ভিজিটর ধরে রাখতে সহায়তা করবে। এবং যার ফলে, আপনার ওয়েবসাইট এর বাউন্স রেট কম হবে।
  4. লিঙ্ক বিনিময় কাজে অংশগ্রহণ করুন। যার মাধ্যমে আপনার সাইট এ ভিজিটর বৃদ্ধি পেতে পারে। তবে একপাক্ষিক হলেই বেশি ভাল হয়।
  5. আপনার সাইট এর জনপ্রিয়তা বৃদ্ধিতে ফোরামগুলোতে সিগনেচার হিসাবে আপনার লিঙ্ক রেখে আসতে পারেন ।
  6. বুকমারকিং সাইটগুলোতে আপনার সাইট এর লিঙ্ক সাবমিট করতে পারেন।
  7. ব্লগিং সাইটগুলোতে ভাল মানের আর্টিকেল লিখতে পারেন এবং সেখানে আপনার সাইটএর লিঙ্ক বিজ্ঞাপন হিসাবে দিতে পারেন।
  8. সবসময় আপনার সাইট এর ভিজিটরদের ভাল মানের সেবা সরবরাহ করুন এবং তাদেরকে ব্যাস্ত রাখার চেষ্টা করুন।

 

লিঙ্ক বিল্ডিং এ আরও কিছু উপায় আছে কিন্তু সেগুলোতে আপনাকে অর্থ খরচ করতে হতে পারে। এমন কিছু পদ্ধতি হল,

  1. কিছু উচ্চ মানে ওয়েব সাইট কিনুন যেগুলোতে আপনি আপনার লিঙ্কগুলোকে রেখে আসতে পারবেন।
  2. গুগল এডওয়ার্ড এ যোগ দিতে পারেন। এর মাধ্যমে আপনার সাইট এর ভিজিটর নিশ্চিতভাবে বৃদ্ধি পেতে পারে।

পরিশেষে বলা যায় যে, ওয়েব সাইটএর ভিজিটর বৃদ্ধিতে লিঙ্ক বিল্ডিং অনেক অবদান রাখে। এস ই ওর অনেক পদ্ধতি প্রচলিত থাকলেও লিঙ্ক বিল্ডিং এ একমাত্র উপায় যেটা দীর্ঘমেয়াদি জনপ্রিয়তা বয়ে আনতে কাজ করে থাকে।

 

এসইও – ওয়েব সাইট ডোমেন । SEO – Web Site Domain

Huge Sell on Popular Electronics

নয়ন চন্দ্র দত্ত

 

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

 

যখনই আপনি ইন্টারনেট এর মাধ্যমে একটি ব্যবসা শুরু করার চিন্তা করছেন, আমার মনে হয় যে আপনি প্রথমে আপনার ওয়েবসাইট ডোমেইন নাম নিয়ে ভাববেন। একটি ডোমেন নাম চয়েজ করার আগে আপনার নিম্নলিখিত বিষয়গুলো বিবেচনা করা উচিতঃ

  1. আপনার লক্ষ্য পাঠকবর্গ কারা হবে?
  2. আপনি তাদের কাছে কি বিক্রি করতে মনস্থ করেছেন। এটা কি একটা বাস্তব আইটেমট বা শুধু টেক্সট কন্টেন্ট ?
  3. কি আপনার ব্যবসায়িক ধারণাকে ইউনিক করে তুলবে অথবা বাজারে ইতিমধ্যে available যা অন্য সব কিছুর থেকে আলাদা হবে ?

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

আপনার ডোমেইন নাম এর মধ্যে কীওয়ার্ড ব্যবহার আপনার প্রতিযোগীদের থেকে আপনাকে একটি শক্তিশালী প্রতিযোগিতামূলক সুবিধা দেয়। আপনার ডোমেইন নাম এর মধ্যে কীওয়ার্ড থাকলে সার্চ ইঞ্জিন লিস্টে ক্লিক-মাধ্যম- হার বৃদ্ধি করতে পারে এবং শব্দ সমৃদ্ধ বর্ণনামূলক আগমনকারী লিঙ্ক পেতে কীওয়ার্ডের ব্যবহার যা বিজ্ঞাপন দেওয়াকে সহজ করে তুলে।

 

দীর্ঘ এবং বিভ্রান্তিকর ডোমেইন নাম কেনা থেকে এড়িয়ে চলুন। অনেক মানুষ ড্যাশ বা হাইফেন ব্যবহার করে তাদের ডোমেইন নামের মধ্যে শব্দ আলাদা করে থাকে। আগে ডোমেইন নাম নিজেই একটি গুরুত্বপূর্ণ র‍্যাংকিং ফ্যাক্টর ছিল কিন্তু এখন সার্চ ইঞ্জিনের উন্নত বৈশিষ্ট্য আছে এবং এটি আর এখন খুব গুরুত্বপূর্ণ ফ্যাক্টর নেই। আপনার ডোমেন নাম এর মধ্যে দুই থেকে তিন শব্দ রাখুন মনে রাখা সহজ হবে। কিছু সর্বাদিক লক্ষণীয় (notable) ওয়েবসাইট তাদের নিজস্ব শব্দ তৈরি করে ব্র্যান্ডিং এর কাজ করে। যেমন কয়েকটি উদাহরণ ইবে, ইয়াহু!, এক্সপিডিয়া, স্ল্যাশডট, Fark , উইকিপিডিয়া, গুগল ইত্যাদি।

 

আপনাকে একবার টেলিফোনে এটা বলতে সক্ষম হওয়া উচিত এবং অন্যান্য ব্যক্তি এটির বানান কিভাবে জানতে পারে এবং আপনি কি বিক্রি করছেন তারা যেন সেটা অনুমান করতে পারে।

গুরু মন্ত্র

অবশেষে, আপনাকে নিম্নলিখিত প্রশ্নের উত্তর দিতে সক্ষম হতে হবেঃ

  1. কেন আপনি আপনার ওয়েবসাইট তৈরি করতে চান?
  2. কেন মানুষ আপনার সাইটে থেকে কিনবে এবং অন্যান্য সাইট থেকে কেন নয়?
  3. কি অন্যদের থেকে আপনার সাইটকে আলাদা করে তোলবে ?
  4. কে আপনার লক্ষ্য পাঠক এবং আপনি কি বিক্রি করতে মনস্থ করেছেন?
  5. আপনি কি মনে করেন যে তালিকা 5 থেকে 10 ওয়েবসাইটগুলো আশ্চর্যজনক এখন চিন্তা করুন কেন তারা আশ্চর্যজনক?
  6. 5টি বিভিন্ন ডোমেইন নাম তৈরি করুন। তাদের মধ্যে অন্তত 1টা মজার করুন। অর্ধ ডজন মানুষকে বলুন এবং কোনটি সবচেয়ে বেশী স্মরণ থাকে। সেই মানুষগুলো যদি আপনাকে ভাল না জানে তাহলে আপনি আরো সৎ প্রতিক্রিয়া পাবেন।
  7. আপনার ডোমেন কিনুন যা catchy, স্মরণীয় এবং আপনার ব্যবসা প্রাসঙ্গিক ।

 

পিএইচপি ৫ while লুপ (PHP 5 while Loops)

Huge Sell on Popular Electronics

প্রতাপ চন্দ্র

 

পিএইচপি while লুপ কোডের একটি ব্লক নির্বাহ করে যতক্ষণ পর্যন্ত একটি বেধে দেয়া শর্ত TRUE হতে থাকে।
যখন কোড লেখা হয় তখন এমন প্রয়োজন হতে পারে যে একই কাজ বার বার করার দরকার পড়ছে। তখন ওই কাজের জন্য বার বার কোড না লিখে লুপ ব্যবহার করে একই ফল পাওয়া যায়। এতে কোড পরিচ্ছন্ন থাকে এবং সহজে ও দ্রুত কাজ সম্পন্ন হয়।

পিএইচপিতে নিচের লুপ স্টেটমেন্টগুলো ব্যবহার করা হয়:

  • while – যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ কোডের একটি ব্লক নির্বাহ করতে থাকে।
  • do...while – একবার লুপটি সম্পন্ন করে, অতপর যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ পুরো লুপটি নির্বাহ করতে থাকে।
  • for – একটি নির্দিষ্ট সংখ্যক বার কোডের একটি ব্লক নির্বাহ হতে থাকে।
  • foreach – একটি অ্যারের সবগুলো উপাদানে না পৌছানো পর্যন্ত কোডের একটি ব্লক নির্বাহ করতে থাকে।

পিএইপি while লুপ

যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ কোডের একটি ব্লক নির্বাহ করতে থাকে।

গঠনরীতি


while (condition is true) {
     code to be executed;
 }

নিচের উদাহরণে $x চলকের প্রাথমিক মান 1 ধরা হয় ($x = 1)। এরপর $x এর মান যতক্ষণ পর্যন্ত 5 এর কম থাকবে কিংবা সমান হবে ($x <= 5) ততক্ষণ প্রতি লুপে ($x++) চলক $x এর মান 1 করে বাড়তে থাকবে।


<?php 
 $x = 1;
while($x <= 5) {
     echo "The number is: $x <br>";
     $x++;
 } 
 ?>

 

কোডটি রান করালে ফলাফল আসবে:


The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5


 

পিএইচপি do...while লুপ

do...while লুপ কোডের একটি ব্লক একবার রান করবে। এরপর শর্ত যাচাই করবে। যতক্ষণ শর্ত TRUE হবে ততক্ষণ লুপ চলতে থাকবে।

গঠনরীতি:


do {
     code to be executed;
 } while (condition is true);

নিচের উদাহরণে $x চলকের প্রাথমিক মান 1 ধরা হয়েছে ($x = 1)। এরপর do...while লুপ প্রাথমিক আউটপুট দেবে। এরপর $x এর মান 1 বাড়াবে। এরপর শর্ত পরীক্ষা করে দেখবে $x এর মান 5 এর কম আছে কিংবা সমান হয়েছে কিনা। যতক্ষণ পর্যন্ত তা TRUE হবে ততক্ষণ লুপে দেয়া কোড নির্বাহ হবে এবং আউটপুট আসতে থাকবে।
যেমন:


<?php 
 $x = 1;
do {
     echo "The number is: $x <br>";
     $x++;
 } while ($x <= 5);
 ?>

 

কোডটি রান করলে আগের মতোই ফলাফল আসবে:


The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5


 

এখানে লক্ষ্য করুন, do...while লুপে শর্ত যাচাই করা হয় লুপের মধ্যকার স্টেটমেন্টটি নির্বাহ হবার পরে। এর অর্থ হলো do...while লুপ কোডটি নূন্যতম একবার নির্বাহ হবে, এমনকি শর্ত যদি FALSE হয় তবুও।

নিচের উদাহরণে $x চলকের প্রাথমিক মান 6 ধরা হয়েছে। এরপর কোডটি রান করে। তারপর শর্ত পরীক্ষা করে দেখে লুপ করবে কিনা। যেহেতু শর্ত FALSE হয় তাই আর লুপ হয় না।


<?php 
 $x = 6;
do {
     echo "The number is: $x <br>";
     $x++;
 } while ($x<=5);
 ?>

 

উপরের উদাহরেণের ক্ষেত্রে ফলাফল আসবে:


The number is: 6


 

গুগল ম্যাপের প্রকার (Google Maps Types)

Huge Sell on Popular Electronics

গুগল ম্যাপের প্রকার
Sheikh Mahfuzur Rahman

একটি হাইব্রিড(HYBRID) গুগল ম্যাপঃ

গুগল ম্যাপ - প্রাথমিক প্রকারের কিছু ম্যাপ

গুগল ম্যাপ এপিআই নিচের ম্যাপের প্রকারগুলোকে সাপোর্ট করেঃ
ROADMAP (সাধারণ, টু'ডি ম্যাপ)
SATELLITE (ফটোগ্রাফিক ম্যাপ - ম্যাপটি তোলা ছবি থেকে তৈরি করা হয়েছে)
HYBRID (ফটোগ্রাফিক + রাস্তা ও শহরের নাম)
TERRAIN (পর্বত, নদী ইত্যাদি সহ ম্যাপ)।
ম্যাপের প্রকার হয় mapTypeId প্রপার্টি'র মাধ্যমে ম্যাপ প্রপার্টি অবজেক্টের ভিতরে নির্দিষ্ট করা হয়ঃ

var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:7,
mapTypeId: google.maps.MapTypeId.HYBRID
};

অথবা ম্যাপের setMapTypeId() মেথডকে কল করে করা হয়ঃ

map.setMapTypeId(google.maps.MapTypeId.HYBRID);

গুগল ম্যাপ - ৪৫ ডিগ্রি পার্সপেক্টিভ ভিউ

SATELLITE এবং HYBRID ম্যাপ হাই জুম লেভেলে কিছু কিছু অঞ্চলের জন্য একটি ৪৫ডিগ্রি ইমেজারি(যেখানে ঐ এলাকার রাস্তা, বাড়িঘরের ছবি থাকে) ভিউকে সাপোর্ট করে। আপনি যদি ৪৫ডিগ্রি ইমেজারি ভিউতে একটি এলাকাকে জুম করেন, ম্যাপ সয়ংক্রিয়ভাবে পার্স্পেকটিভ ভিউকে উল্টে দেবে। সেই সাথে, ম্যাপটি নিচের জিনিসগুলোকে যোগ করবেঃ
প্যান কন্ট্রোলের কাছে একটি কম্পাস, আপনার ছবি রোটেট বা ঘুরাতে সাহাজ্য করবে।
প্যান ও জুম কন্ট্রোলের মাঝখানে একটি রোটেট কন্ট্রোল, ইমেজকে ৯০ডিগ্রি পর্যন্ত ঘুরাতে দেয়।
স্যাটেলাইট কন্ট্রোল/লেবেলের নিচে ৪৫ডিগ্রি পার্সপেক্টিভ ভিউকে দেখানোর জন্য একটি টগল কন্ট্রোল

লক্ষ্যণীয়ঃ ৪৫ডিগ্রি ইমেজারি'র ম্যাপ থেকে জুম আউট করলে উপরের পরিবর্তনগুলো আর থাকবেনা এবং আসল ম্যাপটি দেখানো হবে।

নিচের উদাহরণটি ইটালির ভেনিসের পালাজ্জো ডুকালের একটি ৪৫ডিগ্রি পার্স্পেক্টিভ ভিউ দেখায়ঃ

var mapProp = {
center:myCenter,
zoom:18,
mapTypeId:google.maps.MapTypeId.HYBRID
};

টিপসঃ গুগল নতুন নতুন এলাকার জন্য ৪৫ডিগ্রি ইমেজারি ভিউ যোগ করছে। এখানে গুগল ম্যাপের ৪৫ডিগ্রি ইমেজারি'র তালিকাটি দেখে নিন।

গুগল ম্যাপ - ৪৫ডিগ্রি পার্সপেক্টিভ ভিউকে বাদ দেয়া

ম্যাপ অবজেক্টে etTilt(0) কে কল করে আপনি ৪৫ডিগ্রি ইমেজারি ভিউকে বাদ দিয়ে দিতে পারেনঃ

map.setTilt(0);

টিপসঃ পরবর্তীতে ৪৫ডিগ্রি পার্স্পেক্টিভ ভিউকে কার্যকর করতে setTilt(45) কে কল করুন।

 

 

গুগল ম্যাপ কন্ট্রোল (Google Maps Controls)

Huge Sell on Popular Electronics

ডিফল্ট কন্ট্রোল সেটসহ একটি গুগল ম্যাপঃ

গুগল ম্যাপ - ডিফল্ট কট্রোল

যখন একটি স্ট্র্যান্ডার্ড গুগল ম্যাপ দেখানো হয় তখন তাতে যে কন্ট্রোলসেটটি ডিফল্ট হিসেবে থাকে তা নিম্নরূপঃ

জুম - একটি স্লাইডার অথবা "+/-” বাটনগুলো দেখায় যা ম্যাপের জুম লেভেল নিয়ন্ত্রন করতে ব্যবহৃত হয়
প্যান - ম্যাপকে প্যানিং অর্থাৎ ভার্টিকেল/হরাইজন্টালি নাড়াচাড়া করার জন্য একটি প্যান কন্ট্রোল দেখায়
ম্যাপটাইপ - ইউজারদের ম্যাপটাইপ (স্যটেলাইট/রোডম্যাপ) পরিবর্তন করতে দেয়
স্ট্রিট ভিউ - একটি পেজম্যান আইকন দেখায় যা ম্যাপের উপর টেনে নিয়ে স্ট্রিট ভিউ সচল করা যায়

গুগল ম্যাপ - আরও কিছু কন্ট্রোল

ডিফল্ট কন্ট্রোলের সাথে, গুগল ম্যাপে আরও কিছু কন্ট্রোল রয়েছেঃ
স্কেল - ম্যাপের স্কেল এলিমেন্ট দেখায়
রোটেট - একটি ছোট বৃত্তাকার আইকন দেখায় যা ম্যাপটিকে ঘুরাতে সাহাজ্য করে
অভারভিউ ম্যাপ - একটি থাম্বনেল অভারভিউ দেখায় যা বৃহত্তর এলাকায় বর্তমান ম্যাপের ভিউপোর্ট প্রতিফলিত করে।

আপনি যখন ম্যাপঅপশনে ম্যাপ তৈরি করবেন অথবা যখন setOptions() কে কল করার মাধ্যমে ম্যাপের অপশন পরিবর্তন করবেন তখন কোন কন্ট্রোলগুলো দেখাবেন তা নির্দিষ্ট করে দিতে পারবেন।

গুগল ম্যাপ - ডিফল্ট কন্ট্রোলগুলো ডিজেবল করা

আপনি হয়তো ডিফল্ট কন্ট্রোলগুলো বন্ধ করে দিতে চাইবেন। এটা করতে, ম্যাপ অপশন অবজক্টের ভেতরে disableDefaultUI প্রপার্টিকে ট্রু (true) করে দিনঃ

disableDefaultUI:true

গুগল ম্যাপ - সবগুলো কন্ট্রোলকে চালু করা

কিছু কন্ট্রোল ম্যাপে ডিফল্ট হিসেবে দেখায় এবং কিছু কন্ট্রোল আপনি যতক্ষণ না চালু করছেন ততক্ষণ দেখা যাবেনা। ম্যাপে কোন কন্ট্রোল যোগ করা হবে বা কোনটা লুকানো হবে তা ম্যাপ অপশন অবজেক্টে ঠিক করে দিতে হয়। কন্ট্রোলকে দৃশ্যমান করতে ট্রু সেট করতে হবে এবং লুকাতে হাইড (hide) সেট করতে হবে।
নিচের উদাহরণটি সবগুলো কন্ট্রোলকে অন করে বা দেখায়ঃ
panControl:true,
zoomControl:true,
mapTypeControl:true,
scaleControl:true,
streetViewControl:true,
overviewMapControl:true,
rotateControl:true

গুগল ম্যাপ - কন্ট্রোলগুলো মডিফাই করা

কিছু কিছু ম্যাপ কন্ট্রোল কনফিগার করা যায়। কন্ট্রোল অপশন ফিল্ডকে নির্দিষ্ট করে দেয়ার মাধ্যমে কন্ট্রোলগুলো কনফিগার করা যায়।
উদাহরণস্বরূপ, একটি জুম কন্ট্রোলকে মডিফাই বা পরিবর্তন করার অপশনগুলো zoomControlOptions ফিল্ডকে ঠিক করে দেয়া হয়। zoomControlOptions ফিল্ড নিচের অপশনগুলো ধারণ করতে পারেঃ

google.maps.ZoomControlStyle.SMALL - একটি ছোট জুম কন্ট্রোল দেখায় (শুধু + এবং - বাটন থাকে)
google.maps.ZoomControlStyle.LARGE - স্ট্যান্ডার্ড জুম স্লাইডারকে দেখায়
google.maps.ZoomControlStyle.DEFAULT - ডিভাইস ও ম্যাপের আকার অনুযায়ী সবথেকে ভালো জুম কন্ট্রোল দেখায়

উদাহরণঃ
zoomControl:true,
zoomControlOptions: {
style:google.maps.ZoomControlStyle.SMALL
}

নোটঃ আপনি যদি কোন কন্ট্রোলকে মডিফাই করতে চান তাহলে প্রথমে কন্ট্রোলটিকে সচল (ট্রু হিসেবে সেট করুন) করে নিন।

আরেকটি কনফিগার করার মতো কন্ট্রোল হলো MapType কন্ট্রোল
mapTypeControlOptions ফিল্ডে এই কন্ট্রোলের অপশনগুলো কিভাবে মডাফাই করা হবে তা ঠিক করে দিতে হয়। mapTypeControlOptions ফিল্ড নিচের অপশনগুলো ধারণ করতে পারেঃ

google.maps.MapTypeControlStyle.HORIZONTAL_BAR - প্রতি ম্যাপ টাইপের জন্য একটি বাটন দেখায়
google.maps.MapTypeControlStyle.DROPDOWN_MENU - একটি ড্রপডাউন মেন্যু থেকে ম্যাপ টাইপ সিলেক্ট করার ব্যবস্থা করে
google.maps.MapTypeControlStyle.DEFAULT - স্ক্রিনের আকার অনুযায়ী ডিফল্ট ম্যাপ টাইপ দেখায়

উদাহরণঃ
mapTypeControl:true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU
}

আপনি ControlPosition প্রপার্টির মাধ্যমে একটি কন্ট্রোলের অবস্থানও ঠিক করে দিতে পারবেনঃ

mapTypeControl:true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position:google.maps.ControlPosition.TOP_CENTER
}

গুগল ম্যাপ - কাস্টম কন্ট্রোল

এমন একটি কাস্টম কন্ট্রোল তৈরি করা যাক যা আপনাকে ক্লিক করার পর সব সময় লন্ডনে নিয়ে ( যদি ম্যাপকে ড্র্যাগ করা হয়) যাবেঃ

controlDiv.style.padding = '5px';
var controlUI = document.createElement('div');
controlUI.style.backgroundColor = 'yellow';
controlUI.style.border='1px solid';
controlUI.style.cursor = 'pointer';
controlUI.style.textAlign = 'center';
controlUI.title = 'Set map to London';
controlDiv.appendChild(controlUI);
var controlText = document.createElement('div');
controlText.style.fontFamily='Arial,sans-serif';
controlText.style.fontSize='12px';
controlText.style.paddingLeft = '4px';
controlText.style.paddingRight = '4px';
controlText.innerHTML = 'Home'
controlUI.appendChild(controlText);

 

 

গুগল ম্যাপ এর ঘটনাবলি (Google Maps Events)

Huge Sell on Popular Electronics

Google Maps Events(গুগল ম্যাপ এর ঘটনাবলি)

Click The Marker to Zoom(জুম করার জন্য মার্কার Click করুন)
আমরা এখনও পূর্বের page এর map ব্যাবহার করচিঃ এখানে যে map টি ব্যাবহার করা হয়েছে তা লন্ডন, ইংল্যান্ড কেন্দ্রিক ।

যখন একজন ব্যাবহারকারী মার্কার এ ক্লিক করেন তখন আমরা map টিকে বড় করে উপস্থাপন করি (আমরা marker হিসেবে একটি
event handler যুক্ত করেছি যা map টি কে বড় করে দেখায় Click করার পর)।

কোড টি এরূপ ঃ

// Zoom to 9 when clicking on marker
google.maps.event.addListener(marker,'click',function() {
map.setZoom(9);
map.setCenter(marker.getPosition());
});

আমরা addListener নামক event handler টি যুক্ত করেছি event গুলির notification খুব সহজে পাওয়ার জন্য ।
এই প্রক্রিয়াটি একটি object এর জন্য দরকার হয়, যেমনঃ শোনার জন্য একটি event কে call করা হয় যখন এটি ঘটে।

Pan Back to Marker
এই পর্যায়ে map টি তে একটি event handler ব্যাবহার করা হয় 'center' property পরিবর্তন করার জন্য এবং marker
কে pan back করলে map টি তে ৩ সেকেন্ড পরে একটি center_changed ঘটনা ঘটে, codeগুলি নিম্নরূপঃ

google.maps.event.addListener(map,'center_changed',function() {
window.setTimeout(function() {
map.panTo(marker.getPosition());
},3000);
});

Open an InfoWindow When Clicking on The Marker(একটি InfoWindow Open হয় যখন Marker
এ Click করা হয় )
Marker এ Click করা হলে নিম্নরূপ কিছু text দেখা যায় infowindow তেঃ

var infowindow = new google.maps.InfoWindow({
content:"Hello World!"
});

google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});

Set Markers and Open InfoWindow for Each Marker(Marker নির্দিষ্ট করন এবং প্রত্যেক Marker এর
জন্য InfoWindow খুলা )
একটি function Run হয় যখন ব্যাবহারকারী map এ click করেন।

placeMarker() function টি একটি marker এর স্থান নির্দিষ্ট করে যেখানে ব্যাবহারকারী click করে এবং একটি
infowindow এটিতে marker এর latitudes and longitudes দেখায়ঃ

উদাহরনঃ
google.maps.event.addListener(map, 'click', function(event) {
placeMarker(event.latLng);
});

function placeMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map,
});
var infowindow = new google.maps.InfoWindow({
content: 'Latitude: ' + location.lat() +
'
Longitude: ' + location.lng()
});
infowindow.open(map,marker);
}

গুগলম্যাপ্স ওভারলেস (Google Maps – Overlays)

Huge Sell on Popular Electronics

Add a marker to the Google map(Google map এ marker যোগকরন)

Google Maps - Overlays( মোড়ক তৈরি করন)

Overlays হচ্ছে map এর উপরে একটি object যেটি latitude এবং longitude এর সীমিত করনে কাজ করে ।

Google Maps এর কয়েক ধরনের overlay দেখা যায় -

১) Marker- map এর একটি একক জাইগা নির্দেশ করে। Marker টি একটি প্রচলিত icon images দেখায়।
২) Polyline- map এর উপরে একসারি line নির্দেশ করে।
৩) Polygon- map এর উপরে একসারি line এবং এর আকৃতি "closed"।
৪) Circle(বৃত্তাকার) and Rectangle(আয়তক্ষেত্রিক)
৫) Info Windows- map এর উপরে content গুলিকে popup balloon এর মধ্যে প্রদর্শন করে।
৬) Custom(প্রচলিত) overlays

Google Maps - Add a Marker(Google Map এ Marker যুক্তকরন)

Marker constructor একটি marker নির্মাণ করে । লক্ষ্য রাখতে হবে যে marker এর জন্য position property ঠিক করতে
হবে যেন সেটি প্রদর্শিত হয়।

setMap( ) পদ্ধতি দ্বারা map এ marker যুক্তকরনঃ
উদাহরনঃ
var marker=new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);

Google Maps - Animate the Marker(Google Map এ Marker কে জীবন্তকরণ )
নিচের উদাহরণ টি দ্বারা দেখানো হয়েছে কিভাবে Google Map এ Marker কে জীবন্তকরণ করা হয়।
var marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.BOUNCE
});
marker.setMap(map);

Google Maps - Icon Instead of Marker(Google Map এ Marker এর পরিবর্তে Icon ব্যাবহার)

উদাহরনঃ
var marker=new google.maps.Marker({
position:myCenter,
icon:'pinkball.png'
});

marker.setMap(map);

Google Maps - Polyline( Google Map এ Polyline এর ব্যাবহার)
Polyline হচ্ছে একটি line যেটি এক সারি স্থানাঙ্ক যা ক্রমধারা তে থাকে।

polyline নিম্নোক্ত properties অনুসরন করে।

১) path- এটি line এর স্থানাঙ্ক দ্বারা latitude/longitude নির্দেশ করে
২) strokeColor- এটি line এর জন্য hexadecimal color নির্দেশ করে যেমনঃ (এর ধরন : "#FFFFFF")
৩) strokeOpacity- এটি line এর অস্বচ্ছতা নির্দেশ করে । এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
৪) strokeWeight- line এর weight কে pixel একক দ্বারা নির্দিষ্ট করে।
৫) editable- line টি ব্যাবহারকারী দ্বারা editable(পরিবর্তন যোগ্য) কিনা তা নির্ধারণ করে।

উদাহরনঃ
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
path:myTrip,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:2
});

Google Maps - Polygon(Google Map এ Polygon এর ব্যাবহার)

Polyline এর মত Polygon ও এক সারি সুবিন্যস্ত স্থানাঙ্ক দ্বারা গঠিত হয়। তবে Polygon কে এমন ভাবে রূপ দেয়া হয় যেন তা
closed loop এলাকা কে নির্দেশ করে ।
Polygon গুলি সোজা line দ্বারা তৈরি হয় এবং এটি "closed"।
Polygon নিম্নোক্ত properties অনুসরণ করেঃ
path- এটি line এর latitude/longitude স্থানাঙ্ক নির্দিষ্ট করে।(প্রথম এবং শেষ স্থানাঙ্ক একই হয়)
strokeColor- এটি line এর জন্য hexadecimal color নির্দিষ্ট করে । (এর ধরন : "#FFFFFF")
strokeOpacity- line এর অস্বচ্ছতা নির্দেশ করে । value 0.0 থেকে 1.0 এর মধ্যে হয়।
strokeWeight- line এর weight কে pixel একক দ্বারা নির্দিষ্ট করে।
fillColor- এটি একটি বদ্ধ এলাকার জন্য hexadecimal color নির্দিষ্ট করে । (এর ধরন : "#FFFFFF")
fillOpacity-এটি দ্বারা পরিপূর্ণ color এর অস্বচ্ছতা নির্দেশ করে। এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
editable- line টি ব্যাবহারকারী দ্বারা editable(পরিবর্তন যোগ্য) কিনা তা নির্দেশ করে ।

উদাহরনঃ
var myTrip = [stavanger,amsterdam,london,stavanger];
var flightPath = new google.maps.Polygon({
path:myTrip,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:2,
fillColor:"#0000FF",
fillOpacity:0.4
});

Google Maps - Circle(Google Maps- বৃত্ত )

একটি Circle নিম্নোক্ত properties এ follow করে।
center- এটি google.map এর latitude/longitude কে circle এর কেন্দ্রে নির্দিষ্ট করে ।
radius- circle এর ব্যাসার্ধ কে meter একক এ প্রকাশ করে।
strokeColor - circle এর চারপাশের line টি hexadecimal color দ্বারা নির্দিষ্ট হয়। (এর ধরন : "#FFFFFF")
strokeOpacity- stroke color এর অস্বচ্ছতা নির্দিষ্ট করে। এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
strokeWeight-line এর weight কে pixel একক দ্বারা নির্দিষ্ট করে ।
fillColor- circle এর ভিতরের এলাকার জন্য একটি hexadecimal color নির্দিষ্ট করে । (এর ধরন : "#FFFFFF")
fillOpacity- অভ্যন্তরীণ color এর অস্বচ্ছতা নির্দেশ করে। এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
editable- এটি নির্দেশ করে যে circle টি ব্যাবহারকারী দ্বারা editable(পরিবর্তনযোগ্য) কিনা।

উদাহরণঃ
var myCity = new google.maps.Circle({
center:amsterdam,
radius:20000,
strokeColor:"#0000FF",
strokeOpacity:0.8,
strokeWeight:2,
fillColor:"#0000FF",
fillOpacity:0.4
});

Google Maps - InfoWindow(Google Map এ InfoWindow এর ব্যাবহার)
এটি marker এর কিছু text কে InfoWindow তে দেখায়।
উদাহরনঃ

var infowindow = new google.maps.InfoWindow({
content:"Hello World!"
});

infowindow.open(map,marker);

Thank you for reading......

জাভাস্ক্রিপ্ট স্ট্রিং মেথড (JavaScript String Methods)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট স্ট্রিং মেথড (JavaScript String Methods)

নয়ন চন্দ্র দত্ত

 

স্ট্রিং পদ্ধতি আপনাকে স্ট্রিং নিয়ে কাজ করতে সাহায্য করবে।

 

কোন স্ট্রিং এর মধ্যে একটি স্ট্রিং খুঁজে বের করা

indexOf() পদ্ধতি একটি স্ট্রিং এর মধ্যে নির্দিষ্ট লেখার প্রথম ঘটনার ইন্ডেক্স প্রদান করে।

উদাহরণ


var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");


 

 

lastIndexOf() পদ্ধতি একটি স্ট্রিং এর মধ্যে নির্দিষ্ট লেখার শেষ ঘটনার ইন্ডেক্স প্রদান করে।

উদাহরণ


var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");


 

যদি টেক্সট পাওয়া না তাহলে indexOf() এবং lastIndexOf() উভয় পদ্ধতি -1 প্রদান করে।
[ জাভাস্ক্রিপ্ট শূন্য থেকে অবস্থান গণনা করে। একটি স্ট্রিং মধ্যে 0 প্রথম, 1 দ্বিতীয়, 2 তৃতীয় স্থানে। ]
উভয় পদ্ধতিতে অনুসন্ধানের জন্য শুরুর অবস্থান হিসাবে দ্বিতীয় প্যারামিটার গ্রহণ করে।

 

একটি স্ট্রিং এর মধ্যে স্ট্রিং অনুসন্ধান

search() পদ্ধতি একটি নির্দিষ্ট মানের জন্য একটি স্ট্রিং অনুসন্ধান করে এবং ম্যাচ হওয়া অবস্থান প্রদান করে।

উদাহরণ


var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");


 

**আপনি কি লক্ষ্য করেছেন?
indexOf() এবং search() দুটি পদ্ধতিই সমান।
তারা একই আর্গুমেন্ট (প্যারামিটার) গ্রহণ করে এবং তারা একই মান প্রদান করে।
দুটি পদ্ধতিই সমান কিন্তু search() পদ্ধতি আরো অনেক শক্তিশালী সার্চ মান গ্রহণ করতে পারে।
আপনারা রেগুলার এক্সপ্রেশন সম্পর্কিত অধ্যায়ে শক্তিশালী সার্চ মান সম্পর্কে আরো জানতে পারবেন।

 

স্ট্রিং যন্ত্রাংশ এক্সট্রাক্টিং

একটি স্ট্রিং এর একটি অংশ এক্সট্রাক্টিংয়ের জন্য 3টি পদ্ধতি আছে:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

 

slice() পদ্ধতি

একটি স্ট্রিং এর একটি অংশ এক্সট্রাক্ট করে এবং একটি নতুন স্ট্রিং এক্সট্রাক্টিং অংশ প্রদান করে।
পদ্ধতিতে 2টি প্যারামিটার লাগে। যথাঃ শুরুর ইনডেক্স (অবস্থান), এবং শেষ ইনডেক্স (অবস্থান)।
এই উদাহরণ একটি স্ট্রিংকে 7 থেকে 13 অবস্তানে slices out করেঃ

উদাহরণ


var str = "Apple, Banana, Kiwi";
var res = str.slice(7,13);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি কোন প্যারামিটার নেগেটিভ হয় তাহলে এর অবস্থান স্ট্রিং এর শেষ থেকে গণনা করা হবে।
এই উদাহরণ একটি স্ট্রিংকে -12 থেকে -6 অবস্তানে slices out করেঃ

উদাহরণ


var str = "Apple, Banana, Kiwi";
var res = str.slice(-12,-6);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি আপনি দ্বিতীয় প্যারামিটারটি বর্জন করেন তবে পদ্ধতিটিতে বাকি স্ট্রিং সেভাবেই হবে। যেমনঃ-
var res = str.slice(7);

বা, শেষ থেকে গনণা করলে, যেমনঃ-
var res = str.slice(-12);

[ নেতিবাচক অবস্থানের ইন্টারনেট এক্সপ্লোরার ৮ এবং তার আগের ভারসনে কাজ করবে না। ]

 

substring() পদ্ধতি

substring(), slice() এর মত। ভিন্নতা এই যে substring() কখনও নেগেটিভ ইনডেক্স করতে পারে না।

উদাহরণ


var str = "Apple, Banana, Kiwi";
var res = str.substring(7,13);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি আপনি দ্বিতীয় প্যারামিটারটি বর্জন করেন তবে substring() বাকি স্ট্রিংকে সেভাবেই slice out করবে।

 

substr() পদ্ধতি

substr() , slice() এর মত। ভিন্নতা এই যে substr() এক্সট্রাক্ট অংশের দৈর্ঘ্য নির্দিষ্ট করে।

উদাহরণ


var str = "Apple, Banana, Kiwi";
var res = str.substr(7,6);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি প্রথম প্যারামিটার নেগেটিভ হয়, তাহলে অবস্থান স্ট্রিং এর শেষ থেকে গণনা করা হবে।
দ্বিতীয় প্যারামিটার নেগেটিভ হতে পারে না কারণ এটি দৈর্ঘ্য সংজ্ঞায়িত করে।
যদি দ্বিতীয় প্যারামিটারটি বর্জন করেন তবে substr() বাকি স্ট্রিংকে সেভাবেই slice out করবে।

 

স্ট্রিং বিষয়বস্তু প্রতিস্থাপন

replace() পদ্ধতি একটি স্ট্রিং এর মধ্যে অন্য মানের সঙ্গে একটি নির্দিষ্ট মানকে প্রতিস্থাপন করে।

উদাহরণ


str = "Please visit Microsoft!";
var n = str.replace("Microsoft","W3Schools");


 

replace() মেথড সার্চ মান হিসাবে একটি রেগুলার এক্সপ্রেশনও গ্রহণ করতে পারে।

 

উচ্চ এবং নিম্ন কেসে রূপান্তর

একটি স্ট্রিং toUpperCase() এর সঙ্গে উচ্চ কেসে রূপান্তর হয়।

উদাহরণ


var text1 = "Hello World!";         // String
 var text2 = text1.toUpperCase();   // text2 is text1 converted to upper

 

একটি স্ট্রিং toUpperCase() এর সঙ্গে নিম্ন কেসে রূপান্তর হয়।

উদাহরণ


var text1 = "Hello World!";         // String
 var text2 = text1.toLowerCase();   // text2 is text1 converted to lower

 

 

concat() পদ্ধতি

concat() দুটি অথবা আরো স্ট্রিং যোগ করে।

উদাহরণ


var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);


 

Concat () মেথড প্লাস অপারেটরের পরিবর্তে ব্যবহার করা যেতে পারে। এই দুই লাইন একই কাজ করেঃ


var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");


 

 

স্ট্রিং অক্ষর নিষ্কাশন

স্ট্রিং অক্ষর আহরণের জন্য 2টি নিরাপদ পদ্ধতি নিম্নরূপঃ

  1. charAt(position)
  2. charCodeAt(position)

 

charAt() পদ্ধতি

CharAt () মেথড একটি স্ট্রিং মধ্যে একটি নির্দিষ্ট ইনডেক্সে (অবস্থান) ইনডেক্স চরিত্র প্রদান করে।

উদাহরণ


var str = "HELLO WORLD";
 str.charAt(0);          // returns H

 

 

charCodeAt() পদ্ধতি

CharCodeAt () মেথড একটি স্ট্রিং মধ্যে একটি নির্দিষ্ট ইনডেক্সে ইউনিকোড চরিত্র প্রদান করে।

উদাহরণ


var str = "HELLO WORLD";
str.charCodeAt(0);        // returns 72

 

 

অনিরাপদ অ্যারে হিসাবে স্ট্রিং ব্যবহার

অ্যারে হিসাবে একটি স্ট্রিং অ্যাক্সেস করতে এইরকম কোড দেখতে পাবেনঃ


var str = "HELLO WORLD";
str[0];           // returns H

 

 

একটি স্ট্রিংকে অ্যারেতে রূপান্তর

একটি স্ট্রিং split() মেথডের সাহায্যে অ্যারেতে রূপান্তরিত হতে পারে।

উদাহরণ


var txt = "a,b,c,d,e";   // String
 txt.split(",");         // Split on commas
 txt.split(" ");         // Split on spaces
 txt.split("|");         // Split on pipe

 

যদি বিভাজককে বাদ দেওয়া হয়, তাহলে ফিরতি অ্যারেতে ইনডেক্স [0] এর মধ্যে পুরো স্ট্রিং থাকবে। যদি বিভাজক "" হয়, তবে ফিরতি অ্যারৎ একক অক্ষরের একটি অ্যারে হবে। যেমনঃ

উদাহরণ


var txt = "Hello"; // String
 txt.split("");    // Split in characters

 

নিজে নিজে অনুশীলন কর!

অনুশীলন 01:

ইঙ্গিত: টেক্সট ভেরিয়েবল এর মধ্যে "World" এর প্রথম অবস্থান প্রদর্শন করে।


<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var txt = "Hello World";
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>

 

 

 

অনুশীলন 02:

ইঙ্গিত: "World" কে "Universe" দ্বারা পরিবর্তন করার জন্য replace() মেথড ব্যবহার করুন।


<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var txt = "Hello World";
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>

 

 

অনুশীলন 03:

ইঙ্গিত: শুধুমাত্র "Banana,Kiwi" প্রদর্শনের জন্য slice() মেথড ব্যবহার করুন।


 

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var str = "Apple,Banana,Kiwi";
document.getElementById("demo").innerHTML = str;
</script>
</body>
</html>

 

 

জাভাস্ক্রিপ্ট নাম্বার (JavaScript Numbers)

Huge Sell on Popular Electronics

জাভাস্ক্রিপ্ট নাম্বার (JavaScript Numbers)

নয়ন চন্দ্র দত্ত

 

জাভাস্ক্রিপ্ট এর শুধুমাত্র এক ধরনের নাম্বার আছে। নাম্বার দশমিক দিয়ে বা না দিয়েও লেখা যায়।

জাভাস্ক্রিপ্ট নাম্বার

নাম্বার দশমিক দিয়ে বা না দিয়েও লেখা যায়ঃ

উদাহরণ


var x = 34.00;         // A number with decimals
var y = 34;             // A number without decimals


 

 

অতিরিক্ত বড় বা অতিরিক্ত ছোট সংখ্যা বৈজ্ঞানিক (সূচক) স্বরলিপি দিয়ে লেখা যেতে পারে।

উদাহরণ


var x = 123e5;    // 12300000
 var y = 123e-5;  // 0.00123

 

 

জাভাস্ক্রিপ্ট নাম্বার সর্বদা 64 বিট ফ্লোটিং পয়েন্ট হয়

অন্যান্য অনেক প্রোগ্রামিং ভাষা থেকে ভিন্ন, জাভাস্ক্রিপ্ট বিভিন্ন ধরনের নাম্বার সংজ্ঞায়িত করেনা; যেমন- ইন্টিজার, ছোট, লম্বা, ফ্লোটিং-পয়েন্ট ইত্যাদি।
জাভাস্ক্রিপ্ট নাম্বার সবসময় আন্তর্জাতিক আইইইই 754 মান অনুসরণ করে, ডবল স্পষ্টতার ফ্লোটিং পয়েন্ট নাম্বার হিসেবে সংরক্ষণ করা হয়।
এই ফরম্যাট 64 বিট নাম্বার বিন্যাস করে যেখানে নাম্বার (ভগ্নাংশ) 0 থেকে 51 বি্টের মধ্যে সংরক্ষিত হয়। বিটের সূচক 52 থেকে 62 এবং বিটের সাইন ইন 63 হয়।

 

মান (ওরফে ভগ্নাংশ / অংশক) 52 bits (0 - 51)
সূচক 11 bits (52 - 62)
সাইন 1 bit (63)

 

যথার্থতা

ইন্টিজার (নির্দিষ্ট সময়ের বা সূচক স্বরলিপি ছাড়া নাম্বার) 15 সংখ্যার পর্যন্ত সঠিক বলে মনে করা হয়।

উদাহরণ


var x = 999999999999999;      // x will be 999999999999999
 var y = 9999999999999999;    // y will be 10000000000000000

 

 

দশমিক সর্বোচ্চ সংখ্যা 17 কিন্তু পাটীগণিতীয় ফ্লোটিং পয়েন্ট সবসময় 100% সঠিক হয়না।

উদাহরণ


var x = 0.2 + 0.1;            // x will be 0.30000000000000004

 

 

উপরে সমস্যা সমাধান করার জন্য, এটি সংখ্যাবৃদ্ধি এবং ডিভাইড করতে সাহায্য করেঃ

উদাহরণ


var x = (0.2 * 10 + 0.1 * 10) / 10;           // x will be 0.3

 

 

হেক্সাডেসিমেল

যদি তারা 0x দ্বারা পূর্বে হয় তাহলে জাভাস্ক্রিপ্ট হেক্সাডেসিমাল হিসাবে সাংখ্যিক ধ্রুবক ব্যাখ্যা করে।

উদাহরণ


var x = 0xFF;        // x will be 255

 

[ লিডিং শূন্য (যেমন 07) দিয়ে সংখ্যা লিখবেন না। ]

ডিফল্টরূপে, জাভাস্ক্রিপ্ট বেস 10 দশমিক সংখ্যা হিসাবে প্রদর্শন করে। কিন্তু বেস 16 (হেক্স), বেস 8 (অকট্যাল), বা বেস 2 (বাইনারি) হিসাবে আউটপুট toString() ব্যবহার করতে পারেন।

উদাহরণ


var myNumber = 128;
 myNumber.toString(16);     // returns 80
 myNumber.toString(8);      // returns 200
 myNumber.toString(2);      // returns 10000000

 

 

অসীম

উদাহরণ


var myNumber = 2;
 while (myNumber != Infinity) {          // Execute until Infinity
 myNumber = myNumber * myNumber;
 }

 

 

0 (শূন্য) দ্বারা ভাগ করেও অসীম তৈরি করা যায়।

উদাহরণ


var x = 2 / 0;         // x will be Infinity
 var y = -2 / 0;       // y will be -Infinity

 

 

অসীম একটি সংখ্যা। অসীম typeOf নাম্বার প্রদান করে।

উদাহরণ


typeof Infinity;       // returns "number"

 

 

NaN - কোন সংখ্যা নয়

NaN একটি জাভাস্ক্রিপ্ট সংরক্ষিত শব্দ একটি মান যা নির্দেশ করে যা কোন সংখ্যা নয়। একটি অ-সাংখ্যিক স্ট্রিং সঙ্গে গাণিতিক কাজ করার চেষ্টা করেলে রেজাল্ট NaN(কোন সংখ্যা নয়) হবে।

উদাহরণ


var x = 100 / "Apple";        // x will be NaN (Not a Number)

 

 

যাইহোক, স্ট্রিং এর একটি সাংখ্যিক মান রয়েছে। রেজান্ট একটি সংখ্যা হবেঃ

উদাহরণ


var x = 100 / "10";       // x will be 10

 

 

মান একটি সংখ্যা হয় তাহলে আপনি গ্লোবাল জাভাস্ক্রিপ্ট ফাংশন isNaN() ব্যবহার করে তা খুঁজে বের করতে পারেন।

উদাহরণ


var x = 100 / "Apple";
 isNaN(x);                // returns true because x is Not a Number

 

 

NaN দেখুন। আপনি যদি গাণিতিক অপারেশন এর মধ্যে NaN ব্যবহার করেন তাহলে রেজাল্ট নিম্নরূপ হবেঃ

উদাহরণ


 var x = NaN;
 var y = 5;
 var z = x + y;     // z will be NaN

 

 

NaN একটি নাম্বার। typeOf NaN নাম্বার প্রদান করে।

উদাহরণ


typeof NaN;         // returns "number"

 

 

নাম্বার অবজেক্টও হতে পারে

সাধারণত জাভাস্ক্রিপ্ট সংখ্যা লিটারেল থেকে তৈরি আদিম মানঃ var x = 123
কিন্তু নাম্বারকে নতুন শব্দ দ্বারা অবজেক্ট হিসাবেও সংজ্ঞায়িত করো যেতে পারেঃ var y = new Number(123)

উদাহরণ


var x = 123;
 var y = new Number(123);
          // typeof x returns number
          // typeof y returns object

 

 

কখনও নাম্বার অবজেক্ট তৈরি করবেন না। তারা সঞ্চালনের গতি মন্থর এবং কদর্য পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে।
যখন সমতা == অপারেটর ব্যবহার করেন তখন সমান সংখ্যা সমান দেখায়:

উদাহরণ


var x = 500;
 var y = new Number(500);
// (x == y) is true because x and y have equal values

 

 

যখন সমতা === অপারেটর ব্যবহার করেন তখন সমান সংখ্যা সমান হয়না কারণ === অপারেটর টাইপ এবং মান উভয় সমতা বিবেচনা করে।

উদাহরণ


var x = 500;
 var y = new Number(500);
// (x === y) is false because x and y have different types

 

 

অথবা এমনকি খারাপ. অবজেক্টস তুলনা করা যাবে নাঃ

উদাহরণ


var x = new Number(500);
 var y = new Number(500);
// (x == y) is false because objects cannot be compared

 

জাভাস্ক্রিপ্ট অবজেক্টস তুলনা করা যায় না।

 

নাম্বার প্রোপার্টি এবং মেথড

আদিম মানের (3.14 বা 2014 এর মত) বৈশিষ্ট্য ও পদ্ধতি থাকতে পারে না(কারণ তারা অবজেক্ট না) ।

নাম্বার প্রোপার্টি

প্রোপার্টি ব্যাখ্যা
MAX_VALUE জাভাস্ক্রিপ্ট এ সম্ভব এমন বৃহত্তম সংখ্যা প্রদান করে।
MIN_VALUE জাভাস্ক্রিপ্ট এ সম্ভব এমন ক্ষুদ্রতম সংখ্যা প্রদান করে।
NEGATIVE_INFINITY অসীমে নেগেটিভ প্রতিনিধিত্ব করে।
NaN একটি "সংখ্যা নয়" মান প্রতিনিধিত্ব করে।
POSITIVE_INFINITY অসীম প্রতিনিধিত্ব করে।

 

উদাহরণ


var x = Number.MAX_VALUE;


 

এই প্রোপার্টিস শুধুমাত্র Number.MAX_VALUE হিসেবও ওয়াক্সেস করা যেতে পারে।

myNumber.MAX_VALUE, ব্যবহার করে, যেখানে MyNumber একটি পরিবর্তনশীল, অভিব্যক্তি, অথবা মান তা অনির্ধারিত হিসেবে ফিরে আসে।

উদাহরণ


var x = 6;
var y = x.MAX_VALUE; // y becomes undefined


 

পিএইচপি ৫ ফর লুপ (PHP 5 for Loops)

Huge Sell on Popular Electronics

প্রতাপ চন্দ্র

 

প্রোগ্রামিং ল্যাঙ্গুয়েজে লুপিং একটি গুরুত্বপূর্ণ টার্ম। একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত কম্পিউটারকে একই কাজ পুণ:পুণ: করানোর জন্য for loop স্টেটমেন্ট ব্যবহার করা হয়। PHP (পিএইপি) ল্যাঙ্গুয়েজেও for loop স্টেটমেন্ট ব্যবহার করা হয় এক ব্লক কোড একটি নির্দিষ্ট সংখ্যকবার আবর্তিত হয়ে নির্বাহ করার জন্য।

PHP তে for loop স্টেটমেন্টটি তখন ব্যবহার করা হয় যখন আগেভাগে জানা থাকে কোডটি কতবার বা কতদূর পর্যন্ত রান করাতে হবে।

Syntax বা গঠনরীতি:


for (init counter; test counter; increment counter) {
     code to be executed;
 }

 

এই syntax এ যে প্যারামিটারগুলো ব্যবহার করা হয়েছে তা নিচে ব্যাখ্যা করা হলো:

  • init counter: লুপ কাউন্টার কোন সংখ্যা থেকে শুরু করবে সেই প্রাথমিক মান।
  • test counter: শর্তটির অবস্থা মূল্যায়ন করে দেখে। মান যদি শর্তটির মধ্যে থাকে অর্থাৎ TRUE হয় তবে আবার loop চালু করে। যদি শর্তের বাইরে চলে যায় অর্থাৎ FALSE হয় তখন লুপিং শেষ করে দেয়।
  • increment counter: লুপ কাউন্টারের মান বৃদ্ধি করে।

নিচে একটি উদাহরণ দেয়া হলো:


<?php 
 for ($x = 0; $x <= 10; $x++) {
     echo "The number is: $x <br>";
 } 
 ?>

 

এই কোডটি রান করালে ফলাফল আসবে নিচের মতো:


The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
The number is: 6
The number is: 7
The number is: 8
The number is: 9
The number is: 10


 

পিএইপি foreach Loop:

foreach লুপ কেবলমাত্র array তে কাজ করে। লুপটি একটি অ্যারেতে রাখা প্রতিটি উপাদানে পর্যায়ক্রমে প্রবেশের জন্য ব্যবহার করা হয়। এর গঠনরীতি নিচে দেয়া হলো:


foreach ($array as$value) {
     code to be executed;
 }

প্রতিটি লুপ যখন কার্যকর হয় তখন অ্যারের তাতক্ষনিক উপাদানটি $value হিসেবে পরিগণিত হবে এবং অ্যারের পরের উপাদানে যায়। যতক্ষণ পর্যন্ত না এটি ওই অ্যারের সর্বশেষ উপাদানে পৌছাবে ততক্ষণ একই প্রক্রিয়া চলতে থাকবে।

নিচের উদাহরণটি একটি লুপ প্রদর্শন করবে যা $colors অ্যারের value গুলো আউটপুট হিসেবে এক এক করে প্রদর্শন করবে।


<?php 
 $colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
     echo "$value <br>";
 }
 ?>

 

এই কোডটি রান করালে ফলাফল আসবে নিচের মতো:


red
green
blue
yellow


 

Overview of Project Management

Huge Sell on Popular Electronics

Overview of Project Management

উইন্ডোজ ৮.১ টিউটোরিয়াল: ডেস্কটপ (Familiar Desktop)

Huge Sell on Popular Electronics

 

পরিচিতি : ডেস্কটপ ব্যবহার করা

Desktop এ সকল প্রকার অ্যাপ্লিকেশন এবং প্রোগ্রাম ব্যবহার করতে পারেন - বিশেষ সফটওয়্যার থেকে শুরু করে Windows Store এর যেকোন Application ব্যবহার করতে পারেন। দ্রুত প্রবেশ করার জন্য আপনার পছন্দের অ্যাপ্লিকেশন এবং প্রোগ্রামগুলোকে Taskbar এর সাথে পিন করে রাখতে পারেন এবং বিভিন্ন সর্টকাট, ব্যাকগ্রাউন্ড এবং থিম দিয়ে Desktop কে নিজের মতো করে সাজাতে পারেন।

আপনি কিভাবে আপনার পিসিকে ব্যবহার করতে চান তা কোন ব্যাপার না - আপনি অ্যাপ, উইন্ডোজ এবং Start Screen এর মধ্যে দ্রুত সুইচ (একটি থেকে অন্যটিতে যেতে পারেন) করতে পারেন।

Desktop এ ফিরে যাওয়া

পিসির যেকোন স্থান থেকে Desktop এ ফিরে যাবার বেশ কিছু পদ্ধতি আছে । আপনি নিচের যেকোনটি অনুসরণ করতে পারেন:
Start খুলুন এবং Start Screen এর Desktop টাইলস এ টোকা দিন বা ক্লিক করুন।
• কীবোর্ড থেকে উইন্ডোজ লগো কী Windows Logoএ চাপ দিন।
• পর্দার ডান কর্ণারের দিকে যান এবং Search এ টোকা দিন।

টাস্কবার এর উপর অ্যাপ্লিকেশন

Taskbar এর মাধ্যমে আপনি খোলা Application গুলোর মধ্যে সুইচ (একটি থেকে অন্যটিতে যাওয়া) করতে পারেন এবং যেসকল Application আপনি প্রায়ই ব্যবহার করেন সেগুলো পিন করে রাখতে পারেন।
Taskbar
Taskbar সাধারণত Desktop এর নিচের দিকে থাকে, কিন্তু আপনি পর্দার নিচের অংশে নীচের প্রান্ত থেকে মাউস পয়েন্টার চেপে ধরে সরানোর মাধ্যমে এটিকে পিসির যেকোন স্থানে নিতে পারবেন।

আপনি যদি টাস্কবার এ আপনার খোলা সকল অ্যাপ দেখতে না পান

খোলা অবস্থায় Windows Store এর অ্যাপ্লিকেশনগুলো যদি Taskbar এ দেখা না যায়, নিশ্চিত হয়ে নিন যে এই ফিচার Turn on করা আছে কিনা।

যেসকল Application আপনি প্রায়ই ব্যবহার করেন সেগুলোকে পিন করে রাখা

দ্রুততার সাথে খোলার জন্য আপনি আপনার পছন্দের অ্যাপ্লিকেশনগুলোকে Start Screen বা Taskbar এর সাথে পিন করে রাখতে পারেন এবং Tiles এ এক নজরে আপডেটগুলো দেখতে পারেন।

ধাপ 1
g
App Viewদেখার জন্য আপনার হাতের আঙুলের সাহায্যে Start Screen এর মাঝ বরাবর থেকে উপরের দিকে স্লাইড করুন অথবা Start Screen এর নিচের দিকে বাম পাশের অ্যারো f এ ক্লিক করুন।

ধাপ 2
h
যে Application কে পিন করতে চান তার উপর চাপ দিন বা ধরে রাখুন বা রাইট ক্লিক করুন। আপনি একাধিক Application বাছাই করতে পারেন এবং সবগুলোকে একই সাথে পিন করতে পারেন।

ধাপ 3
i
টোকা দিন বা ক্লিক করুন Pin to Start অথবা Pin to taskbar এর উপর। যে অ্যাপ্লিকেশনগুলো পিন করেছেন তা Start Screen এর শেষে বা Desktop টাস্কবারে দেখা যাবে।

খোলা Application পিন করা

আপনি যদি ইতোমধ্যে কোন Application ব্যবহার করতে থাকেন তাহলে স্টর্ট স্ক্রিণে না যেয়েও একে Taskbar এর সাথে পিন করতে পারেন।

ধাপ: 1
pin1
অ্যাপটির Taskbar বাটন চাপ দিয়ে ধরে রাখুন এবং আপনার আঙুল উপরের দিকে ঘষা দিন যতক্ষণ না একটি মেনু দেখা যায়। (যদি আপনি মাউস ব্যবহার করতে চান তাহলে অ্যাপটির Taskbar বাটনে ডান-ক্লিক করুন)

ধাপ: 2
pin2
Pin this program to taskbar এ টোকা দিন বা ক্লিক করুন । এখন আপনি অ্যাপটি বন্ধ করলেও অ্যাপটি টাস্কবারে থেকে যাবে।

Taskbar এর খোলা অ্যাপ্লিকেশনগুলোর একটি থেকে আরেকটিতে যাওয়া।

আপনি যখন একটি Application ব্যবহার করছেন Taskbar এর মাধ্যমে আপনি অন্য Application এ যেতে পারেন বা Start এ ফিরে যেতে পারেন।

কোন Application যখন সম্পূর্ণ পর্দা জুড়ে খোলা থাকে তখন Taskbar দেখার জন্য মাউস পয়েন্টার পর্দার নিচের প্রান্তের দিকে নিয়ে গেলে Taskbar দেখা যাবে। তখন Start এ ফিরে যাবার জন্য স্টার্ট বাটনে ক্লিক করুন অথবা অন্য Application এ সুইচ করতে ঐ Application এর উপর ক্লিক করুন।

পরিচিত ভাবে অ্যাপ্লিকেশন ব্যবহার করে

আপনি মিনিমাইজ বা ক্লোজ বাটনে ক্লিক করে অ্যাপ্লিকেশন কে মিনিমাইজ (অ্যাপ্লিকেশনকে Taskbar এ নিয়ে এসে রাখা) বা বন্ধ করতে পারেন (যদি আপনি এই বাটনগুলো দেখতে না পান তাহলে মাউস পয়েন্টারকে পর্দার উপরের প্রান্তের দিকে নিয়ে যেতে পারেন)
apps
আপনি উপরের বাম প্রান্তের অ্যাপ্লিকেশনের আইকন এর উপর ডান ক্লিক করেও মিনিমাইজ (অ্যাপ্লিকেশনকে টাস্কবার এ নিয়ে এসে রাখা),ক্লোজ (বন্ধ) বা পর্দার বাম বা ডান পাশে অ্যাপ্লিকেশনটিকে বিভক্ত করে রাখতে পারেন।
apps2

Desktop কে সংগঠিত করুন

আপনি যেভাবে পছন্দ করেন সেভাবে Desktop কে সংগঠিত করে রাখতে পারেন । আপনি সর্টকাট মুছে ফেলতে পারেন বা পছন্দের ফাইল বা ফোল্ডার এর জন্য সর্টকাট তৈরি করতে পারেন, ভিন্নতর ব্যাকগ্রাউন্ড, উইন্ডো কালার এবং থিম এর সাহায্যে Desktop কে নিজের মতো করে সাজাতে পারেন। Personalization Gallery এ বাছাই করার জন্য প্রচুর সংখ্যক ফ্রি থিম আছে। Desktop কে নিজের ইচ্ছা মতো রূপ দান কিভাবে করবেন তা সম্পর্কে আরো বিস্তারিত জানতে দেখুন “থিম দিয়ে শুরু করুন”।

পছন্দ করুন Sign in করার পর আপনি কোথায় যেতে চান

ডিফল্ট হিসেবে, অধিকাংশ মানুষ যখন তাদের পিসিতে Sign in করে তখন Desktop এ যায়, কিন্তু আপনি যখন আপনার পিসিতে Sign in করবেন তখন Desktop, Start Screen, বা App View এর মধ্যে যেকোনটি পছন্দ করতে পারেন, সেক্ষেত্রে আপনি কোন Device ব্যবহার করছেন তা কোন ব্যাপার না।

1. প্রথমে, পর্দার ডান পাশে সুইপ করার মাধ্যমে টাস্কবার ও নেভিগেশন প্রোপার্টিজ খুলুন, Search এ টোকা দিন, সার্চ বক্স এ Taskbar লিখুন, এবং তারপর ফলাফল থেকে Taskbar and Navigation এ টোকা দিন বা ক্লিক করুন।

2. নিচের যেকোন একটি করুন
# Start এ বুট করার জন্য
Navigation ট্যাব এ টোকা দিন বা ক্লিক করুন এবং তারপর When I sign in or close all apps on a screen, go to the desktop instead of Start চেক বক্স নির্বাচন উঠিয়ে দিন । OK তে টোকা দিন বা ক্লিক করুন। আপনি যখন পরবর্তীতে পিসি Sign in করবেন তখন Desktop এর বদলে Start Screen দেখা যাবে।

# Desktop এ বুট করার জন্য
Navigation ট্যাব এ টোকা দিন বা ক্লিক করুন এবং তারপর When I sign in or close all apps on a screen, go to the desktop instead of Start চেক বক্স নির্বাচন করুন । OK তে টোকা দিন বা ক্লিক করুন। আপনি যখন পরবর্তীতে পিসি Sign in করবেন তখন Desktop দেখা যাবে।

# App View এ বুট করার জন্য
Navigation ট্যাব এ টোকা দিন বা ক্লিক করুন এবং তারপর When I sign in or close all apps on a screen, go to the desktop instead of Start চেক বক্স নির্বাচন উঠিয়ে দিন ।
তারপর Show the Apps view automatically when I go to Start চেক বক্স নির্বাচন করুন। OK তে টোকা দিন বা ক্লিক করুন। যখন পরবর্তীতে পিসি Sign in করবেন তখন App View দেখা যাবে। (অন্যন্য নির্দেশ যা আপনাকে সাধারণত Start এ নিয়ে যেত তা এখন App View এ নিয়ে যাবে।)

স্টার্ট বাটন থেকে আরও অপশন

বাম পাশের নিচের প্রান্তে আপনি স্টার্ট বাটন দেখতে পাবেন। আপনি Start Screen এ যাওয়ার জন্য স্টার্ট বাটনে টোকা বা ক্লিক করতে পারেন, অথবা quick and advanced options এ যাওয়ার জন্য চাপ দিয়ে ধরে রাখতে পারেন বা ডান-ক্লিক করতে পারেন - এর মাধ্যমে আপনি কম্পিউটার বন্ধ করতে পারেন, সাইন আউট করতে পারেন, কন্ট্রোল প্যানেল এ যেতে পারেন এবং টাস্ক ম্যানেজার বা কমান্ড প্রম্পট খুলতে পারেন।
11111