ഒരു ഡെവലപ്പർ ലോകത്തിലെ എല്ലാ കടൽ തുറമുഖങ്ങളും വിമാനത്താവളങ്ങളും (3,804 തുറമുഖങ്ങളും 9,640 വിമാനത്താവളങ്ങളും) ഉൾക്കൊള്ളുന്ന, രജിസ്ട്രേഷൻ ആവശ്യമില്ലാത്തതും പണമടയ്ക്കേണ്ടതില്ലാത്തതുമായ സൗജന്യവും സെർച്ച് ചെയ്യാവുന്നതുമായ ഒരു ഇൻഡക്സ് പുറത്തിറക്കി. theportindex.online എന്ന വെബ്സൈറ്റിലൂടെ ഉപയോക്താക്കൾക്ക് ഡാറ്റ പരിശോധിക്കാനോ CSV അല്ലെങ്കിൽ JSON ഫോർമാറ്റിൽ ഡാറ്റാസെറ്റ് ഡൗൺലോഡ് ചെയ്യാനോ സാധിക്കും.
എന്തുകൊണ്ടാണ് ഈ ഇൻഡക്സ് ആവശ്യമായി വന്നത്
ലോകത്തിലെ കടൽ തുറമുഖങ്ങളുടെ കൃത്യവും പുതുക്കിയതുമായ ഒരു പട്ടിക കണ്ടെത്താൻ ശ്രമിച്ചപ്പോൾ സ്രഷ്ടാവ് വലിയൊരു പ്രതിസന്ധി നേരിട്ടു: മിക്ക വാണിജ്യ സേവനങ്ങളും പണം നൽകിയാൽ മാത്രം ലഭ്യമാകുന്നവയാണ് (paywalls), പരസ്യമായി ലഭ്യമായ പട്ടികകൾ പലപ്പോഴും വർഷങ്ങൾ പഴക്കമുള്ളവയുമാണ്. അപൂർണ്ണമോ കാലഹരണപ്പെട്ടതോ ആയ ഡാറ്റയെ ആശ്രയിക്കുന്നത് വിശകലന വിദഗ്ധർക്ക് സ്പ്രെഡ്ഷീറ്റുകൾ വൃത്തിയാക്കാൻ മണിക്കൂറുകൾ പാഴാക്കാൻ ഇടയാക്കുന്നു, ഇത് വ്യവസായ മേഖലയിൽ വലിയ സാമ്പത്തിക നഷ്ടമുണ്ടാക്കുന്നു. ഒരു യുഎസ് ഗവൺമെന്റ് പോർട്ട് ഇൻഡക്സ്, ഒരു അന്താരാഷ്ട്ര ലൊക്കേഷൻ കോഡ് ഡയറക്ടറി, ഒരു ക്രോസ്സോഴ്സ്ഡ് (crowdsourced) എയർപോർട്ട് ഡാറ്റാബേസ് എന്നിങ്ങനെ മൂന്ന് പൊതു സ്രോതസ്സുകൾ ഒന്നിപ്പിച്ചുകൊണ്ട്, ആർക്കും ഉടനടി ഉപയോഗിക്കാവുന്ന ഒരു ഏകീകൃത റഫറൻസ് ഡെവലപ്പർ തയ്യാറാക്കി.
അണിയറയിലെ ഡാറ്റാ സ്രോതസ്സുകൾ
- NGA World Port Index – അംഗീകരിക്കപ്പെട്ട ഓരോ കടൽ തുറമുഖത്തിനും അടിസ്ഥാന വിവരങ്ങൾ നൽകുന്ന യുഎസ് ഗവൺമെന്റ് ശേഖരം.
- UN/LOCODE – തുറമുഖങ്ങൾക്കും വിമാനത്താവളങ്ങൾക്കുമായി സ്റ്റാൻഡേർഡ് ഐഡന്റിഫയറുകൾ നൽകുന്ന ഐക്യരാഷ്ട്രസഭയുടെ (United Nations) ലൊക്കേഷൻ കോഡ് സംവിധാനം.
- OurAirports – റൺവേ നീളം, കോർഡിനേറ്റുകൾ എന്നിവയുൾപ്പെടെയുള്ള വിമാനത്താവള വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന കമ്മ്യൂണിറ്റി നിയന്ത്രിക്കുന്ന ശേഖരം.
ഓരോ സ്രോതസ്സും വിവരങ്ങളുടെ വ്യത്യസ്ത ഭാഗങ്ങൾ നൽകുന്നുണ്ടെങ്കിലും, അവയിൽ ഒന്നുമാത്രം ഉപയോഗിച്ച് സെർച്ച് ചെയ്യാവുന്ന ഒരു കാറ്റലോഗ് തയ്യാറാക്കാൻ കഴിയില്ല. ഇവ ഒന്നിപ്പിക്കാൻ വെറുമൊരു കോപ്പി-പേസ്റ്റ് മാത്രം പോരായിരുന്നു; ഡാറ്റയിലെ വൈരുദ്ധ്യങ്ങൾ, ഡ്യൂപ്ലിക്കേറ്റ് എൻട്രികൾ, വിട്ടുപോയ വിവരങ്ങൾ എന്നിവ പരിഹരിക്കേണ്ടി വന്നു.
ഡാറ്റ ക്ലീൻ ചെയ്തപ്പോൾ പഠിച്ച മൂന്ന് പാഠങ്ങൾ
- എൻബെഡഡ് ന്യൂലൈനുകൾ (Embedded newlines) പാഴ്സറുകളെ തകരാറിലാക്കുന്നു – കോട്ടേഷൻ ഉള്ള ഫീൽഡുകൾക്കുള്ളിൽ ലൈൻ ബ്രേക്കുകൾ അടങ്ങിയ CSV ഫയലുകളെ ഒരു സാധാരണ “split on newline” കമാൻഡ് ഉപയോഗിച്ച് വേർതിരിക്കാൻ കഴിയില്ല. വരികൾ കൃത്യമായി നിലനിർത്താൻ ഒരു ശരിയായ CSV parser അത്യാവശ്യമാണ്.
- ഔട്ട്ലയർ മൂല്യങ്ങൾ (Outlier values) തെറ്റുകൾ മറച്ചുവെക്കുന്നു – ചില ഓയിൽ ടെർമിനലുകളിൽ 900 മീറ്റർ ആഴം രേഖപ്പെടുത്തിയിട്ടുണ്ട്, ഇത് തുറമുഖങ്ങളുടേതല്ല മറിച്ച് ബോയികളുടെ (mooring buoys) ആഴമാണ്. ആഴത്തെ അടിസ്ഥാനമാക്കിയുള്ള റാങ്കിംഗുകൾ വിശ്വസനീയമാക്കാൻ അപ്രായോഗികമായ സംഖ്യകൾ ഒഴിവാക്കേണ്ടത് ആവശ്യമായിരുന്നു.
- സീറോകൾ പലപ്പോഴും പ്ലേസ്ഹോൾഡറുകളാണ് – ആഴം പൂജ്യം എന്ന് രേഖപ്പെടുത്തിയിട്ടുണ്ടെങ്കിൽ, അതിന്റെ അർത്ഥം ആഴം അറിയാമെന്നല്ല, മറിച്ച് ആ വിവരം ലഭ്യമല്ല എന്നാണ്. ആഴത്തെ അടിസ്ഥാനമാക്കിയുള്ള വിശകലനങ്ങളുടെ കൃത്യത നിലനിർത്താൻ പൂജ്യത്തെ 'വിവരമില്ലാത്ത ഡാറ്റ' (missing data) ആയി പരിഗണിക്കേണ്ടതുണ്ട്.
വെറും അക്കങ്ങൾക്കപ്പുറം മൂല്യം കൂട്ടിച്ചേർക്കുന്നു
ഈ ഇൻഡക്സ് വെറും കോർഡിനേറ്റുകൾ നൽകുന്നതിനപ്പുറം പ്രവർത്തിക്കുന്നു. തുറമുഖങ്ങളുടെ കാര്യത്തിൽ, ഇത് ആഴത്തെ (depth) ആ തുറമുഖത്ത് സുരക്ഷിതമായി അടുക്കണമെങ്കിൽ ഉപയോഗിക്കാവുന്ന കപ്പലുകളുടെ വിഭാഗങ്ങളുമായി (classes of vessels) ബന്ധിപ്പിക്കുന്നു, ഇത് ഒരു പ്രായോഗിക തീരുമാന സഹായിയായി മാറുന്നു. വിമാനത്താവളങ്ങളുടെ കാര്യത്തിൽ, റൺവേ നീളത്തെ അവിടെ പ്രവർത്തിപ്പിക്കാൻ കഴിയുന്ന വിമാനങ്ങളുടെ തരങ്ങളുമായി ബന്ധിപ്പിക്കുന്നു, ഇത് പൈലറ്റുമാർക്കും പ്ലാനർമാർക്കും പെട്ടെന്ന് വിവരങ്ങൾ മനസ്സിലാക്കാൻ സഹായിക്കുന്നു.
ഒരു സ്പേഷ്യൽ ഗ്രിഡ് (spatial grid) ഓരോ തുറമുഖത്തെയും അടുത്തുള്ള വിമാനത്താവളങ്ങളുമായി ബന്ധിപ്പിക്കുന്നു, ഇത് വെബ്സൈറ്റിനെ ഒരു എക്സ്പ്ലോറേഷൻ ടൂളാക്കി മാറ്റുന്നു. ഉദാഹരണത്തിന്, ഒരു തുറമുഖത്ത് നിന്ന് കുറഞ്ഞ ദൂരപരിധിക്കുള്ളിൽ ഏതൊക്കെ വിമാനത്താവളങ്ങളുണ്ട് എന്ന് ഉപയോക്താക്കൾക്ക് കണ്ടെത്താം—മൾട്ടിമോഡൽ ഫ്രൈറ്റ് പ്ലാനിംഗിന് (multimodal freight planning) ഇത് വളരെ ഉപകാരപ്രദമാണ്.
വലിയ തോതിലുള്ള ഒരു സ്റ്റാറ്റിക്-സൈറ്റ് എഞ്ചിൻ നിർമ്മിക്കുന്നു
മുഴുവൻ ഫ്രണ്ട് എൻഡും സ്റ്റാറ്റിക് ജനറേഷനോടു കൂടിയ Next.js ഉപയോഗിച്ചാണ് പ്രവർത്തിക്കുന്നത്. ബിൽഡ് പ്രക്രിയയിൽ, ഓരോ തുറമുഖത്തിനും വിമാനത്താവളത്തിനും ഓരോന്നായി ഏകദേശം 14,000 പേജുകൾ പ്രീ-റെൻഡർ ചെയ്യപ്പെടുന്നു. ഡാറ്റാബേസോ സെർവർ സൈഡ് ലോജിക്കോ ഇല്ലാത്തതിനാൽ, സൈറ്റിന് തുടർച്ചയായ കമ്പ്യൂട്ട് ചിലവുകൾ വരുന്നില്ല; ഇത് ലോകമെമ്പാടും പേജുകൾ ഉടനടി ലഭ്യമാക്കുന്ന ഒരു കണ്ടന്റ് ഡെലിവറി നെറ്റ്വർക്കിൽ (CDN) പ്രവർത്തിക്കുന്നു.
SEO വെല്ലുവിളികളും 'thin-content' പ്രശ്നത്തിനുള്ള പരിഹാരവും
ആയിരക്കണക്കിന് ടെംപ്ലേറ്റ് പേജുകൾ അപ്ലോഡ് ചെയ്യുന്നത് സെർച്ച് എഞ്ചിനുകളിൽ പ്രശ്നമുണ്ടാക്കാം, അവ സൈറ്റിനെ “thin content” ആയി കണക്കാക്കി റാങ്കിംഗിൽ കുറവ് വരുത്തിയേക്കാം. ഒരു AdSense അപേക്ഷ നിരസിക്കപ്പെട്ടപ്പോൾ ഡെവലപ്പർ ഈ പ്രശ്നം നേരിട്ടു. ഇതിനുള്ള പരിഹാരം, എല്ലാ പേജുകളും സന്ദർശകർക്കായി ലഭ്യമാക്കിക്കൊണ്ട് തന്നെ, ഓരോ വിഭാഗത്തിലെയും ഏറ്റവും മികച്ച 400 പേജുകളിലൊഴികെയുള്ള മറ്റെല്ലാ പേജുകളിലും noindex ഡയറക്റ്റീവ് ചേർക്കുക എന്നതായിരുന്നു. ഏറ്റവും മൂല്യമുള്ള പേജുകൾ മാത്രം സെർച്ച് റിസൾട്ടുകളിൽ വരണമെന്ന് ഇത് ക്രോളറുകളെ അറിയിക്കുന്നു, അതുവഴി മുഴുവൻ ഡാറ്റാസെറ്റും ലഭ്യമാക്കുമ്പോഴും സൈറ്റിന്റെ വിശ്വാസ്യത നിലനിർത്തുന്നു.
ആർക്കൊക്കെ പ്രയോജനം ലഭിക്കും, പരിമിതികൾ എന്തൊക്കെയാണ്
- ലോജിസ്റ്റിക്സ് കമ്പനികൾക്ക് പല പിഡിഎഫുകളും പരിശോധിക്കാതെ തന്നെ ഒരു കാർഗോ കപ്പലിന് തുറമുഖത്തിന്റെ ആഴപരിധിയിൽ പ്രവേശിക്കാൻ കഴിയുമോ എന്ന് വേഗത്തിൽ പരിശോധിക്കാം.
- എയർലൈൻ പ്ലാനർമാർക്ക് റൺവേയും വിമാനങ്ങളും തമ്മിലുള്ള ബന്ധം ഉടനടി അറിയാൻ സാധിക്കുന്നു, ഇത് റൂട്ട് ഫീസിബിലിറ്റി പഠനങ്ങൾക്ക് (route feasibility studies) ഉപകരിക്കുന്നു.
- ഡെവലപ്പർമാർക്കും ഗവേഷകർക്കും കസ്റ്റം ടൂളുകളിലേക്ക് നേരിട്ട് ഉപയോഗിക്കാൻ കഴിയുന്ന വൃത്തിയുള്ളതും മെഷീൻ റീഡബിളായതുമായ (machine-readable) ഡാറ്റ ലഭിക്കുന്നു.
ഈ പ്രോജക്റ്റിന്റെ അടുത്ത ഘട്ടം
കൂടുതൽ ഫീച്ചറുകൾക്കായി സ്രഷ്ടാവ് കമ്മ്യൂണിറ്റിയുടെ അഭിപ്രായങ്ങൾ തേടുന്നു.
ചുരുക്കത്തിൽ
ഡാറ്റാ ക്ലീനിംഗിലെ ബുദ്ധിമുട്ടുകൾ പരിഹരിക്കുന്നതിലൂടെയും, ഇൻഫറൻസ് ലെയറുകൾ ചേർക്കുന്നതിലൂടെയും, സ്റ്റാറ്റിക് ജനറേഷൻ ഉപയോഗിച്ച് സെർവർ ചെലവുകൾ ഒഴിവാക്കുന്നതിലൂടെയും, ഒരു ലീൻ ആർക്കിടെക്ചറിന് (lean architecture) ആഗോളതലത്തിൽ ഉപയോഗപ്രദമായ ഒരു ഉപകരണം നൽകാൻ കഴിയുമെന്ന് ഡെവലപ്പർ കാണിച്ചുതരുന്നു—ഇടയ്ക്കിടെയുള്ള അപ്ഡേറ്റുകൾ സ്വീകരിക്കാനും സെർച്ച് എഞ്ചിൻ മാർഗ്ഗനിർദ്ദേശങ്ങൾ ശ്രദ്ധിക്കാനും നിങ്ങൾ തയ്യാറാണെങ്കിൽ മാത്രം.
