একজন ডেভেলপার একটি বিনামূল্যে ব্যবহারযোগ্য এবং অনুসন্ধানযোগ্য ইনডেক্স প্রকাশ করেছেন যা বিশ্বের প্রতিটি সমুদ্রবন্দর এবং বিমানবন্দরের তালিকা প্রদান করে—৩,৮০৪টি বন্দর এবং ৯,৬৪০টি বিমানবন্দর—যার জন্য কোনো সাইন-আপ বা পেমেন্টের প্রয়োজন নেই। theportindex.online সাইটটি ব্যবহারকারীদের ডেটা ব্রাউজ করতে বা CSV বা JSON ফরম্যাটে সম্পূর্ণ ডেটাসেট ডাউনলোড করতে দেয়।

কেন এই ইনডেক্সটি প্রয়োজন ছিল

নির্মাতা বিশ্বের সমুদ্রবন্দরগুলোর একটি পরিচ্ছন্ন এবং হালনাগাদ তালিকা খোঁজার চেষ্টা করেছিলেন এবং একটি বাধার সম্মুখীন হন: বেশিরভাগ বাণিজ্যিক অফারগুলো পে-ওয়াল (paywall)-এর পেছনে থাকে এবং জনসমক্ষে উপলব্ধ তালিকাগুলো প্রায়শই বছরের পর বছর পুরনো হয়ে যায়। অসম্পূর্ণ বা পুরনো ডেটার ওপর নির্ভর করার ফলে বিশ্লেষকদের স্প্রেডশিট পরিষ্কার করতে ঘণ্টার পর ঘণ্টা সময় নষ্ট করতে হয়, যা পুরো শিল্পে একটি বড় খরচ হিসেবে জমা হয়। তিনটি পাবলিক সোর্স—একটি মার্কিন সরকারি বন্দর ইনডেক্স, একটি আন্তর্জাতিক লোকেশন কোড ডিরেক্টরি এবং একটি ক্রাউডসোর্সড বিমানবন্দর ডেটাবেস—একত্রিত করে ডেভেলপার একটি একক, সমন্বিত রেফারেন্স তৈরি করেছেন যা যে কেউ তাৎক্ষণিকভাবে ব্যবহার করতে পারে।

পর্দার আড়ালে থাকা ডেটা সোর্সসমূহ

  • NGA World Port Index – একটি মার্কিন সরকারি সংকলন যা প্রতিটি স্বীকৃত সমুদ্রবন্দরের মৌলিক বিবরণ প্রদান করে।
  • UN/LOCODE – জাতিসংঘের লোকেশন কোড সিস্টেম, যা বন্দর এবং বিমানবন্দরের জন্য মানসম্মত আইডেন্টিফায়ার যোগ করে।
  • OurAirports – একটি কমিউনিটি-পরিচালিত বিমানবন্দর তথ্যের সংগ্রহ, যার মধ্যে রানওয়ের দৈর্ঘ্য এবং স্থানাঙ্ক (coordinates) অন্তর্ভুক্ত রয়েছে।

প্রতিটি সোর্স ছবির একটি ভিন্ন অংশ প্রদান করে, কিন্তু কোনোটিই এককভাবে ব্যবহারের উপযোগী, অনুসন্ধানযোগ্য ক্যাটালগ প্রদান করে না। এগুলোকে মার্জ (merge) করার জন্য কেবল কপি-পেস্ট যথেষ্ট ছিল না; ডেভেলপারকে অসামঞ্জস্যতা, ডুপ্লিকেট এন্ট্রি এবং অনুপস্থিত ফিল্ডগুলো সমাধান করতে হয়েছিল।

ডেটা ক্লিনিং: তিনটি কঠিন শিক্ষা

  1. এম্বেডেড নিউলাইন (newlines) সাধারণ পার্সারকে নষ্ট করে দেয় – CSV ফাইলগুলোতে উদ্ধৃত ফিল্ডের (quoted fields) ভেতরে লাইন ব্রেক থাকলে সেগুলোকে সাধারণ “split on newline” কমান্ড দিয়ে আলাদা করা যায় না। রো (row) গুলো অক্ষত রাখতে একটি সঠিক CSV পার্সার অপরিহার্য।
  2. আউটলায়ার (Outlier) মান ভুল লুকিয়ে রাখে – কিছু তেল টার্মিনালে ৯০০ মিটারের গভীরতা তালিকাভুক্ত করা হয়েছিল, যা আসলে নোঙর করার বুয়ের (mooring buoys) জন্য প্রযোজ্য, বন্দরের জন্য নয়। গভীরতা-ভিত্তিক র‍্যাঙ্কিং বিশ্বাসযোগ্য রাখতে অবাস্তব সংখ্যাগুলো ফিল্টার করা প্রয়োজন ছিল।
  3. শূন্য (Zero) প্রায়শই প্লেসহোল্ডার হিসেবে ব্যবহৃত হয় – শূন্য হিসেবে রেকর্ড করা গভীরতা সাধারণত নির্দেশ করে যে পরিমাপটি অজানা, এর মানে এই নয় যে পানি সমতল। শূন্যকে অনুপস্থিত ডেটা হিসেবে বিবেচনা করা গভীরতার ওপর নির্ভরশীল যেকোনো বিশ্লেষণের সততা বজায় রাখে।

