ম্যাকবুক প্রো এর ট্রাকপ্যাড এর ক্লিক কাজ না করলে এটিকে কিভাবে মেরামত করবেন (How to repair not clicking MacBook Pro trackpad)

যদি ম্যাকবুক প্রো এর ট্রাকপ্যাড (মাউস প্যাড) এ ক্লিক কাজ না করে তাহলে ট্রাবলশুটিং এবং সমস্যা সমাধানের জন্য কিছু নির্দেশনাবলী চেষ্টা করে দেখতে পারেন।

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

  1. ত্রুটিপূর্ণ (ফুলে যাওয়া) ব্যাটারি
  2. ট্রাকপ্যাড এর স্ক্রু ভুলভাবে লাগানো
  3. ত্রুটিপূর্ণ ট্রাকপ্যাড

সমস্যা সমাধানের কৌশল ধাপে ধাপে দেখা যাক

trackpad-repair-00

ধাপ 1 :

ব্যাটারি ঠিক আছে কিনা তা দেখার জন্য একে ল্যাপটপ থেকে বিচ্ছিন্ন করতে হবে।

সাধারণত দুই বা তিনটি স্ক্রু দিয়ে কেসিং এর সাথে আটকিয়ে ব্যাটারিকে সরক্ষিত রাখা হয়।

trackpad-repair-01

এই স্ক্রুগুলি Y আকৃতির। আপনি একটি বিশেষ ট্রাই-উইং (তিনটি কিনারাযুক্ত) স্ক্রু ড্রাইভার প্রয়োজন হবে।

আপনি ছোট চ্যাপটা মাথাওয়ালা (ফ্লাট) স্ক্রু ড্রাইবার দিয়ে চেষ্ট করে দেখতে পারেন।

আমি Wiha 1.5 × 40 স্ক্রু ড্রাইভার ব্যবহার করে এটি খুলতে পেরেছি। যদি তিনটির মধ্যে দুইটি ধার এর সাথে মিলে যায় তাহলে আমি উভয় স্ক্রু খুলতে পারবো।

trackpad-repair-03

লজিক বোর্ড থেকে প্লাস্টিকের লাঠি বা আঙুলের নখ দিয়ে ব্যাটারির সংযোগ বিচ্ছিন্ন করুন।

trackpad-repair-02

ব্যাটারি ল্যাপটপ থেকে বিচ্ছিন্ন করুন এবং একটি সমতল স্থানে রাখুন।

পরীক্ষা করে দেখুন যে ব্যাটারি যেমন দেখা উচিৎ তার থেকে চিকন দেখা যায় কিনা।

যখন MacBook Pro এর ব্যাটারি ত্রুটিপূর্ণ হয় তখন কিছু ক্ষেত্রে এটি মোটা দেখা যায়

যদি ফোলা ব্যাটারিটি ল্যাপটপের ভিতরে থাকে তাহলে এটি ট্রাকপ্যাড এর নিচের দিকে চাপ দেয় এবং এর ক্লিক ঠিকমত কাজ করা বন্ধ করে দেয়।

trackpad-repair-04

ফোলা ব্যাটারিটি বিচ্ছিন্ন করুন এবং দেখুন এরপর ট্রাকপ্যাডটি কাজ করে কিনা। যদি এটি কাজ করে তাহলে ব্যাটারিটি পরিবর্তন করুন।

ধাপ 2:

ব্যাটারি বিচ্ছিন্ন করার পরও যদি ট্রাকপ্যাড এর ক্লিক ঠিকমত কাজ না করে, তাহলে নিচের চিত্রের মতো করে স্ক্রুগুলি সমন্বয় করে দেখুন।

আপনার এজন্য T6 torx স্ক্রু ড্রাইভার প্রয়োজন হবে।

স্ক্রু বামাবর্তে ঘুরালে ট্রাকপ্যাড আলগা হয়ে যাবে।

ঘড়ির কাঁটার দিকে ঘুরালে ট্রাকপ্যাডটি আটসাট হয়ে লাগবে।

trackpad-repair-05

আপনার MacBook Pro টি একপাশ করে রাখুন এবং স্ক্রু সমন্বয় করার সময় ট্রাকপ্যাড এর উপর ক্লিক করতে থাকুন।

আপনার জন্য ভাল কাজ করে এমন অবস্থানে থামুন।

trackpad-repair-06

ধাপ 3:

ব্যাটারি বিচ্ছিন্ন করার পর এবং স্ক্রু সমন্বয় করার পরও যদি ট্রাকপ্যাড এর ক্লিক ঠিকমত কাজ না করে, সম্ভবত এটি ক্রুটিপূর্ণ হয়ে গেছে এবং একে পরিবর্তন করতে হবে।

আপনি নতুন যন্ত্রাংম এখানে পেতে পারেন:

MacBook Pro 13″ trackpads.

MacBook Pro 15″ trackpads.

MacBook Pro 17″ trackpads.

এখানে বিচ্ছিন্নকরণ এবং নতুন ট্রাকপ্যাড সংযুক্তকরণ প্রক্রিয়া দেখা হলো :

একটি প্লাস্টিকের লাঠি বা আঙুলের নখ ব্যবহার করে সতর্কভাবে ট্রাকপ্যাড ক্যাবল বিচ্ছিন্নকরুন।

trackpad-repair-07

চারটি সিলভারের স্ক্রু খুলুন।

আপনার একটি ছোট আকৃতির স্ক্রু ড্রাইভার প্রয়োজন হবে। এই স্ক্রুগুলি খুবিই ছোট এবং খোলা সহজ।

আমি Wiha এর স্ক্রু ড্রাইভার ব্যবহার করেছি।

trackpad-repair-08

স্ক্রু খোলার সময় ট্রাকপ্যাড এর নিচের দিকে আপনার আঙুলের সাহায্যে সাপোর্ট দিন।

trackpad-repair-11

সকল স্ক্রু খোলার পর, palm rest এ যেভাবে প্রতিক দ্বারা চিহ্নিত করা আছে সেভাবে ট্রাকপ্যাড এর নিচের দিকে স্লাইড করুন।

trackpad-repair-14

কেসিং থেকে খোলার জন্য তারটি ধরে টানুন।

MBP-trackpad-repair-16

ত্রুটিপূর্ণ ট্রাকপ্যাডটি অপসারণ করুন এবং নতুন একটি দিয়ে পরিবর্তন করুন।

Fail

