Friday, June 02, 2006


ഒരു ബിറ്റ്‌ കഥ


പടിഞ്ഞാറ്‌ തിരി താഴ്ത്തിയ സൂര്യന്‍. പടര്‍ന്നൊഴുകുന്ന നിലാവ്‌. നിറഞ്ഞുയരുന്ന മുല്ലമണം. ഉമ്മറത്ത്‌ കത്തിനില്‍ക്കുന്ന വൈദ്യുതി വിളക്ക്‌. ആളകത്തുണ്ടെന്ന് അനുമാനിക്കാം. ഇങ്ങനെ, ഒരു സ്വിച്ച്‌ കൊണ്ട്‌ ഒരു സമയം വിനിമയം ചെയ്യാവുന്ന ഏറ്റവും കുറഞ്ഞ വിവരമാണ്‌ ഒരു ബിറ്റ്‌.

ഒരു സ്വിച്ച്‌ കൊണ്ട്‌ ആകെ രണ്ടു സന്ദേശങ്ങള്‍ കൈമാറാം. ഉദാ: വിളക്കു തെളിഞ്ഞാണെങ്കില്‍ ആളകത്തുണ്ട്‌. വിളക്കു കെട്ടാണെങ്കില്‍ ആളകത്തില്ല.

രണ്ടു സ്വിച്ച്‌ ഉണ്ടെങ്കില്‍ നാലാകാം സന്ദേശം. ഉദാ: രണ്ടു വിളക്കും തെളിഞ്ഞാണെങ്കില്‍ ആളകത്തുണ്ട്‌. രണ്ടും കെട്ടാണെങ്കില്‍ ആളകത്തില്ല. ഒന്നാം വിളക്കു തെളിഞ്ഞാണെങ്കില്‍ ഇന്നുണ്ട്‌ നാളെയില്ല. രണ്ടാം വിളക്കു തെളിഞ്ഞാണെങ്കില്‍ ഇന്നില്ല, നാളെയുണ്ട്‌.

രണ്ടിനു പകരം എട്ടാണ്‌ സ്വിച്ചുകളെങ്കിലോ? എട്ട്‌ വിളക്കുകളുടെ കൂട്ടത്തെ 256 വിവിധ രീതികളില്‍ കത്തിച്ചും കെടുത്തിയും കാണിക്കാം. ഉദാ: എട്ടു വിളക്കും ഒരുമിച്ചു കത്തിയാല്‍ ആളകത്തുണ്ട്‌. ഇതില്‍ ഓരോ വിളക്കും ഒരു ബിറ്റിനെ പ്രതിനിധാനം ചെയ്യുന്നു. ഇങ്ങനെയുള്ള എട്ടു ബിറ്റുകളുടെ കൂട്ടത്തെ ഒരു ബൈറ്റ്‌ എന്നു പറയുന്നു.

കൈകൊണ്ട്‌ സ്വിച്ച്‌ പ്രവര്‍ത്തിപ്പിക്കാന്‍ സമയമെടുക്കും. വൈദ്യുതി ഉപയോഗിച്ച്‌ മിന്നല്‍ വേഗത്തില്‍ പ്രവര്‍ത്തിപ്പിക്കാവുന്ന സ്വിച്ചുകളുണ്ട്‌. ഇവയെ ട്രാന്‍സിസ്റ്ററുകള്‍ എന്നു പറയുന്നു. മിന്നല്‍വേഗത്തില്‍ പ്രവര്‍ത്തിക്കുന്ന ലക്ഷക്കണക്കിന്‌ സ്വിച്ചുകള്‍ ഉപയോഗിച്ചാണ്‌ കമ്പ്യൂട്ടറുകള്‍ പ്രവര്‍ത്തിക്കുന്നത്‌.

