Fedora 12: Constantine

Thursday, December 30, 2010

Get Together 2010 Update

மிகவும் எதிர்பார்க்கப்பட்ட பெரிய தலைகள் பால்பாண்டியன், நாகேந்திரன், சிவப்பிரகாஷ், தமிழ் செல்வன் மற்றும் பலர் வர முடியாது என்று சொல்ல யாம் அமைத்த திட்டம் செயல் இழந்து விடுமோ என்ற அஞ்சிய வேலையில் நான் இருக்கிறேன் என்று துறை தலைவர் கே.சுந்தரராஜன் அவர்கள் தேம்பெற்றினார். சரியாக 9 மணிக்கு வருகிறேன் என்று சொன்ன அவர் 8:50 மணிக்கே வந்து கணினி ஆய்வகத்தை திறந்ததில் எனக்கு ஆச்சர்யம் ஒன்றுமில்லை.

நான் சரியாக 6 மணிக்கு மதுரையில் இருந்து புறப்பட்டு 10:30 மணிக்கு கல்லூரி வளாகத்தை சென்றடைந்தேன். எனக்கு முன்பாக அப்துல், பாக்யராஜ், ராஜ்குமார், சுப்ரமணியன், முருகேசன், முசிறி, ரேகா, சுந்தரராஜ்(மாணவன்), முரளி, பழனிவேல்ராஜன், நாகசுரேஷ் மற்றும் நான்கு கடைசி ஆண்டு கணினி துறை மாணவர்கள் குழுமி இருந்தனர். துறைத் தலைவர் அவர்களுக்கு செலுத்த வேண்டிய மரியாதையை செலுத்தி விட்டு நண்பர்கள் அனைவரிடமும் நலம் விசாரித்தேன். பிறகு நம் துறை சம்பிரதாயப் படி சாம்பிராணி தூவி புகையை கிளப்பி விட அனைவரும் உற்சாகமாயினர். இளஞ்செழியன் இன்னும் வராததால் வழக்கத்திற்கு மாறாக நானும் முசிறியும் சம்பிரதாயத்தை முடித்தோம். கடைசி ஆண்டு மாணவர்கள் செய்யாத வருத்தத்தை துறைத் தலைவருக்கு யாம் நீக்கினோம்.

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

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

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

சரியாக 12:30 மணிக்கு வந்த நான்கு பேர் கொண்ட மகளிர் அணி ஏற்கனவே இருந்த நான்கு பேர் கொண்ட கடைசி ஆண்டு இளைஞர் அணியோடு இனைந்து எங்களுடன் கலந்துரையாடினர். துவக்கத்தில் அமைதியாக இருந்த மகளிர் அணி நேரம் ஆக ஆக கேள்வி கணைகளை தொடுத்தனர். கேள்விகளுக்கு பாக்யராஜ், முசிறி, பழனிவேல்ராஜன், ராஜ்குமார், நாகசுரேஷ், சுப்ரமணியன் மற்றும் இளஞ்செழியன் கார சாரமாக பதிலளித்தனர்.
நினைவில் நின்ற கேள்விகளும் அதற்கு நண்பர்களின் பதில்களும் இதோ:

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

கே: டிப்ளோமா படித்து முடித்து விட்ட பிறகு எங்கெங்கு வேலை பயிற்சி அளிக்கப் படுகிறார்கள்?
பாக்யராஜ்: பாரத மிகுமின் நிலையம் மற்றும் பல...

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

கே: டிப்ளோமா படிப்பை வைத்து என்னென்ன வேலைகள் கிடைக்கும்?
முசிறி: BPO
பழனி: BPO
சுந்தர்ராஜ்: வலைப்பக்கங்களை உருவாக்கலாம். வலைப்பக்கங்களை தட்டச்சு செய்து கொடுக்கலாம்.

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

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

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

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

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

பிறகு ஒவ்வொரு வருடமும் நம் குழு சார்பாக கணினி துறைக்கு புத்தகம் வழங்குவதை வழக்கமாக கொண்டிருக்கும் நாம் இம்முறை VB.NET மற்றும் PHP with MySQL Bible புத்தகங்களை வழங்கினோம். இப்புத்தகங்களை அடுத்த தலைமுறை மாணவர்கள் மிக நேர்த்தியாக பயன்படுத்துவார்கள் என்கின்ற நம்பிக்கை எனக்கு இருக்கிறது.

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

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

பிறகு அங்கிருந்து அவரவர் இடத்திற்கு களைந்து சென்றோம்.

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

அன்பன்,
கார்த்திக் குமரன்.

http://picasaweb.google.com/gptdct/2010GetTogether#

Wednesday, September 23, 2009

Thursday, September 17, 2009

GNU GRUB

GNU GRUB is a multiboot boot loader. It was derived from GRUB, GRand Unified Bootloader, which was originally designed and implemented by Erich Stefan Boleyn.

Briefly, boot loader is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the operating system kernel software(such as the Linux or Windows). The kernel, in turn, initializes the rest of the operating system (e.g. GNU).

GRUB is the reference implementation of the multiboot specification, which allows a user to have several different operating systems on their computer at once, and to choose which one to run when the computer starts. GRUB can be used to select from different kernel images available on a particular operating system's partitions, as well as to pass boot time parameters to such kernels.

Wednesday, September 2, 2009

Virtualization Basics

What is Virtualization?

Virtualization is a proven software technology that is rapidly transforming the IT landscape and fundamentally changing the way that people compute. Today’s powerful x86 computer hardware was designed to run a single operating system and a single application. This leaves most machines vastly underutilized. Virtualization lets you run multiple virtual machines on a single physical machine, sharing the resources of that single computer across multiple environments. Different virtual machines can run different operating systems and multiple applications on the same physical computer.

How Does Virtualization Work?

The VMware virtualization platform is built on a business-ready architecture. Use software such as VMware vSphere and VMware ESXi (a free download) to transform or “virtualize” the hardware resources of an x86-based computer—including the CPU, RAM, hard disk and network controller—to create a fully functional virtual machine that can run its own operating system and applications just like a “real” computer. Each virtual machine contains a complete system, eliminating potential conflicts. VMware virtualization works by inserting a thin layer of software directly on the computer hardware or on a host operating system. This contains a virtual machine monitor or “hypervisor” that allocates hardware resources dynamically and transparently. Multiple operating systems run concurrently on a single physical computer and share hardware resources with each other. By encapsulating an entire machine, including CPU, memory, operating system, and network devices, a virtual machine is completely compatible with all standard x86 operating systems, applications, and device drivers. You can safely run several operating systems and applications at the same time on a single computer, with each having access to the resources it needs when it needs them.


Thursday, April 2, 2009

இன்பத் தமிழ்

தமிழுக்கும் அமுதென்று பேர்! - அந்தத்
தமிழ் இன்பத் தமிழ்எங்கள் உயிருக்கு நேர்!
தமிழுக்கு நிலவென்று பேர்! - இன்பத்
தமிழ் எங்கள் சமுகத்தின் விளைவுக்கு நீர்!
தமிழுக்கு மணமென்று பேர்! - இன்பத்
தமிழ் எங்கள் வாழ்வுக்கு நிருமித்த ஊர்!
தமிழுக்கு மதுவென்று பேர்! - இன்பத்
தமிழ் எங்கள் உரிமைச்செம் பயிருக்கு வேர்!

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

Friday, January 9, 2009

NEE SOORIYAN OLIYAAI ELU!!!

Thatti thatti thiranthidu valigalai kadanthidu
Koodu enna veli enna rekkai katti paranthidu!!!
Kavalai ini azhithidu..
Maatrangalai nee payiridu
Ulagame unakkagave!!!
Unnai ini udan urasidu
Nee Sooriyan oliyaai elu...
Vatraa nadhi karai thaandidu...
Balam unarndhidu Vin paranthidu Thalai nimirnthidu...
Manam thaane vaazhkai poridu!!!
Kavalai ini azhithidu..
Maatrangalai nee payiridu
Thoondividu un thaagathai vaanam tharum mazhai megathai...
Un saalayai nee amaithidu... Ettipidi aagaasathai...
Nee Sooriyan oliyaai elu...
Vatraa nadhi karai thaandidu...
Balam unarndhidu Vin paranthidu Thalai nimirnthidu...
Manam thaane vaazhkai poridu!!!

Monday, November 24, 2008

GNU என்றால் என்ன? Gnu's Not Unix!



