Author Archives: கலாராணி

செயற்கூறிய நிரலாக்கம் – செயற்கூறுகளின் கலவை – பகுதி 5

உலகெங்குமுள்ள நிரலர்களுக்கு ஒரு பொதுப்பண்பு உண்டு. ஒருமுறை எழுதிய நிரலை மறுமுறை எழுத அவர்கள் விரும்புவதில்லை. முன்பெழுதியதுபோன்ற நிரலை மீண்டும் எழுதநேரும்போது, ஏற்கனவே உள்ள நிரலைப்பயன்படுத்தவே முயல்கிறோம். கொள்கையடிப்படையில், நிரலின் மறுபயன்பாடு என்பது மிகச்சிறந்த கோட்பாடு. ஆனால், அதை நடைமுறைப்படுத்துவது அவ்வளவு எளிதானதல்ல. குறிப்பிட்ட தேவைக்காக நிரலெழுதும்போது பிற இடங்களில் அதைப்பயன்படுத்துவது கடினமாகிறது. அதேநேரத்தில், மிகவும் பொதுப்படையாக நிரலெழுதினால், எந்த தேவைக்காக எழுதப்பட்டதோ, அதை நிறைவேற்றுவதே கடினமாகிவிடுகிறது. ஆகவே, இவையிரண்டுக்குமிடையே ஒரு சமநிலையைக்கண்டறிவது அவசியம். பலமுறை பயன்படுத்தக்கூடிய… Read More »

செயற்கூறிய நிரலாக்கம் – சூழச்சுருட்டு – பகுதி 4