ট্রাকপ্যাড ক্যাবল সংযুক্ত করার মাধ্যমে পুণসংযোগ কার্যক্রম শুরু করুন।

একটি ছোট চ্যাপ্টা স্ক্রু ড্রাইভারের সাহায্যে কানেকটরটি সংযুক্ত করতে পারেন।

Repair

ট্রাকপ্যাডটি আগের স্থানে স্থাপন করুন।

Repair Laptop

চারটি সিলভার স্ক্রু দিয়ে এটিকে নিরাপদ করুন কিন্তু এখনই এদেরকে আটসাটভাবে লাগাবেন না।

Laptop Re

MacBook Pro কে উপরের দিকে ঘুরান এবং ট্রাকপ্যাড এর পজিশন ঠিক করুন।

নিশ্চিত হয়ে নিন যে ট্রাকপ্যাড এবং Palm rest এর মধ্যকার দূরত্ব সমান থাকে।

ঠিকভাবে বসার পরে, আপনি চারটি সিলভার স্ক্রুকে টাইট করুন।

trackpad-repair-16

নতুন ট্রাকপ্যাড এর স্ক্রু আগে উল্লেখিত নিয়ম অনুযায়ী সমন্বয় করা প্রয়োজন হতে পারে।

trackpad-repair-06

ম্যাকবুক 13-ইঞ্চি হয়াইট ইউনিবডি এর স্ক্রীণ কিভাবে পরিবর্তন করবেন (How to replace screen on MacBook 13-inch white unibody)

replace-screen-00

কিভাবে ম্যাকবুক 13-ইঞ্চি ইউনিবডি ল্যাপটপ এর এলসিডি স্ক্রীণ পরিবর্তন করবেন এখানে সে সম্পর্কে আলোচনা করা হলো। এই নির্দেশাবলী আপনি ম্যাকবুক লেট-2009 এবং মিড-2010 মডেল এর ক্ষেত্রেও ব্যবহার করতে পারবেন।

ধাপ ১ :

আমার জোরালো পরামর্শ হলো ল্যাপটপ ডিসঅ্যাসেম্বলি (ল্যাপটপ থেকে যন্ত্রাংশ বিচ্ছিন্ন) করার সময় অবশ্যই ব্যাটারির সংযোগ বিচ্ছিন্ন করে নিবেন।

replace-lcd - 01

ধাপ 2 :

অবশ্যই ব্যাটারী ল্যাপটপ থেকে খুলে ফেলবেন।

এটি ছয়টি স্ক্রু দ্বারা সুরক্ষিত থাকে : তিনটি সাধারণ ফিলিপস স্ক্রু (হলুদ বৃত্ত চিহ্নিত) এবং তিনটি ট্রাই-উইং স্ক্রু (লাল বৃত্ত চিহ্নিত)।

যদি আপনার ট্রাই-উইং স্ক্রু ড্রাইভার না থাকে তাহলে ছোট সমতল মাথাযুক্ত স্ক্রু ড্রাইভারও ব্যবহার করতে পারেন।

replace-screen-02

ধাপ 3 :

ব্যাটারী খুলে নিন।

replace-screen-03

ধাপ 4 :

পর্দার ফ্রেমটি আঠালো টেপ দ্বারা ডিসপ্লে এর সাথে লাগানো থাকে।

যদি আপনি ফ্রেমটি প্রথমে একটু গরম করে নেন তাহলে এটি সহজেই অলাদা করে ফেলতে পারবেন।

গরম করার যন্ত্রটি (হিট গান) ব্যবহারের সময় সতর্ক থাকুন। যদি আপনি ফ্রেমটি অতিরিক্ত গরম করে ফেলেন তাহলে এটি স্থায়ীভাবে নষ্ট হয়ে যেতে পারে।

এক্ষেত্রে হেয়ার ড্রাইয়ার ব্যবহার করা সম্ভবত বেশি নিরাপদ। ফ্রেমটি যেন পুড়ে যাবে না। এটি যথেষ্ট পরিমাণে উষ্ণ করতে হবে যাতে আঠালো টেপটি নরম হয়ে যায়।

replace-lcd-screen-04

ধাপ 5 :

একটি ধারালো বস্তু ব্যবহার করে ফ্রেমটি পৃথক করা শুরু করুন।

replace-screen-05

ধাপ 6 :

আপনার আঙুলের সাহায্যে ফ্রেমটি পৃথক করতে থাকুন।

আঠালো টেপটি যতটা সম্ভব স্পর্শমুক্ত রাখুন যাতে এটি পুনরায় ব্যবহার করা যায়।

ফ্রেমটি পৃথক করার সময় এটি উষ্ণ রাখার জন্য গরম করার যন্ত্র (হিট গান) বা হেয়ার ড্রাইয়ার ব্যবহার করতে থাকুন।

replace-screen-06

ধাপ 7 :

যখন আপনি পর্দার নিচের প্রান্তে পৌছে যাবেন তখন ফ্রেমটি পৃথক করার জন্য প্লাস্টিকের লাঠি ব্যবহার করা বেশি সুবিধাজনক।

আপনি দেখতে পাচ্ছেন ফ্রেমটি খুবই নমনীয়।

replace-screen-07

ধাপ 8 :

পর্দার নিচের প্রান্ত থেকে ফ্রেমটি পৃথক করতে থাকুন।

এটি সম্ভবত সবচেয়ে কঠিন অংশ।

replace-screen-08

ধাপ 9 :

LCD পর্দা সুরক্ষার জন্য ব্যবহৃত ছয়টি স্ক্রু খুলুন।

আপনাকে ছোট চ্যাপটা মাথা বিশিষ্ট ফিলিপস স্ক্রু ড্রাইভার ব্যবহার করতে হবে।

replace-screen-09

ধাপ 10 :

ব্যাক কভার থেকে পর্দাটি আলাদা করুন।

replace-screen-10

ধাপ 11 :

পর্দাটিকে উচু করে ধরুন যাতে আপনি সংযুক্ত ক্যাবল এর কাছে যেতে পারেন।

সংযোগকারী ক্যাবল এর কাছে পৌছানোর খুব সীমিত জায়গাই পাবেন।

replace-screen-11

ধাপ 12 :

সংযোগ সুরক্ষিত করার জন্য ব্যবহৃত কালো টেপটি অপসারণ করুন।

replace-screen-12

ধাপ 13 :

সতর্কভাবে সংযোগটি বিচ্ছিন্ন করুন।

replace-screen-13

ধাপ 14 :

এখন আপনি ভিডিও ক্যাবলটি টেনে সরিয়ে নিতে পারবেন।