யூனிக்ஸுடன் ஒத்தியலும் கனு (GNU - short for Gnu's Not Unix) என்னும் மென்பொருளை நான் மற்றவர்களுக்குச் சுதந்திரமாக வழங்கும் நோக்கத்துடன் எழுதிக்கொண்டிருக்கின்றேன். இதில் எனக்கு பலர் உதவுகிறார்கள். நேரம், பணம், நிரலிகள் (programs), சாதனங்கள் போன்றவைகளின் வடிவிலான உதவிகள் எங்களுக்கு மிகவும் தேவை.
இதுவரை Lispஇல் கட்டளைகளை எழுதக்கூடிய திறனுடைய Emacs text editor, ஒரு source level debugger, ஒரு yacc-compatible parser generator, ஒரு linker மற்றும கிட்டத்தட்ட 35 நிரலிகள் எங்களிடம் உள்ளன. ஒரு shell முடிவடையும நிலையில் உள்ளது. ஒரு C தொகுப்பி (compiler) தன்னைத்தானே தொகுத்து விட்டது, அடுத்த வருடம் அதை வெளியிட்டுவிடுவோம். ஒரு கரு (kernel) ஆரம்ப நிலையில் உள்ளது. கருவையும் தொகுப்பியையும் முடித்த பிறகு கனுவை நிரலிகள் எழுதுவதற்கு விநியோகம் செய்யலாம். TeXஐ உரை வடிவமைப்புக்கு உபயோகிக்கலாம். சுதந்திரமான X window systemஐயும் உபயோகித்துக் கொள்வோம். இதன் பின் Common Lisp, ஒரு Empire விளையாட்டு, ஒரு விரிதாள் (spreadsheet), மற்றும் நூற்றுக்கணக்கான மற்ற பல நிரலிகளைச் சேர்ப்போம். இதற்கான ஆவணங்களையும் (documentation) சேர்த்துக் கொள்வோம். இறுதியில் யூனிக்ஸுடன் வரும் அனைத்து உபயோகமுள்ள நிரலிகளையும் நாங்கள் வழங்குவோம்.
கனுவில் யூனிக்ஸ் நிரலிகளை இயக்க முடியும், ஆனால் முற்றிலும் அதே போல இருக்காது. மற்ற இயங்கு தளங்களில் (Operating system) உள்ள எங்களது அனுபவத்தின் அடிப்படையிலும், நமது வசதிக்கேற்பவும் மாற்றங்கள் செய்கிறோம். குறிப்பாக, நீளமான கோப்பின் பெயர்கள், கோப்பின் பதிப்பு எண்கள், முறியாக் கோப்பு முறைமை, கோப்புப் பெயர் நிரைவேற்றல், terminal-independent display மற்றும் lispஐ அடிப்படையாகக் கொண்ட சாளர முறைமை (window system) ஆகியவற்றைச் செய்கிறோம். C மற்றும் Lisp மொழிகள் அமைப்பு நிரலாடலுக்கு (system programming) உபயோகிப்போம். UUCP, MIT Chaosnet மற்றும் இணைய நெறிமுறைகளைத் தகவல் தொடர்பிற்கு உபயோகிப்போம்.
மெய்நிகர நினைவகம் உடைய 68000/16000 வகை கணினிகளில், கனு முதலில் இயங்கும், ஏனென்றால் அதில் இயங்கவைப்பதற்கு எளிதாக இருக்கும். சிறிய கணினிகளில் இயங்க வைப்பதைத் தேவையானவர்கள் செய்துகொள்ள விட்டு விடுவோம்.
இந்த செயல்திட்டத்தின் பெயரை உபயோகிக்கும் பொழுது, GNU என்னும் வார்த்தையில் 'G'யை உச்சரியுங்கள்.
நான் ஏன் கனுவை எழுத வேண்டும்?
எனக்குப் பிடித்த நிரலை மற்றவர்களுடன் பகிர்ந்துகொள்வது ஒரு சீரிய முறை, என்பது எனது கருத்து. மென்பொருள் விற்பவர்கள் மென்பொருள் பயனாளர்களுக்குள் பகிர்ந்துகொள்ள அனுமதிப்பதில்லை. இதன் மூலம் மென்பொருள் பயனாளர்களைப் பிரித்து, அவர்கள் விற்பவர்களின் தயவில் வாழும் சூழ்நிலை ஏற்படுகிறது. இது போல மற்ற மென்பொருள் பயனாளர்களிடம் இருந்து தனிமைப் படுத்துவது எனக்குப் பிடிக்கவில்லை. மனசாட்சிக்கு விரோதமாக என்னால் NDAவிலோ (Non-Disclosure Agreement) அல்லது மென்பொருள் உரிம ஒப்பந்தத்திலோ கை எழுத்து இட முடியாது. MITயின் Artificial Intelligence ஆய்வகத்தில் இது போன்ற மனோபாவங்களை எதிர்த்தேன், ஆனால் கை நழுவி விட்டது: எனக்குப் பிடிக்காதவற்றை எனக்குச் செய்யும் ஸ்தாபனத்தில் என்னால் இருக்க முடியவில்லை.
கணினிகளை எனக்கு அவமதிப்பில்லாத வகையில் உபயோகிக்கப் போதுமான தளையறு மென்பொருளை (Swatantra Software or Free Software) எழுத முடிவு செய்திருக்கிறேன். இதனால் எனக்குச் சுதந்திரம் தராத மென்பொருளை உபயோகிக்க வேண்டியது இருக்காது. கனுவைப் பகிர்ந்து கொள்வதைச் சட்டபூர்வமாக மறுக்கும் உரிமையை MITக்கு நிராகரிக்க நான் MIT AI ஆய்வகத்திலிருந்து ராஜினாமா செய்துவிட்டேன்.
ஏன் யுனிக்ஸோடு கனு ஒத்துப்போகிறது(compatible)?
என்னைப் பொருத்தவரை, யுனிக்ஸ் ஒரு மிகச் சிறந்த இயக்குதளம் (Operating System) கிடையாது, ஆனால் அது மிகவும் மோசம் இல்லை. யுனிக்ஸின் அடிப்படை அம்சங்கள் சிறப்பாக உள்ளன. மேலும், யுனிக்ஸைக் கெடுக்காமல் அதை மேம்படுத்த முடியும் என்று நம்புகிறேன் (மொழிபெயர்ப்பாளரின் குறிப்பு : கனுவை எழுத அரம்பித்த பொழுது, யூனிக்ஸ்தான் பெரிதும் உபயோகத்தில் இருந்தது).
கனு எப்படிக் கிடைக்கும்?
கனு public domainல் இல்லை. எல்லோரும் கனுவை மாற்றவும், பரிமாறவும் அனுமதிக்கப்படுவார்கள், ஆனால் பரிமாறுபவர்கள் மீண்டும் தடை விதிக்க முடியாது. அதாவது, தனியுரிமை (proprietary) மாற்றங்கள் அனுமதிக்கப்பட மாட்டா. கனுவின் எல்லா பரிமாணங்களிலும் இந்தச் சுதந்திரங்கள் இருக்க நான் தேவையான எச்சரிக்கைகளை எடுத்திருக்கிறேன்.
ஏன் மற்ற நிரலாளர்கள் (programmers) உதவுகிறார்கள்
பல நிரலாளர்கள் கனுவில் ஆர்வம் காட்டுகிறார்கள். உதவவும் விரும்புகிறார்கள்.
பல நிரலாளர்கள், மென்பொருளில் விதிக்கப்பட்டுள்ள தடைகளை விரும்பவில்லை. அத்தடைகள் நிரலாளர்களை இலட்ச லட்சமாகச் சம்பாதிக்க உதவலாம், ஆனால் அத்தடைகள் அவர்களை ஒருவருக்கு ஒருவர் நண்பர்களாகக் கருத விடுவதில்லை. நிரலாளர்களுக்குள் நட்பை வெளிப்படுத்தும் அடிப்படையான செயல், நிரல்களைப் பகிர்ந்துகொள்வதுதான்; இப்போது உள்ள வியாபார அமைப்புகள், நிரலாளர்களைத் தங்களுக்குள் நண்பர்களாகக் கருத விடுவதில்லை. மென்பொருள் வாங்குபவர்கள் நட்பு அல்லது சட்டம, இரண்டில் ஒன்றைத் தேர்ந்தெடுக்க வேண்டிய சூழ்நிலை ஏற்படுகிறது. பொதுவாக, நட்புதான் முக்கியம் என்று பலர் முடிவு செய்கிறார்கள். ஆனால் சட்டத்தைப் பின்பற்ற நினைப்பவர்கள், இரண்டிலும் திருப்தி அடைவதில்லை. அவர்களுக்கு மற்றவர்களின் நல்லெண்ணத்தின் மீது நம்பிக்கையின்மை ஏற்படுகின்றது. மேலும், நிரல் எழுதுவதை வெறும் பணம் சம்பாதிக்கும் ஒரு வழியாக கருதிவிடுகிறார்கள்.
கனுவை உருவாக்கி அதை உபயோகித்தால் நாம் எல்லோருடனும் ஒற்றுமையாகவும் சட்டத்தை மீறாமலும் இருக்கலாம். மேலும் கனு, மென்பொருளைப் பகிர்ந்துகொள்வதற்கு ஒரு உத்வேகமாகவும் ஒரு முன்மாதிரியாகவும் திகழும். தனியுரிம (proprietary) மென்பொருள் உபயோகித்தால், சுதந்திர மென்பொருள் உபயோகிக்கும்பொழுது கிடைக்கும் ஒற்றுமையுணர்வு கிடைக்காது. நான சந்தித்த பல நிரலாளர்களுக்குப், பணத்தால் ஈடு செய்ய முடியாத மகிழ்ச்சியை இதுவே தரும்.
நீங்கள் எப்படி உதவலாம்?
நான் கணினி உற்பத்தியாளர்களிடம் பணம் மற்றும் கணினியின் மூலம் நன்கொடைகள் கேட்கிறேன். தனி நபர்களிடமிருந்து நன்கொடையாக உழைப்பு மற்றும நிரல்களைக் கேட்கிறேன்.
கணினியை நன்கொடையளிப்பதனால் ஒரு விளைவு, அந்த கணினிகளில் கனு சீக்கிரமாக செயல்படும். நன்கொடையாக அளிக்கப்படும் கணினிகள் உபயோகத்திற்கு ஏற்கனவே தயாராக இருக்க வேண்டும். மேலும, அதை உபயோகிப்பதற்குத் தனிப்பட்ட குளிரூட்டும் இயந்திரங்கள் தேவைப் படக்கூடாது.
பல நிரலாளர்கள் கனுவிற்குப் பகுதி நேரப் பங்களிப்பில் ஆர்வமாக இருப்பதை நான் பார்க்கிறேன். பல செயல்திட்டங்களுக்கு இத்தகைய பகுதிநேர உழைப்பால் உருவாக்கபட்ட நிரலிகளை ஒன்றாக இயங்க வைக்க முடியாது. ஆனால் யூனிக்ஸை ஒவ்வொரு பாகமாக மாற்றம் செய்வதில் இந்தப் பிரச்சனை கிடையாது. ஒரு யூனிக்ஸ் அமைப்பில் பல நூற்றுக்கணக்கான நிரலிகள் மற்றும் அதற்குரிய ஆவணங்கள் (documentation) உள்ளன. அவற்றின் இடைமுகக் குறிப்புகள் (interface specifications) யூனிக்ஸ் ஒத்தியல்பால் (compatibility) தீர்மானிக்கப்பட்டவை. ஒவ்வொரு பங்களிப்பாளரும் யூனிக்ஸில் உள்ள நிரலிக்கு ஈடாக நிரல் எழுதி அதன் இடத்தில் சரியாக இயங்க வைத்தால், அவை அனைத்தையும் ஒன்றாகச் சேர்க்கும்பொழுது சரியாக இயங்கும். Murphyயின் கூற்றினால் சில எதிர்பாராத பிரச்சனைகள் வந்தாலும் இந்த இணைப்பு இயன்றதே.
நன்கொடைகள் கிடைத்தால், சில நிரலாளர்களை கனுவில் நிரல் எழுத வைத்துக்கொள்வோம். மற்ற மென்பொருள் எழுதும் உத்தியோகங்களைவிட ஊதியம் குறைவாகத்தான் இருக்கும், ஆனால் சமூக ஒற்றுமையை, பணம் சம்பாதிப்பதற்கு ஈடாகக் கருதுபவர்களை நான் எதிர்பார்க்கிறேன். தன்னை இதற்காக அர்ப்பணம் செய்ய விரும்புவர்கள், தங்களுடைய முழு சக்தியையும் கனுவில் செலுத்த இந்த உத்தியோகங்கள் உதவும்.
எப்படி எல்லா கணினி பயனாளர்களும் பயன் அடைவார்கள்?
கனுவை எழுதிய பிறகு எல்லோருக்கும் இயங்குதள மென்பொருள் (Operating system software) காற்றுபோல எளிதாகக் கிடைக்கும்.
இதன் விளைவு எல்லொருடைய யூனிக்ஸ் உரிமத்தை மிச்சப்படுத்துவதை விட மேலானது - தேவையில்லாமல் திரும்பத்திரும்ப அதே இயங்குதள நிரலிகள் எழுதுவதைத் தவிர்க்கலாம். இந்த உழைப்பைத் தொழில்நுட்ப முன்னேற்றத்தில் செலுத்தலாம்.
முழு இயங்குதளத்தின் ஆணைமூலம் (source codes) எல்லோருக்கும் கிடைக்கும். இதனால், யாருக்காவது இயக்க முறைமையில் மாற்றம் வேண்டுமென்றால், அவரவராக அதைச் சுதந்திரமாகச் செய்துக்கொள்ளலாம், அல்லது எந்த நிரலாளரையும் பணியில் அமர்த்தி மாற்றிக்கொள்ளலாம். மென்பொருள் பயனாளர்கள் ஒரு நிரலாளர் அல்லது ஒரு நிறுவனத்தின் தயவில் வாழ வேண்டிய அவசியம் இருக்காது.
பள்ளிக்கூடங்கள் மாணவர்களுக்கு ஆணைமூலங்களைப் படிப்பதற்கும் அதை மேம்படுத்துவதற்கும் பயிற்சியளிக்கும் நல்லதொரு பயிற்சி மையமாக அமையலாம். Harvard கணினி மையம், முன்பு எந்தவொரு நிரலையும் அதன் ஆணைமூலங்களைப் பகிரங்கமாக வெளியிடாவிட்டால், அதனை நிறுவப் (install) போவதில்லை என்ற கொள்கை வைத்திருந்தனர். நான் அதைக் கண்டு மிகவும் ஊக்கம் அடைந்தேன்.
கடைசியாக, யார் இயங்குதள மென்பொருளை உரிமை கொண்டாடுவது, அதைவைத்து ஒருவர் என்ன செய்யலாம், என்ன செய்யக்கூடாது போன்ற தொல்லைகள் இருக்காது.
மக்கள் ஒரு நிரலிக்கு எவ்வளவு விலை கொடுக்க வேண்டும் என்று நிர்ணயிப்பது, அதன் நகல்களை உரிமம் செய்வது போன்ற பல விஷயங்களைத் தீர்மானிக்கும் முறை என்றுமே சமுதாயத்திற்குப் பல விதமாகச் செலவுகளைக் கொடுக்கிறது. காவல்துறை மட்டுமே அனைவரும் அதற்களுக்குக் கீழ்படிவதை நடைமுறைப்படுத்த முடியும். உதாரணமாக, விண்வெளி நிலையம் அமைத்து அதில் மக்கள் வாழ்கிறார்கள் என்று வைத்துக்கொள்வோம். அவர்கள் சுவாசிக்கும் ஒவ்வொரு லிட்டர் காற்றுக்கும், விலை நிர்ணயிப்பது நியாயமானது தான். ஆனால் அதற்கு அவர்கள் காற்று அளவையை முகமூடி போல முகத்தில் மாட்டிக் கொண்டு இரவும் பகலும் அலைவது பொறுக்க முடியாத ஒன்று. அது மட்டுமின்றி எல்லா இடங்களிலும் புகைப்படம் பிடிக்கும் கருவியை வைத்து நீங்கள முகமூடியை அகற்றுகிறீர்களா என்று கண்காணிப்பது கொடுமையானது. அதற்குப் பதில் அந்த இடத்திற்கு மொத்தமாக ஒரு வரி நிர்ணயித்து முகமூடிகளை தூக்கியெறிந்துவிடலாம்.
சுவாசிப்பதைப் போல, ஒரு நிரலியின் அனைத்து அல்லது சில பகுதிகளை படி எடுத்தல் இயற்கையானதே. அது அந்த அளவு சுதந்திரமாக இருக்க வேண்டியது.
கனுவின் குறிக்கோள்களுக்கு எதிராகக் கூறப்படும் சில வாதங்கள்
"€œஇலவசமாகக் கிடைத்தால் யாரும் உபயோகிக்க மாட்டார்கள்."
"€œசேவை அளிக்க வேண்டுமென்றால் அதற்குக் காசு வசூல் செய்துதான் ஆக வேண்டும்."
இலவசமான கனுவை விட கனுவுடன் கட்டணச் சேவையைப் பொது மக்கள் விரும்பினால், வெறும் சேவையை அளிக்கும் நிறுவனங்கள் லாபத்துடன் இயங்கலாம் வெறும் கைப்பிடித்து உதவியளிக்கும் சேவையையும், நிரலில் மாற்றங்கள் செய்யும் சேவையையும் நாம் வித்தியாசப்படுத்த வேண்டும். இரண்டாவது விதமான சேவையை மென்பொருள் விற்பனையாளர்களிடமிருந்து எதிர்பார்க்க முடியாது. உங்களைப்போல பலருக்கு அதே மாற்றம் தேவையில்லை என்றால் மென்பொருள் விற்பனையாளன் செய்து தர மாட்டான்.(1)
உங்களது நிறுவனத்திற்கு நம்பகமான சேவை தேவை என்றால், அந்த மென்பொருளின் மூலக குறிமுறைகள் மற்றும் அதற்கான சாதனங்கள் உங்களிடம் இருக்க வேண்டும். இருந்தால் நீங்கள் ஒரு நிரலாளரை வைத்து, நிரலில் உங்களது மாற்றங்களைச் செய்து கொள்ளலாம். யூனிக்ஸ் மூலகக் குறிமுறைகளின் விலை அதிகமாக இருப்பதால் பெரும்பாலான நிறுவனங்களுக்கு இது இயலாத ஒன்று. கனுவில் இது போன்ற மூலக குறிமுறைகளில் மாற்றங்கள் எளிதாக இருக்கும். கனுவில் மாற்றங்கள் செய்யும் திறமை உடையவர்கள் இல்லாமல் போகலாம். அதற்கு கனுவின் பரிமாறும் முறையைக் குறை கூற முடியாது. கனு உலகத்திலுள்ள எல்லாப் பிரச்சனைகளையும் தீர்க்காது.
கணினி பற்றி ஒன்றும் தெரியாதவர்களுக்குக் கைப்பிடித்து உதவ வேண்டியிருக்கும். அதாவது அவர்களுக்குச் செய்யத் தெரியாதவைகளைச் செய்து கொடுப்பது.
இது போன்ற சேவைகளை மட்டும் நிறுவனங்கள் அளிக்கலாம். மென்பொருள் மற்றும் சேவையை விரும்புபவர்கள், மென்பொருளை இலவசமாகப் பெற்றதால் இப்பொழுது சேவையை மட்டும் வாங்க விரும்புவார்கள். சேவை அளிக்கும் நிறுவனங்கள், தரத்திலும், சேவையிள் விலையிலும் போட்டியிடுவார்கள். மேலும், கணினி உபயோகிப்பவர்கள் ஒரு நிறுவனத்தை மட்டும் சார்ந்திருக்க வேண்டியிருக்காது. மேலும் சேவை வேண்டாமென்று நினைப்பவர்கள் நிரலுக்கான சேவை வாங்காமல் உபயோகிக்கலாம்.
"€œவிளம்பரமின்றி மென்பொருளை விற்பனை செய்ய முடியாது."
"€œவிளம்பரம் செய்ய வேண்டுமென்றால், மென்பொருளுக்குக் காசு வசூலிக்க வேண்டும்."
கனு போன்ற மென்பொருளைப் பற்றி மற்றவர்களுக்குத் தெரிவிக்கப் பல எளிமையான வழிகள் உள்ளன. ஆனால் கணினி உபயோகிப்பவர்களில் பலரை விளம்பரம் மூலம்தான் அணுக முடியும். அப்படியானால், கனுவை நகலெடுத்து விற்கும் நிறுவனங்கள் கனுவையும் விளம்பரப்படுத்தலாம். இதன்மூலம் விளம்பரத்திலிருந்து பயன் அடைபவர்கள் மட்டும்தான் அதற்குச் செலவு செய்வார்கள். பெரும்பாலானோர் கனுவை நண்பர்களிடம் இருந்து பெற்று இதுபோன்ற நிறுவனங்கள் வெற்றி அடையவில்லை என்றால், கனுவிற்கு விளம்பரம் தேவையில்லை என்று முடிவுசெய்யலாம்.(2)
"€œஎனது நிறுவனம் மற்றவர்களோடு போட்டியிடுவதற்குத் தனியுரிம (proprietary) மென்பொருள் தேவை."
கனு, இயங்குதள (Operating System) உலகத்தில் போட்டி இல்லாமல் செய்துவிடும். நீங்களோ உங்கள் போட்டியாளரோ இதில் எதையும் இழக்கவோ பெறவோ போவதில்லை. இருவரும் மற்ற துறைகளில் போட்டியிடுவீர்கள், ஆனால் இயங்குதளத் துறையில் ஒருவருக்கொருவர் உதவுவீர்கள். இயங்குதளங்களை விற்பது உங்கள் தொழிலாக இருந்தால், கனுவை உங்களுக்குப் பிடிக்காது, ஆனால் அது உங்கள் கஷ்டம். உங்களது தொழில் வேறாக இருந்தால் கனு உங்களை இயங்குதளங்களை விற்கும் விலையுயர்ந்த வியாபாரத்திலிருந்து காப்பாற்றும்.
நான் எதிர்காலத்தில் கனுவின் முன்னேற்றத்திற்குப் பல நிறுவனங்களும், பயனாளர்களும் உதவி செய்து, ஒவ்வொருவரின் செலவைக் குறைப்பதைக் காண விரும்புகிறேன்.(3)
"€œநிரலாளர்கள் தங்களது படைக்கும் திறனிற்கு வெகுமதி பெறத் தகுதியற்றவர்களா?"
ஏதாவது ஒன்று வெகுமதி பெறத்தக்கது என்றால் அது சமுதாயப் பங்களிப்பே. படைக்கும் அறிவின் பலன் எவ்வளவு தூரம் சமுதாயத்திற்குத் தடையில்லாமல் கிடைக்கிறது என்பதைப் பொருத்தே அது சமுதாயப் பங்கா இல்லையா என்று கூற முடியும். நிரலாளர்கள் தங்களது புதுமையான நிரலாளர்களுக்கு வெகுமதி பெறத் தகுதியானவர்கள் என்றால், அதே கோணத்தில், அந்த நிரலியின் உபயோகிப்பதை அவர்கள் தடுத்தால் தண்டனைக்கு உண்டாகவும் தகுதியானவர்களே.
"€œஒரு பயனாளர் தனது படைக்கும் திறனிற்கு வெகுமதி கேட்கக்கூடாதா?"
செய்த வேலைக்கு காசு கேட்பதில் எந்தத் தவறும் இல்லை. தனது வருமானத்தை அதிகப் படுத்த நினைப்பதிலும் எந்தத் தவறும் இல்லை. ஆனால் சேதம் விளைவிக்கும் வழிகள் உபயோகிக்கக்கூடாது. இன்றைய மென்பொருள் உலகத்தில் இது போன்ற சேதம் விளைவிக்கும் வழிகள்தான் உபயோகிக்கிறார்கள்.
ஒரு நிரலியை உபயோகிபவர்களுக்குத் தடை விதித்து காசைச் சுறண்டுவது சேதம் விளைவிக்கக்கூடியது. ஏனென்றால் இது போன்ற தடைகள், மென்பொருளை உபயோகிக்கக்கூடிய வாய்ப்புகளைக் குறைகிறது. இத்தடைகள், மனித இனம் அந்த நிரலியிடமிருந்து பெறக்கூடிய லாபத்தை குறைத்துவிடுகிறது.
ஒரு நல்ல குடிமகன் பணக்காரனாவதற்கு இது போன்ற நஷ்டத்தை விளைவிக்கும வழிகளை உபயோகிக்க மாட்டான். ஏனென்றால், எல்லோரும் இது போலச் செய்தால் நாம் எல்லோரும் அந்தப் பரஸ்பர சேதங்களால் ஏழைகளாகி விடுவோம். இதுதான் 'Kantian Ethics' அல்லது 'the Golden Rule'. தடைகள் விதிப்பதால் ஏற்படும் விளைவுகள் எனக்குப் பிடிக்காததால், நான் இதை யார் செய்தாலும் தவறு எனக் கருதுகிறேன்.
"€œநிரலாளர்கள் பட்டினியால் இறந்துவிட மாட்டார்களா?"
நிரல் எழுத, யாரும் கட்டாயப் படுத்தப்படவில்லை, என்று நான பதில் அளிக்கலாம். பலரால் தெருவில் வேஷம் போட்டு நின்று காசு சம்பாதிக்க முடியாது. இதனால் நாம் யாரும் தெருவில் வேஷம் போட்டு நின்று பசியால் செத்துப்போவதில்லை. நாம் வேறு ஏதாவது வேலை செய்கிறோம்.
ஆனால் அது தவறான பதில். ஏனென்றால் அது கேள்வியாளரின் அனுமானத்தை ஏற்றுகொள்கிறது: அதாவது மென்பொருளிற்கு உரிமையாளர் என்னும் நிலைமை இல்லாமல் நிரலாளர்களுக்கு ஒரு நயா பைசாக் கூடக் கிடைக்காது என்ற அனுமானத்தை ஏற்படுத்தும்.
நிரலாளர்கள் பட்டினியால் இறந்துவிடமாட்டார்கள், ஏனென்றால், இன்னமும், இன்றைய அளவிற்கு இல்லாவிடினும், அவர்களால் நிரல் எழுதி காசு சம்பாதிக்க முடியும்.
நகலெடுப்பதில் தடை விதிப்பது மட்டுமே மென்பொருள் வாணிகத்தின் அடிப்படையில்லை. ஆனாலும் அதனை அடிப்படையாகக் கொள்ளக் காரணம், அதனால் கிடைக்கும் பெரும் இலாபம்தான். வாடிக்கையாளர்கள் இவ்வடிப்படையை மறுத்தாலோ, தடை செய்தாலோ, தற்போது மிகவும் குறைந்த அளவில் பின்பற்றப்படும் பல வியாபார முறைகளுக்கு, இந்நிறுவனங்கள் தாவி விடும். எப்போதுமே, வியாபாரத்தை அமைக்க நூற்றுக்கணக்கான வழிகள் உள்ளன.
இந்தப் புதிய முறைகளில், நிரலாளர் வேலைக்கு ஆடம்பரத் தோற்றம் இராது. அதற்காக இந்த மாற்றம் தேவையில்லை என்று வாதிடமுடியாது. கிளார்க்குகளின் ஊதியம் குறைவாக இருப்பதை நாம் அநியாயமாகக் கருதுவதில்லை. அதே அளவு ஊதியத்தைப் நிரலாளர்கள் பெறுவது அநியாயம் ஆகாது. (அப்பொழுதும் கூட, நடைமுறையில் நிரலாளர்கள் அதிகம் பெறுவார்கள்).
"€œநிரலாளர்களுக்குத் தங்களது சிருஷ்டிக்கும் அறிவை மற்றவர்கள் எப்படி உபயோகிக்க வேண்டும் என்பதை நிர்ணயிக்க உரிமை இல்லையா?"
"€œஒருவரின் எண்ணங்களை மற்றவர்கள் உபயோகிப்பதில் அவருக்கு உள்ள அதிகாரம்€" என்பது மற்றவர்களின் வாழ்க்கையில் பாதிப்பை உண்டாக்குகிறது; அது அவர்களின் வாழ்க்கையை மேலும் சிக்கலானதாக்குகிறது. அறிவுச் சொத்து (Intellectual Property) பற்றித் தெளிவாகக் கற்றறிந்தவர்கள் (வழக்கறிஞர்கள் போன்றோர்), உண்மையில் அறிவுச் சொத்து அதிகாரம் என்பது இயற்கையான அதிகாரம் இல்லை என்று கூறுவர். அரசு ஒப்புக்கொள்ளும் அறிவுச் சொத்து அதிகாரங்கள், குறிப்பிட்ட சில விஷயங்களுக்காக, மசோதாக்கள் மூலம் உருவாக்கப்பட்டவை.
உதாரணமாக, கண்டுபிடிப்பாளர்கள், தங்கள் கண்டுபிடிப்புகளின் விவரங்களை வெளியிட ஊக்குவிக்கும் வகையில் காப்புரிமை (patent system) உருவாக்கப்பட்டது. அதன் குறிக்கோள் சமுதாயம் பயன்பெற வேண்டும் என்பதுதான். அப்போது பதினேழு வருடம் என்பது தொழில்நுட்ப முன்னேற்ற வேகத்தோடு ஒப்பிட்டால் சிறிதாக இருந்தது (ஒரு காப்புரிமை பதினேழு வருடங்களுக்கு மட்டுமே செல்லுபடியாகும்). காப்புரிமை என்பது பெரும்பாலும் தயாரிப்பாளர்களின் கவலை; அவர்களுக்கு விலையும், அனுமதி ஒப்பந்தங்களும் தயாரிப்பு கட்டுமானங்களை விட மிகச்சிறியது என்பதால் எந்தவித பாதிப்புமில்லை. அவை எந்தவொரு தனிமனிதனையும் காப்புரிமை செய்யப்பட்ட பொருளை உபயோகிப்பதைத் தடை செய்வதில்லை.
முற்காலத்தில் அச்சுரிமை (copyright) என்னும் ஒரு முறை கிடையாது. அப்பொழுது அடிக்கடி எழுத்தாளர்கள் மற்றவர்களின் படைப்பிலிருந்து தேவையான பகுதிகளை எடுத்து உபயோகித்தார்கள். இந்தப பழக்கம் பல எழுத்தாளர்களுக்கு நன்மை விளைவித்தது. இந்தப் பழக்கத்தால்தான் இன்னமும் பல எழுத்தாளர்களின் படைப்புகள் நம்மிடையே நிலைத்திருக்கின்றன. புத்தகங்கள் எழுதுவதை ஆதரிப்பதற்காகத்தான் அச்சுரிமை உருவாக்கப்பட்டது. அது உருவாக்கப்பட்டது புத்தகங்களுக்காக. புத்தகங்களைச் சிக்கனமாக அச்சகத்தில்தான் நகல் செய்ய முடிந்தது. இதனால் வாசகர்களுக்கு எந்த வித பாதிப்பும் ஏற்படவில்லை.
எல்லா அறிவுச்சொத்து அதிகாரங்களும் சமுதாயத்தின் பொதுநலம் கருதி, சமுதாயத்தால் அளிக்கபட்ட உரிமங்கள் தான். ஆனால் எந்த ஒரு சூழ்நிலையிலும், நாம் கேட்கவேண்டியது: இது போன்ற உரிமங்களைக் கொடுப்பது நமக்கு பயன் அளிக்கின்றதா? என்ன மாதிரி அதிகாரங்களுக்கு நாம் உரிமம் அளிக்கிறோம்?
தற்கால நிரலாளர்களின் நிலை, நூறு வருடங்களுக்கு முன்புள்ள புத்தகங்களிலிருந்து மிகவும் வேறுபட்டிருக்கிறது. ஒரு நிரலை ஒருவரிடம் இருந்து ஒருவர் எளிதாக நகல் எடுப்பது, ஒரு நிரலின் இலக்கு நிரல் (Object code) மற்றும் மூலக் குறிமுறைகள் வேறு வேறாக இருப்பது, ஒரு நிரலை வாசித்து மகிழ்வதைக் காட்டிலும் அதனை உபயோகப்படுத்துவது, இவையெல்லாம் இணைந்து அந்த நிரலியின் உரிமையாளர் அச்சுரிமையை அமல்செய்யும் பொழுது மனதளவிலும் பொருளளவிலும் சமுதாயத்தைச் சீரழிக்கும் சூழ்நிலையை உருவாக்குகின்றன; அந்தச் சூழ்நிலையில் சட்டம் அனுமதித்தாலும் கூட அவர் அதைச் செய்யக்கூடாது.
"€œபோட்டியே ஒரு செயல் சிறப்பாகச் செயல்பட உறுதுணையாயிருக்கும்."
போட்டிக்கு ஒரு சிறந்த உதாரணம் ஓட்டப்பந்தயம். வெற்றி பெறுவோர்க்கு பரிசளிப்பதன் மூலம் நாம் எல்லோரையும் வேகமாக ஓட ஊக்கமளிக்கிறோம். ஓடுகிறவர், எதற்காகப் பரிசு வழங்கப்படுகிறது என்பதை மறந்துவிட்டு, வெற்றி இலக்கை மட்டுமே குறிவைத்து ஓடினால், அவர் பிற போட்டியாளர்களைச சமாளிப்பதற்குப் பல தந்திரங்களைக் கையாளக்கூடும் - உதாரணமாக, மற்ற போட்டியாளர்களைத் தாக்குவது. ஒருவேளை போட்டியாளர்கள் கைச்சண்டையில் ஈடுப்பட்டார்களேயானால் அவர்கள் எல்லோரும பின்தங்க வேண்டிய நிலை வரும்.
தனியுரிமை (proprietary) மென்பொருள மற்றும் இரகசிய மென்பொருள் இரண்டும், கைச்சண்டையிடும் போட்டியாளர்களுக்கு ஒப்பான உதாரணங்களாகும். கவலைக்குரியது என்னவென்றால், நம்மிடம் இருக்கும் ஒரே நடுவரும் சண்டையை நெறிபடுத்துகிறாரே தவிர தடுப்பதில்லை (ஒவ்வொரு 10 அடிக்கும் ஒரு குத்து குத்தலாம்). ஆனால் அவர் உண்மையில் சண்டையை நிறுத்தி அதற்குக் காரணமான போட்டியாளர்களைத் தண்டிக்க வேண்டும்.
"€œஊக்கத்தொகை இல்லாததால் நிரலாளர்கள் நிரல் எழுதுவதை நிறுத்திவிடமாட்டார்களா?"
வாஸ்தவமாக, எந்தவிதமான ஊக்கத்தொகையும் எதிர்பாராமல் பலர் நிரல் எழுதுவார்கள். பொதுவாக நிரல் எழுதுவதில் மிகச்சிறந்தவர்களுக்கு அதில் தவிர்க்க முடியாத மோகம் உள்ளது. சங்கீதத்தின் மூலம் வாழ்க்கையை நடத்தும் கட்டாயம் இல்லாவிட்டாலும் கூட, பல சங்கீத மேதைகளுக்குச் சங்கீதத்தில் உள்ள ஈடுபாடு குறைவதில்லை.
இந்தக் கேள்வி பலர் மத்தியில் எழுந்தாலும், இது சரியான கேள்வி கிடையாது. ஏனென்றால், நிரலாளர்களுக்கு ஊதியம் குறையுமே தவிர மறைந்துவிடாது. அதனால், சரியான கேள்வி என்னவென்றால், குறைந்த ஊக்கத்தொகையை நிரலாளர்கள் ஏற்பார்களா? அவர்கள் ஏற்பார்கள் என்று எனது அனுபவம் சொல்கிறது.
பத்து வருடங்களுக்கு மேலாக உலகத்தின் தலை சிறந்த நிரலாளர்கள் MITயின் AI ஆய்வகத்தில் எங்கும் கிடைத்திராத மிகக் குறைந்த ஊதியத்திற்குப் பணியாற்றினர். அவர்களுக்கு ஊதியத்தைத் தவிர மற்ற ஊக்க விருதுகள் கிடைத்தன. உதாரணத்திற்குப் புகழ் மற்றும் பாராட்டு. மேலும், படைப்பு மகிழ்ச்சியைத் தரக்கூடியது, அதுவே ஒரு விருதாகும்.
பின்னர், கூடுதல் ஊதியத்திற்கு இதே மாதிரி வேலையைச் செய்ய வாய்ப்பு கிடைத்ததால் பலர் வெளியேறினர்.
நிரலாளர்கள் பணத்தைத் தவிர மற்ற காரணதிற்காகவும் நிரல் எழுதுவார்கள் என்பதை இந்த நிகழ்ச்சிகள் காட்டுகின்றன. குறைந்த ஊதியத்தை அளிக்கும் கூட்டமைப்புகள், அதிக ஊதியத்தை அளிக்கும் அமைப்புகளுடன் போட்டியிடத் திணறுகின்றனர். ஆனால், அதிக ஊதியத்தை அளிக்கும் அமைப்புகள் ஒடுக்கப்பட்டால், அவர்கள மோசமாக செயல்பட வேண்டியதில்லை.
"€œஎங்களுக்கு நிரலாளர்கள் மிகவும் தேவை. நாங்கள் பிறருக்கு உதவக் கூடாது என்று நிரலாளர்கள் வாதிட்டால், அதனை நாங்கள் ஏற்றுக்கொள்ளத்தான் வேண்டும்."
இது போன்ற வாதங்களை ஏற்றுக்கொள்ள வேண்டிய அளவிற்கு உங்கள் நிலைமை எப்பொழுதும், மோசமாக இருக்காது. நினைவில் கொள்ளுங்கள்: கப்பம் கட்டுவதைவிட விடுதலைக்காகப் போராடுவதே சிறந்தது!
"€œநிரலாளர்கள் எப்படியாவது வாழ்க்கையை நடத்த வேண்டுமே."
புதிய முறையை ஏற்றுக்கொண்ட பிறகு, தொடக்கத்தில் இது உண்மையாக இருக்கும். எனினும் நிரலாளர்கள் நிரலியின் உரிமத்தை விற்பதைத் தவிர வேறு பல வழிகளின் மூலம் வாழ்க்கையை நடத்தலாம். உரிமத்தை விற்பது இப்போது வழக்கமாக உள்ளது, ஏனென்றால், அது அதிகமான லாபத்தைத் தரக்கூடியதே தவிர, அது நிரல்கள் மூலம் சம்பாதிப்பதற்கு ஒரே வழி கிடையாது. மற்ற வழிகள் தேடினால் எளிதாகக் கிடைக்கும். இதோ சில எடுத்துக்காட்டுகள்.
கணினி தயாரிப்பாளர்கள் புது கணினியை அறிமுகப்படுத்தும் பொழுது, அந்தக் கணினியில் இயங்குதளங்களை இயங்கவைப்பதற்கு நிரலாளர்களுக்குக் காசு கொடுப்பார்கள். நிரலியைக் கற்பிப்பதும், பராமரிப்பதும நிரலாளர்களுக்கு உத்தியோகம் அளிக்கலாம்.
புதிய எண்ணங்களை உடையோர் தங்களது நிரலை இலவசமாகக் கொடுத்து, திருப்தி அடைந்தவர்களிடமிருந்து நன்கொடைகள் கேட்கலாம். இது போல வெற்றிகரமாக வழி நடத்துபவர்களை நான் சந்தித்துள்ளேன்.
சம்பந்தப்பட்ட தேவைகளை உடையோர் குழுக்கள் அமைத்து சந்தா கட்டலாம். அந்தக் குழுக்கள் நிரல் எழுதும் நிறுவனத்துடன் ஒப்பந்தம் வைத்து அவர்களுக்குத் தேவையான நிரல்களை எழுதலாம்.
எல்லா விதமான மென்பொருள் தயாரிப்பிற்கும் மென்பொருள் வரி மூலம் நிதி திரட்டலாம்
கணினி வாங்கும் ஒவ்வொருவரும் அதன் விலையில் ஒரு குறிப்பிட்ட சதவீதத்தை மென்பொருள் வரியாகக் கட்ட வேண்டும்.
கணினி வாங்குபவர் தானாகவே மென்பொருள் தயாரிப்பிற்கு நன்கொடைகள் கொடுக்கிறார் என்றால, அவர் வரி கட்ட வேண்டியதில்லை. அவர் அவருக்கு விருப்பமான செயல்திட்டத்திற்கு நன்கொடை கொடுக்கலாம. அவர் நன்கொடை கொடுத்த அளவிற்கு வரி கட்டத் தேவையில்லை.
மொத்த வரியின் சதவீதத்தை வரி கட்டுபவர்களின் வாக்களிப்பின் மூலம் தீர்மானம் செய்யலாம்.
இதன் விளைவுகள்:
கணினி உபயோகிப்பவர்கள் மென்பொருள் தயாரிப்பிற்கு நிதி அளிக்கிறார்கள்.
எந்த அளவிற்கு ஆதரவு தேவை என்பதை அவர்களே முடிவு செய்கிறார்கள்.
எந்தச் செயல்திட்டத்திற்குத் தங்களது பங்கு செல்ல வேண்டும் என்பதைப் பற்றிக் கவனமாக இருப்பவர்கள், அவர்கள் விரும்பியதைத் தேர்ந்தேடுக்கலாம்.
காலப்போக்கில், தேவைகளுக்காக மிகக்கடினமாக யாரும் உழைக்கத் தேவையில்லாத நிலையை ஏற்படுத்துவதற்குச் சுதந்திர மென்பொருள், ஒரு முதற்படியாக இருக்கும். மக்கள், ஒரு வாரத்தில், பத்து மணி நேரங்களில் தங்கள் தினசரி வேலைகளை முடித்து விட்டு, மற்ற நேரங்களை, மென்பொருள் தயாரித்தல் போன்ற கேளிக்கைகளில் செலவிடலாம். மென்போருள் தயாரித்து வாழ்க்கையை வாழ வேண்டிய அவசியம் இருக்காது.
ஏற்கனவே, தேவையான உற்பத்திக்குச் சமுதாயம் செய்யவேண்டிய வேலைப்பளுவை நாம் முடிந்தமட்டும் குறைத்து விட்டோம். ஆனால், இவற்றில் சிறிதளவே தொழிலாளர்கள விரும்பிச் செய்வதாக மாற்றமடைந்துள்ளது. ஏனென்றால் உற்பத்தித் திறன் மிகுந்த செயல்களுக்கு அதிக அளவில் உற்பத்தித் திறனற்ற செயல்கள் தேவப்படுகின்றன. இதற்கு முக்கிய காரணங்கள் அதிகாரத்துவமும் போட்டிகளினால் ஏற்படும் தொய்வும் ஆகும். மென்பொருள் உற்பத்தியில் இதுபோல வீணாகும் உழைப்புகளைச் சுதந்திர மென்பொருள் முடிந்த மட்டும் குறைத்துவிடும். உற்பத்தித்திறனில் தொழில்நுட்ப இலாபம் பெற்று அதை நமக்குக் குறைந்த விலையாக்கிட நாம் இதைச் செய்தாக வேண்டும்.

Friday, October 31, 2008

10 tips on how you can survive despite a layoff

Can you take a guess on one of the most common and scary words doing rounds in the job market as of date? Yes, you got it! It is “layoff”. Getting fired, unfortunately, can happen to the best of us. It can happen even when it's not your fault. There could be a personality conflict between yourself and your supervisor.

Your idea of what the job was going to be like might differ from what management was thinking. You could have simply screwed up. It happens. You're not alone. Experts estimate that at least 250,000 workers are illegally or unjustly fired each year and that's not counting those that were justifiably terminated. Regardless of the circumstances, what to do if you've been fired? Where do you go from here?
Beating the unemployment blues or how to survive a layoff is a major cause of concern for the working class as of now. Here are a few essential tips on how you can survive the layoff financially!
Either you have already been laid off or there is news that you’re company is planning a layoff in near future. Both these situations demand a great deal of action from you immediately. The first and most important ways to handle it would by being well prepared for it.
You just need to ask yourself can I survive this layoff. The attitude of a person plays a very great role during such situations. When he feels confident and believes that he can survive a layoff financially, most of his problems end there.
What are the best ways to get past a layoff?
1. For starters, don't blame yourself for whatever happened. Getting fired can happen to anyone, so it's better not to dwell on it and feel self-pity. Try and focus on what your next course of action is and how to find another job.
2. Knowing well in advance about a layoff will do much good to you. If you know of it earlier you can equip yourself very well to face it. To know if there is a layoff happening in your company, the best thing you could do would be to look out for indications. Some of the indicators that you could look for would be cutting on travel costs, resignations from the top management and so on.
3. If the pink slip has been given to you, do accept it with all grace. Do leave a positive impact on the management and your co workers. Getting a letter of recommendation from your boss stating the reason for your termination. If you were laidoff because of downsizing and not because of your bad performance then this letter will surely come handy when you apply for your next job.
4. Carefully managing all your cash is very important now. Save and invest as much as you can. This will help you and your family in meeting all the monetary requirements till you get your next job.
5. Start your job hunt right from the time you hear of a layoff happening in your company. This will help you in reducing your days of unemployment as far as possible and which will see to it that you don’t get into trouble when you have been given the pink slip.
6. In case you have already been fired don’t worry too much about it. Be on the lookout for better job prospects with a positive attitude. It’s the attitude with which we take things that makes a big difference, if you are confident you will get a better job for yourself then you surely will!
7. Don’t mention anywhere in your resume or cover letter that you had been fired from the company. This might make the next employer doubt your skills. The best way to convey this would be to tell him this during the face-to-face interview.
8. Try not to get over obsessed or panicky about getting the next job right away! Make a schedule to find a job. Some of the best ways which could help you in getting your next job would be by keeping in touch with friends, maintaining contact with HR departments of various companies and searching and applying for jobs on the net. There are some sure shot formulas which would ensure that you get back to your good old days very soon.
9. Do take with you the stuff that you would help you in your next place of work. Take a copy of all those contacts and networks that you have built during your tenure at this workplace. One of the most important things to be understood here is that you should take only those things which you are rightfully entitled to. Leaving behind what actually is the company’s property is a must thing.
10. You can even use those unemployment days to hone your skills. Getting into some training sessions and online work would be of great help. This act you would not only keep yourself updated it might be even open chances of a better career for you!

Source: in.msn.com

Thursday, September 4, 2008

Virtual Machines

When we describe VirtualBox as a "virtualization" product, we refer to "full virtualization", that is, the particular kind of virtualization that allows an unmodified operating system with all of its installed software to run in a special environment, on top of your existing operating system. This environment, called a "virtual machine", is created by the virtualization software by intercepting access to certain hardware components and certain features. The physical computer is then usually called the "host", while the virtual machine is often called a "guest". Most of the guest code runs unmodified, directly on the host computer, and the guest operating system "thinks" it's running on real machine.

This approach, often called "native virtualization", is different from mere emulation. With that approach, as performed by programs such as BOCHS, guest code is not allowed to run directly on the host. Instead, every single machine instruction is translated ("emulated"). While emulators theoretically allow running code written for one type of hardware on completely different hardware (say, running 64-bit code on 32-bit hardware), they are typically quite slow. Virtualizers such as VirtualBox, on the other hand, can achieve near-native performance for the guest code, but can only run guest code that was written for the same target hardware (such as 32-bit Linux on a 32-bit Windows host).

VirtualBox is also different from so-called "paravirtualization" solutions such as Xen, which require that the guest operating system be modified.

There are several scenarios that make virtualization attractive:

  • Operating system support. With a virtualizer such as VirtualBox, one can run software written for one operating system on another (say, Windows software on Linux) without having to reboot.
  • Infrastructure consolidation. Since the full performance of today's computers is rarely needed full-time, instead of running many such physical computers, one can "pack" many virtual machines onto a few powerful hosts and balance the loads between them. This can save a lot of hardware costs: e.g. by consolidating many servers into a few. VirtualBox is unique on the virtualization market in that it also allows for consolidating clients onto just a few RDP servers, with full client USB support, while "thin clients" only need to display RDP data.
  • Testing and disaster recovery. Especially with the use of snapshots?, one can mess with a computing environment by running it as a virtual machine. If something goes wrong, one can easily switch back to a previous snapshot and avoid the need of frequent backups and restores.

For a more detailed introduction, see the Wikipedia article about virtual machines.

Virtual Box -- Professional, Flexible, Open

VirtualBox is a general-purpose full virtualizer for x86 hardware. Targeted at server, desktop and embedded use, it is now the only professional-quality virtualization solution that is also Open Source Software.

Some of the features of VirtualBox are:

  • Modularity. VirtualBox has an extremely modular design with well-defined internal programming interfaces and a client/server design. This makes it easy to control it from several interfaces at once: for example, you can start a virtual machine in a typical virtual machine GUI and then control that machine from the command line, or possibly remotely. VirtualBox also comes with a full Software Development Kit: even though it is Open Source Software, you don't have to hack the source to write a new interface for VirtualBox.
  • Virtual machine descriptions in XML. The configuration settings of virtual machines are stored entirely in XML and are independent of the local machines. Virtual machine definitions can therefore easily be ported to other computers.
  • Guest Additions for Windows and Linux. VirtualBox has special software that can be installed inside Windows and Linux virtual machines to improve performance and make integration much more seamless. Among the features provided by these Guest Additions are mouse pointer integration and arbitrary screen solutions (e.g. by resizing the guest window).
  • Shared folders. Like many other virtualization solutions, for easy data exchange between hosts and guests, VirtualBox allows for declaring certain host directories as "shared folders", which can then be accessed from within virtual machines.

A number of extra features are available with the full VirtualBox release only (see the "Editions" page for details):

  • Virtual USB Controllers. VirtualBox implements a virtual USB controller and allows you to connect arbitrary USB devices to your virtual machines without having to install device specific drivers on the host.
  • Remote Desktop Protocol. Unlike any other virtualization software, VirtualBox fully supports the standard Remote Desktop Protocol (RDP). A virtual machine can act as an RDP server, allowing you to "run" the virtual machine remotely on some thin client that merely displays the RDP data.
  • USB over RDP. With this unique feature, a virtual machine that acts as an RDP server can still access arbitrary USB devices that are connected on the RDP client. This way, a powerful server machine can virtualize a lot of thin clients that merely need to display RDP data and have USB devices plugged in.

Tuesday, August 19, 2008

Take on Gates, Kalam tells Indian techies

PUNE: A few months after a disagreement with Microsoft CEO Bill Gates on the issue of software security, President A P J Abdul Kalam on Wednesday called on Indian IT professionals to specialise in open source software rather than relying on proprietary solutions.

Many governments and companies have been increasingly attracted to open source software like Linux. Proprietary software like Microsoft Windows are not free for the user — some governments also feel more secure with an open source system.

Kalam made this clarion call after a tour of the International Institute of Information Technology (IIIT), at the Software Technology Park, Pune, which was dedicated to the nation on Wednesday.

On the extensive use of MS Windows at the institute, Kalam said, "The most unfortunate thing is that India still seems to believe in proprietary solutions. Further spread of IT, which is influencing the daily life of individuals, will have a devastating effect on the lives of society due to any small shift in the business practice involving these proprietary solutions. It is precisely for these reasons open source software needs to be built which will be cost effective for the entire society," said Kalam.

On his differences with Gates, Kalam said, "Our discussions became difficult since our views were different."

He also said there is a need for a "national citizen card" for multiple uses such as voter ID card, bank operations card and ration card. India should emerge not only as a software industry, but as an "ICT (Information and communication technology) industry".

Tuesday, August 5, 2008

Kalam about Leadership

Let me tell you about my experience. In 1973 I became the project director of India's satellite launch vehicle program, commonly called the SLV-3. Our goal was to put India's "Rohini" satellite into orbit by 1980. I was given funds and human resources -- but was told clearly that by 1980 we had to launch the satellite into space. Thousands of people worked together in scientific and technical teams towards that goal.

By 1979 -- I think the month was August -- we thought we were ready. As the project director, I went to the control center for the launch. At four minutes before the satellite launch, the computer began to go through the checklist of items that needed to be checked. One minute later, the computer program put the launch on hold; the display showed that some control components were not in order. My experts -- I had four or five of them with me -- told me not to worry; they had done their calculations and there was enough reserve fuel. So I bypassed the computer, switched to manual mode, and launched the rocket. In the first stage, everything worked fine. In the second stage, a problem developed. Instead of the satellite going into orbit, the whole rocket system plunged into the Bay of Bengal. It was a big failure.

That day, the chairman of the Indian Space Research Organization, Prof. Satish Dhawan, had called a press conference. The launch was at 7:00 am, and the press conference -- where journalists from around the world were present -- was at 7:45 am at ISRO's satellite launch range in Sriharikota [in Andhra Pradesh in southern India]. Prof. Dhawan, the leader of the organization, conducted the press conference himself. He took responsibility for the failure -- he said that the team had worked very hard, but that it needed more technological support. He assured the media that in another year, the team would definitely succeed. Now, I was the project director, and it was my failure, but instead, he took responsibility for the failure as chairman of the organization.

The next year, in July 1980, we tried again to launch the satellite -- and this time we succeeded. The whole nation was jubilant. Again, there was a press conference. Prof. Dhawan called me aside and told me, "You conduct the press conference today."

I learned a very important lesson that day. When failure occurred, the leader of the organization owned that failure. When success came, he gave it to his team. The best management lesson I have learned did not come to me from reading a book; it came from that experience.

-- Dr. A.P.J. ABDUL KALAM

Sunday, July 13, 2008

The Thing about Goals

Ask a kid, what he wants to be when he grows up– you will probably get answers like a fireman, doctor or police officer.

Ask the kid why and he may tell you he wants to be a hero, helping people or somewhere along that line.

Ask the kid does he know what he has to do to become a fireman, doctor, or police officer and most likely, you will be met with silence accompanied by a blank stare.

That’s understandable. They’re kids. They don’t think too much but they know what they want to be.

Change the situation to an adult – what do you get? You’d be surprised how many people will give you the same reaction that a kid does but the different is, they’ll will give you that on the first question.

This is because most adults don’t really know what they want in life– the goal they want to achieve. Some call it ambition, aspiration or a purpose.

Let me think of a good analogy for a goal – it’s like a compass in your live, showing you the direction that you want to head. Without it, you are just wandering around aimlessly.

No wonder so many people feel like their lives lack meaning. In truth, they lack a real goal.

Now, let’s be honest- the word goal might turn you off because it sounds like a lot of work. So think of a goal as a desire instead.

A goal doesn’t have to be a big thing, although ideally, we should have that all major goal to reach for.

I’m not talking about a goal like buying a castle to live in. Something as simple as making sure you get to watch the final season finale of your favorite TV show tomorrow night IS A FORM OF A GOAL. Or being able to take your kids to Disneyland.

See, goals are easy. We basically know what we want. It’s how we can achieve them– that is the hard part.

It’s like taking a trip.

Let’s say you are in Chicago and you want to take a trip to Las Vegas for a holiday. Until you start to plan how you are going to get there, Las Vegas will just be a blurry vision.

Only after you have ironed out the traveling details, then your vacation to Vegas can be a reality. Otherwise, it’ll remain as a hope.

If you have a problem to set your goal, then just think what your desire is today, next week, next month, next year and so on. The pleasure that you want to experience.

Once you have identified a goal, work it out backwards and plan your way to achieve them. Working backwards means you look at what it will take to achieve that goal then work out how to implement those steps.

Suppose you want to be promoted to the next level in your job. What can you do?

Perhaps you can take up more projects to show your commitment. Maybe you don’t have the qualifications for the job, so you take up some night classes to get them.

At this point, you have to bear in mind that while it is good to dream big, goals should not be set unrealistically. If you want to be promoted within the next 6 months but it will take you at least 2 years to get the necessary qualification that is not being realistic. I don’t like to preach ‘thinking big’ if it’s going to lead to disappointment– know what I mean?

But let’s say you want to buy a dream house in two years time and you start saving now, will it be enough for you to afford it? If not, then what can you do to get the additional funds? You know best.

All of these are probably not new to you at all – more like a refreshment.

But if I got your attention this far, then you’re prepared for the next ’secret’.

Setting goals are not much different than believing what you’re going to get.

The secret to achieving big goals is to start achieving small goals first because your mind needs to get use to the fact that your goals can be achieved. Secondly, the role of making decisions plays a huge role in determining your success and the only way to get good at it is to practice often until you master it.

What I’m trying to say is this – you’re ALREADY accomplishing many goals every day or week. You’re just unaware of that and it’s time for you to acknowledge your own success to build the momentum and confident.

Without goals, you will have no compass. Some people may be able to live with that. But they are missing out on that all important substance of living that gives meaning and purpose to life!

So, do you want to be on a definite course towards something or do you want to drive around hoping to get somewhere? Obviously, we both know the answer.

You Can Do It!!!

Tuesday, May 6, 2008

Inter Process Communication - IPC

Inter-Process Communication (IPC) is a set of techniques for the exchange of data among two or more threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC techniques are divided into methods for message passing, synchronization, shared memory, and remote procedure calls (RPC). The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.

Inter-Process Communication, which in short is known as IPC, deals mainly with the techniques and mechanisms that facilitate communication between processes. Now, why do we need special separate mechanisms or techniques for communicating between processes? Why isn't it possible to have information shared between two processes without using such special mechanisms?

Let us start from something primitive. Imagine you have two glasses completely filled with water. One glass contains hot water and the other contains cold water. What can you do to make the temperature of water in both the glasses equal? The simplest answer will be to mix the water from both the glasses in a glass with much bigger capacity. Once water is mixed, the temperature becomes equal after some time. If one can remember, this will be framed as a problem with some numerical data in a High-School Physics examination. If we go by principles, then the phenomenon here is conduction. If we go by our topic of IPC, then we can say that since the two glasses were full, we had to use another glass with a larger capacity to mix the contents in order to balance their heat energy.

Have you ever wondered about the communication medium used in telephones? What about the blood transporting system in the human body which communicates blood to different parts of the body? What about my fingers which are typing this document? My brain is doing so many things at a time. How is it directing one of my fingers to hit one key and some other finger to hit another key? How is it synchronizing the typing work that is done by both my hands? How is it also directing me to type the letters of a word that are actually coming to my mind?

Don't worry. I am not going to give a class in Biology. But it would be good if one can imagine a few more situations where we are using inter-process communication, though not necessarily in the human body or in a computer program.

So, where are we now? We know that some medium or other is required for communication between different processes. Similarly, when it comes to computer programs, we need some mechanism or medium for communication. Primarily, processes can use the available memory to communicate with each other. But then, the memory is completely managed by the operating system. A process will be allotted some part of the available memory for execution. Then each process will have its own unique user space. In no way will the memory allotted for one process overlap with the memory allotted for another process. Imagine what would happen otherwise!

So, now the question - how do different processes with unique address space communicate with each other? The operating system's kernel, which has access to all the memory available, will act as the communication channel. Similar to our earlier example, where the glass with hot water is one process address space, the glass with cold water is another, and the glass with the larger capacity is the kernel address space, so that we pour both hot water and cold water into the glass with larger capacity.

Basic IPCs

The IPC mechanisms can be classified into the following categories as given below:
  1. Pipes
  2. FIFOs
  3. Shared memory
  4. Mapped memory
  5. Message Queues
  6. Sockets


Wednesday, April 30, 2008

Geographical Information System - GIS

Although many GIS have been successfully implemented, it has become quite clear that two-dimensional maps with most complex contours and color schema cannot precisely present multidimensional and dynamic spatial phenomena. Most GISs in use today have not been designed to support multimedia data and therefore have very limited capability due to the large data volumes, very rich semantics and very different modeling and processing requirements.


Introduction

Geographical Information Systems (GIS) are computer-based systems that enable users to collect, store, process, analyze and present spatial data.

It provides an electronic representation of information, called spatial data, about the Earth’s natural and man-made features. A GIS references these real-world spatial data elements to a coordinate system. These features can be separated into different layers. A GIS system stores each category of information in a separate "layer" for ease of maintenance, analysis, and visualization. For example, layers can represent terrain characteristics, census data, demographics information, environmental and ecological data, roads, land use, river drainage and flood plains, and rare wildlife habitats. Different applications create and use different layers. A GIS can also store attribute data, which is descriptive information of the map features. This attribute information is placed in a database separate from the graphics data but is linked to them. A GIS allows the examination of both spatial and attribute data at the same time. Also, a GIS lets users search the attribute data and relate it to the spatial data. Therefore, a GIS can combine geographic and other types of data to generate maps and reports, enabling users to collect, manage, and interpret location-based information in a planned and systematic way. In short, a GIS can be defined as a computer system capable of assembling, storing, manipulating, and displaying geographically referenced information.

GIS systems are dynamic and permit rapid updating, analysis, and display. They use data from many diverse sources such as satellite imagery, aerial photos, maps, ground surveys, and global positioning systems (GPS).

Multimedia and Geographical Information System (GIS)

Multimedia

Multimedia is a technology that encompasses various types of data and presents them in an integrated form. There are several types of data that are used by the technology, including text, graphics, hyperlinks, images, sound, digital and analogue video and animation.

Although many GIS have been successfully implemented, it has become quite clear that two-dimensional maps cannot precisely present multidimensional and dynamic spatial phenomena. Moreover, there is a growing need towards accessing spatial data. It seems that merging GIS and Multimedia is a way to deal with these issues.

The latest advances in computer industry especially in hardware have led to the development of the Multimedia and Geographical Information System (GIS) technologies. Multimedia provides communications using text, graphics, animation, and video. Multimedia GIS systems is a way to overcome the limitations displayed by the technologies when they are used separately. Multimedia can extend GIS capabilities of presenting geographic and other information. The combination of several media often results in a powerful and richer presentation of information and ideas to stimulate interest and enhance information retention. They can also make GIS more friendly and easier to use. On the other hand, multimedia can benefit from GIS by gaining an environment which facilitates the use and analysis of spatial data. The result is a system, which has the advantages of both worlds without retaining most of their disadvantages.


Real Time Linux

Real Time Linux is an extension of the standard Linux operating system. It provides a simple and streamlined real-time executive that runs the standard Linux kernel as its lowest-priority task, while allowing the insertion of user-defined, higher-priority (real-time) tasks, while still allowing full access to the sophisticated services and features of standard Linux.

Flash RAM

Flash RAM is a special kind of memory that most Palm devices use to store the operating system. It has the advantage of allowing operating system upgrades, and it is also used in digital cellular phones, digital cameras, LAN switches, PC cards, digital set top boxes, embedded controllers, and other small devices. An embedded system, like Embedded Linux, does not require a disk drive, although a number of other memory organizations are possible. So if, let's say, Linux runs out of flash memory, it may use part of the flash memory as a read-only file system to store extra programs and static data.


Embedded Linux Applications

Linux now spans the spectrum of computing applications, including IBM's tiny Linux wrist watch, hand-held devices (PDAs and cell phones), Internet appliances, thin clients, firewalls, industrial robotics, telephony infrastructure equipment, and even cluster-based supercomputers. Let's take a look at what Linux has to offer as an embedded system, and why it's the most attractive option currently available.


Emergence of Embedded Systems

The computers used to control equipment, otherwise known as embedded systems, have been around for about as long as computers themselves. They were first used back in the late 1960s in communications to control electromechanical telephone switches. As the computer industry has moved toward ever smaller systems over the past decade or so, embedded systems have moved along with it, providing more capabilities for these tiny machines. Increasingly, these embedded systems need to be connected to some sort of network, and thus require a networking stack, which increases the complexity level and requires more memory and interfaces, as well as, you guessed it, the services of an operating system.


Off-the-shelf operating systems for embedded systems began to appear in the late 1970s, and today several dozen viable options are available. Out of these, a few major players have emerged, such as VxWorks, pSOS, Neculeus, and Windows CE.

Advantages/Disadvantages of using Linux for your Embedded system

Although most Linux systems run on PC platforms, Linux can also be a reliable workhorse for embedded systems. The popular "back-to-basics" approach of Linux, which makes it easier and more flexible to install and administer than UNIX, is an added advantage for UNIX gurus who already appreciate the operating system because it has many of the same commands and programming interfaces as traditional UNIX.

The typical shrink-wrapped Linux system has been packaged to run on a PC, with a hard disk and tons of memory, much of which is not needed on an embedded system. A fully featured Linux kernel requires about 1 MB of memory. However, the Linux micro-kernel actually consumes very little of this memory, only 100 K on a Pentium CPU, including virtual memory and all core operating system functions. With the networking stack and basic utilities, a complete Linux system runs quite nicely in 500 K of memory on an Intel 386 microprocessor, with an 8-bit bus (SX). Because the memory required is often dictated by the applications needed, such as a Web server or SNMP agent, a Linux system can actually be adapted to work with as little as 256 KB ROM and 512 KB RAM. So it's a lightweight operating system to bring to the embedded market.


Another benefit of using an open source operating system like Embedded Linux over a traditional real-time operating system (RTOS), is that the Linux development community tends to support new IP and other protocols faster than RTOS vendors do. For example, more device drivers, such as network interface card (NIC) drivers and parallel and serial port drivers, are available for Linux than for commercial operating systems.


Wednesday, April 9, 2008

Dynamic Method Dispatch - Java

Method overriding forms the basis for one of Java’s most powerful concepts: dynamic method dispatch. Dynamic method dispatch is the mechanism by which a call to an overridden method is resolved at run time, rather than compile time. Dynamic method dispatch is important because this is how Java implements run-time polymorphism.

A superclass reference variable can refer to a subclass object. Java uses this fact to resolve calls to overridden methods at run time. Here is how. When an overridden method is called through a superclass reference, Java determines which version of that method to execute based upon the type of the object being referred to at the time the call occurs. Thus, this determination is made at run time. When different types of objects are referred to, different versions of an overridden method will be called. In other words, it is the type of the object being referred to (not the type of the reference variable) that determines which version of an overridden method will be executed. Therefore, if a superclass contains a method that is overridden by a subclass, then when different types of objects are referred to through a superclass reference variable, different versions of the method are executed.

  1. // Dynamic Method Dispatch
  2. class A {
  3. void callme() {
  4. System.out.println("Inside A's callme method");
  5. }
  6. }
  7. class B extends A {
  8. // override callme()
  9. void callme() {
  10. System.out.println("Inside B's callme method");
  11. }
  12. }
  13. class C extends A {
  14. // override callme()
  15. void callme() {
  16. System.out.println("Inside C's callme method");
  17. }
  18. }
  19. class Dispatch {
  20. public static void main(String args[]) {
  21. A a = new A(); // object of type A
  22. B b = new B(); // object of type B
  23. C c = new C(); // object of type C
  24. A r; // obtain a reference of type A
  25. r = a; // r refers to an A object
  26. r.callme(); // calls A's version of callme
  27. r = b; // r refers to a B object
  28. r.callme(); // calls B's version of callme
  29. r = c; // r refers to a C object
  30. r.callme(); // calls C's version of callme
  31. }
  32. }
The output of the program would be :

Inside A’s callme method
Inside B’s callme method
Inside C’s callme method

This program creates one superclass called A and two subclasses of it, called B and C. Subclasses B and C override callme( ) declared in A. Inside the main( ) method, objects of type A, B, and C are declared. Also, a reference of type A, called r, is declared. The program then assigns a reference to each type of object to r and uses that reference to invoke callme( ). As the output shows, the version of callme( ) executed is determined by the type of object being referred to at the time of the call. Had it been determined by the type of the reference variable, r, you would see three calls to A’s callme( ) method.


Monday, April 7, 2008

Ubuntu Linux : Download or Order Free CD

Ubuntu is a community developed, Linux-based operating system that is perfect for laptops, desktops and servers. It contains all the applications you need - a web browser, presentation, document and spreadsheet software, instant messaging and much more.


The Ubuntu Promise
  • Ubuntu will always be free of charge, including enterprise releases and security updates.
  • Ubuntu comes with full commercial support from Canonical and hundreds of companies around the world.
  • Ubuntu includes the very best translations and accessibility infrastructure that the free software community has to offer.
  • Ubuntu CDs contain only free software applications; we encourage you to use free and open source software, improve it and pass it on.

Get Ubuntu(Download or Order Free CD)

http://www.ubuntu.com/getubuntu/download