දැනට තිබෙන පාඩම්...

Tuesday, January 22, 2019

What is PowerShell -1

Image result for shell script
PowerShell mainly using by system administrators and system engineers to their daily work.  This task based command line mainly created by using .NET . Mostly system admins using this kind of command lines to automate tasks which will use to manage all kind of operating systems.
From the powershell, you can manage the computers from command line. You know that there are several data stores like registry and certificate store. You can very easily access the above two data stores like file management system by the PowerShell.  PowerShell is a cross platformed open source product. You can contribute the open source project by clicking here.

There are number of versions in PowerShell before. The first version of PowerShell is created using .NET Framework and it was only for windows computers. The latest version of PowerShell, PowerShell Core is made by .NET Core 2.x and it currently working with Windows OS, Mac OS and Linux Platforms.

If you are intereted in PowerShell 6 or any other version which comes after the version 6, you have to install the PowerShell Core. In Windows there are two main methods to use powershell. You can use Windows PowerShell and Windows PowerShell ISE as PowerShell. When it comes to windows servers, servers which include a GUI - Graphical User Interface we're calling them as DESKTOP editions. For the servers which do not include GUIs, we calling them as CORE editions.

If you are using a core edition of windows, when you logged in you will display a command prompt. To start script, just type shellscript in the command prompt and press enter. Then it will automatically go to script. But if you want to out from the shellscript, just type the "exit".  To open the shellscript in a desktop edition, just click the windows button in left lower corner and type "shellscript" or "shellscript ISE" for your need.

Assume that you want to check the version of ShellScript to continue your work. Just open the ShellScript window and type $PSVersionTable  and press Enter. Then there will be list of values in here like, PSVersion, PSEdition, PSCompatibleVersions, BuildVersion, CLRVersion, WSManStackVersion, PSRemotingProtocolVersion, SerializationVersion. Just pickup the value of PSVersion value as the current version of your ShellScript.

If you want to run the ShellScript with administrative privilages, just click on the windows button in left corner and type shellscript, then the shellscript will get display. Then right-click it and select "run as administrator". Then it will open with administrative privilages.

Let's talk about components and ShellScript language on next article. Regards then :D

Wednesday, December 5, 2018

What is Social Media Marketing? - 1

When it comes to social media marketing, in current world people always using social media to interact with people. So business people using social media to give some awareness to people in the society about their business. But when it comes to users, they know people use social media to their marketing purposes, and so business owners and social media marketers have to be perfect and creative, when they reaching their customers.

An also we can use social media marketing to enhance the long lasting relationship between customers and marketers who giving the right product to right customers. Not only relationships but also marketers use SM marketing for fill the contact databases and fill the email databases which will be used to email marketing, improve the market web traffic to a web site and increase the number of users of your web site. And mostly protect the brand reputation by not doing marketing more than the limit. When it comes to social media, everyone has to understand that everything got a limit.


I thought to use this article series to learn you how to come up with good social media strategy and how to be an some sort of expert in SM. We alsways have to be strict with the budget in our hand. Sometimes you can be a social media expert, digital marketing manager, undergrduate, executive guy, web developer or a any kind of person. I kindly invite you to ask questions and give some feedback on the articles, what are the changes which we have to do or what will be the topics we missed so far.

In first, I'll talk about social  media strategy. We using social media strategy to create new customers, create new promotion with digital support. There are number of reasons to use a social media strategy. It helps the marketer or developer to expand the all marketing ways, and also there will be a good brand awareness to society. And the main point is this stategy will help you to attract the customers. In another word, consumers mostly recommend a social media service, if they also got a good service from them. If people watch a television, we do not look on every advertsement and we can not react or fulfil our questions regarding any advertisement. But social media effect on people induvidually and we can click on the link and find out any of the contact number, and address or any
other detail regarding the advertisement.

See you again with the second one. regards...

Monday, October 16, 2017

Entrepreneurship ඉගෙන ගනිමුද? - 1 පාඩම

කෝමද යාලුවනේ? පහුගිය කාලේ තිබ්බ වැඩ කන්දත් ඒක්ක ලිපියක් ලියාගන්න වෙලාව නැති වුනත් චමියාට හිතුනා පොඩි ලිපියක් ලියන්න ව්‍යවසායකත්ව අධ්‍යයනය ගැන...

ව්‍යවසායකත්වය නැතිනම් Entrepreneurship වලදි කථා කරන්නෙ මූලිකවම ව්‍යාපාර සිද්ධාන්ත ගැන.
අපි මුලින්ම බලමු සංවිධානයක් කියන්නෙ මොකක්ද කියලා. තනි තනි පුද්ගලයන් රාශියක් පොදු අරමුණක් වෙනුවෙන් අත්වැල් බැදගැනීමක් නැතිනම් ඒකතු වීමක් Organization ඒකක් විදියට හදුන්වනවා. මේක පවුලක් වෙන්න පුලුවන්, ව්‍යාපාරයක් වෙන්න පුලුවන්, සමාජයේ තියෙන අවශ්‍තාවයකට වෙන්නත් පුලුවන්...
මේවට උදාහරණ ගන්නවානම් පුංචි පවුල රත්තරන් කියන්න ඉස්සර තිබ්බ විස්තෘත පවුල සංකල්පය, ජිනසේන සහ පුත්‍රයෝ සමාගම, මීතොටමුල්ලේ කුණු කන්දට විරුද්ධව මිනිස්සු හදාගත්තු සංගමය වගේ දේවල් මේ සංවිධාන ගණයට තමයි වැටෙන්නේ!

ව්‍යාපාර සංවිධානයක් කියන්නේ යම් අාර්ථිකමය ක්‍රියාවලියක්, හැබැයි නිෂ්පාදනය, විකිණුම්, සේවාවන්, සමගම ලාභය ගැනත් සිතන ගමන් මනුෂ්‍ය අවශ්‍යතා ගැනත් හිතන විදියේ ක්‍රියාවලියක්... ව්‍යාපාරයක් වුනාම සමාජය ඉල්ලන්නේ මොනවාද කියලා ඒවා තෘප්තිමත් කරන්න ඔින. සමාජයේ විරැකියාවට විසදුමක් විදියට ඉදිරිපත් වෙන්න ඔින. තමා විසින් රජය මගින් ලබාගන්නා සේවාවන්ට බදු මුදල් නිවැරදිව ගෙවන්න ඔින. තමන් විසින් හරිහම්බ කරගන්න ලාභය නැවත වරක් අායෝජනය කරන ගමන් තමන්ගේ ව්‍යාපාරය ගොඩනගාගන්න විදිහ ගැනත් හිතන්න ඔින.

ව්‍යාපාරයක ප්‍රධාන අරමුණු කිහිපයක් තියෙනවා.

  • ලාභය
  • ව්‍යාපාර කොටස
  • පරිසරය පිළිබද දරන වගකීම
  • සමාජ සත්කාරයන්
  • පොදු සේවාවන් වලට යොමුවීම


ව්‍යාපාරයක වර්ධනය, ගැටලු වලට නිවැරදිව මුහුණ දීමේ හැකියාව, සමාජ වගකීම වගේ සාධක අතර මේ තුනත් සමග ඔබ ලාභය ගැන තැකුවේ නැතිනම් ඊට පැවැත්මක් නැති වේවි.
ව්‍යාපාරයක සිදුවන ප්‍රධාන ක්‍රියාවලි කිහිපයක් තියෙනවා.

  • අදහස් උත්පාදනය කිරීම
  • ප්‍රාග්ධනය සුරැකීම හා වර්ධනය
  • සේවක පුහුණුව හා නඩත්තුව
  • භාණ්ඩ හා සේවා මිලදී ගැනීම
  • භාණ්ඩ හා සේවා අාලෙවිකරණය
  • ව්‍යාපාර වාර්තා නඩත්තුව
ව්‍යාපාර වර්ග 3ක් තිබෙනවා. නිෂ්පාදකයන්, අතරමැදියන් හා සේවා සපයන්නන්

අාර්ථික පද්ධතියක් කියන සංකල්පයේදී මිනිස්සුන්ගේ අවශ්‍යතා පිරිමහන්න ඔින කරන ද්‍රව්‍ය සමාජය විසින්ම බෙදාහරිනු ලබනවා. මේ පද්ධතියේ ප්‍රධාන අංග 3ක් පවතිනවා.
  1. Free Market System : මේ වෙළදපොලේ හදන්න ඔින මොනාද, මොන ප්‍රමාණ වලින්ද කියන සේරම තීරණ ගන්න සියලුම කටයුතු කරන්නේ විකුණන අය හා බඩු ගන්න අය   * Capitalism කියන වචනෙන් කියන්නෙ economic freedom හා economic competition පැහැදිලිව දකින්න පුලුවන් Economic system ඒකකට
  2. Planned System : මේ වෙළදපොලේ තීරණ ගන්න සියලුම කටයුතු කරන්නේ රජය විසින්.    *Communism කියන්නෙ ඒ රටේ තියෙන පෟෙද්ගලික දේපල මැඩපවත්වන්න රජය සියලුම productive resources තමන් භාරයට අරන් පවත්වාගෙන යනවට
  3. Socialism : මේ Economic System ඒකේදී public ownership ඒකක් යටතේ private ownership වල උදව්වත් අරගෙන වැඩ කරගෙන යනවා.
ව්‍යාපාරයක අැලුමැති පාර්ශව නැතිනම් stakeholdersලා ගණනාවක් ඉන්නවා.
  1. Bankers
  2. Suppliers
  3. Customers
  4. Environmetalists
  5. Dealers
  6. Employees
  7. Government leaders
  8. Stockholders
  9. Surrounding Community
ලාේක බැංකුවට අනුව ලංකාවේ අායතන වැඩකරන ගණන අනුව ප්‍රධාන කොටස් 3කට බෙදන්න පුලුවන්.
  • Employees 49ට අඩු නම් small
  • 50-99 අතර නම් medium
  • 100ට වැඩි නම් large
මිනිස්සු ව්‍යාපාර පටන් ගන්නෙ අැයි?
තම තමන්ගේ අරමුණු සපුරගන්න, නිදහස විදින්න, වැඩිපුර අාදායමක් ගන්න, සමාජය තුල තිබිය යුතු ඒත් නැති භාණ්ඩයක් සපයන්න, තමන්ට ඔින වෙලාවට වැඩ කරන්න පුලුවන් නිසා, විනෝදාංශයක් විදියට, අාරක්ෂාවට වගේම තමන්ගේ තත්වය වැඩි කරගන්න...

ව්‍යාපාර අයිතිකරුවන්ට ඉදිරියට මුහුන දෙන්න වෙන තත්වයන්
  • ශ්‍රම බලකායේ විහිදුම
  • කණ්ඩායමකට කණ්ඩායම් හැගීම ලබා දීම
  • තාක්ෂණයේ වන දියුනුව
  • ලෝකයක් විදියට මුහුණ දෙන්න වෙන ප්‍රශ්න (බලශක්ති අර්බුධ)

වෙළදපොලක් නිවැරදිව පවත්වගන්න හේතුවන සාධක
  1. වෙළදපොල ගැන නිවැරදි අවබෝධයක් තිබීම
  2. මානව සම්පත් කාර්යක්ෂම විදියට යොදාගැනීම
  3. නිතරම යාවත්කාලීන වීම
  4. රාජ්‍ය නීති වලට අවනත වීම
  5. ක්ෂේත්‍රය සම්බන්ධ ප්‍රවීනයන් අැසුරු කිරීම
  6. කාල කලමණාකරණය
ව්‍යාපාරයක් වැටෙන්න හේතු
  1. සැලසුම්කරණයේ අඩුපාඩු
  2. ප්‍රාග්ධනය මදිවීම
  3. අනුග්‍රාහකයන්ගේ ගැටලු
  4. අවවාද වලට කන් නොදීම
  5. පුහුණුව මදිකම
  6. කළමනාකරණ ගැටලු
  7. වාර්තා පවත්වාගැනීමේ දුර්වලතා
  8. මිල සටහනේ ගැටලු

මේ ගැටලු තේරුම් අරන් තමන්ගේ වැඩ කරන් යන හැකියාව තමන් සතුයි. තවත් ප්‍රධාන කොටසක් ඒක්ක නැවත හමුවෙමු මචංලා!!!

Sunday, May 21, 2017

කවුද මේ සුන්දර් පිචායි ??


පිචායි සුන්දර්රාජන් ඔබ දන්නවාද? මං දන්න තරමින් නැහැ. නමුත් ඔබ සුන්දර් පිචායි හදුනනවා විය යුතුයි. ඔහු තමයි Google අායතනයේ ප්‍රධාන විධායක නිළධාරි තනතුර හොබවන්නේ.
1972 ජූලි මස 12 වෙනිදා තමිල්නාඩු ප්‍රාන්තයේ මදුරෙයි වල උපත ලබන මොහුගේ අාදරණීය දෙමාපියන් වන්නේ ලක්ෂ්මි හා රගුනාථ පිචායි යන දෙපළ.
ඔහු තම උපාධිය සම්පූර්ණ කරන්නේ Khanagpur වල Indian Institute of Technology අායතනයෙන්. ඔහු සතු වෙනවා B.Tech උපාධියක් Metallurgical Engineering සම්බන්ධව. ඔහුගේ M.S උපාධිය Stanford University තුලින් ලබාගත්තක්.   ඔහු සතුව M.B.A  උපාධියක්ද පවතිනවා. 
ඔහු මුලින්ම රැකියාව කළේ McKinsey & Company අායතනයේ. පසුව ඔහු 2004 වර්ශයේදී Google අායතනය සමග සම්බන්ධ වෙනවා. ඔහු ඒහිදී Google අායතනයේ client software products වල project management හා innovations කොටස් වලට ඔහු දායක වුනා. විශේෂයෙන්ම Chrome, Chrome OS වලටත් තවත් විශාල වශයෙන් Google Drive සදහාත් ඔහු දායක වුනා. ඔහුට Gmail හා Google Maps වල වැඩ කටයුතු වෙනුවෙන් විදේශ ගතවීම් පවා කිරීමට සිදුවූවා. 
2009 නොවැම්බර් 19 දින ඔහු විසින් Chrome OS හා Chrome Notebook පිළිබද demonstrate යක් සිදුකරනු ලැබුවා. මේවා trial and testing සදහා 2011 දී නිකුත් වූ අතර පොදු ජනයා සදහා 2012දී නිකුත් කරනු ලැබුවා.
2010 මැයි 20 වැනිදා ඔහු නව video codec වන VP8 සදහා open sourcing නිවේදනය කරනු ලැබුවා. ඒ වගේම WebM නම් වූ නව video format ඒක සමාජයට ලබාදුන්නේද මොහුම තමයි. 
මේ නිවේදනයත් සමගම VP8 විවෘත හා royalty free තවත් විදියකට කියනවනම් සම්පූර්ණයෙන්ම මුදල් ගෙවීමකින් තොරව භාවිතා කළ හැකි කොටසට අයත් වුනා. ්‍HTML5 වල video tag ඒක යටතේ chrome opera firefox යන සියලු බ්‍රවුසර් සදහා මේ VP8 සහය දක්වනවා.
2013 මාර්තු මාසයේදී ඔහු විසින් තමන්ගේ දිගු ලැයිස්තුවට android ද දමා ගන්නවා. අැත්තටම මේ අැන්ඩ්රොයිඩ් කියන්නෙ මොකක්ද? Android කියන්නෙ Mobile OS ඒකක්. develop කළේ google ඒකේ අය. Linux kernel ඒක මත පදනම්ව තමයි මේක නිර්මාණය වෙන්නේ. මේක මුලින්ම manage කිරීමේ අයිතිය පවතින්නේ Andy Rubin හට. 2005 ජූලි මාසයේදී Android Inc. අායතනය $ මිලියන 50කට Google විසින් මිලට ගනු ලබනවා. 2013දී Android හි බලාකියාගන්නා විදියට හිටපු Hugo Barra චීනයේ Xiaomi අායතනයට යාමත් සමගම ඒ තනතුර සුන්දර් පිචායි හට හිමිවෙනවා. 
පසුකාලීනව 2014දී තවත් ඉන්දියානුවෙක් වන සත්‍යා නඩෙල්ලා Microsoft අායතනයේ CEO තනතුරට පත්වෙනවා.
 අවසානයේ 2015 අගෝස්තු 10 දින පිචායි මහත්මයා Google හි CEO තනතුරට පත්වෙනවා. 
ඔබ නිකමට සිතුවාද මොහුගේ වැටුප කොපමණද කියා. ඒ අාසන්න වශයෙන් ඩොලර් මිලියන 199.7 පමණ වෙනවා. 
අපේ ළගම තියෙන රටේ කෙනක්ට පුලුවන්නම් Google වගේ ලෝකෙ හොල්ලන අායතනයක CEO වෙන්න ටිකක් හිතන්නකො මොනාද බැරි කියලා.
තවත් අලුත් දෙයක් ඒක්ක අායෙත් හමුවෙමු යාලුවනේ...

Saturday, May 6, 2017

Information Security ගැන ඔබ දන්නේ මොනවාද? - 4 පාඩම

පහුගිය පාර අපි කථා කළා ඉස්සර කාලෙ පාවිච්චි වුනු Cipers ගැන. අද අපි කථා කරන්න යන්නෙ අද කාලෙ පාවිච්චි වෙන Cryptosystems ගැන නැත්නම් Modern Cryptosystems ගැන. මේ Cryptosystems ප්‍රධාන කොටස් 2යි.

  1. Symmetric Cryptosystems
  2. Asymmetric Cryptosystems
