இலங்கையின் புதிய சனாதிபதி அல்லது அதிபராகத் தெரிவு செய்யப்பட்டுள்ள மைத்திரிபால சிரிசேனவை அறிமுகப்படுத்தும் ஒரு சிறிய காணொளிப் பதிவு.
இலங்கையின் புதிய சனாதிபதி அல்லது அதிபராகத் தெரிவு செய்யப்பட்டுள்ள மைத்திரிபால சிரிசேனவை அறிமுகப்படுத்தும் ஒரு சிறிய காணொளிப் பதிவு.
இதயத்தின் துடிப்பினில் எனும் பாடலை இலங்கையைச் சேர்ந்த ஹார்ட் பிரேக்கர்ஸ் எனும் நிறுவனத்தை சேர்ந்த கலைஞர்கள் படைத்துள்ளனர். முதலில் பாடலைப் பார்த்துவிடுங்கள்
இந்தப் பாடல் என்னை மிகவும் கவர்ந்தமைக்கு காரணம் நான் சிறுவயதில் வளர்ந்த திருமலையில் பல இடங்களில் காடசிப்படுத்தப்பட்டுள்ளமையாகும்.
பாடல் விமர்சனம் எல்லாம் செய்யுமளவிற்கு நான் ஒன்றும் வித்தகன் அல்ல ஆயினும் என் சிற்றறிவிற்கு எட்டிய சில கருத்துக்கள். பாடல் காட்சிகளை தமக்கிருக்கும் குறுகிய தொழில்நுட்ப வளங்களுடன் அருமையாக அமைத்துள்ளார்கள். மேலும் பாடல் காட்சியில் வரும் முக்கிய பாத்திரங்கள் இரண்டும் அழகாக காட்சிப் படுத்தப்பட்டுள்ளன. நாயகன், நாயகி பின்னால் போகும் எத்தனை பாடல்கள் வந்தாலும் சலிக்காது போல எமக்கு 😉
இசை அருமையாக உள்ளது. சாதாரணமாக அமைக்கப்படும் பாடல்களை விடப் பல மடங்கு சிறப்பாக அமைத்துள்ளார்கள். இசைக்கு ஒரு சபாஷ் போடலாம்.
எனக்கு இந்தப்பாடலில் அவ்வளவாக இலயிக்காத விடையம் என்றால் நடனக் காட்சியமைப்புகள். அவ்வளவாக சிறப்பாக அமையவில்லை. சரியாக வராத அந்த நடனத்தை தவிர்த்திருந்தால் பாடல் பார்க்கும் போது இன்னும் நல்ல உணர்வு (அதாங்க பீலிங்) அமைந்திருக்குமோ என்று தோன்றுகின்றது.
அடுத்து மிக முக்கியமான விடையம், பாடகர் ழ,ள,ல க்களில் கோட்டை விடுகின்றாரோ எனத் தோன்றுகின்றது.
மட்டுப்பட்டுத்தப்பட வளங்களுடன் இப்படியாக சிறப்பான பாடலை அமைத்துள்ள ஹார்ட் பிரேக்கர்ஸ் நிறுவனத்திற்கு வாழ்த்துக்களைத் தெரிவிப்போம்.
கல்லூரிக் காலத்தில் இரத்தம் தெறிக்கும் திரைப்படம் என்று பேசினால் முதலில் ஞாபகத்திற்கு வருவது 2007இல் வெளி வந்த 300 திரைப்படம். அக்காலத்திலேயே அந்த திரைப்படம் பற்றி விமர்சனம் எழுத அந்த திரைப்படம் தூண்டியது என்றால் பாருங்களேன்.
அதாவது படையெடுத்து வரும் மாபெரும் பாரசீகப் படையை எதிர்த்துக் களமிறங்கும் கிரேக்கத்து படைவீரர்கள் 300 பேரின் கதை. லியனொய்டஸ் எனும் ஸ்பார்ட்டா நரத்தின் அரசன் (கிரேக்கம் பல நகரங்களின் கூட்டமைப்பு) தனது சிறந்த 300 வீரர்களுடன் இணைந்து ஒரு ஒடுங்கிய கணவாய் வாயிலில் பாரசீகப் படைகளை எதிர்க்கின்றான். பெரும் படை வைத்திருந்தாலும் ஒடுங்கிய கணவாயில் அவர்களை பின் தள்ள முடியாமல் பாரசீகப் படைகள் திணறுகின்றன. வீரம், விவேகம் துரோகம் என கோச்சடையான் ஸ்டைலில் கதை வேகமாக நகரும் (ஆனால் கணனி வரைகலை மோசன் கப்சன் என்ற பெயரில் மோசன் போற மாதிரி இருக்காது). அருமையான திரைப்படம். அதுவும் குறிப்பாக அந்த சண்டைக் காட்சிகள் அக்காலத்தில் ஒரு மாபெரும் புரட்சி. இரத்தம் தெறிக்கும் காட்சிகள் அப்படி அபாரமாக படமாக்கப்பட்டிருக்கும். அக்காலத்தில் அந்த திரைப்படத்திற்கு எதிராக பெரும் காரசாரமான கருத்துக்களும் முன்வைக்கப்பட்டது. குறிப்பாக பாரசீக அரசரையும் அவர் படையையும் ஏதோ காட்டுமிராண்டிகள் கணக்கில் காட்டியதாக.
முதலில் முதல் பாகத்தின் ட்ரெயிலரைக் காணுங்கள்
இப்போது Rise of an Empire விமர்சனம். அனேகம் முதலாம் பாகம் வெற்றியடைந்தால் அந்தப் பெயரை வைத்து இரண்டாம் பாகத்தை எடுத்து (மொக்கையாக இருந்தாலுமே) பணம் பார்ப்பது ஹாலிவூட் காரர்களின் கைவந்த கலை. அதில் விதிவிலக்காக Toy Story, Shrek போன்றவை இருந்தாலும் பெரும்பாலும் முதல் பாகத்தில் பெயரில் பணம் சம்பாதிக்கவே பயன்படுகின்றது.
என்னைப் பொறுத்தவரையில் இந்த திரைப்படமும் அவ்வகையிலேயே அமைகின்றது. பெரும் பணச்செலவில் கணனி வரைகலையைப் பயன்படுத்தி 300 போலவே கடலில் நடக்கும் சண்டைக் காட்சிகளை பிரமாண்டமாகப் படமாக்கியுள்ளார்கள். ஆனால் திரைக்கதை?? திரைக்கதை மரண மொக்கையாக உள்ளது. முதற் பாகத்தில் திரைக்கதையில் இருந்த வேகம், பரபரப்பு, பதைபதைப்பில் அரைவாசி கூட இந்த திரைப்படத்தில் இல்லை. சிலவேளை முதல் பாகத்திற்கு கிடைத்த எதிர்ப்பின் விளைவாக இப்படியாக செய்தார்களோ தெரியாது.
இந்த திரைப்படத்தில் கதைக்களம் கிட்டத்தட்ட லியனொய்டஸ் பாரசீக அரசனை யுத்தத்தில் எதிர்கொள்ளும் அதே காலகட்டத்தில் கடல்வழியாக வந்திறங்கும் கிரேக்கப்படையை கடலில் எதிர்த்துப் போராடும் கிரேக்க படைத்தளபதி தேமிஸ்டொகில்ஸ் என்பவரின் கதை. கிரேக்கம் மீது படையெடுக்கும் டாரியஸ் எனும் மன்னனை கொல்வதன் மூலம் அவர் மகனை பரமவைரியாக மாற்றிவிடுகின்றார் தெமிஸ்டோகில்ஸ். அதனைத் தொடர்ந்து டாரியசின் மகன் தெய்வ அரசன் எனும் நிலையை அடைவது எவ்வாறு பின்னர் அவன் பழிவாங்கும் படலம் எனக் கதை தொடர்கின்றது.
முதல் பாகத்தில் பாத்திர அமைப்பு சிறப்பானது. ஒவ்வொரு சிறிய பாத்திரங்களையும் பார்த்து பார்த்தி செதுக்கியிருப்பார்கள். இந்த திரைப்படத்தில் சில முக்கிய பாத்திரங்களில் மட்டுமே கவனம் செலுத்தியுள்ளார்கள். ஏதோ கணனி வரைகலையில் கலக்கிவிட்டால் எல்லாம் சரிஎன்று யோசித்திருப்பார்கள் போல.
ஆயினும் முன்பே கூறியபடி நன்றாக கல்லாகட்டிவிட்டார்கள். குறிப்பாக 100 மில்லியன் டாலர் அளவில் பணம் போட்டு படத்தை எடுத்து சுமார் 200 மில்லியன் அளவில் பணம்பார்த்துவிட்டார்கள். அனேகம் பாகம் 3 ஐ விரைவில் எடுத்தாலும் ஆச்சரியப்படுவிதற்கில்லை.
புள்ளி 60/100
கோபாலா கோபாலா குப்ப என்று தொடங்கும் இத்தப் பாடல் இலங்கையில் தயாரிக்கப்பட்ட அழகான மற்றுமொரு படைப்பு. எலிசியம் எனும் குழுவைச் சேர்ந்த ஈழத்துக் கலைஞர்கள் இந்தப் பாடலை அமைத்துள்ளார்கள்.
சும்மா அனைவரும் குத்துப் பாடல் எழுதும் நேரத்தில் சமூக நோக்குடன் அமைத்துள்ள கோபாலா கோபாலா குப்ப பாடல் துள்ள மட்டும் அல்ல சிந்திக்கவும் வைக்கின்றது.
பாடலை ஒரு தடவை பார்த்தீர்கள் என்றால் தெரியும் ஒலியமைப்பில் மட்டுமல்ல ஒளியமைப்பிலும் கவனம் செலுத்தி மிகச் சிறப்பாகப் பாடலை அமைத்துள்ளார்கள்.
எலிசியம் பெயரளிவில் மட்டும் இல்லாமல் இப்பூவுலகை ஒரு எலீசியம் ஆக்க உதவட்டும்.
Facebook இல் அவர்களை லையிக்கிடுங்கள்
மேலும் கோபாலா கோபாலா குப்ப பாடல் உருவான விதம் பற்றி லட்சுமன் ஈழத்திரைக்கு வழங்கிய பேட்டியையும் வாசித்திடுங்கள்.
அண்மையில் அலுவலகத்தில் இனிமேல் லினக்சின் உபுண்டு பதிப்பில் மென்பொருள் எழுதும் பணிகளை ஆரம்பிக்க வேண்டும் என்று அறிவித்தல் வழங்கப்பட்ட பின்னர் எனது அலவலக மடிக் கணனியில் உபுண்டு 13.04 ஐ நிறுவிக்கொண்டேன். எக்லிப்ஸ், நோட்ஜெஸ் என்று எல்லாம் உபுண்டுவில் களை கட்டிப் பறந்தாலும் அவ்வப்போது பேஸ்புக் போய் தமிழில் மொக்கை போட முடியவில்லை. தமிழ் 99 முறையில் தட்டச்சிடும் நான் எவ்வாறு தமிழில் தட்டச்சிடலாம் என்று தேடத் தொடங்கினேன்.
முதலில் நிறுவப்பட்டிருக்கும் செயலிகளில் iBus இருப்பதைக் கண்டுகொண்டேன். அதை திறந்து பார்த்தாலோ ஒரே ஆச்சரியமும் ஏமாற்றமும். காரணம் சீனம் மட்டுமே அதில் நிறுவப்பட்டு இருந்தது. சரி எப்படியாவது தமிழ் பொதிகளை நிறவிவிடவேண்டும் என்று புறப்பட்டேன்.
அதன் போது உபுண்டு மன்றத்தின் இந்த திரி கண்ணில் பட்டது. அடடா அதில் கூறியபடி செய்தவுடன் தமிழ் உடனேயே iBus தெரிவு சாரளத்தில் தெரியத் தொடங்கியது.
உங்கள் டேர்மினலைத் திறந்து அதில் பின்வரும் கட்டளையை இயக்கவும்
sudo apt-get install ibus ibus-m17n m17n-db m17n-contrib ibus-gtk
இப்போது iBus ஐத் திறந்து கொள்ளுங்கள். இப்போது Add எனும் தெரிவைத் தெரிவு செய்து அதில் தமிழ் 99 ஐத் தெரிவு செய்து கொள்ளலாம்.
அப்புறம் என்ன கலக்குங்கள்
இதுவரை வந்த பதிவுகளை வாசித்திருந்தால் உங்களுக்கு node.js இன் Module கள் பற்றிய ஒரு அறிவு கிடைத்திருக்கும். முதலே கூறியபடி வேர்ட்பிரஸ் சொருகிகள் (Plugins) போல node.js இன் சொருகிகள்தான் இந்த Moduleகள். நாம் அன்றாடம் செய்யும் வேலைகளை சில வரிகளை எழுதாமல் இந்த மொடியூல்களைப் பயன்படுத்தி எழுதிவிடலாம்.
JavaScript மொழியானது இன்று இணையத்தில் எங்கும் பரந்து விரிந்து வாழும் ஒருமொழி. முதலில் DHTML இல் சில மாற்றங்களை ஏற்படுத்த இணையவடிவமைப்பாளர்களால் பாவிக்கப்பட்டு பின்னர் இணையதள வல்லுனர்களும் பயனர்கணனிகள் இயங்கும் செயலிகளை அல்லது செயற்பாடுகளை நிறைவேற்றப்பாவிக்கப்பட்டு தற்போது வழங்கிகளில் செயற்படும் தன்மையைம் கொண்டுள்ளது. JavaScript இன் மூன்றாவது பிறப்பு இது. இந்த உயர் நிலையை எட்ட ஜாவாஸ்கிரிப்டின் இலகுத் தன்மை ஒரு காரணமாக இருந்தாலும், வழங்கிசார் மென்பெருள் தயாரிப்பில் கனகச்சிதமாக இருக்கவேண்டும் அல்லது அனைத்தும் கவிழ்ந்துவிடும். ஆகவே node.js ஆனது JavaScript இயக்கத்தை கட்டுக்குள் வைத்து இயக்குகின்றது. இந்த அத்தியாயத்தில் மொடியூல்களை சிறப்பாக வினைத்திறனாக இயக்க, ஜாவாஸ்கிரிப்ட்டின் சின்னப்பிள்ளைத் தனத்தை கட்டுப்படுத்த node.js வைத்துள்ள கட்டுப்பாடுகளைப் பார்ப்போம். அத்துடன் நீங்களே உங்களுக்குத் தேவையான ஒரு மொடியூலை எவ்வாறு எழுதிக்கொள்ளலாம் என்றும் பார்க்கலாம்.
நாங்கள் முன்பே பார்த்தபடி node.js சில அடிப்படைத் தேவைகளை நிறைவேற்ற சில மொடியூல்களுடன் வெளியாகியுள்ளது. அத்துடனம் NPM மூலம் எமக்குத் தேவையான மூன்றாம் நபர்கள் எழுதிய மொடியூல்களைப் பாவித்துக்கொள்ளலாம். அதைவிட மேலும் நாங்களும் மொடியூல்களை எழுதிப் பாவிக்கலாம். பொதுவாக பின்வரும் முறையில் மொடியூல் ஒன்றை எமது செயலியினுள் அழைத்துக்கொள்வோம்.
var module=require('somemodule');
node.js ஆரம்பிக்கும் போதே அதன் அடிப்படை மொடியூல்களை ஏற்றிவிடும். ஆயினும் NPM மற்றும் நாங்கள் எழுதிய மொடியூல்களை கோப்பு இருக்கும் இடத்தின் மூலம் node.js ஞாபகத்தில் வைத்துக்கொள்ளும்.
உங்களுக்கு JavaScript மற்றும் பொதுவான மென்பெருள் எழுதும் ஆற்றல் உள்ளது என்ற எடுகோளின் அடிப்படையிலேயே மிகுதியைச் சொல்லுகின்றேன். பொதுவாக மொடியூல்களை நீங்கள் JavaScript, C, C++ போன்ற மொழிகளில் எழுதிக்கொள்ளலாம்.
முதலில் mymodule.js எனும் கோப்பை உருவாக்கிக் கொள்ளுங்கள். அதன் உள்ளடக்கம் பினவருமாறு அமையட்டும்
exports.area = function (r) { return r * r; };
அதன் பின்னர் எமது node செயலியின் உரை பின்வருமாறு அமையட்டும். எமது கோப்பை app.js என வழமை போல பெயரிட்டுக்கொள்ளலாம்.
// நாங்கள் எழுதிய மொடியூலை செயலிக்குள் இறக்குகின்றோம் var mymodule = require('./mymodule.js'); // நாங்கள் எழுதிய செயலியின் மெதட் area என்பதை அழைக்கின்றோம் console.log(mymodule.area(4));
இந்த செயலியின் படி ஒரு சதுரம், செவ்வகத்தின் பரப்பளவைக் கணிக்க ஒரு மொடியூலை நாங்கள் எழுதியுள்ளோம்.
குறிப்பு : மொடியூல் மற்றும் அப்ஜேஸ் கோப்புகள் ஒரே கோப்புறையில் இருப்பதை உறுதிப்புடுத்திக்கொள்ளுங்கள். அனைத்தும் சரியாக இயங்கினால் பின்வரும் செய்தி உங்களுக்கு கிடைக்கும்.
குறிப்பு : வழமையாக மொடியூல் ஒன்றை இறக்குப் போது require(‘./mymodule’) என்று .js என்ற Extension இல்லாமலும் இறக்கிக்கொள்ளலாம். Node.js அந்தக் கோப்புறையினுள் உள்ள அந்தப்பெயரிற்குப் பொருந்தும் ஒரு ஜாவாஸ்கிரிப்ட் கோப்பை இறக்கிக்கொள்ளும்.
NPM அல்லது Node Package Manager எனப்படுவது மூன்றாம் மென்பொருள் வல்லுனர்களால் எழுதப்பட்ட Module களை உங்கள் கணனியில் நிறுவ உதவுகின்றது. உங்களுக்கு வேர்ட்பிரசில் சொருகிகள் (Plugins) போல node.js ற்கு NPM உதவுகின்றது.
பொதுவாக NPM மூலம் பின்வரும் மூன்று வேலைகளைச் செய்யலாம்.
node.js படிப்பதற்கு எதற்காக இப்போது NPM பற்றி அறிந்துகொள்ள வேண்டும் என நீங்கள் கேட்கலாம். அதற்கு காரணம் உள்ளது. நீங்கள் நிஜத்தில் node.js மூலம் செயலிகளை எழுதும்போது கட்டாயம் மூன்றாம் மென்பொருள் வல்லுனர்கள் எழுதிய மொடியூல்களை பாவிக்க வேண்டிய கட்டாயம் இருக்கும். அப்போது NPM உங்கள் வேலையை மிகவும் இலகுவாக்கிவிடும். குறிப்பாக ஒரு மொடியூலின் எத்தனையாவது பதிப்பை பதிவிறக்க வேண்டும் போன்ற செயல்களை NPM இன் Command Prompt மூலம் வினைத்திறனுடன் நிறைவேற்றலாம்.
நீங்கள் இப்போது NPM நிறுவுவதற்காக இணையத்தில் தேடத் தொடங்க வேண்டாம். புதிய node.js பதிப்பை பதிவிறக்கி நிறுவும் போது NPM கூடவே நிறவப்பட்டுவிடுவது மேலும் சிறப்பு.
Local முறைமையில் NPM ஐப் பயன்படுத்தும்போது, எமது கணனியின் மற்றச் செயலிகளில் எந்த மாற்றமும் நிகழ்த்தப்படமாட்டாது. தற்போது நாம் வேலைசெய்துகொண்டிருக்கும் கோப்புறையில் மட்டுமே மாற்றங்கள் மேற்கொள்ளப்படும்.
Global முறைமை இதற்கு எதிர்மாறாக கணனி முழுதும் மாறங்களை ஏற்படுத்தும். அனைத்து செயலிகளும் மாற்றங்களுக்கு உள்ளாகும். பொதுவாக Utilities போன்ற மொடியூல்களை Globalஇலும் மற்றைய மொடியூல்களை localஇலும் மென்பொருள் வல்லுனர்கள் பயன்படுத்துவர். இதை Global அல்லது Local இல் நிறுவுவதா என ஐயம் ஏற்பட்டால் வீண் பிரைச்சனைகளைத் தவிர்க்க Local இல் நிறுவிவிடுங்கள். ஏன் வீண் வம்பு?? 😉
உதாரணமாக Sax எனும் மொடியூலை நிறவ வேண்டும் என்றால் பின்வருமாறு நிறவிக்கொள்ளலாம். இங்கே நீங்கள் காணும் –g என்பது இந்த மொடியூல் Global முறையில் நிறுவப்படுகின்றது என்பதை காட்டுகின்றது.
நிறவுல் கட்டளை ‘npm install -g sax’
குறிப்பு : நீங்கள் லினக்ஸ் இயங்குதளத்தில் இருந்தால் Root பயனராக இக்கட்டளையை இயக்க வேண்டியிருக்கும்.
உ+ம் “$ sudo npm install -g sax”
அனைத்தும் செவ்வனே நிறைவேறியதும் எமது செயலியில் Sax மொடியூலைப் பினவருமாற பாவிக்கலாம்.
var sax = require('sax');
ஒரு மொடியூலை நிறவு பின்வருவதுவே அதற்கான கட்டளை
npm install
ஒரு மொடியூலின் குறிப்பான ஒரு பதிப்பைப் பதிவிறக்க பின்வருவதே அதன் கட்டளை
npm install @
உ+ம்
npm install sax@0.2.5
ஒரு மொடியூலை நீக்க
npm uninstall
அந்த மொடியூலை Global நிலையில் நீக்க
npm uninstall -g
ஒரு மொடியூலை இயற்படுத்த
npm update
அந்த மொடியூலை Global நிலையில் இயற்படுத்த
npm update –g
சில மொடியூல்கள் வேறு சில மொடியூல்களில் தங்கியிருக்கும். அந்த வேளைகளில் ஒரு மொடியூலை பதிவிறக்கினால் தங்கியிருக்கும் மொடியூல்களையும் NPM உங்களுக்காகப் பதிவிறக்கித்தரும். பின்வருவதை உங்கள் Command prompt இல் இயக்கிப்பாருங்கள்.
npm install nano
அனைத்தும் முடிந்த்தும் கடைசியில் பின்வருமாறு ஒரு வரைபடம் கிடைக்கும்.
இதன் மூலம் nano எனும் மொடியூல் underscore, follow மற்றும் request ஆகிய மொடியூல்களில் தங்கியிருப்பதை அவதானிக்கலாம். இப்போது எங்கள் செயற்றிட்டம் இருக்கும் கோப்புறையைத் திறந்து பார்த்தால் அங்கே “node_modules” என்று இன்னுமொரு கோப்புறை இருப்பதைக்காணலாம். அதனுள்ளே நாங்கள் பதிவிறக்கிய மொடியூல்களை நீங்கள் அவதானிக்கலாம்.
“package.json” எனும் கோப்பினை எமது செயற்றிட்டம் இருக்கும் கோப்புறையினுள் போட்டு அதனில் தங்கியிருக்கும் மொடியூல்களை கூறிவிட்டால் போதும். NPM தானே அவற்றை தேடி நிறுவிவிடும். நாங்கள் தனித்தனியாக ஒவ்வொரு மொடியூலாக பதிவிறக்கிக்கொள்ளத் தேவையில்லை.
package.jason இன் உள்ளடக்கம் பொதுவாக பின்வருமாறு இருக்கும்.
{ "name" : "MyApp", "version" : "1.0.0", "dependencies" : { "sax" : "0.3.x", "nano" : "*", "request" : ">0.2.0" } }
இதன் பின்னர் json.package இல் குறிப்பிட்ட மொடியூல்களைப் பதிவிறக்க பின்வரும் கட்டளையைப் பயன்படுத்தலாம்
npm install
மொடியூல்களை இயற்படுத்த பின்வரும் கட்டளையைப் பயன்படுத்தலாம்
npm update
பொறுமையாக இறுது வரை வாசித்தமைக்கு மிக்க நன்றி. அடுத்த பாகத்தில் ஒரு மொடியூலைப் பயன்படுத்தி ஒரு சிறிய செயலியை எழுதலாம். அதுவரை அன்புடன் விடைபெற்றுக் கொள்கின்றேன் 😉
ஆரம்ப காலங்களில் ஒருவர் ஒரு கணனியில் ஒரு தடவையில் ஒரு செயலை மட்டும் நிகழ்தும் நிலமையே இருந்தது. அதற்கான காரணம் அக்காலத்துக் கணனிகளின் வினைத்திறனும் கணனி வலையமைப்புகளின் குறைபாடுகளேயாகும். ஆயினும் காலவோட்டத்தில் கணனிகளின் வினைத்திறன் கூடிவிட்டமையுடன் கணனி வலையமைப்புகள் புதிய ஒரு நிலையைப் பெற்றுவிட்டன. குறிப்பாக இன்றைய இணையப் புரட்சி காரணமாக செயிலிகள் ஒரு செயலிற்காக காத்திருக்க வேண்டும் எனும் நிலமை மாறத் தொடங்கியது. Blocking Programming எனும் முறமையின் அழிவு இதனுடனேயே ஆரம்பமாகியது.
Multi-threading எனும் செயன்முறை இன்றைய ஜாவா, சீசார்ப் போன்ற மொழிகளில் கோலோச்சுகின்றது. இது பல செயல்களை ஒன்றை ஒன்று தடுக்காமல் சமாந்தரமாக இயகப்பபடுகின்றது.ஆயினும் இது சிலவேளைகளில் மென்பொருள் வல்லுனர்களுக்கு தலையிடியாக அமைந்துவிடும். இந்த Multi-Threading முறை மூலம் ஒரே வளத்தை இரண்டு Threads அணுக முயன்று Deadlock எல்லாம் வந்துவிடக்கூடய வாய்ப்புகள் உண்டு. ஆயினும் பயப்படவேண்டாம் இவற்றை எல்லாம் சமாளிக்க இன்றைய நவீன மென்பொருள் மொழிகளில் வாய்ப்புகள் மற்றும் வசதிகள் உண்டு.
node.js மூலம் வளர்ந்து விரிவடையும் என எண்ணும் எந்தவொரு இணைய வழங்கிக்காவுப் பாவிக்க முடியும். உங்கள் தளம், சேவை விரிவடையும் போது அதற்கேற்றவாறு மாற்றி அமைக்க இடம்தரும் தன்மையை node.js கொண்டிருப்பது அதன் சிறப்பியல்பு.
node.js ஆனது PHP, Java, C# இணைய சேவை வழங்கிகளை (Web Services) விடவும் அதிக வேகமாக இருப்பதற்கான காரணம் node.js இன் பின்ணனியில் சி மொழி இருக்கின்றமையாகும். வழமையாகவே சி மொழியில் எழுதப்படும் செயலிகள் வேகமாக இயங்குவதை நாம் அவதானித்து இருக்கின்றோம்தானே.
தற்போதைய நவீன இணைய சேவை வழங்கிகள் மற்றும் அதை எழுதப் பயன்படும் மொழிகள் பல வேலைகளை ஒரேதடவையில் செய்யும் வல்லமை வாய்ந்தவை (Multi Threading). ஆனால் node.js ஒரு செயலை மட்டுமே ஒருதடவையில் செய்யும். அதாவது தனக்கு வரும் கோரிக்கைகளை ஒரு நிரையாக நிறுத்தி வரிசையாக வரும் கோரிக்கைகளை அலசி ஆராய்ந்து பதில் அனுப்பும். இதன் காரணமாகத்தான் node.js வழங்கியில் ஒரு கோரிக்கை ஏதோவொரு காரணத்தால் பிழையடைந்தால் முற்றுமுழுதாக வழங்கியே செயல்இழந்துவிடும்.
அப்படியானால் வரிசையில் வைத்து ஒன்றொன்றாகத்தான் தனக்கு வரும் கோரிக்கைகளை பரீசிலிக்குமானால் எப்படி அத்தனை வேகமாக இயங்குகின்றது? ஒரு இணையசேவைக் கோரிக்கை நீண்ட நேரம் எடுத்துவிட்டால் அடுத்த கோரிக்கைகள் இன்னும் நேரமாகுமே? இப்படியெல்லாம் கேள்விகள் எழக்கூடும். இதற்கு node.js இன் பதில்தான் Event driven programming & Callback functions எனப்படும் முறைமை.
அதாவது நீங்கள் ஒரு வேலையை செய்ய இணைய வழங்கியிடும் கோருகின்றீர்கள் அந்த வேலை முடியும் வரை node.js காத்திருக்காது அந்த வேலைக்கான உத்தரவை வழங்கிவிட்டு அடுத்த கோரிக்கையைப் பரிசீலிக்கத்தொடங்கிவிடும். முதல் கோரிக்கை நிறைவேற்றப்பட்டதும் Callback function அழைக்கப்பட்டு பதில் சேவையை கோரியவரிற்கு வழங்கப்படும். என்ன குளப்பமாக உள்ளதா?
உதாரணமாக அம்மா இன்று கேக் செய்வதாக உத்தேசித்துள்ளார். அதே வேளை நீங்கள் எனக்கு புடிங் வேண்டும் என்று கேட்கின்றீர்கள். இப்போது அம்மாவிடும் இரண்டு கோரிக்கைகள் உள்ளன. முதலில் புடிங் செய்வதற்கான உள்ளுடன்கள் இப்போது வீட்டில் இல்லை. அவர் உங்களை முன்னால் இருக்கும் கடையில் சென்று புடிங் செய்வதற்கான பொருட்களை வாங்கிவருமாறு கூறுகின்றார். நீங்கள் புடிங் செய்யத் தேவையான பொருட்களை வாங்கிவரும் வரை காத்திருக்காமல் உங்களை அனுப்பிவிட்டு கேக் செய்யும் வேலையை ஆரம்பித்துவிடுவார். பொருட்களுடன் நீங்கள் மறுபடியும் வந்து அம்மாவை அழைப்பதாக வைத்துக்கொள்ளுவோம். அழைத்து அவரிடனம் பொருட்களைக் கொடுக்கின்றீர்கள். இவ்வாறு அழைப்பதையே Callback function என்று அழைகின்றார்கள். இப்போது அம்மா புடிங் வேலையை முடித்துவிடுவார். அப்படியே அரைவாசியில் தொங்கும் கேக் வேலையையும் முடித்துவிடுவார்.
node.js படிக்க வந்தா இவன் என்ன புடிங், கேக், டோனட் எண்டு கடுப்பேத்துறான் என்று நீங்கள் நெருமுவது காதில் கேட்கின்றது. சரி அடுத்து ஒரு Callback function க்கான ஒரு உதாரணத்தைப் பார்த்துவிடுவோமா?
// முறை ஒன்று fs.readFile('index.html', function(err, contents){ // கோப்பின் உள்ளடக்கத்தை கன்சோலில் எழுதுகின்றோம் console.log(contents); )}; // முறை இரண்டு var callback = function(err, contents){ console.log(contents); }; fs.readFile('index.html', callback);
var fs = require('fs'); fs.readFile('index.html', function (err, data) { if (err) throw err; console.log(data); });
index.html எனும் கோப்பு உங்கள் app.js உள்ள கோப்புறையில் உள்ளமையை உறுதிப்படுத்துமாறு கேட்டுக்கொள்கின்றேன். வழமையான மென்பொருள் எழுதும் வழிமுறையில் பொதுவாக functionகள் ஒரு முடிவை இயக்க முடிவில் வெளியனுப்பும்(return). ஆயினும் node.js பயன்படுத்தும் Event Driven Programming இல் முடிவை வெளியனுப்புவதற்குப் பதிலாக இயக்கம் முடிவடைந்ததும் அழைக்கப்படவேண்டிய function ஐக் குறிப்பிடுகின்றோம். நீண்ட நேரம் எடுக்கும் I/O இயக்கங்கள் முடிவடைந்ததும் அந்த function அழைக்கப்படும். இதன் மூலம் காத்திருக்கும் நேரம் கணிசமாகக் குறைக்கப்படுகின்றது.
node இல் கோப்புகளை திறந்து வாசிக்க File System எனும் Module ஐப் பயன்படுத்தலாம். இன்றைய பாகத்தில் callback function பற்றி அறிந்து கொண்டோம். இனி அடுத்த அத்தியாயத்தில் node.js பற்றி மேலும் அறிந்து கொள்ளலாம்.
அடுத்த திங்கள் கிழமை வெளிவரும் பதிவில் nodejs இன் Package Manager பற்றி விரிவாக அறிந்து கொள்ளலாம். பொறுமையாகப் படித்தமைக்கு நன்றி.
நோட்ஜெஎஸ் இன்று பல மென்பெருள் வல்லுனர்கள் மத்தியிலும் அடிக்கடி உச்சரிக்கப்ப்படும் ஒரு மந்திரச்சொல். நோட் ஜேஸ் றையல் டால் (Ryan Dhal) எனபவரினால் எழுதப்பட்டது. இது கூகிளினால் எழுதப்பட்ட வி8 ஜாவாஸ்கிரிப்ட் இயந்திரத்தினால் பின்ணனியில் இருந்து இயக்கப்படுகின்றது.
நோட்ஜேஎஸ் ஒரு வழங்கி சார் தொழில்நுட்பம் (Server side technology). ஆனால் இதில் வியப்புத்தரும் விடையம் என்னவென்றால் ஜாவாஸ்கிரிப்ட் கொண்டு வழங்கிசார் மென்பொருள் தயாரிப்பில் ஈடுபடக்கூடியதாக இருக்கின்றமையே.
பொதுவாக ஜாவாஸ்கிரிப்ட் இணைய உலாவி (Internet Browser) சார்ந்த ஒரு பயனர் கணனியில் இயங்கும் ஒரு மொழியாகும். இதைப் பயன்படுத்தி வழங்கிசார் சேவைகளை எழுத முடிவது நோட்ஜேஸ்இன் ஒரு பலமாகும்.
ஜாவாஸ்கிரிப்ட் மொழியானது ஜாவா, சீசார்ப் (C#) போன்ற மொழிகளைப்போல கற்றுக்கொள்ள அத்தனை கடினமானது கிடையாது. இலவகுவாக உங்கள் மென்பொருள் அல்லது கைபேசி மொன்பொருளுக்குத் தேவையான வழங்கி சேவைகளை (Web Services) நீங்களே எழுதிக்கொள்ளலாம்.
NodeJS முன்பு வின்டோசுக்கான ஆதரவை வழங்கவில்லை. லினக்ஸ் கணனிகளை கல கலவென்று கலக்கிக்கொண்டு வேலைசெய்தது. வின்டோஸ் பயனர்கள் NodeJS ஐ இயக்குவதானால் சுற்றி மூக்கைத் தொடும் செயலாகவே இருந்தது. பலர் லினக்ஸ் வேர்ச்சுவர் மெசினை இயக்கி அதில் லினக்சை ஓட்டுவர்.
இப்போது NodeJS இன் புதிய பதிப்புகள் வின்டோசுக்கான ஆதரவைத் தருகின்றமை வின்டோஸ் பயனர்களுக்கு சந்தோசமான செய்தியாகும்.
நிறுவல் படிகள்
அனைத்தும் சரிதானே?? சரி அடுத்த்தாக முதலாவது செயலியை எழுதிவிடலாமா?
உங்கள் கணனியில் விரும்பிய ஒரு இடத்தில் ஒரு கோப்பை (Folder) உருவாக்கிக்கொள்ளுங்கள். உங்கள் கோப்பு உள்ள இடத்திற்கு Command Promt இல் இடம்பெயர்ந்து கொள்ளுங்கள்.
உதாரணமாக D Drive இல் “TamilNode” எனும் கோப்பை உருவாக்கியுள்ளேன் என வைத்துக்கொள்வோம். Command Prompt இல் அந்த கோப்பிற்கு நகர்ந்தால் கீழ் உள்ளவாறு தெரியும்.
இனி செயலியை எழுதத்தொடங்கலாம். உங்கள் விருப்ப Text Editor ஐத் திறந்து நாங்கள் முன்பே உருவாக்கிய கோப்புறை TamilNode இல் app.js எனுப் கோப்பை உருவாக்கிக்கொள்ளலாம்.
app.js கோப்பின் உள்ளடக்கம் பின்வருமாற அமையட்டும்.
// http எனும் module இங்கு பாவிக்கப்படுகின்றது. // Node.js இது போல பல உள்ளமைந்த மொடியூல்களுடன் வருகின்றது var http = require('http'); // வழங்கி உருவாக்கம் http.createServer(function (req, res) { // வழங்கி பதில் குறியெண் (Server responce code) res.writeHead(200, {'Content-Type': 'text/plain'}); // பதிலில் வழங்கி அனுப்பும் செய்தி res.end('வணக்கம் உலகம்'); }).listen(1337); // 1337 என்ற Port இல் வழங்கி கவனித்துக்கொண்டு இருக்கும் console.log('Server started');
இப்போது எங்கள் Command Prompt இல் node app.js எனும் கட்டளையை வழங்குக.
பின்னர் உங்கள் உலாவியைத் திறந்து அதில் http://localhost:1337/ எனும் முகவரிக்குச் செல்லவும்.
அனைத்தும் சரியாகச் செயற்பட்டால் பின்வரும் திரையைக் காணலாம்.
குறிப்பு : தமிழ் எழுத்து ஜிலேபி போலத் தெரிந்தால் உலாவியின் Encoding ஐ UTF-8 க்கு கைமுறையாக (Manual) மாற்றவும்.
வாழ்த்துக்கள் Node.js மூலம் முதலாவது செயலியை நீங்கள் உருவாக்கி விட்டீர்கள். அடுத்து வரும் பாகங்களில் மேலும் Nodejs பற்றி அறிந்து கொள்ளலாம்.
புது வருடத்தில் ஆரம்பத்தில் செய்யும் காரியங்களைத் தொடர்ந்தும் செய்வோம் என்பது ஐதீகம். அதனால் இன்று சனவரி முதலாம் திகதி ஒரு பதிவை இட்டுவிடுகின்றேன்.
இந்தப் பதிவை வாசிக்கும் அனைவரிற்கும் இனிய புத்தாண்டு நல் வாழ்த்துக்கள். மாயன் பெயரைச் சொல்லி இந்த வருடமே பிறக்காது என்று ஆரூடம் கூறிப் பலர் பிழைப்பு நடத்தி பேஸ்புக், ட்விட்டர் என்று ஸ்டேடஸ் மேல் ஸ்டேடஸ் போட்டு எங்களைப் பாடாகப் படுத்தினர். ஸ்பானிஸ் காரன் போய் ஒரு நாகரீகத்தையே அழித்துவிட அதன் எச்சகங்களில் இருந்து கிடைத்த தகவல்களை வைத்து உலகம் அழிந்துவிடும் என்று விஞ்ஞான ரீதியாக ஏற்றுக்கொள்ளப்படாத தகவல்களைப் பரப்பிய அனைவரிற்கும் 2013 நல்ல செருப்படி கொடுத்திருக்கின்றது. ஆனாலும் பாருங்கள் 2013க்கு ஆயுசு கெட்டி. புதிய வருடத்தில் காற்றடம் பதித்து விட்டது. அனைத்து தடைகள், ஏளனங்கள் மற்றும் மிகைப்படுத்தல்களைத் தாண்டி இனிமையாகப் பிறந்த புத்தாண்டிற்குத்தான் நாம் வாழ்த்துக்கூற வேண்டும்.
விரும்பியோ விரும்பாமலோ 2012ல் பல முக்கியமான நிகழ்வுகள் நடந்தேறிவிட்டன. உலக அரங்கிலும், உள்ளூர் அரங்கிலும், விஞ்ஞான சமூக தளங்களிலும் பல மாற்றங்கள் உருவாகிவிட்டன. கடந்த வருடத்தில் இதுவரை நான் கவனிக்காத அளவிற்கு பெண்கள் உரிமைகள் பற்றி பேச்சுக்கள் எழுந்த்துடன் பெண்களுக்கெதிரான பல வன்முறைகள் இலங்கை இந்தியாவில் கொடிகட்டப்பறந்தன. கடந்த வருடத்தில் உலகில் நடந்த சில முக்கியமான நிகழ்வுகளைக் கீழே வாசிக்கலாம். எதையும் தவற விட்டிருந்தால் அறியத்தாருங்கள் அதையும் சேர்த்துவிடலாம்.
அயர்லாந்தில் ஒரு இந்திய பல் வைத்தியர் கூட இந்த வருடத்தில் மரணமாக கருவில் சிசு அழிப்பிற்கு அயர்லாந்தில் இருந்த தடை காரணமானது. ஆயினும் எழுந்த எதிர்ப்பலைகள் காரணமாக அயர்லாந்து தன் கொள்கையையே மாற்றிக்கொண்டது.
சனவரி முதலாம் திகதி 2012 இல் இந்தியா மற்றும் பாக்கிஸ்தான் ஆகிய நாடுகள் தம்மிடம் இருக்கும் அணு சக்தி சம்பந்தமான நிலைகள் பற்றிய தகவல்களைப் பகிர்ந்து கொண்டதுடன் அந்த நிலைகளை இருவரும் தாக்குவதில்லை என்று முடிவிற்கு வந்தனர்.
சனவரி 18ம் திகதி விக்கிப்பீடியா போன்ற பிரபல இணையத்தாளங்கள் அமெரிக்க அரசின் முன்மொழிந்த இணைய தணிக்கைச் சட்டத்தை எதிர்த்து தளத்தைக் கறுப்பாக்கி, நூதனமான முறையில் தங்கள் எதிர்ப்பை வெளியிட்டனர்.
பெப்ரவரி 17ம் திகதி பாக்கிஸ்தானில் பின்லாடன் ஒழிந்து இருந்த வீட்டை பாக்கிஸ்தானிய அரசு இடித்து தரைமட்டமாக்கியது.
மார்ச் 15ம் திகதி சனல் போர் வெளியிட்ட காட்சிகாரமாக மீளவும் சர்ச்சை எழுகின்றது. ஆயினும் இலங்கை அரசு மீளவும் குற்றச்சாட்டுகளை மறுத்துவிட்டது.
அனைவரையும் ஆச்சரியப்படுத்தும் ஒரு வேலையையும் சீனா இக்காலப் பகுதியில் செய்த்து. ஜம்மு, காஷ்மீர் பகுதிகளில் இருந்து வரும் பயனிகளுக்கு சீனா தனது விசாவை வழங்கியது (Stapled Visa). ஆயினும் இந்த நடைமுறையை தான் தொடர்வதை நிறுத்திவிட்டதாக சீனா ஒத்துக்கொண்டது.
ஏபரல் 13ம் திகது இந்தி திரையுலகின் சுப்பர்ஸ்டார் ஷாருக்கானை அமெரிக்காவின் நிவ்யோர்க் விமான நிலையத்தில் பாதுகாப்பு அதிகாரிகள் 2 மணிநேரம் தடுத்துவைத்தனர். இதற்கு காரணம் அவர் முஸ்லிமாக இருந்தமையே என்று பின்னர் பத்திரிகைகளில் அறிவிக்கப்பட்டது.
மே 18ம் திகதி பேஸ்புக் பங்குகள் பங்குச் சந்தையில் விற்பனைக்கு விடப்பட்டன.
மே 20ம் திகதி முன்னார் ஜெனரல் சரத்பொன்சேகா சிறையில் இருந்து அதிபர் மகிந்த இராஜபக்சவினால் விடுதலை செய்யப்படுகின்றார். ஆயினும் இராணுவத் தரங்கள் பறிக்கப்பட்டுள்ளதோடு அவர் தேர்தலில் போட்டியிடும் உரிமையும் இரத்துச்செய்யப்பட்டுள்ளது.
ஜூன் 9ல் நடந்த IIFA திரைப்பட விழாவில் வித்தியா பாலன் சிறந்த நடிகைக்கான விருதை டேர்ட்டி பிக்சர் திரைப்படத்தில் நடித்தமைக்காகவும் ரன்பிர் கபூர் சிறந்த நடிகரிற்கான விருதை ரொக்ஸ்டார் திரைப்படத்தில் நடித்தமைக்காகவும் பெற்றுக்கொண்டனர்.
ஜூன் மாதம் நடைபெற்ற கருதரங்கில் கூகிள் தனது புதிய படைப்புகளை அறிமுகம் செய்துவைத்தது. இதன் போது தமது அன்ரொயிட் இயங்கு தளத்தின் புதிய பதிப்பான ஜெலிபீனையும் அறிமுகம் செய்து வைத்தமை முக்கியமான ஒரு நிகழ்வாகும்.
அக்டோபர் மாதம் அப்பிள் நிறுவனம் தமது புதிய ஐபாட் பதிப்பை அறிமுகம் செய்து வைத்தனர். குறைந்த விலையில் தொடுதிரை கணனிகள் சந்தையில் இது ஒரு புரட்சி செய்யும் என எதிர்பார்க்கப்பட்டது. ஆயினும் கூகிளின் நெக்ஸஸ் 7 மற்றும் சாம்சுங் டப் போன்றவை விற்பனையில் கணிசமான பங்கைத் தொடர்ந்தும் கைப்பற்றி வருகின்றன.
மைக்ரோசாப்டின் வின்டோஸ் பிரிவின் தலைவரான ஸ்டீபன் சினோவ்ஸ்கி நிறுவனத்தில் இருந்து விலகிக்கொண்டதும் இதே காலப்பகுதியில் நடந்தேறிய ஒரு முக்கிய நிகழ்வாகும்.
2012ம் ஆண்டில் அமெரிக்காவின் உள்ளூர் கச்சா எண்ணை தயாரிப்பு பல்மடங்கு பல்கிப் பெருகத் தொடங்கியது. இன்னும் இரண்டு வருடங்களில் சவுதிஅரேபியாவை விட அதிகமாக அமெரிக்கா எண்ணை தயாரிக்கும் என்று எதிர்பார்க்கப்படுகின்றது.
நவம்பர் மாதம் அமெரிக்காவின் அதிபராக மீளவும் ஒபாமா தெரிவு செய்யப்பட்டார். இவரிற்கு எதிராகப் போட்டியிட்ட மிட் ரொம்னி மண்ணைக் கவ்விக்கொண்டார். தேர்தலில் வெற்றிபெற்றாலும் ஒபாமாவிற்கு முன்னால் வேலைவாய்ப்பின்மை, பொருளாதாரப் பிரைச்சனை என பல பூதங்கள் பல்லைக்காட்டிச் சிரித்துக்கொண்டு இருக்கின்றன.
2013ம் ஆண்டு பல வகையில் முக்கியம் பெறும் ஒரு ஆண்டாக அமையும் என்பதில் சந்தேகமேயில்லை. குறிப்பாக தொழில்நுட்பத்துறையில் பல முன்னேற்றங்களை நாம் காணலாம் என்பது என் கணிப்பு. அதை விட பொருளாதார நிலமைகள் தொடர்ந்தும் மந்தமாகவே இருக்கப்போகின்றன. இதைவிட ஈரானில் யுத்தம் மூண்டாலும் மூளலாம் அத்துடன் சிரிய யுத்தம் அமெரிக்க நேரடித் தலையீடுடன் முடிவடையலாம் அல்லது தொடர்ந்தும் பெரும் உயிர், பொருளாதாரச் சேதங்களை ஏற்படுத்தலாம்.
அதைவிட மிக முக்கியமான செய்தி 2013ம் ஆண்டு ஜனவரி மாதம் 25ம் திகதி மயூரேசனின் திருமணவைபவம் கூட நடைபெற இருக்கின்றது. அனைவரும் வந்து சிறப்பித்திடவும். 🙂