நவம்பர் 07, 2012

அறிந்து கொள்ளுங்கள் JSON

இப்பதிவு தகவல் பறிமாற்றத்தில் JSONன் பங்கு கட்டுரையின் தொடர்ச்சி.

ஜாவாஸ்கிரிப்ட்டில் நமக்கு வேண்டிய ஆப்ஜெக்டுகளை எளிதில் உருவாக்கலாம்.  சி++, ஜாவா, சி# போன்ற புரொகிராமிங் மொழிகளில் ஆப்ஜெக்டுகளை உருவாக்க பிரத்யேக classகளை எழுதவேண்டும்.  எடுத்துகாட்டிற்கு ஒரு பூனையைக் குறிக்கும் ஆப்ஜெக்ட்டை உருவாக்க Cat class எழுதப்படவேண்டும்.  ஜாவாஸ்கிரிப்ட்டில் classகள் கிடையாது.  ஒரு ஆப்ஜெக்ட்டை initialize செய்ய உதவும் constructor மெத்தட்களை நேரடியாகப் பயன்படுத்திக் கொள்ளலாம்.
function Cat(name,colour) {
   this.name = name;
   this.colour = colour;
}
var tom = new Cat('Tom','Gray Blue');
alert("Tom's colour is " + tom.colour);
Valid JSON code is a valid javascript code but the reverse is not true.  அதாவது JSON விதிமுறைப்படி எழுதப்பட்ட எந்தஒரு கட்டளை வரியும், சரியாக இயங்கக் கூடிய ஜாவாஸ்கிரிப்ட்டே.  ஆனால் அனைத்து ஜாவாஸ்கிரிப்ட் கட்டளைகளும் JSON எனச் சொல்லிவிட முடியாது.  இதிலிருந்து JSON என்பது ஒரு புரொகிராமிங் மொழி இல்லை என்பது தெளிவாகிறது.  இது தகவல் பறிமாற்றத்திற்கான ஒரு வரையறை (standard for data exchange) அவ்வளவுதான்.

முக்கியமாக நாம் தெரிந்து வைத்திருக்க வேண்டியது, ஜாவாஸ்கிரிப்ட்டில் array மற்றும் objectஐ எவ்வாறு கையாள்வது என்பதுதான்.  எல்லா JSON வடிவ தகவல்களும் ஜாவாஸ்கிரிப்ட் arrayவையும், ஜாவாஸ்கிரிப்ட் objectடையும் கொண்டே எழுதப் பட்டிருக்கும்.
array  - [] இரு அடைப்புக் குறிக்குள் எழுதவேண்டும்
    var fruits = [”மா”,”பலா”,”வாழை”] 
    var names  = ['rajkumar','nrs']
    var numbers= [32,442,442,332,44,223]
    var array_of_arrays = [['tom','jerry'],['poppeye','olive']]
array_of_arrays[o][1] --> ‘jerry' விடையைத் தரும். முதலாவது arrayவிலுள்ள இரண்டாவது உறுப்பினரைக் குறிக்கிறது.

object - {}     இரு code block (நிரல் தொகுப்பு) அடைப்புக் குறிக்குள் எழுதவேண்டும். name:value பண்புகளாக (property) அதன் உறுப்பினர்கள் இருக்கும்.
    var user= {'name' : 'rajkumar',
               'age':27,
               'interests':['education','technology','writing']
              }
    user variableக்கு assign செய்திருப்பது ஒரு ஆப்ஜெக்ட் என்பதை { } அடைப்புக் 
    குறிகள் குறிக்கின்றன.  

    user ஆப்ஜெக்டின் interests உறுப்பினர் ஒரு arrayவைக் குறிப்பதனால் arrayவை 
    எப்படி அணுகுவோமோ அப்படியே செய்து கொள்ளலாம்.

    alert('current selection is ' + user.interests[1]);  technology என்பதை 
    விடையாகத் தரும் 

