September 24, 2013

സ്വതന്ത്ര സോഫ്റ്റ്‌‌വേർ

ഒരു ഗൂഗ്ഗിൾ പ്ലസ്സ് പോസ്റ്റിൽ എഴുതിയ കമന്റ് പോസ്റ്റാക്കിമാറ്റുന്നു.

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

അപ്പോൾ സാമ്പത്തികം എന്ന പ്രശ്നം വരും. സ്വതന്ത്ര സോഫ്റ്റ്‌‌വേറിൽ നിന്നും പണം ഉണ്ടാക്കാൻ പറ്റില്ല എന്നല്ല, സപ്പോർട്ടും മറ്റുമായി പണം ഉണ്ടാക്കാം. റെഡ്ഹാറ്റ് ആണ് നല്ലൊരുദാഹരണം. എല്ലാവർക്കും റെഡ്ഹാറ്റിനെ പോലെ പണമുണ്ടാക്കാൻ പറ്റുമോ എന്നും എങ്ങനെ എന്നും ചോദിച്ചാൽ പറ്റില്ല എന്നും എനിക്ക് കൃത്യമായി അറിയല്ല എന്നും ആയിരിക്കും എന്റെ ഉത്തരം.

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

ഇതാ മറ്റൊരു കിടിലം ഐറ്റം. ഓറാക്കിൾ ഡേറ്റാബേസിന്റെ പെർഫോർമൻസ് വിവരങ്ങൾ ഒറാക്കിൾ കമ്പനിയുടെ അനുമതിയില്ലാതെ പ്രസിദ്ധപ്പെടുത്തുവാൻ പാടില്ല. http://www.oracle.com/technetwork/licenses/standard-license-152015.html എന്ന പേജിൽ നിന്നും - "You may not: ... - disclose results of any program benchmark tests without our prior consent." മൈക്രോസോഫ്റ്റിന്റെ എസ് ക്യു എൽ സെർവറിനും ഇതുപോലൊരു നിബന്ധനയുണ്ടായിരുന്നു, ഇപ്പോൾ ഉണ്ടോ എന്നു തീർച്ചയില്ല. (http://contracts.onecle.com/aristotle-international/microsoft-eula.shtml, Performance or Benchmark Testing. You may not disclose the results of any benchmark test of either the Server Software or Client Software for Microsoft SQL Server, Microsoft Exchange Server, or Microsoft Proxy Server to any third party without Microsoft's prior written approval) എന്തെങ്കിലും ഒരു സാധനം കൊള്ളാമോ ഇല്ലയോ എന്ന് ഉണ്ടാക്കിയവൻ അപ്രൂവ് ചെയ്ത റിവ്യൂ നോക്കി തീരുമാനിക്കണം. സാധനം കൊള്ളാമോ ഇല്ലയോ എന്ന് പൊതുജന മധ്യത്തിൽ പറയാൻ പാടില്ല. അത്യാവശ്യമാണെങ്കിൽ കാശുകൊടുത്ത് വാങ്ങി ടെസ്റ്റ് ചെയ്തു നോക്കണം. അത് നമ്മുടെ ആവശ്യത്തിനനുസരിച്ച് ഓടിയാൽ ഊട്ടി ഇല്ലെങ്കിൽ ചട്ടി.  നമ്മുടെ സിനിമാക്കാർ ഇതൊന്നും കാണാതിരിക്കട്ടെ, അല്ലെങ്കിൽ സിനിമ കണ്ട് സത്യസന്ധമായ റിവ്യൂ എഴുതുന്ന പരിപാടി നിന്നുപോകും.