വൈദ്യുതി ഉപയോഗിച്ചുള്ള ആശയവിനിമയത്തിനും ശേഖരണത്തിനും ഒരു അപാകതയുണ്ട്‌. വൈദ്യുതി നിലച്ചാല്‍ ശേഖരിച്ച വിവരവും അപ്രത്യക്ഷമാകും. വൈദ്യുതിയെ ആശ്രയിക്കാതെ വിവരം ശേഖരിച്ചുവക്കാന്‍ കമ്പ്യൂട്ടറുകളില്‍ കാന്തശക്തിയെ ഉപയോഗപ്പെടുത്തുന്നു. ഹാര്‍ഡ്‌ ഡിസ്ക്കും ഫ്ലോപ്പി ഡിസ്ക്കും പ്രവര്‍ത്തിക്കുന്നത്‌ കാന്തശക്തിയെ ആസ്പദമാക്കിയാണ്‌.

സി. ഡി. യിലും ഡി. വി. ഡി യിലും കുഴികുത്തിയാണ്‌ വൈദ്യുതിയുടെ അഭാവത്തിലും വിവരം സൂക്ഷിക്കുന്നത്‌. ലേസര്‍ രശ്മികള്‍ ഉപയോഗിച്ച്‌ കുഴികുത്തുകയും പിന്നീട്‌ ഇങ്ങനെ ശേഖരിച്ച വിവരത്തെ വായിച്ചെടുക്കാന്‍ ഈ ലേസര്‍ രശ്മിതന്നെ ഉപയോഗിക്കുകയും ചെയ്യുന്നു. കുഴിയില്‍ തട്ടി രശ്മി പ്രതിഫലിക്കാതിരുന്നാല്‍ വിളക്കു കെട്ടതിനു തുല്യം. രശ്മി പ്രതിഫലിച്ചാല്‍ വിളക്കു തെളിഞ്ഞതിനു തുല്യം. ഇതേ തത്വം തന്നെയാണ്‌ ബാര്‍ കോഡുകളിലും ഉപയോഗിക്കുന്നത്‌. കുഴിക്കു പകരം കറുത്ത വരയാണെന്നു മാത്രം.

ഡി. വി. ഡി യില്‍ കുഴികുത്താന്‍ ഇത്രയും നാളൂം ചുവന്ന രശ്മികളാണ്‌ ഉപയോഗിച്ചിരുന്നത്‌. ചുവപ്പിനു പകരം നീല രശ്മികളാണെങ്കില്‍ ഒരു നിശ്ചിതസ്ഥലത്ത്‌ കൂടുതല്‍ കുഴികള്‍ കുത്താം. കുഴികളുടെ വലിപ്പം കുറവായതാണു കാരണം. മൂര്‍ച്ഛയുള്ള സൂചിയും മൂര്‍ച്ഛ ഇല്ലാത്ത സൂചിയും ഉപയോഗിക്കുന്നതു പോലെ. നീല രശ്മിക്ക്‌ നീളം കുറവായതുകൊണ്ട്‌ അവയെ ചെറിയ സ്ഥലത്ത്‌ കേന്ദ്രീകരിക്കാന്‍ സാധിക്കും. കൂടുതല്‍ കുഴികളെന്നാല്‍ കൂടുതല്‍ സംഭരണശേഷി എന്നര്‍ത്ഥം.

നീല ലേസര്‍ രശ്മികള്‍ ഉപയോഗിക്കുന്ന ഈ സാങ്കേതികവിദ്യ അടുത്തകാലത്ത്‌ Blu-ray Disc എന്ന പേരില്‍ സോണിയും, HD-DVD എന്ന പേരില്‍ തൊഷീബായും മത്സരിച്ച്‌ വിപണിയില്‍ എത്തിച്ചിട്ടുണ്ട്‌.

10 Comments:

Blogger കേരളീയന്‍ said...

കൊള്ളാം, ശൈലി ‘ക്ഷ’ പിടിച്ചു. ലളിതമായി ശാസ്ത്രവിഷയങ്ങള്‍ എഴുതാന്‍ പരിഷത്തുകാരെപ്പോലെ ഇപ്പോള്‍ സീയീസും. സയന്‍സ് ക്രീം വായിച്ചു വളര്‍ന്ന കുട്ടിക്കാ‍ലം ഓര്‍ത്തു പോയി.

12:56 PM  
Blogger evuraan said...