এখন ক্ষতিগ্রস্থ LCD পর্দাটি অপসারণ করুন এবং নতুন একটি সংযুক্ত করার জন্য প্রস্তুত হন।

replace-screen-14

ধাপ 15 :

নতুন পর্দাটির (স্ক্রীণ) নিয়ে এসে একে সঠিক অবস্থান এ রাখুন যাতে আপনি ভিডিও ক্যাবলটি সংযুক্ত করতে পারেন।

replace-screen-15

ধাপ 16 :

ক্যাবলটি সংযুক্ত করুন।

replace-screen-16

ধাপ 17 :

সংযোগ সুরক্ষিত করার জন্য ব্যবহৃত কালো টেপটি পুনরায় সংযোগকারী স্থানে লাগিয়ে দিন।

replace-screen-17

ধাপ 18 :

ছয়টি স্ক্রু লাগিয়ে LCD পর্দাটিকে সুরক্ষিত করুন।

ফ্রেমটি লাগানোর পুর্বে স্ক্রিণটি ঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করে নেয়া ভাল।

replace-screen-18

ধাপ 19 :

আঠালো টেপটি এবং ফ্রেমটির পিছনের পার্শ্ব ভাল করে লক্ষ করুন।

যদি আঠালো টেপটি বাহিরের দিকে বের হয়ে থাকে তাহলে এটিকে সোজা করে দেয়া বা কেটে ফেলাই ভাল।

ফ্রেমটি ডিসপ্লে এর সাথে যতটা সম্ভব মসৃণভাবে বসতে হবে।

replace-screen-19

ধাপ 20 :

নতুন পর্দা থেকে প্রতিরক্ষামূলক ফিল্ম (পাতলা ছাল) সরান (যদি থেকে থাকে)।

replace-screen-20

ধাপ 21 :

সর্বশেষে, ফ্রেমটি জায়গামতো বসান এবং আঠালো বস্তুর সাথে পুনরায় লাগান।

replace-screen-21

 

HTML Head (এইচটিএমএল হেড)

Atik Hasan

Webpage design & developer

 

HTML Head (এইচটিএমএল হেড):

<head>…..</head> ট্যাগ দিয়ে head সেকশন গঠিত। head সেকশনে meta data অর্থাৎ ডকুমেন্ট সম্পর্কিত তথ্য থাকে।এই head সেকশন এ যা কিছু লেখা হয় তা ওয়েব পেইজ এ দেখা যায় না। head সেকশন এ সাধারণত নিম্মের ট্যাগগুলো থাকেঃ

Title, Meta, Link, Base, Style, Script

 

শিরোনাম ট্যাগ

এই ট্যাগের মাঝে যা লিখা হয় তা Browser এর টাইটেল বারে দেখা যায়। মূলত ওয়েব পেইজ content এর একটি সংক্ষিপ্ত টাইটেল এই ট্যাগের মাঝে লেখা হয়। যেমন আমি যদি ওয়েব পেইজ ডিজাইনের বিভিন্ন এলিমেন্ট নিয়ে একটি ওয়েব পেইজ বানাতে চাই তা হলে টাইটেল নিচের মত হলে ভাল হয়ঃ-


<title>web page design tutorial</title>


 

 

মেটা ট্যাগ

এই ট্যাগ ব্যাবহার করা হয় ডকুমেন্ট সম্পর্কিত সকল তথ্য সন্নিবেশ/বর্ণনা করার জন্য।মেটা ডাটা browser, search engine এবং অন্নান্য ওয়েব সারভিস দ্বারা বেবহৃত হয়।  সার্চ ইঞ্জিন ইনডেক্সিং এর জন্য এ ট্যাগের গুরুত্ত অপরিসীম।

সার্চ ইঞ্জিনের জন্য keywords নির্ধারণ করাঃ


<meta name=”keywords” content=”HTML, CSS, XML, XHTML, JavaScript”>


 

 

ওয়েব পেজ এর description নির্ধারণ করাঃ


<meta name=”description” content=”Free Web tutorials on HTML and CSS”>


 

 

ওয়েব পেজ এর author নির্ধারণ করাঃ


<meta name=”author” content=”Hege Refsnes”>


 

 

ওয়েব পেজ এর character set নির্ধারণ করাঃ


<meta charset=”UTF-8″>


 

 

৩০ সেকন্ড পরপর ওয়েব পেজ auto refresh করাঃ


<meta http-equiv=”refresh” content=”30″>


 

 

লিঙ্ক ট্যাগ

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


<link rel=”stylesheet” href=”mystyle.css”>


 

 

বেজ ট্যাগ

Base ট্যাগ টি দ্বারা ওয়েব সাইটের সকল লিঙ্ক জন্য এর একটি default অ্যাড্রেস বা default target  সেট করিয়ে দেয়া হয়।যেমনঃ-


<base href=”http://bangla.salearningschool.com” target=”_blank”>


 

 

যেহেতু আমরা base অ্যাড্রেসের target হিসেবে _blank দিয়েছি সেহেতু এই পেইজের কোন লিঙ্ক এ ক্লিক করলে নতুন একটি ট্যাব এ পেজটি ওপেন হবে।

 

স্টাইল ট্যাগ (Style Tag)

HTML ডকুমেন্টটিতে কি ধরণের ইস্টাইল ব্যাবহার হবে তা এই style ট্যাগ দ্বারা লেখা হয়। যেমনঃ-


<style>
body {background-color:yellow;}
</style>

 

 

স্ক্রিপ্ট ট্যাগ (Script Tag)

Script ট্যাগটি Java script লেখার জন্য ব্যাবহার করা হয়। যেমন আমরা ওয়েব পেজ এ Hello JavaScript এই লেখাটুকো দেখাব demo নামক id ব্যাবহার করে।


<script>
function myFunction {
document.getElementById("demo").innerHTML = "Hello JavaScript!";
}
</script>

 

 

Get Started with Cascading on Hortonworks Data Platform 2.1

Get Started with Cascading on Hortonworks Data Platform 2.1

সি প্রোগ্রামিঙে টাইপ কাস্টিং

সি প্রোগ্রামিঙে টাইপ কাস্টিংঃ
রিদওয়ান বিন শামীম