മറ്റൊരുകാര്യം - സപ്പോർട്ട്. സോഫ്റ്റ്‌‌വെയർ എത്രകാലം സപ്പോർട്ട് ചെയ്യണമെന്ന് അതുണ്ടാക്കുന്ന കമ്പനികൾ തീരുമാനിക്കും. ഇനി കഷ്ടകാലത്തിനോ/നല്ലകാലത്തിനോ നമ്മൾ പുതിയ മെഷീൻ വാങ്ങുകയോ, ഓപ്പറേറ്റിങ് സിസ്റ്റം അപ്‌‌ഗ്രേഡ് ചെയ്യുകയോ ചെയ്താൽ നേരത്തേ വാങ്ങിയ സോഫ്റ്റ്‌‌വേർ പുതിയ മെഷീനിൽ/ഓഎസിൽ പ്രവർത്തിക്കുമോ എന്ന് ഒരു ഉറപ്പുമില്ല. ചിലപ്പോൾ സോഫ്റ്റ്‌‌വേറിന്റെ പുതിയ വെർഷൻ ഓടണമെങ്കിൽ പുതിയ മെഷീൻ വാങ്ങേണ്ടി വരും. ഞാൻ പണ്ട് വാങ്ങിയ ഒരു സ്കാനർ ഉണ്ട് കൈയ്യിൽ, ഇപ്പോഴും കുഴപ്പമൊന്നുമില്ല. വിൻഡോസ് വിസ്റ്റ ഉള്ള ഒരു ലാപ്‌‌ടോപ്പ് വാങ്ങിയപ്പോൾ ചെറിയ ഒരു പ്രശ്നം. സ്കാനറിന്റെ ഡ്രൈവർ വിസ്റ്റ സപ്പോർട്ട് ചെയ്യില്ല. അതു കാരണം ഇപ്പോഴും ഒരു പഴയ വിൻഡോസ് ഉപയോഗിക്കാൻ ഞാൻ നിർബന്ധിതനായിരിക്കുന്നു.

സ്വതന്ത്ര സോഫ്റ്റ്‌‌വേറുകളുടെ മറ്റൊരു ഗുണം അവയുടെ സോഴ്സ് കോഡ് ആർക്കുവേണമെങ്കിലും വായിക്കുകയും മാറ്റം വരുത്തുകയും ചെയ്യാമെന്നാണ്. ഒരു സാധനം എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്നത് കണ്ടുപിടിക്കുന്നത് വളരെയധികം ഉപയോഗമുള്ള കാര്യമാണ്. ഒരു കാർ/ബൈക്ക് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് ആരെങ്കിലും പറഞ്ഞു തരുന്നതും അത് ഓടിച്ചു നോക്കി അല്ലെങ്കിൽ അഴിച്ചു നോക്കി മനസ്സിലാക്കുന്നതും പോലെയുള്ള വ്യത്യാസം. ഇങ്ങനെ ഒരു കാര്യം മനസ്സിലാക്കാൻ വേണ്ടി ഇറങ്ങിപ്പുറപ്പെടുമ്പോൾ പഠിക്കുന്ന മറ്റുകാര്യങ്ങൾ ബോണസ്സും. കുറച്ചു നാൾ മുമ്പ് ഞാൻ ടാബിലും കംപ്യൂട്ടറിലുമായി ഉപയോഗിക്കുന്ന രണ്ട് സോഫ്റ്റ്‌‌വേറുകളുടെ ഡേറ്റാബേസുകൾ തമ്മിൽ സിങ്ക് ചെയ്യാൻ ഒരു യൂട്ടിലിറ്റി എഴുതി. ഈ പറഞ്ഞ രണ്ടു സോഫ്റ്റ്‌‌വേറുകളും ഓപ്പൺ സോഴ്സ് ആയിരുന്നതിനാൽ അതിന്റെ കോഡ് വായിച്ച് വിശദ വിവരങ്ങൾ മനസ്സിലാക്കാൻ പറ്റിയതിനാൽ യൂട്ടിലിറ്റി ഉണ്ടാക്കാൻ പറ്റി. അല്ലായിരുന്നെങ്കിൽ ഒന്നും നടക്കില്ലായിരുന്നു.

ഇനിയും വളരെയധികം കാരണങ്ങളുണ്ട്. കൂടുതൽ വിവരങ്ങൾക്ക് http://www.gnu.org/philosophy/philosophy.html, http://www.gnu.org/philosophy/why-free.html, http://www.gnu.org/philosophy/pragmatic.html എന്നിവ കാണുക.

September 7, 2013

റിമൈന്ററുകൾ

