Electronic Design and Automation Lab: Migration to Scilab

The third semester B.Tech Electronics and Communication Engineering programme of Kerala Technological University (KTU) has a lab course on electronic design and automation. The course aims to introduce the students to various electronic design and simulation tools like SPICE, MATLAB and HDL.

diode

I had proposed the migration of the MATLAB section of this lab course to SCILAB, a popular open source alternative to MATLAB. The migration is now complete with support from FOSSEE . The source code of the experiments are now available here. A detailed lab manual will be made available soon.

spiral

 

ഡോക്ടർ ബി എം ഹെഗ്ഡേ – മാതൃഭൂമി ആഴ്ചപ്പതിപ്പിൽ വന്ന അഭിമുഖത്തെപ്പറ്റി

മാതൃഭൂമി ആഴ്ചപ്പതിപ്പിന്റെ കഴിഞ്ഞയാഴ്ച പുറത്തിറങ്ങിയ പതിപ്പിൽ(ലക്കം 16) ഡോ ബി എം ഹെഗ്‌ഡെയുമായി അഭിമുഖമുണ്ട്. കവർസ്റ്റോറിയാണു്.  ലോകപ്രശസ്ത ജനപക്ഷ ഡോക്ടറാണു്, ആരോഗ്യം സമൂഹത്തിന്റെ ആരോഗ്യമാണെന്നൊക്കെ പറഞ്ഞുള്ള ആമുഖത്തിനപ്പുറം വായിച്ച് പോയപ്പോൾ എന്റെ പരിമിതമായ ശാസ്ത്രവിജ്ഞാനത്തിനൊരിക്കലും അംഗീകരിക്കാൻ കഴിയാത്ത കപടവാദങ്ങളാണു് കാണാനിടയായതു്.  പത്മ ഭൂഷൺ ലഭിച്ച, മണിപ്പാൽ യൂണിവേഴ്സിറ്റിയുടെ വൈസ് ചാൻസ്‌ലറായിരുന്ന, നിരവധി ബിരുദങ്ങളും വർഷങ്ങളുടെ വൈദ്യശാസ്ത്ര അനുഭവപരിചയവുമുള്ള ഇദ്ദേഹം ഇങ്ങനെയൊക്കെ ശാസ്ത്രത്തെ അവതരിപ്പിക്കുന്നതിൽ എനിക്കത്ഭുതമുണ്ട്.

ആരോഗ്യരംഗത്തെ സാമ്പത്തിക ചൂഷണങ്ങൾ, ഡോക്ടർ രോഗി ബന്ധങ്ങളിലെ തെറ്റായ പ്രവണതകൾ തുടങ്ങി ആർക്കും അംഗീകരിക്കാൻ അത്ര വിഷമമൊന്നുമില്ലാത്ത വിഷയങ്ങളുടെ മറവിൽ ആധുനിക വൈദ്യശാസ്ത്രത്തെയും അതിന്റെ നേട്ടങ്ങളെയും അപ്പാടെ നിരാകരിയ്ക്കുകയാണു് ഹെഗ്‌ഡെ ചെയ്യുന്നതു്. അദ്ദേഹത്തിനു ലഭിച്ച ശാസ്ത്ര വിദ്യാഭ്യാസത്തെയും അലങ്കരിച്ച പദവികളെയും അപ്പാടെ ചോദ്യചിഹ്നമാക്കുന്ന രീതിയിലുള്ള നിരീക്ഷണങ്ങൾ നമ്മുടെ നാട്ടിലെ ലാടവൈദ്യൻമാരുടെയോ കപടശാസ്ത്രവാദക്കാരുടെയോ വാദങ്ങളിൽ നിന്നും ഒട്ടും ഭിന്നമല്ല.

അഭിമുഖത്തിൽ നിന്നുള്ള ചില ഭാഗങ്ങൾ താഴെകൊടുക്കുന്നു.

“ഞാൻ പഠിക്കുന്ന കാലത്തു് ഹൃദയാഘാതം വന്നാൽ രോഗിക്ക് ഓക്സിജൻ നൽകുമായിരുന്നു. ഹൃദയാഘാതം വന്നവർക്ക് ഓക്സിജന്റെ അളവ് കുറച്ചുമതിയെന്ന്(Hypoxia)  പിന്നീടാണു് കണ്ടെത്തിയതു്. എത്രപേരെ നമ്മൾ ഓക്സിജൻ കൊടുത്തു് കൊന്നു?” ഹാർവാഡ് മെഡിക്കൽ സ്കൂളിൽ നിന്നും നോബൽ സമ്മാനം നേടിയ ബെർണാഡ് ലോണിന്റെ കീഴിൽ കാർഡിയോളജിയിൽ പരിശീലനം നേടിയ ആളാണ് ഡോ ഹെഗ്ഡെ എന്നു് അദ്ദേഹത്തിനെക്കുറിച്ചുള്ള വിക്കിപീഡിയ ലേഖനത്തിൽ പറയുന്നു.  ഓക്സിജൻ കൊടുത്തുവെന്ന അമിതമായി ലളിതവത്കരിച്ച മേൽപ്രസ്താവന കൊണ്ട് ഡോ ഹെഗ്ഡെ എന്താണുദ്ദേശിക്കുന്നതു്? ഓക്സിജന്റെ അളവു ക്രമീകരിച്ചുകൊണ്ടുള്ള ചികിത്സാപഠനങ്ങൾ നടന്നിട്ടുണ്ട് എന്നതുകൊണ്ട് ഓക്സിജൻ കുറച്ചു മതിയെന്നും ഓക്സിജൻ കൊടുത്തുകൊന്നുവെന്നും പറയുന്നതു് അദ്ദേഹത്തിന്റെ വിദ്യാഭ്യാസത്തിനു ചേർന്നതാണോ? ഇതുവായിക്കുന്ന സാധാരണക്കാർ എന്താണതിൽ നിന്നും മനസ്സിലാക്കേണ്ടതു്?.

