How a Software System Becomes a Mess

We Are Followers

One of my observations is that most of the people in this world are followers. Following others is our innate nature. Children learn to speak following their parents and people around them. People follow their religions blindly only because their ancestors followed them, without raising any question. (I am not against religion. Just mentioned this to justify my observation]

Probably this feature came to us from our ancestors as a result of evolution.  When we do something new, follow a new path, there is always possibility that we will make mistakes, choose a wrong path (that’s why whenever I do something new, I know that this might bring something bad to me). Our ancestors probably followed others, because following others is
usually the safer than doing something new. So, following others would
keep them safe, that’s why they developed this nature.

Note that nothing is wrong with following others. Why shouldn’t we follow if it keeps us safe?

We programmers are also people. So, most of us are also followers. Following existing code is usually safer option for us and saves much of the effort. Then why not to follow?

How Following Might Lead to Mess?

For a moment let’s imagine we can measure the amount of the messiness of a software system. Suppose initially the amount of messiness of our system is 100 units.

Now a new feature comes in. As we love to follow, we usually look at the current system and try to find some similar feature and follow its implementation. For example, suppose in our new we feature we need to display some data in a table and users will be able to change the order of the rows using drag and drop. So, we might look for any existing table that supports drag-dropping and follow it — we might copy, paste and edit the existing code and add some new code.

As the existing code is also part of the messy system, it might also be messy. Suppose, the messiness of this existing code is 10 units. The newly added code might also be messy. Suppose the messiness of the new code is 5 units. So, after implementing the feature, total amount of messiness added to the system is 10 + 5 = 15 and the total messiness of the system becomes 100 + 15 = 115.

Features keep coming and the system keep getting messier and messier over time. So, the messiness fo the system increases exponentially over time.

How to Prevent Mess?

Let’s get back to the previous example. Ideally, we want the messiness of the system to be always zero, that is not mess in the system (I know it’s almost impossible, but nothing is wrong if we just use our imagination. This imagination will help understand the real world case). Always means the initial messiness of our system should also be 0.

Suppose, we could somehow make the initial messiness of our system zero. Now a new feature comes in. As usual we will look for  some similar feature and try to follow it (=copy, paste and edit), assuming there is already a similar feature. As the messiness of our system is 0, the messiness of this similar feature should also be 0. Now we add some new code (or edit it). Let’s say the messiness of this newly added code is x. So, the total messiness of the system is 0 + (0+x) = x. To make total messiness 0 even after adding the new feature, x must be 0. That means the new code must not also be a mess, otherwise the messiness of the whole system will increase.The similar is true if we need to write the feature from scratch.

Note that programmers will learn seeing the code of the system. So, if the initial messiness is 0, there is high probability that x will also be zero as the programmer will learn to write clean code seeing the current code base.

If we can maintain x to be 0, we can ensure that the messiness of the system is always 0. That means the system will always be clean.

Lessons learnt:

  • Initial condition of a software system is very important. If we can make the initial system clean, there is higher probability that the software system will remain clean for a long period of time. So, we should try our best to design a clean system. A clean
  • We need to teach our programmers to clean code, so that the new code written becomes also clean. We can also review code to ensure that the new code is clean.

[Clean code: I am talking about writing clean code. So, what is meant by “clean code”? which code is clean? In short, clean code means code that can easily be understood just by seeing the code. This term is probably introduced by Robert Martin. So, we should write code that can be understood easily. There are many benefits of writing clean code.

Clean design: roughly speaking, a clean design is a design that can be understood and changed easily. Our requirements are ever changing. So, it’s wise to design a system that expects changes.]

What if My System is Already a Mess

If a system is messy, it’s not feasible to make the system clean in one sitting, we need time to gradually clean it up. We can follow Boy Scout Rule:

Leave your code better than you found it.

That means when we write new code we will try to make the related old code a little bit cleaner.

Let’s go back to our previous example. Suppose, the messiness of our initial system is 1000. Now a new feature comes in. In stead of blindly following previous similar features, we write clean code for this new feature, as a result the messiness of the new code is 0. Then following the rule, we try to make related previous code cleaner. Say this cleaning process reduces the messiness by 20 units. So, the total messiness after implementing the feature = 1000 + 0 – 20 = 980 which is less than what we found before implementing the feature. In this way, the messiness of a feature will reduce over time.



ডেইট কনভার্টার ও ক্যলেন্ডার

হুট করে যদি প্রশ্ন করা যায় – বলুন তো ২০২০ সালের ২১ ফেব্রুয়ারি কী বার কিংবা ঐ তারিখে বাংলা তারিখ কী? তাহলে কেমন হবে? আমি জানি হুট করে কেউ এই প্রশ্নের জবাব দিতে পারবেন না। কিন্তু মাঝে মাঝে এ ধরনের প্রশ্নের উত্তর আপনার জানার প্রয়োজন হতে পারে। MR Date Converter ব্যবহার করে সহজেই এসব প্রশ্নের উত্তর পেতে পারেন। নিচের লিংক থেকে বিনামূল্যে ডাউনলোড করে নিন। ইন্সটল করার ঝামেলা নেই।

এই সফটওয়্যারটি ব্যবহার করে যে কোন বাংলা তারিখকে ইংরেজি তারিখে কিংবা ইংরেজি তারিখকে বাংলা তারিখে রূপান্তর এবং যে কোন সালের বাংলা বা ইংরেজি ক্যালেন্ডার দেখতে পাবেন। নিচে বিস্তারিত আলোচনা করা হলঃ