எடுத்துகாட்டாக டிவிட்டர், கூகுள் தளத்திலிருந்து வெளிவரும் JSON தகவல் இதோ
 https://twitter.com/tamilcpu.json
   //var data = {"errors":[{"message":"Sorry, that page does not exist","code":34}]}
   $.get('https://twitter.com/tamilcpu.json', function(data) {
      console.log('error code '  + data.errors[0].code)
   });

https://www.googleapis.com/blogger/v2/blogs/tamilcpu/posts
 
var jsonresponse ={
                   "error": {
                        "errors": [
                                   {
                                     "domain": "usageLimits",
                                     "reason": "dailyLimitExceededUnreg",
                                     "message": "Daily Limit for Unauthenticated Use
                                                 Exceeded. Continued use requires 
                                                 signup.",
                                      "extendedHelp":                        
                                               "https://code.google.com/apis/console"
                                   }
                                 ],
                       "code": 403,
                       "message": "Daily Limit for Unauthenticated Use Exceeded. 
                                  Continued use requires signup."
                       }
                  }
console.log(jsonresponse.error.message)  -- > Daily Limit for Unauthenticated Use Exceeded. 
Continued use requires signup. என்பதை விடையாகத் தரும்.  

error ஆப்ஜெக்டுக்குள் இருக்கும் errors arrayவை அணுகுவதற்கு அதற்கான array indexசை 
குறிப்பிட வேண்டும்.

console.log(jsonresponse.error.errors[0].reason)

செப்டம்பர் 07, 2012

தகவல் பறிமாற்றத்தில் JSONன் பங்கு

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

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

இன்று நாம் வெவ்வேறு பிராசசர்கள், மாறுப்பட்ட ஆப்பரேட்டிங் சிஸ்டங்கள் என பலவகையான கணினிகளைப் பயன்படுத்தினாலும் மையச் செயலியின் கட்டமைப்பு (அட processor architecture தாம்ப்பா..) x86, i386, x64 என ஒரே குட்டையில் ஊறிய மட்டைகளாகப் பகுத்து விடலாம்.  அந்தக் காலத்தில் அப்படியல்ல.  பெரிய ஜாம்பவான்களாக இருந்த ஐ.பி.எம், சன் மைக்ரோசிஸ்டம், ஹனிவெல், ஆப்பிள் போன்ற ஒவ்வொரு நிறுவனத்திடமும் ஒவ்வொரு வகையான கணினி இருக்கும்.  இவை போதாதென்று இராணுவ ஆராய்ச்சிக் கூடங்கள், பல்கலைக் கழகங்கள் போன்ற நிறுவனங்களில் ஆங்காங்கே தனித்தனி தீவுகளாக வெவ்வேறு கணினிகள் இயங்கி வந்தன (alien vs predator போல).  அதில் ஒரு பணித்தளத்திற்கென (platform) பிரத்யேகமாக உருவாக்கப்படும் நிரல் (program) மற்றொன்றில் சத்தியமாக இயங்காது.  இதுவே ஜாவா போன்ற தொழில்நுட்பங்கள் அடைந்த மாபெரும் வெற்றிகளுக்குக் காரணம்.

ஒரு பணித்தளத்தில் சேமித்த டெக்ஸ்ட் கோப்புகள் (text files) வேறொரு பணித்தளத்திலும் சிக்கலின்றி படிக்க முடிவதற்குக் காரணம், குறியீட்டு முறைமைகள்.  ASCII, UTF8, UTF16 போன்றவை வெவ்வேறு குறியீட்டு முறைகள் (text encodings).  யுனிகோட் முறையில் இந்த தமிழ் எழுத்துகளை கணினியில் எழுதியிருக்காவிட்டால், நீங்கள் தற்போது ஒரு பழங்கால கல்வெட்டை வாசிப்பது போல உணரக் கூடும். 

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