Closureஐப்பற்றி அறிந்துகொள்வதற்கு முன்னதாக, அதைப்பயன்படுத்தும் ஓர் எளிய செயற்கூற்றைக்காணலாம். [code lang=”javascript”] function grandParent(g1, g2) { var g3 = 3; return function parent(p1, p2) { var p3 = 33; return function child(c1, c2) { var c3 = 333; return g1 + g2 + g3 + p1 + p2 + p3 + c1 + c2 + c3; }; };… Read More »

செயற்கூறிய நிரலாக்கம் – உயர்வரிசை செயற்கூறுகள் – பகுதி 3

கீழேயுள்ள நிரலிலுள்ளதைப்போன்ற செயற்கூறுகளை நமது அன்றாட நிரலாக்கப்பணியில் கண்டிருப்போம். [code lang=”javascript”] function validateSsn(ssn) { if (/^\d{3}-\d{2}-\d{4}$/.exec(ssn)) console.log(‘Valid SSN’); else console.log(‘Invalid SSN’); } function validatePhone(phone) { if (/^\(\d{3}\)\d{3}-\d{4}$/.exec(phone)) console.log(‘Valid Phone Number’); else console.log(‘Invalid Phone Number’); } [/code] அடிப்படையில், இவ்விரு செயற்கூறுகளும் ஒரேவேலையைத்தான் செய்கின்றன. அதாவது, கொடுக்கப்பட்ட மதிப்பை (ssn / phone), ஒரு செங்கோவையைக்கொண்டு (RegularExpressions) சரிபார்த்து, அதன் விடையை அச்சிடுகின்றன. எனவே, இவ்விரு செயற்கூறுகளுக்குப்பதிலாக… Read More »

செயற்கூறிய நிரலாக்கம் – நிலைமாறாத்தன்மை – பகுதி 2

முன்குறிப்பு: கருத்தனின் பரிந்துரைப்படி, Functional programming என்பதற்கு “செயற்கூறிய நிரலாக்கம்” என்ற பதத்தையே தொடர்ந்து பயன்படுத்துவோம். [code lang=”javascript”] var x = 1; x = x + 1; [/code] இந்த நிரலை முதன்முதலில் பயன்படுத்தியபோது, xம், (x + 1)ம் சமமாக இருக்கமுடியாதென்ற அடிப்படை கணித சமன்பாட்டை மறந்துவிட்டிருந்தோம். xன் மதிப்புடன் ஒன்றைக்கூட்டி, அதன் விடையை மீண்டும் xல் சேமிக்கவேண்டும் என்பதே, பிறமுக்கிய மொழிகளில் , இதன் பொருள். ஆனால், x = x… Read More »

செயல்பாட்டு நிரலாக்க அடிப்படைகள் – பகுதி 1

இதுநாள்வரையில் பொருள்நோக்குநிரலாக்கத்தைப் (object oriented programming) பயன்படுத்தியே நிரலெழுதி வருவோர், செயல்பாட்டு நிரலாக்கத்தைக் (functional programming) கற்றுக்கொள்ளவேண்டுமென்றால் அதன் அடிப்படைக்கருத்துக்களை அறிந்துகொள்ளவேண்டியது அவசியம். முதலில் இது சற்றே கடினமான விசயமாகத்தெரிந்தாலும், சரியான கோணத்திலிருந்து அணுகும்போது எளிமையானதாகவே இருக்கிறது. முதன்முதலில் ஒரு வாகனத்தை ஓட்டக்கற்றுக்கொள்ளும்போது மிகவும் சிரமப்பட்டு கற்றுக்கொள்கிறோம். பிறர் செய்வதைக்காணும்போது எளிமையாகத்தோன்றினாலும், நாமே செய்யும்போது நாம் நினைத்ததைவிட கடினமானதாகவே இருந்தது. மிதிவண்டியை வாடகைக்கு எடுத்துக்கொண்டு, அக்கம்பக்கத்து தெருக்களில் சுற்றித்திரிந்து பழகுகிறோம். பலமுறை விழுந்தெழுந்து, முட்டிமோதி சைக்கிள் ஓட்டக்கற்றுக்கொண்டுவிட்டோம்.… Read More »

Big O குறியீடு – அறிமுகம்

ஒரு வழிமுறையைச் (algorithm) செயல்படுத்தும்போது, O(N), O(log N) போன்ற தொடர்களைக் கேள்விப்பட்டிருப்போம். இவற்றின் பொருளென்ன, அதன் முக்கியத்துவமென்ன என்பதைப்பற்றி இப்பதிவில் அறிந்துகொள்ள முயல்வோம். ஒரு வழிமுறையின் பேரளவாக்கத்தன்மை (scalability) இக்குறியீட்டால் அளவிடப்படுகிறது. வழிமுறைக்குக் கொடுக்கப்படும் உள்ளீட்டின் அளவு வேறுபடும்போது, அதன் வெளியீட்டிற்கு, எவ்வளவு அதிக உழைப்பு தேவைப்படுகிறது என்பதையே இக்குறியீடு உணர்த்துகிறது. எடுத்துக்காட்டாக, ஒரு வேலையைச்செய்ய ஒரு வழிமுறையில், ஐந்து நிமிடங்கள் எடுக்கிறது என வைத்துக்கொள்வோம். அதன் உள்ளீட்டின் எண்ணிக்கையை இரட்டிப்பாக்கும்போது, நாம் கூடுதலாகச் செய்யவேண்டிய… Read More »

ஒருங்குறியும், UTF-8 குறிமுறையும்

கணினியில் சேமிக்கப்படும் எந்தவொரு தகவலும் பூச்சியம், ஒன்று என்ற இரு எண்களைக்கொண்ட பைனரியாக மட்டுமே சேமிக்கப்படும். எண்கள், எழுத்துகள், பிறகுறியீடுகள் என எதுவாக இருந்தாலும், கணினியைப்பொருத்தவரை அவை பூச்சியம் மற்றும் ஒன்று என்ற இரு எண்களைக்கொண்ட தொடராகவே குறிக்கப்படும். இப்படி எண்களுக்கும், எழுத்துகளுக்கும், குறியீடுகளுக்கும் ஒரு எண் ஒதுக்கப்பட்டு, அது பைனரி வடிவத்தில் சேமித்துவைக்கப்படும். இவ்வாறாக ஒரு குறியீட்டிற்கு ஒரு எண்ணை ஒதுக்கும் முறைக்கு குறிமுறை என்று பெயர். ஒதுக்கப்பட்ட எண்ணுக்கு குறியெண் (codepoint) என்று பெயர்.… Read More »

npm உள்ளமை சார்புகளும், அவற்றை தீர்மானிக்கும் வழிமுறையும்

ஒரு npm கூறு நீக்கப்பட்டதால் எண்ணற்ற திட்டங்களுக்கு ஏற்பட்ட பாதிப்பு குறித்து சமீபத்தில் பரவலாக பேசப்பட்டது. அதில் குறிப்பிடப்பட்ட கூறு ஏன் நீக்கப்பட்டது என்ற விவரங்களை ஒதுக்கிவிட்டு, npm என்பது என்ன, அதன் சார்புக்கூறுகள் எவ்வாறு நிறுவப்படுகின்றன என்பது குறித்து அறிந்துகொள்ள முயல்வோம். npm என்றால் என்ன? ஜாவாஸ்கிரிப்ட் என்பது ஒரு நிரலாக்க மொழி. இன்றைய நவீன வலைதளங்களின் பயனர் இடைமுகத்தில் நிகழ்நேர ஊடாடும் அனுபவத்தை (Realtime interactive experience) வழங்கிட இம்மொழி பெரிதும் பயன்படுகிறது. இதற்கென… Read More »

rspec-இன் கூறுகள்

இத்தொடரின் முந்தைய பதிவுகளில் உள்ள எடுத்துக்காட்டுகளில் rspec-இன் அடிப்படைக்கூறுகளை (describe, it, before, after) பலவற்றை பயன்படுத்தியிருக்கிறோம். இவற்றைப்பற்றி ஓரலகு சோதனைகளின் அமைப்பு என்ற பதிவில் சுருக்கமாக அறிந்தோம். rspec-இன் மேலும் சில கூறுகளைப்பற்றி இப்பதிவில் அறிந்து கொள்வோம். context – சூழமைவு ஒரு செயற்கூறு பலவேறு சூழல்களில் பலவாறு செயல்படவேண்டும் என எதிர்பார்க்கப்படுகிறது. உதாரணமாக, பல பயனர்களைக்கொண்ட ஒரு வலைதளத்தை எடுத்துக்கொள்ளலாம். அதில், ஒரு குறிப்பிட்ட பகுதி, உள்நுழைந்துள்ள, சிறப்பு அதிகாரம் பெற்ற பயனர்களுக்கு மட்டுமே… Read More »

எளிய இனிய கணினி மொழி – ரூபி – மின்னூல்

  “எளிய இனிய கணினி மொழி” – ரூபிக்கு இதை விட பொருத்தமான விளக்கத்தை அளித்திருக்க முடியாது. இன்று பெரும்பாலான இணைய பயன்பாடுகள் ரூபியில் எழுதப்படுகின்றன. நிரலை சுருக்கமாக எழுதுவதே ரூபியின் சக்திவாய்ந்த அம்சங்களில் ஒன்றாகும். மென்பொருட்களை அதிவிரைவாகவும், எளிமையாகவும் ரூபியில் உருவாக்க முடியும். ரூபியின் அடிப்படையையும், பரவலாக பயன்படுத்தப்படும் அம்சங்களையும் பிரியா இந்நூலில் விவரித்திருக்கிறார். ரூபியின் எளிமையும், இனிமையும் இந்நூலெங்கும் வியாபித்திருப்பது அவரது சிறப்பு. “பிறநாட்டு நல்லறிஞர் சாத்திரங்கள் தமிழ்மொழியிற் பெயர்த்தல் வேண்டும்; இறவாத புகழுடைய… Read More »