১) ডেইট কনভার্ট করাঃ সফটওয়্যারটি ওপেন করুন । নিচের মত উইন্ডো ওপেন হবেঃ


এর মাঝখানে বর্তমান তারিখের বারের নাম এবং ইংরেজি ও বাংলা তারিখ দেখাবে।

 ইংলিশ থেকে বাংলা তারিখে রূপান্তর করার জন্য English to Bangla এবং বাংলা থেকে ইংলিশ তারিখে রূপান্তরের জন্য Bangla to English অপশন সিলেক্ট করুন। এবার Enter Date এর ডানপাশে আপনার তারিখ প্রদান করে Convert বাটনে ক্লিক করুন। ব্যস রূপান্তরিত হয়ে যাবে।

) ক্যালেন্ডার বের করাঃ Option মেনু থেকে Calendar সিলেক্ট করুন । নতুন উইন্ডো ওপেন হবে । এখানে বর্তমান বাংলা মাসের ক্যালেন্ডার প্রদর্শিত হবে।

      বাংলা মাসের ক্যালেন্ডার বের করার জন্য Bangla এবং ইংরেজি মাসের ক্যালেন্ডার দেখার জন্য English অপশনটি সিলেক্ট করুন। তারপর মাস ও সাল প্রদান করে Show Calendar এ ক্লিক করুন। সাথে সাথে ঐ মাসের ক্যালেন্ডারটি ওপেন হয়ে যাবের। প্রয়োজন অনুসারে < বা > লেখা বাটনে ক্লিক করে যথাক্রমে আগের বা পরের মাসের ক্যালেন্ডার পাওয়া যাবে।

এর মাধ্যমে যে কোন মাসের ক্যালেন্ডার বের করা যাবে । অন্যান্য সফটওয়্যার এর সাথে এখানেই এর পার্থক্য।

এখানে উল্লেখ্য , সফটওয়্যারটিতে গ্রেগরিয়ান ক্যালেন্ডার এবং বাংলা একাডেমী এর নীতিমালা অনুসরন করা হয়েছে। তাই এর দ্বারা পশ্চিম বঙ্গের বাংলা তারিখ পাওয়া যাবে না।

পুরাতন ভার্সানের সফটওয়্যার ডাউনলোড

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

উপরের ওয়েব সাইটটি ছাড়াও নিচের ওয়েব সাইট থেকেও পুরাতন ভার্সানের সফটওয়্যারগুলো ডাউনলোড করা যেতে পারেঃ

যে কোন গাণিতিক ফাংশনের গ্রাফ আঁকা

গনিত ও পদার্থ বিজ্ঞানে বিভিন্ন ফাংশনের গ্রাফ আঁকার প্রয়োজন হয়। বাস্তবে গ্রাফ আঁকার জন্য অনেক গুলো বিন্দু বের করে গ্রাফ কাগজে স্থাপন করে করে গ্রাফ আঁকাতে হয় যা বেশ ঝামেলাদায়ক এবং সময়ের অপচয়। কিন্তু ছোট্ট একটা সফটওয়্যার ব্যবহার করে যে কোন গাণিতিক ফাংশনের গ্রাফ নিমিষেই আঁকাতে পারেন। এতে একদিকে যেমন সময় বাঁচবে অপর দিকে আরো অনেক সুবিধা পাওয়া যাবে ( দুটি গ্রাফের তুলনা, ক্ষেত্রফল বের করা, দৈর্ঘ্য বের করা, ঢাল আঁকা ইত্যাদি)।

প্রথমে লিঙ্কটিতে গিয়ে Graph নামক সফটওয়্যারটি ডাউনলোড করে নিন। এটি একটি ওপেন সোর্স সফটওয়্যার । তারপর ইন্সটল করে ওপেন করুন।

গ্রাফ আঁকাঃ Function মেনু থেকে Insert function এ ক্লিক করুন। Function type থেকে Standard Function y=f(x) সিলেক্ট করুন। Function Equation এর আওতাধীন টেক্সট বক্সে যে ফাংশনের গ্রাফ আঁকাতে চান সে ফাংশনটি লিখে ফেলুন। এখানে চলক হিসাবে X ব্যবহার করতে হবে।। যেমনঃ f(x)=sin(x) ফাংশনটির গ্রাফ আঁকাতে টেক্সট বক্সে লিখুনঃ sin(x)। Graph Properties এর আওতাধীন কম্বো বক্স গুলো থেকে গ্রাফ কেমন হবে, রঙ কি হবে, কত পুরু হবে তা নির্ধারন করে দিতে পারেন। ওকে চাপলেই সাথে সাথে পেয়ে যাবেন আপনার গ্রাফ। একইভাবে একইসাথে একাধিক ফাংশনের গ্রাফ আঁকাতে পারেন। তবে একাধিক ফাংশনের ক্ষেত্রে প্রতিটি ফাংশনের জন্য আলাদা আলাদা রঙ দিলে কোনটা কোন গ্রাফ বুঝতে সুবিধা হবে।

ঢাল আঁকাঃ কোন ফাংশন আঁকার পর ঐ ফাংশনের কোন বিন্দুতে ঢাল আঁকার জন্য Function> Insert tangent এ যান। x (যা ফাংশনের চলক) নামক টেক্সট বক্সে যে বিন্দুতে ঢাল আঁকাবেন তার ভুজ দিয়ে ওকে দিন। ব্যস।

ক্ষেত্রফল নির্ণয়ঃ কোন ফাংশন আঁকার পর এর নির্দিষ্ট অংশের ক্ষেত্রফল বের করার জন্য Calc> Area সিলেক্ট করুন। বাম পাশের নিচের দিকে কয়েকটা টেক্সট বক্স দেখা যাবে। From টেক্সট বক্সে lower limit এবং To টেক্সট বক্সে upper limit দিলে Area টেক্সট বক্সে ক্ষেত্রফল পাওয়া যাবে।