സീയെസ്സ്,

വളരെ നല്ല ലേഖനം. ഇനിയും ഉപമകളോടെ ഇത്തരം ലേഖനങ്ങള്‍ക്കായ് കാത്തിരിക്കുന്നു..

1:28 PM  
Anonymous Anonymous said...

കൊള്ളാം! വളരെ വളരെ ലളിതമനോഹരമായി എഴുതിയിരിക്കുന്നു.


യുണികോഡിനെക്കുറിച്ച് ലേഖനമെഴുതാന്‍ തുടങ്ങിയപ്പോള്‍ ഈ ഉദാഹരണം തന്നെയായിരുന്നു മനസ്സില്‍. പക്ഷേ മടിപിടിച്ച് വിളക്കൊക്കെ കെട്ടുപോയി.

നാം ഇവിടെയൊക്കെ പറയുന്ന ASCII എന്ന പഴയതരം ഫോണ്ടുകള്‍ ഇത്തരം എട്ടു സ്വിച്ച് വെച്ചാണ് നിര്‍മ്മിച്ചിരിക്കുന്നത്. അതിനാല്‍ ആകെ 256 തരം അക്ഷരരൂപങ്ങളേ അതില്‍ വരുത്താന്‍ പറ്റൂ. അതില്‍ മിക്കവാറും ഇംഗ്ലീഷിനു തന്നെ വേണം. അതുകൊണ്ട് എല്ലാ ഭാഷകളിലുമുള്ള എല്ലാ അക്ഷരരൂപങ്ങളും ASCII രീതിയനുസരിച്ച് രേഖപ്പെടുത്താന്‍ പറ്റില്ല.

യുണികോഡിലാവട്ടെ, 16 സ്വിച്ചുണ്ട് (അഥവാ സ്ഥാനവിലകള്‍ ഉണ്ട്). 16 എണ്ണം നിരത്തി ഉപയോഗിച്ചാല്‍ അതു വെച്ച് നമുക്ക് 256x256 = 65536 വ്യത്യസ്തമായ അക്ഷരരൂപങ്ങളുണ്ടാക്കാം. അപ്പോള്‍ ലോകത്തിലെ എല്ലാ ഭാഷകളിലുമുള്ള എല്ലാ അക്ഷരങ്ങളും ഒരൊറ്റ സ്കീമില്‍ ഉള്‍ക്കൊള്ളിക്കാന്‍ പറ്റും.

അതുകൊണ്ടാണ് യുണികോഡ് ഒരു 16-ബിറ്റ് സംഹിതയാണെന്നു പറയുന്നതും.

-v

2:51 PM  
Blogger ഉമേഷ്::Umesh said...

വളരെ നല്ല ലേഖനം. ശാസ്ത്രവിഷയങ്ങള്‍ ഇങ്ങനെ ലളിതമായി പറഞ്ഞുതരുന്ന ബ്ലോഗുകള്‍ ഇനിയും നമുക്കു് ആവശ്യമാണു്.

വിശ്വം (അനോണി വിശ്വമല്ലേ?) പറഞ്ഞ ഉദാഹരണം അത്ര ശരിയാണോ എന്നൊരു സംശയം. പതിനാറു ബിറ്റുള്ള ഒരു വലിയ അക്ഷരസങ്കേതം അല്ലല്ലോ യൂണിക്കോഡ് യഥാര്‍ത്ഥത്തില്‍.

യൂണിക്കോഡിനെപ്പറ്റി നല്ല ഒരു ലേഖനം വേണ്ടതാണു്. സിബു, വിശ്വം, പെരിങ്ങോടന്‍ തുടങ്ങിയവര്‍ ഒന്നു ശ്രമിച്ചിരുന്നെങ്കില്‍...

2:57 PM  
Anonymous Anonymous said...

v എന്നെഴുതിയാല്‍ v എന്നു തന്നെ വായിച്ചാല്‍ പോരേ? ;-)