வெவ்வேறு இணைய தளங்கள், வெப் சர்வீஸ்கள், மொபைல் மென்பொருடகள் தங்களுக்குள் தகவல்களைப் பரிமாறிக் கொள்ள JSON என்கிற வடிவத்தை, ஒரு முறையைக் கையாளுகின்றன.

http://ta.wikipedia.org/s/fxy

-தொடரும்

செப்டம்பர் 06, 2012

ஜாவா புரொகிராமிங் - தேவையானதை மட்டும் படிங்க பாஸ்

     கமாண்ட் ப்ராம்ப்ட் வழியாக உள்ளீடு வாங்குவதெல்லாம் கற்றுக்கொள்ளும்போதுடன் நின்றுவிடும்.  பெரிய பெரிய ப்ராஜெக்ட்களில் எல்லாம் ஒவ்வொரு உள்ளீட்டையும் டெர்மினலில் கொடுத்துக் கொண்டிருக்க முடியாது.  அங்கு எளிதான GUI (Graphical User Interface) பயனர் இடைமுகப்புக்கு முக்கியத்துவம் அளிக்கப்படும்.  ஒரு ஜாவா ப்ராஜெக்டில் பல வகைகளில் GUI வடிவமைக்க முடியும்.  Swing, SWT, GWT... போன்ற frameworkகளை கொண்டு ஜாவா டெஸ்க்டாப் அப்ளிகேஷன்களை உருவாக்கலாம்.  அதுவே ஜாவா வெப் ப்ராஜெக்டாக இருந்தால் இருக்கவே இருக்கிறது HTML.  JSP, Servelet போன்ற ஜாவா தொழில்நுட்பங்களை தீர்வுகள் அளிக்கவும் (business logic), CSS, HTML, Javascript போன்ற தொழில்நுட்பங்களை பயனர் இடைமுகப்பு வடிவமைக்கவும் பயன்படுத்தலாம்.  இன்று பெரும்பாலான மென்பொருள் நிறுவனங்களில் GUI வடிவமைப்பு முழுக்க முழுக்க வெப் பக்க வடிவமைப்பாகவே உருவாக்கப் படுகிறது.  இந்த முறையில் இருக்கும் பெரிய நன்மை, தீர்வுகள் வழங்கக்கூடிய மையப் பகுதியை (business logic) ஒரு குழுவும், பார்த்தவுடன் கண்ணைக் கவரும் இடைமுகப்பை வேறொரு வெப் டெவலப்பரும் தனித்தனியே அவரவர் தனித்திறமைகளைக் கொண்டு கச்சிதமாகவும் விரைந்தும் முடிக்க இயலும்.

வெப் பக்கங்களில் இருந்து இயங்கும் ஜாவா அப்ளெட்டுகள் (Applet) மெல்ல மெல்ல மறைந்து வருகிறது.  மென்பொருள் நிறுவனங்களில் டெஸ்க்டாப் மென்கலங்களை விட இணைய மென்கலங்களே (web application) அதிகம் உருவாக்கப் படுகிறது.  மேலும் J2ME, Android போன்ற மொபைல் ப்ளாட்பார்ம்களில் இடைமுகப்பு உருவாக்க அதிக வளங்கள் தேவைப்படும் Swing போன்ற பேக்கஜ்கள் இருக்கவே இருக்காது.  ஏனெனில் மொபைல் அப்ளிகேஷன் வடிவமைப்பைப் பொருத்தவரை அதன் இடைமுகப்பு வெப், டெஸ்க்டாப் இவற்றிலிருந்து முற்றிலும் வேறுபட்டது.  அங்கு எளிமைக்கும் வேகத்திற்குமே முக்கியத்துவம்.  மற்றபடி ஜாவா மொழியின் அம்சம் (classலிருந்து threads கள் வரை) அதேதான். இதனால் இவையனைத்தையும் கருத்தில் கொண்டு கன்சோல் இன்புட் முறைகள் (DataInputStream, BufferedReaderInputStream ...blah blah..), Appletகள் (தாரளமாக படிக்கத் தேவையில்லை... விதிவிலக்கு: தேர்வுகளுக்கு மட்டும்), swings (அவசியம் ஏற்பட்டாலே தவிர) போன்ற ஜாவா கருத்துருக்களை அதிக சிரத்தை எடுத்து படிக்கத் தேவையில்லை.  அதற்கு HTML5, jQuery போன்றவற்றைக் கற்றுக் கொள்ளுங்கள், அவசியம் பயன்படும்.  Core javaவில் நன்கு தெளிந்திருந்தாலே servlet, struts, spring... போன்ற எந்த ஜாவா தொழில்நுட்பமும் வசப்படும்.