ചില കമാന്റുകൾ കൃത്യസമയത്ത് എക്സിക്യൂട്ട് ചെയ്തില്ലെങ്കിൽ നമ്മുടെ ജീവിതം കട്ടപ്പൊകയായേക്കും. ഉദാ:
"അടുപ്പത്തിരിക്കുന്ന കൂക്കർ ഏഴെട്ടു മിനിട്ടു കഴിഞ്ഞ് ഓഫ് ചെയ്തേക്കണേ, ഞാൻ കടയിൽ പോയിട്ടു വരാം" അല്ലെങ്കിൽ "പാൽ തണുക്കാൻ വച്ചിട്ടുണ്ട്, പത്തുമിനിട്ട് കഴിഞ്ഞിട്ട് കൊച്ചിനു കൊടുക്കണം കേട്ടോ?"

എന്തെങ്കിലും കാര്യമായി ചെയ്തുകൊണ്ടിക്കുന്ന സമയത്ത് ഇങ്ങനയുള്ളവയ്ക്ക് റിമൈന്റെർ വച്ചില്ലെങ്കിൽ മറന്നുപോവുകയാണ് പതിവ്. ആദ്യമൊക്കെ ഒരു ഷെല്ലിൽ sleep 5m, sleep 10m എന്നൊക്കെ കൊടുത്തിരുന്നെങ്കിലും ടൈമൗട്ട് ആയോന്നറിയാൻ ടെർമിനൽ വിൻഡോയിൽ ഇടയ്ക്ക് പോകണമായിരുന്നു. (ഹാർഡ്വെയർ പ്രശ്നം കാരണം എക്കോ ഉപയോഗിച്ച് ബീപ് ചെയ്യാൻ എന്റെ മെഷീനിൽ പറ്റില്ല). പിന്നെ ഉള്ള ഒരു മാർഗ്ഗം ഏതെങ്കിലും കലണ്ടർ/റ്റു ഡു ആപ്ലിക്കേഷനിൽ റിമൈന്റർ സെറ്റു ചെയ്യുക എന്നതായിരുന്നു. ആപ്ലിക്കേഷനൊക്കെ ഓപ്പൺ ചെയ്തിട്ട്, റിമൈന്റർ സെറ്റ് ചെയ്യാൻ 5:55 നോട് എഴല്ലെങ്കിൽ എട്ട് മിനിട്ട് കൂട്ടിയാൽ അഞ്ച് അറുത്തിരണ്ട് അല്ലെങ്കിൽ അഞ്ച് അറുപത്തി മൂന്നിന് എന്നൊക്കെ കണക്കുകൂട്ടി ഒരു തീരുമാനമാകുമ്പോഴേയ്ക്കും കൊച്ചിനെ അടുപ്പത്തു നിന്നിറക്കിവയ്ക്കാനാണോ അതോ കുക്കറിനു പാലുകൊടുക്കാനാണോ റിമൈന്റർ സെറ്റ് ചെയ്യേണ്ടതെന്നു കൺഫ്യൂഷനാകും. അപ്പോൾ പിന്നെ പെട്ടെന്നു ചെയ്യാൻ പറ്റൂന്നത് ഒരു മെസ്സേജ് പോപ്അപ് ചെയ്യിക്കുക എന്നതാണ്. xmessage ആണ് ഇതിനായി ആദ്യം ഉപയോഗിച്ചു നോക്കിയത്.
sleep 7m; xmessage "Some text"
ഇതിലെ പ്രശ്നം എന്തെന്നാൽ xmessage ന്റെ വിൻഡോ വളരെ ചെറുതായതിനാൽ അത് വരുന്നത് ശ്രദ്ധയിൽപെടില്ല എന്നതാണ്. പകരം ഉപയോഗിക്കാൻ പറ്റുമെന്നു തോന്നിയ dialog കമാന്റിന്റെ മാൻ പേജ് കണ്ടു പേടിച്ചു, kdialog നു മാൻ പേജുണ്ടായിരുന്നുമില്ല. അവസാനം zenityയാണ് നമുക്ക് പറ്റിയതെന്ന തീരുമാനത്തിലെത്തി.
zenity --info --text "Some message" അത്യാവശ്യം നല്ല ഒരു മെസ്സേജ് കാണിക്കുന്നുണ്ടായിരുന്നു. പിന്നെ താമസിച്ചില്ല താഴെ കാണുന്ന ഷെൽ സ്ക്രിപ്റ്റ് remind.sh എന്ന പേരിൽ എഴുതി വച്ചു:
#! /usr/bin/bash
# Script to pop up a message after predefined time