യുണികോഡിനെക്കുറിച്ച് ലളിതമായി എഴുതുക എന്നതത്ര ലളിതമായ പരിപാടിയല്ല. പ്രത്യേകിച്ച് മനസ്സിലാക്കേണ്ടവര്‍ തീര്‍ത്തും ലാളിത്യമുള്ളവരാവുമ്പോള്‍.
ഒരു പക്ഷേ അതിനു പറ്റിയ ആള്‍ ഈ സീയെസ്സ് തന്നെയാവും എന്നാണു തോന്നുന്നത്. സീയെസ്സിന്റെ ശൈലി അതിവിശേഷമാണ്!


ASCII 8 ബിറ്റ് ആണെന്നും Unicode 16 ബിറ്റ് ആണെന്നും വളരെ പരത്തിപ്പറയാമെന്നേയുള്ളൂ. കൂടുതല്‍ ചികഞ്ഞു ചെന്നു നോക്കുമ്പോള്‍ ഇതു കൃത്യമാവില്ല. (Original ASCII is a 7-bit scheme defining 128 characters!)


16 ബിറ്റിലുള്ളത് യുണികോഡിന്റെ BMP(Basic Multilingual Plane) ആണ്. വാസ്തവത്തില്‍ ഇത് 32 ബിറ്റ് വരെ വളരും. പക്ഷേ അതൊക്കെ വലിയ ക്ലാസ്സുകളില്‍ പഠിച്ചാലും മതി.

യുണികോഡിലുള്ള ഒരു ഫോണ്ട് ഫയലില്‍ എല്ലാ ഭാഷയിലെ അക്ഷരങ്ങളും അടക്കം ചെയ്തിട്ടുണ്ടാവണമെന്നില്ല. എങ്കിലും ഓരോ ഭാഷയ്ക്കും നീക്കിവെച്ചിട്ടുള്ള നിശ്ചിതസ്ഥാനങ്ങള്‍ അങ്ങനെതന്നെയുണ്ടാവും.

ഉദാഹരണത്തിന് നമ്മുടെ കെവിന്റെ മകള്‍ അഞ്ജലി.
അഞ്ജലിയില്‍ എല്ലാ ഇംഗ്ലീഷ് അക്ഷരങ്ങളും (വലിയമ്മാവന്മാരും കുഞ്ഞമ്മാവന്മാരും), എല്ലാ മലയാള അക്ഷരങ്ങളും, ഇംഗ്ലീഷിലും മലയാളത്തിലുമുള്ള അക്കങ്ങളും പിന്നെ സാധാരണ ഉപയോഗിച്ചുവരുന്ന മറ്റു ചിഹ്നങ്ങളും ഉണ്ട്. ഇതു കൂടാതെ ദേവനാഗരിയില്‍ പെടുന്ന പ്രശ്ലേഷം (വന്ദേऽഹം എന്നതിലെ ऽ) പോലെ ചിലതുകൂടിയുണ്ട്. അതല്ലാതെ മറ്റു ഭാഷാऽക്ഷരങ്ങള്‍ ഒന്നുമില്ല.

എന്നിരുന്നാലും നാളെ കെവിനു തോന്നുകയാണെങ്കില്‍ (അങ്ങനെയും തോന്നിക്കണേ ഈശ്വരാ...!) ഇതേ അഞ്ജലിയില്‍ ദേവനാഗരിയും തമിഴും കന്നഡവും പിന്നെ ഏതൊക്കെ വേണോ അതൊക്കെയും ഇപ്പോഴുള്ള അക്ഷരക്രമത്തില്‍ മാറ്റങ്ങളൊന്നും വരുത്താതെ തന്നെ ചേര്‍ക്കാവുന്നതേയുള്ളൂ.

ASCIIയില്‍ അതു പറ്റില്ല!

ഘട്ടം ഘട്ടമായാണ് യുണികോഡ് വികസിക്കുന്നത്. ഇപ്പോള്‍ UTF-8 എന്നും UTF-16 എന്നും പറയുന്നതൊക്കെ ഒരു നാള്‍ UTF-32 ആകും. എന്നിരുന്നാലും UTF-8 ലെ അക്ഷരങ്ങളൊക്കെ അപ്പോഴും അതേ പോലെ ഉപയോഗിക്കാം.

