විසිල් නැතුව බල්ටි කෙරුවාව...
(programming ගැන විතරමයි)

Tuesday 1 September 2009

මයෙ මැණික් කැටේ(දෙවන කොටස)

ආයිබොන්ඬලා... පහුගිය සති අන්තයෙ මුකුත්ම ලියන්න බැරි උනා නෙ. මාර විදියට බීසි (බීලා සිහියනැති) උනා. සෙනසුරාදා උදේ ඉදලා pig roast එකක්. änthräXගෙ යාලුවෙක් එතන යකා නටනවා. ග්‍රැං පෝං එකක් වගේ කෑලි දෙකක් තියාගෙන සිංදුවකින් පොඬි කොටහක් දාලා "රික් චික් රිකි චිකි, රිකිච්ච හිචි හිචි, හු.. ටාහ්.., හුටට්ටලා, බුං බුං චක්.., බුංව බුංච බුං.. වක්" ගාන්වා. ආයෙ සිංදුවක කෑල්ලක් දානව. එකම සීන් එකයි. උදේ ඉදලා එතන රස්තියාදු වෙවී ඉදලා එකයි + දෙකයි = පහයි කියන ගානට වැනි වැනී ඉන්නකොට මෙන්න බුවෙක් call කරපි "xx ගෙ birthday එකට යන්නෙ නැද්ද" කියලා. හුටා නෙ. ඉක්මනට ගෙදර දුවලා පැයක් විතර නාලා එකයි + දෙකයි = හතරයි කියන ගානට ඔලුව හදාගෙන ඕං එතෙන්ටත් දිව්වා. එතන පැය දෙකක් විතර ඉන්නකොට ඕං කියපි රැලට තව කොහෙද යන්නෝනලු. මම බෑම කිව්ව, blog එකට post එකක් ලියන්න තියනව කියලා. කොහෙද, මුන් බලෙන්ම මාව ගෙනියලා හොදටම පෙව්වනෙ. එපා කියද්දි හිර කරලා කටට වක් කරලා නහයයි කටයි තද කලරා "ගිලපිය" කියලා. මම ඉතින් බයට ගිල්ලා. අල්ලපු ගෙදර ආච්චි පල්ල. කොහොම කොහොම හරි 4.30 විතර වෙද්දි (ඉරිද උදේ) ගෙදර නම් ආවා. හවස පහට විතර නැගිටලා උදේට කාලා ruby post එක ලියනවද, ice age 3 බලනවද කියලා කාසියක් උඬ ඳැම්මා "නෝනා වැටුනොත් post එක ලියන්නෙ නෑ, පොල්ල වැටුනොත් film බලනවා කියලා". කරුමෙ කියන්නනෙ නෝනනෙ වැටුනෙ. :D බනින්න තියනවනම් පොතේ ගුරාට බනින්න. තිස්සෙම film දෙනව.. මල කරදරේ. මේං ඔන්න මම ඇත්තම කිව්ව නිසා (බාගෙට) බනින්න ඔට්ටු නෑ හරිද?

හරි, අනං මනං නවත්තලා වැඬේට බහිමුකො එහෙනම්.

ඉස්කෝලෙ යන කාලෙ පුල්ස්කැප් කොලයලක් පිරෙන්න "මම ඔයාට ආදරෙයි, මම ඔයාට ආදරෙයි, මම ඔයාට ආදරෙයි.." කියලා ලියලා නෑ කියල නම් ලියන්න එපා. ඈයි පරක්කු වෙලා ඉස්කෝලෙ ඈවිත් හැන්දෑවෙ වැඬිපුර පැයක් ඉදගෙන කලු ලෑල්ල පිරෙන්න "මම නැවත ප්‍රමාද නොවෙමි" කියල එහෙම. (මම නම් ඉතින් A/L අවුරුදු දෙකේම ඉස්කෝලෙ ගියෙ 8.15 කෝච්චියෙනෙ). ඔය වැඬේ ලේසියන් කරගන්න විදියක් ගැන ඔයාලට හිතිලා නැද්ද? නෑ නෑ, select කරලා ctrl+c ගහලා ctrl+v ඔබන් ඉන්න ඔට්ටු නෑ හොදේ. programming කරද්දි මතක තියාගන්න අත්‍යවශ්‍ය නම් විතරක් clipboard එක පාවිව්චි කරන්න.