വെളിച്ചെണ്ണയുടെ മാഹാത്മ്യത്തെപ്പറ്റി അദ്ദേഹം വിവരിക്കുന്നുണ്ട്. അമേരിക്കയിൽ അൾഷെമേഴ്സിനും ജീവിതശൈലീരോഗങ്ങൾക്കും വെളിച്ചെണ്ണ ഡോക്ടർമാർ നിർദ്ദേശിക്കുന്നുവെന്നു അദ്ദേഹം പറയുന്നു. അറുപതുകളിൽ ഡോ ഹെഗ്ഡേ ഇതുപറഞ്ഞപ്പോൾ ആരും കണക്കിലെടുത്തില്ല പോലും. “നവജാതശിശുവിനുപോലും വെളിച്ചെണ്ണ വായിൽവെച്ച് കൊടുക്കാം, വായിൽവെച്ചുതന്നെ ദഹിക്കും”-മലയാളികൾ വെളിച്ചെണ്ണ ഉപേക്ഷിക്കാനുള്ള ബുദ്ധി കാണിച്ചതുകൊണ്ടാണു് രോഗങ്ങൾ കൂടിയതു്. നവജാതശിശുക്കൾക്ക് മുലപ്പാലിനുപകരം വെളിച്ചെണ്ണ കൊടുക്കാം എന്ന് അദ്ദേഹം വേറേ പലയിടങ്ങളിൽ പറയുന്നതായും വായിച്ചു(https://www.youtube.com/watch?v=NwIKE590_8Q). ഈ വാദത്തിന്റെ ഉള്ളടക്കത്തിലേയ്ക്ക് ഞാൻ പോകുന്നില്ല, പക്ഷേ ശാസ്ത്രീയമായ നിഗമനങ്ങളിൽ എത്തിച്ചേരുന്ന മാർഗങ്ങളും അവയുടെ അംഗീകാരത്തിനു് അവലംബിയ്ക്കുന്ന മാർഗങ്ങളും അറിയൊന്ന ഏതൊരാൾക്കും ഈ “ഒറ്റമൂലി” വാദങ്ങൾ മുഖവിലയ്ക്കെടുക്കാൻ എളുപ്പമല്ല. പൊതുജനങ്ങളുടെ മുന്നിൽ ഇത്തരം വാദങ്ങൾ അവതരിപ്പിക്കുന്നതു് എത്രമാത്രം ഉത്തരവാദിത്തത്തോടുകൂടിയായിരിക്കണം എന്നും അദ്ദേഹത്തിനറിയേണ്ടതല്ലേ?

“കോശങ്ങൾ സ്വയം അറ്റകുറ്റപ്പണികൾ നടത്തുമെന്ന വിപ്ലവകരമായ അറിവ് ശാസ്ത്ര ലോകം രഹസ്യമാക്കിവെച്ചിരിക്കുകയാണു്”. ഈ രഹസ്യം ഡോ ഹെഗ്ഡേ മാതൃഭൂമി ആഴ്ചപ്പതിപ്പ് ലക്കം 16 ൽ പുറത്തുവിട്ടു.

“അവയവം മാറ്റിവെയ്ക്കൽ ഒരു രോഗത്തിനും പരിഹാരമല്ല, കാറിനെപ്പോലെ യാന്ത്രികമായാണ് ശരീരം പ്രവർത്തിക്കുന്നതെന്ന പഴയ ശാസ്ത്രം പഠിച്ചവരാണു് ട്രാൻസ്പ്ലാന്റേഷൻ തുടരുന്നത്”

“ശാസ്ത്രത്തെ കിഴക്കെന്നും പടിഞ്ഞാറെന്നും നാം ഒരിക്കലും വേർതിരിക്കേണ്ടതില്ല ” എന്നുപറയുന്ന ഡോ ഹെഗ്ഡേ അടുത്ത വാചകത്തിൽ പറയുന്നു:  “പാശ്ചാത്യ ശാസ്ത്രം ഇന്ന് എല്ലാ രംഗത്തും ആധിപത്യം നേടിയിട്ടുണ്ട്, അതു് താമസിയാതെ തകർന്നു വീഴും”. ഡോ ഹെഗ്ഡേ അദ്ദേഹത്തിന്റെ പ്രൊഫഷനിൽ സ്വയം വിശ്വസിക്കുന്നുണ്ടോ എന്നാർക്കെങ്കിലും ചോദിക്കാൻ തോന്നിയാൽ കുറ്റപ്പെടുത്താനാവുമോ?

“പണ്ട് അമ്പലങ്ങളിൽ വെള്ളിപ്പാത്രത്തിൽ തീർഥജലം നൽകുമായിരുന്നു, പന്ത്രണ്ടുവർഷമൊക്കെ മണ്ണിനടിയിൽ സൂക്ഷിക്കുന്ന നാനോപാർട്ടിക്കിൾസ് അതിലുണ്ടാവും. “.  ക്വാണ്ടം മെക്കാനിക്സ് പോലെ പറയുന്ന വിഷയത്തിനു കനം കൂട്ടാൻ വേണ്ടി ചേർക്കുന്ന മറ്റൊരു വാക്കാണ് നാനോ സയൻസ്. കേൾക്കുന്നവർക്ക് അറിയാൻ സാധ്യത കുറവാണെന്ന വിശ്വാസമാണതിനു പിന്നിൽ. ഡോ ഗോപാലകൃഷ്ണനൊക്കെ നന്നായി ഉപയോഗിക്കുന്ന വിദ്യയാണതു്. വെള്ളത്തിൽ നാനോ പാർട്ടിക്കിൾസ് ഉണ്ടാവും എന്നതുകൊണ്ട് എന്തുണ്ടാവാനാണു്? വെള്ളത്തിൽ മൺതരികളുണ്ടാവുമെന്നോ, പായലുണ്ടാവുമെന്നോ പറയുന്നതിനേക്കാൾ ഇതിനൊക്കെ എന്തെങ്കിലും അർത്ഥമുണ്ടോ?  “ഞങ്ങളുടെ നാനോ സിൽവർ ലായനിക്ക് വില പത്തുരൂപയേ ഉള്ളൂ, ഉപകാരികളായ അണുക്കളെ അതു നശിപ്പിക്കില്ല, രോഗകാരികളെ പെരുകാൻ അതു് അനുവദിക്കുകയുമില്ല”-പേറ്റന്റ് കിട്ടാൻ കൈക്കൂലി കൊടുക്കാൻ തയ്യാറാകാത്തതുകൊണ്ട് പുറത്തിറക്കിയിട്ടില്ലെന്നും അദ്ദേഹം പറയുന്നു. ഹൃദയാഘാതം തടയാൻ ഒരു ഇലക്ട്രോമാഗ്നറ്റിക് ഉപകരണവും ഇദ്ദേഹം കണ്ടുപിടിച്ചതായി അവകാശപ്പെടുന്നു. അതിനും പേറ്റന്റ് കിട്ടിയിട്ടില്ല. കൈക്കൂലി തന്നെ പ്രശ്നം.

“പ്രാചീനമായ ആചാരങ്ങളെ ശാസ്ത്രീയമായി വിശകലനം ചെയ്തു് നമുക്ക് പല ആരോഗ്യപ്രശ്നങ്ങളെയും പരിഹരിക്കാം”. പ്രധാനമന്ത്രി മുതൽ നാട്ടിലെ ഒറ്റമൂലി വൈദ്യൻമാർവരെ  പറയുന്ന ഈ മന്ത്രം ഇദ്ദേഹവും ഉരുവിട്ടു. ഒരു കണക്കിൽ അഭിമുഖത്തിന്റെ ഒറ്റവാചകത്തിലുള്ള ചുരുക്കമായും ഈ പ്രസ്താവനയെ പരിഗണിക്കാം. പക്ഷേ അഭിമുഖം വരും ലക്കങ്ങളിൽ തുടരും എന്നു മുന്നറിയിപ്പുണ്ട്.

“നിങ്ങൾ ആരോഗ്യത്തോടെയിരിക്കുമ്പോൾ ഒരിക്കലും ഡോക്ടറുടെയടുത്തു് ചെക്ക് ചെയ്യാൻ പോകരുതു്” ഹെൽത്ത് ചെക്കപ്പുകൾക്കെതിരെ അദ്ദേഹം സംസാരിക്കുന്നുണ്ട്.

“ഡോക്ടർമാർ ഹാർട്ട് ബ്ലോക്കെന്നു പറഞ്ഞാൽ ഒരിക്കലും ഭയക്കരുതു്, എല്ലാ മനുഷ്യർക്കും ബ്ലോക്ക് ഉണ്ടാവും” -” സ്കൂളിൽ പോകുന്ന കുട്ടികൾക്കും ബ്ലോക്കുണ്ടാവും, വിയറ്റ്നാം കൊറിയൻ യുദ്ധങ്ങളിൽ വെടിയേറ്റ് വീണ അമേരിക്കൻ പട്ടാളക്കാരിൽ എല്ലാർക്കും ബ്ലോക്കുണ്ടായിരുന്നു!”. വെടിയേറ്റ് മരിച്ച പട്ടാളക്കാരുടെ ബ്ലോക്കിന്റെ കാര്യം സ്വല്പം വിശ്വസിക്കാൻ തോന്നുന്നു. ലേസർ ബൈപാസ് സർജറി നടത്തിയ  തെരഞ്ഞെടുത്തവരിൽ നടത്തിയപ്പോൾ, കുറച്ചുപേർക്ക് വെറും ബോധം കെടുത്തുകയേ ഉണ്ടായുള്ളൂ. “പക്ഷേ അവർ പുർണ ആരോഗ്യവാൻമാരായിരുന്നു. ശസ്ത്രക്രിയ നടത്തിയവർക്ക് ആരോഗ്യപ്രശ്നങ്ങളുണ്ടായിരുന്നു. പ്ലസിബോ ഇഫക്ടാണ് രോഗം മാറ്റുന്നതെന്ന് ഇതു് സംശയാതീതമായി തെളിയിക്കുന്നു”. പൂർണ ആരോഗ്യമുള്ളവരിലാണോ ഇങ്ങനെ ബോധംകെടുത്തി ശസ്ത്രക്രിയ നടത്തിയെന്നു പറഞ്ഞു വിശ്വസിപ്പിച്ചതെന്നു വ്യക്തമല്ല.

“രോഗമൊന്നുമുണ്ടാവില്ലെന്ന ശുഭാപ്തിവിശ്വാസമുള്ളവരായാൽ തന്നെ ശരീരത്തിലെ കാൻസർ കോശങ്ങൾക്ക് പെരുക്കാൻ കഴിയില്ല”. കാൻസർ ചികിത്സയ്ക്ക് സെൽഫ് ഹെൽപ് പുസ്തകങ്ങൾ ഉപയോഗിക്കാമോ?

“അറിവില്ലായ്മയുണ്ടാക്കുന്ന അഹങ്കാരമാണ് എല്ലാ ആരോഗ്യപ്രശ്നങ്ങളും സൃഷ്ടിക്കുന്നതു്. പണം മുടക്കി ലോകത്തൊരാൾക്കും ആരോഗ്യം വാങ്ങാനാവില്ല”

“പരിണാമജീവശാസ്ത്രം പഠിച്ചാൽ ഡാർവിനും മെൻഡലുമൊക്കെ പഴഞ്ചനാണെന്നും അണുക്കളിൽ നിന്നും പരിണമിച്ചുണ്ടായവരാണ് മനുഷ്യരെന്നും ബോധ്യമാകും”.

“ഫിസിക്സിലെ തത്വമെടുത്തു് വിമാനവും മിസൈലുകളുണ്ടാക്കുന്നതും ശാസ്ത്ര സാങ്കേതികവിദ്യയുടെ പേരിൽ ഒരു ലക്ഷം കോടി ചെലവു ചെയ്തു് ചന്ദ്രനിൽ പോകുന്നതും വെറും ഈഗോയെ തൃപ്തിപെടുത്തലാണ്. അതുകൊണ്ട് ഭൂരിപക്ഷം വരുന്ന സാധാരണകാർക്കും ഒരു നേട്ടവും ഇല്ല” – ഇന്ത്യയിലെ ശാസ്ത്ര വിദ്യാർത്ഥികൾക്കും പൊതുജനത്തിനും ഇദ്ദേഹം നൽകുന്ന സന്ദേശമെന്താണു്?

ഇനിയുമുണ്ട്. പക്ഷേ ഇതെല്ലാം നമ്മുടെ നാട്ടിലെ ലാടവൈദ്യൻമാരും വടക്കഞ്ചേരിമാരും ഗോപാലകൃഷ്ണനെപ്പോലുള്ളവരും എത്രയോവട്ടം പറഞ്ഞ് നമ്മൾ കേട്ടിട്ടുള്ളതുതന്നെ. പ്രതിരോധവാക്സിനുകളെ സംബന്ധിച്ച് ഗൌരവകരമായ ചർച്ചകൾ നടക്കുന്ന ഇക്കാലത്തു്, ആ വിഷയത്തിൽ പ്രതിലോമകരമായ ആശയങ്ങൾ പ്രചരിപ്പിച്ച മാതൃഭൂമി തന്നെ ഇത്തരം കപടശാസ്ത്ര വാദങ്ങൾക്ക് വേദിയൊരുക്കുന്നതു് ആശങ്കയുണ്ടാക്കുന്നു. പത്മഭൂഷൻ നേടിയ ശാസ്ത്രഞ്ജൻ, നിരവധി വൈദ്യശാസ്ത്ര ബിരുദങ്ങളുള്ള, പല ഉയർന്ന പദവികൾ അലങ്കരിച്ചയാൾ എന്നൊക്കെയാണ് ആണു് ഡോ ഹെഗ്ഡേയുടെ വിശേഷണങ്ങൾ എന്നോർക്കുമ്പോൾ ഇന്ത്യയിലെ ശാസ്ത്ര വിദ്യാഭ്യാസത്തെയും ശാസ്ത്രജ്ഞർ എന്നു വിളിക്കപെടുകയും ആദരിക്കുകയും ചെയ്യപ്പെടുന്നവരെയും ഓർത്ത് ഒരേ സമയം ലജ്ജിക്കുകയും ആശങ്കപ്പെടുകയും ചെയ്യുന്നു. റോക്കറ്റിനു തുലാഭാരം നടത്തുന്നവരും യുദ്ധവീമാനത്തിനു ശത്രുസംഹാരപൂജനടത്തുവരെയും ശാസ്ത്രജ്ഞൻ എന്ന് നമ്മൾ ഇനിയും വിളിച്ചുകൊണ്ടേയിരിക്കുമോ?

ഹെഗ്ഡേയുടെ ലേഖനങ്ങൾ ‘നിർമുക്ത’ പണ്ട് വിശകലനം ചെയ്തിരുന്നു –

 

This note was later published in Narada news Malayalam

ഹെഗ്‌ഡെയുടെ അഭിമുഖം; ഒരു വിമർശന വായന

Fontconfig language matching

I had to spend a few hours to debug a problem about fontconfig not identifiying a font for a language. Following the tradition of sharing the knowledge you acquired in hard way, let me note it down here for search engines.

The font that I am designing now has 3 style variants, thin, regular and bold. All has same family name. So if you set this family for whatever purpose, depending on context, thin, regular or bold versions will be picked up. Regular is expected by default. Also when you pick the font from font selectors, you would expect, regular being selected by default.

The problem I was facing is, instead of Regular, Bold was getting selected as default. In font selectors, Bold was listed first.

In GNU/Linux systems, this font matching and selection is done by fontconfig. I started with fc-match

$ fc-match MyFont
MyFontBold.otf: "MyFont" "Bold"

So that confirms the problem. After fiddling with os/2 properties , asking in fontconfig mailing list, and reading fontconfig documentation, I found that the lang property fontconfig calculates from Regular variant of font does not include ‘en’

$ fc-list MyFont : family : style : lang 
MyFont:style=Bold:lang=aa|ay|bi|br|ch|en|es|eu|fj|fur|gd|gl|gv|ho|ia|id|ie|io|it|mg|ml|nl|nr|nso|oc|om|pt|rm|so|sq|ss|st|sw|tl|tn|ts|uz|vo|xh|yap|zu|an|fil|ht|jv|kj|kwm|li|ms|ng|pap-an|pap-aw|rn|r
w|sc|sg|sn|su|za 
MyFont:style=Regular:lang=aa|ay|bi|br|ch|da|de|es|et|eu|fi|fj|fo|fur|fy|gl|ho|ia|id|ie|io|is|it|ki|lb|mg|ml|nb|nds|nl|nn|no|nr|nso|ny|om|rm|sma|smj|so|ss|st|sv|sw|tl|tn|ts|uz|vo|vot|xh|yap|zu|an|f
il|ht|jv|kj|kwm|li|ms|na|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|za

I tried to find how fontconfig calculates the languages supported by a font. The minimum set of code points to be included in a font so that fontconfig declare that it supports a given language is defined in the fontconfig library. You can find them in source code. For example, mandatory code points(glyphs that match to it) to be present for English is defined in en.orth file. I cross checked each code points and one was indeed missing from my regular font variant, but bold version had everything. When I added it, all started working normally.

Later fontconfig developer Akira TAGOH told me that I can also use fc-validate to check the language coverage

$ fc-validate --lang=en MyFont.otf
MyFont.otf:0 Missing 1 glyph(s) to satisfy the coverage for en language

And after adding the missing glyph

$ fc-validate --lang=en MyFont.otf
MyFont.otf:0 Satisfy the coverage for en language

And now fc-match list Regular as default style

$ fc-match MyFont
MyFont.otf: "MyFont" "Regular"

അധിക നിമിഷം (Leap second)

ഈ വരുന്ന ജൂണ്‍ 30 നു് ഒരു പ്രത്യേകതയുണ്ടു്. ആ ദിവസത്തിന്റെ ദൈര്‍ഘ്യം 24 മണിക്കൂറും ഒരു സെക്കന്റും ആണു്. അധികം വരുന്ന ഈ ഒരു സെക്കന്റിനെ ലീപ് സെക്കന്റ് അല്ലെങ്കില്‍ അധിക നിമിഷം എന്നാണു് വിളിക്കുന്നതു്. നമ്മള്‍ സാധാരണ ഉപയോഗിക്കുന്ന കൈയില്‍ കെട്ടുന്ന വാച്ചുകളിലോ ചുമര്‍ ക്ലോക്കുകളിലോ ഒന്നും ഇതു കണ്ടെന്നു വരില്ല. അല്ലെങ്കിലും ഒരു സെക്കന്റിനൊക്കെ നമുക്കെന്തു വില അല്ലേ? പക്ഷേ അങ്ങനെ തള്ളിക്കളയാനാവില്ല ഈ അധിക സെക്കന്റിനെ. സെക്കന്റ് അളവില്‍ കൃത്യത ആവശ്യമായ കമ്പ്യൂട്ടറുകളിലും ഉപകരണങ്ങളിലും ഇതു പ്രശ്നമുണ്ടാക്കാനുള്ള സാധ്യത വളരെ കൂടുതലായതുകൊണ്ടു് ജൂണ്‍ 30, 11 മണി, 60 സെക്കന്റ് എന്ന സമയത്തെ, എന്നാല്‍ ജൂലൈ 1 ആവാത്ത ആ നിമിഷത്തെ, നേരിടാന്‍ ലോകമെമ്പാടുമുള്ള സാങ്കേതിക വിദഗ്ദ്ധര്‍ കരുതിയിരിക്കുന്നു.

ഈ അധിക നിമിഷം എവിടെനിന്നു വന്നു? വളരെ ചുരുക്കിപ്പറഞ്ഞാല്‍ ഭൂമിയുടെ കറക്കത്തിന്റെ വേഗത എല്ലാ കാലത്തും ഒരുപോലെയല്ലാത്തതുകൊണ്ടാണു് ഈ അഡ്ജസ്റ്റ് മെന്റ് വേണ്ടിവരുന്നതു്. ഭൂമിയുടെ കറക്കത്തിന്റെ വേഗത കുറയാന്‍ ഭൌമപാളികളുടെ ചലനങ്ങള്‍ അല്ലെങ്കില്‍ ഭൂചലനങ്ങള്‍ പ്രധാനകാരണമാണു് . ഭൂമിയുടെ കറക്കത്തെ അടിസ്ഥാനമാക്കി ഒരു ദിവസത്തെ 24 മണിക്കൂറുകളായും ഒരു മണിക്കൂറിനെ 60 മിനിറ്റായും ഓരോ മിനിറ്റിനെയും 60 സെക്കന്റായും വിഭജിച്ചാണല്ലോ നമ്മുടെ സമയം. ഇതിനെ ആസ്ട്രോണമിക്കല്‍ സമയം എന്നും വിളിക്കാം. പക്ഷേ കൃത്യതയാര്‍ന്ന സെക്കന്റിന്റെ നിര്‍വചനം ഈ വിഭജനങ്ങളെ ആസ്പദമാക്കിയല്ല ചെയ്തിരിക്കുന്നതു്. ഒരു സീസിയം-133 ആറ്റം, സ്ഥിരാവസ്ഥയിലിരിക്കുമ്പോൾ (Ground State) അതിന്റെ രണ്ട് അതിസൂക്ഷ്മസ്തരങ്ങൾ (Hyper Levels) തമ്മിലുള്ള മാറ്റത്തിനനുസരിച്ചുള്ള വികിരണത്തിന്റെ സമയദൈർഘ്യത്തിന്റെ, 9,192,631,770 മടങ്ങ് എന്നാണു് സെക്കന്റിന്റെ ശാസ്ത്രീയവും ഔദ്യോഗികവുമായ നിര്‍വചനം.

ലോകത്തിലെ ക്ലോക്കുകളെല്ലാം കൃത്യസമയം പാലിക്കുന്നതു് കോര്‍ഡിനേറ്റഡ് യൂണിവേഴ്സല്‍ ടൈം (UTC) സ്റ്റാന്‍ഡേഡ് അനുസരിച്ചാണു്. ഇതിനെ ആസ്പദമാക്കിയാണു് സമയമേഖലകളില്‍( Timezones) സമയം കണക്കാക്കുന്നതും കമ്പ്യൂട്ടറുകളിലെ സമയക്രമീകരണവും. ഗ്രീനിച്ച് മാനക സമയമടിസ്ഥാനമാക്കി ശാസ്ത്രലോകം അംഗീകരിച്ച സമയഗണനസമ്പ്രദായമാണു് UTC. ഇന്ത്യയിലെ സമയമേഖല UTC+5.30 എന്നാണു് കുറിക്കാറുള്ളതു്. ഗ്രീനിച്ച് സമയത്തില്‍ നിന്നും അഞ്ചരമണിക്കൂര്‍ കൂടുതല്‍ എന്ന അര്‍ത്ഥത്തില്‍. 1972 മുതല്‍ UTC, ഇന്റര്‍നാഷണല്‍ അറ്റോമിക് ടൈമിനെ പിന്തുടരുന്നു. ഇന്റര്‍നാഷണല്‍ അറ്റോമിക് ടൈം സീസിയം ആറ്റത്തിന്റെ വികിരണത്തെ അടിസ്ഥാനമാക്കിയാണു്.

ഞാന്‍ തുടക്കത്തില്‍ പറഞ്ഞ ജൂണ്‍ 30 നു് അധിക സെക്കന്റ് എന്നതു് UTC സമയമാണെന്നു വ്യക്തമാക്കട്ടെ. ശരിക്കും ഇന്ത്യയിലപ്പോള്‍ ജൂലൈ 1 രാവിലെ 5.30 ആയിരിക്കും.

നിത്യജീവിതത്തിലെ സമയം എന്ന ആശയം രാത്രി-പകല്‍ മാറ്റങ്ങളെ അടിസ്ഥാനമാക്കിയാണല്ലോ. UTC യും നിത്യജീവിതത്തിലെ ആവശ്യങ്ങള്‍ക്കുള്ളതായതുകൊണ്ടു് ഒരേ സമയം അറ്റോമിക് ടൈമിന്റെ കൃത്യത പാലിക്കാനും അതേ സമയം ഭൂമിയുടെ കറക്കത്തിനൊപ്പമാവാനും വേണ്ടിയാണു് ഇടക്ക് ഇങ്ങനെ സെക്കന്റുകള്‍ ചേര്‍ക്കുന്നതു്. ഇങ്ങനത്തെ 26-ാമത്തെ അഡ്ജസ്റ്റ്മെന്റ് ആണു് 2015 ജൂണ്‍ 30നു നടക്കാന്‍ പോകുന്നതു്. 2012 ജൂണ്‍ 30നായിരുന്നു അവസാനമായി ലീപ് സെക്കന്റ് വന്നതു്.

കൃത്യമായി പറഞ്ഞാല്‍ ജൂണ്‍ 30നു് പതിനൊന്നുമണി 59 മിനിറ്റ്, 59 സെക്കന്റ് കഴിഞ്ഞാല്‍ ജൂലൈ 1, 00:00:00 സമയം ആവേണ്ടതിനു പകരം ജൂണ്‍ 30, 11 മണി, 59 മിനിറ്റ്, 60 സെക്കന്റ് എന്ന സമയം നില്‍നില്‍ക്കും. അതിനു ശേഷമേ ജൂലൈ ആവൂ.

ലീപ് സെക്കന്റ് കുഴപ്പക്കാരനാവുന്നതു് പല രീതികളിലാണു്. കമ്പ്യൂട്ടറുകളില്‍ ഏതുതരത്തിലുള്ള ഓപ്പറേഷനുകളുടെ രേഖീയ ക്രമം(linear sequencing) ടൈം സ്റ്റാമ്പുകളെ അടിസ്ഥാനമാക്കിയാണു്. ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റമാണു് ഈ മിടിപ്പുകള്‍(ticks) ഉണ്ടാക്കിക്കൊണ്ടു് അതിനുമുകളിലെ അപ്ലിക്കേഷനുകളെ സഹായിക്കുന്നതു്. മിടിപ്പുകളുടെ എണ്ണം മിനിറ്റ്, മണിക്കൂര്‍, ദിവസം ഒക്കെ കണക്കാക്കാന്‍ ഉപയോഗിക്കുമെന്നു പ്രത്യേകം പറയേണ്ടതില്ലല്ലോ. 12:59:60 നു ജൂലൈ ഒന്നാണോ ജൂണ്‍ 30 ആണോ തുടങ്ങിയ കണ്‍ഫ്യൂഷന്‍ മുതല്‍ എന്തൊക്കെ തരത്തിലുള്ള പ്രശ്നമാണു് ഇവ ഉണ്ടാക്കുന്നതെന്നു പറയാന്‍ കഴിയില്ല. ലിനക്സ് കെര്‍ണലില്‍ ഇതു കൈകാര്യം ചെയ്യാനുള്ള സംവിധാനം ഉണ്ടായിരുന്നെങ്കിലും 2012ലെ ലീപ് സെക്കന്റ് സമയത്തു് അതു് നേരാവണ്ണം പ്രവര്‍ത്തിച്ചില്ല. ജൂണ്‍ 30നു ന്യൂയോര്‍ക്ക് സ്റ്റോക് എക്ചേഞ്ച് ഒരു മണിക്കൂറോളം പ്രവര്‍ത്തനം നിര്‍ത്തുമെന്നു് അറിയിച്ചു കഴിഞ്ഞു.

വലിയ വെബ്സൈറ്റുകള്‍ ലീപ് സെക്കന്റിനെ നേരിടാന്‍ തയ്യാറെടുത്തുകഴിഞ്ഞു. വിക്കിപീഡീയ അതിന്റെ സെര്‍വറുകളില്‍ UTC ടൈമുമായുള്ള ഏകോപനം താത്കാലികമായി നിര്‍ത്തിവെച്ചു് ഹാര്‍ഡ്‌വെയര്‍ ക്ലോക്കില്‍ സെര്‍വറുകള്‍ ഓടിക്കും. ലീപ് സെക്കന്റ് ഒക്കെ കഴിഞ്ഞ ശേഷം സെര്‍വറുകളെ പല ഘട്ടങ്ങളിലായി വീണ്ടും UTC യുമായി ഏകോപിപ്പിക്കും. ഗൂഗിള്‍ വേറൊരു രീതിയാണു് ഉപയോഗിക്കുന്നതു്. അവര്‍ ലീപ് സെക്കന്റിനോടടുത്തു് വരുന്ന സെക്കന്റുകളെ കുറേശ്ശേ വലിച്ചു നീട്ടും, ചില്ലറ മില്ലി സെക്കന്റുകള്‍ അധികമുള്ള സെക്കന്റുകള്‍ എല്ലാം കൂടി കൂട്ടിവെച്ചാല്‍ ഒരു സെക്കന്റിന്റെ ഗുണം ചെയ്യും, അതേ സമയം പുതിയൊരു സെക്കന്റിന്റെ വരവ് ഇല്ലാതാക്കുകയും ചെയ്യും.

ഈ തലവേദന എങ്ങനെയെങ്കിലും ഒഴിവാക്കാനുള്ള ചര്‍ച്ചകളും ആരംഭിച്ചിട്ടുണ്ടു്. ഭൂമിയില്‍ നമ്മള്‍ ലീപ് സെക്കന്റ് കണക്കാക്കിയാലും നമ്മുടെ ബഹിരാകാശ നിരീക്ഷണങ്ങള്‍ക്കു് ആസ്ട്രോണമിക്കല്‍ ക്ലോക്ക് തന്നെ വേണമല്ലോ. ലീപ് സെക്കന്റ് എന്നു വേണം എന്നു് ഏകദേശം ആറുമാസം മുമ്പേ തീരുമാനിക്കാനും പറ്റു. International Earth Rotation and Reference Systems Service (IERS) ആണു് ലീപ് സെക്കന്റ് എപ്പോള്‍ വേണമെന്നു തീരുമാനിക്കുന്നതു്.

കൂടുതല്‍ വായനയ്ക്ക്:  https://en.wikipedia.org/wiki/Leap_second

HOWTO: Wacom Bamboo CTH301K in Debian

This is a short documentation on getting Wacom Bamboo CTH301K working in Debian. I use Debian Sid with Linux kernel 3.16 at the time of writing this. But this should work with latest Ubuntu(14.04 or 14.10) and new kernels.

Wacom Bamboo CTH301K is an entry level touch pad with stylus – you can use it as a mouse, or drawing pad with stylus. It has multitouch features like pinch zoom and all. I got all working.

Eventhough wacom has drivers for their many models in linux kernel, this particular model with device id: 056a:0318 does not have a driver in kernel. When you connect it, you will see it is listed in the lsusb output as
Bus 003 Device 016: ID 056a:0318 Wacom Co., Ltd

But touch or stylus wont work because of missing driver. First step to get stylus working is adding usbhid.quirks=0x056a:0x0318:0x40000000 to the grub boot cmdline. For this, edit /etc/default/grub. Append the above string to GRUB_CMDLINE_LINUX_DEFAULT. In my system it looked like as follows:

GRUB_CMDLINE_LINUX_DEFAULT="quiet init=/bin/systemd usbhid.quirks=0x056a:0x0318:0x40000000"

You need to save this file and run update-grub command to get this updated in grub. There are alternate ways to pass this string to modprob, but this method make sure it works always in every system restart. Once done, you will see the stylus getting detected and working. Touch will not work still-This is because the default wacom driver picked up does not know about this device.

To get touch working, open /usr/share/X11/xorg.conf.d/50-wacom.conf and add MatchIsTablet "on" to the first section of that file. In my machine it looked like

Section "InputClass"
        Identifier "Wacom USB device class"
        MatchUSBID "056a:*"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "wacom"
EndSection

With this the “evdev” driver will be managing the device’s touch part. Restart your X – like restrarting KDM or GDM. Or just restart the machine.

You will see stylus and touch working now. You may need to use xsetwacom command to adjust the preferences, but you can find documentation of that elsewhere.

The above method also works with wireless model, just replace the device id 0x056a:0x0318 with 0x056a:0x0319

 Update

  • 24/04/2015: Bamboo Pad pen support accepted into Linus’ repository on the “master” branch (commit 61e9e7e). Expected release: Linux 4.0.
  • Bamboo Pad touch support accepted into Jiri’s HID repository on the “for-4.1/wacom” branch (commit 8c97a76). Expected release: Linux 4.1.

Configurable node logger with winston

For an advanced logging system for nodejs applications, winston is very helpful. Winston is a multi-transport async logging library for node.js. Similar to famous logging systems like log4j, we can configure the log levels and winston allows to define multiple logging targets like file, console, database etc.

I wanted to configure logging as per usual nodejs production vs development environment. Of course with development mode, I am more interested in debug level logging and at production environment I am more interested in higher level logs.

I am sharing my singleton logger instance setup code.

 

NotoSansMalayalam and nta

NotoSansMalayalam has the following ligature rules for ന്റ (nta)- All uses Akhand Opentype featurenotosansml-nta1

  1. uni0D7B(ൻ) + uni0D4D(്) + uni0D31(റ) => ൻ + ് + റ
  2. uni0D28(ന) + uni0D4D(്) + uni200D(ZWNJ) +uni0D31(റ) => ന്‍ + റ
  3. uni0D28(ന) + uni0D4D(്) + uni0D31(റ) => ന് +റ

notosansml-nta

The first one is what is defined in Unicode chapter 09 section 9.9[pdf]. The second is what Microsoft Kartika used to use for /nta/ as a bug. The last one is what all other fonts follows. If this is what standards can achieve, what can I say?

Hyphenation in web

This is a follow up of a 4 year old blog post about hyphenation. Hyphenation allows the controlled splitting of words to improve the layout of paragraphs, typically splitting words at syllabic or morphemic boundaries and visually indicating the split (usually with a hyphen).

I wrote about how a webpage can use Hyphenator javascript library to achieve hyphenation for a text with ‘justify‘ style. Along with the hyphenation rules I wrote for many Indian languages, this solution works and some websites already use it. The Hyphenator library helps to insert Soft hyphens in appropriate positions inside the text.

Example showing the difference between Malayalam text hyphenated and not hyphenated. You can see lot of line space wasted with white space in non-hyphenated text
Example showing the difference between Malayalam text hyphenated and not hyphenated. You can see lot of line space wasted with white space in non-hyphenated text

 

More recently browsers such as Firefox, Safari and Chrome have begun to support the CSS3 hyphens property, with hyphenation dictionaries for a range of languages, to support automatic hyphenation.

For hyphenation to work correctly, the text must be marked up with language information, using the language tags described earlier. This is because hyphenation rules vary by language, not by script. The description of the hyphens property in CSS says “Correct automatic hyphenation requires a hyphenation resource appropriate to the language of the text being broken. The user agents is therefore only required to automatically hyphenate text for which the author has declared a language (e.g. via HTML lang or XML xml:lang) and for which it has an appropriate hyphenation resource.”

CSS Example

-webkit-hyphens: auto;
-moz-hyphens: auto;
-ms-hyphens: auto;
-o-hyphens: auto;
hyphens: auto;

Browser Compatibility

  • Chrome 13+ with -webkit prefix
  • Firefox 6.0+ with -moz prefix
  • IE 10+ with -ms prefix.

Hyphenation rules

CSS Text Level 3 does not define the exact rules for hyphenation, however user agents are strongly encouraged to optimize their line-breaking implementation to choose good break points and appropriate hyphenation points.

Firefox has hyphenation rules for about 40 languages. A complete list of languages supported in FF and IE is available at Mozilla wiki

You can see that none of the Indian languages are listed there. Hyphenation rules can be reused from the TeX hyphenation rules.  Jonathan Kew was importing the hyphenation rules from TeX and I had requested importing the hyphenation rules for Indian languages too.  But that was more than a year back, not much progress in that. Apparently there was a licensing issue with derived work but looks like it is resolved already.

CSS4 Text

While this is all well and good, it doesn’t provide the fine grain control you may require to get professional results. For this CSS4 Text introduce more features.

  • Limiting the number of hyphens in a row using hyphenate-limit-lines. This property is currently supported by IE10 and Safari, using the -ms- and -webkit- prefix respectively.
  • Limiting the word length, and number of characters before and after the hyphen using hyphenate-limit-chars
  • Setting the hyphenation character using hyphenate-character. Helps to override the default soft hyphen character

More reading

PS: Sometimes hyphenation can be very challenging. For example hyphenating the 746 letter long name of Wolfe+585, Senior.

Malayalam Wikisource Offline version

Malayalam Wikisource community today released the first offline version of Malayalam wikisource during the 4th annual wiki meetup of Malayalam wikimedians. To the  best of our knowledge, this is the first time a wikisource project release its offline version. Malayalam wiki community had released the first version of Malayalam wikipedia one year back.

Releasing the offline version of a wikisource is a challenging project. The technical aspects of the project was designed and implemented by myself. So let me share the details of the project.

As you know a Wikisource contains lot of books, and each book varies in its size, it is divided to chapters or sections. There is no common pattern for books. Each having its own structure. A novel presentation is different from a collection of poems from a Poet. Wikisource also has religious books like Bible, Quran, Bhagavat Geeta, Ramayana etc.  Since books are for continuous reading for a long time, the readabilty and how we present the lengthy chapters in screen also matters. Offline wikipedia tools for example, Kiwix does not do any layout modification of the content and present as it is shown in wikipedia/wikisource. The tool we wrote last year for Malayalam wikipedia offline version also present scrollable vertical content in the screen. Both are not configurable to give different presentation styles depending on the nature of the book.

What we wanted is a book reader kind of application interface.  Readers should be able to easily navigate to books, chapters. The chapter content will be very lengthy. For a long time reading of this content,  a lengthy vertically scrolled text is not a good idea. We also need to take care of the width of the lines.  If each line spans 80-90% of the screen, especially for a wide screen monitor, it is a strain for neck and eyes.

 

Screenshot of Offline version. Click to enlarge


The selection of books for the offline version was done by the active wikimedians at Wiksource. Some of the selected books was proof read by many volunteers within the last  2 weeks.

The tools used for extracting htmls were adhoc and adapted to meet the good presentation of each book. So there is nothing much to reuse here. Extracting the html and then taking the content part alone using pyquery and removing some unwanted sections from html- basically this is what our scripts did. The content is added to predefined HTML templates with proper CSS for the UI. CSS3 multicolumn feature was used for book like interface. Since IE did not implement this standard even in IE9, for that browser the book like interface was not provided. Chrome browser with version less than 12 could not support, because of these bugs: http://code.google.com/p/chromium/issues/detail?id=45840 and http://code.google.com/p/chromium/issues/detail?id=78155. For easy navigation, mouse wheel support and page navigation buttons provided. For solving non-availability of required fonts, webfonts were integrated with a selection box  to select favorite font. Reader can also select the font size to make the reading comfortable.

Why static html? The variety of platforms and other versions we need to support, necessity to have webfonts, complex script rendering, effort to develop and customize UI, relatively small size of the data, avoiding any installation of software in users system etc made us to choose static html+ jquery + css as the technology choice. The downside is we could not provide full text search.

Apart from the wikisource, we also included a collection of copyleft of images from wikimedia commons. Thanks to Nishan Naseer, for preparing a gallery application using jquery. We selected 4 categories from Commons which are related to Kerala. We hope everybody will like the pictures and it will give  a small introduction to Wikimedia Commons.

Even though the python scripts are not ready to reuse in any projects, if anybody want to have a look at it, please mail me. I am not putting it in public since the script does not make sense outside the context of each book and its existing presentation in Malayalam wikisource.

The CD image is available for download here and one can also browse the CD content here.

Thanks to Shiju Alex for coordinating this project. And thanks to all Malayalam wikisource volunteers for making this happen.  We have included poems, folk songs, devotional songs, novel, grammar book, tales, books on Hinduism, Islam-ism, Christianity, Communism, Philosophy. With this release, it becomes the biggest offline digital archive of Malayalam books.

On Machine Translation and God

I was reading an article named “Why Can’t a Computer Translate More Like a Person?” by Alan K. Melby. The article is about the challenges that machine translation technology face to reach a acceptable quality of translation. He explains the importance of culture sensitivity required for machine translation programs. Article lists a number of examples where MT can go wrong if context , culture etc are not taken into consideration.  There are very interesting arguments about how reductionalism becomes a wrong choice while designing MT. If you are interested in  natural language processing or machine translation and wondering if there is any limit for computer programs to reach human’s language capabilities, please read it.

The article is written long time back, and Machine Translation technologies improved a lot. There are commercial as well as free translation products for many languages. There are research going on in intra-indic as well as english-indic translations.  I am not sure how far these technologies solved the challenges mentioned in the above mentioned article, but I believe that the questions are still valid.

The question is whether the programs can understand our culture, language usage , emotions etc. For translating limited domain or dry content, the machine translation may be effective, but in a general purpose use, I don’t know how effective they are.

Melby argues :

That key factor which is missing from current theories is agency. By agency, I mean the capacity to make real choices by exercising our will, ethical choices for which we are responsible. […]. Any ‘choice’ that is a rigid and unavoidable consequence of the circumstances is not a real choice that could have gone either way and is thus not an example of agency. A computer has no real choice in what it will do next. Its next action is an unavoidable consequence of the machine language it is executing and the values of data presented to it. I am proposing that any approach to meaning that discounts agency will amount to no more than the mechanical manipulation of symbols such as words, that is, moving words around and linking them together in various ways instead of understanding them. Computers can already manipulate symbols. In fact, that is what they mostly do. But manipulating symbols does not give them agency and it will not let them handle language like humans. Symbol manipulation works only within a specific domain, and any attempt to move beyond a domain through symbol manipulation is doomed, for manipulation of symbols involves no true surprises, only the strict application of rules. General vocabulary, as we have seen, involves true surprises that could not have been predicted.

With all these advanced technologies, can we develop a universal , any-to-any language translation program? We have seen many examples where human beings are failing miserably in sensible translation. If you are looking for  english->hindi translation effectiveness, try this using google Translation

आप हिन्दी समझते है ? ==> You understand English?

So do you think that if there is any such universal translation tool,  it is nearly impossible and “only god can create such a tool” ?! . Heard about Babel fish (of The Hitchhiker’s Guide to the Galaxy)? .  The babel fish is small, yellow, leech-like, and is a universal translator which simultaneously translates from one spoken language to another. When inserted into the ear, its nutrition processes convert sound waves into brain waves, neatly crossing the language divide between any species you should happen to meet whilst travelling in space. According to the Hitchhiker’s Guide, the Babel fish was put forth as an example for the non-existence of God: .

“I refuse to prove that I exist,” says God, “for proof denies faith, and without faith I am nothing.”

“But,” says Man, “the Babel fish is a dead giveaway isn’t it? It could not have evolved by chance. It proves that you exist, and so therefore, by your own arguments, you don’t. Q.E.D.

“Oh dear,” says God, “I hadn’t thought of that,” and promptly vanishes in a puff of logic

Alan K Melby argues that Douglas Adams was saying that there can’t be any such fish.

The silliness of the above argument is intended, I believe, to show the futility of trying to prove the existence of God, through physics or any other route. Belief in God is a starting point, not a conclusion. If it were a conclusion, then that conclusion would have to be based on something else that is firmer than our belief in God. If that something else forces everyone to believe in God, then faith is denied. If that something else does not force us to believe in God, then it may not be a sufficiently solid foundation for our belief.

Adams may also be saying something about translation and the nature of language. I can speculate on what Adams had in mind to say about translation when he dreamed up the Babel fish. My own bias would have him saying indirectly that there could be no such fish since there is no universal set of thought patterns underlying all languages. Even with direct brain to brain communication, we would still need shared concepts in order to communicate. Words do not really fail us. If two people share a concept, they can eventually agree on a word to express it. Ineffable experiences are those that are not shared by others.

I have some friends studying on machine translation with Indian Languages. They are evaluating shallow transfer method(Statistical methods to the words surrounding the ambiguous word.) for this using tools like apertium. Let us hope that they will succeed in their efforts.

Let me give one example translation between Tamil and Malayalam where context matters.

In Malayalam, for ‘wait, wait’, we usually say, “നില്ക്കു് നില്ക്ക്”(Literal meaning:  ‘stand, stand’ ) . For the same purpose , I have noticed that my Tamil speaking friends  use “இரு இரு” (Literal meaning: ‘sit, sit’  ). Now if the translation is done without knowing this usage, it is going to be funny. Shallow transfer methods use multiple intermediate  languages for translation. For eg: If there is a translation  tool available for a->b and b->c and then a->c is possible through a->b->c . I feel that this is going to be a big challenge.. to keep the word meaning, context, common usage…etc.. Let us wait/sit/stand and see 😀

Since we saw “a nonexistence of God proof”, let me give another one, that I read sometime back.

  1. God is so powerful, he can do any thing,
  2. God can create anything , if #1 is true
  3. If #2 is is true, he can create a big stone that he cannot lift!
  4. If he cannot lift a stone, then #1 is wrong, hence #2 also wrong. So God does not exist!

Looks very silly, right? or “Logical” ? 🙂