virtual reality – VR technology links

Next level of user experience is already being defined in virtual reality and augmented reality. These two technologies are profiled in the OSA-OPN magazine issue here

What do you think will define next levels of learning/teaching Tamil in the VR world ? Can these technologies be used for the better Tamil engagement ?

-Muthu

 

சங்க தமிழ் – cash and curry!

சங்க தமிழ்பயிலரங்கு – ஹார்வர்டு தமிழ் இருக்கை

பாஸ்டன் நகரில் கடைசியாக கோடை காலம். இல்லை, இது இன்னும் பனி குறைந்த இளவேனில் காலம். NETS  என்ற “நியூ இங்கிலாந்து தமிழ் சங்கம்” நிறுவனத்தின் குழு, இங்கு (போஸ்டனில்) திருமதி. வைதேஹி ஹெர்பெர்ட் அவர்களை சங்க தமிழ்பயிலரங்கு ஒன்றினை, இலவசமாக எங்களுக்கு அளித்தனர்.

18 நூல்களையும் ஒரே மனிதராக பத்து ஆண்டுகளாக தானே மொழி பெயர்தமையால் அவருக்கு ஒரு மலை உச்சியில் இருந்து கிடைக்கும் “சங்க தமிழ் is a database” என்று சொல்லும் அளவிற்கு ஒரு பறந்த பார்வை கொண்டவர் திருமதி. வைதேஹி.

சங்க தமிழில் உள்ள விலங்கு, தாவரங்கள், ஜீவா ராசிகள், உணவு வகைகள், பூ, செடி, பறவைகளை பற்றி மட்டும் நாம் பல வகையான ஆய்வுகளை செய்யலாம், என்று திருமதி. வைதேஹி கூறினார். இதனை அவர் மொழியில், “சங்க தமிழ் is a database” என்ற சற்று பிரமிப்பூட்டும் வகையில் அறிக்கையிட்டார்.

மேலும் அவர் சில தொடர்ச்சியான சங்க தமிழ் சொற்கள் இன்று தமிழ், தொத்தி ஆங்கிலம், சீன, தாய்லாந்து மொழியில் பறவியதை எடுத்துகாட்டாக கூறினார்; கறி என்பது காரம் என்பதை மிளகின் காரம் இன்று “curry” என்று மாறியதையும், காசு என்பது “cash” என்று மாறியதையும் சுட்டி காட்டினார். அடுத்த முறை பனாங்கு காறி தின்னும் போது தாய்லாந்து உணவகத்தில் இது பற்றி ஒரு lecture  நடத்தலாமோ!

பாஸ்டன் பாலா, மருத்துவர் திரு. சம்பந்தம் அய்யா, மற்றும் NETS குழுவினர், Connecticut தமிழ் சங்கம் உறுப்பினர்கள் என  பலர் வந்து பயிலரங்கை சிறப்பித்தனர்.

20160515_201844
பாஸ்டன் NETS நடத்திய, http://harvardtamilchair.com/ வழங்கிய தமிழ் அறிஞர் திருமதி. வைதேஹி ஹெர்பெர்ட் -இன் “சங்க தமிழ் பயிலரங்கு “

நான்கு மணி நேரம் சென்றதே தெரியவில்லை.  எனக்கும் குடும்பத்தின்  வழியாக எனது சிறுவயதில் இவரை சந்திதேன்; அப்போது எனது தாயுடன் மேசீஸ் சென்றதை நினைவு கூறினார். போட்டோ ஒன்றை நினைவிற்கு எடுத்தோம்.

நானும் மனைவியும் எங்கள் சார்பில் ஹார்வர்டு தமிழ் இருக்கை அமைபிற்கு நன்கொடை கொடுத்தோம். சம்பந்தம் அய்யா ஒரு பெறிய ஆசை அணைபளித்தார். நாள் அளவில் அன்று மாலை யாரோ “தேமதுர தமிழ் ஓசை உலகமெங்கும் பரவட்டும்” என்று சொல்லியது நினைவில் வந்தது. வாழ்கையில் கற்றது கையளவு என்றும் தோன்றியது.

மாலை முடிந்து இரவு குளிர் காற்று அடிக்க தொடங்க, club-house  இருக்கைகளை ஒரே போல் இருந்த மாதிரி வைத்து விட (இங்கு பழக்க படி)  உதவினோம்; விளக்கை நிறுத்தினர்.  சங்க தமிழ் மனதில் ஒரு “cognitive dissonance” ஆக இந்த இரவின் நிழலில் மறுபடியும் “கறி” தின்ன ஹிக்வேஇல் வீடு திரும்பிநேன்.

மூளை குளம்பி – மைய கணினியை செயல்படுத்தும் எந்திர மொழி (Brain F**k interpreter in Ezhil language)

(replica of) "Thinker" statue by Auguste Rodin, at the Baltimore Art Museum at the Johns Hopkin's University.

மூளை குளம்பி மைய கணினியை செயல்படுத்தும் எந்திர மொழி

(பாகம் 1)

(replica of) "Thinker" statue by Auguste Rodin, at the Baltimore Art Museum at the Johns Hopkin's University.
(replica of) “Thinker” statue by Auguste Rodin, at the Baltimore Art Museum at the Johns Hopkin’s University. (C) 2016, M. A.

கணினியை செயல்படுத்துவது அதன் மூலமான மைய கணினி; கணினியில் செயல்படும் அனைத்திற்கும் மூலமாக அமைவது அதன் மைய கணினி, மற்றும் அந்த மைய கணினியின் assembly மொழி (instruction set). சும்மா சொல்ல வேண்டுமானால் iPhone-இல் இருந்து, மடி கணினி, கைபேசி என்ற எல்லா செயலி சவுரியங்களுமே இதை போன்ற அடிப்படையில் தான் அடுக்கடுக்காக மென்பொருள்களை கொண்டு வடிவமைக்க பட்டுள்ளன.

