தமிழ் தேதியிலிருந்து ஆங்கில தேதியை கணக்கிடுவது எப்படி?
தமிழ் நாட்காட்டி
ஆங்கில தேதியைப் பயன்படுத்தும் முறை எங்கும் நீக்கமற நிறைந்து விட்டது. அதை தவிர்க்கவும் முடியாது, பயன்படுத்துவதில் தவறும் இல்லை.
ஆனால் இன்றும் தமிழ் தேதியை வெளியில் பயன்படுத்துகிறோமோ இல்லையோ, இல்லங்களில் பயன்படுத்திக் கொண்டுதான் இருக்கிறோம். இந்து பண்டிகைகள், திருமண தேதி இவற்றை தமிழில் குறிக்கும் பழக்கம் தொன்றுதொட்டு பழக்கத்தில் உள்ளது. என் அம்மாவுக்கு என் பிறந்த தேதி ஆங்கிலத்தில் சரியாகத் தெரியாது, தமிழ் தேதியை உடனே சொல்லி விடுவார்.
நம்ம ப்ரியாவோட கல்யாணமா அது மாசி 10ந்தேதி எனச் சொன்னால், நம்மிடம் 2011 நாட்காட்டி இருந்தால் ஆங்கில தேதியை தெரிந்து கொள்ளலாம் இல்லை புது நாட்காட்டி கிடைக்கும் வரை காத்திருக்க வேண்டியதுதான். இதுவே ஒரு தேதி என்ன கிழமை எனக் கேட்டால் கணக்கில் மேதாவியாக இருப்பின் ஒரு காகிதமும் பேனாவும் போதும், அல்லது கணிப்பொறியின் உதவியுடன் துல்லியாமாக சொல்லிவிட முடியும்.
கணித சமன்பாடுகள் எதையுமே கணினியில் ஏற்றி வேலைகளை எளிமை படுத்த முடியும். ஜாதக கட்டத்தில் இருக்கும் கிரக நிலை முதல் வின்னில் செலுத்தும் செயற்கைகோள் வரை அனைத்தும் கணிதம்தான் என்பதை அறிவோம். இந்த வரிசையில் ஆங்கில தேதியிலிருந்து தமிழ் தேதியும், தமிழ் தேதியிலிருந்து ஆங்கில தேதியையும் கணக்கிடும் சூத்திரம் தெரிந்தால் எளிதாக கணினியிலும் ஏற்றி விடலாம். இணையத்தில் இப்பணியைச் செய்து முடிக்க சில இணையதளங்கள் உள்ளன.
http://www.prokerala.com/general/calendar/tamilcalendar.php
http://www.tamil-calendar.com
http://www.barathonline.com/Articles/TamilCalendar2010.htm
http://tamildailycalendar.com/
கணக்கிடும் முறையை பெரும்பாலும் பகிர்ந்து கொள்ளப் படாததால் நிறைய நிரல்கள் நம்மிடம் இல்லை. இது நமக்கு தெரிந்தால் டெஸ்க்டாப்பிலேயே தமிழ் நாட்காட்டி வைத்துக் கொள்ள இயலும், செல்பேசிகளில் பயன்படுத்தும் வண்ணம் சிறு மென்கலங்களை உருவாக்கலாம், இன்னும் நம் கற்பனை எல்லைகளை நீட்டிக் கொள்ள இயலும். இணையத்தில் எவ்வளவு தேடியும் தமிழ் தேதி கணக்கீட்டு முறையை அறிந்து கொள்ள முடியவில்லை. இதனைக் குறித்து அறிந்தவர்கள் தகுந்த சுட்டியோ அல்லது விளக்கமோ அளிக்குமாறு தாழ்மையுடன் கேட்டுக் கொள்கிறேன்.
ஆங்கில தேதியைப் பயன்படுத்தும் முறை எங்கும் நீக்கமற நிறைந்து விட்டது. அதை தவிர்க்கவும் முடியாது, பயன்படுத்துவதில் தவறும் இல்லை.
ஆனால் இன்றும் தமிழ் தேதியை வெளியில் பயன்படுத்துகிறோமோ இல்லையோ, இல்லங்களில் பயன்படுத்திக் கொண்டுதான் இருக்கிறோம். இந்து பண்டிகைகள், திருமண தேதி இவற்றை தமிழில் குறிக்கும் பழக்கம் தொன்றுதொட்டு பழக்கத்தில் உள்ளது. என் அம்மாவுக்கு என் பிறந்த தேதி ஆங்கிலத்தில் சரியாகத் தெரியாது, தமிழ் தேதியை உடனே சொல்லி விடுவார்.
நம்ம ப்ரியாவோட கல்யாணமா அது மாசி 10ந்தேதி எனச் சொன்னால், நம்மிடம் 2011 நாட்காட்டி இருந்தால் ஆங்கில தேதியை தெரிந்து கொள்ளலாம் இல்லை புது நாட்காட்டி கிடைக்கும் வரை காத்திருக்க வேண்டியதுதான். இதுவே ஒரு தேதி என்ன கிழமை எனக் கேட்டால் கணக்கில் மேதாவியாக இருப்பின் ஒரு காகிதமும் பேனாவும் போதும், அல்லது கணிப்பொறியின் உதவியுடன் துல்லியாமாக சொல்லிவிட முடியும்.
கணித சமன்பாடுகள் எதையுமே கணினியில் ஏற்றி வேலைகளை எளிமை படுத்த முடியும். ஜாதக கட்டத்தில் இருக்கும் கிரக நிலை முதல் வின்னில் செலுத்தும் செயற்கைகோள் வரை அனைத்தும் கணிதம்தான் என்பதை அறிவோம். இந்த வரிசையில் ஆங்கில தேதியிலிருந்து தமிழ் தேதியும், தமிழ் தேதியிலிருந்து ஆங்கில தேதியையும் கணக்கிடும் சூத்திரம் தெரிந்தால் எளிதாக கணினியிலும் ஏற்றி விடலாம். இணையத்தில் இப்பணியைச் செய்து முடிக்க சில இணையதளங்கள் உள்ளன.
http://www.prokerala.com/general/calendar/tamilcalendar.php
http://www.tamil-calendar.com
http://www.barathonline.com/Articles/TamilCalendar2010.htm
http://tamildailycalendar.com/
கணக்கிடும் முறையை பெரும்பாலும் பகிர்ந்து கொள்ளப் படாததால் நிறைய நிரல்கள் நம்மிடம் இல்லை. இது நமக்கு தெரிந்தால் டெஸ்க்டாப்பிலேயே தமிழ் நாட்காட்டி வைத்துக் கொள்ள இயலும், செல்பேசிகளில் பயன்படுத்தும் வண்ணம் சிறு மென்கலங்களை உருவாக்கலாம், இன்னும் நம் கற்பனை எல்லைகளை நீட்டிக் கொள்ள இயலும். இணையத்தில் எவ்வளவு தேடியும் தமிழ் தேதி கணக்கீட்டு முறையை அறிந்து கொள்ள முடியவில்லை. இதனைக் குறித்து அறிந்தவர்கள் தகுந்த சுட்டியோ அல்லது விளக்கமோ அளிக்குமாறு தாழ்மையுடன் கேட்டுக் கொள்கிறேன்.
DECEMBER 01, 2010
ஜாவா தொடர் - Interface
இந்தப் பதிவில் Interface குறித்து அறிந்து கொள்வோம். C, C++ மொழிகளில் இந்தக் கருத்துரு இல்லை. ஜாவா, C# மொழிகள் interfaceக்கு ஆதரவளிக்கிறது. Interfaceஐ தமிழில் இடைமுகப்பு எனச் சொல்லலாம். Interface declaration ஒரு classஐ declare செய்வதைப் போலவே ஒத்திருக்கும். Interfaceல் methodகளைக் declare செய்யலாமே தவிர define செய்ய இயலாது.
Methodகளை எழுத முடியாதென்றால் பிறகு அப்படியென்ன நன்மை interfaceஆல் கிடைத்து விடப் போகிறது. Interfaceஆல் பல நன்மைகள் புரோகிராமருக்கு உள்ளன. பெரிய ப்ராஜெக்ட்டுகளில் interfaceஐத் தவிர்க்க இயலாது. Interface இல்லாமலும் புரொகிராம் எழுதலாம். Interfaceஐத் தவிர்க்கும் போது என்னென்ன பிரச்சனைகள் வருமெனப் பார்ப்போம். பணியில் அமர்வதற்கு முன்னர் interface என்றால் என்ன என என்னிடம் கேட்டிருந்தால், ஜாவாவில் multiple inheritance இல்லை அதற்குபதில் interface பயன்படுத்திக் கொள்ளலாம் எனச் சொல்லியிருப்பேன். இதில் கொஞ்சம் உண்மையிருக்கிறதே தவிர interfaceன் பயன்பாடே வேறு.
Interface ஒரு class இப்படித்தான் இருக்க வேண்டுமெனச் சொல்கிறது. எந்தெந்த classசெல்லாம் interfaceஐ implement செய்கிறதோ அவை interfaceல் உள்ள methodகளுக்கு விளக்கமளிக்க வேண்டும். ஒரு class ஒன்று அல்லது ஒன்றுக்கு மேற்பட்ட interfaceகளை implement செய்கிறதென்றால், அந்த class தனக்கு அறிவுறுத்தப்பட்ட interfaceசுடன் பொருந்திச் செல்கிறதெனச் சொல்லலாம். அதிகப்படியான குழப்பங்கள் விளைவிப்பதன் காரணமாக ஜாவா multiple inheritanceஐ ஆதரவளிப்பதில்லை. ஜாவாவில் எழுதப்படும் எந்தவொரு classக்கும் அதிகப்படியாக ஒரு classன் பண்புகளை மட்டுமே inherit செய்ய முடியும். ஒரு classல் உள்ள பண்புகள் பல classகளுக்குத் தேவைப்படுகிறதென்றால் interface அதற்கு துணை புரியும்.
Animal என்றொரு class உள்ளதென வைத்துக்கொள்வோம்.
class Animal{int no_of_legs;
void run() {
}
}
நீங்கள் Dog என்றொரு class எழுதப் போகிறீர்கள், அதில் run() method வேண்டுமென நினைக்கிறீர்கள். run() மெத்தட் புதிதாக எழுதுவதற்கு பதில் ஏற்கனவே Animal.classல் எழுதப்பட்டிருக்கும் run() மெத்தடை பயன்படுத்திக் கொள்ளலாம். class Dog extends Animal {} என எழுதுவோம். இதுவே Animal என்பதை classசாக இல்லாமல் இடைமுகப்பாக வைத்திருந்தோமென்றால்
interface Animal {int no_of_legs;
void run();
}
என இருக்கும். Interfaceஐ extend செய்வதற்கு பதில் implement செய்ய வேண்டும். class Dog implements Animal. இங்கு Animal என்பது interface.
ஒரு classக்கு ஆப்ஜெக்ட் உருவாக்குவது போல் interfacக்கு ஆப்ஜெக்ட் உருவாக்க முடியாது.
class Animal....
Animal animal = new Animal();
இதுவே interface Animalலாக இருந்தால்
Animal animal = new Animal() என எழுத முடியாது. Interfaceசை வைத்துக் கொண்டு object reference உருவாக்கலாம். பின்னர் அந்த interfaceஐ implement செய்திருக்கும் எந்தவொரு classக்கும் புது ஆப்ஜெக்ட் உருவாக்கி assign செய்து கொள்ளலாம்.
Animal animal = new Dog(); Dog class Animal interfacசை implement செய்திருக்காவிட்டால் இது சாத்தியமில்லை.
அடுத்த பதிவில் interface குறித்து மேலும் விரிவாகப் பார்ப்போம்.
-தொடரும்
NOVEMBER 07, 2010
ஜாவா தொடர் - Strings அடிப்படைகள்.
Strings புரோகிராமிங்கில் தவிர்க்க முடியாத ஒன்று. வார்த்தைகள் இல்லையென்றால் மொழி ஏது? பல வார்த்தைகள் சேர்ந்து சொற்றொடர் அமைகிறது. இது புரோகிராமிங் சங்கதிக்கும் பொருந்தும். ஒரு மொழியில் உரையாடுவதற்கு வார்த்தைகள் எவ்வளவு அவசியம், அதுபோல strings பயனர் இடைமுகப்பு உருவாக்கப் பணியில் மிக முக்கிய பயன்வகிக்கிறது. Strings என்பது பயனர் இடைமுகப்பில் மட்டும் வருவதல்ல, இது பல்வேறு இடங்களில் பயன்படும். C மொழி படித்தவரிடம் String என்றால் என்ன என்று கேட்டால், array of characters எழுத்துக்களின் கோர்வை என அழகாக பதில் சொல்லிவிடுவார்.
Integer, float, boolean, character இவையெல்லாம் data typeகள் என அழைக்கப்படுகிறது. எடுத்துக்காட்டிற்கு a, b என இரண்டு variableகள் இருக்கிறதென்று வைத்துக்கொள்வோம். இவை என்ன data type என தெரிந்தால்தான் இவற்றில் என்னென்ன செய்ய முடியும், எவை முடியாது எனக் கூற முடியும். Data typeகள் புரொகிராமிங்கின் அரிச்சுவடி ஆகும். இதை புரிந்து கொள்வதில் சிக்கல் இருப்பதால்தான் புரோகிராமிங் என்பது சிலருக்கு எட்டாக் கனியாகவும், பலருக்கு கசப்பான அனுபவமாகவும் இருக்கிறது.
இந்த classஐ எப்படி எழுதுவது? அட சரியா போச்சு போங்க, நாம எழுதுனா நம்ம கதை கிழிஞ்சிடாதா! அந்த சிரமத்த நமக்கு கொடுக்கக் கூடாதுன்னுதான் ஜாவாவ உருவாக்குன மகராசன்களே string ஆப்ஜெக்டுகளை உருவாக்கிக் கொள்வதற்கு String.classஐயும் தந்துவிட்டு போயிருக்காங்க.
String firstName = "Rajkumar";
String lastName = "Ravi";
String fullName = firstName + lastName;
System.out.println(fullName);
System.out.println(firstName + lastName);
java strings are immutable.
Integer, float, boolean, character இவையெல்லாம் data typeகள் என அழைக்கப்படுகிறது. எடுத்துக்காட்டிற்கு a, b என இரண்டு variableகள் இருக்கிறதென்று வைத்துக்கொள்வோம். இவை என்ன data type என தெரிந்தால்தான் இவற்றில் என்னென்ன செய்ய முடியும், எவை முடியாது எனக் கூற முடியும். Data typeகள் புரொகிராமிங்கின் அரிச்சுவடி ஆகும். இதை புரிந்து கொள்வதில் சிக்கல் இருப்பதால்தான் புரோகிராமிங் என்பது சிலருக்கு எட்டாக் கனியாகவும், பலருக்கு கசப்பான அனுபவமாகவும் இருக்கிறது.
சரி ஜாவாவில் stringகளை எவ்வாறு பயன்படுத்துதெனப் பார்ப்போம். சி, சி++ போல ஜாவாவிலும் string என்றொரு data type கிடையாது. Stringகை சுக்கு நூறாய் உடைத்தால், கிடைப்பது எழுத்துக்களாக characters இருக்கும். ஜாவாவிலும் Character என ஒரு data typeஉள்ளது. மிக முக்கியமாய் ஜாவாவில் அறிந்து கொள்ள வேண்டியது என்னவென்றால் இங்குstrings objectகளாகக் கையாளப் படுகிறது. ஆப்ஜெக்ட் என்று ஒன்று இருந்தால், அதற்கு வடிவம் கொடுக்க class ஒன்று இருக்கும். Classஐ இடியாப்ப உரலாகவோ, முறுக்கு உரலாகவோ கற்பனை செய்து கொள்ளுங்கள். நமக்கு தேவையான பொருள் இப்படித்தான் வரவேண்டும் என ஒரு கருவியை வடிவமைத்து வைத்திருக்கிறோம். அதை வைத்துக் கொண்டு வேண்டிய அளவு இடியாப்பத்தையோ, முறுக்கையோ புழிந்து கொள்கிறோம். இதையேத்தான் classகளும் செய்கிறன. ஒரு ஆப்ஜெக்ட் எப்படி இருக்க வேண்டும் எனும் வரையறைகளை அதன் class சொல்கிறது. அந்த class மூலமாக அதன் வகையறாக்களான எத்தனை ஆப்ஜெக்டுகளை வேண்டுமானாலும் உருவாக்கிக் கொள்ளலாம்.
ஜாவாவில் string என்பது ஆப்ஜெக்டுகள் எனத் தெரிந்து கொண்டோம். சரி, ஜாவாவில் stringகளை எவ்வாறு உருவாக்குவது? இதென்ன கேள்வி, stringக்கான classஐக் கொண்டுதான். பின்னர் string ஆப்ஜெக்டை உருவாக்க string class இல்லாமலா?
இந்த classஐ எப்படி எழுதுவது? அட சரியா போச்சு போங்க, நாம எழுதுனா நம்ம கதை கிழிஞ்சிடாதா! அந்த சிரமத்த நமக்கு கொடுக்கக் கூடாதுன்னுதான் ஜாவாவ உருவாக்குன மகராசன்களே string ஆப்ஜெக்டுகளை உருவாக்கிக் கொள்வதற்கு String.classஐயும் தந்துவிட்டு போயிருக்காங்க.
Classகளை ஒழுங்கா அடுக்கி வைக்க packages பயன்படுகிறது. Packageகளை Implicit packages, explicit packages என இருவகையில் குறிப்பிடலாம். Implicit packages என்பது தன்னியல்பாக default வருவது, explicit packages நாமாகவே உருவாக்கிக் கொள்வது. String என்பது ஜாவாவுடன் தன்னியில்பாகவே வரும் class எனப் பார்த்தோம். அது java.lang எனும் packageல் இருக்கிறது. ஒரு classஐ பயன்படுத்த முதலில் அதை import இறக்குமதி செய்ய வேண்டும்.
java.lang.String name;
import java.lang.*;
String name;
என எழுதுவதற்கு பதில் நேரடியாக String name; என்று எழுதிக் கொள்ளலாம். java.lang packageஐ நாம் import செய்யத் தேவையில்லை, JVMமே அந்த வேலையைப் பார்த்துக் கொள்ளும்.
String name;
name என்றொரு variableஐ உருவாக்குகிறோம், அல்லது ஒரு stringகிற்கு name என்றொருobject referenceஐ (string object) உருவாக்குகிறோம் என்றும் சொல்லலாம். Object oriented programmingல் ஒரு ஆப்ஜெக்டுக்கு variable உருவாக்குகிறோம் எனச் சொல்வதைவிட ஒரு ஆப்ஜெட்டுக்கு reference உருவாக்குகிறோம் எனச் சொல்வது மிகப் பொருத்தமாக இருக்கும்.
ஒரு string ஆப்ஜெட்டுக்கு reference உருவாக்கி விட்டோம். இதனைப் பயன்படுத்த ஒரு ஆப்ஜெக்டை உருவாக்கி அதன் referenceஐ (மெமரியில் அதன் addressஐக் குறிப்பது) object reference variableல் சுட்ட வேண்டும்.
name = new String("Hello");
name = "Hello";
இதில் எந்த முறையில் வேண்டுமானாலும் நமக்குத் தேவையான stringகளை உருவாக்கிக் கொள்ள முடியும். இந்த இரண்டு வழிகள் மட்டுமல்ல,Stringகளை பல வழிகளில் ஜாவாவில் உருவாக்க முடியும். String classல் உள்ள overloaded constructors இதனை சாத்தியமாக்குகின்றது. Constructors குறித்து அடுத்தடுத்த பதிவுகளில் நிதானமாக பார்ப்போம்.
பொதுவாக ஒரு ஆப்ஜெக்டை உருவாக்க 'new' keyword பயன்படுகிறது. Stringகளை உருவாக்கnew குறிச்சொல்லை பயன்படுத்தாமலே, சுருக்கு வழியில் உருவாக்கலாம். அந்த சுருக்கு வழி, இரட்டை மேற்கோற் குறிக்குள் எழுதுவது (inside double quotes). இப்படி சுருக்கு வழியில் stringகளை உருவாக்கும் விதத்தை literal notation எனக் குறிப்போம்.
'a' இப்படி எழுதுவதற்கும், "a" என எழுதுவதற்கும் நிறைய வேறுபாடு இருக்கிறது. முதலாவது'a' ஆங்கில எழுத்துக்களில் உள்ள முதல் எழுத்தைக் (character) குறிக்கிறது. இரண்டாவது,"a" எனும் stringஐக் குறிக்கிறது. ஜாவாவில் stringகுகள் objectட்டாகக் கையாளப் படுவதால் நமக்கு பல வசதிகள் உள்ளது. பொதுவாக இதில் நாம் செய்ய நினைக்கும் அத்தனை செயல்களுக்கும், அதை செய்வதற்கு
உதவியாய் பல்வேறு methodடுகள் நமக்கு வரப்பிரசாதமாய்க் கிடைத்துள்ளன.
Eclipseல் ஒரு stringகையோ, அதனை சுட்டும் referenceஐயோ பயன்படுத்துகையில், ஒரு புள்ளி (period) வைத்ததுமே அதில் என்னென்ன methodகள், என்னென்ன propertiesஇருக்கிறதென்று பட்டியல்லிட்டுவிடும். எதையுமே நாம் மனப்பாடம் செய்ய வேண்டியதில்லை. அந்தந்த methodகளின் பெயரைப் படித்தாலே ஓரளவுக்கு யூகித்து விடலாம்.
Stringல் குறிப்பாக அடிக்கடி பயன்படுத்தும் methodகளை பார்த்து விடுவோம்.
length() என்பது stringகில் ஒரு முக்கியமான method ஆகும். "Rajkumar" எனும் stringல் எத்தனை எழுத்துக்கள் இருக்கிறதென்று அறிய "Rajkumar".length() எனக் கொடுத்தால் போதும். இங்கு stringஐ நாம் நேரடியாகக் கொடுப்பதால், புரோகிராமை இயக்குவதற்கு முன்பே 8 எழுத்துக்கள் என விடையைச் சொல்லி விடலாம். என்ன string வருமென்றே தெரியாது என வைத்துக் கொள்வோம், அந்த இடத்தில் stringதனை சுட்டும் string referenceஐ பயன்படுத்திக் கொள்ளலாம்.
எடு: String name;
name = "Rajkumar";
இப்போது நீங்கள் name.length() எனக் கொடுத்தாலும் சரியான விடை வரும்.
அடுத்து வெவ்வேறு stringகளை ஒன்றாய் இணைப்பது (concatenation) எவ்வாறு எனப் பார்ப்போம். இதற்கு concat() method பயன்படுகிறது.
string1.concat(string2);
"Raj".concat("kumar") --------------> "Rajkumar"
new குறிச்சொல் பயன்படுத்தாமலேயே " " மேற்கோள் குறிகளைக் கொண்டு சுருக்கு வழியில் எவ்வாறு stringகளை உருவாக்குவது எனப் பார்த்தோம். அதுபோல concat() methodஐ பயன்படுத்தாமலேயே + கூட்டல் குறியைக் கொண்டும் வெவ்வேறு stringகளை இணைத்துக் கொள்ளலாம்.
"tamil".concat("cpu") என எழுதுவதற்கு பதிலாக "tamil" + "cpu" என எழுதிக் கொள்ளலாம். இவை இரண்டும் ஒரே வெளியீட்டைத்தான் தரும்.
ஜாவாவில் console (console என்றால் திரை. நமது கணினியில் கட்டளைகளை இயக்கும்command prompt/terminal என வைத்துக் கொள்ளுங்கள்) புரோகிராமில் நாம் சொல்ல நினைக்கும் வரிகளை System.out.printlnல் எழுதுவோம். அதைக் கொண்டு சில எடுத்துக்காட்டுகளைக் காண்போம்.
String name = "Rajkumar";
System.out.println("name"); என எழுதினால் "name" என்பதுதான் வெளியீடாகக் (output) கிடைக்கும். இரட்டை மேற்கோள் குறியில் எதை எழுதினாலும் அது string என அர்த்தம் கொள்ளப் படும். System.out.println(name) என்பது நமக்கு வேண்டிய வெளியீட்டைத் தரும்.
String firstName = "Rajkumar";
String lastName = "Ravi";
String fullName = firstName + lastName;
System.out.println(fullName);
System.out.println(firstName + lastName);
இரண்டும் ஒரே வெளியீட்டைத்தான் தரும். RajkumarRavi என எழுதுவதற்கு இரண்டு பெயர்களுக்கும் ஒரு இடைவெளி விட்டு Rajkumar Ravi என எழுதினால் நன்றாக இருக்குமல்லவா. இந்த இரண்டு பெயர்களுக்கும் இடையே " " இப்படி சொருகி விடுங்கள்.
System.out.println(firstName + " " + lastName);
System.out.println("Normal: " + firstName);
System.out.println("Capital letters: " + firstName.toUpperCase() ); இதற்கு விளக்கம் தேவையில்லையென நினைக்கிறேன்.
ஜாவாவில் stringஸ்களை கையாளும்போது நாம் அடிக்கடி செய்யும் தவறு, இரண்டு stringகளை == operator மூலம் ஒன்றாக உள்ளனவா எனப் (compare) பார்ப்பது.
String name1 = "Raghu";
String name2 = "Raghu123".subString(0,5);
if ( name1 == name2)
System.out.println("name1 and name2 are equal");
else
System.out.println("name1 and name2 are different");
இதற்கு விடையை நாம் யூகித்தால் name1 and name2 are equal என வருமென அடித்துச் சொல்வோம். ஆனால் அதுதான் இல்லை. இரண்டும் ஒன்றில்லையா, ஆம் இரண்டும் ஒன்றில்லை name1றும் name2வும் வெவ்வேறு "Raghu" எனும் stringகளைக் குறிக்கிறது.
சரி இப்படி எடுத்துக் கொள்ளுங்கள்.
int a = 5;
int b = 5;
if (a == b)
System.out.println("a is equal to b.");
else
System.out.println("No, first 5 is different from second 5");
இதற்கு விடை a is equal to b என வரும். பொதுவாக ஜாவாவில் எல்லாமே ஆப்ஜெக்டுகளாகத்தான் கையாளப் படுகிறது, data typeற்கு மட்டும் இது விதிவிலக்கானது. வேகமான இயக்கத்திற்காக அடிப்படை data typeகள் C மொழியில் உள்ளது போலவே நேரடியாகக் கையாளப்படுகிது. ஆனால் stringகுகள் data type பிரிவில் வராது என்பதை மீண்டும் நினைவில் நிறுத்திக் கொள்க.
நீங்கள் உருவாக்கும் ஒவ்வொரு stringகும் தனித்தனி string ஆப்ஜெக்ட்டுகளாகும். ஆப்ஜெக்டுகளை compare செய்ய equals() method பயன்படுகிறது. இது அனைத்து ஆப்ஜெக்டுகளுக்கும் பொருந்தும். ஜாவா தெரியும் என நம் சுயவிவரக் குறிப்பில் (resume) நாம் எழுதியிருந்தால் நம்மிடம் முதலில் வைக்கப் படும் கேள்வி what is the root class of java? ஜாவாவின் ஆணிவேரான மூல class எது என்பதாக இருக்கும். ஜாவாவில் எல்லாமே ஆப்ஜெக்ட்டுகள் என்றால் அந்த class Object.classஆக இல்லாமல் வேறெந்த classஆக இருக்கும். Object classல் இருக்கும் அனைத்து public methodகளையும் எந்தவொரு ஆப்ஜெக்ட்டாக இருந்தாலும் அதில் பயன்படுத்திக் கொள்ளலாம். இதுதான் inheritanceன் மகிமை.
சாதாரணமாக class MyClass { .. என்று எழுதுவோம்.
ஒரு classஐ inherit செய்ய class MyClass extends AnotherClass {... என எழுதுவோம். இப்போது AnotherClassல் இருக்கும் அனைத்து public methodகளையும் MyClassல் பயன்படுத்திக் கொள்ளலாம்.
AnotherClassல் இருக்கும் methodகளுக்கு நாம் எழுதும் MyClassல் புது விளக்கம் கொடுத்தால் அதுதான் overriding. ஜாவாவில் உள்ள அனைத்து ஆப்ஜெக்ட்டுகளும் தன்னியல்பாகவே Object classசினை extend செய்திருப்பதால், Object classல் உள்ள மெத்தட்களை அப்படியேவும் பயன்படுத்தலாம் overridingகும் செய்து கொள்ளலாம். Object classல் ஏகப்பட்ட methodகள் இருந்தாலும் நான் பயன்படுத்திப் பார்த்தது toString() மற்றும் equals().
சரி ஒரு வழியாக stringகிற்கு திரும்புவோம். ஜாவாவில் strings ஆப்ஜெக்ட் என்பதால் Object classன் அங்கமான equals(), toString() methodகளை இயல்பாகவே பயன்படுத்திக் கொள்ளலாம். இரண்டு stringகள் ஒன்றாக இருக்கின்றனவா என சோதிக்க == ஆபரேட்டருக்கு பதிலாக equals() மெத்தடை பயன்படுத்தவும்.
if ( name1.equals(name2)).... எனக் கொடுக்க வேண்டும். பிறகு == ஆப்பரேட்டரை பயன்படுத்தும் போது ஏன் பிழை காட்டவில்லை. equals() மெத்தட் ஆப்ஜெட்டுகளின் உள்ளடக்கம் (contents) ஒன்றாக இருக்கின்றனவா என பரிசோதிக்க. == ஆபரேட்டர் இரண்டும் ஒரே ஆப்ஜெக்ட்டைத்தான் குறிக்கின்றனவா (same reference) என சோதிக்க.
String name1 = "Raj"
String name2 = name1; // name1ன் reference name2விற்கும் காப்பி செய்யப் படுகிறது.
if (name1 == name2)------> என்றால் சரிதான் என விடை வரும்.
ஜாவா புத்தகத்தில் படித்திருக்கிறீர்களா (திறந்தாவது பார்த்ததுண்டா, என்ன இல்லையா! அட நம்ம ஜாதிதான்.. :) Strings are immutable என்றொரு வாக்கியம் இருக்கும். இல்லையென்றால் நீங்கள் படிப்பது ஜாவா புத்தகம்தானா என்பதை உறுதி செய்து கொள்ளவும். இதில் என்ன சொல்ல வருகிறார்கள். ஆங்கிலத்தில் mutable என்றால் மாற்றக் கூடியது, மாறும் தன்மை கொண்டது எனப் பொருள். Immutable என்பது mutableக்கு எதிர்ப் பதம்.
அதாவது ஜாவாவில் ஒரு stringகை உருவாக்கிய பின்னர் அதில் மாற்றம் செய்ய முடியாது.
இதென்ன புதுக்கதை?
String name = "Raghu";
name = "Raj"; "Raghu" எனும் stringகைத்தான் "Raj" எனும் stringகால் overlap செய்து விட்டோமே, பிறகு stringசை immutable எனச் சொல்வது நியாயம்தானா? இல்லை இல்லை "Raj" என்ற புது stringகை உருவாக்குகிறோமே தவிர "Raghu" என்ற stringகை திருத்தி எழுதவில்லை. name என்பது string ஆப்ஜெக்ட் அல்ல, அது உண்மையான stringகளைக் குறிக்கும் வெறும் referenceதான். Referenceகளை மாற்ற முடியுமே தவிர, stringகுகளையல்ல. தேவையில்லாமல் ஆயிரக்கணகான stringகள் இருந்தால் சிஸ்டமே ஸ்தம்பித்து விடும் என்பதை நினைவில் கொள்க. மாறும் வகைகொண்ட stringகளை உருவாக்க StringBuffer class பயன்படுகிறது. அதைக்குறித்து எழுதி பழிபாவங்களுக்கு ஆளாக விரும்பவில்லை, மேலதிக விவரம் வேண்டுவோர் புத்தகத்தில் படித்து தெரிந்து கொள்ளவும்.
இக்கட்டுரையில் தேவையில்லாக் கதைகள் நிறைய இருக்கின்றது எனக் கருதினால் மன்னிக்கவும், இது ஜாவா ஓரளவுக்கு தெரிந்தவர்களுக்கான தொடரல்ல என்பதை தாழ்மையுடன் தெரிவித்துக் கொள்கிறேன். புரோகிராம் எழுதுவதை மலையை பெயர்க்கும் வேலையாக நினைக்கும்
அப்பாவிகளுக்காக எனக்கு புரிந்த வரையில் பகிர்ந்து கொள்கிறேன். ஜாவா கற்பது கடினமானது, ஆனால் கற்றே தீர வேண்டும் என நினைப்பவர்களுக்கு இத்தொடரினை அறிமுகப் படுத்துங்கள். எனக்கும் மனநிறைவு கிட்டும். நன்றி.
charAt(), subString(), trim()... போன்றவற்றை நீங்களாகவே படித்து பயன்படுத்திப் பாருங்கள்.
சுருக்கமாக நச்சென்று ஜாவா strings பற்றி சொல்ல வேண்டுமானால்
java strings are objects &java strings are immutable.
-- தொடரும்.
OCTOBER 31, 2010
ஆண்ட்ராய்டில் ரேட்டிங்பார் விட்ஜெட் புரொகிராம்
நான் எழுதிப் பழகிய என்னுடைய முதல் ஆண்ட்ராய்ட் புரோகிராமை இணையத்தில் பகிர்ந்து கொண்டுள்ளேன். உங்களிடம் ஆண்ட்ராய்ட் SDK, எக்லிப்ஸ் ஆகிய மென்பொருட்கள் இருந்தால் உடனே களத்தில் குதியுங்கள்.
எக்லிப்சை புதிதாய் பயன்படுத்துபவரைக் கருத்தில் கொண்டு ஏற்கனவே எழுதப் பட்டிருக்கும் புரோகிராமை (எக்லிப்ஸ் ப்ராஜெக்டை) எளிதாக எவ்வாறு பயன்படுத்தலாம் என்பதற்கு சில படங்களை இணைத்துள்ளேன்.
ஜாவாவில் சில விஷயங்களைக் கற்றுக் கொண்டு ஆண்ட்ராய்டில் புரோகிராம் செய்வது எப்படி என்பதையும் தமிழிலேயே பார்த்துவிடலாம். ஜாவாவெல்லாம் தெரியும்ஆண்ட்ராய்டை தமிழில் படித்தால் நல்லாத்தான் இருக்குமென நினைப்பவர்கள் பின்னூட்டத்தில் தெரிவிக்கவும். ஆங்கிலத்தில் கற்றுக் கொள்வதில் பிரச்சனையில்லை என நினைப்பவர்கள்http://androidorigin.blogspot.comப்ளாக்கில் விளக்கங்களைப் பெறலாம்.
OCTOBER 29, 2010
ஜாவா எளிமையாய் கற்க ஒரு இலவச PDF மின்-புத்தகம்
வலையுலக அன்பு நெஞ்சங்களே, ஜாவா நிரலாக்கம்குறித்து தொடர்கட்டுரை எழுதப்போவதாக அறிவித்துவிட்டு கொஞ்சம் கொஞ்சமாக நழுவிச் சென்றவன் எளிய வழியில் ஜாவா கற்றுக்கொள்ள நல்லதொரு மின்புத்தகத்தைக் கண்டு கொண்டேன். உடனே பகிர்ந்துகொள்ள வேண்டுமெனத் தோன்றியது, செய்துவிட்டேன். அந்த புத்தகத்தைத் தமிழ்படுத்துவதில் எனக்கு விருப்பமில்லை. எளிமையான ஆங்கிலத்தில்தான் உள்ளது, மெல்ல மெல்ல படித்துப் பயன்பெறவும். அவ்வப்போது நான் கற்றுக் கொண்டதையும் பகிர்ந்து கொள்கிறேன்.
- ஜாவா பயணம் தொடரும்
OCTOBER 20, 2010
எக்லிப்ஸ் - ஆண்ட்ராய்ட் - XML பிழை செய்தி
எக்லிப்ஸ் புதிய பதிப்பில் ஆண்ட்ராய்ட் xml கோப்புகளில் பணியாற்றும்போது அடிக்கடி ஒரு பிழைசெய்தி வந்து எரிச்சலூட்டும்.
முதல்முறை இந்த பிழை செய்தியை பார்த்தபோது நிறுவதலில் ஏதேனும் குறை நேர்ந்துவிட்டதோ என நினைத்தேன்.
இணையத்தில் தேடிய போது இது எக்லிப்ஸ் ஹீலியோஸில் பணியாற்றும் அனைவருக்கும் வரும் பிரச்சனைதான் எனக் கண்டுகொண்டேன்.
இதை களைவதற்கு இணையத்தில் கண்டறிந்த இரண்டு தீர்வுகள்
- xml கோப்பை(file) வலது க்ளிக் செய்து Open with Android XML editor என்பதை தேர்வு செய்ய வேண்டும்.
- மற்றொன்று xml root tagல் namespace attribute கொடுப்பது
இரண்டாவது வழி எனக்கு நன்றாக வேலை செய்தது.
சும்மாயில்லாமல் துறுதுறுவென அனைத்தையும் க்ளிக்கிப் பார்க்கும் என் வழக்கத்தால் எனக்கு ஒரு தீர்வு கிடைத்தது.
XML கோப்பை (strings.xml) Resources tabல் திறந்து கொள்ளவும். மேல் வலது மூளையில் இருக்கும் ஐகானை சொடுக்குங்கள். பிரச்சனை தீர்ந்து விட்டது, இனி எந்தத் தொல்லையுமில்லாமல் xmlல் எடிட் செய்யலாம்.
இந்த பதிவின் ஆங்கிலப் பதிப்பைக் காண
http://androidorigin.blogspot.com/2010/10/simple-solution-to-get-rid-off-null.html
OCTOBER 16, 2010
MySQL Database எளிமையாகக் கையாள MySQL Query Browser
MySQL என்பது ஒரு database (தரவுதளம்) ஆகும். Databaseல் நமக்குத் தேவையான தகவல்களை வைத்துக் கொண்டு வேண்டிய நேரத்தில் அதை அணுகிப் பெற்றுக் கொள்ளலாம். உங்கள் வீட்டு மின்சார கட்டணத்தையோ, தொலைபேசி கட்டணத்தையோ செலுத்த செல்கிறீர்கள். அங்கு computerல் (கணினி) உங்கள் கட்டண billல் உள்ள எண்ணை உள்ளீடு செய்வதைப் பார்த்திருக்கிறீர்களா? அது அவர்களுடைய databaseல் பதிவாகிறது. FMல் (பன்பலை) கேட்டவுடன் பாட்டு போடுவது, சமையல் எரிவாயு வேண்டி தொலைபேசியில் பதிய உங்கள் எண்ணை சொன்ன உடனேயே உங்கள் பெயரைச் சொல்லி வியப்படையச் செய்வது அத்துனையும் அதிவேகமாகத் தகவல்களைத் தரும் databaseஆல்தான். கல்லூரி பாடத்திட்டத்திலும் இது ஒரு தவிர்க்க முடியாத, கட்டாயம் கற்க வேண்டிய பாடமாகும்.
நிறைய கல்லூரிகளில் அதிகளவில் தகுந்த உரிமமில்லாமல் ஆயிரக்கணக்கான விலையுடைய காப்புரிமை மென்பொருட்களை பயன்படுத்துகின்றனர். DBMS Database Managaement System பாடத்தில் செய்முறைப் பயிற்சியும் (practical) கட்டாயம் இருக்கும். Database என்பது ஒரு பொதுவான பாடத்திட்டம். Databaseல் உள்ள தகவல்களை கேட்டுப் பெறுவதற்கு ஒரு மொழி உண்டு. அதுதான் SQL Structured Query Language. SQL வழியாகத்தான் அனைத்து தகவல்களையும் உள்ளீடு செய்வதிலிருந்து, அதை பராமரிப்பது, மேம்படுத்துவது, தகவல்களை கேட்டுப் பெறுவது என அனைத்து வேலைகளையும் செய்கிறோம். இதன் சாராம்சம் பெரும்பாலும் அனைத்து databaseகளிலும் ஒரே மாதிரித்தான் இருக்கும். அப்படி இருக்கையில் ஏன் ஒரு குறிப்பிட்ட மென்பொருளை மட்டும் பயன்படுத்த வேண்டும். எடுத்துக்காட்டிற்கு Oracle database இல்லாத கல்லூரியையோ, பல்கலைக்கழகத்தையோ காண்பது அரிது. Oracleலிலும் இலவசப் பதிப்பு இருக்கிறது, நாம் அதையா பயன்படுத்துகிறோம். நாம் பயன்படுதுவதெல்லாம் தொன்றுதொட்டு பயன்படுத்திவரும் Oracle Personal edition 7 தானே. இது இலவச பதிப்பு இல்லை. உங்களுக்கு ஆரக்கிள்தான் பயன்படுத்த வேண்டுமென்றால் Oracale Xpress Edition பயன்படுத்தவும். இது விண்டோஸ் OSற்கு (இயங்குதளம்) மட்டுமல்லாமல் லினக்சுக்கும் கிடைக்கும்.
மாணவர்களின் பயிற்சிக்கு ஆரக்கிள்தான் பயன்படுத்த வேண்டும் என்பதில்லை. Open Source (திறமூல மென்பொருள்) databaseகளையும் பயன்படுத்தலாம். இவற்றில் முக்கியமான இரண்டு databaseகள் MySQLலும், Postgree SQLலும். MySQL தற்போது ஆரக்கிள் வசம் இருக்கிறது. Postgree SQL முழுக்க முழுக்க சுதந்திரமாகப் பயன்படுத்தலாம். MySQL ஏற்கனவே அதிகளவில் பயன்பாட்டுக்கு வந்ததால் அதனை எளிமையாக நிர்வகிக்க பல தரமான applications (மென்கலம்) உள்ளன.
Project செய்யும் மாணவர்களிடம் அடிக்கடிக் கேட்கப் படும் கேள்வி என்ன Frontend? எந்த Backend? பயன்படுத்துகிறாய் என்பதுதான். Frontend என்பது தகவல்களை சாதாரண பயனாளார் எளிமையாக (user friendly) உள்ளீடு செய்வதற்காக வடிவமைப்பது. Backend என்பது பின்புலத்தில் என்ன database பயன்படுத்துகிறோம் என்பதைக் குறிக்கிறது. அதுசரி projectற்கு frontend வடிவமைப்பது இருக்கட்டும். பின்புல databaseஐ வடிவமைப்பதற்கு நமக்கொரு frontend இருந்தால் எப்படியிருக்கும். Databaseல் தகவல்கள் Tableகளில் சேமிக்கப் படுகிறது. இந்த tableகளை வடிவமைப்பதே போதும் போதுமென்றாகி விடும். இந்த வடிவமைப்புகளை எளிமைப் படுத்த தற்போது வரும் அனைத்து databaseகளிலும் (MS Access, MySQL, Microsoft SQLServer, Oracle, SQLite...) tableகளை எளிமையாக வடிமைக்கவும், அதில் எளிதாக தகவல்களை உள்ளீடு செய்யவும், நமக்கு வேண்டிய SQL queryகளை வடிவமைக்கவும் ஏகப்பட்ட வசதிகள் இருக்கின்றது.
நிறைய கல்லூரிகளில் அதிகளவில் தகுந்த உரிமமில்லாமல் ஆயிரக்கணக்கான விலையுடைய காப்புரிமை மென்பொருட்களை பயன்படுத்துகின்றனர். DBMS Database Managaement System பாடத்தில் செய்முறைப் பயிற்சியும் (practical) கட்டாயம் இருக்கும். Database என்பது ஒரு பொதுவான பாடத்திட்டம். Databaseல் உள்ள தகவல்களை கேட்டுப் பெறுவதற்கு ஒரு மொழி உண்டு. அதுதான் SQL Structured Query Language. SQL வழியாகத்தான் அனைத்து தகவல்களையும் உள்ளீடு செய்வதிலிருந்து, அதை பராமரிப்பது, மேம்படுத்துவது, தகவல்களை கேட்டுப் பெறுவது என அனைத்து வேலைகளையும் செய்கிறோம். இதன் சாராம்சம் பெரும்பாலும் அனைத்து databaseகளிலும் ஒரே மாதிரித்தான் இருக்கும். அப்படி இருக்கையில் ஏன் ஒரு குறிப்பிட்ட மென்பொருளை மட்டும் பயன்படுத்த வேண்டும். எடுத்துக்காட்டிற்கு Oracle database இல்லாத கல்லூரியையோ, பல்கலைக்கழகத்தையோ காண்பது அரிது. Oracleலிலும் இலவசப் பதிப்பு இருக்கிறது, நாம் அதையா பயன்படுத்துகிறோம். நாம் பயன்படுதுவதெல்லாம் தொன்றுதொட்டு பயன்படுத்திவரும் Oracle Personal edition 7 தானே. இது இலவச பதிப்பு இல்லை. உங்களுக்கு ஆரக்கிள்தான் பயன்படுத்த வேண்டுமென்றால் Oracale Xpress Edition பயன்படுத்தவும். இது விண்டோஸ் OSற்கு (இயங்குதளம்) மட்டுமல்லாமல் லினக்சுக்கும் கிடைக்கும்.
மாணவர்களின் பயிற்சிக்கு ஆரக்கிள்தான் பயன்படுத்த வேண்டும் என்பதில்லை. Open Source (திறமூல மென்பொருள்) databaseகளையும் பயன்படுத்தலாம். இவற்றில் முக்கியமான இரண்டு databaseகள் MySQLலும், Postgree SQLலும். MySQL தற்போது ஆரக்கிள் வசம் இருக்கிறது. Postgree SQL முழுக்க முழுக்க சுதந்திரமாகப் பயன்படுத்தலாம். MySQL ஏற்கனவே அதிகளவில் பயன்பாட்டுக்கு வந்ததால் அதனை எளிமையாக நிர்வகிக்க பல தரமான applications (மென்கலம்) உள்ளன.
Project செய்யும் மாணவர்களிடம் அடிக்கடிக் கேட்கப் படும் கேள்வி என்ன Frontend? எந்த Backend? பயன்படுத்துகிறாய் என்பதுதான். Frontend என்பது தகவல்களை சாதாரண பயனாளார் எளிமையாக (user friendly) உள்ளீடு செய்வதற்காக வடிவமைப்பது. Backend என்பது பின்புலத்தில் என்ன database பயன்படுத்துகிறோம் என்பதைக் குறிக்கிறது. அதுசரி projectற்கு frontend வடிவமைப்பது இருக்கட்டும். பின்புல databaseஐ வடிவமைப்பதற்கு நமக்கொரு frontend இருந்தால் எப்படியிருக்கும். Databaseல் தகவல்கள் Tableகளில் சேமிக்கப் படுகிறது. இந்த tableகளை வடிவமைப்பதே போதும் போதுமென்றாகி விடும். இந்த வடிவமைப்புகளை எளிமைப் படுத்த தற்போது வரும் அனைத்து databaseகளிலும் (MS Access, MySQL, Microsoft SQLServer, Oracle, SQLite...) tableகளை எளிமையாக வடிமைக்கவும், அதில் எளிதாக தகவல்களை உள்ளீடு செய்யவும், நமக்கு வேண்டிய SQL queryகளை வடிவமைக்கவும் ஏகப்பட்ட வசதிகள் இருக்கின்றது.
எடுத்துக்காட்டிற்கு MySQL databaseக்கு உள்ள ஒரு visual toolஐ காண்போம். MySQL பயன்படுத்தும் அனைவரும் கட்டாயம் MySQL Query Browserஐயும் பயன்படுத்துங்கள். எழுத்தில் தரும் விளக்கதைவிட ஒரு படம் எளிதாகச் சொல்ல வேண்டியதை சொல்லிவிடும் என நினைக்கிறேன். கீழ்காணும் MySQL Query Browser படங்களைக் காணுங்கள். நீங்கள் விண்டோசிலோ, லினக்சிலோ இந்த tool பயன்படுத்தாமல் MySQLஐ command promptட்டிலும், terminalலிலும் பயன்படுத்துவராக இருந்தால் உடனே உங்களிடம் அவசியம் இருக்க வேண்டிய இந்த மென்பொருளை install செய்து கொள்ளுங்கள்
OCTOBER 09, 2010
சமீபமாக தொடராத ஒரு ஜாவா தொடர்
ஜாவாவில் எனக்குப் புரிந்ததை பகிர்ந்து கொள்கிறேன். சில விஷயங்களை நான் தவறாகவும் புரிந்து கொண்டிருக்கலாம் எனவே புத்தங்களில் மேலும் படித்து நன்கு தெரிந்து கொள்ளவும்.
ஜாவா புரோகிராமிங் மொழியில் classes இன்றியமையாதது. ஒவ்வொரு ஜாவா புரோகிராமிலும் ஒரு classஆவது இருக்கும். நிறைய classகளை ஒரே ஜாவா fileலிலும் (.java) அடைக்கலாம் அல்லது வெவ்வேறு ஜாவா fileகளிலும் வைத்துக் கொள்ளலாம்.
நினைவில் வைத்துக் கொள்ளுங்கள்
ஜாவா ஒரு Object Oriented புரோகிராமிங் மொழி. எனவே எல்லாமே objectடாகத் தான் நடத்தப் படுகிறது. ஒரு object எதை வேண்டுமானாலும் குறிக்கலாம். ஒரு உயிரனத்தையோ (Person, Animal, Parrot..), உயிரற்ற பொருளையோ (Car, Chair..) ஒரு கருத்தையோ (Account, Insurance...) என எதை வேண்டுமானாலும் குறிக்கலாம். ஒவ்வொரு objectடிற்கும் அதற்கே உரிய பண்புகள் (properties) இருக்கும், அவை புரியும் செயல்கள் (methods) இருக்கும். அவற்றை எப்படி பயன்படுத்த வேண்டும் என்பதைத்தான் நன்கு தெரிந்து கொள்ள வேண்டும். அதாவாது அவை பொதுவான பண்புகளா, அல்லது ஒவ்வொரு objectடிற்கும் உரிய தனித்தன்மையான் பண்புகளா என்பதையெல்லாம் பார்க்க வேண்டும். எடுத்துகாட்டிற்கு வங்கி கணக்குக்கான புரோகிராமை எடுத்துக்கொள்ளுங்கள். ஒவ்வொரு வாடிக்கையாளருக்கும் ஒரு கணக்கு இருக்கும். இதை புரோகிராமிங் மொழியில் புரிந்து கொள்ள ஒவ்வொரு Customer objectடிற்கும் ஒரு account இருக்கும். இந்த Accountம் ஒரு objectதான். இதை புரோகிராமிங் சொல்லில் Associativity என்கிறார்கள். Associativity என்பது ஒன்றோடு ஒன்றிருக்கும் தொடர்பினைக் குறிக்கிறது. ஒரு வாடிக்கையாளருக்கு ஒரு கணக்கு. (one Customer associated with one account).
ஒரு வாடிக்கையாளரின் கணக்கை வேறொருவர் அணுகக் கூடாது. இந்த பாதுகாப்பு முறைகளுக்கு புரோகிராமிங்கில் செயல் வடிவம் கொடுக்கத்தான் Access specifiers உள்ளன. Acsess specifiers என்பது ஒன்றை அணுகுவதற்கு உள்ள குறிசொற்கள். public, protected, private என்பவை access specifierகளே. default என்றொரு access specifier உள்ளது. நீங்கள் எந்தவொரு அணுகுமுறைக்கான குறிச்சொற்களையும் தரவில்லை என்றால் அவை தன்னியல்பாக default access என எடுத்துக் கொள்ளப்படும்.
சென்ற மாதம் முழுவதும் projectல் மும்முரமாக இருந்தால் பதிவுகளை வெளியிட முடியவில்லை. மற்ற பணிகளை முடிக்கவே நேரம் போதாததால் பதிவெழுதுவது கிடப்பில் போடப்பட்டது. ஜாவாவில் எனக்கு அவ்வளவு பரிட்சயம் இல்லை என்பதுதான் உண்மை. (அடப்பாவி!..:)
கீழ்வருவது இந்த ஜாவா தொடருக்காக எழுதிய ஒரு குட்டி புரோகிராம். பதினைந்து நாட்களுக்கு முன்னரே எழுதியது. இருக்கும் வேலைப் பளுவில் மறந்தே விட்டேன். விளக்கம் அடுத்தடுத்த பதிவுகளில் வரும். comment வரிகளைப் படித்து புரிந்து கொள்ளவும்.
முப்பது நண்பர்களிடம் எடுத்தக் கருத்துக் கணிப்பில் 27 நபர்கள் தமிழில் படிப்பது மண்டை காய்கிறது என முடிவு சொல்லியிருக்கிறார்கள். கணித்தமிழின் முயற்சியில் இவன் (ராஜ்குமார்) தோல்வியடைந்ததை ஒப்புக் கொள்கிறேன். இனி கணினித்துறை வார்த்தைகள் அனைத்தும் இந்த வலைப்பதிவில் ஆங்கிலத்திலேயே குறிக்கப்படும்.
மேலும் ஒரு தகவல் நான் j2eeயிலிருந்து Android Mobile application developmentட்டிற்கு மாறி விட்டேன். இனி என் பணி முழுவதும் Androidல்தான் இருக்கும், ஜாவா தொடரினை அது பாதிக்காது என்பதையும் தெரிவித்துக் கொள்கிறேன். Androidல் எழுதிப் பார்த்த குட்டி குட்டி புரொகிராம்களைhttp://androidorigin.blogspot.com ல் நண்பனுடன் சேர்ந்து ஆங்கிலத்தில் எழுதப் போகிறேன். தேவையிருப்பின் அதன் தமிழ் மொழியாக்கங்களை இங்கு பதிவிட்டுக் கொள்வோம்.
கணினி கலைச்சொற்களை தமிழில் பயன்படுத்துவதுதான் சிரமமாக இருக்கிறது, முடிந்தளவு மற்ற சொற்றொடர்களையாவது தமிழில் அமைக்க முயற்சிப்போம். நானும் முயற்சிக்கிறேன்.
ஜாவா புரோகிராமிங் மொழியில் classes இன்றியமையாதது. ஒவ்வொரு ஜாவா புரோகிராமிலும் ஒரு classஆவது இருக்கும். நிறைய classகளை ஒரே ஜாவா fileலிலும் (.java) அடைக்கலாம் அல்லது வெவ்வேறு ஜாவா fileகளிலும் வைத்துக் கொள்ளலாம்.
நினைவில் வைத்துக் கொள்ளுங்கள்
- ஒரு ஜாவா fileல் ஒரே ஒரு public classதான் இருக்கும்.
- ஜாவா file பெயரும் public classன் பெயரும் ஒன்றாக இருக்க வேண்டும்.
ஜாவா ஒரு Object Oriented புரோகிராமிங் மொழி. எனவே எல்லாமே objectடாகத் தான் நடத்தப் படுகிறது. ஒரு object எதை வேண்டுமானாலும் குறிக்கலாம். ஒரு உயிரனத்தையோ (Person, Animal, Parrot..), உயிரற்ற பொருளையோ (Car, Chair..) ஒரு கருத்தையோ (Account, Insurance...) என எதை வேண்டுமானாலும் குறிக்கலாம். ஒவ்வொரு objectடிற்கும் அதற்கே உரிய பண்புகள் (properties) இருக்கும், அவை புரியும் செயல்கள் (methods) இருக்கும். அவற்றை எப்படி பயன்படுத்த வேண்டும் என்பதைத்தான் நன்கு தெரிந்து கொள்ள வேண்டும். அதாவாது அவை பொதுவான பண்புகளா, அல்லது ஒவ்வொரு objectடிற்கும் உரிய தனித்தன்மையான் பண்புகளா என்பதையெல்லாம் பார்க்க வேண்டும். எடுத்துகாட்டிற்கு வங்கி கணக்குக்கான புரோகிராமை எடுத்துக்கொள்ளுங்கள். ஒவ்வொரு வாடிக்கையாளருக்கும் ஒரு கணக்கு இருக்கும். இதை புரோகிராமிங் மொழியில் புரிந்து கொள்ள ஒவ்வொரு Customer objectடிற்கும் ஒரு account இருக்கும். இந்த Accountம் ஒரு objectதான். இதை புரோகிராமிங் சொல்லில் Associativity என்கிறார்கள். Associativity என்பது ஒன்றோடு ஒன்றிருக்கும் தொடர்பினைக் குறிக்கிறது. ஒரு வாடிக்கையாளருக்கு ஒரு கணக்கு. (one Customer associated with one account).
ஒரு வாடிக்கையாளரின் கணக்கை வேறொருவர் அணுகக் கூடாது. இந்த பாதுகாப்பு முறைகளுக்கு புரோகிராமிங்கில் செயல் வடிவம் கொடுக்கத்தான் Access specifiers உள்ளன. Acsess specifiers என்பது ஒன்றை அணுகுவதற்கு உள்ள குறிசொற்கள். public, protected, private என்பவை access specifierகளே. default என்றொரு access specifier உள்ளது. நீங்கள் எந்தவொரு அணுகுமுறைக்கான குறிச்சொற்களையும் தரவில்லை என்றால் அவை தன்னியல்பாக default access என எடுத்துக் கொள்ளப்படும்.
சென்ற மாதம் முழுவதும் projectல் மும்முரமாக இருந்தால் பதிவுகளை வெளியிட முடியவில்லை. மற்ற பணிகளை முடிக்கவே நேரம் போதாததால் பதிவெழுதுவது கிடப்பில் போடப்பட்டது. ஜாவாவில் எனக்கு அவ்வளவு பரிட்சயம் இல்லை என்பதுதான் உண்மை. (அடப்பாவி!..:)
கீழ்வருவது இந்த ஜாவா தொடருக்காக எழுதிய ஒரு குட்டி புரோகிராம். பதினைந்து நாட்களுக்கு முன்னரே எழுதியது. இருக்கும் வேலைப் பளுவில் மறந்தே விட்டேன். விளக்கம் அடுத்தடுத்த பதிவுகளில் வரும். comment வரிகளைப் படித்து புரிந்து கொள்ளவும்.
முன்குறிப்பு:
கீழ்வரும் கோடிங்கை அப்படியே காப்பி செய்யாதீர்கள். மேல் வலது மூலையில் இருக்கும் ஐகானை சொடுக்கவும்./** @author Rajkumar Ravi
source: tamilcpu.blogspot.com
*/
//this program will not compile since this is having errors(intentional)
//only one public class permitted in a java file
public class Test {
public static void main(String[] args) {
//create an object instance for non-static class to access its members
System.out.println(new Test2().i);
Test2 testObj; //testObj is just an object reference for Test2 class
testObj = new Test2(); //creating actual object/instance for target class
int y = testObj.i + 5;
//members of a static class can be accessed without creating an instance for it
System.out.println(Test4.name);
//private members cannot be accessed outside its declared class
System.out.println(new Test2().ch);
}
}
//this is a non-static class so members of this class can only accessed through its instance
class Test2 {
int i=5; private char ch='u';
}
//to write a static class declare static variables or static methods inside a class
static class Test3 { } // wrong
//this is a static class because it contains a static member
class Test4 {
static String name;
}
உங்களுக்கு தவறு எனப்பட்டதை கண்டிப்பாக சுட்டிக்காட்ட வேண்டும். எவருக்கேனும் தவறான தகவல் சென்றடைந்தால் இந்த பதிவுகளின் நோக்கமே தவறிவிடுமென ஐயப்படுகிறேன். முப்பது நண்பர்களிடம் எடுத்தக் கருத்துக் கணிப்பில் 27 நபர்கள் தமிழில் படிப்பது மண்டை காய்கிறது என முடிவு சொல்லியிருக்கிறார்கள். கணித்தமிழின் முயற்சியில் இவன் (ராஜ்குமார்) தோல்வியடைந்ததை ஒப்புக் கொள்கிறேன். இனி கணினித்துறை வார்த்தைகள் அனைத்தும் இந்த வலைப்பதிவில் ஆங்கிலத்திலேயே குறிக்கப்படும்.
மேலும் ஒரு தகவல் நான் j2eeயிலிருந்து Android Mobile application developmentட்டிற்கு மாறி விட்டேன். இனி என் பணி முழுவதும் Androidல்தான் இருக்கும், ஜாவா தொடரினை அது பாதிக்காது என்பதையும் தெரிவித்துக் கொள்கிறேன். Androidல் எழுதிப் பார்த்த குட்டி குட்டி புரொகிராம்களைhttp://androidorigin.blogspot.com ல் நண்பனுடன் சேர்ந்து ஆங்கிலத்தில் எழுதப் போகிறேன். தேவையிருப்பின் அதன் தமிழ் மொழியாக்கங்களை இங்கு பதிவிட்டுக் கொள்வோம்.
கணினி கலைச்சொற்களை தமிழில் பயன்படுத்துவதுதான் சிரமமாக இருக்கிறது, முடிந்தளவு மற்ற சொற்றொடர்களையாவது தமிழில் அமைக்க முயற்சிப்போம். நானும் முயற்சிக்கிறேன்.
-தொடரும்.
SEPTEMBER 18, 2010
மென்பொருள் விடுதலை நாள்
மென்பொருள் விடுதலை நாள்
Software Freedom Day 2010
நாள்: 18-09-2010 சனிக்கிழமை
இடம்: பிர்லா கோளரங்கம், கோட்டூர்புரம், சென்னை.
நண்பர்கள் அனைவருக்கும் வணக்கம்,
இன்று உலகெங்கும் உள்ள கணிப்பொறி/மென்பொருள் ஆர்வலர்கள் பெருமிதத்துடன் கொண்டாட வேண்டிய நாள். ஒரு மென்பொருளை பயன்படுத்துவதற்கு எந்தவொரு குற்ற உணர்வுமில்லாமல் நம் விருப்படி பயன்படுத்த உரிமையளிக்கும் கட்டற்ற திறமூல கொள்கையைக் கொண்டாட ஒரு விழா. இதனை உலகெங்கிலும் கொண்டாட பல்வேறு அமைப்புகள், நிறுவனங்கள்.. ஏற்பாடு செய்திருக்கின்றன. நம் சிங்கார சென்னையில் சென்னை லினக்ஸ் பயனர் குழு இவ்விழாவினைக் கொண்டாட ஏற்பாடு செய்திருக்கிறார்கள். கலந்து கொள்ள முடிபவர்கள் கலந்து கொண்டு பயனடையளாமே.
சென்னையில் விழா சிறப்பாக அமைய வாழ்த்துகள். விழா ஒருங்கிணைப்பாளர்கள் அனைவருக்கும் இதயம் கனிந்த நன்றியைத் தெரிவித்துக் கொள்கிறேன்.
இவன்,
ந.ர.செ. ராஜ்குமார்
http://tamilcpu.blogspot.com
Software Freedom Day 2010
நாள்: 18-09-2010 சனிக்கிழமை
இடம்: பிர்லா கோளரங்கம், கோட்டூர்புரம், சென்னை.
நண்பர்கள் அனைவருக்கும் வணக்கம்,
இன்று உலகெங்கும் உள்ள கணிப்பொறி/மென்பொருள் ஆர்வலர்கள் பெருமிதத்துடன் கொண்டாட வேண்டிய நாள். ஒரு மென்பொருளை பயன்படுத்துவதற்கு எந்தவொரு குற்ற உணர்வுமில்லாமல் நம் விருப்படி பயன்படுத்த உரிமையளிக்கும் கட்டற்ற திறமூல கொள்கையைக் கொண்டாட ஒரு விழா. இதனை உலகெங்கிலும் கொண்டாட பல்வேறு அமைப்புகள், நிறுவனங்கள்.. ஏற்பாடு செய்திருக்கின்றன. நம் சிங்கார சென்னையில் சென்னை லினக்ஸ் பயனர் குழு இவ்விழாவினைக் கொண்டாட ஏற்பாடு செய்திருக்கிறார்கள். கலந்து கொள்ள முடிபவர்கள் கலந்து கொண்டு பயனடையளாமே.
சென்னையில் விழா சிறப்பாக அமைய வாழ்த்துகள். விழா ஒருங்கிணைப்பாளர்கள் அனைவருக்கும் இதயம் கனிந்த நன்றியைத் தெரிவித்துக் கொள்கிறேன்.
ஓப்பன் சோர்ஸ் - விளக்கம்: புதியவர்களுக்காக ஒரு புதிய கோணத்தில்
இவன்,
ந.ர.செ. ராஜ்குமார்
http://tamilcpu.blogspot.com
SEPTEMBER 12, 2010
ஜாவா புரோகிராம் அடிப்படைகள் - ஜாவா தொடர்
இந்த பதிவிலிருந்து ஜாவாவில் நிரலெழுத ஆரம்பித்து விடுவோம். இதுவரை ஜே.ஆர்.இ, ஜே.வி.எம் குறித்து சில அடிப்படைகளைத் தெரிந்து கொண்டோம்.
சி, சி++ நிரல் மொழியைப் போலவே ஜாவாவிலும் main() செயல்கூறிலிருந்து (செயல்கூறு - function) இயங்க ஆரம்பிக்கும். எனினும் ஜாவா மொழி சில இடங்களில் வேறு படுகிறது. ஜாவா மொழி மூலம் தனிமேசைப் பயன்பாடுகள் (desktop applications), இணையப் பயன்பாடுகள் (web applications), செல்லிடப் பயன்பாடுகள் (mobile applications) என அனைத்துவகையான தேவைகளுக்கும் மென்பொருட்களை உருவாக்க முடியும்.
ஜாவா தொலைக்காட்சியிலிருந்து செயற்கைகோள் வரை எல்லா இடத்திலும் இயங்கும். காரணம் ஜாவா உருவாக்கத்தின் நோக்கமே இதற்காகத்தான். ஜாவாவை உருவாக்கிய சன் மைக்ரோசிஸ்டமஸ் மின்னனு சாதனங்களுக்கான மென்பொருள் தீர்வுகளை வழங்கி வந்தது. வெவ்வேறு வன்பொருள் கட்டமைப்புகளில் ஒரேமாதிரி இயங்கக் கூடிய தேடலில்தான் ஜாவா மலர்ந்தது. ஒவ்வொரு வகை மையச் செயலிக்கும் (microprocessor) வெவ்வேறு ஆணை அமைவுகள் (instruction set) இருக்கும். வெவ்வேறு கட்டமைப்புகளில் இயங்குவதற்கு நிரல்களை ஒவ்வொரு முறையும் மாற்றிக் கொண்டிருப்பதற்கு பதிலாக ஒரே முறை எழுதிவிட்டு ஜாவா மெய்நிகர் கணினியில் (java virtual machine) இயக்கிக் கொள்ளலாம். சென்ற பதிவிலேயே பார்த்துவிட்ட இந்தத் தகவலை ஏன் மறுபடியும் பார்க்க வேண்டும்? இதுதான் ஜாவாவின் அடிப்படை. முற்றிலும் புதிதாக கற்றுக் கொள்பவர்களுக்காக மீண்டும் மீண்டும் வலியுறுத்தப் படுகிறது.
உங்களுக்கு ஏற்கனவே சி,சி++ போன்ற மொழியில் பரிட்சயம் இருந்தால் ஜாவா கற்றுக் கொள்வது இன்னும் எளிது. for,while,if,int.. என அங்கொன்றும் இங்கொன்றுமாக படித்து வைத்ததை ஜாவாவிற்கு பயன்படுத்திக் கொள்ளலாம். சி, சி++ படிக்காமலேயும் ஜாவா படிக்கலாம். இல்லையே நாங்கள் கேள்விபட்டவரை புதிதாய் கற்றுக் கொள்பவருக்கு சி தான் ஏற்றது என உங்களில் சிலர் முரண்டுபிடிப்பதைப் பார்க்கிறேன். நிரலாக்கத்திற்கு முற்றிலும் புதியவருக்கும் ஜாவாவை அறிமுகப் படுத்தலாம். ஆனால் உரிய கருவிகளைக் கொண்டு. எடுத்த எடுப்பிலேயே முழுவீச்சில் எல்லாவற்றையும் கற்றுக் கொள்ள வேண்டும் என்பதல்ல. தேவையானதை மட்டும் அவரவர் தேவைக்கேற்றாற் போல் அறிமுகப்படுத்தலாம். எக்லிப்ஸ் போன்ற நிரலாக்க கருவிகளைக் கொண்டு ஜாவா நிரல் எழுதும்போது அனைத்து ஜாவா நிரலுக்கும் தேவையான பொதுவான வரிகளை அதுவே எழுதிக் கொடுத்துவிடும். இடையில் உங்களுக்குத் தேவையான நிரல் வரிகளை சொருக வேண்டியதுதான்.
இங்கு ஜாவா தனிமேசை பயன்பாடுகளுக்கான நிரல் உதவியைக் குறித்துதான் முதலில் காணப் போகிறோம். இதற்காக உதவுவது ஜே2.எஸ்.இ (java2 standard edition). இன்னும் j2ee, j2me, java card.. என நிறைய இருக்கிறது. இவை அனைத்திலும் இயங்கும் மொழி ஜாவாதான். வசதிகள்தான் மாறுபடும். எடுத்துகாட்டிற்கு செல்பேசி பயன்பாடுகளுக்கு தனிமேசைக் கணினி செயல்பாடுகளில் இருக்கும் அனைத்து வசதிகளும் தேவைப்படாது. செல்பேசி பயன்பாட்டிற்கென இருக்கும் java2 micro editionல் என்ன தேவையோ அதுமட்டும் இருக்குமாறு தகவமைக்கப்பட்டிருக்கும். நிரல் ஆரம்பிக்கும் மையப் புள்ளி மாறுபடும் அவ்வளவுதான். எடுத்துகாட்டிற்கு ஜாவா அப்லெட் (java applets) ஏற்கனவே படித்திருப்பவர்களுக்கு தெரியும், அவைகளில் main() செயற்கூறே (function) இருக்காது. அதற்கு பதிலாக init() இருக்கும். இங்கு நிரலின் ஆரம்பப் புள்ளி ஏன் மாறுகிறது. இதற்கான விடை இந்த ஜாவா நிரல்கள் எங்கு, எதில் இயங்குகிறது என்பதில் இருக்கிறது. ஆப்லெட்டுகள் உலாவிகளுக்குள்ளே (browsers) இயங்குகின்றன. நீங்கள் எழுதிய நிரல் (ஆப்லெட்) வேறொரு நிரலின் (வலை உலாவி/browser)ன் கட்டுப்பாட்டில் இயங்குகிறது. தனிமேசை பயன்பாடுகளில் main() செயற்கூறு எழுதக் காரணம் இங்கு கட்டுபாட்டை
நீங்களே ஏற்றுக் கொள்கிறீர்கள். அதாவது எங்கிருந்து நிரல் இயங்க வேண்டுமென ஜே.வி.எம் மிற்கு வெளிப்படையாக சொல்ல வேண்டும்.
ஜாவா மெய்நிகர் கணினிக்கு (JVM) அதை இயக்குவது மட்டும்தான் வேலை. ஆளாளுக்கு ஒரு இடத்தைச் சொன்னால் எவ்வளவு கொளறுபடிகள் வரும்.
அதனால்தான் ஒரு ஜாவா நிரல் இப்படித்தான் இருக்க வேண்டுமென அந்த மொழியை உருவாக்கியவர்கள் வரையறுத்துள்ளனர். JVM முதலில் main() செயற்கூறு எங்கேயிருக்கிறது எனத்தான் தேடும். அங்கிருந்து நிரல் செயல்பட ஆரம்பிக்கும்.
main() செயற்கூறு இல்லாமல் ஜாவாவில் நிரல் எழுதமுடியுமா?
தாரளமாக முடியும். ஜாவா நிரல் கோப்பின் பெயர் (java program's file name), நீங்கள் எழுதியுள்ள publi classன் பெயரோடு ஒத்து இருக்கும். நீங்கள் எத்தனை classes எழுதினாலும், அவற்றில் ஏதோ ஒரு classல் main() இருந்தால் போதுமானது. main() செயற்கூறினுள் (inside main function) மற்ற classற்கான ஆப்ஜெக்ட்களை (பொருள்) உருவாக்க வேண்டும். ஒரு ஆப்ஜெக்டை உருவாக்கிய பின் அதிலிருக்கும் மற்ற function, properties அனைத்தையும் பயன்படுத்திக் கொள்ளலாம்.
தாமதமாக வெளியிடுவதற்கு வருந்துகிறேன். காக்க வைத்ததற்கு மன்னிக்கவும். பணி பளு காரணமாக தொடர்ச்சியாக சீரான இடைவெளியில் வெளியிட முடியவில்லை. எந்த சூழ்நிலையிலும் மாதத்திற்கு இருமுறையாவது தொடர் பதிவுகள் வரும் என்பதைத் தெரிவித்துக் கொள்கிறேன். நண்பர்களின் வேண்டுகொளுக்கிணங்க இனிமேல் ஜாவா மொழிக் கூறுகள் ஆங்கில வார்த்தையாகவே கையாளப்படும் என்பதைத் தெரிவித்துக் கொள்கிறேன். ஊக்கப் படுத்திய அனைத்து நண்பர்களுக்கும் நன்றி.
SEPTEMBER 11, 2010
கற்றது கை மண்ணளவுகூட கிடையாது - இது புதுசு
கம்ப்யூட்டர் பத்தினத மட்டும் படிக்காதீங்க, கம்ப்யூட்டர் மூலம் படிங்க.Need of the hour is education through computers rather than the computer education itself.
கணினிக் கல்வியறிவை மட்டும் கற்பிப்பதைவிட கணினி மூலம் கல்வி கற்பிப்பது சாலச் சிறந்தது.
என்ன தயக்கம், எழுத ஆரம்பியுங்கள். உங்களுக்கும் ஒரு எழுத்தாளன் இருக்கலாம். தயக்கம் அதிகம் இருந்தால் முதலில் நிறைய படிக்கவும்.AUGUST 27, 2010
அறிவிப்பு: தமிழில் ஜாவா புத்தகம் - ஜாவா தொடர்
அறிவிப்பு:
தமிழில் ஜாவா நிரலாக்கம் கற்றுக் கொள்ள திரு.பாக்கியநாதன்எழுதிய புத்தகத்தை கீழ்காணும் தொடுப்பில் பதிவிறக்கிக் கொள்ளவும்.
http://d.scribd.com/docs/
இன்னும் ஓரிரு நாட்களில் தொழில்நுட்ப கோளாறு சரிசெய்யப் பட்டுவிடும்.
Disclaimer:
http://austudents.info/2010/
-நிர்வாகம் .
AUGUST 20, 2010
எக்லிப்ஸை ஏன் பயன்படுத்த வேண்டும்? - ஜாவா தொடர்
எக்லிப்ஸ் ஒருங்கிணைந்த உருவாக்கச் சூழல் ( IDE -Integrated Development Environment) எக்லிப்ஸ் நிறுவனத்தால் (eclipse organization) பராமரிக்கப்பட்டும், மேம்படுத்தப்பட்டும் வருகின்றது. இது தனியார் மென்பொருள் நிறுவனமல்ல. அப்பாச்சி சாப்ட்வேர் பவுண்டேஷன் போலவே உலகின் முன்னனி நிறுவன மென்பொருளியலாளர்களையும் வேறு தனியார்/பொது அமைப்புகளையும், அதிகளவில் தன்னார்வல மென்பொருள் வல்லுனர்களையும் கொண்ட இலாப நோக்கமற்ற நிறுவனம்.
ஐ.பி.எம் (IBM - International Business Machines) கோடிக்கணக்கான பணத்தை எக்லிப்ஸ் மேம்பாட்டிற்காக செலவிட்டுள்ளது. ஐ.பி.எம் இதில் இவ்வளவு அக்கறை காட்ட காரணம் உலகின் அத்தனை ஜாவா நிரலர்களையும் தன்பக்கம் திருப்புவதற்காகவே.
எக்லிப்ஸின் புதிய பதிப்பு எக்லிப்ஸ் ஹீலியோஸ் (Eclipse Helios) . நெட்பீன்ஸின் புதிய பதிப்பு v6.9. உபுண்டு இயங்க தளத்திற்கு கருமிக் கோலா, லூசிட் லிங்க்ஸ் போன்று பெயர் வைப்பதைப் போல எக்லிப்சுக்கும் கேனி மேட் (Gany Mede), கலிலியோ (Galileo) , ஹீலியோஸ் (Helios)... என பெயர் வைத்திருக்கிறார்கள். நீங்கள் புதிதாக பதிவிறக்கம் செய்வதாயிருந்தால் உங்கள் இயங்குதள பெயருடன் சேர்த்து கூகிளில் தேடி பதிவிறக்கிக் கொள்ளவும். linux eclipse helios download, windows eclipse helios download...
எக்லிப்சை நிறுவதற்கே (installation) தேவையில்லை. எக்லிப்ஸ் சுருக்குக் கோப்பை (compressed file) விரித்தாலே போதுமானது. எக்லிப்சை முதல்முறை இயக்கிப் பார்ப்பதற்குமுன் உங்கள் கணினியில் ஜே.ஆர்.இ நிறுவப்பட்டிருக்கிறதா என உறுதிசெய்து கொள்ளவும். ஏனெனில் எக்லிப்ஸ் ஜாவாவில் உருவாக்கிய மென்பொருள். எந்தவொரு ஜாவா நிரலையும்/ மென்கலத்தையும் இயக்க ஜே.வி.எம்மிக மிக அவசியம். அந்த ஜே.வி.எம் ஜே.ஆர்.இ க்குள்தான் இருக்கிறது. மறந்துவிடாதீர்கள்.....
ஐ.பி.எம்முடைய வணிக மென்பொருள், எக்லிப்ஸ் இலவச மென்பொருளின் மேம்படுத்தப்பட்ட பதிப்பே ஆகும். MyEclipse ஒருங்கிணைந்த உருவாக்கச் சூழலும் எக்லிப்ஸுடன் கூடுதல் வசதிகளை சேர்த்த வணிக மென்பொருளாகும். மாணவர்களுக்கு மட்டுமில்லை வளர்ந்துவரும் சிறிய நிறுவனங்களுக்கும் இலவச திறமூல தீர்வுகளை பயன்படுத்துவதன் மூலம் செலவுகளைக் குறைக்க முடிகிறது. ஏற்கனவே நன்கு வளர்ந்துவிட்ட டி.சி.எஸ் போன்ற பன்னாட்டு நிறுவனங்களிலும் எக்லிப்ஸை பயன்படுத்தவே ஊக்குவிக்கிறார்கள். ஏனெனில் ஊருடன் ஒத்து வாழ் என்பது மென்பொருள் துறைக்கும் பொருந்தும்.
நெட்பீன்ஸ் ஒருங்கிணைந்த உருவாக்க சூழலும் ஜாவா மென்பொருள் உருவாக்கத்திற்கான பிரபல மென்பொருளாகும். இதில்லாமல் ஆரக்கிள் ஜேடெவலப்பர், ப்ளூஜே.. என பல மென்பொருட்கள் இருக்கின்றன.
இதில் ஆச்சர்யமான தகவல் என்னவென்றால் ஆரக்கிள் தனக்கெனவும் ஒரு ஜாவா(jDeveloper) உருவாக்க மென்பொருள் வைத்திருக்கின்றது, தன்னுடைய போட்டியாளரான ஐ.பி.எம்மின் ஆதரவுடன் இருக்கும் எக்லிப்ஸ் அமைப்பிலும் கவுரவ உறுப்பினராகஇருக்கிறது. அதோடில்லாமல் சன் மைக்ரோசிஸ்டம்ஸை கையகப்படுத்தியன் மூலம் சன் மைக்ரோ சிஸ்டம்ஸின் திறமுல ஜாவா மென்பொருளான நெட்பீன்ஸையும்சொந்தமாக்கிக் கொண்டது. போட்டி அதிகரிக்க அதிகரிக்க, ஆளாளுக்கு முந்திக் கொண்டு புது வசதிகளை அறிமுகப் படுத்துவார்கள். மென்பொருள் நிரலராக அகமகிழ்ந்து கொண்டு காலத்தை ஓட்டி விடலாம்.
ஜாவா நிரலை புதிதாக கற்ப நினைப்பவர்கள் ஏதேனும் ஒரு உருவாக்கச் சூழலிலேயே கற்றுக் கொள்ளுமாறு கேட்டுக் கொள்கிறேன். சென்ற பதிவின் பின்னூட்டத்தில் (comments) திரு.மணிகண்டன் அவர்கள் இது குறித்து ஒரு கேள்வி எழுப்பினார். அதற்கான பதிலையும் பின்னூட்டத்தைப் படித்து தெரிந்து கொள்ளவும்.
ஒ.உ.சூ என்று சுருக்கமாகச் சொன்னால் கொஞ்சம் நெருடலாக இருக்கிறது. எனவே ஐ.டி.இஎனவே இனி குறிக்கிறேன். :-) ஹி ஹி.........
எக்லிப்ஸ் மென்பொருள் பார்ப்பதற்கு இப்படித்தான் இருக்கும்.
எக்லிப்சில் ஜாவா நிரல் எழுத முதலில் ஜாவா திட்டம் ஒன்றை உருவாக்க வேண்டும்.
File--->New---->Java Project
பிறகு ஜாவா வகை (.class) உருவாக்க வேண்டும். நாம் எழுத வேண்டிய நிரல் கட்டளைகளை இந்த கோப்பில்தான் எழுதுவோம். எடுத்துகாட்டிற்கு Factorial.java கோப்பை உருவாக்க முதலில் எக்லிப்ஸ் ஜாவா திட்டத்தை (Java project) உருவாக்கிக் கொள்ளுங்கள். பின் நீங்கள் உருவாக்கிய திட்டத்தில் வலது கிளிக் செய்து புது ஜாவா class கோப்பை உருவாக்குங்கள்.
கீழ் காண்பிக்கப் பட்டுள்ளதுபோல் ஒரு திரை தோ ன்றும். அதில் Factorial (எ.கா) என தட்டச்சு செய்யவும். கவனிக்க Factorial.java இல்லை வெறும்Factorialதான். public static void main என்பதை தேர்வு செய்யவும்.
இன்றும் பலர் ஜாவாவில் முதல் வரியிலேயே தவறு செய்வதுண்டு. ஏனெனில் ஜாவா case sensitive மொழி. String என்று எழுதுவதற்கு பதில் string என எழுதுவது. system, Public, Void.. போன்று பல தவறுகளை செய்வோம்.
சிந்தனைக்கு: தவறே செய்யாத மனிதன் புதியது எதையும் செய்திருக்க மாட்டான்.
சிந்தனைக்கு: தவறே செய்யாத மனிதன் புதியது எதையும் செய்திருக்க மாட்டான்.
நாம் தட்டச்சிடும் நிரல் ஒழுங்கில்லாம்மல் ஏட்டில் எழுதுவதுபோன்றே ஏழு கோணத்தில் இருந்தால், எக்லிப்ஸ் நொடியில் அதை சீராக்கித் தந்துவிடும்.
ஜாவாவில் நிரல் கட்டளைகளை பகிர்வதற்கு முன் எக்லிப்சுக்கு ஏன் இவ்வளவு முக்கியத்துவம் தருகிறேன். பல ஐ.டி.இ க்கள் வலம் வந்தாலும் எக்லிப்ஸ் முடிசூடா மன்னனாக இருப்பதற்கு அது ஒரு இலவச மென்பொருள் என்பதால் மட்டுமல்ல, அந்தளவிற்கு நிரலாக்கத்தை எளிமை படுத்தி விடுகிறது. நோட்பேட் போன்ற டெக்ஸ்ட் எடிட்டரில் எழுதும்போது பிழைகள் உடனே தெரியாது.
நாம் எழுதிய நிரலை கம்பைல் (மொழி மாற்றம்) செய்யும் போதுதான் ஒரு சாதாரண நிரலிலேயே நூற்றுக்கணக்கான பிழைகள் இருப்பது தெரியவரும். அப்படியில்லாமல் ஒரு வரியை எழுதும்போதே அதிலிருக்கும் பிழைகளை சுட்டினால் எப்படி இருக்கும்?!..
எக்லிப்ஸ் இன்னும் ஒரு படி மேலே போய், பிழைகளை மட்டும் சொல்வதோடு மட்டுமல்லாமல் அதை களைவதற்கான உதவியையும் தருகிறது.
நிரல் இயங்கிபின் வெளியீடையும் (output) இருந்த இடத்திலேயே விரைவாக காண முடியும்.
எனவே ஜாவா மட்டுமல்ல எந்தவொரு கணினி மொழியைக் கற்றுக்கொள்ள நினைப்பவர்களும் நிச்சயமாக கற்றலை எளிமை படுத்தும், இனிமை படுத்தும் மென்பொருட்களை முதலில் பயன்படுத்த வேண்டும். ஆசிரியர் பயன்படுத்தவில்லை என்றால் அவர்கள் காலத்தில் இவ்வளவு எளிமையான ஆற்றல் மிகுந்த மென்பொருட்கள் இல்லை. தற்போதைய நம் தலைமுறை இருக்கும் ஆற்றல் வாய்ந்த மென்பொருட்களைக் கொண்டு ஆற்றல்மிக்க மென்கலங்களை உருவாக்கிடல் வேண்டும்.
அந்தவகையில் ஐ.டி.இ க்கள் உங்கள் அறிவை மழுங்கடிப்பதற்காக இல்லை, உங்கள் நிரலறிவை மேலும் செறிவூட்டுவதற்காகவே....
அடுத்த பதிவிலிருந்து நிரலெழுத தொடங்குவதற்குமுன், முதல் வேலையாக ஏதேனும் ஒரு ஜாவா ஐ.டி.இ க்கு உங்கள் கணினியில் கொஞ்சம் இடம் கொடுங்கள்.
--தொடரும்
AUGUST 17, 2010
ஜாவாவில் புரொகிராம் செய்ய என்னென்ன அவசியம் தேவை? -- ஜாவா தொடர்
ஜாவா குறித்து அடிப்படைத் தகவல்களைக் கொஞ்சம் தெரிந்து கொண்டு விரைவில் நிரலெழுத குதித்து விடலாம். அதற்கு முன்னர் ஜாவா மெய்நிகர் கணினி குறித்து சிறிது தெரிந்து கொள்வோம்.
மேலான விவரங்களுக்கு விக்கீபீடியாவிலிருந்து தெரிந்து கொள்ளுங்கள்.
புதியவர்களுக்கு ஒரு தகவல்: தமிழில் தொழில்நுட்ப தகவல்களைப் பெறத் தமிழிலேயே தேடுங்கள். எடுத்துகாட்டிற்கு java tamil tutorial எனத் தேடுவதற்கு பதில் ”ஜாவா கட்டுரை” போன்ற குறிப்புகளைக் கொடுத்து தேடலாம்.
ஜாவா நிரலை இயக்க என்னென்ன தேவை?
ஜாவா நிரலை எழுதுவதற்கு பெரிதாக ஒன்றும் தேவையில்லை. ஏதேனும் ஒரு உரை பதிப்பி (text editor) இருந்தால் போதுமானது. எடுத்துகாட்டிற்கு விண்டோசில் நோட்பேடிலும் லினக்சில் ஜிஎடிட், கேஎடிட்டர், விஐ... போன்ற மென்கலங்களிலும் எழுதிக் கொள்ளலாம். அதை கணினிக்கு புரியும்படி எப்படி மாற்றுவது? (கணினிக்கு அவற்றின் மொழியான இரும மொழி தவிர வேறு மொழி தெரியாது). உயர்நிலை மொழியிலிருந்து இரும மொழிக்கு (binary/machine language) மாற்ற ஒரு மொழிமாற்றி (compiler) தேவைப்படுகிறது. அதை எப்படிப் பெறுவது? என்ன விலை இருக்கும்?
javac என்பதுதான் ஜாவாவை மொழிமாற்றும் (கம்பைல் செய்யும்) நிரல். இந்த பயன்பாடு ஜே.டி.கே (JDK- Java Development Kit) என்னும் மென்பொருள் தொகுப்புடன் வருகிறது. நீங்கள் ஜாவாவில் புரோகிராம் செய்ய ஜே.டி.கே மிகமிக அவசியம். ஜே.டி.கே இணையத்திலிருந்து இலவசமாக பதிவிறக்கிக் கொள்ளலாம். அல்லது டிஜிட்,பிசிகுவெஸ்ட்.. போன்ற ஆங்கில கணினி மாத இதழ்களுடன் வரும் குறுவட்டிலிருந்து பெற்றுக் கொள்ளலாம்.
ஜே.டி.கே தொகுப்பில் ஜே.ஆர்.இ (JRE- Java Runtime Engine) என்கிற துணை தொகுப்பு இருக்கிறது. ஜாவா நிரலை இயக்குவதற்கு ஜே.ஆர்.இ அவசியமானது. ஜே.ஆர்.இ நிறுவப்படாத கணினியில் ஜாவா நிரலை இயக்குவதற்கான கட்டளையான java என்பதை விண்டோஸ் கமாண்ட் ப்ராம்ப்டிலோ, லினக்ஸ் டெர்மினலிலோ கொடுத்தால் java: command not found, java not installed போன்ற பிழை செய்தி தோன்றும். இந்த பிழைசெய்தி உங்கள் கணினியில் தோன்றினால் ஜாவா நிரல்களை இயக்கக் கூடிய ஜே.ஆர்.இ தொகுப்பு உங்கள் கணினியில் இல்லை என்பதைத் தெரிந்து கொள்ளலாம்.
ஜே.டி.கே இல்லாவிட்டாலும் ஜாவா நிரலை இயக்க முடியும், ஆனால் ஜே.ஆர்.இ இல்லாமல் முடியாது.
என்னய்யா கொஞ்ச நேரம் முன்புவரை ஜே.டி.கே அவசியமென்று சொல்லிவிட்டு, இப்போது தேவையில்லைன்னு சொன்னா மண்டை காயாதா எனக் கேட்கிறீர்களா.
சற்று உற்று கவணிக்கவும். ஜே.டி.கே இல்லையென்றால் நாம் எழுதிய நிரல்களை மொழிமாற்றம்/ கம்பைல் (ஜாவாவிலிருந்து பைட் நிரலிற்கு) செய்ய இயலாது. ஜே.ஆர்.இ இல்லையென்றால் பிறர் உருவாக்கி வைத்திருக்கும் (ஏற்கனவே மொழிமாற்றி வைத்திருக்கும்) கோப்புகளையும் இயக்க இயலாது. ஜே.ஆர்.இயை மட்டும் தனியாக நிறுவிக் கொள்ளலாம், அல்லது ஜே.ஆர்.இயையும் தன்னுள் அடக்கிய பெரிய தொகுப்பான ஜே.டி.கேவை நிறுவிக் கொள்ளலாம்.
என்னய்யா கொஞ்ச நேரம் முன்புவரை ஜே.டி.கே அவசியமென்று சொல்லிவிட்டு, இப்போது தேவையில்லைன்னு சொன்னா மண்டை காயாதா எனக் கேட்கிறீர்களா.
சற்று உற்று கவணிக்கவும். ஜே.டி.கே இல்லையென்றால் நாம் எழுதிய நிரல்களை மொழிமாற்றம்/ கம்பைல் (ஜாவாவிலிருந்து பைட் நிரலிற்கு) செய்ய இயலாது. ஜே.ஆர்.இ இல்லையென்றால் பிறர் உருவாக்கி வைத்திருக்கும் (ஏற்கனவே மொழிமாற்றி வைத்திருக்கும்) கோப்புகளையும் இயக்க இயலாது. ஜே.ஆர்.இயை மட்டும் தனியாக நிறுவிக் கொள்ளலாம், அல்லது ஜே.ஆர்.இயையும் தன்னுள் அடக்கிய பெரிய தொகுப்பான ஜே.டி.கேவை நிறுவிக் கொள்ளலாம்.
- ஜாவாவில் மென்பொருளை/நிரல்களை உருவாக்க ஜே.டி.கே தேவை.
- ஜாவாவில் உருவாக்கிய மென்பொருளை/நிரலை இயக்க ஜே.ஆர்.இ தேவை.
java கட்டளை ஜாவா நிரலை இயக்க பயன்படுகிறது. இது ஜே.ஆர்.இ யுடனே வந்துவிடும். ஜாவா நிரலை கம்பைல் செய்ய உதவும் javac கட்டளை ஜே.ஆர்.இயுடன் வராது.
javac கட்டளையை இயக்க ஜே.டி.கே நிறுவப்பட்டிருக்க வேண்டும். ஜே.டி.கே, ஜே.ஆர்.இ இவை இரண்டுமே அனைத்து இயக்க சூழல்களுக்கும் கிடைக்கின்றன. விண்டோசுக்கு .exe கோப்பாகவும், லினக்சுக்கு .rpm,.deb,.bin... கோப்பாகவும், மேக் இயங்குதளத்திற்கு .dmg கோப்பாகவும் கிடைக்கின்றது.
javac கட்டளையை இயக்க ஜே.டி.கே நிறுவப்பட்டிருக்க வேண்டும். ஜே.டி.கே, ஜே.ஆர்.இ இவை இரண்டுமே அனைத்து இயக்க சூழல்களுக்கும் கிடைக்கின்றன. விண்டோசுக்கு .exe கோப்பாகவும், லினக்சுக்கு .rpm,.deb,.bin... கோப்பாகவும், மேக் இயங்குதளத்திற்கு .dmg கோப்பாகவும் கிடைக்கின்றது.
ஜே.வி.எம் (JVM- Java Virtual Machine) என்பதுதான் ஜாவாவை இயக்குகிற மைய மென்கலம். ஜாவாவை இயக்குவதற்கான் இதயம் போன்றது. தமிழில் இதை ஜாவா மெய்நிகர் கணினி என்று அழைக்கலாம். இதன் பயன் என்ன? இதை எப்படி நிறுவது? எனப் பல கேள்விகள் எழலாம்.
ஜே.வி.எம்மை நீங்கள் தனியாக நிறுவ வேண்டியதில்லை. ஜே.வி.எம் என்பது ஜே.ஆர்.இக்குள் அடக்கம். JDK<----JRE<------JVM. நீங்கள் எழுதிய ஜாவா நிரலை ஜாவா மெய்நிகர் கணினிதான் இயக்குகிறது. ஜாவா நிரல்கள் .java என்கிற கோப்பாக இருக்கும்.
javac மொழிமாற்றி அதனை .class கோப்பாக மாற்றித் தரும். ஒரு மொழிமாற்றியின் வேலை உயர்நிலை மொழியிலிருந்து இரும மொழிக்கு மாற்றுவதுதான் என ஏற்கனவே பார்த்தோம். இன்னொன்றையும் புரிந்து கொண்டால் இதை உள்வாங்கிக் கொள்ள எளிமையாய் இருக்கும்.
இரும மொழி கோப்புகள் (binary files) எந்த நீட்டிப்பில் (extension) இருக்கும்? விண்டோசில் .exe என்று இருக்கும். லினக்சில் .bin என்று இருக்கும். அதுசரி பின்னர் ஏன் .java கோப்பு .exe கோப்பாகவோ .bin கோப்பாகவோ இல்லாமல் .class என்கிற ஒரு புது நீட்டிப்புடன் உருவாகிறது.
இதன் பின்னனியில்தான் இருக்கிறது ஜாவாவின் அடிப்படைத் தத்துவம். நேரமின்மையால் கொஞ்சம் கொஞ்சமாகத்தான் பகிர்ந்து கொள்ள முடிகிறது. அடுத்த பதிவில் எக்லிப்ஸ்மென்பொருளை எவ்வாறு பயன்படுத்தலாம் என விரிவான விளக்கங்களுடன் (படங்களுடன்) அடுத்த பதிவில் பார்க்கலாம். அதுவரை எக்லிப்ஸ் குறித்து கீழ்காணும் பதிவில் மேலோட்டமாகத் தெரிந்து கொள்ளுங்கள்.
--தொடரும்
AUGUST 15, 2010
ஜாவாவும் சுதந்திரமும் - ஜாவா தொடர் 3
ஜாவாவும் சுதந்திரமும் - ஜாவா தொடர் 3
சுதந்திர தின நல்வாழ்த்துகள்
ஜாவா என்பது நிரலாக்க மொழி மட்டும் இல்லை. ஜாவா என்பது ஜாவா நிரல் மொழியையும் உள்ளடக்கிய பணிச்சூழல் (java is not a programmiing language alone. java is a platform which includes java programming language itself).
சுதந்திர தின நல்வாழ்த்துகள்
இங்கு சுதந்திரம் என்பது ஓப்பன் சோர்ஸைக் குறிக்கிறது. ஜாவாவில் எழுதப்பட்ட கட்டற்ற திறமூல மென்பொருட்கள் நிறைய உள்ளன. ஜாவா, ஓப்பன் ஆபிஸ் இரண்டுமே சன் மைக்ரோசிஸ்டம் வழிவந்ததால் ஓப்பன் ஆபிஸ் ஜாவாவில் உருவாக்கப்பட்ட மென்பொருள் என்பதை சொல்லித் தெரிய வேண்டுமா?
ஜாவா இணைய பயன்பாடுகளை(Web applications) உருவாக்குவதற்கு ஏற்ற மென்பொருள். தனிமேசை பயன்பாட்டு மென்பொருள் உருவாக்கத்தைவிட இணையப் பயன்பாடு உருவாக்கத்தில் ஜாவா கோலோச்சி நிற்கிறது. ஜாவா மொழி பலரால் பயன்படுத்தப் படாமாலா இன்று கணினி உலகில் நம்பர் ஒன் மொழியாக இருக்கிறது.
ஒவ்வொரு ஆண்டும் நிரல் மொழிகளுக்கு தரவரிசையை வழங்கும் டையோப் நிறுவனத்தின் அறிக்கையைப் பாருங்கள். கடந்த சில வருடங்களாக ஜாவா மொழி தொடர்ச்சியாக முதலிடத்தில் இருப்பதைக் காணலாம்.
ஜாவாவின் மிகப்பெரிய பலம் பணிச்சூழல் சாராமை (platform independence). ஜாவாவில் உருவாக்கத்தில் இருக்கும் ஒரு திட்டப்பணியை (project) எப்போது வேண்டுமானாலும் எந்த இயக்கச் சூழலுக்கும் மாற்றிக் கொள்ளலாம். மென்பொருள் நிறுவனங்களுக்கு இது ஒரு மிகப்பெரிய வரப்பிரசாதம். வாடிக்கையாளர் யுனிக்ஸ் அல்லது விண்டோசில் இயங்கக் கூடிய ஒரு பயன்பாட்டை கேட்கிறார் என வைத்துக் கொள்வோம். அதை நீங்கள் உங்களிடம் இருக்கும் இயங்குதளத்திலேயே வடிவமைக்கலாம். ஒரு திட்ட அறிக்கையை பகுதி பகுதியாக (modularization) பிரித்துக் கொண்டு ஒருவர் லினக்சிலும், மற்றொருவர் யுனிக்ஸ் விண்டோஸ் போன்ற சூழலிலும் உருவாக்கலாம்.
ஜாவாவின் அடிப்படைக் கொள்கை ஒருமுறை எழுதிவிட்டு எங்கு வேண்டுமானாலும் இயக்கிக் கொள்ளுங்கள் (WORA - Write once run
anywhere) என்பதே.
பல பயனுள்ள துணைநிரல்களை (libraries) ஜாவா மொழி தாங்கி வருகின்றது. இது நிரலாக்கத்தில் அடிக்கடிப் பயன்படும் ஒரு தேவைக்கு ஏற்கனவே நன்கு பரிசோதிக்கப்பட்ட, நம்பகமான, தரமான துணைநிரல்களைப் பயன்படுத்திக் கொள்ளலாம். எடுத்துக்காட்டிற்கு தரவு கட்டமைப்பில் (data structure) இருக்கும் அடுக்கு (stack) பயன்பாட்டிற்கு (push/pop) நீங்கள் நிரலெழுதிக் கொண்டிருக்கத் தேவையில்லை. java.util.* தொகுப்பில் (package) வரும் Stack வகுப்பை (class) பயன்படுத்திக் கொள்ளலாம்.
ஜாவாவிற்கு முற்றிலும் புதியவர்கள் புரியாத வரிகளைத் தவிர்த்துவிட்டு தொடரவும். இவை ஒவ்வொன்றையும் அடுத்தடுத்த கட்டுரைகளில் அலசி
ஆராய்வோம்.
ஜாவாவை சன் மைக்ரோசிஸ்டமஸ் சொந்தம் கொண்டாடினாலும், ஜாவாவுடன் பயன்படுத்தும் நிரலாக்க சட்டங்கள் (frameworks), துணை
நிரல்கள் (libraries) அனைத்திற்கும் அவர்கள் சொந்தக்காரர்கள் அல்ல. சன் மைக்ரோசிஸ்டம்ஸ் அறிமுகப் படுத்திய ஜாவா விவர வரையறைகளில் (java specifications servlet,ejb etc..) சில மிகக் கடினமாக இருந்தது. அதுவே ஜாவாவை பலர் வெறுப்பதற்கும் காரணம் ஆயிற்று.
ஜாவாவில் மென்பொருள் உருவாக்குவதை எளிமையாக்க பல்வேறு நிறுவனங்கள் கோடிக்கணக்கான ரூபாயை முதலீடு செய்துள்ளன. அவர்கள் பணம் வீணாய்ப் போக விட்டுவிடுவார்களா என்ன? ஐ.பி.எம், கூகிள் போன்ற நிறுவனங்களும் இதில் அடக்கம். கூகிள் GWT - Google Web Toolkit என்றொரு நிரலாக்க சட்டத்தை (framework+tools) ஜாவாவிற்கு தருகிறது. அஜாக்ஸ் (AJAX - Asynchronous JavaScript and XML ) முறையிலான வெப் பயன்பாடுகளை உருவாக்குவற்கு ஏற்றது. ஜிமெயில், கூகிள் மேப்ஸ் போன்ற பயன்பாடுகளை உருவாக்க GWT பெரிது உதவும். இது கட்டற்ற திறமூல மென்பொருள் என்பதால் ஆர்வத்தை அதிகரிக்கின்றது. ஐ.பி.எம், அப்பாச்சி அறக்கட்டளை... போன்றவற்றின் ஆதரவால் ஜாவா இன்றளவும் முதலிடத்தில் இருக்கிறது.
ஜாவா என்பது நிரலாக்க மொழி மட்டும் இல்லை. ஜாவா என்பது ஜாவா நிரல் மொழியையும் உள்ளடக்கிய பணிச்சூழல் (java is not a programmiing language alone. java is a platform which includes java programming language itself).
ஆகவே உங்களுக்கு ஜே.எஸ்.பி, சர்வலெட், இ.ஜே.பி இவையெல்லாம் தெரியாதென்றால் உங்கள் சுயவிவர (Resume) அறிக்கையில் மொட்டையாக ஜாவா என்று எழுதிவிடக் கூடாது. வெறுமனே ஜாவா என்றால் அது மொத்த ஜாவா பணிச்சூழலையும் குறிக்கும். எனவே ஜாவா நிரல் மொழியை மட்டும் அறிந்த நண்பர்கள் தங்கள் சுயவிவரக் குறிப்பில் "core java" என்று குறிப்பிடுமாறு கேட்டுக் கொள்கிறேன்.
சன் மைக்ரோ சிஸ்டத்தைக் கையகப்படுத்தியதன் மூலம் இன்று ஜாவா ஆரக்கிள் நிறுவனத்தின் வசம் இருக்கிறது. வணிக மென்பொருள் சந்தையில் வெற்றிக் கொடி நாட்டிய ஆரக்கிள் ஜாவாவை சுதந்திரமாக இருக்க அனுமதிக்குமா?
உங்கள் நல்லாதரவுடன் ஜாவா தொடர் ...தொடரும்
AUGUST 14, 2010
புரோகிராமிங் அடிப்படைகள் - ஜாவா தொடர்
ஜாவா தொடர் - 2
அறுபதுகளில் பயன்படுத்தி வந்த நிரல் மொழிகளை விட டென்னிஸ் ரிச்சி உருவாக்கிய சி எளிமையாக இருந்தது. சி மொழி யுனிக்ஸ் இயங்கு தளத்தில் வடிவமைக்கப் பட்டது. அனைத்து வசதிகளையும் தரும் சி மொழியை உபயோகிப்பதற்கு அவர் எந்த நிபந்தனைகளையும் வைக்கவில்லை. ஆகவே உலகெங்கும் பரவியிருக்கும் பல்கலைக் கழகங்கள், கணினி நிறுவனங்கள், கணிய ஆராய்ச்சி அமைப்புகள் என அனைவர் மத்தியிலும் சி மொழி பலத்த வரவேற்பை பெற்றது. பிரச்சனையும் இங்கிருந்துதான் ஆரம்பம். குறிப்பிட்ட வன்பொருள் (மையச்செயலி/microprocesser) கட்டமைப்பில் உருவாக்கிய மொழியை வெவ்வேறு கட்டமைப்புகளில் (architecture) இயங்க வைக்க பிரத்யேக மொழிமாற்றிகள் (compilers) உருவாக்கப் பட்டது.
இப்போது கம்பைலர் (மொழி மாற்றி) என்றால் என்னவென்று பார்ப்போம். சி,சி++,ஜாவா,விபி... போன்றவற்றை உயர்நிலை மொழிகள் (high level languages) என்கிறோம். ஏனெனில் உயர்திணைகளான மனிதர்கள் புரிந்து கொள்ளும்படி மனிதர்களால் உருவாக்கப் பட்டவை.
கணினி என்பது அஃறினை(உயிரற்றது) என்பதை மறந்துவிடக் கூடாது. கணினிக்குத் தெரிந்தது இரும மொழிதான் (binary language 0-1) என்று சொல்வதுண்டு. உண்மை என்னவெனில் அவற்றிற்கு எந்த மொழியும் தெரியாது. இரும மொழியும் மனிதர்கள் புரிந்து கொள்ளவே ஒரு சுருக்குக் குறிப்புகள்தான் (shortcut notations). கணினி என்பது ஒரு மின்சார கருவி. அதிலிருக்கும் கோடிக்கணக்கான சிப்புகளில் பாயும் மின்னழுத்தத்திற்கேற்ப வேலைகள் நடக்கின்றன. ஒரு குறிப்பிட்ட அளவு மின்சாரம் இருந்தால் அது 1 எனவும் அதற்கு குறைவாக இருந்தால் 0 என்றும் குறித்து வந்தனர். ஆரம்பகட்டத்தில் ஆராய்ச்சி நிலையில் ஒன்றையும் ஒன்றையும் கூட்டினால் இரண்டு என வரவழைப்பதற்கு இரும எண்கள் எளிதாக இருந்தது.
தரவுகள் (data), செயல்பாடுகள் (கூட்டல், கழித்தல்..) என அனைத்தையும் இரும எண்களிலேயே குறித்தனர். ஒரு எடுத்துக்காட்டிற்கு ‘வணக்கம்’ என்று வரவழைப்பதற்கு 01110101011110100001111010101 என்று நிரலெழுதினால் எப்படி இருக்கும் என எண்ணிப் பாருங்கள். என்னக் கொடுமை, கணினி முன்னோடிகள் தங்கள் கணியத் தேவைகளுக்கு இப்படித்தான் கட்டளை எழுதினார்கள். கொஞ்சம் கொஞ்சமாக கணிக்க வேண்டியவை அதிகரிக்க அதிகரிக்க இரும எண்களுக்கு ஒரு மாற்றாக பொறி மொழியை (assembly language) மனிதன் கண்டுபிடித்தான்.
இவை இரண்டையும் கூட்டு என்று சொல்வதற்கு 111100010101110101011 என்று கொடூரமாக எழுதுவதற்கு பதில் (add a,b) என்று மனிதர்களுக்கு புரியும் மொழியில் எழுதுவது எளிமையாக இருந்தது. இதை கணினிக்கு எப்படி புரிய வைப்பது. அதற்கு புரிய வைக்க அவற்றிற்கு நாம் ஏற்கனவே சொல்லிக் கொடுத்த இரும மொழியில் மாற்றித் தர வேண்டும். அந்த வேலையைச் செய்யும் நிரலுக்கு(பயன்பாடு) பெயர்தான் பொறிமொழி மாற்றி (assembler).
இப்படிப் படிப்படியாக நிரலாக்கத்தை எளிமை படுத்த ஒவ்வொன்றாக கண்டுபிடித்தனர். பொறிமொழி மாற்றி எவ்வாறு பொறி மொழியிலிருந்து இரும மொழிக்கு மாற்றுகிறதோ (assembler converts assembly language to binary code)
மொழிமாற்றிகள் உயர்நிலை மொழியிலிருந்து இரும மொழியாக மாற்றித் தருகின்றன (compiler converts high level language to machine language).
ஒவ்வொரு கட்டமைப்பிலும் சிக்கலின்றி இயங்க அந்தந்த கட்டமைப்புகளுக்குத் தகுந்தவாறு மொழி மாற்றிகள் உருவாக்கப் பட்டது.
சிலமென்பொருட்களை பதிவிறக்கம் செய்ய முற்படும்போது x86, i382, x86-64 bit... என பலப் பிரிவுகள் இருப்பதைப் பார்க்கலாம். ஏன் இத்தனைப் பிரிவுகள். ஒரே மென்பொருள்தான், அதே செயல்பாடுதான் ஆனால் ஏன் வெவ்வேறு வகைகளாக தரவேண்டும். வெவ்வேறு வகையான கணினிகளில் உள்ள மையச் செயலி ஆணை அமைவுகளில் (microprocessor Instruction Set) மாற்றம் இருப்பதால்தான். இதை இத்தோடு நிறுத்திக் கொள்வோம், நம் தொடருக்குத் திரும்பலாம்.
சி++ மொழி கணினி மென்பொருட்களை உருவாக்க பெரும் புரட்சியைச் செய்ததென்று சொல்லலாம். ஜேன் ஸ்ட்ரூஸ்டரப் (Bjarne Stroutstrup) உருவாக்கிய சி++ பொருள் நோக்கு நிரலாக்க (OOP-object oriented programming) மொழியாகும். பொருள் நோக்கு நிரலாக்கம் மென்பொருள் உருவாக்கத்தில் பெரும் புரட்சியை செய்கின்றது. பொருள் நோக்கு பகுப்பாய்வும் வடிவமைப்பும் (OOAD- Object oriented analysis and design) சி++ மொழிக்கு மட்டும் சொந்தமல்ல. பொருள் நோக்கு வடிவமைப்பு என்பது ஒரு தத்துவம்,
மென்பொருள் உருவாக்க வழிமுறை. சி++ற்கு முன்னரே ஸ்மால்டாக் போன்ற பொருள் நோக்கு மொழிகள் உருவாக்கப் பட்டது. ஜாவா, அப்ஜெக்டிவ் சி, பி.எச்.பி... போன்றவை பொருள் நோக்கு மொழிகளே. பொருள் நோக்கு நிரலாக்கத்தில் மரபுரிமம் (inheritance),உறைபொதியாக்கம் (encapsulation)... போன்றவை அடிப்படைத் தத்துவங்களாக உள்ளது. மரபுரிமம் என்பது தாத்தா சொத்தில் பேரப் பிள்ளைகளுக்கு உரிமை என்பதைப் போன்றது. நீங்கள் ஒரு நிரல் எழுதியுள்ளீர்கள். அதிலிருக்கும் சில வசதிகளை பிறர் பயன்படுத்தலாம் என்று கொடுக்கிறீர்கள் என வைத்துக் கொள்வோம், எங்களுக்கு வேண்டிய வசதிகள் அதிலிருந்தால் நாங்கள் அதை அப்படியே பயன்படுத்திக் கொண்டு இல்லாத வசதிகளுக்கு மட்டும் நிரல் எழுதிக் கொள்ளலாம். நமக்கு அனைத்து வசதிகளும் தேவையில்லையெனில் தேவையற்றதை நீக்கிக் கொண்டு நம் தேவைக்கேற்ப மாற்றிக் கொள்ளலாம்.
[லினக்ஸ் இயங்குதளத்தில் படிக்க முடியவில்லை என்றால் காப்பி செய்து ஓப்பன் ஆபிஸ், டெக்ஸ்ட் எடிட்டரில் பேஸ்ட் செய்து படிக்கவும்
.
மன்னிக்கவும், பிரதியெடுத்து ஒட்டி படிக்கவும். தமிழில் எழுதினாலும் அடைப்புகுறியில் ஆங்கிலச் சொற்களை எழுதுகிறேன், பயப்படாமல்
நகைக்காமல் படிக்கவும்.]
தமிழுக்கு சொல்திருத்தி (Tamil Spellchecker) வந்தாச்சு
சொல்திருத்தி (Spell checker) எந்தவொரு மொழிக்கும் இன்றியமையாத ஒன்று. வெவ்வேறு வடிவங்களிலும், வெவ்வேறு எழுது பொருட்களிலும் கையாளப்பட்ட மொழி இன்று கணினி மூலம் பயன்படுத்தப் படுகிறது.
எழுத்து வடிவில் மொழியானது கணினி மூலம் பயன் கொள்ளப் படுகிறது (used by computer)எனவும் சொல்லலாம், கொல்லப் படுகிறது (killed by computer) எனவும் சொல்லலாம். அந்த அளவிற்கு பிழைகள் மலிந்து இணையத்தில் பயன்படுத்தப் படுகிறது. ஆங்கில மொழியிலேயே ஆரம்பம் தொட்டு கணினி உருவாகி வருவதால், அந்த மொழிக்கு நல்ல சொல்திருத்தி இருப்பதில் ஆச்சர்யம் ஒன்றுமில்லை. ஆங்கிலமல்லாத எழுத்துகளை திரையில் தோன்றச் செய்வதே பெரிய வேலையாக இருக்கிறது (எடு: அனைத்து ஆண்ட்ராய்ட் மொபைல்களிலும் தமிழ் நன்றாகத் தெரிவதில்லை).
இணையமே இளைஞர்களின் இல்லம் என்றாகிவிட்ட நிலையில், மொழியின் செழுமையைக் காக்க காலத்திற்கேற்ற கருவிகள் தேவைப் படுகிறது.
எழுத்து வடிவில் மொழியானது கணினி மூலம் பயன் கொள்ளப் படுகிறது (used by computer)எனவும் சொல்லலாம், கொல்லப் படுகிறது (killed by computer) எனவும் சொல்லலாம். அந்த அளவிற்கு பிழைகள் மலிந்து இணையத்தில் பயன்படுத்தப் படுகிறது. ஆங்கில மொழியிலேயே ஆரம்பம் தொட்டு கணினி உருவாகி வருவதால், அந்த மொழிக்கு நல்ல சொல்திருத்தி இருப்பதில் ஆச்சர்யம் ஒன்றுமில்லை. ஆங்கிலமல்லாத எழுத்துகளை திரையில் தோன்றச் செய்வதே பெரிய வேலையாக இருக்கிறது (எடு: அனைத்து ஆண்ட்ராய்ட் மொபைல்களிலும் தமிழ் நன்றாகத் தெரிவதில்லை).
இணையமே இளைஞர்களின் இல்லம் என்றாகிவிட்ட நிலையில், மொழியின் செழுமையைக் காக்க காலத்திற்கேற்ற கருவிகள் தேவைப் படுகிறது.
தமிழில் திறமூல மென்பொருட்களை
(opensource tamil applications) உருவாக்கும் தமிழா குழுமம் தமிழுக்கு சொல்திருத்தி வெளியிட்டுள்ளது.
இந்த சொல்திருத்தி தன்னைப் பற்றி இவ்வாறாக கூறுகிறது.
" இச்சொல்திருத்தி, பலரது தொண்டூழிய உழைப்பின் வெளிப்பாடு ஆகும்.
இது தன் பயணத்தை 2004 ஆம் ஆண்டு தொடங்கியது. வே. இளஞ்செழியன், இராதாகிருஷ்ணன், சு. முகுந்தராஜ், விஜெய் ஆகியோர் இத்திட்டத்தில் ஈடுபட்டனர். பின்னர், 2009 ஆம் ஆண்டு, அண்ணா பல்கலைக்கழகத்தைச் சேர்ந்த மாலதி செல்வராஜ், சுஜி, ஸ்ரீ ராமதாஸ் ஆகியோர் விடுபட்டு போன திட்டத்திற்குப் புத்துயிர் கொடுத்தனர்.
2010 இல், முனை. கேவின் ஸ்கேனல் குருபடான் 2.0 என்ற தனது வலை-தவழ் பொறியைக் கொண்டு 50 இலட்சம் தமிழ் சொற்தொகுதியை உருவாக்கினார். இச்சொல்திருத்தி, அத்தொகுதியின் அடிப்படையில் அமைந்திருக்கிறது. அவரைத் தவிர்த்து, ஹன்ஸ்பெல்லைத் தயாரித்த லாசி நெமெத்தும் அறிவுரைகளை வழங்கினார். முனை. ந. தெய்வசுந்தரம் அவர்களும் மொழி ஆய்வு பற்றிய அரிய கருத்துகளைத் தந்து உதவினார்.
- தமிழா! குழுவினர். "
- தமிழா! குழுவினர். "
தற்போது நெருப்புநரி உலாவிக்கும் (firefox browser :)) லிபர் ஆபிஸ் (libreoffice ஓப்பன் ஆபிஸுக்கு மாற்றாக உருவாக்கப்பட்டது) தொகுப்பிற்கும் நீட்சிகள் (extensions/plugins) கிடைக்கின்றது.
இவற்றை எப்படி நிறுவி இயக்குவதென அடுத்த பதிவில் பார்க்கலாம்.
NOVEMBER 06, 2011
நாலு கால் பாய்ச்சலில் ஜாவாஸ்கிரிப்ட்
ஜாவாஸ்கிரிப்ட் (javascript) கோடிக்கணக்கான இணையதளங்களில் பயன்படுத்தப்படும் ஒரு ஸ்கிரிப்டிங் மொழி. நெட்ஸ்கேப் (Netscape) நிறுவனத்தால் 1995ல் வெளியிடப்பட்டது. இதன் ஆரம்பகால பெயர் லைவ்ஸ்கிரிப்ட் (LiveScript) என்பதாகும். ஜாவா மொழியை உருவாக்கிய சன் மைக்ரோசிஸ்டம்ஸ் (Sun MicroSystems) நெட்ஸ்கேப் நிறுவனத்தை கையகப்படுத்திய பின்னர், ஜாவா விளம்பர யுக்திக்காக லைவ்ஸ்கிரிப்டை ஜாவாஸ்கிரிப்ட் என பெயர் மாற்றியது. மற்றபடி ஜாவாவும் ஜாவாஸ்கிரிப்ட்டும் இருவேறு துருவங்கள். இரண்டு மொழிகளும் வெவ்வேறு காரணங்களுக்காக வடிவமைக்கப் பட்டவை. 1996 நவம்பர் மாதத்தில் நெட்ஸ்கேப் நிறுவனம் இணைய தொழில்நுட்பங்களை தகுதரப்படுத்தும் (internet standards) ECMA அமைப்பிடம் ஒப்படைத்தது. ECMA நிறுவனம் ஜாவாஸ்கிரிப்ட்டை ECMAScript என பெயரிட்டது. இவர்கள் மட்டுமல்லாமல் மைக்ரோசாப்ட் (Microsoft) சில மாற்றங்களை செய்து jScript என்றும், அடோப் (Adobe) நிறுவனம் ActionScript என்றும் ஆளுக்கொரு பெயர் வைத்தனர். ஜாவாஸ்க்ரிப்ட்டை மேம்படுத்துவதில் மொசில்லா (Mozilla) நிறுவனம் இன்று பெரும் பங்களிப்பைச் செலுத்துகிறது.
இணைய பயன்பாடு பெருகிவிட்ட இக்காலத்தில் ஜாவாஸ்கிரிப்ட்டை வேகமாய் இயங்க வைக்க மைக்ரோசாப்ட், கூகிள், மொசில்லா, ஆப்பிள் போன்ற நிறுவனங்கள் அதிவேக உலாவிகளை (browsers) பரிசளித்துள்ளன. ஜாவாஸ்க்ரிப்ட் பெரும்பாலும் இணைய பக்க வடிவமைப்புகளில் (web page design) மட்டுமே அதிகம் பயன்படுத்தப்பட்டு வந்திருக்கிறது. இன்று இணைய பக்கங்களுடன் மட்டும் நின்றுவிடாமல் டெஸ்க்டாப் (desktop) அப்ளிகேஷன்ஸ், விட்ஜெட்ஸ், ப்ரவுசர் ப்ளகின்ஸ் (browser plugins), சர்வர், டேட்டாபேஸ் என பல பரிமாணங்களில் விஸ்வரூபம் எடுத்திருக்கிறது.
ஜாவாஸ்கிரிப்ட்டை ஜாவா, சி, சி# போன்ற மொழிகளுடன் ஒப்பிடக் கூடாது. பாதுகாப்பு கருதி பயனருடைய ஃபைல்களை (files) திறக்க முடியாது போன்ற அம்சங்களை மொழி அமைப்பிலேயே பெற்றிருக்கிறது. இணைய பக்கங்களுக்கு வெளியேயும் (desktop, server side application) ஜாவாஸ்கிர்ப்ட்டை மென்பொருள் உருவாக்கத்திற்கு பயன்படுத்த CommonJSஎன்கிற திட்டம் செயல்படுகிறது.
சர்வர் தொழில்நுட்பத்தில் node.js திட்டம் பெரிய எதிர்பார்ப்புகளை உருவாக்கி வருகிறது. பின்புலத்தில் asp, php, servlet, python, ruby போன்ற மொழிகளுக்கு பதில் ஜாவாஸ்கிரிப்ட்டையே பிரவுசர் வேண்டுதல்களுக்கு (serving response from javascriptitself) பயன்படுத்த முடியும். அதேபோல ஜாவாஸ்கிப்ட் டேட்டாவை சேமிக்க டாக்குமெண்ட் ஸ்டோர்களாகவும் பயன்படுகிறது. MongoDB, CouchDB போன்ற NoSQL டேட்டாபேஸ்களை ஜாவாஸ்கிப்டுடன் பயன்படுத்தலாம். நீங்கள் ஜாவாஸ்கிரிப்ட் கற்றுக் கொள்ள ஆசைப்பட்டால் ஆரம்பத்திலேயே jQuery ஜாவாஸ்கிரிப்ட் லைப்ரரியையும் கற்றுக் கொள்ளுமாறு கேட்டுக் கொள்கிறேன்.
SEPTEMBER 20, 2011
JSPல் புரொகிராம் செய்யத் தொடங்குவது எப்படி?
ஜாவா புரோகிராமிங் மொழி வெப் அப்ளிகேஷன் உருவாக்கத்தில் எவ்வாறு பயன்படுத்தப் படுகிறது என்பதை இப்பதிவில் பார்க்கலாம். வெப் அப்ளிகேஷன்ஸ் உருவாக்க ஜாவா platformல் JSP, Servlet போன்ற தொழில்நுட்பங்கள் பயன்படுத்தப் படுகின்றன. JSPயும் serveltம் தனி மொழிகள் இல்லை என்பதை கவனத்தில் கொள்க. இவை J2EE (specification)லிருக்கும் அம்சங்கள். J2EE என்பது Java 2 Enterprise Edition என்பதைக் குறிக்கிறது. J2EE platform என்பது Servlet,jsp,java mail,ejb போன்ற பல்வேறு ஜாவா தொழில்நுட்பங்கள் சேர்ந்த தொகுப்பாகும். J2EEல் இருக்கும் அனைத்து தொழில்நுட்பங்களையும் ஜாவா மூலமாக புரோகிராம் செய்கிறோம்.
ஒரு ஜாவா புரோகிராம் இயங்க, அந்தக் கணினியில் ஜாவா (JDK/JRE) நிறுவப்பட்டிருக்க வேண்டுமென்பதை அறிவோம். அதுபோல jsp, servlet, asp, php... போன்ற தொழில்நுட்பங்களில் உருவாக்கும் புரோகிராம்கள் இயங்க வெப் சர்வர் நிறுவப்பட்டிருக்க வேண்டும். பெரும்பாலான புதியவர்கள் தவறு செய்வது இங்கேதான். இரட்டை க்ளிக் செய்து .html fileஐ ரன் செய்வது போல இயக்க முடியாது. சர்வரில் பதிவேற்றி (deploy) இயக்க வேண்டும். எப்படி ஒரு இணையதளத்தை அணுக ப்ரவுசரில் அதன் முகவரியை சுட்டுகிறோமோ, நீங்கள் பதிவேற்றியிருக்கும் சர்வரின் முகவரியைக் கொடுக்க வேண்டும். அது உங்கள் கணினியிலேயே இருந்தால் localhost எனக் குறிப்பிடலாம் (எடு: http://localhost:8080/myproject/login.html, http://localhost/xampp/test).
JSP மற்றும் Servlet நிரல்களை இயக்க பெரும்பாலும் Apache Tomcat எனும் சர்வரை பயன்படுத்துகின்றனர். இது ஒரு ஓப்பன் சோர்ஸ் அப்ளிகேஷன் சர்வராகும். இது போன்ற சர்வர்களில் இயங்கக்கூடிய புரோகிராம்களை எக்லிப்ஸ், நெட்பீன்ஸ், விசுவல் ஸ்டூடியோ.net போன்ற IDEக்கள் மூலம் உருவாக்கலாம்.
ஜாவாவில் J2SE, J2EE, J2ME பிரிவுகளுக்கேற்ப எக்லிபிஸ் பதிப்பையும் பணிச்சூழலுக்கு தகுந்தற்போல பயன்படுத்தலாம். எடுத்துகாட்டிற்கு ஜாவா command line புரோகிராம், அல்லது டெஸ்க்டாப் அப்ளிகேஷன் போன்றவற்றிற்கு நிரலெழுத Eclipse For Java Developers போதுமானது. வெப் அப்ளிகேஷன்ஸை உருவாக்க Eclipse For J2EE Development பதிவிறக்கிக் கொள்ளுங்கள்.
- தொடரும்
JUNE 12, 2011
நிரலை நிரலால் செய்துவிடல் - ப்ளாக்கரில் உங்கள் புரோகிராமை அழகாய் தோன்றச் செய்யலாம்
ஒரு நிரலை உங்கள் வலைப்பதிவில் காட்ட வேண்டுமென நினைக்கிறீர்கள். ஆங்காங்கே அந்த நிரல் மொழியின் கட்டளைகளுக்கேற்ப (நிரலிலக்கணம் program grammar) பல வண்ணங்களில் காட்டும்போது பார்க்க கவரும்படியாகவும், படிக்க எளிமையாகவும் இருக்கும். விசுவல் ஸ்டூடியோ, எக்லிப்ஸ், நோட்பேட்++... போன்ற மென்பொருட்களை நிரலெழுத பயன்படுத்தும்போது நிரலாக்கம் நமக்கு எளிமையாய் இருக்க இதுதான் காரணம்.
ப்ளாக்கரில் தன்னியல்பாகவே நிரல்களை எழிலாகக் காட்டும் வசதி இல்லை. நமக்கு வேண்டுமெனில் அதற்கான நிரல் நீட்சிகளை (plugins) சேர்த்துக் கொள்ளலாம். ப்ளாக்கரில் எவ்வாறு நிரல்வரிகளை எழிலாய் தோன்றச் செய்வதென இக்கட்டுரையில் பார்க்கலாம். வேர்ட்பிரஸ் வலைப்பூக்களிலும் நிரல்வரிகளை அழகாகத் தோன்றச் செய்யலாம், ஆனால் அதற்கென உரிய முறையில்.
நான் எனது வலைப்பூவில் பயன்படுத்திப் பார்த்த இரண்டு எழில்நிரலுக்கான நிரல்கள்: (code beautifiers/syntax highlighters/.. அல்லது உங்கள் மொழியில்)
Syntax Highlighter
http://alexgorbatchev.com/wiki/SyntaxHighlighter:Integration
Google Code Prettify
http://code.google.com/p/google-code-prettify/
இதோடல்லாமல் இன்னும் நிறைய நிரலை அழகுபடுத்தும் நிரல்கள் உள்ளனhttp://www.1stwebdesigner.com/css/16-free-javascript-code-syntax-highlighters-for-better-programming/
நமக்கும் ஒரு ப்ளாக் வேண்டுமென முதன்முதலில் விளையாட்டாய் உருவாக்கியhttp://nrsrajkumar.blogspot.com வலைப்பூவில் Syntax Highlighter பயன்படுத்தியிருக்கிறேன். இந்த தமிழ்CPU வலைப்பூவில் Google Code prettify பயன்படுத்தியிருக்கிறேன். அப்படியே உங்கள் மவுசில் வலது க்ளிக் செய்து view page source (தமிழ்CPU வலைப்பூவை) பார்க்கவும், எப்படிப் பயன்படுத்த வேண்டுமென நீங்களே தெரிந்து கொள்ளலாம்.
அந்தந்த நிரல் மொழிகளுக்குத் தகுந்தவாறு வண்ணங்கள் css (Cascading Style Sheets) கோப்பில் எழுதப்பட்டிருக்கும். இவற்றை எங்கு கொடுப்பது? Design தொடுப்பிலிருக்கும் Edit htmlஐ தேர்வு செய்யவும். உங்கள் ப்ளாக்கர் டெம்ப்ளேட்டின் நிரல் தோன்றும்.
<head> டேகினுள் </title>க்கு அடுத்து கீழ்காணும் இரண்டு html வரிகளை சேர்த்து
புதிய பதிவை எழுதும்போது ப்ளாக் எடிட்டரில் Edit Html தேர்ந்தெடுக்கவும்
ஒரு html நிரலை உங்கள் பதிவில் காட்டவேண்டுமென நினைக்கிறீர்கள். எடுத்துகாட்டாக கீழ்காணும் html வரிகளை <pre> </pre> டேகிற்குள் எழுதுகிறோம் என வைத்துக் கொள்ளுங்கள்.
நாம் <pre> டேகினுள் சேர்த்த html வரிகளை எழுத்தாக தோன்றச் செய்ய மட்டும் எண்ணியிருந்தாலும், உங்கள் உலாவி இதை html இலக்கணமாக எடுத்துக்கொள்வதால் சிக்கல் ஏற்படும்.

இதற்கு html மொழியிலேயே தீர்வு இருக்கிறது. அவைதான் html entities. < அனைத்து டேகிலும் வருவதால் அதை கட்டளை எழுத்தாக அல்லாமல் எழுத்தாக தோன்ற செய்வதற்கு < entityயாக எழுத வேண்டும். காப்புரிமை குறியீட்டிற்கு © என வரும். இப்படி htmlலில் பல entityக்கள் உள்ளது.
நாம் காட்ட நினைக்கும் html நிரலில் உள்ள அனைத்து குறியீட்டையும் ஒவ்வொன்றாக மாற்றிக் கொண்டிருக்க முடியாது. அதற்கு நிரல் மூலமாகவே தீர்வுகாண முடியும். இப்பிரச்சனைக்கு தீர்வுதரும் ஒரு நிரல்தான்
http://www.string-functions.com/htmlencode.aspx
ப்ளாக்கரில் தன்னியல்பாகவே நிரல்களை எழிலாகக் காட்டும் வசதி இல்லை. நமக்கு வேண்டுமெனில் அதற்கான நிரல் நீட்சிகளை (plugins) சேர்த்துக் கொள்ளலாம். ப்ளாக்கரில் எவ்வாறு நிரல்வரிகளை எழிலாய் தோன்றச் செய்வதென இக்கட்டுரையில் பார்க்கலாம். வேர்ட்பிரஸ் வலைப்பூக்களிலும் நிரல்வரிகளை அழகாகத் தோன்றச் செய்யலாம், ஆனால் அதற்கென உரிய முறையில்.
நான் எனது வலைப்பூவில் பயன்படுத்திப் பார்த்த இரண்டு எழில்நிரலுக்கான நிரல்கள்: (code beautifiers/syntax highlighters/.. அல்லது உங்கள் மொழியில்)
Syntax Highlighter
http://alexgorbatchev.com/wiki/SyntaxHighlighter:Integration
Google Code Prettify
http://code.google.com/p/google-code-prettify/
இதோடல்லாமல் இன்னும் நிறைய நிரலை அழகுபடுத்தும் நிரல்கள் உள்ளனhttp://www.1stwebdesigner.com/css/16-free-javascript-code-syntax-highlighters-for-better-programming/
நமக்கும் ஒரு ப்ளாக் வேண்டுமென முதன்முதலில் விளையாட்டாய் உருவாக்கியhttp://nrsrajkumar.blogspot.com வலைப்பூவில் Syntax Highlighter பயன்படுத்தியிருக்கிறேன். இந்த தமிழ்CPU வலைப்பூவில் Google Code prettify பயன்படுத்தியிருக்கிறேன். அப்படியே உங்கள் மவுசில் வலது க்ளிக் செய்து view page source (தமிழ்CPU வலைப்பூவை) பார்க்கவும், எப்படிப் பயன்படுத்த வேண்டுமென நீங்களே தெரிந்து கொள்ளலாம்.
<!DOCTYPE html> <html b:version='2'> <head> ... <title>தமிழ்CPU</title> <link href='http://google-code-prettify.googlecode.com/svn/trunk /src/prettify.css' rel='stylesheet' type='text/css'/> <script src='http://google-code-prettify.googlecode.com/svn/trunk /src/prettify.js' type='text/javascript'></script> ... ...
அந்தந்த நிரல் மொழிகளுக்குத் தகுந்தவாறு வண்ணங்கள் css (Cascading Style Sheets) கோப்பில் எழுதப்பட்டிருக்கும். இவற்றை எங்கு கொடுப்பது? Design தொடுப்பிலிருக்கும் Edit htmlஐ தேர்வு செய்யவும். உங்கள் ப்ளாக்கர் டெம்ப்ளேட்டின் நிரல் தோன்றும்.
<head> டேகினுள் </title>க்கு அடுத்து கீழ்காணும் இரண்டு html வரிகளை சேர்த்து
<link href='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css' rel='stylesheet' type='text/css'/> <script src='http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js' type='text/javascript'></script>டெம்ப்ளேட்டை சேமிக்கவும். இந்த டெம்ப்ளேட்டை ஒருமுறை சேமித்தால் போதுமானது. ஒவ்வொரு பதிவிற்கு மாற்றம் செய்யத் தேவையில்லை. இனி எங்கெல்லாம் (தேவைப்படும் பதிவில்) ஒரு நிரலை அழகாகத் தோன்றச் செய்ய வெண்டுமென நினைக்கிறீர்களோ, உங்கள் நிரலை எளிதாக pre டேகினுள் தந்துவிடவும்.
புதிய பதிவை எழுதும்போது ப்ளாக் எடிட்டரில் Edit Html தேர்ந்தெடுக்கவும்
உங்கள் பதிவில் காட்ட நினைக்கும் நிரலை கீழ்காணுமாறு <pre> டேகினுள் தரவும்.
<pre class='prettyprint'>
#author: Rajkumar Ravi
print 'hi blog readers...'
</pre>
ஒரு html நிரலை உங்கள் பதிவில் காட்டவேண்டுமென நினைக்கிறீர்கள். எடுத்துகாட்டாக கீழ்காணும் html வரிகளை <pre> </pre> டேகிற்குள் எழுதுகிறோம் என வைத்துக் கொள்ளுங்கள்.
<html>
<head>
<title>Display html in a HTML page</page>
</head>
<body>
Escape html tags you want to display it in a HTML page.
</body>
</html>
இவ்வரிகளை நாம் ஏற்கனவே எழுத்தப்பட்டிருக்கும் ஒரு html பக்கத்தில்தான் சேர்க்கிறோம் என்பதை மறந்து விடாதீர்கள்.நாம் <pre> டேகினுள் சேர்த்த html வரிகளை எழுத்தாக தோன்றச் செய்ய மட்டும் எண்ணியிருந்தாலும், உங்கள் உலாவி இதை html இலக்கணமாக எடுத்துக்கொள்வதால் சிக்கல் ஏற்படும்.

இதற்கு html மொழியிலேயே தீர்வு இருக்கிறது. அவைதான் html entities. < அனைத்து டேகிலும் வருவதால் அதை கட்டளை எழுத்தாக அல்லாமல் எழுத்தாக தோன்ற செய்வதற்கு < entityயாக எழுத வேண்டும். காப்புரிமை குறியீட்டிற்கு © என வரும். இப்படி htmlலில் பல entityக்கள் உள்ளது.
நாம் காட்ட நினைக்கும் html நிரலில் உள்ள அனைத்து குறியீட்டையும் ஒவ்வொன்றாக மாற்றிக் கொண்டிருக்க முடியாது. அதற்கு நிரல் மூலமாகவே தீர்வுகாண முடியும். இப்பிரச்சனைக்கு தீர்வுதரும் ஒரு நிரல்தான்
http://www.string-functions.com/htmlencode.aspx
MAY 11, 2011
jQuery ஜாவாஸ்கிரிப்ட்
jQuery என்பது ஒரு ஜாவாஸ்கிரிப்ட் library யாகும். இன்று இணைய பக்க வடிவமைப்புகளில் கலக்கி வரும் jQuery குறித்து கணினித் துறையில் இருக்கும் நாம் அவசியம் அறிந்து வைத்துக் கொண்டிருக்க வேண்டும்.
நேரடி ஜாவாஸ்கிரிப்ட்டில் இணையப் பக்கம் வடிவமைத்த காலம் போயே போய்விட்டது. இதுபோன்ற library பயன்படுத்தாமல் எழுதப்படும் நிரல் அனைத்து உலாவிகளிலும் ஒரேபோல் இயங்காது. ஆனால் இணையம் என்பது பலவகையான கணினிகள் மூலம் வெவ்வேறு உலாவிகளில் இருந்து அணுகப்படுகிறது.இவையனைத்திலும் இயங்குமாறு நிரலெழுதுவது நேர விரயம் மற்றும் பிழைகள் மலிந்திருப்பதாவும் இருக்கும். Dojo, Prototype, Script.aculo.us, XUI... அப்பப்பா இன்னும் ஏராளமான ஜாவாஸ்கிரிப்ட் libraries உள்ளன. இதில் jQuery பயன்படுத்துவரின் எண்ணிக்கை நாளுக்கு நாள் அதிகரித்து வருகிறது. நீங்கள் வெப் அப்ளிகேஷன் உருவாக்கத்தில் இருந்தால் அவசியம் jQuery தெரிந்து வைத்துக் கொள்ளுங்கள்.
jQueryன் சிறப்பம்சங்கள்:
எளிமை
மிக வேகமாகக் கற்றுக் கொள்ளலாம்.
ஆற்றல்
மிக வேகமாகவும் இயங்கக் கூடியது.
நளினம்
கடினமான DOM வடிவமைப்பையும் எளிதாக அணுகலாம்.
தரம்
உலகெங்கிலும் பயன்படுத்தப் படுகிறது. மேம்படுத்தப்பட்டுக் கொண்டே இருக்கிறது.
இலவசம்
இது இலவசம் மட்டுமல்ல கட்டற்ற மென்பொருள். அவரவர்க் கேற்றார்போல் மாற்றம் செய்து பயன்படுத்தலாம்.
வீச்சு
jQuery Mobile, jQuery Touch ஆகியவை செல்பேசிகளுக்கான இணையதளம் மற்றும் செல்பேசி மென்பொருள் உருவாக்கத்திலும் பயன்படுத்தப் படுகிறது.
உதவி
ஏராளமான எடுத்துக்காட்டுகளும், புத்தகங்களும் இருக்கின்றது
கருவிகள்
ஆங்கிலத்தில் Dont reinvent the wheels yourself என்றொரு சொற்றொடர் இருக்கிறது. இதன் பொருள் அனைத்தையும் அடிப்படையிலிருந்து நாம் உருவாக்கத் தேவையில்லை, இருப்பதைப் பயன்படுத்திக் கொண்டாலே போதுமானது.<html> <head> <title>Jquery in tamil</title> <script src="jquery-1.6.js" charset="US-ASCII"> </script> </head> <body><br/><br/> உங்கள் பெயரை உள்ளிடுக: <input type='text' id='txtname'/> <input type="button" id='greet' value="வாழ்த்து"/> <br/><br/><br><hr noshade/> <a href='http://tamilcpu.blogspot.com'> தமிழ்CPU வலைப்பூ</a> <script> $("#greet").click(function() { alert("மகிழ்ச்சி!!! " + $('#txtname').val() + ".") }) </script> </body> </html>
MARCH 30, 2011
தமிழ் விபிScript
' நிரலர்: ந.ர.செ. ராஜ்குமார் '------------------------------------- choice = msgbox ("இந்த நிரல் உங்களுக்கு பிடிச்சிருக்கா?",vbokcancel, "தமிழ்CPU http://tamilcpu.blogspot.com") if (choice = 1) then msgbox "மகிழ்ச்சி!...... :)",,"தமிழ்CPU http://tamilcpu.blogspot.com" else msgbox "ஐயையோ!.... :(",,"தமிழ்CPU http://tamilcpu.blogspot.com" end if wscript.echo "மிக எளிதாக தமிழ் இடைமுகப்பில் மென்பொருட்கள் எழுத முடியும்."
MARCH 28, 2011
இவர்களால்தான் கணினியில் தமிழ் பயன்படுத்துகிறோம்
கணினியில் தமிழை எளிமையாய்ப் பயன்படுத்த பலர் உழைத்திருக்கிறார்கள். அவர்களில் குறிப்பிடத்தக்க ஒருவர் அதிராம்பட்டினத்தைச் சேர்ந்த திரு.உமர்தம்பி. இவரைகணித்தமிழின் முன்னோடி எனக் கொள்ளலாம்.
திரு. உமர் தம்பி (ஜூன் 15, 1953 - ஜூலை 12, 2006)
ஒலியியல் (phonetic tamil typing / முரசு அஞ்சல்) தட்டச்சு முறையை பிரபலப் படுத்தியவர்
தமிழ் தட்டச்சுப் பொறியின் தந்தை
திரு. ஆர். முத்தையா (பெப்ரவரி 24, 1886)
ஒலியியல் (phonetic tamil typing / முரசு அஞ்சல்) தட்டச்சு முறையை பிரபலப் படுத்தியவர்
திரு. முத்து நெடுமாறன்
தமிழ் கணினி கலைச்சொல்லாக்கத்திற்கு பெரும் பங்காற்றியவர்
திரு. மணவை முஸ்தபா
இன்னும் ஆயிரமாயிரம் பேர் கணித்தமிழுக்கு தொண்டாற்றியவர்கள் இருக்கிறார்களென சொல்லித் தெரியவேண்டுமா என்ன?
FEBRUARY 26, 2011
அளவில் சிறிய இலவச மென்பொருள் மாதிரி வடிவமைப்புக் கருவி
பென்சில் ஸ்கெட்ச்சிங் (Pencil Sketching) ஃபயர்பாக்ஸ் உலாவியில் add-onஆக பயன்படுத்தப்படும் கருவி. மென்பொருள் வடிவமைப்பாளர்களுக்கு மிகவும் பயனுள்ள கருவி. ப்ராஜெக்ட் செய்யும் கல்லூரி மாணவர்களுக்கு பெரிதும் உதவும். மென்பொருளை உருவாக்கும் முன் மாதிரியை இதில் வடிவமைத்துக் கொள்ளலாம். இதுபோல மாதிரி வடிவமைப்பதை ஆங்கிலத்தில் prototyping என்றழைக்கிறோம். இது திறமூல மென்பொருளாக (ஓப்பன் சோர்ஸ்) இருப்பதால் மேலும் மனதைக் கவர்கிறது.
FEBRUARY 09, 2011
JANUARY 23, 2011
வகைவகையான வலைப்பதிவு விருதுகள்
அவ்வப்போது வலைப்பூக்களை உலா வருகையில் xxxx அளித்த விருது, yyyy கொடுத்த விருது.. என நிறைய விருதுகளை பார்ப்பதுண்டு. அதை பெருமிதமாக அறிவித்துக் கொள்வதில்தான் எத்தனை மகிழ்ச்சி. இது ஒருவகையான அன்புதான். 500க்கும் மேற்பட்ட பின்தொடருவோர் இருப்பவர் முதல் ஒரு மணி நேரத்திற்கு முன்பு பதிவுலகிற்கு வந்தவர்வரை விருதுகள் வழங்கி மகிழ்விக்கின்றனர், அல்லது மகிழ்கின்றனர்.
என் கண்ணில் பட்ட சில விருதுகள்.
என் கண்ணில் பட்ட சில விருதுகள்.
இவ்விருதுகளை வழங்குபவர் யார், பெற்றவர்கள் யார் யார் என்பதெல்லாம் இப்பதிவிற்கு அப்பாற்பட்டது. சினிமா, நகைச்சுவை, சமையல், படைப்பாக்கம்.. என அனைத்து பிரிவுகளிலும் விருதுகள் வழங்கப்படுகின்றது. ஆனால் தொழில்நுட்பப் பதிவுகளுக்குஏதேனும் உள்ளதா எனத் தெரியவில்லை.
பதிவர்களைப் பொறுத்தவரை பெறும் ஒவ்வொரு பின்னுட்டமும் விருதுகள்தான்.
பதிவர்களைப் பொறுத்தவரை பெறும் ஒவ்வொரு பின்னுட்டமும் விருதுகள்தான்.
JANUARY 11, 2011
ஃபைல்களின் பட்டியலை எக்சலில் கொண்டு வரலாம்
ஒரு குறிப்பிட்ட அடைவிற்குள் (folder)ல் என்னென்ன கோப்புகள் (files) இருக்கிறதென என அறிந்துகொள்ள விண்டோசில் dir கட்டளையும் (command)ம் லினக்சில் ls போன்ற கட்டளைகளையும் பயன்படுத்துவோம். இவற்றை எக்சல் (MS Excel) போன்ற விரிதாள் (spreadsheet)ல் மென்பொருட்களில் ஆவணமாகவும் வைத்துக் கொள்ளலாம்.
விண்டோசில் dir > files.txt கட்டளை, இயக்கத்திலுள்ள அடைவிற்குள்ளிருக்கும் (current folder) அனைத்து கோப்புகளின் பெயரையும் நாம் கொடுக்கும் கோப்பில் பட்டியலிடும்.
dir /s > sample.txt (sub directory யையும் சேர்த்துக் கொள்)
விண்டோசில் dir > files.txt கட்டளை, இயக்கத்திலுள்ள அடைவிற்குள்ளிருக்கும் (current folder) அனைத்து கோப்புகளின் பெயரையும் நாம் கொடுக்கும் கோப்பில் பட்டியலிடும்.
dir /s > sample.txt (sub directory யையும் சேர்த்துக் கொள்)
பயன்படுத்துவதற்கு மிக எளிதான இடைமுகப்புகள் (GUI) வரும்போதிலும், கட்டளை வரிகள் அதன் திறமிழக்காது. விண்டோசாகட்டும், லினக்ஸ், யுனிக்ஸ் எந்த இயங்குதளமாகட்டும் அதிலுள்ள ஒரு சில கட்டளை வரிகளையாவது தெரிந்து வைத்திருக்க வேண்டும். கட்டளை வரிகள் மூலம்தான் இடைமுகப்பில் முடியாததையும் சாதிக்க முடியும். என்ன நாம் சாதிக்க பிறந்தவர்கள்தானே?
ஜாவா தொடர் தொடர்ந்து வரும் நாட்களில் தொடரும்.....
JANUARY 02, 2011
அழகான தமிழ் ஃபாண்ட்களை இலவசமாய் பெற்றிடுங்கள்
அழகான தமிழ் எழுத்துருக்களை (tamil fonts) இந்தhttp://sites.google.com/site/tamilcpufiles சுட்டியிலிருந்து பதிவிறக்கிக் கொள்ளவும். இந்த எழுத்துருக்கள் பனேசியா சாப்ட்வேர் நிறுவனத்தால் இலவசமாய் வழங்கப்பட்டவை. வெவ்வேறு வகையான தமிழ் எழுத்துருக்களை நம் கணினியில் பயன்படுத்த இயலும். TAM, TAB, Unicode, TSCII என பல வகைகள் இருந்தாலும் இணையத்தில் நாம் தமிழ் ஒருங்குறி (tamil unicode) எழுத்துருக்களை பயன்படுத்துகிறோம்.
தமிழ் யுனிகோட் எழுத்துக்கள் சிக்கல்மிகு கட்டமைப்பைக் கொண்டவை. எடு ‘கி’ என்பது ஒரே எழுத்தாக கையாளப் படாது. ‘க’ + ‘ி’ சேர்ந்து கி என வரும். பழைய மென்பொருட்கள் இதனை ஆதரிப்பதில்லை (எடு: போட்டோஷாப் 7). ஆகவே பதிப்புத் துறையில் (publishing / DTP) தனியெழுத்தாகவே கையாளப்படும் TAM அல்லது தனியார் குறியீட்டு முறைமைகளான (private encodings) செந்தமிழ் ஃபாண்ட்கள் போன்றவை பயன்படுத்தப் படுகிறது. தனியார் ஃபாண்ட்களை விலை கொடுத்து வாங்க வேண்டும். நம்மிடம் எவ்வளவு அழகான எழுத்துருக்கள் இருந்தாலும், அதை உள்ளீடு செய்ய (டைப் செய்ய) முடியவில்லையெனில் பயனில்லை.
உங்களுக்கு வசதியான கீபோர்ட் லேயவுட்டை தெர்ந்தெடுக்கவும்.
அம்மா என்பதற்கு ammaa என டைப் செய்ய ஆசைப் படுவோர் பொனடிக்கை தேர்ந்தெடுக்கவும். தமிழ்99, தமிழ் தட்டச்சு விசைப்பலகைகளை பழகியிருந்தால் தங்களுக்கு பொருத்தமானதைத் தேர்ந்தெடுக்கவும். NHM Writerல் சுருக்கு விசையும் (shortcut) வைத்துக் கொள்ளலாம்.
என் கணினியில் பொனடிக் தமிழ் யுனிகோட் Alt + 1ம், பொனடிக் TAM தமிழ் Alt + 2ம் வைத்துள்ளேன். நாம் அதிகம் பயன்படுத்தாதவைகளை தேர்ந்தெடுப்பதைத் தவிர்க்கவும்.
இன்னொரு முக்கியமான சேதி எல்லா எழுத்துருக்களையும் நிறுவி கணினியை சிரமப் படுத்தாதீர்கள்.
வேண்டிய எழுத்துருக்களை மட்டும் நிறுவங்கள். உங்களுக்கு பிடித்த எழுத்துருக்களை உடன் வரும் pdf கோப்பின் மூலம் தேர்ந்தெடுங்கள்.
HTML5 தோற்றமும் வளர்ச்சியும்
இணையப் பக்கங்களை வடிவமைக்க உதவும் மொழி HTML. Hyper Text Markup Language என்பதன் சுருக்கமே HTML ஆகும். HTML பயனர் இடைமுகப்பு (user interface/UI) உருவாக்கத்தில் தவிர்க்க இயலாத ஓர் தொழில்நுட்பமாக ஆகிவிட்டது. மார்க்கப் மொழிகள் புரோகிராமிங் கட்டளைகளை செயல்படுத்துபவை அல்ல, மாறாக ஒரு ஆவணத்தின் கட்டமைப்பை (document structure) விவரிப்பவை.
மார்க்கப் மொழிகள் புரோகிராமிங் மொழிகளிடமிருந்து எவ்வாறு வேறுபடுகின்றன என்பதை http://tamilcpu.blogspot.in/ 2012/02/xml.html என்ற பதிவில் பார்க்கவும். HTML டேகுககளால் வடிவமைக்கப் பட்ட இணைய பக்கத்தை (web page) உலாவிகள் (browsers) பயனருக்கு தோற்றுவிக்கின்றன.
Tim Berners Lee
1989ல் HTML உருவாக்கத்திற்கான பிள்ளையார் சுழியைப் போட்டவர் திரு. டிம் பேர்னர்ஸ் லீ. ஐரோப்பிய அணு ஆராய்ச்சி நிறுவனத்தில் (European Organization for Nuclear Research, CERN) பணிபுரிந்த இவரே இணைய வலையின் (WWW - World Wide Web) தந்தையாக அழைக்கப்படுகிறார். HTMLலின் முதல் பதிப்பு 1991ல் வெளிவந்தது. HTMLன் பதிப்புகளை வெளியிட்டதில் IETFம் (Internet Engineering Task Force), W3Cயும் (World Wide Web consortium) முக்கியமானவை. தற்போது HTML5 பதிப்பின் வளர்ச்சியை நிர்வகித்து வரும் அமைப்பு (WHATWG (Web Hypertext Application Technology Working Group) ஆகும். WHATWG அமைப்பை உருவாக்கியது ஒபேரா, மொசில்லா மற்றும் ஆப்பிள் ஆகிய நிறுவனங்கள். HTML5க்கு முன்னர் இணைய தகுதரங்களை (web standards) நிர்ணயிக்கும் W3C அமைப்பு XHTML2.0வை முன்னிலைப் படுத்தி வந்தது. இதற்கு பிரவுசர் தயாரிப்பாளர்களிடமும், டெவலப்பர்களிடமும் பெருமளவு ஆதரவு கிடைக்காதலால் பின்னர் HTML5க்கு கவனம் மாற்றப் பட்டது.
தற்போது பயன்பாட்டில் இருக்கும் அனைத்து முன்னனி பிரவுசர்களும் HTML5வை ஆதரிக்கும். குரோம் (Google Chrome), ஃபயர்பாக்ஸ் (Mozilla Firefox) , சஃபாரி (Apple Safari), Opera, IE9 ஆகியவற்றைக் குறிப்பிட்டுச் சொல்லலாம். HTML5ன் எளிமையே அதன் வெற்றிக்கு வித்திட்டது. ஒரேயொரு வரியில் ஒரு விடீயோவை இணைத்துக் கொள்ள முடியும். இணையதளத்தின் முகப்பு பக்கத்தை அலங்கரித்த ஃப்ளாஷின் (Adobe Flash) இடத்தை HTML5 கைபற்றி வருகிறது.
ஆப்பிள் நிறுவனர் ஸ்டீவ் ஜாப்ஸ் ஐபோன், ஐபேட் சாதனங்கள் ஃப்ளாஷை ஒருபோதும் ஆதரிக்காதது என பகிரங்கமாத் தெரிவித்தார். மாறாக HTML5 தான் இணைய பயன்பாடுகளின் எதிர்காலமென தீர்க்க தரிசனமாய் சொல்லி விட்டு சென்று விட்டார். இதை ஃப்ளாஷின் சொந்தக் காரணான அடோப் நிறுவனமே ஒப்புக் கொண்டு சரணடைந்ததென்றால் HTML5ன் வெற்றியைப் புரிந்து கொள்ளுங்கள். அடோப் தன்னுடைய மற்றொரு மென்பொருளான ட்ரீம்வீவரில் (Dreamweaver CS5.5) HTML5வை முன்னிலைப் படுத்தி வருகிறது.
அன்றாடம் கோடிக்கணக்கான பார்வைகளைப் பெறும் ஃபேஸ்புக், டிவிட்டர், கூகிள் இணையப் பக்கங்கள் HTML5ல் உருவாக்கப் பட்டவையே. இந்தத் தளங்களின் view page source பார்த்தீகளேயானால் என்ற முதல்வரி இருப்பதைக் காணலாம். இது HTML5 பதிப்பு பயன்படுத்தப் பட்டிருப்பதைக் குறிக்கிறது.
HTML5ன் அசுர வளர்ச்சிக்கான மற்றொரு முக்கியமான காரணம் மொபைல் இணைய இணைப்புகள். மொபைல் இணைய பக்கங்களை உருவாக்க HTML5 மிகச்சிறந்த தீர்வாகும்.
எடுத்துக்காட்டிற்கு www.facebook.com கணினிகளுக்கு ஏற்பதாகவும், m.facebook.com மொபைலுக்குஏற்பதாகவும் வடிவமைக்கப் பட்டிருப்பதைக் காணுங்கள். மொபைல் இணைய பக்கங்களுக்கு மட்டும் என்றில்லாமல், மொபைல் மென்பொருள் உருவாக்கத்திலும் HTML5 சக்கை போடு போடுகிறது. ஐபோனுக்கு அப்ஜெக்டிவ் சி, ஆண்ட்ராய்டுக்கு ஜாவா, விண்டோஸ் மொபைலுக்கு சி#.நெட் என வெவ்வேறு புரோகிராமிங் மொழியை பயன்படுத்துவதைக் காட்டிலும், இவ்வனைத்து மொபைல்களிலும் இயங்கும் HTML5, ஜாவாஸ்கிரிப்ட் மற்றும் CSS மூலம் மொபைல் மென்பொருட்களை உருவாக்க, மென்பொருள் நிறுவனங்கள் ஆர்வம் காட்டி வருகின்றன.தாமதிக்காமல் HTML5 கற்றுக் கொள்ளுங்கள். நீங்கள் படிக்கிறீர்களோ இல்லையோ, உங்கள் அன்றாட இணைய உலகில் HTML5 பின்னிப் பிணைந்திருப்பதை உணர்ந்திருங்கள்.
பி.கு: இக்கட்டுரை கம்ப்யூட்டர் உலகம் ஏப்ரல் 2012 இதழில் வெளிவந்துள்ளது.
எடுத்துக்காட்டிற்கு www.facebook.com கணினிகளுக்கு ஏற்பதாகவும், m.facebook.com மொபைலுக்குஏற்பதாகவும் வடிவமைக்கப் பட்டிருப்பதைக் காணுங்கள். மொபைல் இணைய பக்கங்களுக்கு மட்டும் என்றில்லாமல், மொபைல் மென்பொருள் உருவாக்கத்திலும் HTML5 சக்கை போடு போடுகிறது. ஐபோனுக்கு அப்ஜெக்டிவ் சி, ஆண்ட்ராய்டுக்கு ஜாவா, விண்டோஸ் மொபைலுக்கு சி#.நெட் என வெவ்வேறு புரோகிராமிங் மொழியை பயன்படுத்துவதைக் காட்டிலும், இவ்வனைத்து மொபைல்களிலும் இயங்கும் HTML5, ஜாவாஸ்கிரிப்ட் மற்றும் CSS மூலம் மொபைல் மென்பொருட்களை உருவாக்க, மென்பொருள் நிறுவனங்கள் ஆர்வம் காட்டி வருகின்றன.தாமதிக்காமல் HTML5 கற்றுக் கொள்ளுங்கள். நீங்கள் படிக்கிறீர்களோ இல்லையோ, உங்கள் அன்றாட இணைய உலகில் HTML5 பின்னிப் பிணைந்திருப்பதை உணர்ந்திருங்கள்.
பி.கு: இக்கட்டுரை கம்ப்யூட்டர் உலகம் ஏப்ரல் 2012 இதழில் வெளிவந்துள்ளது.
APRIL 02, 2012
மொபைல் டெவலப்பர்களின் தேவை அதிகரிக்கிறது
சென்ற வருட ஸ்மார்ட் போன்களின் விற்பனை எண்ணிக்கை (487.7 மில்லியன்) ஒட்டுமொத்த பெர்சனல் கம்ப்யூட்டர்கள், லேப்டாப்கள் மற்றும் நெட்புக்குகள் (414.6 மில்லியன்) விற்பனையை மிஞ்சி விட்டதாக ஒரு ஆய்வு தெரிவிக்கிறது. தகவல் தொழில்நுட்பத் துறையின் போக்கினை கோடிட்டுக் காட்டும் கார்ட்னர், ஐ.டி.சி, கனாலிசிஸ் போன்ற ஆய்வறிக்கை நிறுவனங்கள் வெளியிடும் மொபைல் தொழில்நுட்பத்தின் அசுர வளர்ச்சி பற்றிய தகவல்கள் பிரமிப்பூட்டுவையாக இருக்கிறது.
விலை அதிகம் உள்ள ஆப்பிள் 4S, 3GS மொபைல்களின் விற்பனை முந்தைய ஆண்டு விற்பனை சாதனைகளையெல்லாம் முறியடித்து விட்டது. ஆண்ட்ராய்ட் இயக்கச் சூழலில் வரும் சாம்சங் மொபைல் போன்கள், டேப்லட்களின் விற்பனை விகிதமும் ஏறுமுகமாகவே இருக்கிறது. இதில்லாமல் சோனி, மோட்டோரோலா, எல்.ஜி, எச்.டி.சி, ஏசர், விண்டோஸ் மொபைல் எனப் பிரபல தயாரிப்புகளுக்கும் பஞ்சமே இல்லை.
குறைந்தபட்ச விலை கொண்ட மொபைலும் பேசுவதற்காக மட்டுமே வாங்கப்படுவதில்லை என்பதை அறிவோம். கேமரா, எம்.பி3 போன்ற வசதிகள் அடிப்படைத் தேவையாகிவிட்ட நிலையில் டச் ஸ்கிரீன் போன்ற வசதிகள் உங்களுக்கு முற்றிலும் ஒரு புதிய அனுபவத்தைத் தரும். முப்பதாயிரத்தில் இருந்துதான் தொடக்க விலையே என்ற நிலை போய் மூவாயிரத்திற்குக் கூட ஸ்மார்ட் போன்கள் கிடைக்கின்றது. இலவச மொபைல் இயக்கச் சூழலான ஆண்ட்ராய்ட் வந்தபிறகு அதிநவீன வசதிகள் கொண்ட மொபைல் சாதனங்கள் சாமானியர்களும் அணுகும்படியாக உள்ளது.
மொபைல் வழியான இணைய தேடல்கள், ஃபேஸ்புக், டிவிட்டர் போன்ற சமூக வலைபின்னல் உலாக்கள் டெஸ்க்டாப் கணினிகள் வழியே அனுகும் இணைய பயன்பாடுகளை மிஞ்சும் வண்ணம் இருக்கிறது. வங்கிக் கணக்கை கையாள்வது முதல் இணைய முன்பதிவு வரை ஒட்டுமொத்த டிஜிட்டல் உலகமும் உள்ளங்கையில் அடங்கி விடுகிறது. ஸ்மார்ட் பொன்களின் விலை குறையும்போது இவற்றின் பயன்பாட்டுச் சதவிகிதம் இன்னும் ஏறுமுகத்தில் இருக்கும். ஒரு துறை வளரும்போது அந்தத் துறையில் பணியாற்ற அதிக ஆட்கள் தேவைப்படுவது இயற்கை நியதி. மொபைல் மென்பொருட்களை உருவாக்கும் திறனுள்ள வல்லுனர்களின் தேவை மின்னல் வேகத்தில் எகிறிக் கொண்டே போகிறது. ஐபோன், ஆண்ட்ராய்ட் போன்ற நவீன மொபைல்களுக்கு மென்பொருள் எழுதும் டெவலப்பர்களின் தேவையில் பெரியளவு தட்டுப்பாடு நிலவுகிறது.
மொபைல் சாதனங்களுக்கு மென்பொருள் உருவாக்க முற்றிலும் மாறுப்பட்ட அணுகும் முறை தேவைப்படுகிறது. டெஸ்க்டாப் கணினியில் இருப்பது போன்ற நினைவகமோ (memory), செயலியோ (processor) மொபைல் சாதனத்தில் இருக்காது. நீண்ட நேரம் மின்கலத்தில் (battery) சக்தி இருக்க தேவைக்கு மிஞ்சி எந்த வளங்களையும் பயன்படுத்தாத வண்ணம் மொபைலுக்கான மென்பொருளை வடிவமைக்க வேண்டும். இவற்றையெல்லாம் நம் பாடதிட்டதில் படிப்பதற்குள் இலட்சக்கணக்கான மென்பொருள் பொறியாளர்கள் இந்த தொழில்நுட்பங்களில் பணியாற்றிக் கொண்டிருப்பார்கள் என்பதை அறிய வேண்டும். அதற்குள் தற்போதைய இந்த வாய்ப்பை பயன்படுத்திக் கொண்டு பாடத்திட்டதைத் தாண்டி படிப்பவர்களுக்கு பிரகாசமான எதிர்காலம் இருக்கிறது.
பி.கு: இக்கட்டுரை கம்ப்யூட்டர் உலகம் மார்ச் 2012 இதழில் வெளிவந்துள்ளது. இதுவே ஒரு மாத இதழில் எழுதிய எனது முதல் கட்டுரை. இக்கட்டுரையை வெளியிட்டு ஊக்கப்படுத்திய கம்ப்யூட்டர் உலகம் ஆசிரியருக்கு நன்றி தெரிவித்துக் கொள்கிறேன்.
MARCH 29, 2012
தமிழ் தொழில்நுட்ப பதிவுகளுக்கான லீப்ஸ்டர் விருது
என்னுடைய தளத்திற்கு அவிழ்மடல் (ஆளுங்க) அருண் அவர்கள் லீப்ஸ்டர் ப்ளாக் விருது அளித்துள்ளார். சத்தியமா இந்தப் பெயர் கொண்ட விருதை இதற்கு முன்னர் நான் கேள்விப்பட்டது கூட கிடையாது. மேலதிக விவரங்களை இந்தhttp://www.aalunga.in/2012/02/liebester-blog.html சுட்டியில் காணவும்.
- "Liebester" என்பது ஒரு ஜெர்மன் சொல். அதற்கு "பிடித்தமான" என்று பொருள்
- இது பதிவர்களால் பதிவர்களுக்கு வழங்கப்படும் ஒரு விருது.
- இந்த விருது 200க்கும் குறைவான வாசகர்களைக் கொண்ட வலைப்பூக்களுக்கு வழங்கப்படுகிறது.
- விருதின் நோக்கம் புதிதாய் எழுதும் பதிவர்களின் ஆர்வத்தை ஊக்குவிப்பதே.
- விருது பெறுபவர் தனக்கு விருது அளித்தவருக்கு (அவரது தளத்திற்கு இணைப்பு கொடுப்பதன் மூலம்) நன்றி தெரிவிக்க வேண்டும்
- விருதினை ஏற்றதன் அறிகுறியாக தன் வலையில் விருதைப் பொறிக்க வேண்டும்
- தான் படித்து ரசிக்கும் ஐந்து புதிய பதிவுகளை அடையாளம் காண வேண்டும் (வலைப்பூக்களுக்கு 200 க்கும் குறைவான வாசகர்கள் (Subscribers) இருக்க வேண்டும்)
- தான் தேர்வு செய்த பதிவுகளுக்கு விருதினைப் பகிர்ந்து அளிக்க வேண்டும்.
- விருது பெறுபவர்களை ஒரு பதிவின் மூலம் அறிவித்திடல் வேண்டும்.
- விருது அளிக்கப்பட்டவர்களுக்கு (கருத்திடல் மூலம்) அறிவிக்க வேண்டும்
தமிழ்CPU வழங்கும் லிப்ஸ்டர் பிளாக் (Liebster Blog) விருதினைப் பெறும் தொழில்நுட்பப் பதிவர்கள்:
த. வசந்தகுமார் பண்ருட்டி
பெரியார் மணியம்மை பல்கலைக்கழக மாணவர்
கணினியில் இணைய இணைப்பு அமைப்பதற்கான முதல்கட்ட பணிகள் சற்று சிக்கலானவைதான். நம்மில் பெரும்பாலானோர் இணைய இணைப்பு சேவை வழங்கும் நிறுவனத்தைச் சேர்ந்த தொழில்நுட்ப வல்லுனரையே நம்பிக் கொண்டிருப்போம். உபுண்டு லினக்சில் டாட்டா ஃபோட்டான் இணைப்பை அமைப்பதற்கான இந்தப் பதிவு தமிழின் சிறந்த தொழில்நுட்ப பதிவுகளுள் ஒன்று.
http://vasanthlimax.blogspot.in/2011/08/tata-photon-whiz-internet-connect.html
D. சரவணன் குன்றக்குடி
பெரியார் மணியம்மை பல்கலைக்கழக மாணவர்
இவரது சுயவிவரக் குறிப்பு கண்டதும் எனது முதல் ஆச்சர்யம், இவர் கட்டிடவியல் (Civil engineering) மாணவர். கணினி மேல், குறிப்பாக லினக்ஸ் மீது இவர் கொண்ட ஈடுபாடு வியப்புக்கும் பாராட்டுதலுக்கும் உரியது. சிறந்த கணினித்துறை மாணவனுக்கு இவர் ஓர் எடுத்துக்காட்டு என்றால் அது மிகையாகாது.
http://gnometamil.blogspot.in/2011/03/how-to-restore-default-gnome-desktop.html
இரா. கதிர்வேல் பேராவூரணி
பெரியார் மணியம்மை பல்கலைக்கழக மாணவர்
இவரைப் பற்றி நான் சொல்வதைவிட இவரது சுயவிவரக் குறிப்பு நன்கு தெளிவு படுத்தும். தமிழ் ஆர்வலர், திறமூல மென்பொருள் ஆர்வலர், சமூக நலன் விரும்பி எனப் பலப் பரிமாணங்களில் அடையாளப் படுத்தலாம். இவர் ஆசிரியராக வாய்க்கப் பெற்றால் மாணவர்களுக்கு வரம்தான்.
http://gnutamil.blogspot.in/2011/10/blog-post.html
பா. மணிகண்டன் காரைக்குடி
பெரியார் மணியம்மை பல்கலைக்கழக மாணவர்
லினக்ஸை கற்றுக்கொண்டிருக்கும் மாணவர் என தன்னடக்கத்துடன் தன்னை விவரிக்கும் இவர் ஒரு சிறந்த லினக்ஸ் ஆசிரியர் எனக் கூறலாம். ஜாவா மொழியில் நிரல் எழுத உதவும் எக்லிபிஸ் மென்பொருள் குறித்த எனது பதிவு தனக்கும் தன் நண்பர்களும் பயன் பட்டதாகக் கூறியிருந்தார். அருமையான பதிவு, பகிர்வுக்கு நன்றி என்கிற சம்பிரதாய பின்னூட்டங்கள் இல்லாமல், ஏதோ புதிதாய் ஒன்றை கற்றுக் கொண்டதன் மகிழ்ச்சி இவரது பின்னூட்டத்திலும் தன் நண்பர் கதிர்வேல் பின்னூட்டத்திலும் உணர முடிந்தது. நான் ஒரு பகுதிநேரப் பதிவராய் இருப்பதில் பெருமிதம் கொள்ள வைத்த இவர்கள் என்றும் என் நினைவிலும், அன்பிலும் உள்ளவர்கள்.
http://kaniniariviyal.blogspot.in/2010/04/blog-post_94.html
R. அருள்மொழி திருவண்ணாமலை
ஆசிரியர் / விரிவுரையாளர்
ஒரு சிறந்த ஆசிரியர் இல்லாமல் சிறந்த மாணவர்கள் உருவாகுவதில்லை. மேலே குறிப்பிட்டது போன்ற பல சிறந்த மாணவர்களை உருவாக்கும், வணக்கத்திற்கும் நன்றிக்கும் உரிய ஆசிரியர். உபுண்டு லினக்ஸுக்கெனவே தமிழில் தனித்துவ வலைப்பதிவு எழுதி வருவது சிறப்பு.
http://ubuntuintamil.blogspot.in/2012/01/iso.html
FEBRUARY 10, 2012
XML ஏன்? எதற்கு?
XML, Extensible Markup Languageன் சுருக்கம். இது என்ன ஒரு புரோகிராமிங் மொழியா? இதனால் என்ன பயன்? இதைக் கற்பதால் பயன் உண்டா? போன்ற கேள்விகளுக்கு இப்பதிவில் விடை காண முயற்சிப்போம். xml தகவல்களை விவரிக்கப் பயன்படும் ஒரு மொழி. இது புரொகிராமிங் மொழி அல்ல. நாம் தரும் கட்டளைகளை இயக்குவது புரோகிராமிங் மொழி. எடுத்துகாட்டிற்கு பத்து முறை இதை அச்சிடு ( for(i=0;i<10;i++) print(i) ), அதைப் பெருக்கு எனக் கட்டளைகள் தருவது புரொகிராமிங் மொழியின் வேலை. இது போன்ற கட்டளைகளை இயக்கும் வேலைகளுக்காக xml உருவாக்கப் படவில்லை. ”ந:6, விவேகானந்தர் தெரு, துபாய் மெயின் ரோடு, துபாய்” என்பது ஒரு முகவரியைக் குறிப்பதாக கீழ்க்கண்டவாறு xmlலில் குறிப்பிடலாம்.
<?xml version="1.0" encoding="UTF-8"?> <tamilcpu-article> <topic pub_date="10-2-2021">XML என்றால் என்ன?</topic> <example> <address> <street door_no="6">விவேகானந்தர் தெரு</street> <city>துபாய்</city> </address> </example> <example> <dummy></dummy> </example> <example> <dummy2 /> <!-- xml comment --> </example> </tamilcpu-article>மேலே எடுத்தாண்டுள்ள எடுத்துக்காட்டை நன்கு கவனிக்கும் போது ஒரு உண்மை புலப்படும். for, while, system, out, main போன்ற பழக்கப்பட்ட வார்த்தைகள் இல்லாமல் என்னன்னமோ இருப்பதைக் காணலாம். xml குறிப்பிட்ட கட்டளை வார்த்தைகளுள் சுருங்கிவிடும் மொழி அல்ல. xml நமக்கு ஏற்றார்போல் விரிவடையும் தன்மை கொண்டது (extensible).என்ன எழுதவேண்டும் என்பதை விட, எவ்வாறு எழுத வேண்டும் என்பதற்கு xml அதிக முக்கியத்துவம் கொடுக்கிறது. <topic> என்றொரு tag திறந்திருந்தால் அதன் பெயரிலேயே </topic> மூட வேண்டும் (markup). எந்த வரிசையில் ஒரு tagஐ திறந்தோமோ, அந்த வரிசையிலேயே மூட வேண்டும் (structured).
xmlஐ meta language என்றழைக்கின்றனர். மெட்டா மொழியானது மற்றோரு மொழியை விவரிக்கும். தகவல்களை விவரிக்கும் (describing information) இன்னொரு மொழியை xmlயைக் கொண்டு உருவாக்கலாம். வெவ்வேறு பணிச்சூழலில் உள்ள மென்பொருட்கள், இணைய தளங்கள் தங்களுக்குள் தகவல்களைப் பரிமாற xml எனும் பொதுவான மொழியைப் பயன்படுத்துகிறது. xml என்றாலே தகவல் பரிமாற்றத்திற்கான வரப் பிரசாதம் என்பதை நினைவில் கொள்க.
HTMLல் இருந்து எவ்வாறு வேறுபடுகிறது?
HTML, xml இரண்டுமே SGML என்ற meta மொழியிலிருந்து உருவானவை. இரண்டிற்கும் ஒரே தாய்மொழி, ஆனாலும் html ஒரு தகவலை பயனருக்கு எவ்வாறு காட்ட வேண்டும் என்பதை மையமாய்க் கொண்டது. xml ஒரு தகவலைப் (data) பற்றிய கூடுதல் தகவல் (meta information) தருகிறது.
xmlலின் பயன்பாடுகள்
- configuration files
- websites, webservices, search engines
- business tools and etc.,
நம் வலைப்பூவிலேயே எங்கெல்லாம் xml பயன்படுத்தப் படுகிறதெனப் பாருங்கள்
- முழு ப்ளாக்கையும் பேக்கப் எடுத்தால் அது ஒரு xml டாக்குமெண்ட்டாக சேமிக்கப் படும்.
- நமது வலைப்பூவின் வடிவமைப்பு xmlலினால் ஆனது
- மின்னஞ்சலில் தொடரும் வசதி (email subscription)
- பிற வலைப்பூக்களின் செய்தியோடை (rss feeds)
ஜாவா, சி, சி++, சி#, ஜாவாஸ்கிரிப்ட், பேர்ல், பைத்தான், பி.எச்.பி, ரூபி போன்ற அனைத்து முன்னனி புரொகிராமிங் மொழியிலும் xmlலை சிறப்பாக கையாள முடியும். xmlலில் எழுத சாதாரண டெக்ஸ்ட் எடிட்டரே (notepad, vim, emacs, gedit etc.,) போதுமானது. இவற்றில் உருவாக்கிய xmlலை பிரவுசரில் (IE, Firefox, Chrome..,) இயக்கிப் பார்க்கவும்.
JANUARY 22, 2012
பைத்தான் - உன்னதமான புரோகிராமிங் மொழி
ஒரு ப்ராஜெக்ட்டில் பைத்தான் (Python) மொழி பயன்படுத்த வாய்ப்பு கிடைத்தது. பைத்தான் மொழியில் ஜாங்கோ (Django) தொகுப்பு (framework) கொண்டு ஒரு இணைய பயன்பாட்டு மென்பொருள் (web application) உருவாக்கினோம். அப்போதே அதைப் பற்றி எழுத நினைத்திருந்தேன். நாளை எழுதலாம், நன்கு தெரிந்து கொண்டு எழுதலாம், முதலில் ஆகுற வேலையைப் பாக்கலாம் எனக் கொஞ்சம் கொஞ்சமாக தள்ளிப் போட்டு காலம் கடந்து விட்டது. பைத்தான் மொழியில் பெற்ற அனுபவம் எவர்க்கேனும் பயன்படட்டுமே என்பதற்காக இப்பதிவு.
பைத்தான் ஒரு அருமையான புரோகிராமிங் மொழி என்பதை படித்துத் தெரிந்து கொண்டதை விட அதை பயன்படுத்திப் பார்க்கையில் அது எவ்வளவு உண்மை என விளங்கியது. பைத்தான் ஒரு ஓப்பன் சோர்ஸ் நிரல் மொழியாகும். எனவே உலகத் தரமிக்க இந்த மொழியை எந்தக் கட்டணமும் இன்றியே பயன்படுத்தலாம். வணிக நோக்கிலான மென்பொருள் உருவாக்கத்தில் கூட இலவசமாய்ப் பயன்படுத்திக் கொள்ள முடியும். பைத்தான் எந்தஒரு தனியார் மென்பொருள் நிறுவனத்திற்கும் சொந்தமானதல்ல. பைத்தான் மென்பொருள் நிறுவனம் (Python Software Foundation) இதன் உரிமத்தை நிர்வகித்து வருகிறது.
பைத்தான் மொழி கொண்டு பல்வேறு பயன்பாட்டுக்கான மென்பொருட்களை உருவாக்க முடியும். பைத்தானின் கட்டளைகள் மிக மிக எளிமையானவை. பிறர் எழுதிய புரோகிராம்களையும் பார்த்தே விளங்கிக் கொள்ள முடியும். இது ஒரு (Object Oriented Programming) பொருள் நோக்கு நிரலாக்க மொழி. ஆகவே எவ்வளவு பெரிய ப்ராஜெக்ட்களையும் சிறப்பாக கையாள இயலும். பைத்தானுடன் தன்னியல்பாகவே இணைந்து வரும் தொகுப்பு நிரல்கள் (standard libraries) ஒரு புரொகிராமரின் அனைத்து தேவைகளையும் நிறைவேற்றுவதாக இருக்கிறது. இதோடு மட்டுமல்லாமல் third party libraries என்றழைக்கப்படும் இதர புரோகிராம்களுக்கும் குறைவில்லை. விண்டோஸ், லினக்ஸ், யுனிக்ஸ், மேக் os என அனைத்து இயக்கச் சூழல்களிலும் பைத்தான் திறம்பட இயங்கும்.
சி, சி++, சி#, ஜாவா, பி.எச்.பி, பேர்ல் போன்ற அனைத்து நிரல் மொழிகளுடனும் ஒத்திசைவாக இயங்கும்.
மொபைல் போன்களில் கூட பைத்தான் இயங்குமென்றால் பார்த்துக் கொள்ளுங்கள்.
பைத்தானில் எழுதப்பட்ட இணையதளங்கள், டெஸ்க்டாப் மென்பொருட்கள், விளையாட்டுகள், மொபைல் அப்ளிகேஷன்கள் ஆயிரக்கணக்கில் இருக்கின்றன.
குறிப்பாக அதிகவேகம் தேவைப்படும் கிராபிக்ஸ் மென்பொருட்களிலும் பைத்தான் சிறப்பாக செயல்பட்டு வருகிறது. பைத்தானை புரோகிராமிங் மொழியாக மட்டும் இல்லாமல், ஒரு மென்பொருளின் கட்டளைகளை இயக்கும் ஸ்கிரிப்டிங் மொழியாகவும் பயன்படுத்தப் படுகிறது. Gimp, Blender, 3D Studio Max, Maya, Autocad போன்ற அனைத்து பிரபல கிராபிக்ஸ் மென்பொருட்களிலும் பைத்தான் கொண்டு ஸ்கிரிப்ட்கள் (மேக்ரோஸ் போல) எழுத முடியும்.
பைத்தானை அதிக அளவில் பயன்படுத்தும் நிறுவனங்களில் கூகிளை விட ஒரு சிறந்த எடுத்துகாட்டை தந்துவிட முடியுமா எனத் தெரியவில்லை. நம் கணினி பயன்பாட்டின் அங்கமாகிவிட்ட கூகிள் தேடுபொறி (Google Search engine), கூகிள் வரைபடங்கள் (Google Maps)கூகிள் குழுமம் (Google groups), வீடியோ பகிர்வு தளமான Youtube அனைத்தும் பைத்தான் மொழியில் உருவாக்கப் பட்டவையே. நாசா (NASA), யாஹூ (Yahoo) போன்ற உலகளவில் மிகப்பெரிய நிறுவனங்களிலும் பைத்தான் பயன்படுத்தப் படுகிறது.
விசுவல் பேசிக் போன்ற காலம் கடந்த புரொகிராமிங் மொழிகளை பாடத்திட்டதிலிருந்து நீக்கிவிட்டு, நவீன காலத்திற்கேற்ப திறமூல (open source) தீர்வான பைத்தான் மொழியை பாடத்திட்டதில் சேர்த்திட வேண்டும். கல்லூரி ப்ராஜெக்ட்களை பைத்தான் போன்ற மொழிகளில் செய்ய மாணவர்களை ஊக்கப் படுத்த வேண்டும். கணினித் துறையில் இருக்கும் மாணவர்கள் கட்டாயம் பைத்தான் படிக்கும் நிலை வரும். அந்த நாள் வெகு தொலைவில் இல்லை.
இம்மொழியை சுவைக்க நினைக்கும் அனைவருக்கும் என் வாழ்த்துகள்.
-- தொடரும்
JANUARY 13, 2012
ஆண்ட்ராய்ட் கத்துக்கப் போறீங்களா? - பாகம் 2
ஆண்ட்ராய்ட் சூழலை நம் கணினியில் நிறுவ ஆண்ட்ராய்ட் எஸ்.டி.கே துணை வேண்டும். கூகிளில் android sdk எனத் தேடினீர்கள் என்றால் முதல் சுட்டியிலேயே சரியான தளத்திற்கு சென்று விடலாம். http://developer.android.com/sdk/index.html பக்கத்தில் இருந்து உங்கள் இயக்கச் சூழலிற்கேற்ற (operating system) மென்பொருளைப் பதிவிறக்கவும்.
இந்த எஸ்.டி.கே உங்களது பல்வேறு ஆண்ட்ராய்ட் இயக்கச் சூழலை நிர்வகிக்கத்தான். இதை நிறுவினால் மட்டுமே உங்களால் ஆண்ட்ராய்ட் பயன்படுத்த இயலாது. உங்களுக்குத் தேவையான ஆண்ட்ராய்ட் இயக்கச் சூழலையும் நிறுவ வேண்டும். எப்படி விண்டோசில் 98, xp, vista, 7 என பல்வேறு பதிப்புகள் இருக்கிறதோ ஆண்ட்ராய்டிலும் 1.5, 1.6, 2, 2.1, 2.2, 3 போன்று பல்வேறு பதிப்புகள் இருக்கின்றது. ஆண்ட்ராய்ட் கற்றுக் கொள்ள இவை அனைத்தும் தேவையில்லை. புதிய பதிப்பை மட்டும் தற்போதைக்கு நிறுவாதீர்கள், ஏனெனில் அது மிக மிக வேகமாக (ரன் ஆவ இரண்டு நாள் ஆயிடும்.. பர்வாயில்லயா) இயங்குகிறது. ஆண்ட்ராய்ட் 2.2 (API Level 8) நிறுவிக் கொள்ளுங்கள்.
நீங்கள் நிறுவிய அடைவில் (installed folder) என்னென்ன இருக்கிறதென ஒரு நோட்டம் விட்டால் platforms என்றொரு அடைவைக் (folder) காணலாம். நீங்கள் நிறுவிய பல்வேறு ஆண்ட்ராய்ட் பதிப்புகளுக்கேற்ப தனித்தனி அடைவுகள் இங்கு இருக்கும். platforms folder ஆள் அரவமற்ற மொட்டைத் தெரு போல இருந்தால், ஆண்ட்ராய்ட் இயக்கச் சூழலையும் நிறுவ வேண்டுமென்பதை கவனத்தில் கொள்க.
பிறகு இன்னொரு சேதி, உங்கள் நண்பரது கணினியிலோ அல்லது கல்லூரி ஆய்வகத்திலோ அல்லது வேறு எங்கோ ஆண்ட்ராய்ட் நிறுவப்பட்டிருந்தால் உங்கள் கணினியில் பதிவிறக்கித்தான் நிறுவ வேண்டுமென்ற கட்டாயம் இல்லை. இணைய இணைப்பு இல்லாவிட்டாலும் ஆண்ட்ராய்ட் முழுதாக நிறுவிக் கொள்ளலாம். ஏற்கனவே நிறுவப்பட்டிருக்கும் அடைவை நகலெடுத்து (copy through pen drive or dvd) உங்கள் கணினியில் நிறுவதற்கு தேவையின்றியே பயன்படுத்தலாம்.
அனைவருக்கும் இனிய பொங்கல் நல்வாழ்த்துகள்
---தொடரும்
JANUARY 07, 2012
தொழில்நுட்பப் பதிவுகளைத் தொகுக்கும் மின்னிதழ்கள்
பொதுவாக தொழில்நுட்பம் அல்லாத பதிவுகளை நான் அதிகம் படிப்பதில்லை. பரபரப்பாய் இயங்கும் உலகில் இதற்கென ஒதுக்கும் சில மணித்துளிகளை என் துறை சார்ந்த பதிவுகளைப் படிப்பதற்கே அதிகம் செலவிடுகிறேன். அவ்வப்போது ஆங்காங்கே ஓரிரு தொழில்நுட்பமல்லாத பதிவுகளைப் படித்ததுண்டு. அறிவுசார் பகிர்தல்களை விட கூச்சல், சண்டை சச்சரவுகள் அதிகம் தென்படுகிறது. தனிநபர் தாக்கல்கள், சாதி மத மோதல்கள், முகத்தை சுளிக்க வைக்கும் பின்னூட்டங்கள், அனானிகளின் அட்டூழியங்கள் என நல்ல கனியில் புழு பூத்தது போல் சிலர் விஷமத்தனங்களை மேற்கொள்கின்றனர்.
பொது விடயங்களை எழுதும் தமிழ் வலைதளங்களுக்கு இருக்கும் ஆதரவைப் போல தொழில்நுட்ப பதிவுகளுக்கு இருப்பதில்லை. ஒன்று தொழில்நுட்ப பதிவுகள் சென்றடையும் பயனர்கள் மிகக் குறைவு, மற்றொன்று அதிகம் படித்த மக்களுக்கு (தாய் மொழியே தெரியாதது போல நடிக்கும் நன்மக்கள்) தாய்மொழியில் படிப்பதில் ஆர்வமில்லை. படிப்பதற்கே அதிக ஆளில்லாத போது தொழில்நுட்ப பதிவுகளை எழுதுவது ஆங்காங்கே அத்தி பூத்தாற் போலத்தான் இருக்கும். தொழில்நுட்பப் பதிவுகள் யாருக்கு சேர வேண்டுமோ (கிராமப்புற மாணவர்கள்) அவர்களுக்கு கணினி, இணைய இணைப்பு போன்ற வசதிகள் எளிதாய் அணுகக் கூடிய தூரத்தில் இல்லை.
எழுதும் சில தொழில்நுட்ப பதிவர்களும் தொழில்நுட்பம் அல்லாத பதிவுகளையும் சேர்த்து கதம்பமாய் எழுதுவதினால் எங்கு எது கிடைக்கும் எனத் தெரியாமல் போய் விடுகிறது. இந்நிலை மாற ஆங்காங்கு சிதறிக் கிடக்கும் நல்ல பதிவுகளைத் தொகுத்திடல் வேண்டும். அச்சுப் பிரதியாக வெளியிடுவது அதிக செலவு பிடிக்கக் கூடிய ஒன்று.
போதிய விளம்பரதாரர் இல்லாததால் மூடப்பட்ட சிறு இதழ்கள் ஏராளம் உண்டு. இதற்கு எடுத்துக்காட்டாக பதிவர்களுக்கான தென்றல் மாத இதழ் கைவிடப்பட்ட செய்தி வருத்தமளிக்கிறது.
புத்தாண்டு மற்றும் பொங்கல் பரிசாக தமிழில் இருக்கும் சில தொழில்நுட்ப பதிவுகளைத் தொகுத்து இரு மின்னிதழ்கள் வெளிவருகின்றது.
ஒன்று கற்போம் மின்னிதழ், மற்றொன்று கணியம் மின்னிதழ்.
இந்த மாத இதழ்களை கீழ்க்காணும் சுட்டியில் பதிவிறக்கிக் கொள்ளவும்
Jan 2012 கற்போம் மின்னிதழ்
Jan 2012 கணியம் மின்னிதழ்
பொது விடயங்களை எழுதும் தமிழ் வலைதளங்களுக்கு இருக்கும் ஆதரவைப் போல தொழில்நுட்ப பதிவுகளுக்கு இருப்பதில்லை. ஒன்று தொழில்நுட்ப பதிவுகள் சென்றடையும் பயனர்கள் மிகக் குறைவு, மற்றொன்று அதிகம் படித்த மக்களுக்கு (தாய் மொழியே தெரியாதது போல நடிக்கும் நன்மக்கள்) தாய்மொழியில் படிப்பதில் ஆர்வமில்லை. படிப்பதற்கே அதிக ஆளில்லாத போது தொழில்நுட்ப பதிவுகளை எழுதுவது ஆங்காங்கே அத்தி பூத்தாற் போலத்தான் இருக்கும். தொழில்நுட்பப் பதிவுகள் யாருக்கு சேர வேண்டுமோ (கிராமப்புற மாணவர்கள்) அவர்களுக்கு கணினி, இணைய இணைப்பு போன்ற வசதிகள் எளிதாய் அணுகக் கூடிய தூரத்தில் இல்லை.
எழுதும் சில தொழில்நுட்ப பதிவர்களும் தொழில்நுட்பம் அல்லாத பதிவுகளையும் சேர்த்து கதம்பமாய் எழுதுவதினால் எங்கு எது கிடைக்கும் எனத் தெரியாமல் போய் விடுகிறது. இந்நிலை மாற ஆங்காங்கு சிதறிக் கிடக்கும் நல்ல பதிவுகளைத் தொகுத்திடல் வேண்டும். அச்சுப் பிரதியாக வெளியிடுவது அதிக செலவு பிடிக்கக் கூடிய ஒன்று.
போதிய விளம்பரதாரர் இல்லாததால் மூடப்பட்ட சிறு இதழ்கள் ஏராளம் உண்டு. இதற்கு எடுத்துக்காட்டாக பதிவர்களுக்கான தென்றல் மாத இதழ் கைவிடப்பட்ட செய்தி வருத்தமளிக்கிறது.
புத்தாண்டு மற்றும் பொங்கல் பரிசாக தமிழில் இருக்கும் சில தொழில்நுட்ப பதிவுகளைத் தொகுத்து இரு மின்னிதழ்கள் வெளிவருகின்றது.
ஒன்று கற்போம் மின்னிதழ், மற்றொன்று கணியம் மின்னிதழ்.
இந்த மாத இதழ்களை கீழ்க்காணும் சுட்டியில் பதிவிறக்கிக் கொள்ளவும்
Jan 2012 கற்போம் மின்னிதழ்
Jan 2012 கணியம் மின்னிதழ்
JANUARY 05, 2012
ஆண்ட்ராய்ட் கத்துக்கப் போறீங்களா?
நாளுக்கு நாள் மொபைல் சாதனங்களின் எண்ணிக்கை பெருகிக் கொண்டே வருகிறது. வங்கிக் கணக்கை கையாள்வது முதல் திரைப்பட முன்பதிவு வரை விரல்நுனியில் நம் தேவைகளை நிறைவேற்றிக் கொள்கிறோம். முப்பதாயிரத்தில் இருந்துதான் தொடக்க விலையே என்ற நிலை போய் மூவாயிரத்திற்குக் கூட ஸ்மார்ட் போன்கள் கிடைக்கின்றது. இலவச மொபைல் இயக்கச் சூழலான ஆண்ட்ராய்ட் வந்தபிறகு அதிநவீன வசதிகள் கொண்ட மொபைல் சாதனங்கள் சாமானியர்களும் அணுகும்படியாக உள்ளது.

ஒரு துறை வளரும்போது அந்தத் துறையில் பணியாற்ற அதிக ஆட்கள் தேவைப்படுவது இயற்கை நியதி.
மொபைல் மென்பொருட்களை உருவாக்கும் திறனுள்ள வல்லுனர்களின் தேவை மின்னல் வேகத்தில் எகிறிக் கொண்டே போகிறது.
மொபைல் சாதனங்களுக்கு மென்பொருள் உருவாக்க முற்றிலும் மாறுப்பட்ட அணுகும் முறை தேவைப்படுகிறது. டெஸ்க்டாப் கணினியில் இருப்பது போன்ற நினைவகமோ (memory), செயலியோ (processor) மொபைல் சாதனத்தில் இருக்காது. நீண்ட நேரம் மின்கலத்தில் (battery) சக்தி இருக்க தேவைக்கு மிஞ்சி எந்த வளங்களையும் பயன்படுத்தாத வண்ணம் மொபைலுக்கான மென்பொருளை வடிவமைக்க வேண்டும். ஐபோன், ஆண்ட்ராய்ட், ஜாவா மொபைல் ஆகிய அனைத்திலும் மிகப்பெரிய தேவைகள் இருக்கின்றது. இதில் ஆண்ட்ராய்ட் பணிச்சூழலுக்கு மென்பொருள் உருவாக்க எங்கிருந்து தொடங்க வேண்டுமென இப்பதிவில் காண்போம்.
ஆண்ட்ராய்ட் கற்றுக்கொள்ள ஆசைப்படுவர்களுக்கு எழும் சில கேள்விகள்:
என்னுடைய ஆப்பரேட்டிங் சிஸ்டத்தை பயன்படுத்த முடியுமா?
ஆண்ட்ராய்ட் மென்பொருட்களை உருவாக்க லினக்ஸ், மேக் ஓஎஸ், விண்டோஸ் என எந்த இயக்கச் சூழலையும் பயன்படுத்தலாம்.
ஆண்ட்ராய்ட் மொபைல் அவசியம் இருக்க வேண்டுமா?
மொபைல் தேவையில்லை, எமுலேட்டர் மூலமாக உருவாக்கிக் கொள்ளலாம் (சில வகையான மென்பொருட்களைத் தவிர).
எந்தெந்த மென்பொருள் உருவாக்கக் கருவிகள் தேவைப்படும்? செலவு செய்ய வேண்டியிருக்குமா? (Development tools and its cost)
ஆண்ட்ராய்ட் எஸ்.டி.கே, ஜாவா உருவாக்க மென்பொருளான எக்லிப்ஸ் என இலவவச திறமூலத் தீர்வுகளையே (free & open source tools) பயன்படுத்திக் கொள்ளலாம்
என் கணினியில் உருவாக்கிய மென்பொருளை எளிதாக உண்மையான பொபைலில் நிறுவ முடியுமா?
தாராளமாக இயக்க முடியும். இது ஐபோன், ஐபேட் மென்பொருட்களில்தான் சாத்தியமில்லை. ஐபோன் மென்பொருள் உருவாக்கத்தில் பயன்படுத்தப் படுவது சிமுலேட்டர், இங்கு நாம் பயன்படுத்துவது எமுலேட்டர். எமுலேட்டர் மென்பொருளில் உண்மையான மொபைலில் எந்த கட்டளைகள் இயங்குகிறதோ அவை அப்படியே இயக்கப் படுகிறது.












































































0 comments:
Post a Comment