Google Web Toolkit (GWT) එක්ක චාටර් විමි

on

මම ඉගෙනගන්න කැම්පස් එකේ දෙවැනි අවුරුද්දේ සහ තෙවැනි අවුරුද්දේ industrial training දෙකක් තියෙනවා. මාස තුන ගානේ. මම හා හා පුරා කියලා මගේ පලවෙනි training place එකට ගියා. කොළබ තියෙන හොද software company එකක්. මට මුල සතියෙන් හරි හමන් වැඩක් තිබුනෙත් නෑ. Google Web Toolkit tutorials ටිකක් හා MVP (Model View Presentation) architecture එක ගන ඉගෙනගන්න තමයි තිබුනේ. දෙවැනි සතියේ ඒ ඉගෙනගත්ත දැනුමෙන් පොඩි වැඩක් කරන්න සෙට් උනා. ඒ වගේම මාව Research and Development section එකටත් මාරු උනා. එතන ගොඩාක් වගේ හිටියේ interns ලා. මොරටුවෙන් සැහෙන්න හිටියා. රුහුණෙන් මම විතරයි. දෙවැනි සතිය අද වෙද්දී එතන බාරව හිටපු architect කෙනෙක් ඇවිල්ල ඇහුවා, Google Maps locally දුවන්න හදාගන්න බැරිද කියලා.

කොටින්ම කිවුවොත් Google Maps site එක computer එකේ save කරලා අන්න ඒ save කරපු html file එක internet තියෙන වෙලාවිදී පාවිච්චි කරලා, Maps වලින් කරන වැඩේම කරගන්න බැරිද කියලා. වැඩේ කියපු architect තමයි R&D Section එක බාරව හිටපු කෙනත්. මම කර කර හිටපු වැඩේ නවත්තන්න කියලා Maps වැඩේට බහින්න කිවුවා.

(මෙතැන්සිට architect – archi ලෙස short කර ඇත)

එදා මුළු දවසම වගේ try කරා. Google maps site locally save කරලා කොහෙත්ම වැඩ කරන්නේ නම් නෑ. පස්සේ ඒ archi ඇවිල්ල පොඩ්ඩක් firebug වගේ දේවල් පාවිච්චි කරන හැටි කියල දුන්න. Google Maps වලින් ගහන request response හොදට study කරන්න ලු. එක request එකක් එක response එකක් නම් කමක් නෑ. හැම mouse movement එකටම එක ඇතුලේ OpenGl කෑලි Ajax කෑලි load වෙනවා පිස්සු වගේ.

ඇත්තටම එයාලට ඕන උනේ මේ පින්තුරේ පේනවා වගේ කළු පාට කොටුවේ එයාලගේ නම දාලා උඩින තව පොඩි වගුවක් දාලා Google maps ලගේ logo එක අයින් කරලා ඒ වගේම site එකක් හදන්න. ඉතින් ඕකට ඔච්චර නැහෙන්න ඕනද? html iframe එකක් දැම්මා. පොඩි css tricks ටිකක් දාලා Google maps ලගේ header එක වැහුවා. ඉතින් මමත් ඒ විදියට හදලා දුන්නා. ගෙමක්ම නෑ.

ඔන්න ඊළගට තමයි හොදම හැරියා. Google maps වලා ලංකාවේ ස්ථාන කීපයක් search කරලා. මුළු ගමනටම යන්න තියෙන දුර calculate කරගන්න පුළුවන්. ඒ අගය km වලින් එනවා. දැන් මෙයාලට ඕන උඩ තියෙන වගුව එක එක cab service වල 1km ට rate එක ගැහුවමා ඔය Google maps වල තියෙන km අගය අරගෙන වැඩි කරලා එක එක cab service එකෙන් ගියාම ඔක්කොම කියක් යනවද කියලා calculate කරගන්න.

එතකොට තමයි කිවුවේ මෙයාලට Google maps locally ම run කරගන්න මෙච්චර ඕන උනේ මොකද කියලා. Google maps වල මොනවා හරි නගරයක නමක් type කරද්දී පල්ලෙහායින් එනවා පොඩි suggestion ටිකක්. උදාහරණයක්‌ විදියට Ga කියල type කරොත් Galle, Galkissa ඔය වගේ එක එක ඒවා එනවා. ඒ කාලේ තිබුනේ Google Map api V3(latest) පාවිච්චි කරලා ඔය suggestion එක ගන්න බෑ. අනික ඒ වැඩ කරපු තැන Google Map api එක කාපු permanent පොරවල් ඕන තරම් හිටියත් මේක මට සෙට් උනේ, traineesලා විදියට අපි වැඩිය නොදන්නා නිසා අලුතින්ම දෙයක් හිතලා innovative solution එකක් දෙවි කියල හිතලා වෙන්න ඇති.