ചുരുക്കത്തില്‍ ഈ പോസ്റ്റുകളിലും കമന്റുകളിലും ഒക്കെ വരുന്ന മലയാളം ഒരുപാടൊരുപാടുകാലം അര്‍ത്ഥവത്തായ മലയാളം വാക്കുകളായിത്തന്നെയിരിക്കും. ASCII മുഖംമൂടി അണിഞ്ഞുവരുന്ന വായ്ക്കരി ഗദ്യമൊക്കെ അനതിവിദൂരഭാവിയില്‍ ചത്തും പോവും.

(ഭയങ്കര ലളിതം! അല്ലേ?)

4:14 PM  
Blogger പാപ്പാന്‍‌/mahout said...

പോസ്റ്റും കമന്റുകളും വളരെ വിജ്ഞാനപ്രദം.

കേരളീയാ, സയന്‍‌സ്‌ക്രീം പോലൊരു സംരംഭം വേറെയെവിടെയും കണ്ടിട്ടില്ലെന്നു തോന്നുന്നു. കുറേക്കാ‍ര്യങ്ങള്‍ ആ പുസ്തകങ്ങള്‍ പറഞ്ഞുതന്നിരുന്നു അല്ലേ? “പിരമിഡിന്റെ നാട്ടിലെ” പെപ്പിയെയും കൂട്ടരെയും ഞാന്‍ ഇപ്പോഴും ഇടയ്ക്കിടയ്ക്കോര്‍ക്കും.

4:40 PM  
Blogger SEEYES said...

യൂണികോഡിനെ പറ്റി ആശാന്‍‌മാര്‍ തന്നെ എഴുതുന്നതായിരിക്കും ബുദ്ധി. തല ഇരിക്കുമ്പോള്‍ വാലാടരുതല്ലോ. -v ഇതുവരെ എഴുതിയത് വായിച്ചപ്പോള്‍ തന്നെ ധാരാളം കാര്യങ്ങള്‍ മനസ്സിലായി.

4:47 PM  
Blogger Cibu C J (സിബു) said...

വരവീ,

യുണീക്കോഡ് ഒരു നമ്പറിംഗ് സ്കീം മാത്രമാണ്. അതായത്‌, മലയാളം ‘അ’-ക്ക്‌ 3333 എന്ന സംഖ്യ. ഒരു സംഖ്യയെ ഈ പറഞ്ഞ ബിറ്റുകള്‍ വച്ച്‌ അവതരിപ്പിക്കുന്ന (representation) ഒരു രീതി മാത്രമാണ് UTF-8. യുണീക്കോഡ് റപ്രസെന്റേഷനെ പറ്റി ഒന്നും പറയുന്നില്ല. അല്ലാതെ, യുണീക്കോഡ് വളരുന്നതിനനുസരിച്ച്‌ UTF-16, UTF-32 എന്നിങ്ങനെ പോകേണ്ടതുമില്ല. ASCII-ടെ 7 ബിറ്റ് റപ്രസെന്റേഷനു പ്രശ്നമൊന്നും ഉണ്ടാക്കാത്തതിനാല്‍ UTF-8 ഇന്റര്‍നെറ്റില്‍ വളരെ പോപ്പുലറായി. എന്നാല്‍ വിവിധ ഓപറേറ്റിങ് സിസ്റ്റങ്ങളുടെ API-കള്‍ യുണീക്കോഡ്‌ ടെക്സ്റ്റ് സംസാരിക്കാന്‍ UTF-8 ഉപയോഗിച്ചുകൊള്ളണമെന്നില്ല. ഉദാഹരണത്തിന് മൈക്രോസോഫ്റ്റ് UTF-32 ആണ് ഉപയോഗിക്കുന്നത്‌.

5:01 PM  
Anonymous Anonymous said...

nannayi, ippol exhutharille

1:03 AM  
Anonymous Anonymous said...

kollaaamm........... ezhuthu thudaroo.........

5:15 AM  

Post a Comment

<< Home

all content ©SEEYES