কাঁচা সংখ্যার বাইরে অতিরিক্ত ভ্যালু যোগ করা

এই ইনডেক্সটি কেবল স্থানাঙ্ক তালিকাভুক্ত করার চেয়েও বেশি কিছু করে। বন্দরের ক্ষেত্রে, এটি গভীরতাকে সেই সব জাহাজের ক্লাসে রূপান্তর করে যা নিরাপদে নোঙর করতে পারে, যা একটি একক মেট্রিককে একটি ব্যবহারিক সিদ্ধান্ত সহায়ক হিসেবে বদলে দেয়। বিমানবন্দরের ক্ষেত্রে, রানওয়ের দৈর্ঘ্যকে সেই সব বিমানের ধরণের সাথে ম্যাপ করা হয়েছে যা সেখানে চলাচল করতে পারে, যা পাইলট এবং পরিকল্পনাকারীদের সক্ষমতা সম্পর্কে এক পলকে ধারণা দেয়।

একটি স্পেশাল গ্রিড (spatial grid) প্রতিটি বন্দরকে তার নিকটতম বিমানবন্দরের সাথে এবং এর বিপরীতে সংযুক্ত করে, যা সাইটটিকে একটি অনুসন্ধানমূলক টুলে পরিণত করে। ব্যবহারকারীরা উদাহরণস্বরূপ দেখতে পারেন কোন বিমানবন্দরগুলো একটি নির্দিষ্ট বন্দরের কাছাকাছি ড্রাইভে অবস্থিত—যা মাল্টিমোডাল ফ্রেইট প্ল্যানিংয়ের জন্য একটি দরকারী ফিচার।

বৃহৎ পরিসরে একটি স্ট্যাটিক-সাইট ইঞ্জিন তৈরি করা

সম্পূর্ণ ফ্রন্ট এন্ড Next.js-এর স্ট্যাটিক জেনারেশনের মাধ্যমে চলে। বিল্ড প্রসেসের সময়, প্রায় ১৪,০০০টি পেজ—প্রতিটি বন্দর এবং বিমানবন্দরের জন্য একটি করে—প্রি-রেন্ডার করা হয়। যেহেতু কোনো ডেটাবেস বা সার্ভার-সাইড লজিক নেই, তাই সাইটটির কোনো চলমান কম্পিউট খরচ নেই; এটি একটি কন্টেন্ট-ডেলিভারি নেটওয়ার্ক (CDN)-এ থাকে যা বিশ্বজুড়ে তাৎক্ষণিকভাবে পেজ সরবরাহ করে।

SEO-এর ফাঁদ এবং 'থিন-কনটেন্ট' সমাধানের উপায়

হাজার হাজার টেমপ্লেটেড পেজ আপলোড করলে সার্চ ইঞ্জিনগুলোর কাছে এটি সন্দেহজনক মনে হতে পারে, যা সাইটটিকে “thin content” হিসেবে গণ্য করে র‍্যাঙ্কিং কমিয়ে দিতে পারে। ডেভেলপার এই সমস্যার সম্মুখীন হয়েছিলেন যখন একটি AdSense আবেদন প্রত্যাখ্যান করা হয়েছিল। এর প্রতিকার ছিল ভিজিটরদের জন্য সমস্ত পেজ লাইভ রাখা কিন্তু প্রতিটি ক্যাটাগরির শীর্ষ ৪০০টি উচ্চ-মানের পেজ বাদে বাকি সবগুলোতে একটি noindex নির্দেশিকা যোগ করা। এটি ক্রলারদের বলে দেয় যে শুধুমাত্র সবচেয়ে মূল্যবান পেজগুলোই সার্চ রেজাল্টে দেখানো উচিত, যা পূর্ণাঙ্গ ডেটাসেট প্রদান করার পাশাপাশি নির্ভরযোগ্যতা বজায় রাখে।

কারা উপকৃত হবেন এবং এর সীমাবদ্ধতা কী

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

প্রকল্পের পরবর্তী পদক্ষেপ

নির্মাতা অতিরিক্ত ফিচারের জন্য কমিউনিটির মতামত চেয়েছেন।

সারসংক্ষেপ

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