উল্লেখ্য , এর মাধ্যমে যে কোন ঘাতের গ্রাফ আঁকা যাবে। সেজন্য চলকের পরে ^ চিহ্ন দিয়ে যত ঘাতের ঘাত বের করতে চান তা লিখতে হবে। যেমনঃ দ্বিঘাতের ক্ষেত্রে x^2 , ত্রিঘাতের ক্ষেত্রে x^3 ইত্যদি লিখতে হবে। এখানে উল্লেখ্য, এই নিয়ম কেবল এই সফটওয়্যার এর ক্ষেত্রে নয় , সকল ক্ষেত্রে।

ওয়েব ডিজাইন-৪:লেখার আকার-আকৃতি পরিবর্তন

আগের পোস্টে আমরা দেখেছি কেমন করে ওয়েব পেজে লেখা সাজাতে হয়। এই পোস্টে আমরা দেখবো কেমন করে ফন্ট পরিবর্তন, আকার আকৃতি পরিবর্তন করতে হয়।

১। বোল্ড, ইটালিক, আন্ডারলাইনঃ কোন লেখাকে বোল্ড(মোটা) , ইটালিক(কিছুটা হেলানো) বা আন্ডারলাইন(নিচে টান) করতে যথাক্রমে <b> , <i> ও <u> ট্যাগ ব্যবহার করা হয়। (মনে রাখার জন্যঃ বোল্ড(bold)এর প্রথম অক্ষর b,ইটালিক (Italic) এর প্রথম অক্ষর i,এবং আন্ডারলাইনের( underline) প্রথম অক্ষর u)। এই ট্যাগগুলো এবং এদের সমাপ্তিসূচক ট্যাগের মাঝে যা লিখবেন , তা-ই বোল্ড, ইটালিক বা আন্ডারলাইন হবে। যেমনঃ

<b>MUKTADIR</b>  <br/>
<i>MUKTADIR</i>  <br/>
<u>MUKTADIR</u> <br/>

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ




যদি একই লেখাকে একসাথে বোল্ড,ইটালিক বা আন্ডারলাইন করতে চান তবে একাধিক ট্যাগ একসাথে ব্যবহার করতে পারবেন। যেমনঃ
<b><i>MUKTADIR</i></b> <br/>
<b><u>MUKTADIR</u></b> <br/>
<i><u>MUKTADIR</u></i> <br/>
<i><b><u>MUKTADIR</u></b></i> <br/>

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ





  1. হেডিংঃ সংবাদ পত্রের শিরোনামের সাথে আমরা সবাই পরিচিত। অনেক ওয়েব সাইটেও দেখবেন এরকম শিরোনাম(Headline) থাকে। আপনিও ওয়েব পেজে শিরোনাম দিতে পারেন। এজন্য <h1>, <h2>, <h3> ,<h4>, <h5>ও <h6> এই ছয়টি ট্যাগ ব্যবহার করতে পারবেন। কোনটির ক্ষেত্রে শিরোনামটা কেমন হবে তা বলার চেয়ে দেখে বোঝা সহজ। যথাঃ

<h1>MUKTADIR RAHMAN</h1> <br/>
<h2>MUKTADIR RAHMAN</h2> <br/>
<h3>MUKTADIR RAHMAN</h3> <br/>
<h4>MUKTADIR RAHMAN</h4> <br/>
<h5>MUKTADIR RAHMAN</h5> <br/>
<h6>MUKTADIR RAHMAN</h6> <br/>

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ






কেন দিয়েছি বুঝতে পারছেন তো?

৩। সুপারস্ক্রিপ্ট ও সাবস্ক্রিপ্টঃ কোন লেখা স্বাভাবিক অবস্থান থেকে সামান্য উপরে থাকলে তাকে বলে সুপারস্ক্রিপ্ট আর সামান্য নিচে থাকলে তাকে বলে সাবস্ক্রিপ্ট ।য়েব পেজে অংক জাতীয় কোন লেখা লিখতে এবং রাসায়নিক সংকেত লিখতে এদের খুব প্রয়োজন হয়। সুপারস্ক্রিপ্ট(superscript) ও সাবস্ক্রিপ্ট (subscript) লিখার জন্য যথাক্রমে <sup> ও <sub> ট্যাগ দুটি ব্যবহার করা হয়। যেমনঃ

(a+b) <sup> 2 </sup> = a <sup> 2 </sup> +2ab+ b <sup> 2 </sup> <br/>

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ

(a+b) 2 = a 2 +2ab+ b 2


৪। ফন্ট পরিবর্তনঃ সাধারনভাবে ওয়েব পেজে যখন কোন লেখা লিখেন তখন দেখবেন তা একটি নির্দিষ্ট ফন্টে , নির্দিষ্ট সাইজে আসে যা আগে থেকেই ওয়েব ব্রাউজারে সেট করা থাকে। তবে এই ফন্ট বা সাইজ যদি আপনার মন মত না হয় তবে নিজের ইচ্ছা মত ফন্ট নির্বাচন করতেও পারেন। এজন্য<font> ট্যাগ ব্যবহার করতে হবে। এখন আমরা এইচটিএমএল এর একটা নতুন ধারনার সাথে পরিচিত হতে যাচ্ছি যাকে বলে অ্যাট্রিবিউট (attribute) । তার আগে একটা উদাহারণের মাধ্যমে বিষয়টার সাথে পরিচিত হওয়া যাক। যথাঃ