හරි දැන් මගේ website එකක් තියෙනවා, මම හදලා තියෙන්නේ table එකක් හා logo එකක් දාපු එක විතරයි. ඊට අමතරව iframe එකක් ඇතුලේ Google maps තියෙනවා. එකත් නිකම් මම හැදුවා වගේ iframe එක ඇතුලේ වැඩ කරනවා, Google නමක් වත් ගෑවිලා නැ නේ. 😛 දැන් වෙන්න ඕන iframe එක ඇතුලේ තියෙන km අගය එළියේ තියෙන parent site එකට ගන්න එක. javascript use කරලා ඒ element එක access කරන්න දගලනවා දගලනවා ඒ උනාට එක අල්ලගන්නම බෑ.

පස්සේ පොඩ්ඩක් හොයල බැලුවම දැනගත්තා Web browser security policy එකක් තියෙනවා iframe එක තියෙන domain එක හා parent site එක තියෙන domain එක එක සමාන නෙමෙයි නම් parent site එකට iframe content access කරන්න දෙන්නේ නෑ කියලා. දැන් ඉතින් මේ වැඩේ කරන්න බැ කියලත් මට කියන්න හිතෙන්නේ නැ. මොකද අපේ campus එකට වැඩිය software training place හම්ඹ වෙන්නේ නැති නිසා, අපේ කල්ප අයියා මට තෙල බෙදලා යැව්වේ කැම්පස් එකේ නම තියලා වරෙන් එන පාර නැත්නම් ජුනඩේක් වත් ගන්න එකක් නැ කියලා.

දැන් දීලා තියෙන වැඩේ JSP/Servlet වලින් කරන්න පුළුවන් කමක් තිබුනත්, අලුතින් මොනවා හරි ඉගෙනගන්න ඕන නිසා මම GWT වලින්ම තමයි බැස්සේ. GWT ගන දන්නා අය දන්නවා ඇති, එකේ Client, Server, Shared කියලා packages 3ක් තියෙනවා. ඔය client එකේ java.lang, java.util වලින් ටිකක් වගේ පොඩි පොඩි දේවලුයි Server එකේ algorithm ලියන්න ඕන වෙන තව තව ගොඩක් libraries නුයි පාවිච්චි කරන්න පුළුවන්.

Computer එකේ courser එක හොල්ලන්න පුළුවන් java.awt.Robot පාවිච්චි කරලා. මම එක server package එකේ දාලා දුන්න පොඩි ගේමක්.  රූපේ පෙන්න තියෙන විදියට map එකේ ඔක්කොම directions හොයලා උඩ තියෙන වගුවේ suppliers rate ගහල calculate button එක ඔබපු ගමන් courser එක නිෂ්තිත pixel ගානක් පල්ලෙහාට ගෙනල්ලා iframe එකේ තියෙන km අගය select කරලා clipboard එකට copy කරනවා. ඊළගට ආපහු courser එක තිබුන තැනට ගිහින් අතාරිනවා. clipboard එකේ මට ඕන value එක තියෙන නිසා, calculation ටික ගේමක් නැතුව කරන්න පුළුවන්. මේ සම්පුර්ණ සිද්දිය 50ms වගේ ඉතා කුඩා කාලයකින් වෙන නිසා පාවිච්චි කරන users ට පෙන්නේ නෑ courser එක එහා මෙහා දුවනවා කියලා.

වැඩේ කරා කියල මම archi ට දැනුම දුන්නා. මේක පොරගේ වැඩක් නෙමෙයි ලු. උඩ තට්ටුවේ හිටපු තව archi කෙනෙක්ගේ වැඩක්. ඔන්න එක පාරට archi ලා රොත්තක්ම ආවා site එක බලන්න. 4ක්  5ක් වීතරා. සමහර විට මට නොපෙන්නුවට මම කරපු වැඩේ ගන පුදුමත් ඇති. කීප දෙනෙක් මගේ මෙසේ වටේ ඉදගෙන test කරලා බැලුව. කියන්න වරදක් නෑ. සුපිරියට වැඩ. මම java Robot class එක පාවිච්චි කරා කිවුවට කවුරුවත් ඒ ගන වැඩි අවදනෙකට ගත්තෙත් නෑ. මේ සයිට් එක උවමනා වෙච්ච් archi කිවුවා “නියමයි මල්ලි, හරියටම මේ approach එක තමයි මට ඕන උනේ”.

හෙට clients ලා එක්ක තියෙන presentation එකකට මේක පෙන්නන්න ඕන ලු. කොහොමද මේක ගන්නේ ඇහුවා. මමත් පොර සේ කිවුවා මම Google App Engine එකට deploy කරන්නම්. සර් internet එකෙන්ම access කරන්න කියලා. ඔන්න එදා හවස project එක app engine එකට deploy කරන්න විදියක් නෑ, errors කෝටියයි. java.awt.Robot  deprecated api එකක් ලු. දෙයියනේ මේක නැතුව කොහොමද මගේ site එක වැඩ කරන්නේ. හරි යන්නෙම නෑ. තනියෙන් ගොදදගන්නම බෑ. බැරිම තැන මම වැඩේ බාර දීපු archi ට කිවුවා. සර් මේක deploy කරන්න බැ නේ කියලා.

