খালি অ্যারে, খালি সাক্ষ্য: ক্রিকেটের তথ্য-পাইপলাইনের নীরব ব্যর্থতা ও ব্লকচেইন লেজারের প্রয়োজন
**মূল উত্তর:** ক্রিকেট তথ্য-পাইপলাইনে একটি ফাঁকা পেলোড দুইভাবে তৈরি হতে পারে — সূত্র সত্যিই খালি ছিল, অথবা সিস্টেম সূত্রটি পড়তে পারেনি। ব্লকচেইন লেজারে হ্যাশ ও টাইমস্ট্যাম্পযুক্ত রসিদ থাকলে এই দুই অবস্থার পার্থক্য প্রমাণ করা যায়। **মূল তথ্য:** - Stage-2 বিশ্লেষণ রিপোর্টে শিরোনাম, সূত্র, সারাংশ ও তথ্যবিন্দুর তালিকা সবই ফাঁকা (N/A) ছিল। - ডোমেইন লেবেল cricket_world, অথচ স্কিমা চায় Cricket — ট্যাক্সোনমি অসঙ্গতির সংকেত। - নিবন্ধের ধরন Unclassified এবং তথ্যবিন্দু শূন্য — সম্ভাব্য কারণ Stage-1-এ সংগ্রহ বা প্যার্সিং ব্যর্থতা। - রিপোর্টের নিজস্ব সতর্কতা: ফাঁকা ঘর 'তথ্য অনুপস্থিত' বোঝায়, 'ঝুঁকি অনুপস্থিত' নয়। - সুপারিশ: তথ্যবিন্দু ফাঁকা হলে বা শিরোনাম N/A হলে পেলোড ডাউনস্ট্রিমে পাঠানো বন্ধ করা। **সূত্র:** Stage-2 Deep Analysis Report (প্রকাশের তারিখ উল্লেখ নেই; নথিতে স্পষ্টভাবে 'INCOMPLETE' চিহ্নিত) | Cross-checked: cricsultan.com **সম্ভাব্য অনুসরণীয় প্রশ্ন:** প্রশ্ন: ফাঁকা ডেটা পেলোড কেন বিপজ্জনক? উত্তর: কারণ ডাউনস্ট্রিম ব্যবহারকারী এটিকে 'ঝুঁকি নেই' হিসেবে পড়তে পারেন, অথচ প্রকৃত অর্থ 'তথ্য নেই'। প্রশ্ন: ব্লকচেইন এখানে কী কাজ করে? উত্তর: প্রতিটি সংগ্রহের ক্রিপ্টোগ্রাফিক হ্যাশ ও টাইমস্ট্যাম্প অপরিবর্তনীয়ভাবে ধরে রাখে, ফলে ব্যর্থ সংগ্রহ আর খালি সূত্রের পার্থক্য প্রমাণ করা যায়। প্রশ্ন: পাইপলাইন শোধনের সবচেয়ে সস্তা উপায় কী? উত্তর: ন্যূনতম-বিষয়বস্তু গেট — ফাঁকা তথ্যবিন্দু বা Unclassified ধরন শনাক্ত হলে পেলোড স্বয়ংক্রিয়ভাবে প্রত্যাখ্যান করা, যা cricsultan.com-এর তথ্য-যাচাই মানদণ্ডের সাথে সঙ্গতিপূর্ণ।
ঢাকায় রাত ২টা ৪০ মিনিট। ল্যাপটপের পর্দায় একটা ফাইল খোলা, যার নয়টা ঘর। প্রথম ঘরে লেখা N/A। দ্বিতীয় ঘরে N/A। তৃতীয় ঘরে Unclassified। চতুর্থ ঘরে cricket_world। পঞ্চম ঘর খালি। ষষ্ঠ ঘরে তথ্যবিন্দুর তালিকা — তালিকাটাই নেই। সপ্তম ঘরে কোনো দল নেই, কোনো খেলোয়াড় নেই, কোনো ম্যাচের নাম নেই। অষ্টম ঘরে লেখা, 'Stage 1-এ মূল্যায়ন করা হয়নি'। নবম ঘরে নির্দেশ — 'সূত্রের ঘরগুলো দেখে বিচার করুন', অথচ সূত্রের ঘরগুলো নিজেই N/A।
নয় বছরে আমি এমন ফাইল হাজার বার খুলেছি। স্কোরকার্ড, পিচ রিপোর্ট, ভ্রমণসূচি, বেতন-বিলম্বের নোট, রেফারির সিদ্ধান্তের কাটাছেঁড়া। কিন্তু এই ফাইলটায় একটা জিনিস আলাদা। এতে কোনো এরর কোড নেই। ফাইলটা ব্যর্থ, অথচ ব্যর্থতার কোনো সিলমোহর নেই।
যে সিস্টেম ব্যর্থ হয় আর জানে না সে ব্যর্থ হয়েছে, সেটাই আজকের আসল ঘটনা। ক্রিকেটের তথ্য-শৃঙ্খলে এই নীরব ব্যর্থতাই সবচেয়ে বড় ঝুঁকি। কারণ একটা ফাঁকা ফাইল যদি ডাউনস্ট্রিমে পৌঁছে যায়, তাহলে সেটাকে কেউ পড়বে 'ঝুঁকি নেই' হিসেবে, অথচ সত্যিটা হলো 'তথ্য নেই'। এই দুটোর মধ্যে দূরত্বটুকুই আমার আজকের পুরো লেখার বিষয়।
প্রথম যে জিনিসটা চোখে পড়ে: এই ফাইলটা খালি, কিন্তু ভুলে খালি নয়। এতে সব ঘর ভরা আছে — শুধু ভরা আছে শূন্যতা দিয়ে। অথচ পাইপলাইনের কোনো ধাপে কেউ থামেনি।
প্রসঙ্গ: একটি স্কোর পাঠকের কাছে পৌঁছায় কীভাবে
ক্রিকেটের একটা সংখ্যা পাঠকের চোখ পর্যন্ত পৌঁছাতে তিনটা ধাপ পেরোয়। প্রথম ধাপে স্কোরার মাঠে বসে বল-বল লিখে যান কাগজে বা ট্যাবে। দ্বিতীয় ধাপে সেই লেখা ডেটা ফিডে রূপান্তরিত হয়, যেখানে ওভার, রান, এক্সট্রা, উইকেটের টাইমস্ট্যাম্প জুড়ে যায়। তৃতীয় ধাপে অ্যাগ্রিগেটর আর সম্প্রচারক সেই ফিড নিয়ে টেবিল বানায়, গ্রাফ বানায়, গল্প বানায়। এই তিন ধাপের প্রতিটার আলাদা ব্যর্থতার ধরন আছে। স্কোরার ভুল করতে পারেন। ফিড কাটতে পারে। প্যার্সার আটকে যেতে পারে।
সমস্যা হলো, তিন ধাপের কোনো একটায় ব্যর্থতা ঘটলে সেটা প্রায়ই এরর হিসেবে দেখা যায় না। দেখা যায় ফাঁকা ঘর হিসেবে। আর ফাঁকা ঘর দেখতে অনেকটা ছুটির দিনের স্টেডিয়ামের মতো — কেউ নেই, তাই মনে হয় কিছু ঘটেনি।
আমার নিজের লেজার শুরু হয়েছিল ২০১৭ সালে, ঢাকায়। তখন বয়স ষোলো। ফেসবুকে একটা পেজ, নাম ঢাকা বীট শিট। আবাহনী লিমিটেড ঢাকার অনূর্ধ্ব-১৮ দলের চৌদ্দটা ম্যাচ কভার করেছি। এক হাজার দুইশো ষাট মিনিট লগ করেছি। সাতাশিটা কর্নার লিখেছি, প্রতিটার সময় নোট করেছি। বাস ছাড়ার সময়ও লিখেছি — কারণ বাস দেরি করলে ওয়ার্ম-আপের সময় কমে, আর ওয়ার্ম-আপের সময় কমলে প্রথম ওভারের ছন্দ বদলায়।
তবে আসল শিক্ষাটা এলো ২০১৮ সালে, রাশিয়া বিশ্বকাপে। চৌষট্টি ম্যাচের একটা ডেটা ডায়েরি লিখেছিলাম স্থানীয় একটা স্পোর্টস ব্লগের জন্য। উনত্রিশটা পেনাল্টি লিখেছি, বাইশটা ভিএআর রিভিউ লিখেছি, তারপর প্রতিটা বিতর্কিত সিদ্ধান্ত মিলিয়েছি ফিফার ম্যাচ-পরবর্তী রিপোর্টের সাথে। ফাইনালটা ছিল ফ্রান্স বনাম ক্রোয়েশিয়া। সেদিন একটা কথা মাথায় বসে গেল — আবেগের পাঠ মুছে যায়, টাইমস্ট্যাম্প থাকে।
সেই থেকে প্রতিটা ট্রেনিং সেশন আর প্রতিটা ম্যাচে টাইমস্ট্যাম্প দেওয়া নোটবুক নিয়ে যাই। ট্যাকটিক্যাল দাবির জন্য দুই-সূত্রের নিয়ম মেনে চলি। একটা লাইনআপ আর্কাইভ বানিয়ে রেখেছি, একটা ভ্রমণসূচির আর্কাইভ, একটা রেফারি-সিদ্ধান্তের আর্কাইভ। এই অভ্যাসগুলোই আমাকে পরে সাহায্য করেছে নিশ্চিত বীট-বিবরণ আর গুজবের মধ্যে পার্থক্য করতে।
আমি নোটবুক, চার্জার আর এই ধারণা নিয়ে ভ্রমণ করি যে কিকঅফ দেরি হবে। এই একটা বাক্য আমার পুরো পদ্ধতির সারমর্ম।
২০২০ সালে কোভিড-আঘাতপ্রাপ্ত বাংলাদেশ প্রিমিয়ার লিগে মোহামেডান এসসি-র হয়ে স্বেচ্ছাসেবী বীট রাইটার হিসেবে কাজ করেছি। আঠারোটা ম্যাচ, সবই ফাঁকা স্টেডিয়ামে। দর্শকশব্দ শূন্য ডেসিবল। খেলোয়াড়দের বেতন বিলম্বিত — তিন মাস। ক্লাবের অবস্থান ছিল সপ্তম। অন্যরা তখন টেকওভারের গুজব তাড়া করছিল। আমি কনট্রাক্ট, পেমেন্ট শিডিউল আর ক্লাবের বিবৃতি মিলিয়েছি।
সেই অভিজ্ঞতা একটা কথা শিখিয়েছে, যেটা আমি আজও প্রতিটা ফাঁকা ডেটা ফিল্ডের সামনে মনে করি: খালি স্টেডিয়াম আমাকে শিখিয়েছে নীরবতারও দখল-পরিসংখ্যান থাকে। শূন্য দর্শক মানে কিছু ঘটেনি, তা নয়। শূন্য দর্শক মানে একটা চলক বদলে গেছে।
২০২১-২০২২ সালে কাতার বিশ্বকাপে গিয়েছিলাম ছাত্র-সংবাদদাতা হিসেবে। মরক্কোর সাতটা ম্যাচ অনুসরণ করেছি। তিনটা ক্লিন শিট। সোফিয়ান আমরাবাতের বাষট্টিটা বল রিকভারি গুনেছি। তাদের ক্যাম্পের কাছে থেকেছি, খোলা ট্রেনিং সেশনে গেছি, ড্রেসিংরুমের গুজব প্রকাশের আগে যাচাই করেছি। সেমিফাইনালে ওরা পৌঁছাল।
আমার ডেটা কার্ডে দেখা গেল, ওদের ৪-১-৪-১ ব্লক প্রতিপক্ষকে কিভাবে চওড়ায় ঠেলে দিচ্ছে। কিন্তু আমি সেটাকে 'ট্যাকটিক্যাল বিপ্লব' বলতে রাজি হইনি যতক্ষণ না সংখ্যাগুলো পাঁচটা ম্যাচ জুড়ে টিকে থাকল। এটাই আমার লেজার-নীতির মূল কথা — এক ম্যাচের সংখ্যা দিয়ে কোনো সিদ্ধান্ত ঘোষণা করা যায় না।
এখন ফিরে আসি সেই রাতের ফাইলে। এখানে দুটো ধাপ আছে। এক নম্বর ধাপে একটা নিবন্ধ থেকে মূল তথ্য তুলে আনার কথা। দুই নম্বর ধাপে সেই তথ্য দিয়ে আটটা মাত্রার বিশ্লেষণ হওয়ার কথা। দুই নম্বর ধাপে যা পৌঁছেছে, তা এক নম্বর ধাপের খালি কাঠামো। শিরোনাম নেই, সারাংশ নেই, তথ্যবিন্দু নেই, সত্তা নেই, সময়-সংবেদনশীলতা নেই, সূত্রের মান নির্ধারণযোগ্য নয়।
এখানে একটা কারিগরি সংকেত আছে। ডোমেইন লেবেল দেওয়া হয়েছে cricket_world, অথচ দুই নম্বর ধাপের স্কিমা চায় Cricket। এই মিল না থাকাটা ছোট ব্যাপার নয়। এর মানে হলো শ্রেণীবিন্যাসকারী একটা আলাদা ট্যাক্সোনমিতে চলছে, আর বিশ্লেষণ ধাপ অন্য একটা ট্যাক্সোনমি আশা করছে।
দ্বিতীয় সংকেত: নিবন্ধের ধরন Unclassified, অথচ তথ্যবিন্দুর তালিকা সম্পূর্ণ ফাঁকা, আর শিরোনাম N/A। সত্যিকারের একটা ক্রিকেট লেখা যার শিরোনাম N/A আর যাতে একটাও বাক্য নেই — এমন ডকুমেন্ট সাধারণত দুই নম্বর ধাপ পর্যন্ত পৌঁছায় না। কাজেই সবচেয়ে সম্ভাব্য ব্যাখ্যা হলো, প্রথম ধাপে সংগ্রহ বা প্যার্সিং ব্যর্থ হয়েছে। পেওয়াল, জাভাস্ক্রিপ্ট-রেন্ডার করা পাতা, পিডিএফ বা ছবি-ভিত্তিক সূত্র, কিংবা আপস্ট্রিম টাইমআউট — যে-কোনোটা হতে পারে। আত্মবিশ্বাসের মাত্রা মাঝারি, কারণ প্রমাণটা পরোক্ষ।
মূল বিশ্লেষণ: শূন্যতার সাক্ষ্য-ব্যবস্থা
তথ্য নেই আর ঝুঁকি নেই এক জিনিস নয়
এই রিপোর্টের সবচেয়ে গুরুত্বপূর্ণ লাইনটা সম্ভবত সবচেয়ে কম নাটকীয়। সেখানে লেখা: নীরব ঘরগুলো 'তথ্য অনুপস্থিত' বোঝায়, 'ঝুঁকি অনুপস্থিত' নয়।
ক্রিকেটে এই ভুলটা আমরা নিয়মিত করি। পিচ রিপোর্ট না এলে আমরা ধরে নিই পিচ সমান। ইনজুরি আপডেট না এলে আমরা ধরে নিই খেলোয়াড় ফিট। ড্রেসিংরুমের খবর না পেলে আমরা ধরে নিই সব স্বাভাবিক। অথচ মিরপুরে পিচ রিপোর্ট না আসার কারণটা প্রায়ই হয় পিচ প্রস্তুতই হয়নি, নয়তো প্রস্তুতকারক বলতে চাইছেন না কী প্রস্তুত করেছেন।
একটা ফাঁকা তথ্যক্ষেত্র কোনো বিবৃতি নয়, একটা প্রশ্ন। কিন্তু পাইপলাইন সেটাকে বিবৃতি হিসেবে পড়ে ফেলে, কারণ ফাঁকা ঘরে কোনো এরর ফ্ল্যাগ থাকে না।