Symmetric Cryptosystems - යවන්නා හා ලබන්නා දෙන්නම පාවිච්චි කරන්නේ තනි key ඒකක්. ඒකට කියනවා secret key නැත්නම් shared key කියලා. මේකෙ වාසි තමයි වේගයෙන් encryption decryption processes වෙනවා. key විශාල වෙන තරමට බිදීමට අපහසුයි. 
අවාසි තමයි හැම usersලා යුගලයකටම තනි යතුරක් අවශ්‍ය නිසා keys භාවිතා කරන පුද්ගලයන් ගාන වැඩි වෙනවා. usersලා n ගානක් උන්නොත් key ඔින වෙනවා n(n-1)/2 ප්‍රමාණයක්. යතුරු ටික නිවැරදිව යවාගන්න නිවැරදි ක්‍රියාමාර්ගයක් ගන්න ඔින. මේකෙන් confidentiality ලබා දුන්නාට authenticity හෝ non repudiation සපයන්නෙ නෑ.
Ex: DES, Triple DES,  Blowfish 

Asymmetric Cryptosystems - encript හා decript කරන්න keys 2ක් ඔින. පළවෙනි key, පාවිච්චි වෙන්නෙ encrypt වලට. දෙවෙනි key, පාවිච්චි වෙන්නෙ decrypt වලට. මුල් key ඒක public key, දෙවෙනි ඒක private key. private key ඒක අයිතිකාරයා ගාව විතරමයි තියෙන්නෙ. public key ඒක හැමෝම දන්නවා. 
මේ 2 අතර ගණිතමය සම්බන්ධයක් තිබ්බට private key ඒකෙන් public key ඒක හදාගන්න බෑ. 

Secure Message Format: යවන්නා msg encrypt කරනවා ලබන්නාගෙ public key පාවිච්චි කරලා. දැන් ඒක කියවන්න පුලුවන් ලබන්නාට විතරයි මොකද ඒ කෙනා ගාව විතරයි තමන්ගෙ private key copy ඒකක් තියෙන්නෙ. රහස්‍යභාවය අාරක්ෂා වුනාට යවන්නාව නිවැරදිව සාෙයාගන්න බෑ මොකද යවන්නාගෙ key ඒකක් encrypt decrypt වලට ඔින වෙන්නෙ නැති නිසා.
Open Message Format: යවන්නා තමන්ගෙ private key පාවිච්චි කරලා encrypt කරනවා. ඊට පස්සෙ ඒ පුද්ගලයාගෙ public key යම් කෙනෙක් ලග තියෙනවානම් ඒ ලබන්නාට පුලුවන් මේක decrypt කරගන්න. මේකෙ ප්‍රධාන වාසිය තමයි symmetric key වලට වැඩිය key distibution හොදයි හැබැයි slow.

මොකක්ද මේ DES කියන්නෙ?? 

DES නැත්නම් Data Encryption Standard දැනට ලෝකයේ භාවිතා වන ප්‍රසිද්ධම symmetric algorithms වලින් ඒකක්. මේක block cipher ගණයට තමයි අයිති. මේකෙ key ඒක ඉස්සර 128 bit size වුනාට දැන් 56 bit size වෙනවා.

DES Key : මේ DES key ඒක 64 bits වුනාට සෑම bit 8කටම සැරයක් parity bit ඒකක් තියෙනවා. මේ නිසා හරියටම පාවිච්චි වෙන්නෙ 56 bit key ඒකක් විතරයි. (64-8 = 56)

DES Algorithm:

මේක block cipher algorithm ඒකක්. මේක වැඩ කරන්නෙ 64 bit plaintext ඒකක් මත. මේ තනි තනි block වෙලාවෙන් වෙලාවට encrypt කරලා තමයි අවසාන ciphertext ඒක ලැබෙන්නෙ.
  1. මේකෙදි මුල්ම පියවර විදියට අපි අපේ මුලු පණිවිඩයම 64 bit කොටස් වලට කඩාගන්නවා. 
  2. මීලගට කරන්නෙ initial permutation කියන පියවර. මේකෙදි වෙන්නෙ අපේ 1bit -64bit වෙනකන් තිබෙන සියලුම bits කලවම් කරනවා. මේ රූපයේ තියෙන පිලිවෙලට. තමයි bits මාරුවෙන්නෙ. (58 bit ඒක මුලින්ම)
  3. අපි දැන් බලමු key වෙනස් වෙන්නෙ කොහාෙමද කියලා.  සාමාන්‍ය විදිහටනම් 56 bit key ඒක 16කට divide කරලා 48 bit sub keys ටිකක් හදාගන්නවා.
  4. අැත්තටම වෙන්නෙ 56 bits වුන key ඒක bit 56කට කඩලා shuffle නැතිනම් කළවම් කරනවා. හොදට බැලුවොත් ඔබට දකින්න පුලුවන් මේක 7*8(=56) ප්‍රමාණයේ ඒකක් කියලා. මේකට ඉහලින් තිබෙන රූපය 8*8 ප්‍රමාණයේ ඒකක්.
  5. මේ විදියට shuffle වුන key ඒකට අපි කියනවා permuted key කියලා. 
  6. මීලගට කරන්නෙ මේ permuted key ඒක ප්‍රධාන කොටස් 2කට කඩා ගන්නවා.  අපි කියමු ඒවට C0 D0 කියලා. මේ තනි කොටසක 28 bits අන්තර්ගත වෙනවා. 
  7. මීලගට අපි කරන්නෙ ඒක පියවරකදි bit 1 බැගින් ඉදිරියට යවනවා.අනිත් පැත්තට කියනවානම් මුලින්ම තියෙන bit ඒක පස්සට යවනවා. 
  8. දෙවෙනි පියවරේදිත් මුලින්ම තියෙන bit 1 පස්සට යනවා. මේ විදියට 1,2 , 9, 16 පියවර වලදි තනි bit ඒකකුත් අනික් හැම පියවරකදිම bit 2කුත් පස්සට යනවා. 
  9. මේ 1 bit ක් පස්සට ගිහින් හැදුනා C1 D1 දෙන්නා.ඊලග පියවරේ තව bit ඒකක් ගිහින් හැදුනා C2 D2 දෙන්නා. මේ C1 හා D1 දෙන්නා ඒකතුවෙන් පළමු sub key ඒක හැදෙනවා. C2 D2 දෙන්නාගෙ උදව්වෙන් දෙවන subkey ඒක හැදෙනවා. මේ විදියට Cn Dn දෙන්නාගෙ ඒකතුවෙන් n වන subkey ඒක හැදෙනවා. මේ විදියට පියවර 16ටම key 16ක් ලියවෙනවා. අන්තිමට මේ හැදෙන 56 bit key ඒකෙන් 8bits omit වෙලා තමයි 48 bit sub key ඒක අාවෙ.
  10. අපි දැන් අායෙත් බලමු algorithm දිහාවට. algorithm ඒක අපි නැවැත්තුවෙ 64 bit cleartext ඒකක් විදිහට. මේක කොටස් 2කට කඩාගෙන මේවා L0 R0 කියලා කොටස් 2ක් බෙදාගන්නවා. 
  11. රූපෙ බැලුවොත් තේරෙනවා මීලගට කරන්න තියෙන්නෙ L0 → L1 කරන ඒක හා R0 → R1 කරන දේ.මේකෙදි පාවිච්චි වෙන්නෙ පහත සමීකරණ 2.                                                                                Ln= R n-1          /      Rn = L n-1  (+) f(R n-1, Kn)  
  12.  මේ විදියට මුලු සමීකරණයේ විදියටම පියවර 16ක් යනතුරුම මේක ගමන් කරනවා. 
  13. අන්තිමට පිළිතුරු 2 විදිහට ලැබෙන L16 හා R16 අරගෙන අපේ පිළිතුර විදියට මේ 2ම මාරු කරලා ලියා ගන්නවා. 
  14. අවසානයට cyphertext ඒක විදිහට R16L16 අපි ලියාගන්නවා.
මේක තමයි DES algorithm කියලා අපි සරලවම කියන්නේ.
DES තව දිගට කථා වෙනවා. ඉතුරු විස්තර ඊලග ලිපියෙන් දාන්නම් යාලුවනේ. මේකෙ අඩුපාඩු තියෙනවානම් පහළින් කොමන්ටුවක් දාගෙන යන්න. සුභ දවසක් හැමෝටම :)

Friday, April 21, 2017

Information Security ගැන ඔබ දන්නේ මොනවාද? - 3 පාඩම

කලින් පාඩම් 2ට තිබුන ප්‍රතිචාර සමගම ඊලග article ඒකත් දාන්න හදන්නෙ.
අද පාඩමෙන් අපි කථා කරන්නෙ Cryptography ගැන. තනි article කින් ඉවර කරන්න බැරි වුනත් පුලුවන් තරම් කථා කරන්න හිතුවා.
Cryptography කියන්නේ මායා භාෂාව කියන දේ. මේක පාවිච්චි වෙන්නෙ පණිවිඩයක අාරක්ෂාව කියන දේ තහවුරු කරගන්න.

මුලින් ම බැලුවොත් cryptography වලටම අදාල වුනු වචන මාලාවක් තියෙනවා.

  • Cleartext/ Plaintext - කියවන්න පුලුවන් විදියට තියෙන messages
  • Ciphertext - කියවන්න බැරි විදියට තියෙන messages
  • Encryption / Enciphering - cleartext, ciphertext කරන ක්‍රියාවලිය
  • Decryption / Decriphering - ciphertext, cleartext බවට හරවන ක්‍රියාවලිය
  • Cryptosystem - encryption decryption සපයන පද්ධතිය
  • Encryption/Decryption Algorithm - Enciphering / Deciphering කරන අාකාරය දැක්වෙන නීති මාලාව
  • Key / Cryptovariable - Encryption/ Decryption ක්‍රියාවලියට ලැබෙන අාදායනයක් - an input. මේක හුගක් වෙලාවට random variables වෙනවා. මේකෙදි key විසින් තමයි මේ මුලු ක්‍රියාවලියේම secrecy පවත්වාගෙන යන්නේ.  යවන්නා හා අදාල ලබන්නා අතේ විතරයි මේ key පවතින්න පුලුවන්.
  •   Eavesdropper - නැතිනම් හොරෙන් සවන් දෙන්නා. මොහු විසින් encrypted message මගදි අල්ලගත්තාට වැඩක් නැහැ මොහු ලග key නැත්නම්.
  • Key space - යතුරකට තියෙන්න පුලුවන් මුලු අගය පරාසය. මේ key sapace විශාල වන තරමටම intruder / eavesdropper කෙනෙකුට හොයාගන්න අමාරුයි. 64 bit යතුරකට 2^64 විවිධ key combinations තියෙනවා. 
  • Cryptanalysis - secrecy සම්බන්ධව අධ්‍යයනය කරන හා ඒ encrypt messages බිද දැමීමට  අදාල විද්‍යාව.
  • Cryptology - cryptography cryptanalysis ගැන අධ්‍යයනය කිරීම
Ciphers ප්‍රධාන වර්ග කිහිපයක් තියෙනවා.
  1. Classical ciphers
  2. Rotor Machines
  3. Modern විදිහට
Classical වර්ගය ප්‍රධාන කොටස් 2යි.
  1. Substitution
  2. Transposition කියලා
මේකෙ Substitution cipher කියන්නේ අදාල පණිවිඩයට අදාල වන සියලු අකුරු වෙනත් අකුරු වලින් substituted වෙන අාකාරය. 
උදාහරණයක් විදියට කියනවානම් Sunil කියන දේ වෙනස් කරලා ලියන්න පුලුවන් Gaint කියලා. මේ ක්‍රමයට අකුරු පිහිටලා තියෙන පිළිවෙළ වෙනස් වෙන්නේ නෑ.
මේකට උදාහරණ වෙන්නේ Caesar's Ciper, Vignere Ciper වගේ ඒවා.
Transposition Ciper - සාමාන්‍ය plain text ඛණ්ඩය replace වීමක් වෙන්නෙ නෑ. හැබැයි ඒවා jumble වෙනවා. plaintext වාක්‍ය කණ්ඩයම අකුරු තියෙන තැන් මාරු වෙලා කියවන්න අමාරු විදියට වෙනස් වෙනවා.

Substitution Ciphers  Types කිහිපයක් තියෙනවා.
  1. Monoalphabetic Ciphers - මේ වර්ගයේදී මුලු පණිවිඩය වෙනුවෙන්ම භාවිතා වන අාදේශනයේ යම් නිශ්චිත රටාවක් තියෙනවා.
  2. Polyalphabetic Ciphers - පණිවිඩය අැතුලේදි විවිධ අාකාර වල substitutions කිහිපයක් භාවිතා වෙනවා. 
Kerckhoff's Principle - මේ නියමය 1883දී ඔගස්ටස් කර්කොෆ් තමයි publish කළේ. ඔහු කියනවා cryptosystem ඒකක key විතරක් secret වුනාම අැති කියලා. algorithm publish කරන්න කියලත් ඔහු කියනවා. Eavesdropper කොහොමත් මේ algorithm ඒක ලබාගන්නවාමයි.
අපි කොහොමද යතුරක් යවන්නෙ අනෙක් කොටසට අන් අය දැනගන්නේ නැතුවම
යතුරක් ප්‍රවේසම් සහගතව තබාගන්නේ කොහොමද?

Scytale Cipher - මේක භාවිතා කළේ ක්‍රි.පූ 400 දී. අදාල පණිවිඩය යැව්වේ පැපිරස් කොළ කැබැල්ලක ලී රවුමක දවටලා. ඒ රවුම ගන්න පුද්ගලයාට අදාල පණිවිඩය කියවන්න බැහැ. ඒ සදහා ඔහු ලග නිවැරදි ලී රවුම පැවතිය යුතුයි.
Caesars Cipher - මේ ක්‍රමය භාවිතා කළේ ජුලියස් සීසර් විසින්. මෙයා රහස් පණිවිඩ යැවීමේදී හැම අකුරක්ම හෝඩියේ ඊට අකුරු 3ක් දකුණින් තිබෙන අකුරින් replace කළා. මේකටම තව Rotation - 3 cipher නැත්නම් ROT-3 cipher කියනවා.

Vigenere Cipher - 16 වන සියවසේ ප්‍රංශයේදී Blaise de Vignere විසින් polyalphabetic substitution cipher 1ක් නිර්මාණය කරනවා II Henry රජතුමාට. Ceasers cipher මත පදනම් වුනාට ඊට වඩා වඩා සෑහෙන්න සංකීර්ණයි. 
අපි ටිකක් සරළ උදාහරණයක් ගත්තොත් MAKE IT HAPPEN කියන පණිවිඩයට MATH කියන යතුර භාවිතා කරනවා. මේකට Vigenere tableයක් භාවිතා වෙනවා. හෝඩියේ අකුරු 26න් තමයි මේක සමන්විත වෙන්නේ. මේක lookuptable විදියට substitutions ගාන ගැනගන්න පාවිච්චි වෙනවා. 
A-Z වෙනකන් පවතින වගුවක් තිබෙනවා.