அது சரி, அனால் இந்த எந்திர் மைய கணினியிர்க்கும் கணிமைக்கும் என்ன தொடர்பு ? இதனை சிறிதளவில் இந்த தொடரில் ஆறாயலாம். எந்திர மொழி ஒன்றை எழில் வழி செயல்பட செய்வது பற்றியும் இந்த கட்டுரை தொடரில் (இரு பாகங்களாக) நாம் பாற்கலாம். இந்த கட்டுரை சற்று கணினி நிரலாக்கத்தில் அறிமுகம் பெற்றவர்களுக்கு மேலும் விளங்குவதாக தோன்றும். இந்த கட்டுரைக்கு இணைந்த எழில் நிரல் மற்றும் மென்பொருள் உங்கள் பயன்பாட்டிற்கு அளிக்கப்படுகிறது.

மூளை குளம்பி மொழி [1] என்பது P” என்ற 1964-இல் உருவாக்கிய மொழியில் இருந்து உருவாக்கப்பட்டது. இந்த மொழியில் ‘+’, ‘-’, ‘[‘, ‘]’ , ‘>’, ‘<’ போன்ற செயலுறுபுகள் என்பதில் இருந்து ,மைய கணினி ஒன்றை உருவாக்கும் திறன் பெற்றது. மூளை குளம்பி என்ற மொழியில் வெளியிடு என்பதற்கு ‘.’ என்றும், உள்ளீடு என்பதற்கு ‘,’ என்றும் கூடுதலாக கொண்டாது.