টাইপ কাস্টিং একটি পদ্ধতি যেখানে কোন চলককে এক ডাটা টাইপ থেকে অন্য ডাটা টাইপে পরিবর্তিত করা যায়। যেমন, একটি লম্বা মানকে যদি সাধারণ একটি পূর্ণ সংখ্যায় প্রকাশ করতে চাই, তাহলে long থেকে int এ টাইপ কাস্ট করে তা করা যায়।এক টাইপ থেকে অন্য টাইপে রুপান্তরের ক্ষেত্রে নিচের মত করে কাস্ট অপারেটর ব্যবহার করে এটি করা হয়ঃ
(type_name) expression

কাস্ট অপারেটর কীভাবে floating-point operation হিসাবে দুটি পূর্ণসংখ্যা চলক বিভাজন তৈরি করে আলাদা করে তা নিচের উদাহরণ থেকে আমরা বুঝতে পারি।

#include <stdio.h>

main()
{
int sum = 17, count = 5;
double mean;

mean = (double) sum / count;
printf(“Value of mean : %f\n”, mean );

}
উপরের কোড ঠিকভাবে কাজ করলে তা যে ফলাফল দেখাবে তা হল,
Value of mean : 3.400000
এখানে বলা উচিৎ যে, কাস্ট অপারেটর ডিভিশনের চেয়ে বেশি অগ্রাধিকার পায় তাই অঙ্কের মান type double দ্বারা রূপান্তরিত হয়, তারপর দ্বৈত মান প্রদর্শন করে। টাইপ কনভার্সন অন্তর্নিহিতও হতে পারে যা কম্পাইলারের মাধ্যমে স্বয়ংক্রিয়ভাবে হতে পারে বা কাস্ট অপারেটরের মাধ্যমে সরাসরিও হয়। তবে টাইপ কনভার্সন কাস্ট অপারেটরের মাধ্যমে করাই ভাল।
পূর্ণসংখ্যার মানোন্নয়নঃ পূর্ণসংখ্যার মানোন্নয়ন একটি প্রক্রিয়া যেটি int বা unsigned int এরচে ছোট মানের পূর্ণসংখ্যার মানকে int বা unsigned int এর মানে আনতে ব্যবহার করা হয়।কোন int এ ক্যারেকটার যোগ করার ক্ষেত্রে আমরা যা করতে পারি তা হল,
#include <stdio.h>

main()
{
int i = 17;
char c = ‘c’; /* ascii value is 99 */
int sum;

sum = i + c;
printf(“Value of sum : %d\n”, sum );

}
উপরের কোড ঠিকভাবে কাজ করলে তা যে ফলাফল দেখাবে তা হল,

Value of sum : 116
এখানে মান ১১৬ আসছে কারণ কম্পাইলার পূর্ণসংখ্যার মানোন্নয়ন করে সি (‘c’ )এর মান ascii তে রুপান্তর করে নিচ্ছে মূল কাজের আগে।
সাধারণ এরিথমেটিক রুপান্তরঃ সাধারণ এরিথমেটিক রুপান্তরের ক্ষেত্রে অন্তর্হিত ভাবে সব মানকে একটি নির্দিষ্টভাবে সাজানো হয়। কম্পাইলার প্রথমে পূর্ণসংখ্যার মানোন্নয়ন করে, এর পরও টাইপ সমান না হলে নিচের ক্রমানুসারে সংখ্যার প্রাপ্যতার অগ্রাধিকার ভিত্তিতে রুপান্তর করা হয়।

সাধারণ এরিথমেটিক রুপান্তর assignment operators বা logical operators ইত্যাদির জন্য ব্যবহার করা হয় না। নিচের উদাহরণ থেকে আমরা ব্যপারটা বুঝবঃ
#include <stdio.h>

main()
{
int i = 17;
char c = ‘c’; /* ascii value is 99 */
float sum;

sum = i + c;
printf(“Value of sum : %f\n”, sum );

}
উপরের কোড ঠিকভাবে কাজ করলে তা যে ফলাফল দেখাবে তা হল,

Value of sum : 116.000000
এখানে c প্রথমে পূর্ণসংখ্যায় রূপান্তরিত হয়েছে কিন্তু মূল মান দ্বিগুণ হওয়ায় সাধারণ এরিথমেটিক রুপান্তর ব্যবহার করে এবং কম্পাইলার i ও c কে floatএ রূপান্তরিত করে সেভাবেই ফলাফল দিয়েছে।

সি প্রোগ্রামিঙে প্রিপ্রসেসর

সি প্রোগ্রামিঙে প্রিপ্রসেসরঃ
রিদওয়ান বিন শামীম