මතකනෙ කලින් ලිපියෙන් හලෝ පාරක් දැම්මා. මේ වතාවෙ දහ දොලෝස් ගමනක් හලෝ කියලා බලමුද? programming කරන කට්ටිය ඉතින් දැනටමත් දන්නවනෙ loop කරන්න එක එක techniques හැට හුටාමාරක් තියනව කියලා. තමන්ගෙ කැමැත්තට/අවස්තාවට අනුව පාවිච්චි කරන technique එක තෝර ගැනිල්ල ඔයාට බාරයි. අපි ඉතින් හුරු පුරුදු while එකෙන් වැඬ අල්ලමුකො. කතන්දරේ හරිම සරලයි. අපි කවුරුත් ප්‍රකාශන ගැන දන්නවනෙ. '10 > 5' කිව්වොත් කතාව ඈත්ත, 'ගෑනු චපලයි' කිව්වොත්?, 'මර්වින් අහින්සකයා' කිව්වොත්? අන්න ඔය වගේ ප්‍රකාශනයක් උදව් කරගන තමයි අපි loop කරන්නෙ. අපි while කියලා ඊලගට දෙන්න ඕනා මේ ප්‍රකාශනය. එතන ඉදලා end වෙනකන් තියන විධාන ඔක්කොම නැවත නැවත ක්‍රියාතමක වෙනවා අර while ලග තියන ප්‍රකාශනය බොරු වෙනකම්.

while true
commands to be executed
end

එයා කරන්නෙ while ලග තියන ප්‍රකාශනය ඇත්තද කියලා බලලා ඇත්ත නම් loop එක ඇතුලට යන එක. ඊට පස්සෙ end වලට වෙනකන් තියන විධාන ටික කරගෙන ගිහිල්ලා ආපහු while ලගට පැනලා බලනවා අර ප්‍රකාශනය ඇත්තද කියලා. ඇත්ත නම් ආපහු ඇතුලට යනවා. ඔහොම කැරකිලා කැරකිලා අර ප්‍රකාශනය බොරු වෙච්චදාක තමයි loop එකෙන් එලියට එන්නෙ. ඔය විදියට සත්‍ය නෙවෙන ප්‍රකාශනයක් එක්ක තියන (ගියොත් ආපහු එනව බොරු ජාතියෙ) loop එකකට never ending loop එකක් කියලා කියනවා කියලා නම මතක නැති පැරණි පුස්ථකයක සදහන් වෙනවා. (ඔය හේතුව නිසා තමයි loop එකක ප්‍රකාශනය එක විදියට 'ගෑනු චපලයි' වගේ එකක් දාන්න හොද නැත්තෙ) ඕං එහෙනම් වැඬේ හරියට තේරෙන්න පොඬි code කෑල්ලක් ලියලා බලමුකෝ.

count= 0
puts 'ඔන්න ඇතුලට යන්නයි හදන්නේ'
while count < 5
puts 'දැන ඈතුලේ ඉන්නේ'
count=count+1
end
puts 'එලියට ආවෝ'

ආ.. මතක තියාගන්න මම උදාගරනෙට අර 'ගෑනු චපලයි' වගේ කතා කිව්වට code එකේ ඔව්ව ඔටිටු නෑ හොදද? ඔයා ඒ ප්‍රකාශනේ කරන්න ඕනා ඉලක්කනුයි operators යි (සිංහල වවනෙ දනෙනෙ නැතෝ..) පාවිච්චි කරගෙන. පේනවා නේද count=0 කියලා කතාවක්. ඒ කරලා තියෙන්නෙ count කියල variable එකක් හදාගෙන ඒකෙ අගය විදියට බිංදුව දෙන එක. while count <5 කියලා බලද්දි count වල තියෙන්නෙ බිංදුව නෙ. බිංදුව පහට වඬා පොඬී නේ. ඉතින් යනවා ඇතුලට. අර තියන එක execute කරලා, count=count+1 කිව්වම එයා count වලට එකක් එකතු කරගන්නවා. කතාව පැහැදිලි වෙන්නයි ඔහොම ලිව්වෙ. count+=1 කිව්වත් ඔය වැඬේම තමයි වෙන්නෙ. end දැක්කම එයා ආපහු යනවා while ගාවට. දැන් count වල තියෙන්නෙ 1 නේ. ඒත් තාම 5 ට වඬා count පොඬී නේ. ඉතින් යනවා ඇතුලට. ඔහොම ඔහොම count=5 වෙච්චම count<5 කියන ප්‍රකාශනය බොරු වෙනවනෙ. එතකොට loop එකෙන් එලියට ඇවිත් ඊට පස්සෙ තියන දෙයක් කරගෙන යන්න තමයි තියෙන්නෙ.