මේ වගුව භාවිතා කරලා අපේ යතුර වුනු MATH කියන වචනයේ අදාල අංක ලබාගන්නවා.
M - 12
A- 0
T - 19
H - 7
විදියට තමයි පවතින්නේ. ඊලගට අපේ පණිවිඩය වුනු MAKE IT HAPPEN වාක්‍යයේ සෑම වචනයක්ම cover වෙන විදිහට ඒ වාක්‍යය ලගින්ම අපි ලියනවා.
MAKE IT HAPPEN
MATH MA THMATH 
විදියට.ඔබට දකින්න පුලුවන් අපි MATHMATH වගේ දාපු තැනට ඉලක්කම් අාදේශ කරනවා. 
MAKE IT HAPPEN
(12)(0(19(7) - (12)(0) - (19)(7)(12)(0)

ඊලගට අපි බලන්නෙ අැත්තටම මේ අකුරට තියෙන අගය කීයද කියන දේ ගැන.පහළ සටහන ඒ ගැන දක්වනවා.
MAKE IT HAPPEN
(12)(0(19(7) - (12)(0) - (19)(7)(12)(0)
(12)(0)(10)(4) - (8)(19) - (7)(0)(15)(15)(4)(13)

මීලගට කරන්නේ අපේ අකුරට අදාල වෙන අංකය හා යතුර මගින් ලැබුනු අංකය අතර සම්බන්ධතාවයක් මගින් මේ තනි තනි අකුරු වලට අදාල රහස්‍ය අකුර ලබාගන්නවා.

Encryption වලදි භාවිතා වෙන්නෙ C = (P+K)mod 26 සමීකරණය
Decryption වලට භාවිතා වෙන්නේ P = (C-K)mod 26 සමීකරණය

මේකෙ C = cipher text , P = plain text , K= key

Cipher text ගනිද්දි කියලා තියෙනවා වගේම අගයන් දෙකේ ඒෙක්‍යය අරගෙන ඒක 26න් බෙදුවට පස්සෙ ලැබෙන අගයට අදාල අකුර අපේ cipher text විදියට සලකනවා.

M අකුර :- 
C = (P+K)mod 26
C = (12+12)mod26
    = 24 mod 26 = 24
    = "Y"
මේ විදියට අගයන් අාදේශ කරමින් අකුරු සොයාගන්නයි තියෙන්නේ.

Playfair Cipher - මේක හොදින් දන්න වර්ගයේ multiple letter encryption cipher ඒකක්.diagrams පාවිච්චි කරලා තමයි මේක encrypt කරන්නේ. මේකෙ ප්‍රධාන නීතියක් තමයි key ඒකේ repeating letters තියෙන්න විදිහක් නෑ.
අපි හිතුවොත් අපේ යතුර =MONARCHY කියලා අපි ඒක අපේ diagram ඒකේ දක්වන්නේ මෙහෙම.

 M   O   N   A  R
C  H Y B D
E F G  I/J   K 
L P Q S
U V W X Z
මේකෙ I හා J අකුරු 2 වෙනුවටම තනි කොටුවක් පාවිච්චි වෙන නිසා අකුරු 26ම මේ සටහන අැතුලේ ලියන්න පුලුවන්.
මීලගට අපේ msg ඒක ලෑස්ති කරගන්නවා. duplicate අකුරු සේරම X අකුර යොදවලා වෙනස් කරගන්නවා.
මුලු වාක්‍යයට අකුරු ඔත්තේ ගානක් තිබ්බොත් අන්තිමට X අකුරක් යොදනවා අපි.
Spaces සේරම අයින් කරනවා.

අපි හිතුවොත් අපේ mg ඒක වෙන්නෙ SECRET MESSAGE කියන වාක්‍ය ඛණ්ඩය ගැන කියලා.
අපි කඩාගන්නවා මේක SE CR ET ME SX SA GE විදිහට.
මේක දෙකම තනි row ඒකකදි වුනානම් අපි Cipher text විදිහට දකුණු පැත්තේ අකුර සළකනවා.
තනි column ඒකක වුනානම් අපි සලකන්නෙ පහළින්ම තියෙන අකුර. පහළින්ම තියෙන අකුරනම් අැවිත් තියෙන්නෙ අපි සලකන්නෙ ඉහළම අකුර. උදාහරණ විදිහට H හා V අකුරු ගත්තොත් ඒවාගෙ cipher letters වෙන්නෙ F හා O. 
වෙනස් පොලිම් 2ක් වුනොත් ඒ අකුරු 2 විකර්ණ වන විදියට සෘජුකෝණාස්‍රයක් අැදලා අනෙක් විකර්ණ 2 cipher text විදියට සලකනවා.

Enigma - Rotor Machine
ජර්මණිය දෙවන ලෝක යුද්ධෙදි පාවිච්චි කළේ මේ ක්‍රමය. Enigmaට පුලුවන් වෙනස් substitutions 7ක්  පෙන්වන්න. මේකෙන් rotors 3ක්ම පාවිච්චි කළේ ployalphabetic substitions වලට. reflector ඒකක් හා plug board ඒකක් විසින් මේක තවත් complexity කළා. rotor settings වලින් encryption key ඒක provide කළා. මේ enigma codes අවසානයේදි බ්‍රිතාන්‍ය හා පාේලන්ත ගණිතඥයින් විසින් බිද දැමීම  ජර්මණිය පැරදීමට මග පෑදුවා.

Cryptosystem පද්ධතියක ප්‍රයෝජන:
  •  Confidentiality - අනවසර පිරිස් වලට තොරතුරු ලැබීමේ මාර්ග අහුරනු ලබනවා.
  • Authenticity - පණිවිඩයේ අාරම්භය තහවුරු කරනවා. මේ මගින් යවන්නා නිවැරදි බව හදුනාගැනීමට.
  • Intergrity - විශ්වාසයක් ලබාදෙනවා මුලින් යැවුණු පණිවිඩයම නැවතත් ලැබෙනවා කියලා වෙනසකින් තොරව
  • Nonrepudiation - මේ වචනය පාවිච්චි කරනවා මනුස්සයෙක්ගෙ නාෙහැකියාව කියන්න යමක් ප්‍රතික්ෂේප කරන්න.
One time pad - මේක සොයාගත්තෙ 1917දී Gilbert Vernam.මේකෙදි පණිවිඩය binary කරනවා. ඊලගට බිහි වෙනවා one time pad ඒකක්, ඒක සමන්විත වෙන්නේ random sequence of bits වලින්.
ciphertext හදන්න plaintext ඒක exclusive-ORed වෙනවා 
Decrypt වෙන්නත් ciphertext ඒක one time pad හරහා යවන්න ඔින.
පහත කරුණු සම්පූර්ණ වුනාම one-time pad ඒක unbreakable වෙනවා. 
  • pad පාවිච්චි කරන්න පුලුවන් තනි පාරයි.
  • pad ඒකත් message ඒක තරම්ම දිග වෙන්න ඔින.
  • pad ඒක තනිකරම random values වලින් හැදිලා තියෙන්න ඔින.
Running Key Cipher 
මේ cipher ඒක අැල්ගොරිතමයක් මත නෙවෙයි පදනම් වෙන්නෙ. මේක පදනම් වෙන්නෙ යම් පොතක යම් පිටුවක අකුරු මත.
  • Plaintext - f l e e a t o n c e
  • Running key - E R R O R S C A N
  • Ciphertext - J C V S R L Q N P S
  • යතුර ගත්තේ The C program language page 63 line 1
  • create කරනවා fake block ඒකක් page number හා line number ඒක පෙනෙන්න.
  • Indicater block වෙන්නෙ (06301)- AGDAB

Stenography - වෙනත් මාධ්‍ය වර්ගයක දත්ත සගවනු ලබනවා.මෙමගින් දත්ත සියල්ලම සැගවෙනවා. සාමාන්‍යයෙන් නම් image fileඒකක සගවනවා. මෙහෙම කළාම රූපයේ අවසාන pixel ඒකේ අවසාන bit ඒක දක්වාම පණිවිඩය අරන් යන්න පුලුවන් රූපයේ පෙනුමට බාධාවක් වෙන්නෙ නැතුව.

Transportation Cipher
  • Rail fence cipher -මුලින් තිබුණු පිළිවෙල නොගැලපෙන අාකාරයට පැවතුන diagram ඒක පසුව නිවැරදි පිළිවෙලට සකස්කරලා ඉදිරිපත් කළාම පහත අාකාරය වෙනවා.
APPLEISVERYTASTY →→ ERYTAPPLASTYEISV
   1   2   3  4
2  A P P L
4 E I  S   V 
1 E R Y
3 A S T Y


 X   1   2   3  4
1  E  R Y T
2 A P  P   L 
3 A S T
4 E I S V
අද පාඩම නොතේරුනු තැන් පහළින් ලියන්න යාලුවනේ. තවත් කොටසක් අරන් ලගදිම හමුවෙමු.

Monday, April 17, 2017

Information Security ගැන ඔබ දන්නේ මොනවාද? - 2 පාඩම

තවත් පරක්කු කරන්නේ මොකටද කියලා අපේ අලුත් පාඩමේ දෙවෙනි කොටසටත් අපි අාවා. අද කොටසෙන් අපි කථා කරන්නේ Information Security Management ගැන.
Security වල ප්‍රධාන පියවර 3කට බෙදන්න පුලුවන්...

  • Availability - මේ මගින් reliability නැත්නම් විශ්වාසනීයත්වය හා timely access to data and resources to authorized individuals තවත් විදියකට කියනවානම් දත්ත හා අවශ්‍ය සම්පත් ඊට බලය අැති අයට අවශ්‍ය වේලාවේදී ලබාගැනීමේ හැකියාව
  • Integrity - අපි මේකටම කියනවා අවංකත්වය කියලත්. දත්ත හා පද්ධතිවල නිරවද්‍ය බව තහවුරු කරන්න හා වැඩි කරන්න වගේම දත්ත භාවිතා කිරීමේ අයිතිය, දත්ත භාවිතය ඒවා කියවීමට අයිතියක් නැති අයගෙන් අෑත් කර තබාගැනීමත් මීට අයිතියි.
  • Confidentiality - මේ මගින් තහවුරු කරගන්නේ necessary level of secrecy, ගැලපෙන ප්‍රමාණයට රහස්‍යභාවය. ඒ වගේම unauthorized disclosure - අනවශ්‍ය හෙළිදරවු වීම් වලක්වනවා.
සාමාන්‍යයෙන් පෞද්ගලික අංශයේ ව්‍යාපාර වල දත්තවල integrity හා availability වලට වැදගත්කමක් ලබාදෙනවා.

නමුත් අාරක්ෂක අංශ වලට වැදගත් වෙන්නේ confidentiality .

Vulnerability - මේකෙන් කියවෙන්නේ අනතුරට පත්විය හැකි බව ගැන
මේකෙ අර්ථ දැක්වීම තියෙන්නේ "A software, hardware, or procedural weakness that may provide an attacker the open door he is looking to enter a computer or network and have unauthorized access to resources within the environment. "
සරලවම කියනවානම් පරිසරය තුල පරිගණකයට පහරදෙන්නෙකුට ඊට පහසුකම් සළසාදීමට උදව් වන මෘදුකාංගයක් දෘඩාංගයක් හෝ පවතින යම් දුර්වලතාවයකට අපි කියන්නෙ Vulnerability කියලා.

  • Serverයක් තුල run වෙන services
  • OS තුල අැති unpatched applications
  • Restrict වුනේ නැති Dial -in access modems
  • Firewall තුල තියෙන open ports
  • Password Management වල තිබෙන දුර්වලතා 
Threat - තොරතුරු වලට හෝ පද්ධතියට සිදුවන ඔිනෑම විදිහේ අනතුරක් . යම් පුද්ගලයෙක් හෝ දෙයක් විශේෂ අනතුරුදායක vulnerability තත්වයක් හදුනාගෙන ඒ තත්වය සමාගමට විරුද්ධව භාවිතා කිරීමත් මේ නමින් හදුන්වන්න පුලුවන්. මේ විදියට මේ අඩුපාඩු වලින් වාසි ලබාගන්න පුද්ගලයාට අපි කියනවා threat agent කියලා. 
මේ threat agent වෙන්න පුලුවන් කිහිප දෙනෙක් ඉන්නවා.
  • Firewall port හරහා පරිගණකයකට අැතුල්වන පිටස්තරයන්
  • Security policy බිද වැටෙන අාකාරයට data access කරන ඔිනෑම ක්‍රියාවලියක්
  • නොදැන වැරදි විදියට system access කරන නිළධාරියෙක්
Risk - Vulnerabilityයකින් අැතිවන වාසිය ගන්න threat agent කෙනෙකුට අැති සම්භාවිතාව හා ඊට අනුරූපව ව්‍යාපාරයට අැති බලපෑම
Exposure - මේක යම් අාකාරයක උදාහරණයක් threat agent පාඩු ලබපු, යම් හෙළිදරව් වීමක් නිසා.


Countermeasures - මේකටම තමයි safeguard කියන්නෙත්.  මේක පාවිච්චි කරලා potential risk mitigate නැත්නම් අඩු කරගන්න පුලුවන්.

  • Strong Password Management
  • BIOS නැතිනම් Basic Input/Output System වල passwords implemet කිරීම
  • කාර්යමණ්ඩලයට security awareness සම්බන්ධ training දෙන්න පුලුවන්.
Threat agent --විසින් නිර්මාණය කරනවා-->Threat --අයුතු ලෙස ගන්නවා -->Vulnerability --මෙහෙයවනවා --> Risk-- හානිවෙන්න පුලුවන් -->Asset වලට -- ගැටලුවක් වෙන්න පුලුවන් --> Exposure වලට -- countermeasure කරන්න පුලුවන් --> Safeguard -- සෘජුවම බලපානවා --> Threat agentට

අාරක්ෂාව සම්බන්ධව වගකියන්නෙ කවුද???
සමාගමක ඉහළ කළමණාකාරීත්වය සෘජුවම වගකිව යුතුයි සමාගමේ තොරතුරු හා දේපළවල  අාරක්ෂාව සම්බන්ධව. ඒක IT adminගේ වගකීමක් නෙවෙයි. ඉහළ කළමණාකාරීත්වය අවශ්‍ය සම්පත්, අරමුදල් සැපයීම වගකීම් බෙදාදීම් වගේ දේවල් කරන්න ඔින. ඒ වගේම අාරක්ෂණ ක්‍රියාවලියේ ප්‍රගතිය පාලනය මෙයාලගෙ වගකීමක්. අාරක්ෂණ ක්‍රියාවලියේ වැඩකරන කණ්ඩායම වැඩ අාරම්භ කරන්න ඔින ඉහළ කළමණාකාරීත්වයේ අදහස් වලට අනුකුලව. 
Security Policy - මේක සමාගමක අාරක්ෂණ ක්‍රියාවලියේ පිටපතක් විදියට ඉදලා පියවරෙන් පියවර අවශ්‍ය පරිදි ගොඩනැගෙන්න ඉඩලබාදෙනවා.මේක හදන්නේ ඉහළ කළමණාකාරීත්වය. 
Security Policies වර්ග 3යි.
  1. Issue Specific Policies - functional implementing policy කියන්නෙත් මෙයාටම තමයි. තවදුරටත් email policy වගේ වැදගත් issues වලට අවශ්‍ය වෙනවා.
  2. System specific policies - මෙයා represent කරන්නේ management decisions. ඒවා හුගක් දුරට අදාල වෙන්නේ actual computers, networks, applications හා data වලට.
  3. Organizational Policies - අායතනයේ අනාගත අාරක්ෂක වැඩපිලිවෙළ සම්බන්ධ scope හා directions සපයන්නේ මේ මගින්.
ඉහළ කළමණාකාරීත්වය තමයි Security administration පත්කිරීම කරන්නේ. මේ admin තනි පුද්ගලයෙක් වෙන්නත් පුලුවන්. පුද්ගල කණ්ඩායමක් වෙන්නත් පුලුවන්.මේ තනතුරේ මූලික වගකීම වෙන්නේ අාරක්ෂණ ක්‍රියාවලියේ හුගක් විෂය කොටස් පාලනය කිරීම.

Due Diligence - මේක තමයි සමාගම මුහුණදෙන අවදානම් තත්ව හදුනාගන්නා හා ඒ සම්බන්ධව පරීක්ෂණ පැවැත්වීම 
Due Care - මේ මගින් තමයි අදාල අවදානම් වලින් ගැලවීමට අවශ්‍ය countermeasures සපයන්නේ මේ මගින් 
යම් සමාගමක් මේ due diligence හෝ due care පිළිබද පුහුණුවක් ලබාගන්නේ නැත්නම් නමුත් ඔවුන්ගේ දේපළ සම්බන්ධ පැහැදිලි වගකීමක් ඔවුන්ට තිබෙනවානම් ඒ අයට විරුද්ධව නීතිමය ක්‍රියාමාර්ගයක් වුවත් ගැනීමේ හැකියාවක් පවතිනවා. යම් හානියක් වුනොතින් ඒවා ඔවුන්ගේ නොසැලකිල්ල නිසා වුන දේවල් බවට ඔවුනටම වගකීමේ පැවරීමේ හැකියාවක් පවතිනවා.

සාමාන්‍ය අාරක්ෂණ වැඩසටහනක අරමුණු 3යි.
  1. කෙටිකාලීන අරමුණු
  2. මධ්‍යකාලීන අරමුණු
  3. දිගුකාලීන අරමුණු
අාරක්ෂණ පාලන ක්‍රියාවලිය
පරිගණක අාරක්ෂණය විශේෂයෙන්ම අනවසර දත්ත පිටතට යෑම්, අනවසර දත්ත යාවත්කාලීන වීම් හෝ පරිගණක පද්ධතියම අනවසර භාවිතය හෝ වෙනස් කිරීම, Denial of Service වගේ කරුණු නිසා ප්‍රධාන කරුණු 3කට බෙදන්න පුලුවන්.
  1. Administrative Control
  2. Technical Controls
  3. Physical Controls
  • Administrative Control - policies, standards, procedures හා guidelines නිර්මාණය හා පළකිරීම මෙහි කාර්යයක්
  • Technical Controls - control mechanisms නිර්මාණය හා නඩත්තුව, රහස් පද හා සම්පත් කළමණාකරණය, හදුනාගැනීම හා සහතික කරගැනීමේ මාර්ගය, අාරක්ෂණ උපාංග, යටිතල පහසුකම් සකස් කිරීම තමයි මේකෙන් කෙරෙන්නෙ.
  • Physical Controls - තනි තනිව භාවිතාකළ හැකිවන පරිද්දෙන් දෙපාර්තුමේන්තු අතර පාලනයක් සිදුකිරීම , පද්ධති පරික්ෂාකිරීම හා අනවශ්‍ය floppy හා CD rom අාදිය ඉවත්කිරීම, lock අාදිය දැමීම හා නඩත්තුව
Information Risk Management වලින් තමයි අපේ පරිසරයේ තියෙන අවදානම් හදුනාගෙන ඒවා වර්ගීකරණය කරලා පාලනය කරගත හැකි මට්ටමකට අඩු කරගෙන නිවැරදි ක්‍රමෝපායන් වලින් තත්වය පාලනය කරන්නේ. 

අවදානම් ප්‍රධාන කොටස් කිහිපයකට වර්ගීකරණය කරන්න පුලුවන්.
  • Physical Damage- ගින්දර, වතුර, බලශක්ති අහිමිවීම් හා ස්වභාවික විපත්
  • Human Interaction - අහම්බෙන් හෝ හිතාමතා සිදුකරණ ක්‍රියාවක් නිසා නිෂ්පාදන ක්‍රියාවලියට බලපෑම් අැති කරන්න පුලුවන්
  • Equipment Malfunction - පද්ධති හෝ සවිකර අැති උපාංග වල දෝෂ
  • Inside and Outside attacks - Hacking, crack කිරීම් හා පහරදීම්
  • Data misuse - වෙළද රහස් පිටතට ලබාදීම, බොරු කිරීම්, ඔත්තු බැලීම්, හොරකම් කිරීම්
  • Data Loss - දත්ත භාවිතයේදී වන නොසැලකිලිමත් බව නිසා දැනුවත්ව හෝ නොදැනුවත්ව දත්ත අහිමි වීම්
  • Application Error - පරිගණක දෝෂ, අාදාන දෝෂ හා Buffer overflows
Risk Analysis - සිදුවුන හානිය පැහැදිලිව හදුනාගෙන වුනු හානිය තක්සේරු කරගන්නවා. ඉන්පසු අාරක්ෂක පිළියම් යෙදිය යුතු ස්ථාන සොයාගන්නවා. මේක උදව්වක් වෙනවා අවදානම් පිළිවෙළට හදාගන්න(prioritize). ඒ වගේම ඉහළ කළමණාකාරීත්වය දැනුවත් කරන්න යන වියදම් සම්බන්ධව. 


Organizational Security Policy -
මෙහි ප්‍රධාන features කිහිපයක් අඩංගුයි.




  • අාරක්ෂණ වැඩසටහනක් සකස් වෙන්නේ කෙසේද? ඒ වැඩසටහනේ අරමුණු හා ඒවාට ලගාවන අාකාරය කොහොමද? වගකීම් ලබාදෙන්නේ කොහොමද?
  • අාරක්ෂාවේ උපායමාර්ගික වැදගත්කම හා අාකෘතියට අදාලවන වලංගුභාවය පවත්වාගෙන යන්නේ කොහොමද?
  • Policy මගින් කථා කරන්න ඔින අදාල වන නීති රෙගුලාසි හා ඒවා තෘප්තිමත් වීමට ඉටු විය යුතු කාර්යභාරය සම්බන්ධව
  • අායතනයේ අරමුණු වලින් තමයි policy නිර්මාණය වීමට උදව් වෙන්නේ. policy කියන ලියවිල්ල කියවීමේදී තේරුම් ගන්න පහසු වෙන්න ඔින වැඩ කරන අය policy ලියවිල්ල අත් පොතක් විදියට පාවිච්චි කරන්න පුලුවන් විදියට.
  • policy ලියවිල්ල නිර්මාණය විය යුත්තේ හා භාවිතා විය යුත්තේ සියළු ව්‍යාපාර කටයුතු වල කොටසක් වෙන විදිහට.
  • අපේ සමාගම තමන්ගේ ස්වරූපය වෙනස් කරන සෑම වෙලාවකම, අළුත් ව්‍යාපාරයක් හා සම්බන්ධ වන සෑම වෙලාවකම හිමිකාරීත්වය මාරු වෙන සෑම මොහොතකම policy ලියවිල්ලත් ඒ හා අනුරූපව වෙනස් විය යුතුයි.
  • වෙනස් වන සෑම අවස්ථාවකදීම ඒවා දින හා අංක යොදා පීලිවෙළට තැබිය යුතුයි.
  • policy ලියවිල්ල මත පාලනය වන සියලුම පිරිස් හට අදාල අවස්ථාවලට අනුව විසදුම් ලබාගත යුතුයි. මුළුමනින්ම policy ලියවිල්ල තුලින්ම විසදුම් ලබාගත යුතු වන්නේ නැහැ.
Policies ප්‍රධාන අාකාර 3යි
  1. Regulatory - ඔිනෑම අායතනයක් තමන්ට අදාලවන industry regulations වලට අදාලවුන standards වල පවතිනවාද කියන දේ තහවුරු කරන්නෙ මේ වර්ගය විසින්
  2. Advisory - මේ වර්ගය විසින් ඉතා ප්‍රබල ලෙස employeesලා ට අවවාද කරනවා අායතනය තුල තමන්ගේ හැසිරීම් හා ක්‍රියාවන් පවත්වාගත යුත්තේ කෙසේද යන්න සම්බන්ධව
  3. Informative - අායතනයට අදාල වේවි කියලා සිතෙන විදියේ මාතෘකා පිළිබදව employeesලාව දැනුවත් කරන්නේ මේ policyයෙන්. බලකිරීමක් නොවුනත් මේකත් කරන්නෙ ඉගැන්වීමක්.
Standards - මේවා භාවිතා වන්නේ නියෝගකළ ක්‍රියාකාරකම් නීති, රෙගුලාසි වගේ දේවල් සදහන් කරන්න. මේවා internal, external හෝ mandated(රාජ්‍ය නීති රෙගුලාසි) විදියට කොටස් වලට බෙදන්න පුලුවන්. මේ standards පාවිච්චි කරනවා specify කරගන්න දෘඩාංග හා මෘදුකාංග නිෂ්පාදන භාවිතා කරන අාකාරය සම්බන්ධව. usersලා ගේ හැසිරීම නිරීක්ෂණය කරන නිර්නායකයක් විදිහටත් මෙය භාවිතා වෙනවා.

Baseline - පද්ධතිය අාරක්ෂා කරගන්න අවශ්‍ය අවම අාරක්ෂා මට්ටම කොපමණක්ද කියන දේ define කරන්න තමයි මේක භාවිතා වෙන්නේ.

Guidelines - අපිට standards වගයක් ලැබුනත් ඒවා නිවැරදි විදිහට ගැලපෙන්නේ නැත්නම් පාරිභෝගිකයන්ට හා IT කාර්යමණ්ඩලයට ලබාදී තිබෙන උපදෙස් 

Procedures - යම් අරමුණක් සාක්ෂාත් කරගන්න පියවරෙන් පියවර සිදුකරනු ලබන ක්‍රියාකාරකම් වලට කියනවා procedures කියලා.

Information Classification - අපි දත්ත අාරක්ෂා කරන්න යොදාගන්න ක්‍රම වලට යන වියදම , අායතනයක අයවැයට සෑහෙන්න බලපානවා. හොදම වියදම් අඩු ක්‍රමයට කරන විදිහ ගැන තොරතුරු දෙන්නෙ Data classification වලින්. classifications කිහිපයක් තියෙන්න පුලුවන්. ඒවාට අදාලව වෙන වෙනම ක්‍රියාවලි තියෙන්න පුලුවන්. ඒ හැම ක්‍රමයකින්ම කියවෙන්න data අරගන්නෙ කොහොමද, පාවිච්චි කරන්නෙ කොහොමද, විනාශ කරන්නෙ කොහොමද කියන කාරණාව.

Information classifications ප්‍රධාන කොටස් 2යි.

  1. Private Business Classification
  2. Military classification
1. Private Business Classification Levels- ප්‍රධාන අාකාර 4යි
  • Confidential : මේ තොරතුරු, තොරතුරු පනත නිදහස යටතේ හෙළිදරව් disclosure වලින් නිදහස් කර අැත
  • Private : පෞද්ගලිකත්ව පරිසරය මත පදනම් වූ තොරතුරු. මේවා අායතනය තුල භාවිතයට පමණයි.
  • Sensitive : අනවසර වෙනස් වීමක් නිසා රහස්‍යභාවය හෝ විශ්වාසවන්ත භාවය නැතිවීමක් විය හැකි තොරතුරු
  • Public
2.Military Classifications - ප්‍රධාන අාකාර 5යි.
  • Top Secret : රටක ජනාධිපතිවරයෙකුට වගේ හිමිවන ඉහළ මට්ටමක්
  • Secret : රහස්‍ය පරිසරයක් මත පැවතිය යුතු තොරතුරු. මේවා හෙළිදරව් වීම නිසා අති විශාල හානියක් වීමට හැකියි
  • Confidential : මේ තොරතුරු පිටතට දීම නිසා රටේ ජාතික අාරක්ෂාවට යම් හානියක් වෙන්න පුලුවන්.
  • Sensitive but unclassified - කුඩා රහසක් වුනාට පිටතට ගියොත් විශාල හානියක්වෙන්න පුලුවන්. පරීක්ෂණයක ප්‍රතිඵල / සොෟඛය තොරතුරු වගේ දේවල්
  • Unclassified
Data Owner - මේ පුද්ගලයා සාමාන්‍යයෙන් කළමණාකරණ කණ්ඩායමේ සාමාජිකයෙක්. විශේෂ business unit ක ප්‍රධානියා වශයෙන් කටයුතු කරනවා. අදාල විෂය කොටසේ පවතින සියලුම තොරතුරු වල ultimate responsibility නැත්නම් අසාමාන්‍ය වගකීමක් ඔහු වෙත පැවරෙනවා. security controls ගැන, backup requirements හා classifications වලට අදාල security requirments වල වගකීම වගේම data access කරන්න ඔින කවුද නැත්තේ කවුද කියලා තීරණය කරන්නෙත් ඔහු.

Data Custodian - මොහු තමයි  data maintain හා  protection වලට ඉන්න පුද්ගලයා. මේ රාජකාරිය හුගක් වෙලාවට IT department ම සිදුකරනවා. නිවැරදි පරිදි data backups ලබාගැනීම, කාලයෙන් කාලයට දත්තවල intergrity validate කිරීම වගේ දේවල් මෙයා කරනවා.

Hardware Software වලට නඩත්තුවක් ලබාදුන්නත් දුර්වලම විදියට අාරක්ෂාව තර්ජනයට ලක්වෙන්නෙ මිනිසුන් අතින්.
Hacker attacks, outside espionage හෝ equipment failureටත් වැඩියෙන් security issues අැතිවෙනවා අහම්බෙන් වන අත්වැරදීම්, පුහුණුව මදිකම, සිතාමතා හෝ අහම්බෙන් අැතුල්වීම් වලදි. අනාගතයේ කරන දේවල් අපිට අනාවැකි පළකරන්න බැරි නිසා හානි අවම කරගන්න තමයි උත්සාහ කරන්න ඔින. 

Nondisclosure agreements - අලුතින් වැඩට පැමිණෙන සියලු දෙනා අායතනය හා සියලු දත්ත ප්‍රවේසම් කරන බවට වන පොරොන්දුව

Separation of duties - critical task නැත්නම් භාරදූර කාර්යභාරයක් තනිව අවසන් කරන්න අමාරුයි කියන කරුණ තහවුරු කරනවා.  Separation of duties කියන ක්‍රමය පුරුදු වෙන අායතනයක් collusion සිදුකිරීමට fraud කරන්නම ඔින. 

Collusion - මේ කියන්නෙ කුමන්ත්‍රණයක් ගැන. අවම වශයෙන් මිනිසුන් දෙදෙනෙක් කණ්ඩායමක් විදියට වැඩ කරනවා වංචාවක් කිරීමට.

Personnel Controls
  • Rotation of duties - හැම වෙලාවකම යම් පුද්ගලයෙක් තනි තනතුරක හුගකාලයක් සිටීම නුවනට හුරු නෑ. ඒ විදියට නැතුව දිගටම සිටියොත් ඔහු වැඩකරන කොටස තුල අාධිපත්‍යය ඔහු රදවා ගන්නවා.
  • Mandatory Vacations - sensitive data areas වල වැඩකරන අයව අනිවාර්යය නිවාඩු යැවිය යුතුමයි. යැවුන පසු අනෙක් අයට අදාල තනතුරු බලන ගමන්ම කලින් කෙනාගේ වංචාවල් සොයා බලන්න භාවිතා කරන්නත් පුලුවන්.
Employee termination - සාමාජිකයෙකු අායතනය හැරයන අවස්ථාවක ඔහු/ අැය අායතනය හැර යා යුතුයි හැකි ඉක්මනින් කළමණාකරුවෙකුගේ අනුදැනුම යටතේ. අායතනය සතු ඔහු භාවිතා කළ සියලු භාණ්ඩ ඔහු අාපසු බාරදිය යුතුයි. අදාල පුද්ගලයාගේ අායතනය සතු සියලු ගිණුම් වසා දැමිය යුතුයි.

Security Awareness Program - අායතනික දත්තවල අාරක්ෂාවට අායතනයේ සියලු දෙනාටම යම්කාලයක පුහුණුවක් ලබාදිය යතුයි.කළමණාකාරීත්වය පාරිභෝගිකයන් හා කාර්ය මණ්ඩලයට වෙන වෙනම පුහුණුව ලබාදිය යුතුයි.

සෑහෙන ලොකු පාඩම් කොටසක් පුලුවන් කරම් සරළව ඉදිරිපත් කලේ. ගැටලු තියෙනවාකම් පහළ ලින්කුව මගින් ලබාදෙන්න යාලුවනේ.
 




Friday, April 14, 2017

Information Security ගැන ඔබ දන්නේ මොනවාද? - 1 පාඩම

සෑහෙන කාලෙකට පස්සේ තවත් අලුත් මාතෘකාවක් ගැන කථා කරන්න හිතුවා. ඒ තමයි තොරතුරු අාරක්ෂණය ගැන.
මුලින්ම කියන්න ඔින පහුගිය අවුරුදු ගානටම ඒච්ච්ර කථාවට ලක්වුන මාතෘකාවක් නෙමෙයි මේක. ඒත් තමන්ගේ තොරතුරු වල පෞද්ගලිකත්වය නැති වෙලා ඒ දේවල් පොදු මාධ්‍ය වලට නිරාවරණය වෙන්න පටන් ගත්තම මිනිස්සු හිතන්න පටන් ගත්තා තමන්ගේ privacy  නැත්නම් පෞද්ගලිකත්වයට මේ වෙන්නේ මොකක්ද කියලා...
ඒත් අන්තිමට 2001 වෙනකොට ලෝකයේ ප්‍රධාන අායතන වලින් 85%ක්ම අාරක්ෂක බිදවැටීමක් නැත්නම් Security Breach කියන සංසිද්ධිය අත්විදලා තිබ්බා තනි වසරක් අැතුලත. මේ බිද වැටීම් නිසා 64% අායතන මූල්‍යමය පාඩු විදිමින් තමයි උන්නේ...
මේ 2001 තත්වේ. නමුත් අද වෙද්දි තත්වය ගැන අමුතුවෙන් කියන්න ඔින නෑනේ. අද වෙනකොට පරිගණක අපරාධ සාමාන්‍යකරණය වෙලා.

මේ තත්වය නිසාම තොරතුරු අාරක්ෂණය කියන වෘත්තිය කරළියට අැවිත් තියෙනවා. ප්‍රධාන තණතුරු කිහිපයක් හදුනගන්න පුලුවන් මේ විදියට.

  • Chief Information Security Officer 
  • Security Architects
  • Security Consultants
  • Security Engineers
  • Security Administrators
  • Security Auditors
  • Penetration Testers(Ethical Hackers)
  • Law Enforcement and Legal Officers.
මේ වෘත්තීන් සමගම ඒ වෘත්තිකයන්ගේ දැනුම බෙදාගන්න, ඒ අයව පුහුණු කරන්න, ඔවුන්ට අවශ්‍ය ප්‍රමිතිකරණයන් සපයන්න සංවිධාන බිහිවුනා.
  • (ISC)2 - International Information Systems Security Certification Consortium
  • ISSA - Information Systems Security Association
  • CERT - Computer Emergency Response Team
(ISC)2 අය තොරතුරු අාරක්ෂණය සම්බන්ධ සියලුම තොරතුරු CBK නැත්නම් Common Body of Knowledge විදියට වර්ගීකරණය කළා. මේ වර්ගීකරණය ලොව සියලුම තොරතුරු තාක්ෂණ වෘත්තීන් විසින් පිළිගනු ලැබුවා. CBK ප්‍රධාන domain 10ක් පවතිනවා.
  1. Information Security Management
  2. Access Control Systems and Methodology
  3. Physical Security
  4. Telecommunication and Network Security
  5. Cryptography
  6. Information Security Architecture and Models
  7. Business Continuity Planning and Disaster Recovery
  8. Software Development Security
  9. Operational Security
  10. Law, Investigation and Ethics
Secure Software නිර්මාණය කිරීමේදී සැලකිලිමත් විය යුතු කරුණු මොනවාද?
  • අාරක්ෂාවද මෘදුකාංගයේ ප්‍රධාන කොටසක් කියලා මතකයේ තියෙන්න ඔින.
  • Testing හා Auditing
  • Secure Software හදන ක්‍රමය නිතරම අමාරු ක්‍රියාවලියක් වෙන්නේ අැයි කියන කාරණාව.
  • ඒවාගෙ Risk අඩු කරන්න යොදලා තියෙන උපක්‍රම මාෙනවාද? - Threat Model
  • පද්ධතියක අනෙක් කොටස් වලින් අාරක්ෂාවට යොදාගන්න වැදගත් කොටස් වෙන් කරලා තබාගැනීම
අනතුරු තක්සේරුව - මේකට අපි කියනවා අනතුරු හදුනාගැනීම කියලත්
  • අදුනගන්නවා - අාරක්ෂා විය යුත්තේ මොනවාද?  කාගෙන්ද?  කොපමණ කාලයකටද? අාරක්ෂණයේ වටිනාකම කොපමණක්ද? කොපමණ හදිසියිද?
  • නිවැරදි මෘදුකාංග ඉංජිනේරු ක්‍රම භාවිතා වෙනවාද?
අාරක්ෂක පියවර
  • Buffer Overflows වගේ සාමාන්‍ය ගැටලු උද්ගතවීම වලක්වාගන්න ඔින
  • Attacks වලින් recover  වීමේ හැකියාවක් තියෙන්න ඔින. - Security අදාල වන අවස්ථා වල Traceability හා Auditing කරගැනීම
  • Monitoring - Attack වුනාට පස්සේ වුන දේ මුළුමනින්ම සොයාගැනීමේ හැකියාවක් තිබීම
  • Privacy, Confidentiality, Anonymity - දත්තවල රහස්‍යභාවය සුරකින්න පුලුවන් විය යුතුයි
  • Authenticity - Control  කිරීමට බලතල ලැබී පැවතිය යුතුයි
  • Integrity - අනවශ්‍ය විදියට නවීකරණය වීම් වලින් වැලකිය යුතුයි
  • Availability හා Reliability - DoS නැත්නම් Denial of Service attacks වල අවදානම පහත හෙලීම 
  1. දුර්වලම මාර්ගය අාරක්ෂා කරන්න - පහරදෙන්නන් මුලින්ම බලන්නේ පහසුම මාර්ගය. මේක අදුරගන්නෙ කොහොමද?  දුර්වලම මාර්ගය කියන්නේ මෘදුකාංග ප්‍රශ්නයක් නෙවෙයි. ඒ මාර්ගය පද්ධතියේ සාමාන්‍ය කොටසක් වෙන්න පුලුවන්.
  2. අාරක්ෂක උපක්‍රමය අනිවාර්යයෙන්ම ගැඹුරු විය යුතුයි - තනි අාරක්ෂාවකට වැඩිය පියවර කිහිපයක අාරක්ෂාවක් බිදීමට අපහසුයි ඒ වගේම කාලය ගත වෙනවා.
  3. අාරක්ෂා බිදවැටීම් - අති සංකීර්ණ පද්ධති ඉතා ඉක්මණින් බිද වැටෙනවා. ඒකට යම් පිලියමක් තියෙන්න ඔින. ගැටලුවක් හම්බුනු ගමන් පද්ධතිය නැවැත්වීම හෝ බිද දැමීම හොදයි. ඊට හේතුව වෙන්නේ පද්ධතිය continue වීම තව ප්‍රශ්න වලට හේතු වෙන්න පුලුවන් නිසා. සාමාන්‍යයෙන් හොද මෘදුකාංග සැලැස්මකට පුලුවන් බිද වැටීම් කළමනාකරණය කරගන්න තමන් විසින්ම.  exceptions handling වගේ දේවල්.
  4. ඔිනවට වඩා ඔින නෑ - පද්ධතියකට ඒකෙන් කළ යුතු දේවල් වලට වඩා දේවල් ලබාදිය යුතු නෑ. යම් පද්ධතියකට පැවරී අැති කාර්යයන් ඉටුකරන්න ලබා දිය යුතු සම්පත් ලබාදිය යුතුමයි. නමුත් සීමාවකින් තොරව නෙවෙයි. අපි මේකට කියනවා Principles of least Privilege කියලා
  5. වැඩ අංශ වලට පවරන්න - අංශ වලට කැඩීම නැත්නම් අපි කියනවා modularity වැදගත් වෙනවා ගැටලුවක් අාවට පස්සේ ඒක නිවැරදිව අදුනගන්න. රාජකාරි බෙදී යාමක් කියලා සලකන්නත් පුලුවන්. මේකට ගන්න පුලුවන් සාර්ථකම උදාහරණය තමයි බැංකුවක ගිණුම් පරීක්ෂක කෙනාට cashierගේ චෙක් පත් නිකුත් කරන්න බැහැ. මේකෙදි මේ අංශ 2ම සම්බන්ධ වෙලා තිබ්බානම් යම් අංශයක බිද වැටීමක් අනෙක් අංශයට ඝෘජුවම බලපාන්න තිබුනා.
  6. සරළ කරන්න - සංකීර්ණත්වය තමයි පොඩි පොඩි bugs වලට හේතු වෙන්නෙත්. ඔිනෑම පද්ධතියක default configuration අනිවාර්යයෙන්ම ප්‍රවේශම් විය යුතුමයි. 
  7. පෞද්ගලිකත්වයට මුල්තැන - තොරතුරු අනවශ්‍ය පරිදි නිකුත් කිරීමෙන් වැලකිය යුතුයි අනිවාර්යයෙන්ම. Credit card information වගේ තියෙන තැන්වල විශ්වාසනීයත්වය අනිවාර්යයෙන්ම සුරැකිය යුතුමයි. 
  8. රහස් රැකීම - රහසක් විශාල වෙන තරමට ඒක රැකගන්න අමාරුයි.  ඒ නිසා රහසිගත තොරතුරු සියල්ලම කවදාවත් තනි තැනක රැදවීම නුවනට හුරු නැත්තේ.
  9. හැම තිස්සේම සැක කරන්න - පද්ධතියක් අාරක්ෂිත වෙන්නනම් ඒකෙ අංශ සියල්ලම ක්‍රියාත්මක විය යුතුයි. නිතරම සැකයෙන් වැඩකරන්න. කේතයන් ඔබ ලියන ලද්දක් වුවත් බාහිරින් ලබාගත්තක් වුවත් නිතරම කේතයේ ප්‍රමිතිය පිළිබද සැලකිලිමත් වන්න.
  10. සමාජ භාවිතයෙන් ප්‍රයෝජන ලබාගන්න - මෘදුකාංග ඉංජිනේරුවන් අාරක්ෂක විශේෂඥයන් නොවේ. තමන් අතින් නිර්මාණය වන කේතයකට වඩා සමාජ සම්මත නිවැරදි කේතයක් භාවිතය හොද විය හැකියි.
අද පාඩමෙන් කථා කරන්න හිතුවෙ අාරක්ෂාව ගැන පොඩි කොටසක්. මේ ගැන තව තොරතුරු ඉදිරියට කථා කරමු අපි...

Sunday, December 25, 2016

මූලික කරුණු ඉගෙන ගනිමුද? - 2 පාඩම

කලින් පාඩමට ලැබුනු ප්‍රතිචාර නිසාම දෙවෙනි ලිපියත් ඉක්මනටම පළ කරන්නයි හිතුවේ. පළවෙනි ලිපියෙන් අපි කථා කළේ Memory නැත්නම් මතකය කියන කොටස ගැන.
දෙවැනි කොටසෙන් අපි කථා කරන්න හිතුවේ අැත්තටම අපි වැඩ කරනවා වගේ පෙනෙන වැඩසටහනක නැත්නම් programme ඒකක මොකද වෙන්නේ කියලා.
ගොඩක් ලොකු වැඩසටහනක පියවර ගණනත් වැඩි නිසා අපි කථා කරමු සරළ වැඩසටහනක් වැඩකරන්නේ කොහොමද කියලා.
අපි හැමෝම දන්න විදියට පරිගණකයක මූලික කාර්යය වෙන්නේ වැඩසටහන් ක්‍රියාත්මක කිරීම. වැඩසටහනක් ක්‍රියාත්මක වෙන්න නම් ඒ වැඩසටහනට අදාල Instruction Set නැත්නම් උපදෙස් මාලාවක් මතකය තුල අන්තර්ගත වෙන්න ඔින.
උපදෙස් මාලාවකින් උපදෙස් 1ක් ක්‍රියාවට නැංවීම ප්‍රධාන පියවර 2යි.

  1. Fetch කිරීම
  2. Execute කිරීම
Fetch කිරීම යන්නෙන් අදහස් වෙන්නේ, මතකයෙන් උපදෙස බැගින් ගන්නවා CPU විසින් වරකට ඒක බැගින්.
Execute කිරීම යන්නෙන් අදහස් වෙන්නේ, ඒ උපදෙස් ඒක බැගින් ක්‍රියාත්මක කරනවා.
මුලු වැඩසටහනක්ම Execute වෙනවා කියන්නේ කලින් කියපු කරුණු දෙක මාරුවෙන් මාරුවට චක්‍රයක් වගේ සිදුවීමට...
මේ තනි උපදෙසක් Fetch වෙන්න පටන් ගන්න තැන ඉදන් ඒක Execute වෙලා ඉවර වෙන තැන වෙනකන්ම වෙන ක්‍රියාවලියට අපි කියනවා Instruction Cycle කියලා. මේ Cycle ඒක ප්‍රධාන කොටස් 2යි , Fetch Cycle හා Execute Cycle .

 Execution වෙන වැඩසටහනක් නවත්වන්න පුලුවන් ක්‍රම කිහිපයක්ම තියෙනවා.
  1. පරිගණකය ක්‍රියා විරහිත වීම
  2. අායෙත් recover කරගන්න බැරි විදිහේ errors අාවට පස්සේ
  3. වැඩසටහනට අදාල උපදෙස් ප්‍රමාණය ඉවර වුනාට පස්සේ සාමාන්‍ය විදිහට වැඩසටහන අවසන් වීම
සාමාන්‍ය පරිගණකයක වැඩසටහනක් execute වෙද්දී Program Counter කියන කුඩා රෙජිස්තරය භාවිතා වෙනවා, ඊලගට execute වෙන්න තියෙන instruction ඒකේ address ඒක තියාගන්න. අපි කලින් ලිපියේ සදහන් කළා වගේම මතකයන් අවශ්‍ය වෙන ඒක් තැනක් තමයි මේක. 
යම් උපදෙසක් execute වෙලා ඉවර වුනාම pc නැත්නම් program counter විසින් ම ඒකකින් වැඩි කරගන්නවා අගය.

Fetch Cycle -  මේ cycle ඒක පටන් ගන්නේ program counter ඒක ඊලගට execute කරන්න තියෙන උපදෙස නැත්නම් instruction ඒකේ address ඒක  තියාගන්නවා. PC මගින් ඉලක්ක කරපු address ඒක processor ඒක මගින් සොයාගන්නවා. අදාල address ඒකට ගිහින් අදාල උපදෙස අරන් අැවිත් ඒක ගබඩා කරනවා උපදෙස් රෙජිස්තරය නැත්නම් instruction register(IR) තුල.
IRගේ ගබඩා කලාට පස්සේ ඒ instruction ඒක තවදුරටත් ඊලගට execute කරන්න තියෙන උපදෙස වෙන්නෙ නෑ. ඒ නිසා program counterයට ඒ address ඒක තියාගෙන වැඩක් නෑ.
මේ නිසා program counter තමන්ගේ අගය ඒකකයකින් වැඩිකරගෙන ඊලග අගය තියාගන්නවා අළුත් instruction address ඒක. ඊලගට processorය අදාල උපදෙස අරගෙන අදාල action ඒක ක්‍රියාවට නංවනවා.

Execute Cycle - CPU විසින් අදාල උපදෙස් විකේතනය කරලා අදාල ක්‍රියාවලි සිද්ධ කරනවා.
මේ ක්‍රියාවලි ප්‍රධාන පියවර 4ක් වෙනවා.

  • ප්‍රොසෙසරය හා මතකය අතර - දත්ත ප්‍රධාන මතකය වෙත හෝ ප්‍රධාන මතකයෙන් CPU වෙත හුවමාරු වෙන්න පුලුවන්.
  • ප්‍රොසෙසරය හා අාදාන ප්‍රතිදාන උපාංග අතර - පිටින් සවි කරලා තියෙන උපකරණයක හා CPU අතර දත්ත හුවමාරු කිරීමක් වෙන්න පුලුවන්.  
  • දත්ත සැකසීම - processorයට පුලුවන් Arithmetic and Logic Unit මගින් සිදුකරන ගණිත කර්ම වලින් දත්ත පද්ධතියට අවශ්‍ය විදියට නිර්මාණය කරගන්න.
  • පද්ධතිය පාලනය කිරීම - සමහර වෙලාවට execute වෙන උපදෙස් වලින් කියවෙන්නෙ execute කරන instructions ගැන වැදගත් කාරණාවක් වෙන්න පුලුවන්! අන්න ඒ කාරණාවට පුලුවන් වේවි execute වෙන පිළිවෙළ වෙනස් කරන්න.සමහරවිට ඊලග instruction ඒක නැතුව තව 5ක් ඉස්සරහින් තියෙන instruction ඒකක් execute කරන්න කියන්න. නැත්නම් මීට instructions 5කට කලින් තිබ්බ instruction ඒකක් අායෙත් execute කරන්න වගේ instructions වුනත් ලැබෙන්න පුලුවන්.
Instruction - අැත්තටම instruction කියන්නෙ මොකක්ද?  Instruction තමයි program ඒකක කෙරෙන වැඩ පිලිවෙල තේරුම් කරලා දෙන්නේ...
Instruction ඒකක් ප්‍රධාන කොටස් 2යි. Op Code හා Address ඒක.
සාමාන්‍ය 16 bits දිග instruction word ඒකක, 4 bits යනවා opcodeට, 12 bits යනවා address කියන කොටසට.
සාමාන්‍ය 16 bits දිග integer format word ඒකක 1 bit අයින් කරන්නෙ sign bit ඒක විදියට. ඒ කියන්නෙ +ද නැත්නම් - ද  කියන දේ නිවැරදිව සොයාගන්න. ඉතිරි 15 bits වලින් තමයි ඉලක්කම හාෙයාගන්නේ.

දැන් යාලුවන්ට පොඩි හරි අදහසක් අැතිනේ මෙතන මොකක්ද වෙන්නේ කියලා...
අපි ඊලග දවසේ කථා කරමු පොඩි උදාහරණයකුත් අරගෙනම...
කට්ටියටම සුබ නත්තලක් වේවා...


Tuesday, December 13, 2016

මූලික කරුණු ටිකක් ඉගෙන ගමුද? - 1 පාඩම

අපි හුගක් වෙලාවට IT පැත්තෙන් ඉගෙන ගන්නවානම් යම් විශේෂ පැත්තක් ගැන අවධානය යොමු කරනවා. නමුත් පරිගණකයක් කියන්නෙ මොකක්ද? ඒකෙ තියෙන සේරම කොටස් ගැන ඔබ කොච්චරක් දුරට දන්නවාද?
අපි හිතුවා අපි දන්න දන්න මාතෘකා ගැන පුලුවන් විදියට තේරුම් කරලා දෙන්න.
පරිගණක වැඩසටහනක් නැත්නම් Software කියන්නෙ මොකක්ද?
මේවා වෙන වෙනම වර්ග කරන්න පුලුවන්ද?
පරිගණකයක් කියන්නෙ මොකක්ද?
අැත්තටම පරිගණකයකට විදුලිය ලැබුන පමණින් මේ තරම් වැඩ ගොඩක් කරන්නෙ කොහොමද?
අද කාලේ වෙනකොට අැතිවෙන සාමාන්‍ය ප්‍රශ්න තමයි මේවා...
පරිගණකයක් හැදිලා තියෙන්නේ පරිපථ ගණනාවක සංකලනයක් විදිහට.මේවාට උපදෙස් ලබා දෙන්න තමයි වැඩසටහන් ලිවීම නැත්නම් programming හදුන්වලා දීලා තියෙන්නේ.

  • මතකය - Memory
 ඔයාලා වොන් නියොමාන් අාකෘතිය ගැන අහලා තියෙනවානම් දන්නවා අැති ඔහුගේ මූලික අදහස් කිහිපය ගැන...
ඒ අතරින් ප්‍රධාන කරුණක් තමයි පරිගණකයකට ලැබෙන දත්ත හා උපදෙස් ගබඩා කරලා තියාගන්න උපාංගයක් තියෙන්න ඔින කියන දේ. අන්න ඒකයි අපට මතකය වැදගත් වෙන්නේ.
පරිගණකයක මතක මොඩියුලය හැදිලා තියෙන්නේ ස්ථාන කිහිපයක ඒකතුවකින්. තවත් පැහැදිලිව කියනවානම් set of locations  වලින් තමයි මේක නිර්මාණය වෙන්නෙ!
මේ location වලින් අදාල වන දත්ත ද්විතියික අංකයක් විදියට තියාගන්නවා. නැත්නම් binary number විදිහට.
මතකය ප්‍රධාන කොටස් 2යි. ප්‍රධාන මතකය හා ද්විතියික මතකය. Main Memory හා Secondary Memory.
 ප්‍රධාන මතකය, දත්ත තියාගන්නෙ තාවකාලිකව. බැරි වෙලාවත් මේ වෙලාවෙ විදුලිය නැතිව ගිහින් පරිගණකය ක්‍රියා විරහිත වුනොත් දත්ත සේරම මැකිලා යනවා. මේ මැකෙන දත්ත අායෙ හොයාගන්න බෑ.
උදාහරණයක් කියනවානම් අපි save කරන්නෙ නැතුව වැඩකරන Word Document ඒකක් ගැන හිතන්න.
අපි ඒකේ පිටු 100ක් type කරලා තිබ්බත් වැඩක් නෑ පරිගණකය off වුනොත් අපේ ලියවිල්ලේ මුකුත්ම අායෙ හොයාගන්නවත් නෑ. අන්න ඒ වගේ තමයි main memoryය වැඩ කරන්නේ.
Secondary Memory ඒක main ඒක තරම්ම දුර්වල නෑ. මෙයා තමයි දත්ත හා තොරතුරු ස්ථිරවම තියාගන්න කෙනා. Hard Disk, CD rom තමයි මේකට උදාහරණ වෙන්නේ.
පරිගණකයක තියෙන මතක පද්ධතිය යම් වර්ගීකරණයන්ට ලක් කරන්න පුලුවන්.

  • ස්ථානය අනුව - ප්‍රධාන කොටස් 2යි.

    1. අැතුලත මතකය
    2. පිටත මතකය
  1.  අැතුලත මතකය - ප්‍රධාන මතකය ගැන තමයි මේ කියන්නේ! තව Central Processing Unit ඒක ගාව තියෙන Registers, Cache memory ඒකත් මේවට තමයි අයිති වෙන්නේ. 
  2. පිටත මතකය - මේකෙන් කියන්නෙ Input/Output devices වලින් සම්බන්ධ වෙන memory parts ගැන.උදාහරණ වෙන්නේ Hard disks, Floppy disks, Tapes වගේ දේවල්.
  • Access කරන ක්‍රමය අනුව කොටස් 4කට බෙදන්න පුලුවන්.
  1. Sequential Access
  2. Direct Access
  3. Random Access
  4. Associative Access
  1. Sequential Access - මේ වචනය කියවද්දීම ඔයාලට තේරෙන්න අැති මොකක් ගැනද මේ කියලා තියෙන්නේ කියලා. මේ Access Method ඒකේදි අපි දත්ත හදුන්වනවා records කියලා. Acess වෙන්නේ රේඛීය පිලිවෙලකට. ඒකයි Sequential කියන්නේ. අාරම්භයෙන් පටන් ගන්න ඔින අවසානය වෙනකන්ම පිලිවෙලට කියවගෙන යන්න ඔින. Access කරන කාලය විචල්‍යයක්. ඒ කියන්නේ වෙනස් වෙන්න පුලුවන්. හොදම උදාහරණය තමයි Tape. අතීතයේ නැත්නම් මේ අපිත් දන්න කාලේ සින්දු, කවි වගේ දේවල් වලට පාවිච්චි වුන කැසට් පීස් ගැන තමයි මේ කියන්නෙ. අනික මේ වර්ගයේදී අපි යම් තැනක් හොයනවානම් හිතන්නකෝ සින්දුවක පදයක් කියලා, මුල ඉදන්ම හෙමින් හෙමින් බලන්න වෙනවාමයි
  2. Direct Access -  මේකෙදි වෙන්නේ සෘජුවම Acess කරනවා මතකය. මේක හුගක් වෙලාවට දෘඩ මතකයට පාවිච්චි කරනවා. දෘඩ මතකය නැත්නම් අපි කියන Hard Disks, දත්ත තියාගන්න sectors භාවිතා කරනවා. Sectors දෙකක් තමන්ගෙ පරතරය තියාගන්න  Inter sector gap තියාගන්නවා. අදාල වෙන ප්‍රදේශයට ළගා වෙන්න Direct Access Method පාවිච්චි කරලා ඒ ප්‍රදේශය ලැබුනාට පස්සේ Sequental Access Method පාවිච්චියෙන් අදාල ප්‍රදේශය තුල සොයාගන්නවා ඔින කරන දත්තය.
  3. Random Access - නමේ විදිහටම මේක random. තවත් විදියකට කියනවා නම් අහඹු ලෙස තමයි මෙයා access කරන්නේ! , මේ නම කියද්දිම ඔයාට පරිගණකයේ වැදගත්ම කොටසක් මතක් වෙන්න ඔින , ඒ තමයි Random Access Memory. නැත්නම් අපි ප්‍රධාන මතකය කියනවා මෙයාට. මේක මතකය ගබඩා වෙන තැන අල්ල ගන්නේ අහඹු ලෙස. Access කරන්නේ directly. 
  4. Associative Access - මේ ක්‍රමයේදි දත්ත access කරනවා වගේ පෙනුනට අැත්තටම දත්ත වලින් කුඩා කොටසක් තමයි access වෙන්නේ.මේ ක්‍රමයේ හොදම උදාහරණය තමයි cache memory. කෑෂ් මතකය ගැන කිව්වොත් අපේ අනික් මතකයන්ට වඩා අපිට පාවිච්චි වෙද්දි දැනෙන මතකයක්. Browserයක සාමාන්‍යයෙන් අපි cache cookies clear කරනවා. මේවා clear කරන්න හේතුව වෙන්නේ cache මතකය අපි කලින් බ්‍රවුසරය භාවිතා කරලා ගිය වෙබ් අඩවි සම්බන්ධ තොරතුරු තියාගන්නවා. තොරතුරු කිවුවට තොරතුරු වල පොඩි ලින්කුවක් වගේ. අදාල ලින්කුවෙන් අපිටම හෝ වෙන කෙනෙක්ට අදාල වෙබ් අඩවියට ලගා වෙන්න පුලුවන්.
අනෙක් ප්‍රධාන කාරණාව තමයි මතක ධූරාවලිය නැත්නම් Memory Hierarchy කියන්නේ.

රූපයෙන් පෙන්වනවා වගේම උඩින්ම තියෙන්නෙ ධාරිතාවයෙන් අඩුම, හැකියාවෙන් උපරිම, මිළ ගණන් වලින් උපරිම, වැයකරන කාලය අඩුම මතක උපාංග. පහළට යන්න යන්න ඒවාගේ අගයන් වැඩි ඒවා අඩු වෙනවා. අඩු දේවල් වැඩි වෙනවා.
රෙජිස්ටර් මතකය
1 මට්ටම් කෑෂ් මතකය
2 මට්ටම් කෑෂ් මතකය
ප්‍රධාන මතකය
දෘඩ මතකය

මෙන්න මේ විදිහටයි ඒ ධුරාවලිය පැවතුනේ...
අද අපි කථා කළේ මතක මොඩියුලය ගැන, ඊලග පාඩමෙන් තවත් මොඩියුලයක් ගැන අපි කථා කරමු.


Tuesday, September 13, 2016

පැස්කල් ඉගෙන ගනිමු - 2 පාඩම

පසුගිය සටහන ගැන කථා කරනවානම් ඒ ගැන පලවුන අදහසක් තමයි පයිතන්, ජාවා වගේ භාෂා පාවිච්චි වෙන තැන් දැනගෙන උන්නත් පැස්කල් පාවිච්චි වෙන්නෙ මොනවගේ වෙලාවටද කියන කාරණාව. මේක පාවිච්චි වෙන තැන් කථා කරනවානම් ප්‍රධාන තැන් කිහිපයක්ම දකින්න පුලුවන්.
  1. Skype
  2. Total Commander - Shareware file manager for Windows for 95/98/ME/NT/2000/XP/Vista/7/8/8.1/10 
  3. TeX - Typesetting System
  4. Embedded Systems
Pascal මුලින්ම හදුන්වා දෙන්නෙ 1970දි  Niklaus Wirth විසින්. පරිගණක සංවර්ධනයට බ්ලේස් පැස්කල්ට කරන ගෞරවයක් විදියට තමයි මේ භාෂාව ඒ විදියට නම් කෙරුවේ...
 පැස්කල් වැඩසටහන් වැඩ කරන්නනම් compilers දාන්න ඔින අනික් languages වගේම තමයි.
මේ  compilersඅතර ප්‍රධානම කිහිපයක් ගැන විස්තර කියන්නම් මම...
  1. Turbo Pascal
  2. Delphi
  3. Free Pascal
  4. Turbo51
  5. Oxygene
  6. GNU Pascal (GPC)
Turbo Pascal මෙතනින් download කරගන්න.
Delphi මෙතනින් download කරගන්න.
Free Pascal මෙතනින් download කරගන්න.

මේ ප්‍රධාන කාරණා වලින් පස්සෙ අපි කථා කරමු අලුත් version ඒකේදී කොහොමද pascal වැඩසටහන් ලියන්නෙ කොහොමද කියලා...

program HelloWorld
uses crt;

(*Here are he main program block starts*)
begin
       writeln("Hello,World");
       readkey;
end.

වර්තමානයේදී පැස්කල් වැඩසටහනක් ලියන්නෙ මේ විදිහට
  • program HelloWorld - වැඩසටහන පටන්ගන්නේ මේ විදිහට වැඩසටහනේ නමත් ඒක්කම
  • uses crt -  මේක preprocessor command ඒකක්. මේකෙන් compile කරන්න කලින් compiler ඒක crt unit ඒකට යනවා.
  • begin , end - ප්‍රධාන program ඒකේ අාරම්භය begin, අවසානය end කියන statement දෙකෙන් කරන්නෙ.ප්‍රධානම කාරණාව තමයි end statement ඒක ඉවර වෙන තැනදි Semicolon ඒක වෙනුවට (.) fullstop ඒකක් පාවිච්චි වෙනවා.
  • (*...*) මේ කොටසින් කියවෙන්නෙ comment ඒකක් ගැන.
  • writeln("Hello, World") - writeln() කියන්නෙ function ඒකක්... මේකෙන් Hello, World කියන ඒක print කරනවා... 
  •  readkey - මේ statement ඒකෙන් program ඒක pause කරන් ඉන්නවා key ඒකක් press වෙනකන්.
  • අන්තිමට දක්වන්නේ end. statement ඒක 
 pascal වල reserved words ගණනාවක් තියෙනවා.

and array begin case const
div do downto else end
file for function goto if
in lable mod nil not
of or packed procedure program
record repeat set then to
type until Var while with

අැත්තටම මට ඔින වුනේ පැස්කල් ඉගෙන ගන්න අාස අයට පොඩි තල්ලුවක් දෙන්න. තව අලුත් අදහස් තියෙනවානම් අපිට කියන්න. අපි කථා කරමු යාලුවනේ... ඊලගට කථා කරන්න ඉන්නෙ පයිතන්... යාලුවන්ගේ අදහසුත් කියන්න ඒ ගැන.


Saturday, September 10, 2016

පැස්කල් ඉගෙන ගනිමු - 1 පාඩම

සෑහෙන කාලෙකට පස්සෙ අද අායිමත් පාඩමක් දාන්න හිතුනා. අපේ යාලුවො කිහිප දෙනෙක්ම කියලා තිබ්බා පැස්කල් හා පයිතන් ගැන කථා කරන්න කියලා...
ඉතින් අද අපි කථා කරන්න හිතුවෙ පැස්කල් ගැන. මේ ගැන මටත් ලොකු දැනුමක් නැති වුනත් අපි කථා කරන් යමු ඉස්සරහට...

මුලින්ම අපි බලමු සරලම pascal program ඒකක් මොන වගේද කියලා...

PROGRAM Simple (output);
BEGIN
         write('මගේ පලවෙනි පැස්කල් වැඩසටහන');
END.

මේ තියෙන්නෙ බොහොම සරළ program ඒකක්. අපිට දකින්න පුලුවන් ප්‍රධාන වචන 3ක් මේකෙදි. PROGRAM, BEGIN, END ... මේ වචන 3ම අනිවාර්යයෙන්ම පැස්කල් program ඒකක තියෙන්නම ඔින කරන වචන 3ක්. සෑම පැස්කල් program ඒකකම PROGRAM කියන වචනෙන් පටන් අරන් END කියන වචනෙන් ඉවර වෙනවා. ඔබට පුලුවන් ඔබ කැමති නමකින් program ඒකක් නම් කරන්න. මේ program ඒකේ දක්වලා තියෙන්නෙ Simple කියන නම. output කියන කොටසින් දක්වලා තියෙන්නෙ මේ program ඒකෙන් දත්ත ඒලියට යනවා කියන කරුණට. අන්තිම පේළි 3ට කියන්නෙ PROGRAM BODY කියලා.

අපිට ගැලපෙන විදියෙ වචන වලට අපි කියනවා Reserved Words කියලා. නමුත් මේ වචන වලට අපි කැමති කැමති වචන පාවිච්චි කරන්න බෑ. පාවිච්චි වෙන වචන අකුරකින්ම පටන් ගන්න ඔින. පාවිච්චි කරන්න පුලුවන් ඒක වචනයක් විතරයි. ! වගේ විශේෂ symbols පාවිච්චි කරන්න බෑ...

ඊලග වැදගත්ම කාරණාව variables.  variables declare වෙන්න ඔින program ඒකේ පටන් ගන්න තැනදීමයි. ඒකට භාවිතා වෙන්නෙ VAR කියන වචනෙ.

VAR
       Start, step, count, finish            :Integer;
       Radius, circumference, area     :Real;
       Error, Exit      : Boolean;

ඔයාලට දකින්න පුලුවන් statement ඒකක් අන්තිමට semicolon පාවිච්චි වෙනවා අනිත් languages වල වගේම. නමුත් මේ language ඒකේ දි පාවිච්චි වෙන සමහර Reserved Words වන BEGIN END වලට semicolon පාවිච්චි වෙන්නෙ නෑ.

මේ language ඒකේදී comment දාන්න curly brackets පාවිච්චි වෙනවා.  curly brackets අැතුලෙ දාන ඔිනම ඒකක් comment ඒකක් විදියට තමයි සලකන්නේ...

ඊලගට අපි කථා කරන්නෙ Assignment Operation ඒක ගැන. ඒකත් තරමක් දුරට වෙනස් වෙනවා. නිකන්ම "=" ලකුණ නෙවෙයි මේකෙදි භාවිතා වෙන්නෙ. පාවිච්චි වෙන්නෙ ":=" ලකුණ. වැඩිපුර colon ඒකකුත් ඒනවා. අපි සැලකුවොත් Integer type ඒකට අයිති variable ඒකක් ගත්තොත් Start වගේ, අපි ඒකට 1 කියන අගය යොදනවනම් අපිට ලියන්න පුලුවන් start := 1 ; විදියට.

PROGRAM Sum (input, output) ;
VAR
      x,y,Sum :Real;
BEGIN
      Write (' Enter the first number:  ');
      Read(x); Writeln;
      Write('  Enter the Second Number:  ');
      Read(y); Writeln;
      Sum := x+ y;
     Writeln('  Sum of x and y =  ',sum:8:3);
      END

 මේ program ඒකෙන් කරන්නෙ සංඛ්‍යා 2ක් ඒකතු කරන ඒක.
අපි පලවෙනි පෝලිමේ ඉදන්ම කථා කලොත් PROGRAM කියන්නෙ reserved word නැත්නම් keyword ඒකක්. Sum කියන්නෙ program ඒකේ නම. වරහන් අැතුලේ තියෙන input output කියන වචන දෙකෙන් කියන්නෙ අපි මේකෙ වැඩ කරන්න දත්ත අැතුල් කරන්න ඔින කියන ඒක හා මේකෙන් අපිට දත්තයක් පිලිතුරක් විදියට ඒලියට ගන්න පුලුවන් කියන දේ.
VAR කියන්නෙ අපි කලින් කීවා වගේම variables වලට පාවිච්චි වෙන වචනයක්.
ඊලගට තියෙන්නෙ program body ඒක.
BEGIN END කියන කොටස අැතුලෙ තියෙන්නෙ ඒක. Write කියන කොටසෙන් අපිට පෙන්වන්නෙ output ඒකක්. Read කියන වචනෙන් අපිට පෙන්වන්නෙ අපි ලබා දෙන්න ඔින input ඒකක් ගැන.
අන්තිම පෝලිමට කලින් පෝලිමේ තියෙන Writeln('  Sum of x and y =  ',sum:8:3); පෝලිම තමයි මේකෙ වැදගත්ම පෝලිම.

Writeln වලින් කියන්නෙ output ඒකක් ගැන කියලානම් හැමෝටම තේරෙනවා අැති. ඒත් sum:8:3 කියන කොටස ගැන කථා කරනවානම් මේකෙ පලවෙනි වචනයෙන් ලැබෙන්න ඔින sum කියන variable ඒකේ අගය,  ඊලග ඉලක්කම වුන 8 න් කියවෙන්නෙ character positions කීයක් උත්තරයේ තියෙන්න ඔිනද කියන කාරණාව, අන්තිම ඉලක්කම වුන 3න් කියවෙන්නේ දශම ඉලක්කම් කීයක් යොදන්න ඔිනද කියන ඒකයි.

යාලුවන්ගෙ අදහස් මට බොහොම වටිනවා. තවත් කරුණූ ඒකතු කරන්න මට මාර වටිනවා ඔබතුමන්ලාගෙ අදහස් හා යෝජනා සියල්ලම.

ඊලගට මේ ලිපියේ දෙවෙනි කොටසත් අරගෙන නැවතත් ඒන්නම්....
  

Sunday, July 31, 2016

Networking ඉගෙන ගනිමු - 2 පාඩම

ඔන්න අපි Networking දෙවෙනි පාඩමත් අරගෙන අායෙත් අාවා.අද අපි කථා කරන්න හිතුවෙ Networking නිර්මාණය වෙන්න වුවමනා කරන දේවල් ගැන කථා කරන්න.
පරිගණක , Servers, Workstations, NICs, Repeaters, Hubs, bridges, switches, Modems, Routers වගේ දේවල් මේ ගොඩට අයිති වෙනවා...

Network ඒකක් කියන්නෙ පරිගණක 2ක් හෝ ඊට වඩා ගණනක් ඒකිනෙකට සම්බන්ධ වීමක්.

Server :- සාමාන්‍යයෙන් server ඒකක් කියන්නෙ පරිගණයක්ම තමයි.විවිධ වර්ග වල ජාල ක්‍රියාකාරකම් වලට අදාල වෙන මෘදුකාංග ක්‍රියාත්මක  වෙනවා මේකෙ. අදාල network ඒකේ පවතින අනෙක් පරිගණක වලට අදාල සේවා සපයනවා මේ ගොල්ලො. server ඒකක් පාරිභෝගිකයෝ රාශියක් වෙනුවෙන් සේවා සපයනවා වගේම ඔවුන්ට අවශ්‍ය සම්පත් ලබාදෙනවා...
සාමාන්‍යයෙන් යම් විශේෂ කාර්යයක් වෙනුවෙන් තමයි මේවා නිර්මාණය වෙන්නෙ.
  1. File Server :- network ඒකේ තියෙන විවිධ මෘදුකාංග හා දත්ත ගොනුවල ගබඩාවක් 
  2. Mail Server :- email function ඒකෙන් වැඩ කරගන්න පාවිච්චි වෙන තැපැල් කන්තෝරුවක් කියන්න පුලුවන්.
  3. Printer Server :- network ඒකට අදාල ප්‍රින්ටර් උපකරණ සමග ගනුදෙනු කරනවා.
  4. Web Server :-  Hypertext Transfer Protocol නැත්නම් HTTP ඒක run කරන ගමන් වෙබ් සම්බන්ධ ක්‍රියාකාරකම් කළමණාකරණය කර ගන්නවා.
 Workstations :- තනි PC ඒකකට වඩා වේගවත් වගේම දරාගැනීමේ හැකියාව වැඩියි. තනිවම වැඩ කරන පරිසරයක වගේම පරිගණක ජාලයක කොටසක් වශයෙනුත් පවතින්න පුලුවන්. අවශ්‍ය වෙන ඔිනෑම වෙලාවක පරිගණක ජාලයේ පරිගණක වලට සම්පත් සපයන්න පුලුවන්.

Network  Interface Cards :- සාමාන්‍යයයෙන් පරිගණකයක් network ඒකකට connect වෙන්නනම් පරිගණකයට අනිවාර්යයෙන්ම NIC ඒකක් සවි කරලා තියෙන්න ඔින. Network card නැත්නම් Network Adapter ඒකක් කියන්නෙත් මේකටම තමයි ඉතින්. වර්තමානය වෙනකොට බාහිරින් වගේම රැහැන් රහිත NIC පවා දැක ගන්න පුුලුවන්.

Repeaters :- සාමාන්‍යයෙන් සංඥා නැත්නම් Signal  සාමාන්‍ය රැහැනකින් හරි වාතය නැත්නම් අවකාශය හරහා ගමන් කරද්දී ක්‍රම ක්‍රමයෙන් දුර්වල වෙනවා. Repeater ඒකකින් දුර්වල සංඥා  වර්ධනය කරනවා ඉහල කොටසකට යන්න කලින්. Repeater ඒකක් පාවිච්චි කරලා network ඒක  විශාල ප්‍රදේශයක හරි ප්‍රමාණයෙන් වැඩි දිගකට අැදගන්න පුලුවන්. මේ නිසාම Repeater ඒකකට Extender කියන නමත් පාවිච්චි වෙනවා. රැහැන් සහිත Repeater ඒකකට රැහැන් රාශියක් සම්බන්ධ කරන්න පුලුවන් වගේම රැහැන් රහිත ඒකකට ජාල පරාසය නැත්නම් Network Range ඒක වැඩි කරන්න පුලුවන්.

Hubs :- හබ් පාවිච්චි වෙන්නෙ ඒක් ඒක් උපකරණ සම්බන්ධ කරන්න.ඒක් ඒක් උපකරණ කියන්නෙ workstations, servers, printers වගේ ඔිනෑම දෙයක්. මේක ports කියන කුඩා කුහර වලින්  තමයි මේකට උපකරණ සම්බන්ධ වෙන්නෙ. Ports 4,8,12 වශයෙන් පවතිනවා.

Bridges :- පාලමකින් කරන්නෙ ගොඩබිම් 2ක් යා කරන ඒකනෙ. මේ bridges වලිනුත් කරන්නෙ වෙන්ව පවතින network 2ක් සම්බන්ධ කිරීමක් හරි තනි network ඒකක් ජාල 2කට වෙන් කිරීමක් හරි. 2 layer switch නැතිනම් ලේයර් 2ක switch උපකරණයක් විදියටත් මේක හදුන්වන්න පුලුවන්. Bridge ඒකකට හුගක්  දුරට hubs තමයි සම්බන්ධ වෙන්නෙ.

Switches :- switch ඒකක් කියන්නෙ හුගක් වෙලාවට තනි ජාලයකට පරිගණක කිහිපයක් සම්බන්ධ කරන්න ගන්න උපකරණයක්. සාමාන්‍යයෙන් අපි කියනවා හබ් ඒකකට වඩා ස්විච් ඒකක් බුද්ධිමත් කියලා. අපේ පරිගණක ජාලයේ තියෙන පරිගණකයකට තවත් ඒකක් හා සම්බන්ධ වෙන්න ඔිනනම් හබ් ඒක නැත්නම් මේ ස්විච් ඒක මැද්දෙන් යන්න ඔින.

අපි හිතමු 1 පරිගණකය 9 පරිගණකයට සම්බන්ධ වෙන්න ඔින කියලා, ඉතින් මේ 1 PC ඒක ඒ පනිවිඩය හබ් ඒකට හරි ස්විච් ඒකට හරි දෙනවා. හබ් ඒක මේ පනිවිඩය අරගෙන හැමෝම ලගට යනවා. ඒයාගෙන් 9කියලා තහවුරු වුනොත් තමයි ඒයාට පනිවිඩේ බාර දෙන්නෙ. ඒ්ත් ස්විච් ඒකක් ඒ පනිවිඩය අරගෙන කෙලින්ම හරි කෙනා ගාවට යනවා. ඒ නිසයි ඒයා බුද්ධිමත් බවින් වැඩියි කියන්නෙ...
ඒ වගේම switch ඒකත් හුගක් වෙලාවට bridge ඒකක් වගේම තමයි, ඒත් bridge ඒකකට වඩා වේගය හා හැකියාව කාර්යක්ෂමතාව sweitch ඒකේ වැඩියි. ස්විච් ඒකක් multiple bridge ඒකක් විදියට පැහැදිලි කරන්න පුලුවන්.

Modem(Modulator, Demodulator) :- දුරකථන රැහැන් හරහා පරිගණකයේ ඩිජිටල් සංඥා, අැනලොග් සංඥා බවට හරවන්නෙ මෙයා. ඒ වගේම ඒ ක්‍රියාවලියෙ අනිත් පැත්ත කරන්නත් මේකට පුලුවන්. පරිගණක modem භාවිතයෙන් තවත් පරිගණකයක් ඒක්ක දුරකථන රැහැන් හරහා සම්බන්ධ වෙන්න පුලුවන්.

Routers :- නෙට්වර්ක් 2ක් හෝ ඊට වැඩි ගණනක් ඒකිනෙකට රැහැන් සහිත හෝ රහිතව සෙට් කරලා ඒවා අතර තියෙන දත්ත හුවමාරු කර ගන්නවා. ඒ දත්ත වල හුගක් වෙලාවට අන්තර්ගත වෙනවා address information, මේවා භාවිතයෙන් router ඒකට පුලුවන් මේ දත්ත යන්නෙ network දෙකකටද නැත්නම් තනි ඒකේම දෙපැත්තකටද කියලා.

මේ පාර ලිපිය මෙතනින් ඉවරයි, හිතනවා මේ ලිපියත් ඔයාලට වැදගත් වේවි කියලා, ඊලග ලිපියෙන් අපි කථා කරමු network ඒකක් කොටස් වලට බෙදන්න පුලුවන් ක්‍රම ගැන...

Tuesday, July 19, 2016

Networking ඉගෙන ගනිමු - 1 පාඩම

පහුගිය කාලෙ අපි කථා කරපු පාඩම් මාලාවලින් පස්සෙ අද අපි අලුතින්ම කථා කරන්න පටන් ගත්තෙ Networking ගැන. ගොඩක් ගැඹුරට යන පාඩම් මාලාවක් පුලුවන් තරම් සරලව ඉදිරිපත් කරන්න අපි බලාපොරොත්තු වෙනවා.

අපි මුලින්ම කථා කරමු Networking වල ඉතිහාසය ගැන. Networking  කියන්නෙ මොකක්ද, ඒකෙ අැතිවීමට බලපාපු දේවල් මොනවාද කියන දේ...

අපි මුලින්ම කථා කළොත් 1950 යුගයේ පරිගණක ගැන.ඒ කාලෙ තමයි පරිගණක වල මුල්ම යුගය. මේ කාලේ පරිගණක කාමරයකට වඩා විශාලයි.ඒ වගේම අධික මිලකට තමයි මේවා පැවතුනෙත්. බොහොම වැදගත් අායතනයක වුනත් වැඩිම වුනොත් පරිගණක 2ක් හෝ 3ක් තියෙන්න අැති. ඒ වගේම අපි අාදානයන් සමූහයක් (Batch) ලබා දීලා ප්‍රතිදානයක් ගන්න අායෙත් වෙන වෙලාවක් වෙනකන් බලන් ඉන්න වෙනවා. මේවට තමයි අපි කියන්නෙ Batch Processing Systems කියලා. මේ systems පදනම් වෙලා තියෙන්නෙ Mainframe ඒකකයක් මත. User අාදාන විදිහට භාවිතා කරන්නෙ punch cards. user punch cards වල දත්ත හා code ඒක අාදානය කරලා operator දත්ත පරිගණකයට අැතුල් කරනවා. userට result ලැබෙන්නෙ ටික වෙලාවක් ගියාට පස්සෙ. මේ Batch Processing System ඒකක අඩුපාඩු ගොඩක් තිබුනා. ලොකුම අඩුපාඩුව තමයි ගොඩක් වෙලාව නාස්ති වුන ඒක. ඒ වගේම පාරිභෝගිකයන්ට තමන්ගෙ කැමැත්ත අනුව වැඩ කරගන්න බැරි වුන නිසා මේක ඒපා වෙන්න පටන් ගත්තා. ඒ වගේම userට බැරි වුනා වෙන process ඒක හදිස්සියකදි වෙනස් කරගන්නවත්...

මේ ප්‍රශ්නත් ඒක්කම 1960 යුගය වෙනකොට පරණ තිබුණු ප්‍රශ්න වලට පිලිතුරු විදියට Multi Terminal Systems කරලියට අාවා. මේකෙන් usersලා කිහිප දෙනෙක්ට ඒකම වෙලාවෙ වැඩ කරන්න පුලුවන්. ඒ වගේම මේ computer ඒක කලින් ඒක වගේ නෙමෙයි අාපහු ප්‍රතිචාර දක්වන speed ඒකත් වැඩියි . ඒ නිසා වැඩ කරන අයට දැනෙන්නෙ නෑ මේකෙ usersලා ගොඩක් වැඩ කරනවා කියලා. terminal ගොඩක් තියෙනවා දත්ත අාදානය කරන්න. network ඒකක් වගේම තමයි හුගක් වෙලාවට.

Networking වල අාරම්භය විදියට අපි සලකන්නෙ මේ Multi terminal systems.

  • SAGE - Semi Automatic Ground Environment.
මේක Air Defense System ඒකක්. සෝවියට් රාජ්යය ඒල්ල කරපු න්‍යෂ්ටික බෝම්බ වලින් බේරෙන්න 1958දි North American Aerospace Defense Command කණ්ඩායමේ හැදුවේ අැමරිකන් ගුවන් හමුදාව වෙනුවෙන්... ප්‍රධාන මධ්‍යස්ථාන 3ක් පදනම් කරගෙන දිශා මධ්‍යස්ථාන 24ක් හා දුර ගමන් රේඩාර් මධ්‍යස්ථාන 100 කටත් වැඩියෙන් මත මේක ගොඩනැගුනේ.
සම්පූර්ණයෙන්ම සන්නද්ධ ගත වුනේ 1963දී. දත්ත හුවමාරුවට දුරකථන මාර්ග හා රේඩියෝ සංඥා පාවිච්චි වුනේ...
පසුකාලීනව සෝවියට් රුසියාව intercontinental ballistic missiles නිකුත් කරන්න පටන් ගත්තා. මේ මිසයිල වලින් SAGEට ගැලවීමක් තිබුනෙ නෑ. මේ මිසයිල ප්‍රහාරයකින් ප්‍රධාන මධ්‍යස්ථානයක් බිද වැටුනට පස්සෙ අනෙකුත් සියලුම ජාල බිද වැටුනා. මේකට විසදුමක් විදියට ගෙනාවෙ බලය විහිදුවන ලද පද්ධතියක්.

  • ARPANET - Advanced Research Projects Agency Network
1969දි මේක නිර්මාණය වුනේ.SAGE වලදි භාවිතා කරලා තිබ්බෙ ඒකම විදිහෙ යන්ත්‍ර, නමුත් මේකෙදි විවිධ වර්ග වල පරිඝණක ඔවුන් යොදාගත්තා. මේවා ඒකිනෙකට සම්බන්ධ කළේ IMP- Interface Message Processor මගින්. මේකෙ ප්‍රාථමික අරමුණ වුනේ අාරක්ෂක මර්මස්ථාන, විශ්ව විද්‍යාල  ඒකිනෙකට සම්බන්ධ කරන්න. අවසානයේදී මුලු අැමරිකාව පුරාම මේ ජාලය පැතිරුණා. අන්තර්ජාලයේ මූලික පියවරක් විදියට මේක දක්වන්න පුලුවන්.
ARPANET නිසා ලෝකයට ලැබුනු දායාදයන් කිහිපයක්ම පැහැදිලිවම දක්වන්න පුලුවන්.

  1. Email - 1971 
  2. Telnet - 1972
  3. FTP - 1973 - File Transfer Protocol
  • NSFNET - National Science Foundation Network
NFS අායතනය ඔවුන්ගේ තියෙන සුපිරි පරිගණක 6 ඒකිනෙකට සම්බන්ධ කරන්න පුලුවන් විදියේ  Backbone Network (ප්‍රධාන ජාලයක්) ඒකක් ගොඩනැගුවා. ඒ වගේම මේක සියලුම විශ්ව විද්‍යාල පර්යේෂණ කණ්ඩායම් වලට විවෘත ජාලයක් කලා. ඒකිනෙක අාසන්නයේ තිබ්බ ප්‍රාදේශීය ජාල 20කට අාසන්න ප්‍රමාණයක් ඒකතු කරලා දහස් ගානක් විශ්වවිද්‍යාල වලට, පර්යේෂණාගාර වලට, පුස්තකාල වලට, කෞතුකාගාර වලට ඒවා භාවිතා කරන්න පහසුකම් හදලා දුන්නා.

1990 වන විට backbone network සංකල්පය බිද වැටුනා.ඒ වෙනුවට වාණිජ තරගකාරී බවට හැරවිය හැකි පද්ධතියක් නිර්මාණය වුනා. අපි හදුන්වනවා මේක අන්තර්ජාලයේ මුලික අාරම්භක අවස්ථාවක් විදියට.

අපි ඊලග දවසේ අපි කථා කරමු Network ඒකක් කියන්නෙ මොකක්ද, හා ඒකේ භාවිතයන් ගැන.





Wednesday, June 22, 2016

Software Engineering ඉගෙන ගනිමු - 7 පාඩම

ඔන්න අද Software Engineering වල අන්තිම පාඩමත් අරගෙන අාවා. අද අපි කථා කරන්නෙ අවදානම් කලමණාකරණය ගැන. නැත්නම් Risk Management.

අවදානම් කළමණාකරණයෙදි කථා කරන්නෙ අවදානම් හදුනාගැනීම හා ඒකෙන් ව්‍යාපෘතියට වන හානිය පුලුවන් තරම් අවම කරගන්න අාකාරය ගැන.අවදානමක් කියන්නෙ සම්භාවිතාවයක්  යම් පීඩාකාරී
ප්‍රතිපලයක් අැති කරන්න පුලුවන්. 
ඒක කාල සටහනට වගේම අපට තියෙන සම්පත් වලටත් බලපාන්න පුලුවන්. ඒක අපි සංවර්ධනය කරන software ඒකේ quality නැත්නම් ප්‍රමිතිය ගැන වගේම software ඒකේ performance ඒක නැත්නම් කාර්යඵලයට බලපෑම් අැති කරන්න පුලුවන්.
හදලා ඉවර වුනාට පස්සෙ ඒක රෑක බලාගන්න කාලයේදි ව්‍යාපාරික වශයෙන් අවදානම් වලට ලක්වෙන්න පුලුවන්. 

අවදානම් කලමණාකරනය ප්‍රධාන පියවර 4ක් යටතේ වර්ග කරන්න පුලුවන්.
  1. Risk Identification - අවදානම් හදුනාගැනීම - ව්‍යාපෘතියට තියෙන සියලුම අවදානම් මාෙනාද කියලා හදුනාගන්න ඔින.
  2. Risk analysis - අවදානම් විශ්ලේෂණය - අවදානමක් වෙන්න තියෙන ඉඩ ප්‍රමාණය හා ඒකෙන් පස්සෙ වෙන්න පුලුවන් ප්‍රතිවිපාක ගැන 
  3. Risk Planning - අවදානම් ඉවත් කිරීම් සැලසුම් කිරීම - අවදානම් නිසා වෙන්න පුලුවන් හානි වලක්වගන්න හරි අවම කරගන්න හරි සැලසුම් කරනවා.
  4. Risk Monitoring - අවදානම් පාලනය කිරීම -  ව්‍යාපෘතියේ සියලුම අවදානම් පාලනය කිරීම
  • Risk Identification
අවදානම් හදුනාගැනීම ප්‍රධාන කොටස් 5කට වෙන් කරන්න පුලුවන්.
  1. Technology Risks - තාක්ෂණික අවදානම් - database ඒකක අැතිවෙන්න පුලුවන් ප්‍රශ්න ඒක උදාහරණයක්
  2. People Risks - මිනිසුන් නිසා අැතිවන අවදානම් - staff ඒකේ අැතිවන ප්‍රශ්න
  3. Organizational Risks - සංවිධානය නිසා අැතිවන අවදානම් - Organization ඒකේ පාලනය මාරු වෙලා වෙනස් මූනු තනතුරු වලට පත්වීම
  4. Requirements Risks - ව්‍යාපෘතියේ අවශ්‍යතා නිසා අැතිවන අවදානම් - පාරිභෝගිකයාට අවශ්‍යතා ගැන තේරෙන්නෙ නැති වුනාට පස්සෙ
  5. Estimation Risks - ව්‍යාපෘතිය අැස්තමේන්තු ගත කිරීමේදී වන අවදානම් - අැස්තමේන්තු ගත කරපු කාලය වගේම අැස්තමේන්තු ගත කරපු කාලය වෙනස් වීම
  • Risk Analysis 
අවදානම් වෙන වෙනම අරගෙන ඒවාගෙ සම්භාවිතාව හා බරපතලකම තේරුම් ගන්නවා. සම්භාවිතාව very low, low, moderate ,high, very high විදියටත් බරපතලකම catastrophic, serious, tolerable, insignificant විදියටත් බෙදන්න පුලුවන්.
  • Risk Planing
 අවදානම් පාලනය කරගන්න උපාය මාර්ග පාවිච්චි කරනවා.
  1. වලක්වාගන්නා උපායමාර්ග
  2. හානි අවම කරගන්නා උපායමාර්ග
  3. අවිනිශ්චිත උපායමාර්ග
  • Risk Monitoring
හදුනාගත්තු ඒක් ඒක් අවදානම් පිලිවෙලට තීරණය කරනවා වෙන්න තියෙන සම්භාවිතාවන් විශාලද කුඩාද කියන දේ. අවදානම් නිසා ඉස්සර අැතිවුනු බලපෑම්මද තවමත් අැතිවෙන්නෙ කියන දේ. මේ ඒක් ඒක් කාරණාවන් ප්‍රගති රැස්වීම් වල කථා කරන ඒකත් Risk Monitoring වලට තමයි අයිති වෙන්නෙ.

මෙන්න මේ විදියට Software Engineering පාඩම් මාලාව අපි මෙතනින් නිමා කරනවා. ලැබුනු ඉල්ලීම් කිහිපයක් අතරින් හොදම ඉල්ලීමට තැනක් දෙන්න අපි බලාපාෙරොත්තු වෙනවා. 






Monday, June 13, 2016

Software Engineering (Project Management) ඉගෙන ගනිමු - 6 පාඩම

ටික දවසකට පස්සෙ අායෙත් ඔන්න කියපු විදියටම Software Engineering අලුත්ම පාඩමක් අරන් අදත් අාවා.
අද අපි කථා කරන්නෙ Project Management වල basics ගැන.

Project Management ප්‍රධාන කොටස් 4කට බෙදන්න පුලුවන්.

  1. Management Activities (කලමණාකරන ක්‍රියාවලිය)
  2. Project Planning (ව්‍යාපෘති නිර්මාණය)
  3. Project Scheduling (ව්‍යාපෘති උප ලේඛණය කිරීම )
  4. Risk Management (අවදානම් කලමණාකරණය)
 Project management හුගක් වෙලාවට වැඩ කරන්නෙ Software ඒක වෙලාවට deliver වෙලාද, අදාල කාල සටහනට අනුවද පියවර සිද්ධ වෙලා තියෙන්නෙ , organization ඒකට ඔින වෙලා තිබ්බ requirements නියමිත විදියට සම්පුර්ණ වෙලා තියෙනවද , ගිහින් තියෙන වියදම budget ඒකට ගැලපෙනවද කියන දේවල් තමයි check කරන්නෙ.


  1. Management Activities
කලමණාකරණ ක්‍රියාවලිය ප්‍රධාන කරුණු කිහිපයක් යටතේ වෙන් කරන්න පුලුවන්.

  • Proposal Writing (යෝජනා සටහන් කරගැනීම)
  • Project planing and scheduling (ව්‍යාපෘති සැලසුම් කිරීම සහ සටහන් කරගැනීම)
  • Project costing (ව්‍යාපෘතියට යන වියදම ගණනය කිරීම)
  • Project monitoring and reviews (ව්‍යාපෘතිය පාලනය හා පසු විපරම)
  • Personnel selection and evaluation (පුද්ගල තෝරාගැනීම හා පරීණාමණය)
  • Report writing and presentations (වාර්තා ලිවීම හා ඉදිරිපත් කිරීම)
Project Manager කියන්නෙ කවුද? මොනවද කරන්නෙ?

    Project Manager සම්පූර්ණයෙන්ම project ඒකේ ව්‍යාපෘති වාර්තාව ලිවීම සම්බන්ධව වග කිව යුතුයි. ඔහු පාරිභෝගිකයාට හා ව්‍යාපෘති භාර අායතනයට යන දෙකටම ඒ සම්බන්ධව වග කියනවා. ව්‍යාපෘති වාර්තාව සාමාන්‍යයෙන් ලියවෙන්නෙ සංක්ෂිප්තව පැහැදිලි වාර්තාවක්. ඒකෙ වැදගත්ම තොරතුරු ටික වාර්තාවට අැතුලත් වෙනවා.
   ප්‍රගති වාර්තා සමාලෝචන රැස්වීම් වලදී මේ තොරතුරු ඉදිරිපත් කරන්න හැකියාව තියෙන්න ඔින.

  • Project ඒකට අවශ්‍ය කාර්ය මණ්ඩලය බදවා ගැනීම
         කට්ටිය බදවගන්න කොට අදහස් වලින් පරිපූර්ණ අත්දැකීම් වලින් පරිපූර්ණ පරමාදර්ශී චරිත ලැබෙයි කියලා බලාපොරොත්තු වෙන්න බෑ. ඒ වගේම ඒ වගේ චරිත ලැබුනොත් ඒ අයට කරන්න වෙන ගෙවීමත් ව්‍යාපෘති ඒකේ අයවැයට දරාගන්න පුලුවන් වෙයි කියලා හිතන්න අමාරුයි. හැම වෙලාවකම අායතනයක් කාර්ය මණ්ඩලයේ හැකියාවන් වර්ධනය වීමක් බලාපොරොත්තු වෙනවා ව්‍යාපෘතියක් මගින්...

  • Project ඒක සැලසුම්ගත කිරීම
         ව්‍යාපෘතියක වැඩිම කාලයක් ගතවන ක්‍රියාවලිය තමයි මේක. ව්‍යාපෘතිය ගැන අදහස ඔලුවට අාපු දවසෙ ඉදන් භාර දෙන දවස වෙනකන්ම නොනවත්වා කෙරෙන ක්‍රියාවලියක්. අලුත් තොරතුරු ඒකතු වීමත් ඒක්කම සැලසුම් ක්‍රමවත්ව වෙනස් කරගන්න පුලුවන්. ප්‍රධාන software plan ඒකට ගැලපෙන විදියෙ කුඩා කුඩා plans වලින් හුගක් දුරට කාල සටහනට හා අයවැයට ගැලපෙන විදියෙ plan ඒකක් හදාගන්න පුලුවන්.
 

කුඩා plans කිව්වම හුගක් දුරට අයිති වෙන්නෙ...

  1. Quality Plan (ප්‍රමිති සැලැස්ම)
  2. Validation Plan ( වලංගුතාවය පරික්ෂා කිරීමේ සැලැස්ම )
  3. Configuration Management Plan( අාකෘති කලමණාකරන සැලැස්ම )
  4. Maintenance Plan (පවත්වාගෙන යාමේ සැලස්ම)
  5. Staff Development Plan(කාර්ය මණ්ඩල සංවර්ධන සැලැස්ම)

  • Project Plan ඒකක සැකසුම
  1. Introduction (හදුන්වාදීම)
  2. Project Organization (ව්‍යාපෘති සංවිධානය)
  3. Risk Analysis (අවදානම් විශ්ලේෂණය)
  4. Hardware and software resource requirements (දෘඩාංග හා මෘදුකාංග අවශ්‍යතා)
  5. Work Breakdown (කාර්යයන් බිදවැටීමකදී ගන්නා පියවර)
  6.  Project Schedule (ව්‍යාපෘති කාල සටහන)
  7. Monitoring and reporting mechanisms ( යාන්ත්‍රණ පාලනය හා ඒවා පිලිබද වාර්තා ලබා ගැනීම )
  • Project Scheduling 
          ව්‍යාපෘතිය කොටස් වලට කඩලා ඒ ඒක් ඒක් කොටස කරන්න යන කාලය හා සම්පත් අැස්තමේන්තු ගත කරනවා. වැඩ කරද්දි ඒක දිගටම වැඩ වැටෙන විදියට කාර්යයන් පිලියෙල වෙන්න ඔින.
          සමහර වැඩ කරද්දි ඒ වැඩ මත තවත් වැඩ රදා පවතිනවා. කලින් වැඩේ කරන්නෙ නැතුව අලුත් වැඩකට යන්න බැරි විදිහෙ වැඩ පුලුවන් තරම් අවම කරන්න ඔින. Scheduling කියන දේ project managersලාගේ කැපවීම උනන්දුව වගේම අත්දැකීම් මතත් රදා පවතිනවා.

  • Scheduling කරද්දි අැති වෙන්න පුලුවන් ප්‍රශ්න
හුගක් වෙලාවට ප්‍රශ්න වල සංකීර්ණත්වය අැස්තමේන්තු ගත වෙන නිසා Solution ඒකක් හදාගන්න වැඩි වියදමක් යනවා. ව්‍යාපෘතියක ඵලදායීතාවය කිසිම වෙලාවක ඉන්න ඔලු ගෙඩි ගාන මත රදා පවතින්නෙ නැහැ. වැඩ ඉවර කරගන්න පරක්කු වුන project ඒකකට මිනිස්සු තවත් ඒකතු කරන ඒක ඒච්චරම හාෙද දෙයක් නෙවෙයි ඒකට හේතුව කථා බහ වැඩි වීම. බලාපොරොත්තු නොවෙන දේවල් ඔින වෙලාවක වෙන්න පුලුවන් project ඒකකට වුනත්.

ඊලග පාඩමෙන් අපි Risk Management ගැන කථා කරමු....






Wednesday, June 1, 2016

Software Engineering ඉගෙන ගනිමු - 5 පාඩම

ටික දවසකට පස්සෙ යාලුවනේ ඔන්න අදත් අාවා අලුත් පාඩමක් අරගෙන...

අද කථා කරන්නෙ ගිය පාර පාඩමේ ඉතුරු කොටස....
Component Based Software Model ගැන තමයි කථා කරන්න තියෙන්නෙ...

මේකෙදි වෙන්නෙ පරණ Software ඒකතු කරලා අලුත් Software හදන process ඒක...

මේ වගේ දෙයක් කරන්න සෑහෙන පලපුරුද්දක් තියෙන්න ඔින.. ඒ කියන්නෙ කෝමත් පරන Software ගැන හොද අවබෝධයක් තියෙන්න ඔින.
අපිට හොද උදාහරණයක් ගත්තොත් ඒහෙම,
අලුතින්ම පටන් ගත්තු බැංකුවක් ඒ බැංකුවෙ ඉන්න අයටත් ලොකු දැනුමක් නෑ IT පැත්තෙන් වැඩ කරන් යන්න. අපිව ගන්නවා ඒ ගොල්ලන්ගෙ උපදේශකයෙක් විදියට, බැංකුවට ඔින වෙනවා මෙච්චරකල් වැඩ කරපු manual system ඒක අත් අැරලා software වලින් හදපු ක්‍රමයකට යන්න. ඉතින් ඒකට ඒගොල්ල ඔයාගෙන් ඒක කරන්න ඔින විදිහ විමසනවා. කරන්න පුලුවන් ක්‍රම කිහිපයක් අතරේ හොදම ක්‍රමයක් තමයි Component Based Model ඒක කියන්නෙ. ඒකට හේතුව වෙන්නෙ අපේ Bank ඒකේ අයට අලුත්ම Software ඒකක් හදාගන්න දැනුමකුත් නෑ. අලුත්ම Software ඒකක්  ඒක්ක වැඩ කරන්න තේරෙන්නෙත් නෑනෙ ලොකුවටම. අනික අලුත් software ඒකක් කරන්න සෑහෙන කාලයක් ගතවෙනවානෙ. මේ ගොල්ලන්ට ඒච්චර කාලයක් නෑනෙ බලන් ඉන්න. ඉතින් තියෙන හොදම ක්‍රමයක් තමයි component based system කියන්නෙ.

මේකෙ ප්‍රධාන පියවර කිහිපයක් තියෙනවා.

  1. Component Analysis (තමන්ට තියෙන දේවල් check කරනවා)
  2.  Requirements modification ( අවශ්‍යතා තමන්ට ඔින විදියට වෙනස් කර ගන්නවා.)
  3. System design with reuse (කලින් කියපු අවශ්‍යතා වලට ගැලපෙන්න System ඒක වෙනස් කර ගන්නවා.)
  4. Development and integration (කලින් කියපුු කාරණා අනුව develop කරන්න පටන් ගන්නවා)
මේවගෙ  වාසි කිහිපයක්ම තියෙනවා.
  • අලුතෙන් නිර්මාණය වීමක් වෙන්නෙ නෑනෙ. ඒ නිසා කාලය අඩුයි.
  • මුදලුත් ගොඩක් වැය වෙන්නෙ නෑ
  • පරණ කලින් පාවිච්චි කරපු software නිසා හිතේ බයකුත් නෑ. Risk ඒක අඩුයි.
ඒ වගේම තමයි අවාසි
  • පාරිභෝගිකයට ඔින කරන දේවල් ඒ විදියටම දෙන්න විදිහක් නෑ.
  • තමන්ගෙ පරණ Software නැතුව පිටින් ගත්ත software වලින් හදනවානම් කාලය ගැන කිසිම අදහසක් කියන්න අමාරුයි.

ඒ කොටසින් Software Models ගැන පාඩම් කොටස අවසන් වෙනවා.
ඊලගට කථා කරන්නෙ Project Management , Software Engineering වල තවත් අලුත් කොටසක්.
ඉක්මනට ඒ පාඩමත් ඒක්ක අායෙත් හමු වෙනකන් සුභ ගමන් :D! 


Thursday, May 19, 2016

Software Engineering ඉගෙන ගනිමු - 4 පාඩම

මේ පාර අපි කථා කරන්නෙ පාඩමේ ඊලග කොටස...

ගිය සතියෙ අපි කථා කලේ Incremental Development ගැන. මේ පාර ඒතනින් ඒහාට අපි කථා කරනවා.

3. Spiral Model

මේ Model ඒක පාවිච්චි වෙන්නෙ බොහොම විශාල, වටිනා,  සංකීර්ණ Projects වලට. Waterfall Model ඒකේ Development Phases තිබුනෙ දිය අැල්ලක ගලන පඩිපෙලක් වගේ. ඒත් මේකෙ තියෙන්නෙ Loops විදියට. මේ හැම loop(චක්‍රයකදිම) Risk Analysis (අවදානම් විශ්ලේෂණයක්) කරනවා. ඒ ගැන Project Management  වලදි අපි කථා කරමු.  

පලමු චක්‍රය අැතුලෙදී Requirements ටික ඒකතු වෙනවා. ඊ ලගට ඒ සේරම ටික පරීක්ෂා කරනවා(Review). ඊට පස්සෙ Risk Analysis කරලා Prototype ඒකක් නිකුත් කරනවා. පියවර යටතේ මොන දේවල් කෙරුනත් හැම පියවරක් අන්තිමටම Risk Analysis ඒකක් කෙරිලා Prototype ඒකක් නිකුත් වෙනවා. අන්තිම loops වලදී designing, validations,testing වගේ දේවල් කෙරෙන්නෙ...






4. Agile Software Model
මේ ක්‍රමයේදී ප්‍රධාන පියවර 6ක් අපි කථා කරනවා.
  1. Planing
  2. Requirement Analysis
  3. Design
  4. Coding
  5. Testing
  6. Documentation
බොහොම කෙටි කාලයකින් කෙරෙන පියවර වලින් හැදුනු  projects මේ ගොඩට අයිති වෙනවා.Project ඒකට ලොකු කාලයක් යන්න පුලුවන්. මේකෙදි Documentation ඒකක් සිද්ධ වෙන්නෙ නෑ. මොකද Documents හද හද ඉන්න කාලයක් නෑ. Team ඒකේ කට්ටිය කථා වෙලා තමයි තීරණ ගන්නෙ. මේකෙ පියවරකට යන්නෙ මාසෙකටත් වඩා අඩුවෙන්... 

මේකෙ ඒක් පියවරකදි Product ඒක සම්පූර්ණයෙන්ම develop කරලා test කරලා ඉවර කරනවා. ඉවර වෙන කොටස usersලාට පාවිච්චි කරන්න දෙනවා. Product ඒකේ improvement ඒක ඉවරයක් වෙන්නෙ නෑ.
මේකට උදාහරණයක් විදියට Firefoxලා දෙන BETA Version  ඒක පෙන්වන්න පුලුවන්. හුගක් වෙලාවට Open Source කට්ටිය තමයි මේක පාවිච්චි කරන්නෙ...

5.Cowboy Coding
මතකද කව්ද බෝයි?? අන්න ඒ වගේ තමයි මේකත්. තනියම තමයි කෙරෙන්නෙ. ඒ කියන්නෙ තනි Developer කෙනෙක් තමයි වැඩ කරගන්නෙ. 
කලින් ඒවගෙ වගේ හරි ක්‍රමයක් පාවිච්චි වෙන්නෙ නෑ.හොදයි කියලා හිතෙන දේ කරනවා...
තනි කෙනෙක් කරන නිසා Resources වැයවෙනවා අඩුයි. පොඩි projects වලට හොදට ගැලපෙනවා.
ප්‍රධානම අවාසිය තමයි, Testing කරන්නෙ නැති නිසා Product ඒකේ quality ඒක ගැන කිසි වගකීමක් නෑ.


6. Extreme Programming(XP)
ප්‍රධානම වාසිය තමයි Customerගේ feedback ඒකක් අරන් ඒවා අනුව වැඩ කරන ඒක.මේක හැමදාම කෙරෙන දෙයක්. Pair Programming සංකල්පය පාවිච්චි වෙන්නෙත් මේකට. (Programmer කෙනෙක් කලින් ගහපු Code ඒකක් වෙන Programmer කෙනෙක් වෙනස් කරන ඒක ). ප්‍රධාන පියවර 4යි.
  1. Coding
  2. Testing
  3. Listening
  4. Designing
හැම වෙලාවකම Requirements අලුත් වෙන Projects වලට recommend කරන්න පුලුවන්, ඒ වගේම වේගවත්ම ක්‍රමය කියන්නත් පුලුවන්.


ඊලග පාඩම් මාලාවෙන් Component Based Software Model ගැන කථා කරමු....

   



What is PowerShell -1

PowerShell mainly using by system administrators and system engineers to their daily work.  This task based command line mainly created by ...