செயலுறுபு விளக்கம் – (Operators)

  1. >’, ‘<‘ – செயலுறுபு நினைவகத்தை குறிக்கும் இடத்தை முன் அல்லது பின் திசையில் ஒரு இடம் அளவு மாற்றும்

  2. +’, ‘-‘ – செயலுறுபு நினைவகத்தின் மதிப்பை கூட்டும் அல்லது கழிக்கும்

  3. [‘, ‘]’ – செயலுறுபு நிரலின் இயக்கம் பகுதியின் அடுத்த அடைவுகுரிப்பிபிற்கு ‘]’, அல்லது தொடங்கும் குறி ‘[‘ –இற்கு தாவும் படி குறிக்கும்

  4. ,’ ’.’ – என்ற செயலுறுபு உள்ளிடு, வெளியீடு, குறிக்கும்

இன்று நாம் “மூளை குழம்பி” என்ற ஒரு மொழியை பற்றியும் புரிந்து கொண்டு இதனை செயல்படுத்தும் ஒரு எந்திரத்தை எழில் மொழியில் உருவாக்கலாம்.

மூளை குழம்பி மொழியின் அம்சங்கள்; இந்த மொழியில் எண்களை எப்படி எழுதுவது, எண்களை கூட்டுதல், “Hello World” என்று அழைப்பது எப்படி? என்றெல்லாம் உள்ள கேள்விகளுக்கு விடை காணலாம்.

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

இந்த மொழியில் நிரல்களை எழுதுவது ஒரு ஆதிகணினி மொழி அல்லது Turing Machine என்பதை போல் ஒரு தோற்றம் அளிக்கும். இதில் ஒரு எண்ணலி நீளமான பேப்பர் ஒன்றை நினைவகமாக கொண்டு ஒரு பேனா ஒன்றையும் கொண்டது. இந்த பேனாவை கொண்டு பேப்பரில் உள்ள கட்டங்களில் ‘1’ அல்லது ‘0’ என்று எழுதலாம்; அதாவது ‘1’ என்று எழுதினால் எழுதுவதாகவும், ‘0’ என்று எழுதினால் அழிப்பதாகவும் பொருள். நாம் நிரல் இயக்கத்தை தொடங்கும் பொழுது பேப்பர் நினைவகம் முழுவதும் ‘0’ (பூஜ்யம்) என்ற நிலையில் உள்ளதாக கொள்ளலாம் [2].

image1

படம்: டுரிங் எந்திரத்தின் பேப்பர் நினைவகமும், இயக்கம் முனையும்; [3]

  1. கணினி மொழிகள் அனைத்தும் ஒன்றுடன் ஒன்று டுரிங்எந்திரத்தின் வரையரைக்குள் சமன்பாடு கொண்டது (Turing-Completeness).

  2. ஒரு கல்குலேடர் (கணிப்பான்) செயல்படுத்தும் திறன் கொண்ட மொழி ஒன்றை உருவாக்கினால் இந்த மொழி டுரிங் மொழி என்பதற்கு சமன்பாடனது; இது போன்ற மொழியை இயக்கும் சக்தியுடைய எந்திரம், (Turing Machine) டுரிங் எந்திரம் என்பதற்கு சமமாகும்.

எண்களை எப்படி குரியீடுவது ?

இந்த மாதிரி ஒரு எந்திரத்தில் முதலில் நாம் எண்களை எப்படி குரியீடுவது ? இவ்வாறு கணினியில் ஏற்றிய எண்களை கொண்டு எப்படி கணிப்பது ? இந்த மொழியில் நிபந்தனை கூறுகளை எப்படி எழுதுவது ? இதனை நாம் இந்த கட்டுரை பிரிவில் காணலாம்:

எண்களை நாம் பேப்பர் நினைவகத்தில் ‘1’ என்று எண்ணின் மதிப்பின் அளவிற்கு அத்தனை முறை குறியீடவும்; .. 5 என்ற எண்ணை ‘11111’என்று அடுத்தடுத்த பேப்பர் நினைவகத்தின் கட்டத்தில் குறியிடலாம். இதற்க்கு எப்படி நிரல் எழுதுவது ? பேனாவை கொண்டு முதலில் ‘1’ என்று எழுத ‘+’ என்ற செயலுருபை பயன்படுத்தலாம். அடுத்த பேப்பர் கட்டத்திருக்கு செல்ல ‘>’ என்ற செயலுறுபை பயன்படுத்தலாம். மொத்தமாக, நினைவகத்தில் ‘11111’ என்று எழுத, ‘+>’ என்று ஐந்து முறை எழுதினால் ‘+>+>+>+>+>’ என்பது 5 என்ற எண்ணை குறியிடும் மூளை குளம்பி நிரல் ஆகும்.

இப்பொழுது P” மொழியில், மூளை குழம்பி மொழியில் உள்ள நினைவகத்தில் எந்த 8-பிட் எங்களையும் சேமிக்கலாம் என்றால், இதே எங்களை குறியீடும் நிரலை, 5 என்ற எண்ணை ‘+++++’ என்றும் எழுதலாம்.

தாவும் தன்மை உடைய மடக்கு கட்டளைகள்

இப்பொழுது இந்த மொழியில் மடக்கு வாக்கியத்தை எப்படி செயல்படுத்துவது என்று பார்க்கலாம். மடக்கு வாக்கியம் தொடக்கத்தை குறி ‘[‘ என்றும், இதன் முடிவை குறி ‘]’ என்று குறியிடலாம். இதன் பொருள், குறி ‘[‘ என்ற கட்டளையை கண்டபின் , தற்போது உள்ள பேப்பர் நினைவகத்தின் மதிப்பு பூஜியத்தின் அளவை விட கூடுதலாக இருந்தால் தொடரும் கட்டளைகளை இயக்கும்; இல்லையெனில் இதனை ஒடுத்த (பின்னால் வரும்) குறி ‘]’ முடிவு கட்டளையின் பின் வரும் கட்டளைகளுக்கு செல்லும் (தாவும் – Jump என்றே கொள்ளலாம்).

இதே போல் ‘]’ முடிவு கட்டளை, மடக்கு வக்கியதினை பழயபடி தொடங்கும் (இதனை ஓடுத்த, முன்னால் வரும்) குறி ‘[‘ கட்டளையிற்கு செல்லும். இதில் ஒப்பீடு என்றும் ஏதும் இல்லை.

எண்களை கூட்டுதல் எப்படி ?

மடக்கு கட்டளைகை கொண்டு எப்படி இரண்டு எண்களை கூட்டுவது ? நமது கணினியில் ஏற்கனவே 9, 10 என்ற எண்கள் நினைவகத்தில் உள்ளன என்று கொள்வோம்; இப்போது இரண்டாவது எண் 10-உடன் 9-முறை 1-ஐ கூட்டினால் நமக்கு விடை கிடைத்துவிடும் அல்லவா! இதை எப்படி மூளை குளம்பியில் எழுதுவது ? இது சிறிது சாதாரணமான மடக்கு வாக்கியத்தால் முடியும்,

[->+<]

இந்த நிரல் இயங்கியபின் நினைவகத்தில், 0, 19, என்று தோன்றி 19 உங்கள் விடை ஆகும். இதனை திரையில் இட, ‘.’ என்பதை சேர்த்துகொள்ளுங்கள்

[->+<].

மேலும் இந்த நிரல் ஏதேனும் இரண்டு எண்களை கூட்டவும் உதவும், 9, 10 மட்டுமல்ல!

முடிவிலா விடுகதை

இந்த மொழியில் தவறாக

+[]

என்று எழுதிவிட்டால் உங்கள் நிரல் இயங்குவதற்கும், முடிவதற்கும் எவ்வளவு நேரம் ஆகும் தெரியுமா ? யோசித்து பருகளேன்! விடை அடுத்த அத்தியாயத்தில்.

Hello World” என்று அழைப்பது

மேல்கண்ட அம்சங்களை ஒருங்கினைத்து ஒரு வணக்கம் உலகம் (“Hello World”) என்று வெளியிடுவதற்கு ஒரு மூளை குளம்பி நிரலை இப்படி எழுதலாம்,

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>—.+++++++..+++.>>.<-.<.+++.——.——–.

மேல்கண்ட அம்சங்களை ஒருங்கினைத்து ஒரு (மென்பொருளில்) எந்திரம் ஒன்றை நிரல்படுத்துவது பற்றி அடுத்த அத்தியாயத்தில் விளக்கத்துடன் பார்க்கலாம். அதுவரை இந்த நிரலை எழில் மொழி வழி இயக்குவதற்கு மூல நிரலுக்கு இங்கு github-இல் பார்க்கவும் [4].

(அடுத்த அத்தியாயத்தில் எழில் வழி இந்த மொழியை இயக்குவது பற்றி பற்கலாம்)

மேற்கோள்கள்

  1. மூளை குளம்பி மொழி https://en.wikipedia.org/wiki/P′′

  2. கணினியின் கோட்பாடுகளை கண்டறிந்த மேதை அலன் டுரிங்

  3. டுரிங் எந்திரம் விக்கிபீடியா

  4. எழில் வழி மாதிரி இயக்கி

‘மிலுவாக்கீ’ எந்த அமெரிக்கா மாநிலத்தில் உள்ளது?

இந்த கட்டுரை 2015-இல் எழுதியது; மாற்றங்களின்றி இங்கே;

தமிழில் மென்பொருள் சூழலை எப்படி உருவாக்குவது

பாஸ்டன் அமெரிக்கா ஜுலை 10, 2015

தமிழில், தமிழ்மொழி பயன்பாட்டையும், கலாச்சாரத்தையும் முதன்மையாகக் கொண்ட மென்பொருள் ஏன் இந்த “ஆஃப்” காலத்திலும் குறைவாக உள்ளது? நாம் வளர்ந்து முன்னேறும்போது நம் மொழியினை தக்கவைத்துவிட்டுச் செல்வது சரியா? என்ற கேள்வியைத்தான் இந்த கட்டுரையில் விரிவாக ஆராயப்போகிறேன்?.

எனது பங்களிப்புகளான எழில் நிரலாக்க மொழி மற்றும் ஓப்பன்தமிழ் திட்டங்களின் அனுபவங்களை மூலமாகக்கொண்டு இந்த ஆய்வை எழுதுகிறேன். ஒரு பத்து ஆண்டுகளுக்கு மேல் திற மூல மென்பொருள் எழுதியும் பங்களித்தவனாக உள்ள எனது பொறியியல் அனுபவத்தில் தமிழ் திட்டங்களை உருவாக்குவதில் ஆர்வம் கொண்டவனாக மாறினேன்.

பொறியாளர் என்ற கோணத்தில் பார்த்தால் காரணம் சிலவற்றை சுட்டிக்காட்டலாம்.

1. குறியீடு முறைகள் சற்றே சிக்கலாக இருப்பதால் தமிழ் சார்ந்த தமிழ் உரை ஆலோசனை /ஆய்வு நிரல்கள் எழுதுவது ஒரு சிக்கலாக உள்ளது.

2. இயற்கைப்பேச்சு மொழி, தமிழ் உணரி, தமிழ் உரை ஒலி மாற்றி, சொல் திருத்தி, அச்சு எழுத்தில் இருந்து கணினி எழுத்து உணரி போன்ற செயலிகள் இல்லாதது.

3. நம் தமிழ் செயலிகள், Siri, Cortana, Google Voice போன்ற சேவைகளைப் பயன்படுத்தி உருவாக்கிய நிரல்களை விட ஒரு படி குறைவாகவே தோன்றும்.

4. தமிழ்மொழிச்செயலிகள் உருவாக்க ஒரு நிரல்தொகுப்பு (Standard Library) இல்லாதது ஒரு பயிலும் மாணவருக்கு தமிழ்மொழி செயலி உருவாக்கல் கடினமாக்குகிறது.

இதனை எப்படி தமிழ்மொழிச் செயலிகளை நம் பொறியாளர்கள் எளிமையாக உருவாக்க அடிப்படை வசதிகளை அமைத்து உதவ வேண்டும் என்பது சவாலாகவே உள்ளது.

கட்டுரை அமைப்பு

முதலில் என்னுடைய பங்களிப்புகளில் சிலவற்றைப் பார்க்கலாம். தமிழ் நிரலாக்க மொழி பற்றியும், எந்த ஒரு கேள்விக்கு பதில் அளிக்கிறது என்பதையும் பார்க்கலாம்.

அடுத்து ஓப்பன்தமிழ் என்ற நிரல் தொகுப்பைப் பற்றியும் அதன் பயனாக ஒலி பேசி செயலியையும் ஒரு திற மூல மென்பொருள் வடிவமைப்பின் கண்ணோட்டமாக பார்க்கலாம்.

முடிவாக எனது முக்கோண திட்டத்தை முன் வைக்கிறேன்.

எழில் தமிழ் நிரலாக்கல் மொழி

எழில் (http://ezhillang.org) என்பது ஒரு நிரலாக்கல் மொழி (Programming Language) பெரும்பாலான நிரலாக்கல் மொழிகள் ஆங்கிலத்தில் தான் உள்ளன. தமிழில் கணிமையின் கட்டமைப்புகளைக் கையாண்டு சிலர் முயன்ற போதிலும், எழில் மொழிமட்டும் தனித்துவம் வாய்ந்து அமைந்தள்ளது. ஏனெனில் எழில் மொழியில் மட்டுமே கட்டளைகளை தமிழ் மொழி போன்ற சொற்றொடரியல் இலக்கணத்தை கொண்டது. இம்மொழியின் சிறப்பு அம்சம்.

1. எழில் மொழி திறமூல மென்பொருள் இணையம் வழி கற்றிடலாம் மற்றும்

2. இதனைக் கற்பதற்கு தமிழில் நிரல் எழுது என்ற துணை கையேடும் வெளியிடப்பட்டுள்ளது. இந்தப் புத்தகம் அச்சில் உள்ளது.

3. கணிமை மூதாதையர் அலன் டியூரிங் அவரின் வழி டியூரிங் வரையறைக்குள் முழுமையாக (Turning complete) உள்ளது.

தமிழ் மட்டும் அறிந்த மாணவர்கள் கணிமை துறையில் பின்தங்கியதாக இருக்க வேண்டாம்?. அந்த நிரலாக்கல் திறன் இன்று எழில் தமிழ் வழியாகவும் ஆங்கிலம் சார்ந்ததாக உள்ளது. கையில் சொற்கள் இருப்பினும் தமிழில் முதன்மையாக நிரல் எழுத வசதியில்லை. 2007இல் தோற்றம் எடுத்தாலும் எனது முதுநிலைப் படிப்பின் காரணமாக 2009 முதல் 2012 ஆண்டுகள் வரை அதிகம் மேம்படுத்தப்படாமல் இருந்தது. திரும்ப 2013 முதல் இந்த திட்டம் மறுபிறப்பேடுத்து இணையம் வழி வழங்கப்பட்டது.

மொழி என்பதால் தகவல் தொழில்நுட்பம் என்ற ஒரு கதவு திறக்கும் அளவு ஒரு பரிணாம வளர்ச்சியை எட்ட வேண்டும். தமிழில் மென்பொருள் எழுதுவதும், செயலியை உருவாக்குவதும் ஏன் குறைவாக உள்ளது? சில காரணங்களைக் சுட்டிக்காட்டலாம்.

1. ஆங்கிலத்தில் இல்லாத சில நிரலாக்க மொழிசார்ந்த குறியீடு சார்ந்த சிக்கல்கள்.

2. சிறிய சந்தை அளவினாலும் இலாபம் குறைவாக இருப்பதால் பலர் தமிழில் பங்களிப்பதையோ, உருவாக்குவதையோ வெறும் வணிக ரீதியில் பார்க்கின்றனர்.

3. மேலும் கூறினால் தொழில் நுட்பத்தில் முதலீடு செய்யவும்

4. இலாபம் பார்க்கும் வரை தாக்குப்பிடிக்க பண வசதி செய்ய யாரும் இல்லை.

5. அரசாங்கத்தின் உதவி பெறும் தனியார் நிறுவனங்கள் மட்டும் உள்ளன.

6. நாம் எப்படி அடுத்த கட்ட இளைஞர்களை தமிழ் பொறியியலில் தயார் செய்யலாம்?.

இந்த கேள்விகளுக்கு விடையில்லாமல் இருந்தாலும், நல்ல முடிவு நிச்சயம் இருக்கிறது. புலம் பெயர்ந்த தமிழர்களும், தமிழ் சமூகமும் தகவல் தொழில்நுட்பத்துறையில் தமிழ் வளர ஆதரவளிக்க வேண்டும்.

தமிழ் இலக்கிய தோட்டம் (..தோ) ஆண்டு விழா டொரன்டோ, கனடா இந்த ஆண்டு ஜுன் 13ஆம் நாள் நடந்தது. 2014–ஆம் ஆண்டு தமிழ் கணிமைக்கான விருதை த..தோ. கலச்சுவடு அறக்கட்டளையின் சார்பில் நான் உருவாக்கிய எழில் என்ற நிரலாக்க மொழி விருது பெற்றது மிகுந்த மிகழ்ச்சி. INFITT, ..தோ போன்ற அறக்கட்டளைகளைத் தொடர்ந்து சிறப்பாக செயல்பட வேண்டும்.

சிலோன் பெயர் கொடுத்த ஆங்கில சொல் ‘serendip’ – `serendipity’- என்று தேட அதிர்ஷ்டமாய் வந்த த..பே.தா அழைப்பு மற்றும் விருது என் வாழ்வில் ஒரு மையில் கல் ஆக அமைந்தது.

அலன் டியூரிங் பிரிட்டன் அடிமைப்படுத்திய இந்தியாவில் பிறந்தார். இன்று அவர் கனவு கண்ட கணினி பல மொழிகள் பேசும் தமிழும் கூட!

நேரம் படிக்கும் கெடிகாரம்

இந்த கனடா பயணம் முடிந்த ஒரு சில நாட்களுக்கு பின் நான் ஒப்பன் தமிழ் வாயிலாக ஒலி பேசிஒன்றை உருவாக்க ஆசை கொண்டேன்.

 

இதற்கு காரணங்கள் இரண்டு

1. எண்கள் ஒலி பேசி உருவாக்க மூல தேவை எண்கள் சொல் வடிவில் மற்றும் திறன் செயலி ஏற்கனவே நான் இதை ஒப்பன் தமிழ் தொகுப்பில் உருவாக்கினேன்.

2. இதை வைத்து ஒரு சில எண், சொல் (.கா. 100, 1000 – நூறு ஆயிரம் இவற்றிற்கு மட்டும் ஆண், பெண் குரலில் ஒலி வடிவ கோப்புகளை சேமிக்கவும்.

இதற்கு 63 ஒலி வடிவு குரல் கோப்புகள் மட்டும் தேவைப்படுகின்றது. இதை மட்டும் வைத்து எந்த எண் ஆனாலும் அதை ஒலி வடிவில் தானியங்கியாக கணினி வழியில் ஒலியாக்கலாம்.

இதை வைத்து 6 முதல் 10,000 கோடி வரை முழு எண்.1729 ஆனாலும் தசம எண்.3.14159 ஆனாலும் அழகாக ஆண் குரலிலோ பெண் குரலிலோ ஒலி வடிவமைக்கலாம். இதன் சான்றுகளை இந்த சுட்டியின் வழி கேட்டிடலாம். https://soundcloud.com/ezhil-lang

குரல் கிடைத்தது.

இந்த தானியங்கி உருவாக்க ஒரு பெண் குரல் தேவைப்பட்டது. ஒரு தமிழ் பெண் பொறியாளர். இவர் நான் விடுத்த வலைபூ மற்றும் கீச்சு (Twitter) அழைப்பிற்கு தானே பங்களித்தார். நானே ஆண் குரலுக்கு பங்களித்தேன்.

இவரை நான் முன்பின் சந்தித்தில்லை. இணையம் வழி மட்டும் உரையாடினேன். அவரது குரலில் இந்த திட்டத்திற்காக நான் கேட்டிருந்த அனைத்து 63 சொற்களும் ஒலி வடிவில் பதிவு செய்து எனக்கு அனுப்பினார். பின்னர் நான் அந்த ஒரு நிமிடம் முப்பது வினாடி உள்ள ஒலி கோப்பை 63 பாகங்களாக பிரித்தும் தரப்படுத்தியும் ஒலி பேசி செயலியில் சேர்த்து இரு பால் குரல் வடிவில் ஒலி பேசும் படி செய்தேன்.

இந்த ஒலி பேசி செயலியைக் கொண்டு நாம் ஒலி பேசும் கடிகாரம் ஒன்றை உருவாக்கலாம். (.கா.) இதை கொண்டு ஒரு வங்கியில் வரிசைச்சீட்டு முறை செயல்படுத்த உதவி செய்யலாம்.

இதற்கு பணம் ஏதும் கொடுக்கவில்லை. என்னடா விசித்திரமாக சொல்கிறாரே என்று என்ன வேண்டாம். இது திற மூல மென்பொருளிற்கு உடைய பல அம்சங்களில் ஒரு சிறப்பு அம்சம் எனது மென்பொருள் அவரது குரல் ஔி கோப்பு அனைத்து இலவசமாக பயன்படுத்தலாம் எவ்வளவு ஆச்சரியம்!

இவ்வாறு இணையம் வழி நாம் ஒரு சமூகமாக செயல்பட்டால், நம் அடையாளமான தமிழ் மொழி பல கோணங்களில் திற மூல மென்பொருள் வழியாக வளர வாயப்புகள் உண்டு.

ஓப்பன்–தமிழ் திட்டத்தில் மட்டும் எழில் திட்டத்தில் என்னோடு பலர் பங்களித்துள்ளார்கள். இவர்களால் இணையம் வழியாக மட்டும் தொடர்பு . இதுவே ஒரு தமிழ் தன்னார்வலர்களுக்கு உடைய ஒரு பங்களிப்பு சூழல் என்று எடுத்துக்கொள்ளலாம். இவர்களுக்கு லாப நோக்கு எதுவும் கூட கிடையாது.

மின் ஊடக கணினித் தமிழ் – குறுகிய வரலாறு

இணையம் வழியாகவும் இன அழிவில் இருந்து தப்பியும், மத்திய அரசின் ஆதிக்கத்தில் இருந்தும் தப்பியபின் பரவலாக வளர்ந்த மொழிதான் கணினித் தமிழ் ஒரு புள்ளி விவரத்திற்கு : விக்கிபீடியாவில் இந்தி மொழி அடுத்து இந்திய மொழிகளில் விளங்குவது தமிழ் மொழியே. இது என்ன ஆச்சிரியம் என்றால் இந்தி பேசுபவர்கள் 7 மடங்கு அதிகம். ஆனால் தமிழர் மொழிமீது கொண்ட ஒரு பற்றினால் இணையத்தில் ஒரு முதன்மை நிலை எடுத்து வருகிறது.

1980 – முதல் 2000- வர எழுத்துரு வகை குறியீட்டில் (font based encoding) சிக்கியும், இதன் சிதைவு பிடியில் இருந்து தப்பமுடியாமல் இருந்த தருணம் இந்த தேக்க நிலையில் இருந்து பல தன்னார்வலர், தொழிலதிபர் மற்றும் சில அரசு வல்லுநர் குழுக்கள் முயற்சியால் குறியீடும் (ஒருங்குறி), விசைப் பலகையும் (தமிழ் -99) தரம் செய்யப்பட்டது.

ஒருங்குறி என்பது TSCii, TACE, இரு அமைப்புகளை காட்டிலும் சில குறைகள் இருப்பினும் பரவலாக வலை தளங்களில், வலை உலவிகளில் மட்டும் திருத்திகளில், திறன்பேசிகளில் ஏற்கப்பட்டது. ஒப்பன் தமிழ் போன்ற நிரல் தொகுப்புகளை இல்லாவிட்டால் திற மூல மென்பொருள் எழுதுவது மிகவும் கடினமாக உள்ளது.

அமெரிக்காவில் DARPA, IETF (இணையம் செயற்குழு) போன்ற நிறுவனங்கள் மேம்பட்ட தொழில் நுட்பங்களை இலவச /திற மூல மென்பொருளாகஅளித்ததால் மட்டுமே இணையம் 1960 இல் உருவானாலும் கூற தற்போது உலகம் முழுவதும் பரவலாக வளர ஒரு காரணம் என்று சொல்லலாம்.

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

ஒருங்குறி ஒரு தரமாக ஏற்றுகொள்ளப்பட்டாலும் நாம் குறியீடு விவாதங்களில் இருந்து விடு பெற்று மேன்மை மென்பொருள்கள் இலக்கை எட்டத் தேர்ச்சி பெற்றுள்ளோம்.

ஆப்பிளும் முக்கனியும்

திறன்பேசி பயன்பாட்டில் ஆங்கிலம் நிலையை காட்டிலும் தமிழ் பயன்பாடு பல படிகள் குறவைாகவே உள்ளது. தமிழ் பேசினால் அதற்கு புரியாது. அதுவும் உங்களிடம் தமிழ் வரை, கவிதை, கட்டுரைகளை படிக்காது கிட்டதட்ட அது ஒரு 10 ஆண்டுகள் முன்னர் உள்ள ஒரு தொலைபேசி நோக்கியா 3330’ போன்று தான். தமிழகம் பொறுத்தவரை செயல்படுகிறது.

மிலுவாக்கீ எந்த அமெரிக்க மாநிலத்தில் உள்ளது?

நீங்கள் கூகிள்ளில் (Google) இந்த கேள்வி ’மிலுவாக்கீ’ எந்த அமெரிக்கா மாநிலத்தில் உள்ளது?” என்ற கேள்வியை கேட்டால் அது தமிழ் அல்லது ஆங்கிலத்தில் கேட்டதன் வித்தியாசம் வாயிலாக விடை அமையும். இதன் காரணம் கூகிள் தமிழ் இயற்கை மொழி உரையாடல் புரிந்து கொள்ளது ஏன் ஆங்கிலம் மட்டும் கணினிற்கு ஏற்ற மொழியா? என்று கேட்டால் விடை, இல்லை. கணினி ஆய்வுகள் அனைத்தும் ஆங்கில வடிவில் உள்ளதால் ஆங்கிலம் முன்னிலையில் உள்ளதாகவே நாம் இதைப் புரிந்து கொள்வோம்.

ஒரு வீட்டுப் படமாக இந்தக் கேள்வியை கூகிள் வழி கேட்டால் ஆங்கிலத்தில் புள்ளிவிவரத்தோ `விஸ்கான்சின்’ என்று சிறப்பாக தமிழ் தற்போது இந்த நிலையில் இல்லாவிட்டாலும் விரைவில் இந்த இலக்கை நோக்கி நம்மில் ஒருவர் முயல்வார்கள். இது நீங்களாவும் இருக்கலாம்.

என் பார்வையில் இந்த பரிணாம வளர்ச்சியின்பால் இப்போது அடுத்த 10-15 ஆண்டுகளில் ஒரு நல்ல தமிழ் நிரலாக்கம் சூழலை வருங்கால நிரலாளர்களுக்கு, உருவாக்கி கொடுத்தால், அது, அவர்களை நிரல் எழுதி தமிழில் செயலிகளை உருவாக்க ஊக்கம் அளிக்கும். ஒரு நல்ல சூழலில் நிரல் தொகுப்புகள் அகராதி, சொல்திருத்தி, இலக்கம் ஆய்வு. நிரல் செயல்முறை (அல்கோரித்ம்ஸ்) நிரலாளர், ஆவணங்கள், பயனர், குழுக்கள், பயிலரங்கங்கள் மேம்பாடு அடைய வேண்டும்.

முன்னோக்கு பலமான அஸ்திவாரம்

நூறு மாடிக்கட்டடம் ஒன்றை கனவு கண்டு எழுப்புவது எப்படி? அதற்கு ஒரு நல்ல திட்டம், ஒரு பலமான அஸ்திவாரம் வடிவமைத்துத் தொடங்க வேண்டும்.

தமிழில் புதிய செயலிகள் உருவாக ஒரு நல்ல மென்பொருள் சந்தை ஒன்று வெற்றிகரமாக உருவாக வேண்டும். இதில் தனியார், அரசினர், நிறுவனங்கள் பங்கு பெற்று வணிகம் செய்தால் தமிழில் மென்பொருள் எழுத, வடிவமைத்து ஒரு போதிய ஊதியம் கிடைக்குமாறு அமையும். இது ஒரு தானியங்கியாக அமையும்.

மக்களுக்குத் தேவையான மென்பொருள்கள் மக்கள் வாங்கும் வண்ணம் அவர்களுக்கு இந்தச் சந்தையில் கிடைக்கும்.

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

முக்கோண திட்டம்

இதற்கு எனது திட்டம் ஒன்றை இந்த கட்டுரையில் முன்வைக்கிறேன். தமிழில் முக்கோண வடிவில் அமைக்கப்பட்டது இந்த திட்டம் தனியார் வல்லுனர்கள், ஒரு கருவாக இலவசமாக பயிற்சி அளிப்பவர்கள் இந்த முக்கோணத்தில் ஒரு மூலை. கொடை அளித்துத் தமிழ் மொழி வளர செய்யும் அறக்கட்டளைகளும், தமிழ் மொழி நிறுவனங்களும் இன்னொரு மூலை, பொறியியல், அறிவியல், கணினி நிரலாக்கம் ஆகிய துறைகளில் பயிலும் மாணவர் மாணவியர் அனைவரும் ஒரு சிறிய மாத ஊதியதிற்கு (அறக்கட்டளை அளிக்கும் பொருட்டு). தனியார் வல்லுனர்கள் பார்வையில் ஒரு சிறிய மென்பொருள், செயலி அல்லது தொகுப்பில் பங்களிப்பவர்கள் கடைசி கோணம் (மூலை). மூன்று திசையினரும் சேர்ந்து செயல்பட வேண்டும். இதுவே முக்கோண திட்டம்.

இதன்படி செயல்படும் மூன்று திசையினருக்கும் என்ன பயன்? மாணவர்கள் மாதம் ஒரு தொகை பெற்று (உபயம் அறக்கட்டளை), வல்லுநர் சொல்லும்படி கேட்டு நிரல் எழுதவேண்டும். இதனால் மாணவர்கள் தங்கள் பொறியியல் அனுபவத்தை வளர்த்து கொள்ளலாம். வல்லுனர்கள் தங்களுக்கு பிடித்த திற மூல மென்பொருள்களை மேம்படுத்தலாம். அறக்கட்டளைகள் தங்களது இலக்கான தமிழ் வளர்ச்சியை சற்றே வேகமாக அடையலாம். இது என்னமோ ஒன்று பட்டால், உண்டு வாழ்வு,” என்ற பழமொழி போல் உள்ளது. இப்போது இந்த முக்கோண திட்டம் செயல்பாட்டில் இல்லை; ஆர்வம் உள்ளவர் என்னை அணுகலாம்.

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

இத்தகைய சூழல் உருவானால் மட்டுமே எளிதில் தமிழ் திறன்பேசி, கணினி செயலிகள் உருவாகும்; புதிய பங்களிப்பவர்களைப் பயிற்சி பட்டறைகள் நடத்தியும் அழைக்கலாம். இன்றும் நமதே! நாளையும் நமதே,

****

ஓபன் தமிழ் வழி சொல்திருத்தி

எல்லாம் நலமாக இருக்கிறீர்கள் என்று எண்ணுகிறேன். சென்ற வாரம் பாஸ்டன் நகரில் சைபீரியா குளிர் -22*C, அனால் எனக்கும் ஓபன் தமிழ் திட்டத்தில் பங்களிக்க நேரம் கிடைத்தது.

ஓபன் தமிழ் வழி சொல்திருத்தி ஒன்றை உருவாக்கும் பணியை மீண்டு இந்த ஆண்டு தொடங்கினேன். இந்த திருத்தியை “பல்-நிலை” (multi-pass) முறையில் முன்பே திட்டமிட்ட படி நாம் செயல்படுத்தலாம். இன்றுவரை செய்த நிரல்களை இங்கு பாருங்கள்
நேரம், ஆர்வம் இதற்க்கு சற்றுற ஒதுக்குங்கள்.
நன்றி,
முத்து

திருத்தும் உதவி – Pygments, ACE support

ஒரு புது திட்டம் என்றால், எழில் போன்ற மொழிகளுக்கு, மற்ற சுற்று சூழலில்  உள்ள மென்பொருள்களுக்கு நம்மை பற்றி சொல்லி கொடுக்க வேண்டும் என்ற ‘burden of proof’ பொறுப்பு நம்முடன் உள்ளது. எழில் மொழியில், Java, Python, என்பதில் போலவே எப்படி IDE, Syntax Highlighting கொண்டு வருவது ?

முதல் கட்டமாக Pygments என்கிற Python மொழியில் எழுதிய Syntax Highlighter என்ற திட்டத்தில் எழில் மொழியின் தொடரியலை / இலக்கணத்தை புரிந்து கொள்ளும் வகையில் செயல்பட்டோம். இதன் விளைவு இன்று எழில் மொழி Pygments என்ற திட்டத்தில் சேர்க்கபட்டது http://pygments.org/languages/ . முக்கியமாக நீங்கள் Pygments கொண்டு உங்கள் செயலியில் எழில் மொழியில் எழுதிய நிரல்களை உடனடியாக வண்ணம் குறியீடுகளுடன் வெளியீடு காட்டலாம்.

மேலும் ACE என்கிற வலை உலாவி (browser) வழி திருத்தியில் எழில் மொழியை செயல்படுத்த முயற்சிகள் மேற்கொள்ள பட்டது. இதன் விளைவாக http://ezhillang.org/koodam/play/ எழில் தளத்தில் நீங்கள் வண்ணகளுடன் உதவும் திருத்தியில் எழில் நிரல்களை இயக்கலாம்.

syntax-highlighting

தனி மரம் என்றுமே தோப்பாகாது!

 

2016-ஆம் ஆண்டுக்காண இலக்கு

இந்த ஆண்டு எனக்கு எழில் மொழியில் சில இலக்குகள் உள்ளன,
0. வலை தளத்தை சுலபமாக மேம்படுத்துவது
    – தற்போது உள்ள நிலையில் 3-முறை அல்லது 4-முறை AJAX request அனுப்பினால் மட்டுமே ezhillang.org/koodam/play/ விடையளிக்கிறது; தற்போது Chrome வலைஉலவி-யில் இது செயல்படுத்த வராது; மேலும் Django request-இல் 10 வினாடிகளுக்கு மேல் எதையும் செய்யமுடியாமல் தற்போது தாமதமாக செயல்படுகிறது.
1. எழில் மொழி Parser-ஐ மேம்பாடு செய்வது
2. Windows package உருவாக்குவது
3. Linux .deb மற்றும் rpm package உருவாக்குவது
4. தமிழ் மொழியில் பிழை தகவல்களை வெளியிடுவது
    (gettext போன்ற ஒரு அமைப்பை நான் இப்போது செய்து வருகிறேன்)
5. Ezhil மொழியிற்கு ஒரு IDE (PyGTK வழி, Eclipse-plugin) வழிகளில் முயற்சிகள்
இந்த இலக்குகளை உங்களுடனும், எனது மீதி நேரங்களிலும் செயல்படுத்தும் ஆர்வம் கொண்டவர்கள் ezhillang@gmail.com என்ற முகவரியில் மின் அஞ்சல் அனுப்பலாம். github தளத்திலும் தொடர்பு கொள்ளுங்கள்
நன்றி
முத்து,
பனியால் சூழ்ந்த பாஸ்டன்

எழில் மொழி எண் 0.8 வெளியீடு

வணக்கம் ,
எழில் மொழியின் அடுத்த அத்யாயம்
இன்று வெளியிடப்பட்டது - எண் 0.8 :

இதனை Python Package index வழியாக பெறலாம்;
(நீங்கள் ஏற்கனவே python நிறுவி
இருக்க வேண்டும்)

$ pip install --upgrade ezhil

குறிப்பாக:

      1. அணிகள் (arrays) 
      2. Profiling 
      3. பிழை தகவல்கள் மேம்பாடு 
      4. Python 3 தளத்தின் உபயோகம் 
      5. உரிலி பயன்பாடு 
      6. பல வழுக்களை நீக்கல் 

போன்ற பல அம்சங்களை கொண்டதாக இந்த
வெளியீடு அமைந்தது.

நன்றி,
முத்து
பாஸ்டன்

Bernoulli numbers

History:

உலகின் முதல் நிரல் இயற்றிய அரசி அடா லவ்லேஸ், (Bernoulli numbers) பெர்னொல்லீ எண்களை கணக்கிட்டார்!

Bernoulli number’s have the historic significance in computer programming – Lady Ada Lovelace’s “first” computer program for the Babbage Analytical engine calculated the Bernoulli number sequence. Here we do the same operations using a slightly easier method of recursion using the recurrence relation:

 \begin{align}   B_m(n) &= n^m-\sum_{k=0}^{m-1}\binom mk\frac{B_k(n)}{m-k+1} \\   B_0(n) &= 1. \end{align}

Code:

You can see the full code listing at Ezhil-Language repository

# பெர்னொல்லீ எண்களை கணக்கிடு
நிரல்பாகம்  பெர்னொல்லீ_எண் ( m, n  )
  @( m == 0 ) ஆனால்
    # பெர்னொல்லீ_எண்( 0, n ) = 1
    பின்கொடு  1.0
  இல்லை
    பெர்னொல்லீ = 0.0
    மொத்தம் = 0.0
    எண்கள் = range(0,m)
    @(எண்கள் இல் இவ்வெண்) ஒவ்வொன்றாக
        மொத்தம் = மொத்தம் + binomial_coeff(m,இவ்வெண்)*பெர்னொல்லீ_எண்(இவ்வெண்,n)/(m - இவ்வெண் + 1.0)	
        #பதிப்பி இவ்வெண், மொத்தம்
    முடி
    பெர்னொல்லீ = n^(m*1.0) - மொத்தம்
    பின்கொடு    பெர்னொல்லீ
  முடி
முடி

Tests:

You can run the code to verify the first few Bernoulli numbers:

B1 = பெர்னொல்லீ_எண்(1,0)
பதிப்பி "B1 = B(1,0)", B1
assert( (B1 - 0.5) < 1e-3 )

பதிப்பி "B2 = B(2,0)", பெர்னொல்லீ_எண்(2,0)
பதிப்பி "B4 = B(4,0)", பெர்னொல்லீ_எண்(4,0)

B6 = பெர்னொல்லீ_எண்(6,0)
பதிப்பி "B6 = B(6,0)", B6
assert( (B6 - 0.02380) < 1e-3 )

பதிப்பி "B4 = B(4,1)", பெர்னொல்லீ_எண்(4,1)

Credits: Photo from Flickr user.