মঞ্চে ঘোষণা


গল্প

আপনি একটি আন্তর্জাতিক সম্মেলনের একজন মঞ্চ ঘোষক। আপনার কাজ হলো বক্তাদের ঘোষণা করা, তাদের সময় শেষ হলে মনে করিয়ে দেওয়া, আর Q&A সেশনে সঞ্চালনা করা। আপনাকে আগেই আপনার স্টেজের বক্তাদের একটি তালিকা দেওয়া হয়, আর সেটিকে মডারেশন কার্ডে রূপান্তর করতে হবে।

যেহেতু তালিকাটি একটি নির্দিষ্ট ফরম্যাট অনুসরণ করে, তাই আপনি ঠিক করেন যে রেগুলার এক্সপ্রেশন (regex) ব্যবহার করে দেওয়া তালিকাটি পার্স করা এবং স্বয়ংক্রিয়ভাবে মডারেশন কার্ডগুলো তৈরি করা এমন একটি ছোট প্রোগ্রাম লিখবেন।

Note

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

আপনাকে দেওয়া তালিকায় প্রতিটি বক্তৃতার জন্য নিচের তথ্যগুলো থাকে:

  • এর শিরোনাম,
  • বক্তার নাম,
  • তাদের সর্বনাম (ঐচ্ছিক),
  • তাদের প্রতিষ্ঠান (ঐচ্ছিক),
  • বক্তৃতার শুরুর সময়,
  • Q&A সেশনের শুরু (ঐচ্ছিক),
  • এবং বক্তৃতার শেষের সময়।

একটি সম্পূর্ণ এন্ট্রির ফরম্যাট নিচের মতো:

»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30

এখানে শিরোনাম হলো Speedrunning 101, বক্তার নাম Sasha Duda Krall, তিনি GDQU থেকে এসেছেন এবং they/them সর্বনাম ব্যবহার করেন। বক্তৃতা শুরু হয় 13:00-এ, 13:20-এ একটি Q&A শুরু হবে, আর পুরো সেশন শেষ হয় 13:30-এ।

Note

যেহেতু নামে সাধারণ ড্যাশ - থাকতে পারে, তাই বক্তা ও বক্তৃতার নাম আলাদা করতে একটি এন ড্যাশ – ব্যবহার করা হয়।

সেই বক্তৃতার জন্য আপনার প্রোগ্রামের যে মডারেশন কার্ডটি তৈরি করা উচিত, তা দেখতে এমন:

- Our next speaker is Sasha Duda Krall, from GDQU
- Their talk is called »Speedrunning 101«
- They will answer your questions in the Q&A session at the end of the talk, starting at 13:20

13:00 - 13:20 - 13:30

পুরো তালিকাটি দেখতে এমন হতে পারে:

»Speedrunning 101« – Sasha Duda Krall (they/them), from GDQU. Start: 13:00, Q&A: 13:20, End: 13:30
»How I learned to say Farewell« – Madeline (she/her). Start: 13:40, Q&A: 14:00, End: 14:05
»How To Find a Good Title For Your Conference Talk« – Vítězslav Kruse (he/him). Start: 14:15, End: 14:40
»Why Emoji Matter❣« – Ash van Amelsvoort, from the University of 🧬🧪⚛. Start: 14:50, Q&A: 15:05, End: 15:10
»Can dogs look up?« – Kira "k1ralli" Sørensen. Start: 20:50, Q&A: 21:05, End: 21:10

সংশ্লিষ্ট কার্ডগুলো হলো:

- Our next speaker is Madeline
- Her talk is called »How I learned to say Farewell«
- She will answer your questions in the Q&A session at the end of the talk, starting at 14:00

13:40 - 14:00 - 14:05
- Our next speaker is Vítězslav Kruse
- His talk is called »How To Find a Good Title For Your Conference Talk«
- There will not be a Q&A session

14:15 - NO Q&A - 14:40
- Our next speaker is Ash van Amelsvoort, from the University of 🧬🧪⚛
- Ash's talk is called »Why Emoji Matter❣«
- Ash will answer your questions in the Q&A session at the end of the talk, starting at 15:05

14:50 - 15:05 - 15:10
- Our next speaker is Kira "k1ralli" Sørensen
- Kira's talk is called »Can dogs look up?«
- Kira will answer your questions in the Q&A session at the end of the talk, starting at 21:05

20:50 - 21:05 - 21:10

এখানে কয়েকটি বিষয় লক্ষণীয়:

  • কোনো বক্তার প্রতিষ্ঠান দেওয়া না থাকলে, মডারেশন কার্ডে সেটি বাদ দিন।
  • Q&A সেশনের সময় দেওয়া না থাকলে, বক্তা প্রশ্নের উত্তর দিতে রাজি হননি।
  • বক্তা সর্বনাম উল্লেখ না করলে, তার বদলে বক্তার প্রথম নাম ব্যবহার করুন। মনে রাখবেন, এভাবে কারও নাম সংক্ষেপ করা সবসময় উপযুক্ত নয়, যেমন অনেক চীনা নামের ক্ষেত্রে শেষ নামটি রেখে সংক্ষেপ করা ভালো। তবে, প্রথম নামে সংক্ষেপ করার নিয়মটি এই স্টেজে বক্তৃতা দেওয়া সবার ক্ষেত্রেই সুন্দরভাবে কাজ করে।

কাজগুলো

১. কার্ডগুলো তৈরি করার জন্য প্রয়োজনীয় তথ্য ক্যাপচার করে এমন একটি regex লিখুন

এটি করার সবচেয়ে সহজ উপায় হলো regex101 বা RegExr-এর মতো একটি regex বিল্ডার টুল ব্যবহার করা।

!!! warning regex ইঞ্জিন/ফ্লেভারটি অবশ্যই $CHANGE_ME হিসেবে সেট করতে ভুলবেন না।

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

২. একটি লাইন নেয় এবং তৈরি হওয়া মডারেশন কার্ড রিটার্ন করে এমন একটি ফাংশন লিখুন

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

টেস্ট কেস

ভবিষ্যতে সম্ভাব্য টেস্ট কেসগুলোকে নিচের নির্দেশিকাগুলো মেনে চলা উচিত:

  • ডেলিমিটারগুলো অবশ্যই দ্ব্যর্থহীন হতে হবে। যেমন, বক্তৃতার শিরোনামে »« থাকা উচিত নয়, নামে কমা থাকা উচিত নয়।
  • কিছু তথ্য ঐচ্ছিক কি না, তার ভিত্তিতে টেস্ট কেসগুলো সাজানো উচিত। প্রথম কেসে সম্ভাব্য সব তথ্য থাকা উচিত, পরের কেসে একটি ক্যাপচারযোগ্য তথ্য বাদ থাকা উচিত, ইত্যাদি।
  • নাম, শিরোনাম বা প্রতিষ্ঠানের জন্য [a-zA-Z] বা এ ধরনের প্যাটার্ন ব্যবহার করা সমাধানগুলো টেস্ট পাস করতে পারবে না।

ইমপ্লিমেন্টেশন

  • Julia (রেফারেন্স ইমপ্লিমেন্টেশন)