<font face=”Times New Roman” size=”20″>
Muktadir Rahman

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ

Muktadir Rahman

কি ঘটছে ভাল করে লক্ষ করুন। Muktadir Rahman লেখটি Times New Roman ফন্টে প্রদর্শিত হচ্ছে যার সাইজ বা আকার হল ২০। এখানে font ট্যাগের দুটি অ্যাট্রিবিউট হল face ও size ।

এবার অ্যাট্রিবিউট নিয়ে কিছু কথা বলি। অ্যাট্রিবিউট শব্দটি দ্বারা ” কোন কিছুর ধর্ম বা বৈশিষ্ট বোঝায়”। এইচটিএমএল এও এটি একই অর্থে ব্যবহৃত হয়। কোন ট্যাগের ধর্ম বা বৈশিষ্ট কেমন হবে তা অ্যাট্রিবিউট এর মাধ্যমে নির্ধারন করা হয়। যেমনঃ উপরের উদাহারণে লেখার ফন্ট কি হবে তা face আট্রিবিউট দিয়ে নির্ধারণ করা হয়েছে, লেখার আকার কেমন হবে তা size অ্যাট্রিবিউট এর মাধ্যমে নির্ধারণ করা হয়েছে। এরকম প্রায় সব গুলো ট্যাগেরই নির্দিষ্ট কতগুলো আট্রিবিউট আছে। এগুলো ব্যবহার করে ঐ ট্যাগ গুলোর স্বাভাবিক ধর্ম পরিবর্তন করা যায়। এখানে স্বাভাবিক কথাটা গুরুত্ত্বপূর্ণ। কারণ আপনি যদি কোন অ্যাট্রিবিউট না লিখেন তবে ওয়েব ব্রাউজার তার নিজের মত করে অ্যাট্রিবিউট সেট করে নেবে। যেমনঃ আগের উদাহারণে size অ্যাট্রিবিউট না লিখলে ওয়েব ব্রাউজার লেখাটি স্বাভাবিক আকৃতিতে প্রদর্শিত করত।
কোন ট্যাগের অ্যাট্রিবিউটকে ঐ ট্যাগের ভেতর লিখতে হবে (উপরের উদাহরণের মত)। অ্যাট্রিবিউট এর গঠন নিম্নদূপঃ

অ্যাট্রিবিউট এর নাম = “অ্যাট্রিবিউট এর মান”

<font> ট্যাগ এর তিনটি অ্যাট্রিবিউট আছে । যথাঃ
1.face:এই অ্যাট্রিবিউট এর মাধ্যমে লেখার ফন্ট কি হবে তা নির্ধারন করা যায়। এখানে মানের অংশে যে ফন্টের নাম লিখবেন তা অবশ্যই যে ওয়েব পেজটি দেখবে তার কম্পিউটার এ ইন্সটল থাকতে হবে। তাই সেই সব ফন্টই ব্যবহার করবেন যা সকল কম্পিউটার এ আছে।
2.size:এই অ্যাট্রিবিউট এর মাধ্যমে লেখার আকার কেমন হবে তা নির্ধারন করা যায়।
3.color:এই অ্যাট্রিবিউট এর মাধ্যমে লেখার রঙ কি হবে তা নির্ধারন করা যায়। এর মান তিন ধরনের হতে পারে। যখন CSS শিখাব তখন এই তিন পদ্ধতি নিয়ে বিস্তারিত আলোচনা করব। এখন প্রচলিত ইংরেজি নাম ( red ; green etc.) ব্যবহার করতে শিখব।

ফন্ট নিয়ে সম্পুর্ন বিষয়টিকে একটা উদাহারণের সাহায্যে ব্যাখ্যা করা হলঃ

<font face=”Arial” size=”30″ color=”red”>

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ


আজকের মত এখানেই শেষ।

অনুশীলনিঃ ওয়েব পেজে নিচের লেখাটা প্রদর্শণ করাতে হবে কী কোড লিখতে হবে???

Once upon a time,    there was a man and

a woman.

the women was dangerous. 

ওয়েব ডিজাইন-৩:লেখা সাজানো

আগের পোস্টে HTML এর কয়েকটি বেসিক জিনিস নিয়ে আলোচনা করেছিলাম। এই পোস্টে ওয়েব পেজ এ লেখা কেমন করে সাজাতে হয় তা নিয়ে আলোচনা করবো।

নিচের ট্যাগ গুলো ব্যবহার করে লেখা সাজানো যায়ঃ
১। একাধিক স্পেস দেয়াঃ আগের পোস্টে দেখানো হয়েছে, লেখার মাঝে একাধিক স্পেস দিলেও- তা কেবল একটি স্পেস হিসাবেই ওয়েব পেজ এ পাওয়া যায়। এখন যদি সত্যিই একাধিক স্পেস এর প্রয়োজন হয় তখন কি করবেন? এজন্য ছোট্ট একটা কোড &nbsp ব্যবহার করতে হবে। কোন লেখার মাঝে যতবার &nbsp লিখবেন ততটি স্পেস সৃষ্টি হবে । যেমনঃ Body অংশে নিচের কোড লিখলে(যেহেতু ওয়েব পেজে যা লিখবেন তা Body অংশেই লিখতে হবে ,তাই “Body অংশে লিখলে” কথাটি পরবর্তীতে পরিহার করব। )

I &nbsp am Muktadir &nbsp &nbsp &nbsp &nbsp Rahman.

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ

I &nbsp am Muktadir &nbsp &nbsp &nbsp &nbsp Rahman.

