Mwanatengeneza programu amezindua orodha ya bure na inayoweza kutafutika inayoorodhesha kila bandari ya bahari na uwanja wa ndege duniani kote—bandari 3,804 na viwanja vya ndege 9,640—bila kuhitaji usajili au malipo. Tovuti hiyo, theportindex.online, inawawezesha watumiaji kupitia data hiyo au kupakua seti nzima ya data katika mfumo wa CSV au JSON.

Kwa nini orodha hii ilihitajika

Mbunifu alikusudia kutafuta orodha safi na ya kisasa ya bandari za bahari duniani lakini akakwama: ofa nyingi za kibiashara zinahitaji malipo, na orodha zinazopatikana hadharani mara nyingi zimepitwa na wakati kwa miaka mingi. Kutegemea data isiyo kamili au ya zamani kunawalazimu wachambuzi kupoteza saa nyingi kusafisha majedwali (spreadsheets), gharama ambayo huongezeka katika sekta nzima. Kwa kuunganisha vyanzo vitatu vya umma—mkutubi wa bandari wa serikali ya Marekani, dira ya nambari za maeneo ya kimataifa, na kanzi data ya viwanja vya ndege iliyotolewa na jamii—mwanatengeneza programu alikusanya rejea moja iliyounganishwa ambayo mtu yeyote anaweza kuitumia papo hapo.

Vyanzo vya data vilivyotumika

  • NGA World Port Index – mkusanyiko wa serikali ya Marekani unaotoa maelezo ya msingi kwa kila bandari ya bahari inayotambulika.
  • UN/LOCODE – mfumo wa nambari za maeneo wa Umoja wa Mataifa, ambao unaongeza utambulisho uliosanifishwa kwa bandari na viwanja vya ndege.
  • OurAirports – mkusanyiko wa taarifa za viwanja vya ndege unaosimamiwa na jamii, ikijumuisha urefu wa njia za kutua na kuratibu (coordinates).

Kila chanzo kinatoa sehemu tofauti ya picha nzima, lakini hakuna kinachotoa katalogi iliyo tayari kutumika na inayoweza kutafutika peke yake. Kuunganisha vyanzo hivyo kulihitaji zaidi ya kunakili na kubandika; mwanatengeneza programu alilazimika kutatua kutofautiana kwa data, vitu vilivyojirudia, na sehemu zilizokosekana.

Kusafisha data: masomo matatu magumu yaliyopatikana

  1. Mistari mipya iliyojificha huvuruga programu rahisi za kusoma data (parsers) – faili za CSV zenye mivunjiko ya mistari ndani ya nukuu haziwezi kugawanywa kwa amri rahisi ya "gawanya kwenye mstari mpya". Programu sahihi ya kusoma CSV (CSV parser) ni muhimu ili kuweka safu (rows) zikiwa nzima.
  2. Thamani zisizo za kawaida huficha makosa – baadhi ya vituo vya mafuta viliorodhesha kina cha mita 900, namba ambayo inahusu maboya ya kutia nanga (mooring buoys), si bandari. Kuchuja namba zisizo na mantiki ilikuwa muhimu ili kuweka viwango vya kina vya maji viwe vya kuaminika.
  3. Namba sifuri mara nyingi ni sehemu ya kujaza nafasi – kina kilichorekodiwa kama sifuri kwa kawaida humaanisha kuwa kipimo hakijulikani, si kwamba maji ni bapa. Kuchukulia sifuri kama data iliyokosekana kunahifadhi uadilifu wa uchambuzi wowote unaotegemea kina.

Kuongeza thamani zaidi ya namba mbichi

Orodha hii inafanya zaidi ya kuorodhesha kuratibu (coordinates). Kwa bandari, inatafsiri kina kuwa aina za meli zinazoweza kutua kwa usalama, na kubadilisha kipimo kimoja kuwa msaada wa maamuzi wa kivitendo. Kwa viwanja vya ndege, urefu wa njia ya kutua unaounganishwa na aina za ndege zinazoweza kufanya kazi hapo, na kuwapa marubani na wapangaji tathmini ya haraka ya uwezo wa kituo.

Gridi ya kijiografia inaunganisha kila bandari na viwanja vya ndege vilivyo karibu nazo na kinyume chake, na kuufanya tovuti kuwa chombo cha uchunguzi. Watumiaji wanaweza kugundua, kwa mfano, ni viwanja gani vya ndege vilivyo ndani ya umbali mfupi wa kuendesha gari kutoka bandari fulani—kipengele ambacho ni muhimu kwa upangaji wa usafirishaji wa mizigo wa njia mbalimbali (multimodal freight planning).

Kujenga injini ya tovuti ya kudumu (static-site) kwa kiwango kikubwa

Upande wote wa mbele (front end) unaendeshwa kwa Next.js kwa kutumia utengenezaji wa kudumu (static generation). Wakati wa mchakato wa ujenzi, takriban kurasa 14,000—moja kwa kila bandari na kiwanja cha ndege—zinatayarishwa mapema. Kwa sababu hakuna kanzi data (database) au mantiki ya upande wa seva (server-side logic), tovuti haitozi gharama yoyote ya uendeshaji; inaishi kwenye mtandao wa usambazaji wa maudhui (CDN) unaotoa kurasa papo hapo duniani kote.

Changamoto za SEO na suluhisho la maudhui hafifu

Kupakia maelfu ya kurasa za kiolezo (templated pages) kunaweza kuleta mashaka kwa injini za utafutaji, ambazo zinaweza kuona tovuti hiyo kuwa na "maudhui hafifu" (thin content) na kupunguza nafasi yake kwenye matokeo ya utafutaji. Mwanatengeneza programu alikutana na tatizo hili wakati ombi la AdSense lilipokataliwa. Suluhisho lilikuwa kuacha seti nzima ya kurasa ziwe wazi kwa wageni lakini kuongeza agizo la noindex kwa kurasa zote isipokuwa zile 400 bora zenye ubora wa juu katika kila kundi. Hii inaiambia roboti za utafutaji (crawlers) kwamba ni kurasa zenye thamani zaidi pekee zinazopaswa kuonekana katika matokeo ya utafutaji, hivyo kuhifadhi uaminifu huku bado ikitoa seti nzima ya data.

Nani anafaidika, na ni nini mipaka yake

  • Makampuni ya lojistiki yanaweza kuhakiki haraka ikiwa meli ya mizigo inafaa kwa mipaka ya kina ya bandari bila kuhitaji kutafuta kwenye PDF nyingi.
  • Wapangaji wa ndege wanapata ufikiaji wa haraka wa uhusiano kati ya urefu wa njia ya kutua na aina ya ndege, jambo ambalo ni muhimu kwa tafiti za uwezekano wa njia za usafiri.
  • Wataalamu wa programu na watafiti wanapata data safi inayoweza kusomwa na mashine ambayo inaweza kuingizwa kwenye zana maalum.

Nini kinafuata kwa mradi huu

Mbunifu anaomba maoni kutoka kwa jamii kuhusu vipengele vya ziada.

Hitimisho

Kwa kushughulikia changamoto za kusafisha data, kuongeza tabaka za inference, na kuepuka gharama za seva kwa kutumia uundaji tuli (static generation), mtengenezaji anaonyesha kuwa usanifu mwepesi unaweza kutoa zana inayofaa duniani kote—ikiwa uko tayari kukubali maboresho ya mara kwa mara na kufuatilia miongozo ya injini za utafutaji.