while එක්ක loop කිරිල්ල තේරුනා මගෙ හිතේ. නෑ වගේ නම් අහන්නකො..

හ්ම්හ්... ජයවේවා කිව්ව එහෙනං.

Sunday 16 August 2009

මයෙ මැණික් කැටේ(අතපසු වූ introduction එක)

ආයිබොන්ඬලා, ඕං änthräX ගොයියා ආපහු ආව මැණික් බිස්නස් කොරන්ඬ. ඕං ඔයාලගෙ comments වලට ප්‍රචිතාර දක්කවලා වෙනම blog එකක් පටාං ගත්තා programming ගැන විතරක් කතා කරන්න.beansjar blog එකේ උඬ දකුනු පැත්තට වෙන්න තියන බල්ටි විතරක් කියන link එකෙන් හරි http://anthr6x.blogspot.com/ වලින් හරි progtamming වලට ආස කට්ටිය අලුත් තැනට එන්න. ආ.., මේක ලියන්නෙ අලුත් එකේ නෙ, පරණ තැනට යන්න විසිල් සමග බල්ටි කියල තියන link එකට යන්න. ;)

මතක ඇතිනෙ පහුගිය සතියෙ හා හා පුරා කියලා මැණික් කැටේ එක්ක line එකක් දෙකක් ලිව්වා. මම ඉතින් වැඬි යමක් විස්තර කරන්නෙ නැතුව ඬෝං පටස් ගාලා ruby ගැන විස්තර කරන්න ගත්තනෙ. comments බලද්දි හිතුනා පාඬම පැත්තක තියලා පොඬි විසිල් පාරක් දුන්න නම් හොදයි සෙනග ටිකක් එන්නයි, programming වලට ආස ruby ගැන දන්නෙ නැති අයට පොඬ්ඬක් ඔලුව දාලා බලන්න හිතෙන්නයි.

මම ඉතින් ruby කියලා language එක එක්ක ඔට්ටු වෙන්න තමයි පටන් ගත්තෙ. ඒත් ඔයාලා අහල ඇත්තෙ ruby on rails කියල මිසක ruby කියල නෙමයි. නෙද? හරි පොඬ්ඬකට programming අමතක කරමු. හිතන්න ගල් යුගයෙ පොරක් ගැන. බුවා ළග පිහියක් තියනවා කියලා. ඔන්න පොර පිහිය පාවිච්චි කරලා ගහක අත්තක් කපාගන ඒක ඕන විදියට සුද්ද කරලා, වැල් පොටක් කපාගෙන දුන්නක් හදාගන්නවා. තව ගැලපෙන ජාතියෙ කෝටුවක් කපාගෙන ඊතලයක් හදාගන්නවා. ඔන්න ඒකෙන් විදලා සතෙක් මරාගෙන කාලා සතාගෙ කටු වලින එක එක ගජමැටික්ස් (ගල් යුගයේ) හදාගන්නවා. දත් ඊතල වලටයි, ගාතයක් බැටැන් පොල්ලක් විදියටයි තව තව ඉතින් වැඬ ගොඬයි. ඔහොම ඔහොම පොර සංකීර්ණ tool set එකක් හදාගන්නවා. එක එක වැඬේ අනුව දිග පිහි, කොට පිහි, උල් පිහි, හෙල්ල, පලිහ ...(දන්නවනෙ ඉතින්) ආවුද ගබඬාවයි. ඔන්න පස්සෙ වෙන කෙනෙක්ට අරයා හදපු ආවුද පාවිච්චි කරන්න පුරුදු වෙන්න පුලුවන් නේද, ලේසියෙන් වැඬ කරගන්න?