২। নতুন লাইন তৈরীঃ আগের পোস্টে দেখানো হয়েছে, লেখা লেখার সময় কীবোর্ডের Enter কী ব্যবহার করে নতুন লাইনে গেলেও- ওয়েব পেজে লাইন দুটি কেবল একটি লাইনে পাওয়া যায়। এসমস্যা নিরাসনের জন্য একটি ট্যাগ ব্যবহার করা এবং তা হল
(line break বা লাইন ভাঙ্গার সংক্ষিপ্ত রূপ br)। যেমনঃ

I am Muktadir Rahman.
I am teaching you HTML.

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ

I am Muktadir Rahman.
I am teaching you HTML.

উল্লেখ্য, যত বার
লিখবেন ততটি নতুন লাইনের সৃষ্টি হবে। যেমন আগের উদাহরণের ক্ষেত্রে

I am Muktadir Rahman.

I am teaching you HTML.

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ

I am Muktadir Rahman.

I am teaching you HTML.

এখানে একটা বিষয় লক্ষ করুনঃ আমি আগের পোস্টে লিখেছি যে, একটি ট্যাগ লিখলে ঐ ট্যাগের কাজ শেষ হবার পর সমাপ্তিসূচক ট্যাগ লিখতে হবে। কিন্তু উপরের
ট্যাগ ব্যবহার করলেও এখানে কোন সমাপ্তিসূচক ট্যাগ লিখা হয় নি। তার পরিবর্তে শেষের > চিহ্নের আগে / চিহ্ন ব্যবহৃত হয়েছে। এটা ব্যতিক্রম। এছাড়া আরো দু-একটি ট্যাগ (  <img/>,<hr>, ) আছে যাতে সমাপ্তিসূচক ট্যাগ লিখতে হয় না। এই দু-একটি ব্যতিক্রম ছাড়া বাকী ট্যাগ গুলোতে সমাপ্তিসূচক ট্যাগ লিখতে হবে। যে যে ট্যাগের ক্ষেত্রে সমাপ্তিসূচক ট্যাগ লিখতে হয় না, তা সময় মত বলে দেয়া হবে। এখন ইহা নিয়ে এখন মাথা না ঘামালেও চলবে।

৩। প্যারাগ্রাফ তৈরীঃ বড় বড় লেখাগুলো সাধারণত একাধিক প্যারাগ্রাফে বিভক্ত করে লিখলে পাঠকের বুঝতে সুবিধা হয়। যেমন আমার এই পোস্টটি অনেক গুলো প্যারাগ্রাফ ব্যবহার করেছি। প্যারাগ্রাফ তৈরী করার জন্য

ট্যাগ ব্যবহার করা হয় ( প্যারাগ্রাফ(paragraph) এর প্রথম অক্ষর p ব্যবহার করে ট্যাগটি

)। যেমনঃ

<p>I am Muktadir Rahman. I am studying at Bangladesh University of Engineering and Technology (BUET). I want to be an engineer.</p>

<p>During my leisure,I try to write new post for my readers. Now I am teaching you all web design. But what I have seen is that most of you do not feel any interest in Learning Web design.</p>

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ

I am Muktadir Rahman. I am studying at Bangladesh University of Engineering and Technology (BUET). I want to be an engineer.

During my leisure,I try to write new post for my readers. Now I am teaching you all web design. But what I have seen is that most of you do not feel any interest in Learning Web design.

৪। একের ভিতর সবঃ উপরে একাধিক স্পেস সৃষ্টি, নতুন লাইন তৈরী, প্যারাগ্রাফ তৈরী দেখানো হয়েছে। এসব ব্যবহার করা অনেক ক্ষেত্রে ঝামেলা দায়ক হতে মনে হতে পারে। যেমন ধরুন আপনার একাধিক স্পেস ব্যবহার করা প্রয়োজন – সেক্ষেত্রে একাধি বার &nbsp ব্যবহার করতে হয়, নতুন লাইন তৈরী করতে বার বার <br/> ট্যাগ ব্যবহার করতে হয়। এই ঝমেলা গুলো এড়াতে <pre> ট্যাগ ব্যবহার করতে পারেন। ট্যাগ ব্যবহার করে যেভাবে লেখাগুলো লিখবেন , ঠিক সেই ভাবেই ওয়েব পেজে প্রদর্শিত হবে (অর্থাৎ লেখাগুলোর মাঝে যত স্পেস দিবেন, যত নতুন লাইন তৈরী করবেন -ওয়েব পেজে ঠিক সেরকম প্রদর্শিত হবে) । যেমনঃ আগের পোস্টের উদাহারণটির ক্ষেত্রেঃ

<pre>I am           Muktadir Rahman.
I        am teaching you HTML</pre>

ওয়েব পেজে নিচের ন্যায় দেখাবেঃ

I am      Muktadir Rahman.
I   am teaching you HTML

আজ এই পর্যন্তই । আগামী পোস্টে লেখা আকার আকৃতি বদলানো নিয়ে লিখব। কোন প্রশ্ন থাকলে,বুঝতে অসুবিধা হলে মন্তব্য  করতে পারেন।

অনুশীলনঃ ওয়েব পেজে নিচের লেখাগুলো যেভাবে আছে সে ভাবে প্রদর্শণ করার জন্য কী কী লিখতে হবে?

I love          my     country

very          much.

And I think that-

everyone                should  love   his country.

(দুই উপায়ে করা যেতে পারে। একটা সহজ ও অন্যটা ঝামেলা দায়ক। দুটি উপায়েই চেষ্টা করবেন কিন্তু)