- தொடரும்

ஆகஸ்ட் 21, 2012

IJEC பொறியியல் கல்லூரி பயிற்சிப் பட்டறை

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

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















மே 14, 2012

HTML பக்கங்களை அழகு படுத்தும் CSS

CSS, Cascading Style Sheetன் சுருக்கம். இணையதள வடிவமைப்பில் CSSன் பங்கு இன்றியமையாத ஒன்று.  CSS என்பது புரோகிராமிங் மொழியும் அல்ல அல்லது HTML போன்ற மார்க்கப் மொழியும் அல்ல.  CSS என்பது பக்க வடிவமைப்பிற்கான கட்டளைகளின் தொகுப்பு. கண்ணைக் கவரும் வகையில் உள்ள இணையதளங்களை CSS கட்டளைகளே அழகூட்டுகிறது. ஒரு இணையப் பக்கம் என எடுத்துக் கொண்டால் அதன் உள்ளடக்கம் (content) HTMLலில் எழுதப் பட்டிருக்கும், பலவகை வண்ணங்கள், பக்க வடிவமைப்பு போன்றவை CSSசிலும், நிரலாக்கம் (programming logic) ஜாவாஸ்கிரிப்டிலும் எழுதப்பட்டிருக்கும்.

CSS கட்டளைகளை html பக்கத்தில் உள்ளேயாகவோ அல்லது தனி fileஆகவோ எழுதிக் கொள்ளலாம்.  HTML பக்கத்தின் உள்ளேயே CSS கட்டளைகளை <style> </style> டேகினுள் (internal style) அல்லது ஒரு டேகின் style attribute மூலம் (inline style)எழுத வேண்டும்.  HTML கலப்பில்லாமல் CSS கட்டளைகளை மட்டும் எழுதினால் அதை .css நீட்டிப்பில் சேமித்துக் கொள்ளலாம். அப்படி தனி fileலாக இருக்கும் css கட்டளைகளை <link></link> டேக் வழியாக (external style) HTMLலில் இணைக்க முடியும்.

இப்படி css எழுதும் முறைகளையே
1. Internal css
2. Inline css
3. External css என மூன்று வகையாகப் பிரிக்கின்றனர்.





CSS கட்டளைகளை எழுதுவதற்கென தனி மென்பொருள் தேவையில்லை. ஏதேனும் ஒரு டெக்ஸ்ட் எடிட்டரில் எழுதலாம்.
இருப்பினும் பணிகளை எளிமைப்படுத்த ஏகப்பட்ட மென்பொருட்கள் இருக்கின்றன.  CSS கட்டளைகளை எழுத Notepad++, Gedit, Visual Studio, Eclipse, Netbeans, WebStorm editor, Sublime, BlueFish editor, Dreamweaver, Aptana Studio என அவரவர் தேவைக்கேற்ப பயன்படுத்திக் கொள்ளவும். வெப் டிசைனிங்கில் நாட்டம் உள்ளவர்கள் Dreamweaver studio, Apdtana Studio போன்ற மென்பொருட்களப் பயன்படுத்துங்கள். ஜாவா புரோகிராமர்கள் Eclipse, Netbeans போன்ற மென்பொருட்களிலேயே வடிவமைத்துக் கொள்ள முடியும். டாட் நெட் புரொகிராமர்களுக்கு இருக்கவே இருக்கிறது Visual Studio.