framework, library කියලා තැන් තැන් වල ඔයාල අහල ඇතුවට කිසිම සැකයක් නෑ. ඔය කියන්නෙ අර ඉහත සදහන් කරපු විදියෙ ආයුධ ගබඬා ගැන. කිසිම ප්‍රශ්ණයක් නෑ, උවමනා කෙනෙකුට පටන් ගන්නම ආවුද පාවිච්වි කරන්න පුරුදු වෙන්න පුලුවන්. නමුත්... අපි කතන්දර වල කියවලා තියනව වගේ හොද සෙබලෙක්, හේවායෙක් විතරක් නෙමයි රජකෙනක් උනත් ඔය ආයුධ පාවිව්වි කරන්න පුරුදු වෙන්න කලින් අතපය හතරයි මොලයි පාවිච්වි කරන්න (මූලික දේවල්) පුරුදු වෙන්න ඕනා නේද? ඒ මූලික පදනම හරියට දාගත්තමට පස්සෙ අනික්වට අනිත් හැම දෙයක්ම හරියට තේරුමක් ඇතුව, පිලිවලට, ඉක්මනින් කරන්න පුලුවන් වෙනවා. ආවුද ඉනේ ගහගන ඉන්නෙ චන්ඬි මිසක් වැඬකාරයො නෙමේ කියලා අපි කවුරුත් දන්නවනේ. (සෙවල දාන්න තුවක්කුව ඉනේ ගහන් ඉදලා කුරුල්ලට වෙඬි තියාගත්ත මිනිස්සුත් අපි අතර ඉන්නවනෙ.) ඒක නිසා කරන දේ මොක උනත් හරිහමන් පදනමක් ඈතුව කරන එක නේද හොද? ඔය හේතුව නිසා තමයි ruby on rails ගැන නැතුව ruby ගැන කතා කරන්න ගත්තෙ. තවත් විදියකට කිව්වොත් electronic දැනුමක් නැතුව computer hardware කරපු කෙනෙක්ට වඬා වැඬිය electronic දැනුමක් ඇතුව computer hardware කරපු කෙනෙක්ට ප්‍රශ්ණයක් නිරාකරනය කිරීම පහසුයි නේද?

හරි, දැන් framework කියන්නෙ මොකද්ද, පාවිච්චි කිරිල්ලෙ වාසි මොනාද ආදිය ගැන කතා කරමුකො.
ruby on rails කියන්නෙ web development framework එකක්. ඒ කියන්නෙ ඔයා ජංජාලෙ භාවිතා වෙන application එකක්(උදාහරණය විදියට ගත්තොත් blog එකක්, twitter වගේ සෙල්ලමක්, web based e-mail service එකක් ආදී ඔයාට හිතෙන web based අලුත් වැඬක්) කරන්න බාවිතා කරන්න පුලුවන් ආයුධ පෙට්ටියක්. පෙට්ටියක් කිව්වට පෙට්ටියකම නෙමෙයි, ගබඬාවක්. ආවුද පාවිච්චියෙ වාසිය ඉතින් අමුතුවෙන් කියන්න ඕන නෑනෙ. එක පැත්තකින් ඌරව දාපුවම අනිත් පැත්තෙන් sausage ටික එලියට එනවා. අපි දැනගන්න ඕන ඌරව දාන්නෙ කොහොමදයි කියලයි sausage ටික එකතු කරගන්නෙ කොහොමදයි කියලයි විතරයි. ;) ඔය විදියට ලොකු ලොකු වැඬ ලේසියෙන් කරගන්න තමයි අපි framework, library පාවිච්චි කරන්නෙ. හිතන්නකො ඔයා කාර් එකක් හදන්න යනවා කියලා. ඒකට උවමනා හැම කොටසම එකින් එක ඔයා හදන්න ගියොත් වෙන වැඬක් නෑ නේද? ඔයා කරන්නෙ එක එක පුද්ගලයට කියන එක ඔයාට අවශ්‍ය දේවල්. ඔයා 17" රෝද හතරක් ඕන කිව්වම ගෝලබාලයො දන්නවා රිම් එකයි ටියබ් එකයි ටයර් එකයි එකතු කරලා හුලන් ගහල ගෙනත් දෙන්න. ඔයාට තියෙන්නෙ හයි කරන්න විතරයි. ඔය විදියට හැමදේම අපි කරන්නෙ නැතුව framework එකට කියනවා 'මට මේක ඔනා' කියලා. එතකොට එයා ඒක කරලා දෙනවා.