Posted in এইচটি এম এল. ট্যাগ সমুহঃ , . Leave a Comment »

যে কোন মোবাইলে SMS পাঠান যত খুশি

ইন্টারনেটে ওয়েব সাইট আছে যেগুলো ফ্রী SMS সুবিধা দিয়ে থাকে। কিন্তু এদের অনেক গুলোই অকার্যকর । আমি একটা ওয়েব সাইট দিলাম যেটা ১০০% কার্যকর। এর মাধ্যমে আনলিমিটেড SMS পাঠাতে পারবেন যে কোন নাম্বারে । এ চলে যান । উপরে দেখবেন Country: লেখা। এখানে আপনার Country সিলেক্ট করুন। তারপর নিচের টেক্সট বক্সে যে নাম্বারে SMS পাঠাবেন তা লিখে ফেলুন। তার নিচের Message:লেখা টেক্সট বক্সে যা লিখে পাঠাতে চান তা লিখে ফেলুন। কপক্ষে ১ ০ টি বর্ণ থাকতে হবে । তারও নিচে Verification Code: লেখা টেক্সট বক্সের ডান পাশের চবি দেখে টেক্সট বক্সে Verification Code টি লিখে Send বাটনে ক্লিক করুন । ব্যস চলে যাবে SMS। পাঠানোর পরে আপনাকে রিপোর্ট দেখাবে ।
এভাবে আনলিমিটেড মানে যত খুশি তত SMS পাঠাতে পারবেন। তাই পাঠাতে শুরু করুন এখনি।

ওয়েব ডিজাইন-২: HTML বেসিক

HTML শেখার আগে কয়েকটি মৌলিক বিষয়ে ধারণা থাকতে হবে। নিচে তা আলোচনা করা হলঃ
HTML ট্যাগঃ ট্যাগ সম্পর্কে আগের পোস্টে ধারনা দেয়া হয়েছিল। < চিহ্ন দিয়ে শুরু এবং > চিহ্ন দিয়ে শেষ হওয়া শব্দ বা শব্দসমষ্টিই হল ট্যাগ। যেমনঃ <HTML>, <Body>, <head>,<P> ইত্যাদি এক একটি ট্যাগ। HTML কিছু ট্যাগের সমষ্টি ছাড়া আর কিছুই নয়। এই ট্যাগগুলো ব্যবহার করেই HTML এর সকল কোড লিখতে হয়। অর্থাৎ আমরা যা কিছু-ই করি না কেন(টাইটেল দেয়া,লেখা বড়-ছোট করা, বর্ণ পরিবর্তন,লিস্ট তৈরী ইত্যাদি সবকিছু), তা ট্যাগ ব্যবহার করেই করতে হবে। প্রতিটি কাজ করার জন্য আলাদা আলদা ট্যাগ আছে যেমনঃ ওয়েব পেজ এর টাইটেল দেয়ার জন্য টাইটেল (<title>) ট্যাগ। তাই আমরা HTML এ যা শিখব তা হল এই ট্যাগগুলোর কোনটি কোন কাজে এবং কেমন করে ব্যবহার করতে হয়। এখানে আরেকটা জিনিস জানতে হবেঃ একটা ট্যাগ শুরু করে ঐ ট্যাগের কাজ শেষ হবার পর একটি সমাপ্তি সুচক ট্যাগ লিখে দিতে হবে। এটা লিখার জন্য যে ট্যাগ ব্যবহারর করেছেন সেই ট্যাগটিই লিখতে হবে, কেবল প্রথম < চিহ্নের পর / ব্যবহার করতে হবে। যেমনঃ
আগের পোস্টের উদাহারণে

এখানে <title> ট্যাগ লিখে ওয়েব সাইট এর টাইটেল লেখার পর সমাপ্তি সূচক </title> ট্যাগ লিখে দেয়া হয়েছে। সমাপ্তি সূচক ট্যাগটি নির্দেশ করে যে ওয়েব সাইট এর টাইটেল লেখা শেষ হয়েছে। অর্থাৎ সমাপ্তি সুচক ট্যাগ এর আগ পর্যন্ত যা লিখা হবে তা-ই ওয়েব পেজ এর টাইটেল হিসাবে বিবেচিত হবে( এমন কি </head> <body> ইত্যাদি ট্যাগও ওয়েব পেজ এর টাইটেল হয়ে যাবে।আগের পোস্ট এর কোডটা লিখে </title> ট্যাগটি বাদ দিয়ে পরীক্ষা করে দেখুন। অবশ্যই পরিক্ষাটা করে দেখবেন কিন্তু।) । শুধু টাইটেল ট্যাগ নয় পরবর্তীতে যত গুলো ট্যাগ ব্যবহার করবেন , ব্যবহারের পর সমাপ্তি সুচক ট্যাগ অবশ্যই লিখবেন।

ওয়েব পেজ এর বিভিন্ন অংশঃ আগের পোস্টে বলা হয়েছে – HTML এ ওয়েব পেজকে দুইটি অংশে ভাগ করা হয়ঃ ১। Head .২। Body
১। Head: এই অংশ <head> ট্যাগ দিয়ে শুরু হয় এবং </head> ট্যাগ দিয়ে শেষ হয়। এই অংশে ওয়েব পেজের টাইটেল সেট করা হয়। এছাড়াও আরো কিছু কাজ করা হয় যা পরে দেখা যাবে।
২। Body: এই অংশ <body> ট্যাগ দিয়ে শুরু হয় এবং </body> ট্যাগ দিয়ে শেষ হয়। এই অংশে ওয়েব পেজ এ যা যা থাকবে ( যেমন কোন লেখা, ছবি ইত্যাদি যে কোন কিছু) তা লিখে দিতে হয়।এই অংশের মাঝে যা লিখবেন ওয়েব পেজেও তা লেখা দেখা যাবে। এই পোস্ট শেষে তা বুঝতে পারবেন।
সুতরাং যে কোন ওয়েব পেজে নিচের অংশগুলো থাকতে হবেঃ