if [[ $# -lt 2 ]]
then
        echo "Usage : `basename $0` time message"
        exit 1
fi
sleepTime=$1
shift

(sleep ${sleepTime}; zenity --info --text "$*") &
ഈ സ്ക്രിപ്റ്റ് ഹോം ഫോൾഡറിലെ bin എന്ന ഫോൾഡറിലാണുള്ളതെങ്കിൽ krunner ഇൽ (alt+f2 in KDE) ~/bin/remind.sh 5m "how are you?" എന്നു കൊടുത്താൽ അഞ്ചുമിനിട്ടു കഴിഞ്ഞ് മെസ്സേജ് വരും.

കുറിപ്പ് 1: ഇത് ടെർമിനലിൽ നിന്നും റൺ ചെയ്താൽ റൺ ചെയ്ത ശേഷം ടെർമിനൽ ക്ലോസ് ചെയ്തില്ലെങ്കിൽ മെസ്സേജ് കാണാൻ വേണ്ടി ആ ടെർമിനലിലേക്ക് തന്നെ പോകേണ്ടി വരുന്നുണ്ട്. അതുകൊണ്ട് ടെർമിനലിൽ നിന്നും റൺ ചെയ്യുകയാണെങ്കിൽ ആ ടെർമിനൽ ക്ലോസ് ചെയ്യുക.

കുറിപ്പ് 2 : ഇതിനേക്കാൾ എളുപ്പമുള്ള വഴികൾ ഉണ്ടെങ്കിൽ ദയവായി പറയുക.

September 2, 2013

ഗൂഗിൾ പിക്കാസ - പകരം എന്ത്?

പണ്ട് വിൻഡോസ് ഉപയോഗിക്കുന്ന കാലം മുതൽ ഫോട്ടോ കളക്ഷൻ മാനേജ് ചെയ്യാൻ ഉപയോഗിച്ചിരുന്നത് പിക്കാസയായിരുന്നു. മുഴുവനായി ലിനക്സിലേക്ക് മാറിയപ്പോഴും പിക്കാസയുടെ ലിനക്സ് വെർഷനായിരുന്നു ഉപയോഗിച്ചിരുന്നത്. കുറച്ചു കാലം മുമ്പ് ഗൂഗിൾ, പിക്കാസയുടെ ലിനക്സ് സപ്പോർട്ട് നിർത്തലാക്കിയെങ്കിലും വൈ‌‌ൻ ഉപയോഗിച്ച് പിക്കാസ ഫെഡോറയിൽ ഉപയോഗിച്ചിരുന്നു. അടുത്ത കാലത്ത് ഞാൻ ഫെഡോറ 19ലേക്ക് അപ്‌‌ഗ്രേഡ് ചെയ്തപ്പോൾ പിക്കാസ വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യേണ്ടി വന്നു. സിസ്റ്റത്തിലെ ഐഡികൾക്കെല്ലാം ഉപയോഗിക്കാവുന്ന വിധത്തിൽ പൊതുവായ ഒരു പിക്കാസ സെറ്റപ് ഉണ്ടാക്കുന്നത് വലിയ പണിയായതിനാൽ ഓരോ ഐഡികളിലും വൈൻ ഉപയോഗിച്ച് പിക്കാസ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടി വന്നു. ഈ ബുദ്ധിമുട്ടുകാരണം പിക്കാസയ്ക്കു പകരം ഉപയോഗിക്കാവുന്ന സോഫ്റ്റ്വേറുകളെ കുറിച്ച് വീണ്ടും അന്വേഷണം തുടങ്ങി. മുമ്പ് F-Spot, gThumb, digiKam, Shotwell, Darktable ഒക്കെ നോക്കിയെങ്കിലും അതൊന്നും പിക്കാസ പോലെയാകുന്നുണ്ടായിരിന്നില്ല.

മുമ്പ് ഉപയോഗിച്ചു നോക്കിയവയിൽ ഏറ്റവും നല്ലതെന്നു തോന്നിയത് digiKam (http://digikam.org/) ആയിരുന്നു. അന്ന് അത് ഉപയോഗിക്കാതിരിക്കാനുള്ള കാരണം ഫോട്ടോകൾ എല്ലാം അത് ഒരു ഫോൾഡറിലേക്ക് ഇമ്പോർട്ട് ചെയ്യുമെന്നുള്ളതു കൊണ്ടാണ്. ഇമ്പോർട്ട് ചെയ്യാതെ നിലവലുള്ള ഫോൾഡറുക‌‌ൾ തന്നെ digiKamന് ഉപയോഗിക്കാൻ പറ്റുമെന്ന് മനസ്സിലായത് അടുത്തകാലത്താണ് (Settings -> Configure Digikam -> Collections -> Local Collections -> Add Collections). പിന്നെ താമസിച്ചില്ല, ഫോട്ടോകൾ മുഴുവനും ഡിജികാമിലേക്ക് കൊണ്ടുവന്നു.

പിക്കാസയുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ ഡിജികാമിന്റെ എനിക്കിഷ്ടപ്പെട്ട ചില ഫീച്ചറുകൾ
  • ഫോട്ടോകളിലോ, ഫോൾഡറുകളിലോ മാറ്റങ്ങൾ വരുത്തുന്നില്ല. ഏതെങ്കിലും ഫോട്ടോ സ്റ്റാർ മാർക്ക് ചെയ്താൽ പിക്കാസ ആ ഫോട്ടോയുടെ ഫോൾഡറിൽ ഒരു ഫയൽ ഉണ്ടാക്കും. ഡിജികാം അതിന്റെ ഡേറ്റാബേസിലാണ് ഇത്തരം വിവരങ്ങൾ സൂക്ഷിക്കുക.
  • പിക്കാസയിൽ റോ ഫയലുകൾ കാണുമ്പോൾ  പിക്കാസ തന്നെ അതിൽ ചില കറക്ഷനുകൾ വരുത്തിയിട്ടാണ് ഡിസ്പ്ലേ ചെയ്യുക. ഈ കറക്ഷനുകളിൽ നമുക്ക് മാറ്റം വരുത്തുവാൻ പറ്റുമെന്നു തോന്നുന്നില്ല. ഡിജികാമിൽ ഇങ്ങനെ ഒരു പ്രശ്നമില്ല.
  • റോ ഫയലുകൾ പിക്കാസ* സെർച്ച് : പിക്കാസയിൽ ഉള്ളതിനേക്കാൾ വളരെ കൂടുതൽ സെർച്ച് ഓപ്ഷനുകൾ ഡിജികാമിനുണ്ട്. ഫോൾഡറിന്റെ പേരിന്റെ എവിടെനിന്നെങ്കിലുമുള്ളാ ഒരു ഭാഗം മാത്രം കൊടുത്താലും ഡിജികാം അതു കണ്ടുപിടിച്ചു തരും. Exif ഡേറ്റ ഉപയോഗിച്ചും സെർച്ച് ചെയ്യാവുന്നതാണ് (Search -> Advanced Search -> Photograp Information).
  • ചിത്രങ്ങൾ പിക്കാസ/ഫ്ലിക്കർ ഫേസ്ബുക്ക് എന്നിവയിലേക്ക് അപ്‌‌ലോഡ് ചെയ്യുക : ഡിജികാമുപയോഗിച്ച് വളരെയധികം സോഷ്യൽ നെറ്റ്വർക്ക് /ഫോട്ടോ ഷെയറിങ്ങ് സൈറ്റുകളിലേക്ക് ഫോട്ടോകൾ അപ്‌‌ലോഡ് ചെയ്യാൻ പറ്റും. ലിനക്സിൽ പിക്കാസയുടെ ലേറ്റസ്റ്റ് വെർഷനിൽ പിക്കാസ വെബിലേക്ക് അപ്‌‌ലോഡ് ചെയ്യാൻ പറ്റൂന്നില്ല എന്നുകൂടെ പറഞ്ഞുകൊള്ളട്ടേ.
  •  വീഡിയോകൾ : പിക്കാസയുടെ ലിനക്സ് വെർഷനിൽ വീഡിയോകൾ കാണാൻ പറ്റില്ലായിരുന്നു. ഡിജികാമിൽ നല്ല സുന്ദരമായി വീഡിയോകാണാം. വീഡിയോയുടെ തമ്പ്നെയിലുകൾ കാണണമെങ്കിൽ kffmpegthumbnailer അല്ലെങ്കിൽ  ffmpegthumbnailer എന്ന പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യണം.
* അത്യാവശ്യം നല്ല വിധത്തിൽ ഇമേജ് ഏഡിറ്റിങും ചെയ്യാം.