පොර බැලුවා. මේ server package එක ඇතුලේ මොනවද පාවිච්චි කරලා තියෙන්නේ. java Robot?? මල්ලි ඔයා USA වල තියෙන server එකේ mouse එක ලංකාවේ ඉදං හොල්ලන්නද යන්නේ? මෙහෙම කියලා පොර මගේ notebook එක අරගෙන දල සටහනක් ඇන්දා.

මල්ලි google server එක තියෙන්නේ පිට රට. client ඉන්නේ ලංකාවේ. server එකෙන් කරන්නේ dynamically html ටික render කරලා client එකට එවන එක. මේ තියෙන්නේ ඒ වෙලේ මගේ note book එකේ අන්ද දල සටහන. (දෙයියනේ මම හොදට දන්නවා server -client කොහොමද වැඩකරන්නේ කියලා).

චි චි. ජිවිතේ ප්‍රථම වතාවට IT related දෙයකට මම මෙහෙම bite උනාමයි. ඊට වඩා මේ රූපේ දැක්කම ඇතිවෙන ලැජ්ජාව. මේක ඕන පොඩි එකෙක් දන්නවා නේ.

මම වරද්දගත්ත එක දෙයක් තමයි, මුල ඉදලා project එක test කරේ localhost එකේ. එතැනදී client එකයි server එකයි දෙකම එක machine එකේ. මම හිතුවේ GWT කියන්නේ server package එක ඇතුලේ ඕන සෙල්ලමක් දැම්මම එක සිරාවට වැඩ කරනවා කියලා. ඒ උනාට එක එහෙම නෙමෙයි කියලා දැනගන්න සතියක් විතර ගියා. වැරදිලාවත් java.awt.Robot වගේ දේවල් පාවිච්චි කරන්න දුන්න නම්, ලෝකේ වටේම ඉන්න උන, Google servers වල coursers හොල්ලන්න ගනී. LOL 😀

කොහොම හරි R&D එක බාරව හිටපු archi හෙට presentation එක කරන්න හිටපු archi ට එක ඉවර වෙනකම් මම කරපු මෝඩ කම ගන කියලා නෑ. කිවුව නම් මිනිහ බය වෙන්නත් තිබුනා. පස්සේ පස්සේ කවුරුත් සින් එක දැනගෙන තිබුනා. අවුලක් උනේ නෑ. එයාලටත් presentation එකකට නේ ඕක ඕන උනේ. එච්චරයි.

8 thoughts on “Google Web Toolkit (GWT) එක්ක චාටර් විමි

  1. මල්ලිටත් මරු වැඩක්නේ වෙලා තියෙන්නේ.. විලිලැජ්ජාවේ සන්තෝසේ බෑ නේද 😀
    අද තමයි මම මේ බ්ලොග් එක දැක්කේ..

  2. මල්ලිගේ මේ ලිපිය මාව අවුරුදු දෙක තුනක අතීතයත ගෙනගියා. මම computer eng නෙවේ වෙන එකක. අපේ background එක හින්දා අපි කරන සමහර වැඩවලට විශේසයෙන්ම අලුත් අදහස් වලට ලොකු අවධානයක් ලොකු ඉඩක් ලැබෙනවා. විශේසයෙන්ම අපේ අලුත් වැඩවලදී කාර්ය බහුල ඉහල නිලධාරීන් ඒතරම් සොයාබැලීමක් නොකර අනුමැතිය දෙනවා. ඒහින්දා අපි දෙයක් ඉහලට යොමුකරන්න කලින් අපේ සම සගයන් සමග පොඩි කථා බහක යෙදීම, ස්වයං විචාරයක යෙදීම වගේ දේවල් කරන්න පුලුවන් නම් වඩාත් හොදයි.

    1. ඔව් කතාව ඈත්ත. බොහොම ඉස්තුතියි කමෙන්ටුවට.

  3. ඔයා කියලා තියනවා ඔයගොල්ලන්ට training placement අඩුයි කියලා, ඒකට හේතුව ඔයාලාගේ එක මාස තුන තුන කඩලා තියෙන එක. එක දිගට මාස 6 නම් මදි නොකියන්න හම්බවෙයි.

    1. ඔව් අනිවාර්යයෙන්ම, ඕක කවුරුත් කියන කතාවක්. හැබැයි මොනවා හරි කරලා training place එකක් හොයාගන්න පුළුවන් නම් වෙලාවකට මාස 3ක් කියන එක වටිනවා. මොකද place එකේ situation එක පාවිච්චි කරන technology ගැන ඉගෙනගන්න ලොකු කාලයක් යන්නේ නැ. ඊට පස්සේ දිගටම තියෙන්නේ ඒවා එක්ක වැඩ කරන එක නේ. ඒ අතින් ගත්තම companies දෙකක් එක්කම අත්දැකීම් ලැබෙන නිසා job එකකට යන කලෙක උනත් හොද තෝරාගැනීමක් කරන්න පුළුවන්. අනික එතකොට දැනටමත් තමන්ට companies දෙකක් එක්ක contacts තියෙනවා.

Leave a Reply

Your email address will not be published. Required fields are marked *