குரோம் பிரவுசரில் html பக்கத்தை திறந்து கொள்ளுங்கள். பின்னர் வலது க்ளிக் செய்து Inspect element தேர்ந்தெடுப்பதன் மூலமும் அந்தபக்கத்திற்கான css கட்டளைகளைக் காண முடியம். தற்காலிமாக css கட்டளைகளை மாற்றி உடனுக்குடன் மாற்றங்களைப் பார்க்க முடியும்.

மொசில்லா ஃபயர்பாக்ஸ் பயன்படுத்துவோர் Firebug என்கிற addon நிறுவிக் கொள்ளவும். இதுகுறித்து வேறொரு பதிவில் விவரமாகப் பார்க்கலாம்.

மே 03, 2012

மொபைல் மென்பொருள் உருவாக்கம் - வெப் டிசைனர்கள் கவனத்திற்கு...

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

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



ஆண்ட்ராய்டுக்கு மென்பொருள் உருவாக்க விண்டோஸ், லினக்ஸ், மேக் என எந்தக் கணினியிருந்தாலும் பரவாயில்லை. ஆனால் ஐபோன், ஐபேட் ஆகியவற்றுக்கு மேக் ஓ.எஸ் மட்டுமே பயன்படுத்த முடியும். மேக் ஓ.எஸ் இயங்கு தளத்தை நினைத்த கணினியிலெல்லாம் நிறுவிட முடியாது. அதற்கென பிரத்யேக கணினிகளை வாங்க வேண்டும். அதில் பயன்படுத்தும் மென்பொருள் உருவாக்க கருவிகளிலிருந்து புரொகிராமிங் மொழி வரை ஒவ்வொன்றும் மாறுபடுகிறது. இந்த சிக்கல்களை தீர்க்க வல்ல ஒரு ஓப்பன்சோர்ஸ் தீர்வே ஃபோன்கேப். மொபைல் மென்பொருள் உருவாக்கத்தில் இருக்கும் இடைவெளியை குறைக்க ஃபோன்கேப் முனைகிறது. எப்படி எச்.டி.எம்.எல் லில் உருவாக்கும் இணையப் பக்கம் விண்டோஸ், லினக்ஸ், மேக் என அனைத்து இயக்கச் சூழல்களிலும் இயங்குகிறதோ, அதே தொழில்நுட்பத்தை மொபைல் மென்பொருள் உருவாக்கத்திலும் பயன்படுத்திக் கொள்ளலாம். இது வெப் டெவலப்பர்களுக்கு எவ்வளவு இனிப்பான செய்தி?!. தங்களது html, css, javascript திறமைகளை அப்படியே மொபைல் மென்பொருள் உருவாக்கத்திற்கும் பயன்படுத்திக் கொள்ளலாம். அதுமட்டும் இல்லாமல் மொபைலில் இருக்கும் கேமரா, முகவரிகள் போன்ற வசதிகளையும் ஜாவாஸ்கிரிப்ட் மூலமாகவே அணுக முடியும். இணைய பக்கங்களை உருவாக்க உதவும் எந்த மென்பொருட்களையும் (Dreamweaver, Visual Studio, Eclipse etc...) இதற்குப் பயன்படுத்திக் கொள்ள முடியும்.

ஏப்ரல் 05, 2012

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) பயனருக்கு தோற்றுவிக்கின்றன.

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 இதழில் வெளிவந்துள்ளது. 

ஏப்ரல் 02, 2012

மொபைல் டெவலப்பர்களின் தேவை அதிகரிக்கிறது

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