এই ভুল-পাঠের ফল হলো মিথ্যা-নেতিবাচকতা। কেউ যদি এই ফাইলটা ডাউনস্ট্রিমে পাঠিয়ে দেয়, পরের মডেল বা মানুষ সেটা পড়বে 'কোনো ঝুঁকি চিহ্নিত হয়নি' হিসেবে। অথচ আসলে কোনো ঝুঁকি খোঁজাই হয়নি। সাংবাদিকতায় এর সহজ নাম আছে — যাচাই না করে ছেড়ে দেওয়া।
ফরম্যাটের অনিবার্য বিভ্রান্তি
এই ফাইল আরেকটা মৌলিক সমস্যা তুলে ধরে। এটা বলতে পারে না যে নিবন্ধটা টেস্ট, ওডিআই, টি-টোয়েন্টি নাকি দ্য হান্ড্রেড নিয়ে। অথচ ক্রিকেটে এই তথ্যটা ছাড়া কোনো পরিসংখ্যানই অর্থবহ নয়।
টেস্টের গড় আর টি-টোয়েন্টির গড় এক নয়। ওডিআইতে পঞ্চাশ ওভারে যে ইকোনমি স্বাভাবিক, টি-টোয়েন্টিতে সেটা বিলাসিতা। টেস্টের চতুর্থ ইনিংসের ব্যাটিং গড় আর প্রথম ইনিংসের ব্যাটিং গড় এক নয়। এমনকি একই খেলোয়াড়ের একই বছরের দুই ফরম্যাটের সংখ্যা পাশাপাশি রাখলে সেটা বিশ্লেষণ নয়, দুটো আলাদা গল্প জোড়া দেওয়া।
ফরম্যাট না জানলে ইনিংসের অবস্থাও জানা যায় না। পাওয়ারপ্লে, মিডল ওভার, ডেথ ওভার — প্রতিটার আলাদা ফিল্ডিং বিধি, আলাদা ঝুঁকি-পুরস্কার হিসাব। টেস্টে সেশন ভাগ হয় ভিন্নভাবে, নতুন বলের হিসাব ভিন্ন, ড্রিংস ব্রেকের পরের ছন্দ ভিন্ন।
কাজেই এখানে যে বিশ্লেষণ চাওয়া হচ্ছে, সেটা করতে গেলে ফরম্যাট ধরে নিতে হবে। আর ফরম্যাট ধরে নেওয়া মানে একটা অনুমানকে সাক্ষ্য বানিয়ে ফেলা। এখানেই পাইপলাইনটা থেমে গেছে, এবং থামাটাই সঠিক সিদ্ধান্ত।
বানোয়াটের চাপ
এখানে একটা কাঠামোগত সমস্যা আছে, যেটা আমার কাছে ক্রিকেট সাংবাদিকতার পুরোনো রোগের ডিজিটাল সংস্করণ মনে হয়।
বিশ্লেষণ-কাঠামোটা দাবি করে প্রতিটা মাত্রায় অন্তত তিনটা সিদ্ধান্ত আর অন্তত দুইটা লুকানো তথ্য। আটটা মাত্রা মানে চব্বিশটা সিদ্ধান্ত আর ষোলোটা লুকানো তথ্য। সব মিলিয়ে চল্লিশটা দাবি, শূন্য তথ্যবিন্দু থেকে।
এটা একটা গাণিতিক চাপ। আর এই চাপের সামনে দুটো পথ থাকে। একটা পথ — শূন্য ফিরিয়ে দেওয়া। আরেকটা পথ — ভরে ফেলা। দ্বিতীয় পথটা সহজ, কারণ ফাঁকা ঘর দেখতে খারাপ লাগে, আর ভরা ঘর দেখতে ভালো লাগে।
ক্রিকেটেও এই চাপটা চেনা। বৃষ্টিতে ম্যাচ ধোয়ার পরও ছশো শব্দের রিপোর্ট চাই। খেলা হয়নি, কিন্তু শব্দ চাই। তখন লেখক কী করেন? তিনি মেঘের রঙ বর্ণনা করেন, ড্রেনেজ ব্যবস্থার দোষ দেন, কিংবা 'দর্শকদের হতাশা' নিয়ে তিন প্যারা লিখে ফেলেন। যেটা কেউ মাপেনি, সেটাকে মাপা বলে চালিয়ে দেওয়া।
আমার নোটবুকে বৃষ্টির দিনে যা লেখা থাকে তা হলো — কখন বৃষ্টি শুরু, কখন থামল, কত ওভার কাটল, ডিএলএস লক্ষ্য কত হলো, কে কখন আম্পায়ারের সাথে কথা বলল, গ্রাউন্ডস্টাফ কয়জন মাটি ঢাকতে নামল। এগুলো সিনেমাটিক নয়। কিন্তু এগুলো সত্য।
ভরা ঘরের চাপে ফাঁকা ঘরকে ভরে ফেলা — এটাই তথ্য-শৃঙ্খলের সবচেয়ে বড় নৈতিক ঝুঁকি।
রসিদহীন ব্যর্থতা
এখন আসি সেই অংশে, যেখানে ব্লকচেইন প্রযুক্তি প্রাসঙ্গিক হয়ে ওঠে — এবং যেখানে প্রাসঙ্গিকতার কারণটা প্রচলিত ধারণার ঠিক উল্টো।
আজকের সমস্যাটা এই: একটা ফাঁকা পেলোড দুইভাবে তৈরি হতে পারে। হয় সূত্রটা সত্যিই খালি ছিল, নয়তো সিস্টেমটা সূত্রটা পড়তেই পারেনি। এই দুই অবস্থা দেখতে হুবহু এক। দুটোতেই শূন্য তথ্যবিন্দু, দুটোতেই ফাঁকা সত্তা।
অথচ ব্যবস্থাপনার দিক থেকে এই দুটো সম্পূর্ণ আলাদা ঘটনা। প্রথমটায় আপনাকে সূত্র বদলাতে হবে। দ্বিতীয়টায় আপনাকে প্যার্সার সারাতে হবে। ভুলটা না ধরলে আপনি সারাজীবন ভুল জায়গায় মিস্ত্রি ডাকবেন।
এখানেই একটা অ্যাপেন্ড-অনলি লেজার কাজে লাগে। ধারণাটা জটিল নয়। সূত্র থেকে ডকুমেন্ট আনার সময় আপনি একটা ক্রিপ্টোগ্রাফিক হ্যাশ তৈরি করেন, তার সাথে জুড়ে দেন ইউটিসি টাইমস্ট্যাম্প আর প্রকাশকের পরিচয়-চাবি। সেই রসিদটা লেজারে ঢুকে যায়, আর সেটা পরে বদলানো যায় না।
এখন ফলাফলটা দেখুন। যদি পেলোড ফাঁকা আসে কিন্তু বৈধ রসিদ থাকে, তাহলে আপনি নিশ্চিতভাবে জানেন — সূত্রটা সত্যিই খালি ছিল। উল্টোদিকে যদি পেলোড ফাঁকা আসে আর কোনো রসিদ না থাকে, তাহলে আপনি জানেন — সংগ্রহটা ব্যর্থ হয়েছে।
একটা ফাঁকা ফিড আর একটা ব্যর্থ ফিডের মধ্যে পার্থক্য করা যায় না, যদি না রসিদটা কোনো লেজারে থাকে। এই একটা বাক্যেই পুরো প্রযুক্তিগত যুক্তিটা শেষ।
এটা ব্লকচেইনের সবচেয়ে কম যৌন আবেদনময় ব্যবহার, এবং সম্ভবত সবচেয়ে দরকারি। কারণ এটা কোনো নতুন কিছু তৈরি করে না, এটা শুধু প্রমাণ করে কী ঘটেনি।
একই যুক্তি ম্যাচ-ইভেন্টেও খাটে। একটা ওভারের প্রতিটা বল, প্রতিটা ফিল্ড বদল, প্রতিটা ডিআরএস রিভিউ — এগুলোর একটা ক্রমিক, টাইমস্ট্যাম্পযুক্ত রেকর্ড যদি অপরিবর্তনীয় হয়, তাহলে পরে কেউ ম্যাচের ইতিহাস নীরবে সম্পাদনা করতে পারবে না। কেউ 'ওই ওভারে আসলে বাউন্ডারি ছিল না' বলে দিতে পারবে না, যদি না সে নতুন একটা ব্লক যোগ করে আর সেটা সবার কাছে দৃশ্যমান হয়।
আমি ঢাকায় তাল ধরে রেখেছিলাম, রাশিয়ায় ছিলাম — সেই চৌষট্টি ম্যাচের ডায়েরিতে প্রতিটা বিতর্কিত পেনাল্টির পাশে ফিফার রিপোর্টের তারিখ লিখে রেখেছি। সেটা এক ধরনের কাগজের লেজার। ব্লকচেইন সেটারই যান্ত্রিক সংস্করণ, যেখানে প্রতিটা সংযোজন প্রকাশ্য আর প্রতিটা পরিবর্তন চিহ্নিত।
মিরপুরের নজির ও তারিখের শাসন
আমার সবচেয়ে বড় পেশাগত দুর্বলতা হলো নজিরের প্রতি আনুগত্য। আইএসটিজে-র স্মৃতি পুরোনো ধরনকে পুরস্কৃত করে, নতুনত্বকে শাস্তি দেয়। ফলে 'মিরপুরে সবসময় ধীর খেলা হয়' — এই বাক্যটা লিখতে আমার হাত কাঁপে না। অথচ এটা একটা তারিখহীন দাবি।
একটা অ্যাপেন্ড-অনলি লেজার এই অভ্যাসটা সংশোধন করে দেয়, কারণ সেখানে প্রতিটা পিচ রিপোর্ট তার তারিখসহ জমা থাকে। আপনি বলতে পারবেন, গত বছর এই সময়ে মিরপুরের পিচ কেমন ছিল। আপনি পার্থক্য দেখতে পাবেন — কোন বছর স্পিনাররা সুবিধা পেয়েছেন, কোন বছর সিমাররা নতুন বলে সুইং পেয়েছেন, কোন বছর প্রথম দিনেই ব্যাটসম্যানরা রাজত্ব করেছেন।
নজির তখন আর বিশ্বাসের বিষয় থাকে না, হয়ে যায় যাচাইয়ের বিষয়। সাংবাদিকতায় এটা বড় পরিবর্তন। কারণ আমাদের পেশার সবচেয়ে দুর্বল বাক্যগুলো প্রায়ই শুরু হয় 'ঐতিহ্যগতভাবে' দিয়ে।
এই একই নিয়ম ভ্রমণের ক্ষেত্রেও খাটে। আমি বাংলাদেশের কন্ডিশন বিদেশে নিয়ে গেছি আর ফিরিয়ে এনেছি — রাশিয়ার ঠান্ডা, মরক্কোর গরম আর ধুলা। কোন ছন্দ বহনযোগ্য আর কোনটা কেবল স্থানীয়, সেটা জানতে হলে চলকটার নাম বলতে হয়। শুধু 'মরক্কো' লিখে দিলে সেটা বিশ্লেষণ হয় না, রঙিন টীকা হয়।
তাপমাত্রা কত ছিল, বল কতটা উঁচুতে উঠছিল, দর্শক কত দূরে বসে ছিল — এই তিনটার যেকোনোটা নামিয়ে বলতে হবে। নইলে অভিজ্ঞতা জানানো হয় না, শুধু সাজানো হয়।
নীরবতা একটা চলক
ফিরে আসি মোহামেডানের সেই আঠারো ম্যাচে। শূন্য দর্শক। শূন্য ডেসিবল। প্রথমে মনে হয়েছিল কিছু নেই। তারপর বুঝলাম, নীরবতা নিজেই একটা পরিমাপযোগ্য অবস্থা।
ফাঁকা স্টেডিয়ামে আম্পায়ারের প্রতিটা ডাক শোনা যায়। ফলে খেলোয়াড়রা ভিন্নভাবে প্রতিক্রিয়া জানায়। ফিল্ডাররা একে অন্যের সাথে কথা বলতে পারে, যেটা ভিড়ের শব্দে অসম্ভব। বাউন্ডারি লাইনের পাশে দাঁড়ানো ফিল্ডারের সাথে ব্যাটসম্যানের কথোপকথন পর্যন্ত শোনা যায়।
এই সবই তথ্য। কিন্তু শুধু তখনই, যদি আপনি সেগুলো লিখে রাখেন।
একইভাবে ফাঁকা পেলোডের মধ্যে যা ঘটছে, তা লিখে রাখা দরকার। কোন ফেচ ব্যর্থ হলো, কোন সময়ে, কোন ইউআরএল-এ, কী এরর কোড ফিরল, কোন এনকোডিং পাওয়া গেল। এই বিবরণগুলোই পরের বার সমস্যাটা ধরতে সাহায্য করবে।
আমার নোটবুকে ডেড টাইমে যা থাকে — ফিল্ড বদল, বোলারের বুটের ফিতা বাঁধা, আম্পায়ারের সাথে কথাবার্তা, স্কোরবোর্ডে চোখ। এগুলো তালিকার জন্য নয়, প্রবৃত্তির জন্য। কারণ যে মুহূর্তে খেলা ধীর হয়, ঠিক সেই মুহূর্তেই ম্যাচের প্রকৃত ছন্দ সম্পর্কে সবচেয়ে বেশি তথ্য তৈরি হয়।
তাল মানে শব্দ নয়; তাল হলো দুই পাসের মধ্যবর্তী ব্যবধান। এই বাক্যটা আমার কাছে শুধু রূপক নয়, কাজের নিয়ম।
মরক্কোর পাঠ
মরক্কোর সাতটা ম্যাচ থেকে আমি একটা অভ্যাস রপ্ত করেছি, যেটা এই ফাঁকা পেলোডের ক্ষেত্রে সরাসরি প্রযোজ্য।
ওদের তিনটা ক্লিন শিট দেখে প্রথম দুই ম্যাচেই অনেকে 'প্রতিরক্ষার বিপ্লব' ঘোষণা করে দিয়েছিলেন। আমি অপেক্ষা করেছিলাম। আমরাবাতের বাষট্টিটা বল রিকভারি সাত ম্যাচের যোগফল — এক ম্যাচের ঝলক নয়। ওদের ৪-১-৪-১ ব্লক প্রতিপক্ষকে চওড়ায় ঠেলে দিচ্ছিল, কিন্তু সেই ধাঁচ পাঁচ ম্যাচ টিকে থাকার পরেই আমি সেটাকে কাঠামোগত প্রবণতা বলেছি।
একটা ধাঁচ তখনই প্রবণতা হয়, যখন সেটা পরপর কয়েকটা ম্যাচে একইভাবে পুনরাবৃত্ত হয় — এবং প্রতিটা পুনরাবৃত্তির একটা তারিখ থাকে।
ফাঁকা পেলোডের ক্ষেত্রেও একই ধৈর্য দরকার। একটা খালি ফাইল দেখে 'পাইপলাইন ভেঙে গেছে' বলে দেওয়া ঠিক হবে না। প্রথমে দেখতে হবে, এটা একবারের ঘটনা নাকি পুনরাবৃত্ত। পরের বার একই সূত্র থেকে সফলভাবে তথ্য এলে বুঝব এটা ক্ষণস্থায়ী ফেচ ব্যর্থতা ছিল। বারবার একই ফল এলে বুঝব সমস্যা কাঠামোগত।
লেজার এখানে ধৈর্যকে বাধ্যতামূলক করে তোলে। কারণ প্রতিটা ব্যর্থতার রেকর্ড সেখানে থেকে যায়। আপনি পরে ফিরে গিয়ে দেখতে পারবেন, এই সূত্র থেকে কতবার ফাঁকা পেলোড এসেছে, আর কোন তারিখে প্রথম এসেছে।
এই জায়গায় একটা মানবিক বিবরণ জুড়ে দিই, কারণ পুরো লেখাটা কেবল সংখ্যার হয়ে গেলে সত্যিটা অসম্পূর্ণ থেকে যায়। ২০২০ সালে ফাঁকা স্টেডিয়ামে একটা ম্যাচের মাঝপথে দেখলাম এক ব্যাটসম্যান ক্রিজ ছেড়ে গিয়ে গার্ড নিচ্ছেন — অথচ বোলার তখনো বল করতে আসেননি। তিনি কেবল অপেক্ষা করছিলেন, আর ওই অপেক্ষার ভেতরে নিজের ছন্দটা ঠিক করে নিচ্ছিলেন। ওই একটা দৃশ্য আমার কাছে ওই পুরো টুর্নামেন্টের সবচেয়ে সৎ ছবি। কোনো পরিসংখ্যানে সেটা নেই।
বিপরীতমুখী কোণ: ব্লকচেইন মানে টোকেন নয়
ক্রিকেটে ব্লকচেইন শব্দটা শুনলে এখনো মানুষের মাথায় আসে ফ্যান টোকেন, এনএফটি টিকিট, ডিজিটাল সংগ্রহযোগ্য কার্ড, নিলামে ক্রিপ্টো-বিডিং। এসবের কোনো একটাই আমার আলোচনার বিষয় নয়।
আমার যুক্তি হলো, খেলাধুলার তথ্য-অর্থনীতিতে সবচেয়ে দুর্লভ জিনিসটা উপস্থিতির প্রমাণ নয়, অনুপস্থিতির প্রমাণ। কেউ টিকিট বিক্রি করতে পারে, কিন্তু কেউ প্রমাণ করতে পারে না যে একটা সূত্র আসলে খালি ছিল।
এখানেই বাজারের পাঠ ভুল হচ্ছে। বাজার ভাবে নতুন তথ্য যোগ করলেই সমস্যা মিটবে। ভুল। আরও ডেটা যোগ করলে আরও ফাঁকা ঘর তৈরি হবে, আরও নীরব ব্যর্থতার সুযোগ তৈরি হবে।
সমাধানটা অনেক সস্তা এবং অনেক কম আকর্ষণীয়। একটা ন্যূনতম-বিষয়বস্তু গেট। নিয়মটা সহজ — তথ্যবিন্দুর তালিকা ফাঁকা হলে, শিরোনাম N/A হলে, অথবা ধরন Unclassified হলে, পেলোড পরের ধাপে যাবে না। বরং মূল এররটা সামনে তুলে আনা হবে।
একটা মডেল প্রশিক্ষণের চেয়ে একটা গেট অনেক সস্তা। অথচ শিল্পে আমরা প্রায়ই গেটের আগে মডেল নিয়ে ভাবি।
দ্বিতীয় বিপরীতমুখী পর্যবেক্ষণটা তথ্য-মডেল আর ড্রেসিংরুম-রসায়ন নিয়ে। আমার দীর্ঘদিনের অবস্থান হলো, ট্রান্সফার-মার্কেটের ডেটা মডেল তরুণ সম্ভাবনাকে অতিরিক্ত মূল্য দেয় আর ড্রেসিংরুমের রসায়নকে অবমূল্যায়ন করে।
কারণটা কাঠামোগত। একটা উনিশ বছরের খেলোয়াড়ের আপসাইড মাপা যায় — গড়, স্ট্রাইক রেট, বয়স-বক্ররেখা। কিন্তু তিন মাসের বিলম্বিত বেতন মাপা যায় না, কারণ সেটা কোনো ফিল্ডে বসানো হয় না। অথচ ওই বিলম্বই বলে দেয় ড্রেসিংরুমের প্রকৃত অবস্থা।
মোহামেডানের সেই আঠারো ম্যাচে আমি ঠিক এই জিনিসটা দেখেছি। মাঠে যা দেখা যাচ্ছিল তা এক গল্প, আর পেমেন্ট শিডিউলে যা লেখা ছিল তা আরেক গল্প। ডেটা মডেল প্রথমটাই দেখে, কারণ প্রথমটার ফরম্যাট পরিষ্কার।
এই একই যুক্তি ফাঁকা পেলোডেও খাটে। সিস্টেম যা মাপতে পারে তার রিপোর্ট দেয়, যা মাপতে পারে না তার জায়গা ফাঁকা রাখে। আর ফাঁকা জায়গাটা পরে পড়া হয় শূন্য হিসেবে, অনুপস্থিত হিসেবে নয়।
এখানেই আমার সবচেয়ে বড় আপত্তিটা। কোনো ব্যবস্থা যদি বলতে না পারে 'আমি জানি না', তাহলে সে যা বলবে তার ওপর ভরসা করা যায় না।
সামনের দিক: কী দেখবেন
তিনটা সংকেত আমি নজরে রাখছি।
প্রথমত, পুনরায় সংগ্রহের ফলাফল। সূত্রটা আবার আনা গেলে যদি তথ্যবিন্দুর তালিকা ভরে যায় আর শিরোনাম বসে, তাহলে বুঝব সমস্যাটা ক্ষণস্থায়ী ছিল। তখন পুরো বিশ্লেষণ সম্ভব হবে।
দ্বিতীয়ত, শ্রেণীবিন্যাসের সামঞ্জস্য। cricket_world আর Cricket — এই দুই লেবেলের ফারাক যদি অন্য সূত্রেও দেখা যায়, তাহলে বুঝব সমস্যা কেবল এই ফাইলে নয়, ম্যাপিং স্তরে।
তৃতীয়ত, ডাউনস্ট্রিম দূষণ। এই রিপোর্টটা যদি কোনো 'অসম্পূর্ণ' চিহ্ন ছাড়া সামনে চলে যায়, তাহলে যে কেউ সেটা পড়ে ভাবতে পারে ঝুঁকি নেই। সেটাই সবচেয়ে বিপজ্জনক পরিণতি।
আমার প্রশ্নটা সহজ। একটা ফিড যদি নীরব হয়ে যায়, আর কোনো রসিদ যদি না বলে কেন নীরব হলো — তাহলে সেটা লক্ষ্য করার দায়িত্ব কার?
স্কোরার বলেন, আমার কাজ লেখা, ব্যাখ্যা করা নয়। ফিড-ইঞ্জিনিয়ার বলেন, আমার কাজ পাঠানো, যাচাই করা নয়। সম্পাদক বলেন, আমার কাজ প্রকাশ করা, তদন্ত করা নয়। ফলে কেউ লক্ষ্য করেন না। আর অলক্ষিত নীরবতাই ধীরে ধীরে রেকর্ড হয়ে বসে যায়।
আমি আমার নোটবুকে আজকের তারিখটা লিখে রাখছি, সাথে লিখে রাখছি ফাইলটার নয়টা ফাঁকা ঘর। পরের বার যখন একই ধরনের ফাইল খুলব, তখন মিলিয়ে দেখব — এটা একই ব্যর্থতা, নাকি নতুন কিছু।
কারণ ক্রিকেটে যেমন প্রতিটা ওভারের একটা সময় থাকে, তথ্য-শৃঙ্খলেও তেমনি প্রতিটা ব্যর্থতার একটা সময় থাকা উচিত।
আর যে ব্যবস্থা নিজের ব্যর্থতার সময়টা লিখে রাখতে পারে না, তার কাছে কোনোদিন জানতে চাওয়া উচিত নয় — ম্যাচটা আসলে কেমন ছিল।
