এই সাইটটি বার পঠিত
ভাটিয়ালি | টইপত্তর | বুলবুলভাজা | হরিদাস পাল | খেরোর খাতা | বই
  • খেরোর খাতা

  • রেগুলার এক্সপ্রেশন  রাজার জাদুর কলম

    albert banerjee লেখকের গ্রাহক হোন
    ১৬ ফেব্রুয়ারি ২০২৬ | ৫৫ বার পঠিত
  • (0) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
    প্রথম অধ্যায়ে আমরা বাইনারি বনের কথা বলেছিলাম। দ্বিতীয় অধ্যায়ে আমরা ডিএফএ বানিয়েছিলাম। তৃতীয় অধ্যায়ে আমরা এনএফএ আর জাদুকরের কথা বলেছিলাম। এখন আসছে চতুর্থ অধ্যায়। এই অধ্যায়ে আমরা কথা বলব রেগুলার এক্সপ্রেশন নিয়ে। এটা রাজার সবচেয়ে প্রিয় জিনিস।

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

    জাদুকর হাসলেন। বললেন, রাজা, আপনার জন্য আমার কাছে একটা জাদুর কলম আছে। এই কলম দিয়ে আপনি ভাষা লিখতে পারবেন, আঁকতে হবে না।

    রাজা অবাক হয়ে বললেন, জাদুর কলম? সেটা আবার কী?

    জাদুকর বললেন, এই কলম দিয়ে আপনি কিছু বিশেষ চিহ্ন লিখবেন। যেমন a তারপর b মানে ab। a অথবা b মানে a|b। a যেকোনো সংখ্যক বার মানে a*। এই চিহ্নগুলো একসাথে লিখলেই ভাষা তৈরি হয়ে যায়। এদের নাম রেগুলার এক্সপ্রেশন।

    রাজা বললেন, বুঝিয়ে বলো।

    জাদুকর বললেন, ধরুন আপনি চান এমন সব স্ট্রিং যেখানে ০ এরপর ১ আছে। তাহলে লিখবেন ০১। এটুকুই। ধরুন আপনি চান ০ অথবা ১। তাহলে লিখবেন ০|১। ধরুন আপনি চান ০ যেকোনো সংখ্যক বার, তারপর ১। তাহলে লিখবেন ০*১। মানে প্রথমে যত খুশি ০, তারপর একটা ১।

    রাজা বললেন, তাহলে তো খুব সহজ। প্রথম অধ্যায়ে আমরা যে ভাষা দেখেছিলাম, শেষে ০১ থাকবে, সেটা কীভাবে লিখব?

    জাদুকর বললেন, সেটা হবে (০|১)*০১। মানে প্রথমে ০ বা ১ যেকোনো সংখ্যক বার, তারপর ০১।

    রাজা বললেন, এই * চিহ্নটা কী?

    জাদুকর বললেন, এই * হলো ক্লিনি স্টার। এর মানে শূন্য বা তার বেশি বার। যেমন ০* মানে ফাঁকা, ০, ০০, ০০০, ... সবগুলো।

    রাজা বললেন, তাহলে (০|১)* মানে ০ আর ১-এর যেকোনো সমন্বয়, যেকোনো সংখ্যক বার। তারপর শেষে ০১। এটা তো আমার পুরোনো ডিএফএ-র ভাষা।

    জাদুকর বললেন, ঠিক তাই।

    এবার রাজা আরেকটি প্রশ্ন করলেন। তিনি বললেন, আমি যদি চাই ০ একবার বা তার বেশি বার, তাহলে কী লিখব?

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

    রাজা বললেন, আর যদি আমি চাই ০ ঠিক তিনবার?

    জাদুকর বললেন, সেটা ০০০। এতটুকুই। কিন্তু বড় সংখ্যার জন্য ০{৩} লেখা হয়, সেটাও আধুনিক সংস্করণে আছে।

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

    জাদুকর বললেন, হ্যাঁ। আর সবচেয়ে মজার কথা হলো, এই রেগুলার এক্সপ্রেশনগুলো ঠিক একই শক্তির। মানে ডিএফএ যা পারে, রেগুলার এক্সপ্রেশনও তা পারে। আর এনএফএ যা পারে, রেগুলার এক্সপ্রেশনও তা পারে। এরা তিনজন সমান শক্তির।

    রাজা বললেন, তাহলে কি আমি চাইলেই রেগুলার এক্সপ্রেশনকে ডিএফএ-তে রূপান্তর করতে পারি?

    জাদুকর বললেন, অবশ্যই। আর সেটাই আমরা আগের অধ্যায়ে করেছি। প্রথমে রেগুলার এক্সপ্রেশন থেকে এনএফএ বানাই থম্পসন কনস্ট্রাকশন দিয়ে। তারপর এনএফএ থেকে ডিএফএ বানাই সাবসেট কনস্ট্রাকশন দিয়ে।

    রাজা বললেন, তাহলে তো রেগুলার এক্সপ্রেশনই সবচেয়ে সহজ।

    জাদুকর বললেন, হ্যাঁ, মানুষ হিসেবে আমাদের জন্য রেগুলার এক্সপ্রেশন সবচেয়ে সহজ। তাই প্রোগ্রামিং ভাষায় রেগুলার এক্সপ্রেশন এত জনপ্রিয়।

    এবার আমরা গল্প ছেড়ে বাস্তবে আসি। রেগুলার এক্সপ্রেশনের কয়েকটি মৌলিক বিষয় আছে।

    প্রথমত, সাধারণ অক্ষর। যেমন a, b, 0, 1। এরা নিজ নিজ অক্ষরকে বোঝায়।

    দ্বিতীয়ত, কনক্যাটেনেশন। যেমন ab মানে a তারপর b।

    তৃতীয়ত, ইউনিয়ন বা অথবা। যেমন a|b মানে a অথবা b।

    চতুর্থত, ক্লিনি স্টার। যেমন a* মানে a শূন্য বা তার বেশি বার।

    এই চারটি বিষয় দিয়ে সব রেগুলার এক্সপ্রেশন তৈরি করা যায়। এছাড়া আধুনিক রেগুলার এক্সপ্রেশনে আরও অনেক সুবিধা আছে। যেমন + মানে এক বা তার বেশি বার। ? মানে শূন্য বা এক বার। {n} মানে ঠিক n বার। {n,} মানে n বা তার বেশি বার। {n,m} মানে n থেকে m বার। এছাড়া [a-z] মানে a থেকে z পর্যন্ত যেকোনো অক্ষর। . মানে যেকোনো এক অক্ষর। ^ মানে শুরু, $ মানে শেষ।

    কিন্তু এসব আধুনিক সংযোজন। মূল তত্ত্বে শুধু ওই চারটি বিষয়ই যথেষ্ট।

    এবার আমরা বুঝতে চেষ্টা করি, রেগুলার এক্সপ্রেশন দিয়ে কী কী ভাষা লেখা যায়। প্রথম অধ্যায়ের শেষে আমরা একটি ভাষা দেখেছিলাম, ০^n ১^n, যেখানে n সমান সংখ্যক ০ আর ১। এই ভাষা কি রেগুলার এক্সপ্রেশন দিয়ে লেখা যায়?

    জাদুকর বললেন, না। এই ভাষা রেগুলার নয়। অর্থাৎ এর জন্য কোনো রেগুলার এক্সপ্রেশন নেই, কোনো ডিএফএ নেই, কোনো এনএফএ নেই।

    রাজা বললেন, তাহলে বুঝলাম কীভাবে? কোনটা রেগুলার আর কোনটা না, তা চেনার উপায় কী?

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

    রাজা বললেন, একটু বুঝিয়ে বলো।

    জাদুকর বললেন, ধরুন আপনার ভাষা রেগুলার। তাহলে এর জন্য একটা ডিএফএ আছে। সেই ডিএফএ-র অবস্থা সংখ্যা ধরা যাক n। এখন আপনার ভাষায় যদি n-এর চেয়ে বড় দৈর্ঘ্যের কোনো স্ট্রিং থাকে, তাহলে সেই স্ট্রিং পড়ার সময় ডিএফএ-কে n-এর বেশি ধাপ যেতে হবে। কিন্তু অবস্থা তো মাত্র nটি। তাই কোনো না কোনো অবস্থা অন্তত দুবার আসবেই। অর্থাৎ স্ট্রিং-এর মাঝে একটা চক্র আছে।

    এই চক্রটাকে আমরা বারবার ঘুরতে পারি। মানে চক্রের অংশটাকে যত খুশি বার বসাতে পারি। আর নতুন স্ট্রিংটাও ভাষায় থাকবে। এটাই পাম্পিং লেমা।

    রাজা বললেন, তাহলে ০^n ১^n ভাষায় কি এই পাম্পিং সম্ভব?

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

    রাজা বুঝলেন। তিনি বললেন, তাহলে পাম্পিং লেমা দিয়ে আমরা প্রমাণ করতে পারি কোন ভাষা রেগুলার নয়।

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

    এবার আমরা আরেকটি উদাহরণ দেখি। ধরুন, ভাষা হলো ww, যেখানে w যেকোনো স্ট্রিং, আর সেটি দ্বিগুণ। যেমন ০০, ১১, ০১০১, ১১০০১১০০ ইত্যাদি। এই ভাষা কি রেগুলার?

    জাদুকর বললেন, না। এটাও রেগুলার নয়। কারণ এখানে প্রথম অর্ধেক মনে রাখতে হয়, যা সীমিত স্মৃতি দিয়ে সম্ভব নয়।

    রাজা বললেন, তাহলে রেগুলার ভাষা আসলে কী কী?

    জাদুকর বললেন, রেগুলার ভাষা হলো সেই সব ভাষা যেখানে কোনো কিছু গণনা করতে হয় না, শুধু প্যাটার্ন মেলাতে হয়। যেমন শেষে ০১ আছে, বা শুরুতে ১ আছে, বা মাঝে ১১১ নেই, এসব। এছাড়া ব্র্যাকেট ব্যালান্স করা, সমান সংখ্যক কিছু রাখা, এগুলো রেগুলার নয়।

    রাজা বললেন, তাহলে বুঝলাম।

    এবার আমরা বাস্তব জীবনে ফিরে আসি। রেগুলার এক্সপ্রেশনের ব্যবহার কোথায়?

    প্রথম এবং প্রধান ব্যবহার হলো টেক্সট প্রসেসিং। তুমি যখন কোনো ডকুমেন্টে খুঁজো "bangladesh" লিখে, সেটা একটা রেগুলার এক্সপ্রেশন। আবার যখন ইমেইল ঠিকানা যাচাই করো, সেটাও রেগুলার এক্সপ্রেশন।

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

    তৃতীয় ব্যবহার হলো কমান্ড লাইনে। grep, sed, awk-এর মতো টুলস রেগুলার এক্সপ্রেশন ব্যবহার করে।

    চতুর্থ ব্যবহার হলো ওয়েব ডেভেলপমেন্টে। URL রাউটিং, ফর্ম ভ্যালিডেশন, সব জায়গায় রেগুলার এক্সপ্রেশন লাগে।

    পঞ্চম ব্যবহার হলো ডেটা স্ক্র্যাপিং। ওয়েবসাইট থেকে ডেটা সংগ্রহ করতে রেগুলার এক্সপ্রেশন খুব কাজে লাগে।

    এখন আমরা যদি আমাদের পুরোনো ইমেল রিডারের উদাহরণে ফিরে যাই, তাহলে দেখতে পাব, ইমেল ঠিকানা যাচাই করার জন্য আমরা একটি রেগুলার এক্সপ্রেশন লিখতে পারি। যেমন:

    ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

    এই এক্সপ্রেশনটির মানে কী? ^ দিয়ে শুরু, $ দিয়ে শেষ। [a-zA-Z0-9._%+-]+ মানে ইংরেজি বড় ও ছোট অক্ষর, সংখ্যা, ডট, আন্ডারস্কোর, পারসেন্ট, প্লাস, মাইনাস এই সবগুলোর এক বা তার বেশি। তারপর @। তারপর [a-zA-Z0-9.-]+ মানে ইংরেজি অক্ষর, সংখ্যা, ডট, হাইফেন এর এক বা তার বেশি। তারপর \. মানে ডট। তারপর [a-zA-Z]{2,} মানে ইংরেজি অক্ষর দুই বা তার বেশি।

    এই রেগুলার এক্সপ্রেশনটি বেশিরভাগ ইমেল ঠিকানা চিনতে পারে।

    এখন এই এক্সপ্রেশনটিকে যদি আমরা থম্পসন কনস্ট্রাকশন দিয়ে এনএফএ-তে রূপান্তর করি, তাহলে পাব একটা বড় এনএফএ। তারপর সেটাকে ডিএফএ-তে রূপান্তর করলে আরও বড় ডিএফএ পাব। কিন্তু পাইথনের re মডিউল সরাসরি এনএফএ সিমুলেট করে, তাই আমাদের এসব করতে হয় না।

    পাইথনে এই এক্সপ্রেশন ব্যবহার করতে আমরা লিখি:

    import re
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    if re.match(pattern, "example@domain.com"):
        print("বৈধ ইমেল")
    else:
        print("অবৈধ ইমেল")

    এতটুকুই।

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

    একইভাবে প্রোগ্রামিং ভাষার সিনট্যাক্স পার্স করতেও রেগুলার এক্সপ্রেশন যথেষ্ট নয়। সেজন্য কনটেক্সট-ফ্রি গ্রামার দরকার।

    তবুও, যেকোনো টেক্সট প্রসেসিং-এর প্রথম হাতিয়ার হলো রেগুলার এক্সপ্রেশন।

    এবার আমরা গল্পে ফিরে যাই। রাজা জাদুকরের কাছ থেকে রেগুলার এক্সপ্রেশন শিখে খুব খুশি। তিনি এখন জাদুর কলম দিয়ে ভাষা লিখতে পারেন। আর সেই লেখা থেকে এনএফএ আর ডিএফএ বানাতে পারেন।

    রাজা বললেন, জাদুকর, তোমাকে অনেক ধন্যবাদ। এখন আমি জানি, ডিএফএ, এনএফএ আর রেগুলার এক্সপ্রেশন তিনটাই একই জিনিসের তিন রূপ। ডিএফএ বাস্তবায়নের জন্য ভালো, এনএফএ ডিজাইনের জন্য ভালো, আর রেগুলার এক্সপ্রেশন লেখার জন্য ভালো।

    জাদুকর বললেন, ঠিক বলেছেন রাজা। আর এই তিনটে মিলিয়েই অটোমেটা তত্ত্বের প্রথম অংশ শেষ। এখন থেকে আপনি নিয়মিত ভাষা নিয়ে কাজ করতে পারবেন।

    রাজা বললেন, কিন্তু আমি তো আরও জটিল ভাষা বানাতে চাই, যেমন ব্র্যাকেট ব্যালান্স করা ভাষা।

    জাদুকর বললেন, সেটা পরবর্তী অধ্যায়ের বিষয়। সেখানে আমরা পুশডাউন অটোমেটন আর কনটেক্সট-ফ্রি গ্রামার নিয়ে কথা বলব।

    এভাবে রাজা রেগুলার এক্সপ্রেশন শিখলেন। এখন তিনি নিজেই তাঁর প্রজাদের জন্য বিভিন্ন ভাষা লিখতে পারেন। যেমন তিনি লিখলেন, টেলিফোন নম্বরের জন্য একটি রেগুলার এক্সপ্রেশন:

    ^\+?৮৮০[১-৯][০-৯]{৯}$

    এটার মানে হলো, শুরুতে + থাকতে পারে বা না-ও থাকতে পারে, তারপর ৮৮০, তারপর ১-৯ এর মধ্যে একটা সংখ্যা, তারপর ০-৯ এর মধ্যে ঠিক ৯টা সংখ্যা। এটা বাংলাদেশের মোবাইল নম্বরের জন্য।

    এভাবে রাজা তাঁর রাজ্যের সবকিছুর জন্য রেগুলার এক্সপ্রেশন লিখতে লাগলেন। পিন কোড, ইমেল, ওয়েব ঠিকানা, সবকিছু।

    কিন্তু একদিন তিনি একটি সমস্যায় পড়লেন। তিনি এমন একটি ভাষা লিখতে চাইলেন যেখানে প্রতিটি ০-এর পরে একটা ১ থাকবে, কিন্তু ০ আর ১-এর সংখ্যা সমান হবে না, বরং ০ যতবার থাকবে, ১ ঠিক ততবার থাকবে, যে কোনো ক্রমে। তিনি অনেক চেষ্টা করেও এর রেগুলার এক্সপ্রেশন লিখতে পারলেন না।

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

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

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

    পরবর্তী অধ্যায়ে আমরা পুশডাউন অটোমেটন আর কনটেক্সট-ফ্রি গ্রামার নিয়ে বিস্তারিত আলোচনা করব। সেখানে আমরা দেখব কীভাবে ব্র্যাকেট ব্যালান্স করা ভাষা, প্রোগ্রামিং ভাষার সিনট্যাক্স, এসব জটিল ভাষা চেনানো যায়।
    পুনঃপ্রকাশ সম্পর্কিত নীতিঃ এই লেখাটি ছাপা, ডিজিটাল, দৃশ্য, শ্রাব্য, বা অন্য যেকোনো মাধ্যমে আংশিক বা সম্পূর্ণ ভাবে প্রতিলিপিকরণ বা অন্যত্র প্রকাশের জন্য গুরুচণ্ডা৯র অনুমতি বাধ্যতামূলক। লেখক চাইলে অন্যত্র প্রকাশ করতে পারেন, সেক্ষেত্রে গুরুচণ্ডা৯র উল্লেখ প্রত্যাশিত।
    (0) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
  • মতামত দিন
  • বিষয়বস্তু*:
  • কি, কেন, ইত্যাদি
  • বাজার অর্থনীতির ধরাবাঁধা খাদ্য-খাদক সম্পর্কের বাইরে বেরিয়ে এসে এমন এক আস্তানা বানাব আমরা, যেখানে ক্রমশ: মুছে যাবে লেখক ও পাঠকের বিস্তীর্ণ ব্যবধান। পাঠকই লেখক হবে, মিডিয়ার জগতে থাকবেনা কোন ব্যকরণশিক্ষক, ক্লাসরুমে থাকবেনা মিডিয়ার মাস্টারমশাইয়ের জন্য কোন বিশেষ প্ল্যাটফর্ম। এসব আদৌ হবে কিনা, গুরুচণ্ডালি টিকবে কিনা, সে পরের কথা, কিন্তু দু পা ফেলে দেখতে দোষ কী? ... আরও ...
  • আমাদের কথা
  • আপনি কি কম্পিউটার স্যাভি? সারাদিন মেশিনের সামনে বসে থেকে আপনার ঘাড়ে পিঠে কি স্পন্ডেলাইটিস আর চোখে পুরু অ্যান্টিগ্লেয়ার হাইপাওয়ার চশমা? এন্টার মেরে মেরে ডান হাতের কড়ি আঙুলে কি কড়া পড়ে গেছে? আপনি কি অন্তর্জালের গোলকধাঁধায় পথ হারাইয়াছেন? সাইট থেকে সাইটান্তরে বাঁদরলাফ দিয়ে দিয়ে আপনি কি ক্লান্ত? বিরাট অঙ্কের টেলিফোন বিল কি জীবন থেকে সব সুখ কেড়ে নিচ্ছে? আপনার দুশ্‌চিন্তার দিন শেষ হল। ... আরও ...
  • বুলবুলভাজা
  • এ হল ক্ষমতাহীনের মিডিয়া। গাঁয়ে মানেনা আপনি মোড়ল যখন নিজের ঢাক নিজে পেটায়, তখন তাকেই বলে হরিদাস পালের বুলবুলভাজা। পড়তে থাকুন রোজরোজ। দু-পয়সা দিতে পারেন আপনিও, কারণ ক্ষমতাহীন মানেই অক্ষম নয়। বুলবুলভাজায় বাছাই করা সম্পাদিত লেখা প্রকাশিত হয়। এখানে লেখা দিতে হলে লেখাটি ইমেইল করুন, বা, গুরুচন্ডা৯ ব্লগ (হরিদাস পাল) বা অন্য কোথাও লেখা থাকলে সেই ওয়েব ঠিকানা পাঠান (ইমেইল ঠিকানা পাতার নীচে আছে), অনুমোদিত এবং সম্পাদিত হলে লেখা এখানে প্রকাশিত হবে। ... আরও ...
  • হরিদাস পালেরা
  • এটি একটি খোলা পাতা, যাকে আমরা ব্লগ বলে থাকি। গুরুচন্ডালির সম্পাদকমন্ডলীর হস্তক্ষেপ ছাড়াই, স্বীকৃত ব্যবহারকারীরা এখানে নিজের লেখা লিখতে পারেন। সেটি গুরুচন্ডালি সাইটে দেখা যাবে। খুলে ফেলুন আপনার নিজের বাংলা ব্লগ, হয়ে উঠুন একমেবাদ্বিতীয়ম হরিদাস পাল, এ সুযোগ পাবেন না আর, দেখে যান নিজের চোখে...... আরও ...
  • টইপত্তর
  • নতুন কোনো বই পড়ছেন? সদ্য দেখা কোনো সিনেমা নিয়ে আলোচনার জায়গা খুঁজছেন? নতুন কোনো অ্যালবাম কানে লেগে আছে এখনও? সবাইকে জানান। এখনই। ভালো লাগলে হাত খুলে প্রশংসা করুন। খারাপ লাগলে চুটিয়ে গাল দিন। জ্ঞানের কথা বলার হলে গুরুগম্ভীর প্রবন্ধ ফাঁদুন। হাসুন কাঁদুন তক্কো করুন। স্রেফ এই কারণেই এই সাইটে আছে আমাদের বিভাগ টইপত্তর। ... আরও ...
  • ভাটিয়া৯
  • যে যা খুশি লিখবেন৷ লিখবেন এবং পোস্ট করবেন৷ তৎক্ষণাৎ তা উঠে যাবে এই পাতায়৷ এখানে এডিটিং এর রক্তচক্ষু নেই, সেন্সরশিপের ঝামেলা নেই৷ এখানে কোনো ভান নেই, সাজিয়ে গুছিয়ে লেখা তৈরি করার কোনো ঝকমারি নেই৷ সাজানো বাগান নয়, আসুন তৈরি করি ফুল ফল ও বুনো আগাছায় ভরে থাকা এক নিজস্ব চারণভূমি৷ আসুন, গড়ে তুলি এক আড়ালহীন কমিউনিটি ... আরও ...
গুরুচণ্ডা৯-র সম্পাদিত বিভাগের যে কোনো লেখা অথবা লেখার অংশবিশেষ অন্যত্র প্রকাশ করার আগে গুরুচণ্ডা৯-র লিখিত অনুমতি নেওয়া আবশ্যক। অসম্পাদিত বিভাগের লেখা প্রকাশের সময় গুরুতে প্রকাশের উল্লেখ আমরা পারস্পরিক সৌজন্যের প্রকাশ হিসেবে অনুরোধ করি। যোগাযোগ করুন, লেখা পাঠান এই ঠিকানায় : guruchandali@gmail.com ।


মে ১৩, ২০১৪ থেকে সাইটটি বার পঠিত
পড়েই ক্ষান্ত দেবেন না। আদরবাসামূলক প্রতিক্রিয়া দিন