ඔයාලට programming ගැන අවබෝධයක් තියනවා, මේ දෙකයි පනහෙ වැඬ කර කර ඉන්නෙ නැතුව සිරා වැඬ කරන්න ඕනෙ කියල හිතෙනවනම් ruby on rails install කරගන්න විදිය ලස්සනට පැහැදිලි කරල තියන screen cast එකක් මෙන්න. මහන්සි වෙලා හොද වැඬක් කරපු Mohamed Aslamටයි මෙ ගැන මට කියපු ගවීනටයි ඉස්තූතී. install කරගත්තට පස්සෙ ඔය එහෙට මෙහෙට සෙල්ලම් දාන ඒව මෙතන තියනවා. මේවා ඔයාල programming එක්ක comfortable නම් විතරක් මේව කරන්න කියලා තමයි මගේ ඉල්ලීම.

ඊලග ලිපියෙන් looping ගැන කතා කරමු. මම යනවා රවුමක් දාන්න.

Tuesday 11 August 2009

මයෙ මැණික් කැටේ(පලමු කොටස)

ඔන්න ඉතින් මැණික් කැටේ එක්ක මොකුත් කරන්න ඉස්සෙල්ලා මැණික් කැටේ දාගන්න එපෑ. (වැරදියට අනං මනං කැත කතා හිතනව නෙමේ හොදද? මම කතා කරේ install කරගන්න එක ගෑන).

මේ ලිපියෙන් මම උත්සහ කරන්නෙ language එකට අත තියන්නයි, fundamentals ගැන අවබෝධයක් ගන්න උදව් වෙන්නයි. උපරිමයෙන් උත්සහ කරනවා ඕනම කෙනෙක්ට තේරෙන්න සරල විදියට තේරුම් කරන්න. අපැහැදිලි තැන් තිබ්බොත් අහන්න. මැණික් කැටේ ගැන මාකටින් පාරක් දාන්න බලාපොරොත්තුවක් නම් නෑ.

linux පාවිච්චි කරන අයට තියෙන්නෙ ruby කියන repository එක install කරගන්න (apt-get install ruby). වැඬ අල්ලන්න ඒක හොදටම ඇති. වැඬේ නැගලා ගියොත් අනික්වා ගැන බලමු. windows කට්ටිය මෙන්න මේක download කරගන්න. ඊට පස්සෙ ඉතින් next->next->next->finish නේ. ;)

ඕං එහෙනම් දෙයියනේ බුදුනේ කියලා notepad එක open කරගමු නේද? හැමෝම කරනවා වගේ ලෝකෙට "හලෝ" කියන්නෙ නැතුව අපිටම "හලෝ" කියාගෙන බලමුද? notepad එකේ මෙහෙම type කරන්නකො.

puts "adooo gemba"

අපි ඕක save කරගන්න ඕනා .rb කියන extension එකත් එක්ක. java කරපු කට්ටියට මතක ඇතිනෙ java code එක save කලේ ".java" කියලනෙ. එහෙනම් ඉතින් file->save ගිහිල්ලා "myfirst.rb" කියලා මේක save කරගමුකෝ. දැනට desktop එකේ save කරගන්න. (myfirst වෙනුවට ඔයාට කැමති නමක් දාගත්තට කිසිම අවුලක් නෑ හොදද?). මතක තියාගන්න file extension එක ".rb.txt" නෙමයි ".rb" යි කියලා. දැන command prompt එක අරගන "myfirst.rb" එක save කරපු තැනට (desktop එකට) මාරු වෙලා (cd ) මෙහෙම කොටන්න.

ruby myfirst.rb

ඔයා අර උඬින් ලියපු text එක(adooo gemba) display උනා නේද? (බැරිවෙලාවත් file not found කියලා ආවොත් extension එක .rb මිසක් .rb.txt නෙමේ නේද කියලා check කරන්න) double quotations ඇතුලෙ තියන text එක මාරු කරලා save කරලා දෙතුන් පාරක් run කරලා බැලුවට කවුරුත් බනින එකක් නෑ.