সি প্রোগ্রামিঙে প্রিপ্রসেসর কম্পাইলারের অংশ নয় কিন্তু কিন্তু কম্পাইলেসন প্রক্রিয়ার একটি পৃথক অংশ। সহজ কথায় বলতে গেলে, সি প্রিপ্রসেসর একটি টেক্সট সাবস্টিটিউশন অনুষঙ্গ এবং কম্পাইলারকে মূল কম্পাইলেসনের আগে প্রয়োজনীয় প্রিপ্রসেসিং সম্পন্ন করার নির্দেশ দিয়ে থাকে। আমরা এ প্রবন্ধে সি প্রিপ্রসেসরকে সিপিপি বলব।
সমস্ত প্রিপ্রসেসর কমান্ড একটি পাউন্ড প্রতীক (#) দ্বারা শুরু হয়। এটি প্রথম অশূন্য মাত্রা, এবং পঠনযোগ্যতার জন্য এটি প্রথম কলামে শুরু করা হয়। কিছু গুরুত্বপূর্ণ প্রিপ্রসেসিং ডিরেক্টিভ নিচের তালিকায় দেয়া হল।
Directive Description
#define প্রিপ্রসেসর ম্যাক্রো অন্তর্ভুক্ত/অদলবদল করে।
#include অন্য ফাইল থেকে নির্দিষ্ট হিডার(header) অন্তর্ভুক্ত করে।
#undef প্রিপ্রসেসরের ম্যাক্রোকে আনডেফাইন করে।
#ifdef ম্যাক্রো ডিফাইনড হলে সত্য নির্দেশ করে।
#ifndef ম্যাক্রো আনডিফাইনড হলে সত্য নির্দেশ করে।
#if কম্পাইলেসনের সময় ঠিক হলে টা টেস্ট করে।
#else #if এর অলটারনেটিভ।
#elif #else এবং #if যদি এক বিবৃতিতে থাকে।
#endif শর্ত সাপেক্ষে প্রিপ্রসেসরের সমাপ্তি করে।
#error Stderr এ এরর ম্যাসেজ নির্দেশ করে।
#pragma বিশেষ প্রক্রিয়া ব্যবহার করে কম্পাইলারে বিশেষ কমান্ড নির্দেশ করে।

বিভিন্ন ডিরেক্টিভ বুঝার জন্য নিচের উদাহরণ দেয়া হল,
#define MAX_ARRAY_LENGTH 20
এই ডিরেক্টিভ MAX_ARRAY_LENGTH কে 20 দিয়ে পালটানোর জন্য সিপিপিকে নির্দেশ দেয় এবং #define ব্যবহার করে ধ্রুবকের পঠনযোগ্যতা বাড়াতে।
#include <stdio.h>
#include “myheader.h”
এই ডিরেক্টিভ সিস্টেম লাইব্রেরি থেকে stdio.h নেয়ার জন্য সিপিপিকে নির্দেশ দেয়, এবং বর্তমান সোর্স ফাইলে টেক্সট যোগ করে। পরবর্তী লাইন সিপিপিকে লোকাল ডিরেক্টরি থেকে myheader.h নিতে ও বর্তমান সোর্স ফাইলে কন্টেন্ট যোগ করতে নির্দেশ দেয়।
#undef FILE_SIZE
#define FILE_SIZE 42
এটি সিপিপিকে FILE_SIZE কে 42 হিসেবে প্রদর্শন করতে নির্দেশ করে।
#ifndef MESSAGE
#define MESSAGE “You wish!”
#endif
এটি সিপিপিকে কোন ম্যাসেজ যদি ডিফাইন না করা হয়ে থাকে তাকে ডিফাইন করতে নির্দেশ দেয়।
#ifdef DEBUG
/* Your debugging statements here */
#endif
এটি সিপিপিকে কোন বিবৃতি সম্পন্ন করতে বলে যদি DEBUG ডিফাইন করা থাকে। কম্পাইলেসনের সময় -DDEBUG flag সম্পন্ন থাকলে এটি দরকার হয়, জিসিসি কম্পাইলারের ক্ষেত্রে। এটি DEBUGকে ডিফাইন করবে তাই কম্পাইলেসনের সময় debugging on বা off করা যাবে।
ANSI C কয়েক রকম ম্যাক্রো ডিফাইন করে। প্রোগ্রামিঙে এর সবগুলোই ব্যবহার করা যাবে কিন্তু পূর্বনির্ধারিত ম্যাক্রোগুলো সরসরি পরিবর্তন করা যায় না।
Macro Description
__DATE__ character literalএ বর্তমান তারিখ “MMM DD YYYY” ফরমেটে
__TIME__ character literal এ বর্তমান সময়”HH:MM:SS” ফরমেটে
__FILE__ string literalএ বর্তমান ফাইল নেম।
__LINE__ দশমিক ধ্রুবকে বর্তমান লাইন নাম্বার।
__STDC__ কম্পাইলার ANSI standardএ কম্পাইল করলে 1 দ্বারা নির্ণীত।

নিচের উদাহরণগুলো দেখা যাক;
#include <stdio.h>

main()
{
printf(“File :%s\n”, __FILE__ );
printf(“Date :%s\n”, __DATE__ );
printf(“Time :%s\n”, __TIME__ );
printf(“Line :%d\n”, __LINE__ );
printf(“ANSI :%d\n”, __STDC__ );

}
test.c ফাইলে কোডগুলো সম্পন্ন হলে যে ফলাফল হবেঃ
File :test.c
Date :Jun 2 2012
Time :03:36:24
Line :8
ANSI :1

প্রিপ্রসেসরের অপারেটরঃ ম্যাক্রো তৈরি করতে সি প্রিপ্রসেসর যে অপারেটর সুবিধা দেয় টা হল, ম্যাক্রো চালু রাখাঃ ম্যাক্রো সাধারণত এক লাইনে হয়, এক লাইনের অনেক লম্বা কোন ম্যাক্রো চালু রাখতে এই অপারেটর ব্যবহার করা হয়। যেমন,
#define message_for(a, b) \
printf(#a ” and ” #b “: We love you!\n”)
স্ট্রিংজাইজঃ (‘#’) দ্বারা প্রকাশ করা হয়। ম্যাক্রো ডেফিনেশনের মধ্যে ম্যাক্রো প্যারামিটারকে স্ট্রিং ধ্রুবকে পরিনত করে। নির্দিষ্ট প্যারামিটার লিস্ট বা আর্গুমেন্টের ক্ষেত্রেই কেবল এই অপারেটর ব্যবহার করা হয়।
#include <stdio.h>

#define message_for(a, b) \
printf(#a ” and ” #b “: We love you!\n”)

int main(void)
{
message_for(Carole, Debra);
return 0;
}
কোড ঠিকভাবে লেখা হলে তা এই ফলাফল দেখাবে,
Carole and Debra: We love you!
টোকেন পেস্টিং অপারেটরঃ একে (##) দ্বারা প্রকাশ করা হয়, ম্যাক্রো ডেফিনেশনের দুটি তকেঙ্কে একীভূত করতে ব্যবহার করা হয়,
#include <stdio.h>

#define tokenpaster(n) printf (“token” #n ” = %d”, token##n)

int main(void)
{
int token34 = 40;

tokenpaster(34);
return 0;
}
কোড ঠিকভাবে লেখা হলে তা এই ফলাফল দেখাবে
token34 = 40
এটি কীভাবে দেখানো হল যেখানে
printf (“token34 = %d”, token34);
token##n কে token34 এ রূপান্তরের ক্ষেত্রে stringize এবং token-pasting দুটিই ব্যবহৃত হয়েছে।
ডিফাইনড অপারেটরঃ কোন আইডেন্টিফায়ার #define ব্যবহার করে ধ্রুবক প্রকাশ করলে এটি ব্যবহার হয়, আইডেন্টিফায়ার ডিফাইনড হলে ভ্যলু ট্রু অর্থাৎ নন-জিরো আর আন ডিফাইনড হলে ফলস বা জিরো।
#include <stdio.h>

#if !defined (MESSAGE)
#define MESSAGE “You wish!”
#endif

int main(void)
{
printf(“Here is the message: %s\n”, MESSAGE);
return 0;
}
কোড ঠিকভাবে লেখা হলে তা এই ফলাফল দেখাবে
Here is the message: You wish!

প্যারামিটারাইজড ম্যাক্রোঃ সিপিপির একটি গুরুত্বপূর্ণ সুবিধা হল এইটি প্যারামিটারাইজড ম্যাক্রো ব্যবহার করে কাজকে এগিয়ে নেয়।
int square(int x) {
return x * x;
}
ম্যাক্রো ব্যবহার করে পুনরায় লিখতে পারি,
#define square(x) ((x) * (x))
আর্গুমেন্ট সহ ম্যাক্রোকে #define directive দ্বারা লিখতে হয়, আর্গুমেন্ট লিস্ট নির্দিষ্ট এবং ম্যাক্রোর নাম মেনে চলতে হয়, macro name ও open parenthesis এর মধ্যে কোন ফাঁকা জায়গা রাখা যাবে না।
#include <stdio.h>

#define MAX(x,y) ((x) > (y) ? (x) : (y))

int main(void)
{
printf(“Max between 20 and 10 is %d\n”, MAX(10, 20));
return 0;
}
কোড ঠিকভাবে লেখা হলে তা এই ফলাফল দেখাবে
Max between 20 and 10 is 20

সি প্রোগ্রামিং এর একটি গুরুত্বপূর্ণ টপিক Union

আপনাদের সবাইকে স্বাগতম আমাদের সাইটে। আজ আমরা এখানে সি প্রোগ্রামিং এর একটি গুরুত্বপূর্ণ চ্যাপ্টার আলোচনা করব, তার নাম হলো Union। আপনাদের আগেই বলেছি সি প্রোগ্রামিং শিখতে হলে আপনাকে কিছুটা হলেও ইংরেজী শিখতে হবে।
একটি ইউনিয়ন এর সাহায্যে আপনি একই মেমরির স্থানে বিভিন্ন ধরনের তথ্য সংরক্ষণ করতে সক্ষম হবেন যা সি তে পাওয়া যায় একটি বিশেষ ডাটা টাইপ হিসেবে। আপনি অনেক সদস্যদের সঙ্গে একটি ইউনিয়ন নির্ধারণ করতে পারবেন, কিন্তু শুধুমাত্র এক সদস্য যে কোনো সময় একটি মান থাকতে পারে. ইউনিয়ন মাল্টি উদ্দেশ্যর জন্য একই মেমরি অবস্থান ব্যবহার করে একটি কার্যকর উপায় প্রদান।
Defining a Union
এখানে Union এর সঙ্গা প্রদান করা হচ্ছেঃ
কাঠামো নির্ধারণ করার সময় হিসাবে আপনি কি একটি ইউনিয়ন নির্ধারণ করার জন্য, আপনি খুব অনুরূপ ইউনিয়ন বিবৃতি ব্যবহার করা আবশ্যক ছিল। ইউনিয়ন বিবৃতিতে আপনার প্রোগ্রামের জন্য একাধিক সদস্য, একটি নতুন ডাটা টাইপ সংজ্ঞায়িত করে। নিম্নরূপ ইউনিয়ন বিবৃতি বিন্যাস হল:
union [union tag]
{
member definition;
member definition;

member definition;
} [one or more union variables];

ইউনিয়ন ট্যাগ ঐচ্ছিক এবং প্রতিটি সদস্য সংজ্ঞা যেমন আমি কোন int হিসাবে একটি স্বাভাবিক পরিবর্তনশীল সংজ্ঞা, হয়; অথবা চ ভাসমান; বা অন্য কোন বৈধ পরিবর্তনশীল সংজ্ঞা. ইউনিয়ন এর সংজ্ঞা শেষে, চূড়ান্ত সেমিকোলন আগে, আপনি এক বা একাধিক ইউনিয়ন ভেরিয়েবল উল্লেখ করতে পারেন কিন্তু এটা ঐচ্ছিক. এখানে আপনি তিন সদস্য হয়েছে, যা ডেটা নামে একটি ইউনিয়ন টাইপ সংজ্ঞায়িত করবে উপায় i, f, and str:
union Data
{
int i;
float f;
char str[20];
} data;

এখন, ডাটা টাইপ একটি পরিবর্তনশীল একটি পূর্ণসংখ্যা, একটি ফ্লোটিং পয়েন্ট নম্বর, বা অক্ষরের একটি স্ট্রিং সঞ্চয় করতে পারেন. এই একটি পরিবর্তনশীল অর্থাৎ এর মানে হল যে। একই মেমরি অবস্থান তথ্য একাধিক ধরনের সংরক্ষণ করা যেতে পারে. আপনি আপনার প্রয়োজন উপর ভিত্তি করে একটি ইউনিয়ন ভিতরে কোনো বিল্ট ইন বা ব্যবহারকারী নির্ধারিত ধরনের তথ্য ব্যবহার করতে পারেন।

একটি ইউনিয়ন দ্বারা দখল মেমরি ইউনিয়নের বৃহত্তম সদস্য রাখা যথেষ্ট বড় হতে হবে. এই পংক্তি দ্বারা দখল করা যায়, যা সর্বোচ্চ স্থান, কারণ উদাহরণস্বরূপ, উপরোক্ত উদাহরণ তথ্য টাইপ মেমরি স্পেস 20 বাইট ব্যাপৃত হবে. নিম্নলিখিত উপরে ইউনিয়ন দখল করে মোট মেমরির মাপ প্রদর্শন করা হবে যা উদাহরণ:

#include <stdio.h>
#include <string.h>

union Data
{
int i;
float f;
char str[20];
};

int main( )
{
union Data data;

printf( “Memory size occupied by data : %d\n”, sizeof(data));

return 0;
}

উপরের কোড কম্পাইল এবং মৃত্যুদন্ড কার্যকর করা হয়, এটি নিম্নলিখিত ফলাফল সৃষ্টি করে:
Memory size occupied by data : 20
Accessing Union Members
একটি ইউনিয়নের কোন সদস্য অ্যাক্সেস করার জন্য, আমরা সদস্য এক্সেস অপারেটর ব্যবহার (.). সদস্য এক্সেস অপারেটর ইউনিয়ন পরিবর্তনশীল নাম এবং আমরা অ্যাক্সেস করতে চান যে ইউনিয়ন সদস্য মধ্যে একটি নির্দিষ্ট সময়ের হিসাবে কোডেড হয়. আপনি ইউনিয়ন ধরনের ভেরিয়েবল সংজ্ঞায়িত করতে ইউনিয়ন শব্দ ব্যবহার করতে হবে. ইউনিয়নের ব্যবহার ব্যাখ্যা উদাহরণ অনুসরণ করা হয়:
#include <stdio.h>
#include <string.h>

union Data
{
int i;
float f;
char str[20];
};

int main( )
{
union Data data;

data.i = 10;
data.f = 220.5;
strcpy( data.str, “C Programming”);

printf( “data.i : %d\n”, data.i);
printf( “data.f : %f\n”, data.f);
printf( “data.str : %s\n”, data.str);

return 0;
}

উপরের কোড কম্পাইল এবং মৃত্যুদন্ড কার্যকর করা হয়, এটি নিম্নলিখিত ফলাফল সৃষ্টি করে:
data.i : 1917853763
data.f : 4122360580327794860452759994368.000000
data.str : C Programming
এখানে, আমরা পরিবর্তনশীল নির্ধারিত চূড়ান্ত মান মেমোরি দখল করেছে, কারণ আমি ও ইউনিয়ন চ সদস্যদের মান ক্ষতিগ্রস্ত হবে যে দেখতে পারেন এবং এই মান Str সদস্য খুব ভাল মুদ্রিত হচ্ছে যে যদি কারণ। এখন আমরা হচ্ছে ইউনিয়নের প্রধান উদ্দেশ্য, যা একটি সময়ে এক পরিবর্তনশীল ব্যবহার করতে হবে যেখানে এর আবার একই উদাহরণ দেখব:
#include <stdio.h>
#include <string.h>

union Data
{
int i;
float f;
char str[20];
};

int main( )
{
union Data data;

data.i = 10;
printf( “data.i : %d\n”, data.i);

data.f = 220.5;
printf( “data.f : %f\n”, data.f);

strcpy( data.str, “C Programming”);
printf( “data.str : %s\n”, data.str);

return 0;
}

উপরের কোড কম্পাইল এবং মৃত্যুদন্ড কার্যকর করা হয়, এটি নিম্নলিখিত ফলাফল সৃষ্টি করে:
data.i : 10
data.f : 220.500000
data.str : C Programming

এখানে, সব সদস্যদের খুব ভাল এক সদস্য একটি সময়ে ব্যবহার করা হচ্ছে, কারণ মুদ্রিত হচ্ছে।

এইচটিএমএল স্ক্রিপ্ট (HTML Scripts)

নাম-শরিফুল ইসলাম
Job category-Php Coder

 

Javascript এইচটিএমএল পেজ কে অনেক গতিশীল এবং ইন্টার‌্যাক্টিভ করে তুলে।

 

এইচটিএমএল <script> ট্যাগ

জাভাস্ক্রিপ্ট এর মতো ক্লায়েন্ট সাইড স্ক্রিপ্ট কে সঙ্গায়িত করার জন্য <script> ট্যাগ ব্যবহার করা হয়।

<script> এর উপাদান (এলিমেন্ট) হিসেবে স্ক্রিপ্টিং স্টেটমেন্ট বা বাহিরের একটি স্ক্রিপ্ট ফাইলকে src এট্রিবউট দ্বারা লিঙ্ক করে।

জাভাস্ক্রিপ্ট এর সাধারণ ব্যবহার হচ্ছে ইমেজ (স্টিল ছবি) ব্যবহার কৌশল, ফর্ম যাচাইকরণ, এবং গতিশীল বস্তুর পরিবর্তন।

নিচের স্ক্রিপ্টটি ফলাফল হিসেবে Hello JavaScript! প্রদর্শন করে। এইচটিএমএল ইলিমিন্ট এর ভিতরে id=”demo” হিসেবে লেখা হয়।

উদাহরণ


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

 

 

ফলাফল


Hello JavaScript!


 

এইচটিএমএল <noscript> ট্যাগ

যদি ব্যবহারকারীর ব্রাউজারে স্ক্রিপ্ট ডিজাবল করা থাকে বা তার ব্রাউজার স্ক্রিপ্ট সমর্থন না করে তাহলে ব্যবহারকারীকে একটি বিকল্প কনটেন্ট প্রদর্শন করার জন্য <noscript> ট্যাগ ব্যবহার করা হয়। শুধুমাত্র ব্রাউজারে স্ক্রিপ্টিং ডিজাবল বা ব্রাউজার স্ক্রিপ্ট সমর্থন না করলেই <noscript> ট্যাগ এর কনটেন্ট প্রদর্শিত হয়।

উদাহরণ


<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = "Hello JavaScript!";
</script>
<noscript>Sorry, your browser does not support JavaScript!</noscript>
<p>A browser without support for JavaScript will show the text written inside the noscript element.</p>
 
</body>
</html>

 

ফলাফল:


Hello JavaScript!
A browser without support for JavaScript will show the text written inside the noscript element.

 

 

জাভাস্ক্রিপ্ট এর একটি পরীক্ষা (আমাদের জাভাস্ক্রিপ্ট টিওটোরিয়াল থেকে)

জাভাস্ক্রিপ্ট যা করতে পারে তার কিছু উদাহরণ নিচে দেওয়া হল:

JavaScript can change HTML content:


<!DOCTYPE html>
<html>
<body>
<h1>My First JavaScript</h1>
<p>JavaScript can change the content of an HTML element:</p>
<button type="button" onclick="myFunction()">Click Me!</button>
<p id="demo">This is a demonstration.</p>
<script>
function myFunction() {
    document.getElementById("demo").innerHTML = "Hello JavaScript!";
 }
</script>

</body>
</html>

 

 

ফলাফলঃ


My First JavaScript

JavaScript can change the content of an HTML element:

This is a demonstration.


 

JavaScript can change HTML styles:


<!DOCTYPE html>
<html>
<body>

<h1>My First JavaScript</h1>

<p id="demo">JavaScript can change the style of an HTML element.</p>

<script>
function myFunction() {
    document.getElementById("demo").style.fontSize = "25px"; 
}
</script>

<button type="button" onclick="myFunction()">Click Me!</button>

</body>
</html>

 

ফলাফলঃ


My First JavaScript

JavaScript can change the style of an HTML element.


 

 

JavaScript can change HTML attributes


<!DOCTYPE html>
<html>
<body>
<script>
function light(sw) {
    var pic;
    if (sw == 0) {
        pic = "pic_bulboff.gif"
    } else {
        pic = "pic_bulbon.gif"
    }
    document.getElementById('myImage').src = pic;
}
</script>

<img id="myImage" src="pic_bulboff.gif" width="100" height="180">

<p>
<button type="button" onclick="light(1)">Light On</button>
<button type="button" onclick="light(0)">Light Off</button>
</p>

</body>
</html>

 

 

ফলাফলঃ




 

এইচটিএমএল scripts ট্যাগ

 

ট্যাগ বর্ণনা
<script> client side script কে ডিফাইন করে
<noscript> যদি client-side-script সাপোর্ট না করে তাহলে ইউজারদের জন্য বিকল্প কনটেন্ট ডিফাইন করে থাকে

 

এইচটিএমএল কালার সেড (HTML Color Shades )

HTML কালার সেড

লাল, সবুজ এবং নীল আলোর সংমিশ্রণে একটি কলারকে প্রদর্শন করা হয়।

 

গ্রে কালারের সেডসমূহ

 

সব রঙের আলোর সমান পরিমান বেবহার করে গ্রে কালার তৈরী করা হয়। নিচে কিছু গ্রে কালার সেডের হেক্সা কোড ও আরজিবি (RGB) কোড দেয়া হলো:

Gray Shades HEX RGB
#000000 rgb(0,0,0)
#080808 rgb(8,8,8)
#101010 rgb(16,16,16)
#181818 rgb(24,24,24)
#202020 rgb(32,32,32)
#282828 rgb(40,40,40)
#303030 rgb(48,48,48)
#383838 rgb(56,56,56)
#404040 rgb(64,64,64)
#484848 rgb(72,72,72)
#505050 rgb(80,80,80)
#585858 rgb(88,88,88)
#606060 rgb(96,96,96)
#686868 rgb(104,104,104)
#707070 rgb(112,112,112)
#787878 rgb(120,120,120)
#808080 rgb(128,128,128)
#888888 rgb(136,136,136)
#909090 rgb(144,144,144)
#989898 rgb(152,152,152)
#A0A0A0 rgb(160,160,160)
#A8A8A8 rgb(168,168,168)
#B0B0B0 rgb(176,176,176)
#B8B8B8 rgb(184,184,184)
#C0C0C0 rgb(192,192,192)
#C8C8C8 rgb(200,200,200)
#D0D0D0 rgb(208,208,208)
#D8D8D8 rgb(216,216,216)
#E0E0E0 rgb(224,224,224)
#E8E8E8 rgb(232,232,232)
#F0F0F0 rgb(240,240,240)
#F8F8F8 rgb(248,248,248)
#FFFFFF rgb(255,255,255)

১৬ মিলিয়ন ভিন্ন ভিন্ন কালার

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

Red Light HEX RGB
#000000 rgb(0,0,0)
#080000 rgb(8,0,0)
#100000 rgb(16,0,0)
#180000 rgb(24,0,0)
#200000 rgb(32,0,0)
#280000 rgb(40,0,0)
#300000 rgb(48,0,0)
#380000 rgb(56,0,0)
#400000 rgb(64,0,0)
#480000 rgb(72,0,0)
#500000 rgb(80,0,0)
#580000 rgb(88,0,0)
#600000 rgb(96,0,0)
#680000 rgb(104,0,0)
#700000 rgb(112,0,0)
#780000 rgb(120,0,0)
#800000 rgb(128,0,0)
#880000 rgb(136,0,0)
#900000 rgb(144,0,0)
#980000 rgb(152,0,0)
#A00000 rgb(160,0,0)
#A80000 rgb(168,0,0)
#B00000 rgb(176,0,0)
#B80000 rgb(184,0,0)
#C00000 rgb(192,0,0)
#C80000 rgb(200,0,0)
#D00000 rgb(208,0,0)
#D80000 rgb(216,0,0)
#E00000 rgb(224,0,0)
#E80000 rgb(232,0,0)
#F00000 rgb(240,0,0)
#F80000 rgb(248,0,0)
#FF0000 rgb(255,0,0)

 

স্টোন এজ

পূর্বে কম্পিউটার যখন শুধুমাত্র ২৫৬টি কালার সাপোর্ট করতো তখন ওয়েবের জন্য ২১৬টি নিরাপদ কালার ছিল যা সকল ব্রাউজারে সাপোর্ট করতো।

000000 000033 000066 000099 0000CC 0000FF
003300 003333 003366 003399 0033CC 0033FF
006600 006633 006666 006699 0066CC 0066FF
009900 009933 009966 009999 0099CC 0099FF
00CC00 00CC33 00CC66 00CC99 00CCCC 00CCFF
00FF00 00FF33 00FF66 00FF99 00FFCC 00FFFF
330000 330033 330066 330099 3300CC 3300FF
333300 333333 333366 333399 3333CC 3333FF
336600 336633 336666 336699 3366CC 3366FF
339900 339933 339966 339999 3399CC 3399FF
33CC00 33CC33 33CC66 33CC99 33CCCC 33CCFF
33FF00 33FF33 33FF66 33FF99 33FFCC 33FFFF
660000 660033 660066 660099 6600CC 6600FF
663300 663333 663366 663399 6633CC 6633FF
666600 666633 666666 666699 6666CC 6666FF
669900 669933 669966 669999 6699CC 6699FF
66CC00 66CC33 66CC66 66CC99 66CCCC 66CCFF
66FF00 66FF33 66FF66 66FF99 66FFCC 66FFFF
990000 990033 990066 990099 9900CC 9900FF
993300 993333 993366 993399 9933CC 9933FF
996600 996633 996666 996699 9966CC 9966FF
999900 999933 999966 999999 9999CC 9999FF
99CC00 99CC33 99CC66 99CC99 99CCCC 99CCFF
99FF00 99FF33 99FF66 99FF99 99FFCC 99FFFF
CC0000 CC0033 CC0066 CC0099 CC00CC CC00FF
CC3300 CC3333 CC3366 CC3399 CC33CC CC33FF
CC6600 CC6633 CC6666 CC6699 CC66CC CC66FF
CC9900 CC9933 CC9966 CC9999 CC99CC CC99FF
CCCC00 CCCC33 CCCC66 CCCC99 CCCCCC CCCCFF
CCFF00 CCFF33 CCFF66 CCFF99 CCFFCC CCFFFF
FF0000 FF0033 FF0066 FF0099 FF00CC FF00FF
FF3300 FF3333 FF3366 FF3399 FF33CC FF33FF
FF6600 FF6633 FF6666 FF6699 FF66CC FF66FF
FF9900 FF9933 FF9966 FF9999 FF99CC FF99FF
FFCC00 FFCC33 FFCC66 FFCC99 FFCCCC FFCCFF
FFFF00 FFFF33 FFFF66 FFFF99 FFFFCC FFFFFF

 

Exploring Data with Apache Pig from the Grunt shell

Exploring Data with Apache Pig from the Grunt shell