(এখানে টাইটেল সেট করা লাগবে)
(এখানে যা লিখবেন তা ওয়েব পেজ এ প্রদর্শিত হবে।)

এখন থেকে মনে রাখবেন – যে কোন ওয়েব পেজ তৈরী করতে হলে উপরের কোডগুলো সব সময় লিখতে হবে। তারপর যা করার করবেন। (কোডগুলোকে Notepad এ লিখে HTML ফাইল হিসাবে সেভ করা লাগবে যা আগের পোস্টে আলোচনা করা হয়েছে)। উপরের অংশ কমপক্ষে দুই বার পড়তে হবে। বিষয়টা বুঝে থাকলে ওয়েব পেজ তৈরী করার কাজে নেমে পরুন।

টাইটেল সেট করাঃ আগেই বলা হয়েছে HTML এ প্রতিটি কাজ করার জন্য এক একটি ট্যাগ আছে। টাইটেল সেট করার জন্য টাইটেল ট্যাগ (<title>) ব্যবহার করতে হবে। এই ট্যাগকে Head অংশে লিখতে হবে। যেমনঃ

<title>My First Web Page</title>


উপরের ওয়েব পেজের টাইটেল হল “My First Web Page” যা ওয়েব ব্রাউজারের টাইটেল বারে দেখা যাবে।

ওয়েব পেজে লেখাঃ আগেই বলা হয়েছে যে body অংশে যা-ই লিখবেন তা-ই ওয়েব পেজ এ দেখা যাবে। যেমনঃ

<title>My First Web Page</title>
Welcome to my first web page.


এবার পেজটি ওপেন করে দেখুন লেখা আছে “Welcome to my first web page. ” । তবে এখানে লেখার ক্ষেত্রে কিছু সীমাবদ্ধতা আছে। লেখাগুলোর মাঝে একাধিক Space দিতে পারবেন না । দিলেও ওয়েব পেজে কেবল একটি Space দেখাবে। Keyboard এ Enter কী ব্যবহার করে আলাদা লাইনে লিখলেও , ওয়েব পেজে তা কেবল একটা লাইন হিসাবেই উপস্থাপিত হবে। যেমনঃ body অংশে নিচের লেখা লিখলেও
I am                                                         Muktadir                 Rahman.
I am                                       teaching you                                    HTML
ওয়েব পেজে কেবল নিচের লেখা দেখাবেঃ
I am Muktadir Rahman. I am teaching you HTML
এই সমস্যা নিরাসনের জন্য কিছু ট্যাগ ব্যবহার করা হয়। ওয়েব পেজে লেখা সাজানোর জন্য যে ট্যাগগুলো ব্যবহার করা হয় তা নিয়ে পরবর্তী পোস্টে আলোচনা করা হবে।
এবার নিচের প্রশ্ন গুলোর জবাব দিয়ে আপনি কতটুকু বুঝেছেন তা চেক করুন। যদি আটকে যান মন খারাপ করবেন না- পোস্টটি আবার মনযোগ দিয়ে পড়ে ফেলুন।
প্রশ্ন-১। ধরুন আপনার ওয়েব পেজ এ একটা ছবি প্রদর্শণ করাবেন। কোন জিনিসটি ব্যবহার করবেন?
ক) ট্যাগ খ) জাভাস্ক্রিপ্ট গ) অন্য কিছু
প্রশ্ন-২। ছবি প্রদর্শণের ক্ষেত্রে কোন অংশে কোড লিখবেন?
ক)Head খ)Body গ) অন্য কোন স্থানে

ওয়েব ডিজাইন-১:প্রাথমিক আলোচনা

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

আপনার ওয়েব সাইট পেতে হলে নিচের ধাপগুলো পর্যায়ক্রমে অনুসরন করতে হবেঃ
১. ওয়েব সাইট তৈরী
২. ওয়েব সাইট প্রকাশ

১।ওয়েব সাইট তৈরীঃ প্রথমে আপনাকে ওয়েব সাইটটা তৈরী করতে হবে। একাজটা দুইভাবে করতে পারেনঃ এক, বিভিন্ন সফটওয়্যার (যেমনঃ Microsoft FrontPage , Adobe Dreamweaver ইত্যাদি) ব্যবহার করে। দুই, কোড লিখে (যেমনঃ HTML, CSS,JavaScript প্রভৃতি)। আসলে আপনি যেভাবেই ওয়েব সাইট বানান না কেন , তা হবে কিছু কোডের সমষ্টি। সফটওয়্যারগুলো কোড লেখার কাজটা করে দেয়। তাই সফটওয়্যারগুলো দিয়ে ওয়েব সাইট বানানো তুলনামুলকভাবে অনেকটা সহজ । তবে ওয়েব সাইট তৈরী করার আসল মজাটা পাওয়া যায় যখন কোড লিখে ওয়েব সাইট তৈরী করা যায়। আমি কোড লিখে (HTML ও CSS ব্যবহার করে ) ওয়েব সাইট তৈরী করা দেখাবো।