விலை அதிகம் உள்ள ஆப்பிள் 4S, 3GS மொபைல்களின் விற்பனை முந்தைய ஆண்டு விற்பனை சாதனைகளையெல்லாம் முறியடித்து விட்டது.  ஆண்ட்ராய்ட் இயக்கச் சூழலில் வரும் சாம்சங் மொபைல் போன்கள், டேப்லட்களின் விற்பனை விகிதமும் ஏறுமுகமாகவே இருக்கிறது.  இதில்லாமல் சோனி, மோட்டோரோலா, எல்.ஜி, எச்.டி.சி, ஏசர், விண்டோஸ் மொபைல் எனப் பிரபல தயாரிப்புகளுக்கும் பஞ்சமே இல்லை.

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

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

மொபைல் சாதனங்களுக்கு மென்பொருள் உருவாக்க முற்றிலும் மாறுப்பட்ட அணுகும் முறை தேவைப்படுகிறது. டெஸ்க்டாப் கணினியில் இருப்பது போன்ற நினைவகமோ (memory), செயலியோ (processor) மொபைல் சாதனத்தில் இருக்காது.  நீண்ட நேரம் மின்கலத்தில் (battery) சக்தி இருக்க தேவைக்கு மிஞ்சி எந்த வளங்களையும் பயன்படுத்தாத வண்ணம் மொபைலுக்கான மென்பொருளை வடிவமைக்க வேண்டும். இவற்றையெல்லாம் நம் பாடதிட்டதில் படிப்பதற்குள் இலட்சக்கணக்கான மென்பொருள் பொறியாளர்கள் இந்த தொழில்நுட்பங்களில் பணியாற்றிக் கொண்டிருப்பார்கள் என்பதை அறிய வேண்டும். அதற்குள் தற்போதைய இந்த வாய்ப்பை பயன்படுத்திக் கொண்டு பாடத்திட்டதைத் தாண்டி படிப்பவர்களுக்கு பிரகாசமான எதிர்காலம் இருக்கிறது.



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

மார்ச் 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

பிப்ரவரி 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..,) இயக்கிப் பார்க்கவும்.

ஜனவரி 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) தீர்வான பைத்தான் மொழியை பாடத்திட்டதில் சேர்த்திட வேண்டும்.  கல்லூரி ப்ராஜெக்ட்களை பைத்தான் போன்ற மொழிகளில் செய்ய மாணவர்களை ஊக்கப் படுத்த வேண்டும்.  கணினித் துறையில் இருக்கும் மாணவர்கள் கட்டாயம் பைத்தான் படிக்கும் நிலை வரும். அந்த நாள் வெகு தொலைவில் இல்லை.

இம்மொழியை சுவைக்க நினைக்கும் அனைவருக்கும் என் வாழ்த்துகள்.


ஜனவரி 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) உங்கள் கணினியில் நிறுவதற்கு தேவையின்றியே பயன்படுத்தலாம்.










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













அனைவருக்கும் இனிய பொங்கல் நல்வாழ்த்துகள்


---தொடரும்

ஜனவரி 07, 2012

தொழில்நுட்பப் பதிவுகளைத் தொகுக்கும் மின்னிதழ்கள்

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

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

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

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

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




Jan 2012 கற்போம் மின்னிதழ்


Jan 2012 கணியம் மின்னிதழ்









ஜனவரி 05, 2012

ஆண்ட்ராய்ட் கத்துக்கப் போறீங்களா?


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



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

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


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

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

எந்தெந்த மென்பொருள் உருவாக்கக் கருவிகள் தேவைப்படும்? செலவு செய்ய வேண்டியிருக்குமா? (Development tools and its cost)
ஆண்ட்ராய்ட் எஸ்.டி.கே, ஜாவா உருவாக்க மென்பொருளான எக்லிப்ஸ் என இலவவச திறமூலத் தீர்வுகளையே (free & open source tools) பயன்படுத்திக் கொள்ளலாம்

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

-தொடரும்