දැන් පොඬිඬක් විතර boring කොටස. theory චික් නෙ? හරි, සරලව කියන්න බලන්නම් කො. code එකක කොහෙන් ගියත් අඬංගු වෙන කොටස් තුනක් තියනවා. ඔයාලා දැනටමත් දන්නවනෙ මම මේ කියන්නෙ sequence selections සහ repetition ගැන කියලා. sequence කියන්නෙ කෝච්චිය වගේ statements එකින් එක execute කරගෙන යනවට. repetition කියන්නෙ අර වලිගෙ හපන්න try කරන බලුකුක්ක වගේ එකතැන කැරකෙනවට. එකකො ඌට කැරකිල්ල හැදිල නතර වෙන්න ඕනෙ නැත්තම් කවුරු හරි කෑගහන්න ඕනෙ. එතකන් පොර කැරකෙනවා. loops කියලා කියන්නෙත් එව්වට තමා. selection කියන්නෙ අර උගුල ලග නතරවෙච්ච මීය වගේ "කේක් කෑල්ල කනවද, චීස් කෑල්ල කනවද" කියලා හිත හිත ඉන්නවට. මම වැඬේ පටලුවෙ නෑ නේද?

අපි ඉතින් පලවෙනි කොටසට sequence වලට විතරක් සීමාවෙලා ඉමු. ඕන්න අපි අර කලින් කරපු "හලෝ" කිවිල්ල පොඬ්ඬක් පිලිවලට කරමු. අපි ඕක function එකක් ඇතුලට දාමු. මෙන්න මෙහෙමයි වැඬ් කරන්නෙ

def sayhi
puts "adoooo gemba"
end

sayhi

def කියන්නෙයි end කියන්නෙයි keywords. def කිලා නම දීලා ඊට පස්සෙ ඉදලා end වලට වෙනකන් එක කොටසක් විදියට තමයි ගනන් ගැනෙන්නෙ. java වල { යි }යි වගේ. vb වල sub යි end subයි වගේ. puts කියන්නෙ java වල print වගේ. vb වල ? වගේ. sayhi කියන්නෙ අර උඬ ලියපු function name එකනේ. අනතිමට sayhi කියලා තියෙන්නෙ ඒ function එක run කරන්න කියලා. සිද්දිය පැහැදිලීද? එහෙනම් තව අඬියක් ඉස්සරහට තියමුකෝ...

def sayhi(name)
puts "adooo #{name}"
end

sayhi "anthrax"

කරලා තියන වැඬේ පැහැදිලීද? function එකට parameter එකක් pass කරන්න පුලුවන් කරන එක තමයි ඔය වරහන් එක්ක කරලා තියෙන්නෙ. වෙනසක් තේරුනාද? sayhi කියන function එකට මම fixed name එකක් assign කරලා නෑ. sayhi function එක call කරද්දි දෙන නමට තමයි එයා greet කරන්නෙ. වැඬ් ලේසී නේද? #{} වලින් කරලා තියෙන්නෙ අර parameter එකේ තියන text එක output text වලට ඔබ්බවන එක. මොන programming language එක පාවිච්චි කලත් හොද internal documentation එකක් maintain කරන්න අමතක කරන්න හොද නෑ නෙ. # සලකූණ යොදලා තමයි අපි comment එකක් දාන්නෙ. හෝව් හෝව්, කෑගහන්න ඉස්සෙල්ලා මේ ටිකත් කියවලා ඉම්මුකො. දැන් ඔය කියන්න ලෑස්ති උනේ #{} පාවිච්චි කරපු විදියයි comment කරන විදියයි එකවගෙයි කියලා නේද? පොඬ්ඬක් හොදට බලන්න අපි #{} පාවිච්චි කරලා තියෙන්නෙ "" ඇතුලෙ නේද? ;)

#this is a commemt
def sayhi(name="gemba") #this is also a comment
puts "adooo #{name}" #here is another comment
end #this is a comment too

sayhi "anthrax"
sayhi

පොඬි වෙනස්කමක් කරලා තියනවා දැක්කද? name variable වලට default value එකක් assign කරලා තියනවා gemba කියලා. එතකොට ඔයා sayhi function එක parameter එකක් නැතුව call කලොත් adooo gemba කියලයි, parameter එකක් එක්ක call කලොත් adoo කියලයි වෙනස් output දෙකක් ලැබෙනවා.

දැනට මෙතනින් නවත්තන්නම්. කූරුගාලා ප්‍රශ්ණ එහෙම තිබ්බොත් අහන්නකො..