২. ওয়েব সাইট প্রকাশঃ ওয়েব সাইট তৈরী করার পর তা ইন্টারনেট এ প্রকাশ করতে হবে। এজন্য দুইটি কাজ করতে হবেঃ এক, ডোমেইন নেম (আপনার ওয়েব সাইট এর নামই হল ডোমেইন নেম, যেমন কেনা এবং দুই,ইন্টারনেট এ ওয়েব সাইট রাখার জন্য জায়গা (Space) কেনা (যেখানে আপনার ওয়েব সাইট আপলোড করবেন. এই আপলোড করার কাজটাকে বলে ওয়েব হোস্টিং)। যেহেতু আপনি এই ব্যপারে নতুন , তাই আগে বিনামুল্যে ওয়েব সাইট প্রকাশ করে শিখতে পারেন। এজন্য বিভিন্ন ওয়েব সাইট আছে (যেমনঃ ) যেখানে Sign up করলে তারা একটা ডোমেইন নেম ও কিছু জায়গা দেয়। কাজটা খুবই সহজ , যা নিয়ে পরে বিস্তারিত আলোচনা করা হবে।

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

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

HTML প্রথম পাঠঃ HTML এর মৌলিক আলোচনা শুরু করার আগে ছোট একটা HTML পেজ তৈরী করা যাক । প্রথমে Notepad ওপেন করুন (Start Menu> Programs> Accessories >Notepad)। নিচের কোডগুলো লিখে ফেলুন।

<title>My First Web Page</title>
Welcome to my First Web page

এবার File> Save এ যান। যে উইন্ডো আসবে তার File name নামক text box এ লিখুন Index.html এবং ফাইলটি ইচ্ছা মত একটা ফোল্ডারে সেভ করুন।ব্যস তৈরী হয়ে গেল HTML পেজ। এবার ঐ ফোল্ডারে গিয়ে ফাইলটি ওপেন করুন । ওয়েব ব্রাউজারের টাইটেল বারে দেখুন লেখা My First Web Page এবং সামনে Welcome to my First Web page লেখাটি দেখা যাবে।

এবার বিষয়টি ব্যাখ্যা করার চেষ্টা করা যাক। যখন ফাইলটি ওপেন করা হল তখন ওয়েব ব্রাউজার উপরের প্রতিটি লাইনকে পর্যায়ক্রমে ইন্টারপ্রেট বা অনুবাদ করতে থাকে (সোজা কথায় আপনি কোডগুলো দিয়ে যে কমান্ড দিলেন সে অনুসারে কাজ করতে থাকে) । বিষয়
টা নিচে বর্ণনা করা হলঃ
১। যখন ব্রাউজার <html> লাইনটি দেখে তখন সে বুঝে যে এর নিচে </html> এর উপরে যে কোড গুলো লিখেছেন তা HTML ভাষায় রচিত। তারপর ব্রাউজারটি পরের লাইনে চলে যায় ।
২।যখন <head> লেখাটি দেখে তখন সে বুঝে নেয় </head> লেখটির আগ পর্যন্ত কোড গুলো head অংশের (HTML এ একটি ওয়েব পেজ প্রধানত দুটি অংশে বিভক্ত Head ও Body।Head অংশে ওয়েব সাইট এর টাইটেল সেট করা হয় এবং Body অংশে ওয়েব পেজ এ যা যা থাকবে তা নির্ধারন করা হয়)।
৩।যখন <title>My First Web Page</title> লাইনটিতে যায় তখন বুঝে নেয় ওয়েব সাইটটির Title হবে My First Web Page. তাই ওয়েব পেজটি ওপেন করলে টাইটেল বারে My First Web Page লেখাটি দেখায়।
৪। যখন <body> লাইনটিতে যায় তখন বুঝে নেয় </body> লাইনটির আগ পর্যন্ত যা আছে তা body অংশের আওতাভুক্ত। ফলে Welcome to my First Web page লেখাটি ওয়েব পেজ এ দেখায়।

উপরের আলোচনা থেকে যা যা শিখলাম তা হলঃ
১। প্রতিটি ওয়েব পেজ এর দুইটি অংশ থাকেঃ Head ও Body । Head অংশে ওয়েব পেজ এর টাইটেল ও Body অংশে ওয়েব পেজ এ যা যা থাকবে তা লিখে দিতে হয়।
২। < চিহ্ন দিয়ে শুরু ও > দিয়ে শেষ হোওয়া শব্দগুলোকে HTML এর ভাষায় ট্যাগ (tag) বলে। এই গুলো ব্যবহার করেই ওয়েব ব্রাউজারকে নির্দেশ দেয়া হয়। তাই ট্যাগগুলো গুরুত্তপুর্ন।

পরের পোস্টে HTML এর প্রাথমিক বিষয়াদি আলোচনা করার চেষ্টা করব। পরবর্তী পোস্ট গুলো পাবার জন্য কেমন লাগলো জানাবেন। 

…আবার আমি

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

পেছনের গল্পটা বলি।

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

পড়াশোনায় ভালো করতেই হবে। আর তখনি কম্পিউটার ছারলাম ও পড়া শোনা seriously শুরু করলাম।
প্রায় সাড়ে চার বছর পার হয়ে গেল। এখন আমি বাংলাদেশ প্রকৌশল বিশ্ব্বিদ্যালয়ে (বুয়েট) পড়াশোনা করার সুযোগ পেয়েছি। ব্লগিং ছাড়লেও তা মন

থেকে মুছে দিতে পাড়ি নি।

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

পড়ছে , মাঝে মাঝে comments করছে। ভাবছি আবার ব্লগিংটা নিয়মিত শুরু করবো। কম্পিউটারের পাশাপাশি পদার্থ বিজ্ঞান নিয়ে লিখতে চেষ্টা