September 30, 2017

Fixing rsync error: error in rsync protocol data stream

I use rsync (wrapped in a script) to back up the data to a Western Digital MyCloud device from my Fedora system. At times I have seen rsync errors "rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.2]" during backup.


As the error was appearing sporadically, it was not a configuration or setup issue. Finally I tried passing protocol parameter to rsync and it worked. The rsync in my Fedora system uses protocol 31 by default and the one in WD device supports 30 by default. Setting --protocol=30 didn't help but setting protocol to 26 resolved the problem. I've been running rsync using protocol 26 for few weeks and haven't seen the errors.



July 29, 2017

vnstat : Recovering from error "Invalid database daily date order"

I use vnstat to keep track of the network traffic statistics in my Fedora system. Through a web interface, it can show some nice charts. Couple of weeks ago when I was trying to see the stats, it was not loading properly. I initially suspected SELinux but executing vnstat from command line proved that there was some problem with vnstat itself. I got the error "Error: enp1s0: Invalid database daily date order: 1494518195 (3) < 1509896072 (4)"
I couldn't find anything helpful to resolve the issue. All I could do was to downgrade vnstat to previous version. As I have configured dnf to retain the cache, the downgrade was bit easy. The downside was that whenever I was updating the system, I had to pass -x vnstat to dnf command so that it will skip updating it.

From the time stamps that appeared in the error message, I thought that the date format was flipped and instead of May-11, Nov-5 was entered in the database creating the problem. The vnstat database is a binary one but vnstat supports exporting and importing the database. Reading the vnstat manual page gave enough information to export and import the data to a new database.

The following steps were taken to export the data from old database, fix it and then import it to new database.

Create a local configuration file for vnstat.
Copy the /etc/vnstat.conf to a local folder and change the DatabaseDir to point to that local folder.

Copy the vnstat database to the local directory. Export the data file using the command

vnstat -i wlp3s0 --exportdb > wlp3s0.db 
 
Update the incorrect time stamps in the exported file.
For example, date -d "2017-05-21" "+%s" will give the time stamp in required format.

Create a new db

vnstat --config ./vnstat.conf  --create -i wlp3s0

Import the modified data

vnstat --config ./vnstat.conf  -i wlp3s0 --importdb wlp3s0.db --force
 
Check the correctness day / month wise data

vnstat --config ./vnstat.conf  -i wlp3s0 -d 
vnstat --config ./vnstat.conf  -i wlp3s0 -m

Stop vnstat and copy the new file to /var/lib/vnstat

sudo systemctl stop vnstat.service
sudo cp ~/vnstat/wlp3s0 /var/lib/vnstat

Update vnstat using sudo dnf upgrade vnstat. I could see that the new version of vnstat was working without problem with the updated db. Started the vnstat using sudo systemctl start vnstat.service and vnstat was back in action.

The downside was that the data for almost two months were not captured by vnstat. My weekly backup was not configured to capture this data. Lesson learned and I quickly set up an automated backup for the dynamic files using anacron. However, I am yet to figure out a way to validate the sanity of the dynamic data.

May 11, 2017

History from Free Dictionary and Aard2 Android Dictionary apps

I use Free Dictionary and Aard2 for in my Android phone to look up the meaning of words. If you ever need to get the list of words that were looked up in these apps from a Linux system, you may find this useful.


The first step would be to enable connect the phone to the computer and enable USB debugging.

Free Dictionary

adb shell run-as org.freedictionary cat shared_prefs/FreeDictionary.xml | 
xmlstarlet sel -T -t -v /map/string | tr ',' '\n' 

Aard2 Dictionary
Things are bit complicate for Aard2 as I found that it does not support run-as command.

adb backup -f ./aard2.ab -apk itkach.aard2
java -jar abe.jar unpack aard2.ab  aard2.tar
tar -O -xvf  aard2.tar apps/itkach.aard2/r/app_history 2>
  /dev/null | jq -r '.key'

April 4, 2017

Naming Rights in Action

പശ്ചിമഘട്ടത്തിൽ കണ്ടെത്തിയ പുതിയ മരഞണ്ടിന്റെ ശാസ്ത്രനാമം : കാണി മരഞണ്ട്. സംശയിക്കേണ്ട, മലയാളം തന്നെ. കാണി വിഭാഗക്കാരുടെ സഹായത്തോടെ മലയാളി ഗവേഷകർ കണ്ടു പിടിച്ചതുകൊണ്ടാണ് കാണി മരഞണ്ടെന്നു പേരു കൊടുത്തത്.
വാർത്ത ഇവിടെ :
https://phys.org/news/2017-04-species-tree-crab-western-ghats.html

ഇങ്ങനെ ഓരോന്ന് സ്വന്തമായി കണ്ടുപിടിച്ചാൽ മലയാളത്തിലൊക്കെ പേരിടാം. ഹാർഡ്‌‌വെയർ അബ്സ്റ്റ്രാക്ഷൻ ലെയർ നമ്മൾ മലയാളികളാണ് കണ്ടുപിടിച്ചിരുന്നത്/ ഉണ്ടാക്കിയിരുന്നതെങ്കിൽ അതിനെ ശശിപാളി (കടപ്പാട്: +Subin PT) [1] അല്ലെങ്കിൽ കിടുതാപ്പ് മറ (കടപ്പാട്: വിനയാന്വിതനായി ഞാൻ) എന്നൊക്കെ വിളിക്കാമായിരുന്നു.

[1] https://plus.google.com/u/0/+SubinPT/posts/ZgNd2HzyKz9

September 16, 2016

March of Progress

I came across a chapter on Thomas Henry Huxley while reading The Book of Science edited by John Carey. The description about his book Man's Place in Nature piqued my curiosity. The frontispiece of the book showed a queue of skeletons with man at the front followed by skeletons of Gorilla, Chimpanzee, Orangutan and Gibbon. Wait a second, haven't I seen something similar elsewhere? I didn't know the name of the picture and for some reason I thought it was called "The Ascent of Man". Soon after establishing https connection to certain servers (Googling in plain English) there came the answer - the picture I was looking for is called "The March of Progress" and it is from the book Early Man by F. Clark Howell. This explains why I take a long time to finish books on Science. Apparently the popular version we see all over is the folded version of the original.

Carey did add something interesting about Huxley in the note on his debate with a Bishop on theory of evolution. During the debate the Bishop asked certain question about Huxley's ancestors. Huxley gave a befitting answer. However the gem is Huxley's reaction on the death of this Bishop due to the fall from horseback. "For once reality and his brain came into contact, and the result was fatal."

March 20, 2016

രഹസ്യ സന്ദേശം

പബ്ലിക്ഗുഡു.സിപ്പീപ്പി, ലിനക്സ്പ്ലസ്‌‌പ്ലസ്സാനന്ദഗുഡുഗുഡു.സി വക രഹസ്യ സന്ദേശം ഫെഡോറാദേശത്തിലെ കേഡി‌‌ഈ ഗ്രൂപ്പ് നേതാക്കന്മാർക്ക് എത്തിക്കാൻ ആവശ്യപ്പെട്ടിരിക്കുന്നു. എല്ലാവർക്കും എത്തിക്കുമല്ലോ? രഹസ്യമായതിനാൽ വായിച്ചു മനസ്സിലാക്കിയ ശേഷം  ഡെലീറ്റ് ചെയ്യണം. കഴിഞ്ഞ പ്രാവശ്യത്തെപ്പോലെ ഫോട്ടോകോപ്പിയെടുക്കാൻ പോയിട്ട് ഒറിജിനൽ കടയിൽ ഇട്ടിട്ടുവരികയോ ഡ്രോപ് ബോക്സിൽ പബ്ലിക് ഫോൾഡറിൽ ബാക്കപ്പെടുത്ത് വയ്ക്കുകയോ ചെയ്യരുത്, പ്ലീസ്. സന്ദേശം താഴെ:

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

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

ബാക്കി പ്രോസസ്സുകളുടെ ചുമതലകളും മറ്റും വിവരിക്കുന്നു:

ഫെഡോറഫാൻഗുഡു.സിപ്പിപ്പി
ഫെഡോറയെക്കുറിച്ചും, കെഡി‌‌ഈയെക്കുറിച്ചും, അവയുപയോഗിക്കുന്ന യൂസർമാരെക്കുറിച്ചും, അങ്ങേ അറ്റം പുകഴ്ത്തുന്ന  തരത്തിലുള്ള മെയിലുകളും പോസ്റ്റുകളും നിർമ്മിക്കുക. ഇതൊക്കെ കണ്ട്  ഇതൊന്നും കണ്ടിട്ടില്ലാത്തവർ  അതൊക്കെ എന്തോ വലിയ സംഭവമാണെന്ന് വിചാരിക്കണം.

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

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

അടിച്ചുമാറ്റെഡാക്രെഡിറ്റ്ഗുഡുഗുഡു.സി
മറ്റു ഡിസ്റ്റ്രോകളും ഡെസ്ക്ടോപ്പുകളും കൊള്ളാവുന്ന ഫീച്ചറുകൾ വല്ലതും കൊണ്ടുവന്നാൽ അതൊക്കെ നമ്മുടെ മാനുവലിലിൽ പണ്ടേ ഉള്ളതാണെന്നു പറഞ്ഞ് നില്ക്കണം. തെളിവു ചോദിച്ചാൽ പണ്ടത്തെ ഏതെങ്കിലും മാനുവലിൽ നിന്ന് റോഫ്/ട്രോഫ്/എൻറോഫ് ഫോർമാറ്റിലുള്ള എന്തെങ്കിലും കണ്ട്രോൾ ക്യാരകറ്ററുകൾ ഉൾപ്പെടെ എടുത്തുകാച്ചി വ്യാഖ്യാനിച്ചു കൊടുക്കണം. ഇക്കാലത്ത് ഒരുത്തനും റോഫും ട്രോഫുമൊന്നും അറിയില്ലന്നേ. അപലപഗുഡു.ലിബ് എതിർചേരിക്കാരുടെ പ്രവർത്തിയെ അപലപിക്കേണ്ടതാണ്. തമ്മിൽഷെയറൻഗുഡു.സിപ്പിപ്പി ഇതൊക്കെ ബാക്കിയെല്ലാവരും ഷെയർ ചെയ്യുന്നുണ്ടെന്നു ഉറപ്പു വരുത്തേണ്ടതാണ്.

ഐകാൻഡി.എസ്സെച്ച്
നമ്മുടെ വ്യത്യസ്ഥഗ്രൂപ്പുകളുടെ അക്രമവും കുത്തിത്തിരിപ്പുകളും കാരണം നാട്ടുകാരെല്ലാം കലിപ്പ് മോഡിലിരിക്കുമ്പോൾ നല്ല ഭംഗിയുള്ള ഡെസ്ക്ടോപ്പ് സ്ക്രീ‌‌ൻഷോട്ടുകളിട്ട് ആൾക്കരുടെ ശ്രദ്ധമാറ്റുക. മറ്റ് ഡെസ്ക്ടോപ്പ്/ഡിസ്റ്റ്രോകളുടെ സ്ക്രീൻഷോട്ടുകൾ ഇടുന്നത് ഇത്തരുണത്തിൽ അനുവദനീയമാണെങ്കിലും ഫെഡോറയിലെ കെഡീഈ സ്ക്രീൻഷോട്ടുകൾ കൂടുതൽ പോസ്റ്റ് ചെയ്യേണ്ടതാണ്.

തമ്മിൽഷെയറൻഗുഡു.സിപ്പിപ്പി
ഗ്രുപ്പ് മെമ്പറന്മാരുടെ പോസ്റ്റുകളും പ്രസംഗങ്ങളും മറ്റ് മെമ്പറന്മാർ റീഷെയർ ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുക. അടിച്ചുമാറ്റെഡാക്രെഡിറ്റ്ഗുഡുഗുഡു.സിയുടെ പോസ്റ്റുകൾ ഒരു കാരണവശാലും ഷെയർ ചെയ്യപ്പെടാതിരിക്കരുത്.

കിംവദന്തിഗുഡു.ലിബ്
മറ്റ് ഡിസ്റ്റ്രോകളുടെ ഉള്ലതും ഇല്ലാത്തതുമായ ബഗ്‌‌റിപ്പോർട്ടുകൾ‌ മെയിലിങ് ലിസ്റ്റിലും ഡിസ്ക്കഷൻ ഫോറത്തിലും പോസ്റ്റുകയും ആ ബഗ്ഗുകൾ കാരണം യൂസർമാരുടെ ഒരു ജോലിയും നടക്കുന്നില്ലെന്നും പറയേണ്ടതാണ്. നമ്മുടെ ഡിസ്റ്റ്രോയിലെ ബഗ്ഗുകൾ ഫിക്സ് ചെയ്തെന്നും മറ്റും പറഞ്ഞ് പരത്തുകയും വേണം. പുതിയ ഫീച്ചറുകൾ പലതും നമ്മുടെ ഡെവലപ്മെന്റ് ബ്രാഞ്ചിൽ ടെസ്റ്റ് ചെയ്തുകൊണ്ടിരിക്കുകയാണെന്നും പറയണം. മറ്റു ഡിസ്റ്റ്രോക്കാർ വീബിയിലാണ് കോഡെഴുതുന്നതെന്നും പറയണം.

വിൻഡോസിൽപോഡാ.എച്
നമ്മളെക്കുറിച്ച് ആരെങ്കിലും എന്തെങ്കിലും പറഞ്ഞാൽ അവർ വിൻഡോസിന്റെ ഡെവലപ്പർമാരാണെന്നും, അവന്മാർ ലിനക്സൊക്കെ വിട്ട് വിൻഡോസിലേക്ക് പോകണമെന്നും, സോഴ്സ് റെപ്പോയിലേക്കുള്ള അവന്മാരുടെ ആക്സസും,സുഡു പ്രിവിലേജസും, എസ്സെസ്സെച്  സർട്ടിഫിക്കേറ്റുമൊക്കെ റിവോക്ക് ചെയ്യണമെന്നും വയലന്റായി ആവശ്യപ്പെടണം. പറ്റുമെങ്കിൽ അവന്മാരുടെ ഹോംഡയറക്റ്ററിയിൽ കയറി സുഡു ഉപയോഗിച്ച് ഫയലുകൾ ഡെലിറ്റ് ചെയ്യുകയും വേണം. അപലപഗുഡു.ലിബും, സ്യൂഡോസ്റ്റ്രാറ്റജിസ്റ്റ്ഗുഡു.സിപ്പീപ്പിയും വിൻഡോസിൽപോഡാ.എച്ചിന്റെ ഈ പ്രവർത്തികൾ ഒന്ന് ചെറുതായി തള്ളിപ്പറയേണ്ടതാണ്.

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

ജനറൽ ടിപ്സ്
മറ്റു ഡിസ്റ്റ്രോകളേയും ഡെസ്ൿടോപ്പുകളെയും കുറിച്ച് തെറ്റിദ്ധാരണ പരത്തി പരമാവധി യൂസർമാരെ നമ്മുടെ കൂട്ടത്തിലേക്ക് എത്തിക്കാൻ നമ്മൾ പരിശ്രമിക്കേണ്ടതാണ്. അടുത്തറിലീസോ അതിനടുത്ത റിലോസോ കൂടി മറ്റവന്മാരെ എല്ലാം നമ്മുടെ ഡിസ്റ്റ്രോയിൽ നിന്ന് എടുത്ത് വെളിയിൽ കളഞ്ഞേ പറ്റൂ.

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

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

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

മെമ്മറിയുസേജ് കുറയ്ക്കാൻ പറ്റുമെന്ന് പറഞ്ഞ് നമ്മുടെ ഡെസ്ക്ടോപ് മാനേജറിലേക്ക് മാറിയിട്ട് മെമ്മറിയൂസേജ് കൂടിയെന്നും, നമ്മുടെ ഡിസ്റ്റ്രോയിലേക്ക് മാറിയാൽ എല്ലാ പ്രോസസ്സുകൾക്കും 16എംബി കൂടുതൽ റാം അലോക്കേറ്റു ചെയ്യുമെന്ന് പറഞ്ഞിട്ടുണ്ടെന്നുമൊക്കെ വല്ലവന്മാരും വന്നു ചോദിച്ചെന്നിരിക്കും. അങ്ങനെയെങ്ങാനും ഉണ്ടായാൽ അവന്മാരുടെ പ്രോഗ്രാമുകൾ കൂടുതൽ റാമെടുക്കുന്നതാണ്‌ പ്രശ്നമെന്ന് പറയണം. 16 എംബി റാം കൂടുതൽ കൊടുക്കുമെന്ന് നമ്മൾ ഒരിക്കലും പറഞ്ഞിട്ടില്ലെന്നും പറയണം.

വിവരദോഷിഗുഡു.ലിബ്, വിവരമില്ലാഗുഡു.ലിബ്, തലയിൽആൾതാമസമില്ലാഗുഡു.എച്  എന്നിവന്മാരെക്കൊണ്ട് എന്തെങ്കിലുമൊക്കെ മണ്ടത്തരങ്ങൾ എഴുന്നള്ലിച്ചുകൊണ്ടിരിക്കണം. നാട്ടുകാരെല്ലാം ഇവന്മാരുടെ പുറകേ നടന്ന് സമയം കളയുമ്പോൾ നമുക്ക് നമ്മുടെ പരിപാടികൾ മറ്റാരുടെയും ശ്രദ്ധയിൽ പെടാതെ ചെയ്യാൻ പറ്റും. ഇവന്മാർക്ക് ഏതെങ്കിലും മാനുവലോ, കോഡോ കൊടുത്തിട്ട് അതിനെക്കുറിച്ച് എന്തെങ്കിലും പറയാൻ പറഞ്ഞാൽ മതി, വരുന്നത് മുഴുവൻ നല്ല ഒന്നാന്തരം വിവരക്കേടും മണ്ടത്തരങ്ങളുമായിരിക്കും. ഒരു കാരണവശാലും നമ്മുടെ സ്റ്റ്രാറ്റജി മെയിലുകൾ ഇവന്മാർ കാണാനിടയാകരുത്, അതൊക്കെ ഇവന്മാർ എപ്പോ പബ്ലിക്കാക്കി എന്നു ചോദിച്ചാൽ മതി. ഇനി അഥവാ നമ്മുടെ വല്ല സ്റ്റ്രറ്റജിയും ഇവന്മാർ പബ്ലിക്കായി വിളിച്ചു പറഞ്ഞാൽ അതൊക്കെ അവന്മാരുടെ സ്ഥിരം മണ്ടത്തരങ്ങളാണെന്നു പറഞ്ഞാൽ മതി, ആളുകൾ വിശ്വസിച്ചോളും.  രണ്ടുദിവസം കഴിയുമ്പോൾ ലിവന്മാരിതൊക്കെ മറന്ന് വീണ്ടും നമ്മുടെ അടുത്തു തന്നെ വന്നോളും.

അപ്പോൾ എല്ലാം പറഞ്ഞതുപോലെ.
ജയ് ഫെഡോറ, ജയ് കെഡി‌‌ഈ
ലിനക്സ്പ്ലസ്‌‌പ്ലസ്സാനന്ദഗുഡുഗുഡു.സി

January 3, 2016

chequePrint : Linux utility to print into cheques

The problem : As I do not write much on paper these days, writing cheques will cause some cheque leaves go waste. Earlier I had created a template in LibreOffice to solve the problem. However, I could not use that template as it was for a different bank. It was too difficult to get the alignment correct as there were boxes for days, month & year.

Solution : Write a script! Initially considered generating TeX files but zeroed in on PostScript as it would be easy to do the layout.
The script is available in the chequePrint GitHub repo.

August 9, 2015

syncReaders: Linux utility to synchronize Calibre & CoolReader database

I use the coolReader in my Android phone and tablet to read e-books. The e-books are managed in my Linux system using Calibre. One of the problem I had was that it was difficult to maintain the ratings and read status of the books across the three devices. Manually updating the ratings and read status was not practical. Since I go by "Machines should work and men should enjoy", some time ago I ventured into writing a program to synchronize the status and read status in both applications. I have been using the utility for a while and serves my purpose. The downside is that the database files of the applications have to be manually copied to Linux system for synchronization and then copy back to respective devices manually.

The source code for syncReaders is available here : https://github.com/primejyothi/syncReaders

December 3, 2014

ഷെൽ ബ്രേസ് എക്സ്പാൻഷൻ

ഒന്നിലധികം അക്ഷരങ്ങളോ വാക്കുകളോ കൂട്ടിച്ചേർത്ത് പുതിയ സ്റ്റ്രിങ്ങുകൾ നി‌‌ർമ്മിക്കാൻ പറ്റിയ ഒരു ഉപാധിയാണ് ഷെല്ലിലെ ബ്രേസ് എക്സ്പാൻഷൻ. ഉദാഹരണത്തിന് a,b എന്നീ അക്ഷരങ്ങൾ ആദ്യവും c, d എന്നീ അക്ഷരങ്ങൾ രണ്ടാമതും വരുന്ന 2 അക്ഷരങ്ങളുള്ള വാക്കുകൾ ഉണ്ടാക്കാൻ {a,b}{c,d} എന്ന എക്സ്പ്രഷൻ ഉപയോഗിക്കാം.
echo {a,b}{c,d}
ac ad bc bd
ഇംഗ്ലീഷ് അക്ഷരമാല മുഴുവൻ പ്രിന്റ് ചെയ്യണമെങ്കിൽ ഇരുപത്താറക്ഷരങ്ങളും ടൈപ്പ് ചെയ്യുന്നതിനുപകരം {a..z} എന്നു കൊടുത്താൽ മതി.
echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
echo {a..z}{a..z} എന്നു കൊടുത്താൽ aa മുതൽ zz വരെ പ്രിന്റ് ചെയ്യും
echo {1,2}{a..z}{a..z} എന്നത് 1aa..1zz,2aa...2zz എന്നും പ്രിന്റ് ചെയ്യപ്പെടും.
ബ്രേസ് എക്സ്പാൻഷൻ കാര്യങ്ങൾ എങ്ങനെ എളുപ്പമാക്കുന്നെന്നു കാണാൻ മറ്റൊരുദാഹരണം പറയാം. 2000 മുതൽ 2014 വരെയുള്ള മാസങ്ങളുടെ പേരിൽ 2000_jan, 2000_feb എന്നിങ്ങനെ ഫോൾഡറുകൾ ഉണ്ടാക്കണമെന്നു കരുതുക. നൂറ്റി എൺപതു ഫോൾഡറുകളുടേ പേരുകൾ ഒന്നൊന്നായി ടൈപ്പ് ചെയ്യുന്നതിനുപകരം
mkdir {2000..2014}_{jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec}
എന്നു കൊടുത്താൽ മതിയാകും.
ഇനി 2000 മുതൽ 2014 വരെ നാലു വർഷങ്ങൾ ഇടവിട്ടുള്ളവയാണു വേണ്ടതെങ്കിൽ {2000..2014..4}_{jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec} എന്ന് എക്സ്പ്രഷനുപയോഗിക്കാം.
അക്കങ്ങൾക്കു പകരം അക്ഷരങ്ങളിൽ ..4 എന്നു കൊടുത്താൽ നാല് അക്ഷരങ്ങൾ ഇടവിട്ട് പ്രിന്റ് ചെയ്യും. ഉദാ : echo {a..z..4} എന്നത് a e i m q u y എന്നു പ്രിന്റ് ചെയ്യും

August 17, 2014

Up!

Like many other scripts, the bash shell function "up" is a by product of my laziness. As the name vaguely indicates, it can move you up in the directory tree. If you want to move 3 levels up in the directory tree, you invoke the function as up 3 instead of cd ../../../  which saves a ton of typing. The shell function can be downloaded from my GitHub repo. 

# Go n level up in the directory structure.
# License : GPLv3
function up ()
{
        lvls=""
        if [[ ! -z "$1" ]]
        then
                for i in `seq $1`
                do
                        lvls="${lvls}../"
                done
        else
                lvls="../"
        fi

        # Will land up in / if n is too large.
        cd ${lvls}
        pwd
}


The ShellUtils repo contains few other shell scripts that might be interesting. See the Readme file in the repo to find out what those scripts are doing.

August 2, 2014

Dbus-MPRIS Music Player Controller

The Short story :
Here is a shell script that can control media players like Amarok, Clementine, mpd & VLC : https://github.com/primejyothi/Dbus-MPRIS-MusicPlayer-Controller

The long story :
Like most of the programmers, I'm a big fan of command line. Since I can touch type, things get done really faster. There will be a music player running in my system and most of the time I will be using mpd with ncmpcpp. Only problem is that I keep forget which key is used to stop/pause ncmpcpp. This problem was quickly resolved by installing mpc and few aliases. Things were pretty fine and I even wrote a script (https://github.com/primejyothi/ShellUtils/blob/master/mpdLyrics.sh) to extract the album art of the song being played in mpd and show it on Conky .

Problems cropped up when Amarok or Clementine were used. The controls were on top for Amarok and in case of Clementine it was just opposite. I could use the media keys in the keyboard, but I hardly use them as mpd does not respond to them. The search of consistency ended with MPRIS. Quickly put together a script and any of these media players could be controlled with a single script. Few aliases and I can control the media player without leaving vim :)

For VLC and mpd, MPRIS need to be enabled manually. The VLC player need to be started as vlc --control dbus. In case of mpd, mpDris2 need to be running.

July 27, 2014

ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്

 
ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്  ഉപയോഗിക്കാൻ തുടങ്ങിയതുമുതൽ അതിനെക്കുറിച്ച് എഴുതണമെന്നു കരുതിയതാണ്. വിക്കിപീഡിയ പോലെ ആർക്കും എഡിറ്റ് ചെയ്യാവുന്ന ഒരു മാപ് ആണ് ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്. ആ വിവരങ്ങൾ എങ്ങനെയെല്ലാം ഉപയോഗിക്കാം എന്നുള്ളതിനെക്കുറിച്ചാണ് ഇവിടെ പറയാൻ പോകുന്നത്.

http://www.openstreetmap.org അല്ലെങ്കിൽ  http://osm.org ഉപയോഗിച്ച് ഓപ്പൺ സ്റ്റ്രീറ്റ് മാപ് സൈറ്റിലേക്ക് പോകാൻ പറ്റും. ഈ സൈറ്റ് പ്രധാനമായും മാപ് എഡിറ്റ് ചെയ്യാനും, ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ് എങ്ങനെ ഉപയോഗിക്കാം എന്നുള്ള ഒരു ഉദാഹരണവുമാണ്. അക്കാരണത്താൽ മറ്റേതെങ്കിലും മാപ്പ് ഉപയോഗിക്കുന്നതുപോലെ ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ് സൈറ്റ് ഉപയോഗിക്കാൻ ശ്രമിച്ചാൽ ചിലപ്പോൾ നിങ്ങൾ നിരാശരായേക്കും. അപ്പോൾ പിന്നെ ഇതെങ്ങനെ ഉപയോഗിക്കാം എന്നുള്ള ചോദ്യം വരും. അവിടെയാണ് ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്പിന്റെ ശരിക്കുള്ള ഗുണം വരുന്നത്. ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്പിലെ വിവരങ്ങൾ വളരെ ലളിതമായ ലൈസൻസിൽ ലഭ്യമാണ്. അതുപയോഗിച്ചിട്ടുള്ള വളരെയധികം സർവീസുകളും ലഭ്യമാണ്.

ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്പിലെ ഡേറ്റ, സന്നദ്ധപ്രവർത്തകർ ചേർക്കുന്നതുകൊണ്ട് മിക്കവാറും ശരിയായിരിക്കാനാണ് സാധ്യത. എന്നിരുന്നാലും ചില സ്ഥലങ്ങളിലെ കവറേജ് മറ്റു മാപ്പുകളെപ്പോലെ പൂർണ്ണമായെന്നിരിക്കില്ല. അതിനാൽ മറ്റേതു സർവീസും ഉപയോഗിക്കുമ്പോഴെടുക്കുന്ന മുൻകരുതലുകൾ ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്പ് ഉപയോഗിക്കുമ്പോഴും എടുക്കേണ്ടതാണ്.

ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്/ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ് ഡാറ്റ ഉപയോഗിച്ച് എന്തെല്ലാം മാപ് സർവീസുകൾ ലഭ്യമാണെന്നു നോക്കാം.

നാവിഗേഷൻ
OsmAnd : https://play.google.com/store/apps/details?id=net.osmand
ഓഫ്‌‌ലൈൻ മാപ് സൗകര്യമുള്ള നല്ലൊരു ആൻഡ്രോയ്ഡ് ആപ്ലിക്കേഷനാണിത്. ആവശ്യമുള്ള രാജ്യത്തിന്റെ മാപ് ഡൗൺലോഡ് ചെയ്താൽ ഡേറ്റാ കണക്ഷനില്ലാതെ ഈ ആപ്പുപയോഗിച്ച് നാവിഗേറ്റ് ചെയ്യാം. ഇന്ത്യൻ മാപ് ഏകദേശം 200 എംബിയോളം വരും. പത്തു മാപ്പുകൾ മാത്രമേ ഫ്രീ വെർഷനിൽ ഡൗൺലോഡ് ചെയ്യാൻ പറ്റൂ എന്നൊരു പ്രശ്നമുണ്ട്. ഇതുപയോഗിക്കുന്നതെങ്ങനെ എന്നു വിശദമാക്കുന്ന നല്ലൊരു ബ്ലോഗ് എന്റ്രി ഇവിടെ ഉണ്ട് :https://joostschouppe.wordpress.com/2014/07/25/using-osmand-on-the-road/

navfree : https://play.google.com/store/apps/details?id=com.navfree.android.OSM.ALL
OsmAnd പോലെ ഓഫ്‌‌ലൈൻ നാവിഗേഷൻ ഉപയോഗിക്കാവുന്ന മറ്റൊരാപ്ലിക്കേഷനാണിത്. ഇതും ഓപ്പൺസ്റ്റ്രീറ്റ് മാപ്പിൽ നിന്നുള്ള ഡേറ്റയാണുപയോഗിക്കുന്നത്. കഴിഞ്ഞ ഒന്നു രണ്ടു വർഷമായി ഞാൻ ഇതുപയോഗിക്കാറില്ലാത്തതിനാൽ കൂടുതൽ വിവരങ്ങൾ പറയാനില്ല.

ഓൺലൈനിൽ റൂട്ടിങിനു വേണ്ടി http://map.project-osrm.org/,http://open.mapquest.com/ എന്നീ സൈറ്റുകൾ ഉപയോഗിക്കാവുന്നതാണ്.

ഓപ്പൺസ്റ്റ്രീറ്റ് മാപ്പിൽ നിന്നുള്ള ഡേറ്റ ഉപയോഗിച്ച് പല തരം സർവീസുകളും ലഭ്യമാണ്. ചിലത് ഇവിടെ വിവരിക്കുന്നു.

പ്രിന്റഡ് മാപ്പുകൾ
http://fieldpapers.org/ എന്ന സൈറ്റിൽ നിന്ന് ആവശ്യമുള്ള പ്രദേശങ്ങളുടെ മാപ് നമുക്കുതന്നെ സെലക്റ്റ് ചെയ്ത് പിഡിഎഫ് ഫയൽ ആയി ഡൗൺലോഡ് ചെയ്യാൻ പറ്റും.  ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ് സൈറ്റിൽ നിന്നു തന്നെ മാപ്പുകൾ jpg/png/pdf/svg ഫോർമാറ്റുകളിൽ എക്സ്പോർട്ട് ചെയ്യാനുള്ള സൗകര്യമുണ്ടെങ്കിലും സെർവർ ലോഡ് അധികമാണെങ്കിൽ റിക്വസ്റ്റ് റിജക്റ്റ് ചെയ്യപ്പെടാനുള്ള സാധ്യതയുണ്ട്. അതിനാൽ fieldpapers.org ൽ നിന്നും മാപ്പുകൾ എടുക്കുന്നതാകും സൗകര്യം.

മാപ് സെർച്ച്
നേരത്തേ സൂചിപ്പിച്ചതുപോലെ ഓപ്പൺസ്റ്റ്രീറ്റ് സൈറ്റിന്റെ ഉദ്ദേശം മാപ് എഡിറ്റിങ്ങും മറ്റുമായതിനാൽ എല്ലാത്തരം വിവരങ്ങളും ആ സൈറ്റിൽ കാണാൻ പറ്റില്ല. മാത്രവുമല്ല അവിടെ സെർച്ച് ചെയ്യുന്നതും അത്ര സുഖമുള്ള പരിപാടിയല്ല. അങ്ങനെയുള്ള ആവശ്യങ്ങൾക്കായി ഉപയോഗിക്കാവുന്ന ചില സൈറ്റുകളാണ് http://www.openstreetbrowser.org/, http://osm24.eu,http://www.lenz-online.de/cgi-bin/osmpoi/osmpoi.pl എന്നിവ.

മറ്റു സർവീസുകൾ
http://www.openrailwaymap.org/ : റെയിൽ മാപ്പുകൾ.
http://openfiremap.org/ : ഫയർ സ്റ്റേഷനുകൾ, ഫയർ ഹൈഡ്രന്റ് എന്നിവയുടെ സ്ഥാനം അടയാളപ്പെടുത്തിയിട്ടുള്ള മാപ്.
http://openbeermap.github.io/ : പബ്, ഷാപ്പ് എന്നിവ കാണിക്കാൻ വേണ്ടിയുള്ള മാപ്.
http://waymarkedtrails.org/en/ : ഹൈക്കിങ് ട്രെയ്‌‌ലുകൾ

ഇത്രയും പറഞ്ഞ സ്ഥിതിക്ക് ഇതിൽ കുന്നംകുളത്തിന്റെ മാപ്പുണ്ടോ എന്ന ചോദ്യത്തിനും ഉത്തരം തരേണ്ടത് ആവശ്യമാണല്ലോ. കുന്നംകുളത്തിന്റെ മാപ്പുണ്ട്, പക്ഷേ പല വിവരങ്ങളും അതിൽ ഇതുവരെ ലഭ്യമല്ല. കുന്നംകുളത്തിന്റെ വിവരങ്ങൾ ഓപ്പൺസ്റ്റ്രീറ്റ്മാപ്പിൽ ചേർക്കാൻ താല്പര്യമുണ്ടെങ്കിൽ http://learnosm.org/en/ എന്ന സൈറ്റിൽ പോയാൽ വിവരങ്ങൾ ഓപ്പൺസ്റ്റ്രീറ്റ് മാപ്പിൽ എങ്ങനെ ചേർക്കാം എന്നു മനസ്സിലാക്കാം.

July 22, 2014

JOSM Preset Builder

I was trying to build some presets for JOSM (https://josm.openstreetmap.de/) few days back and thought it would be a good idea to automate the process. Read the some documentation that was available from http://josm.openstreetmap.de/wiki/TaggingPresets. The defaultpresets.xml contained in the JOSM package gave some very useful information in writing the script.

The idea was to have a text file with the preset data and generate the XML file using a script. I finally settled on a pipe separated file format with embedded key value pairs. When finished, it could generate presets with key value pairs, drop downs and lists.

The scripts and sample files are released under GPLv3 and available at https://github.com/primejyothi/JOSMPresetBuilder

Hope someone will find it useful.

May 14, 2014

Changing starting index of tmux panes

I use the bind key + q combination to quickly switch between tmux panes. I use ctrl + a as the bind key and I found it bit of troublesome to press 0 to switch to the first pane as 0 is at the right side of the keyboard. If the pane index started with 1, it would be much easier to select from 1 onward and won't have to go all the way to zero. Fortunately there is an option for that. Set pane-base-index to 1 and the pane index will start from 1. All that need is the following entry in the ~/.tmux.conf


set -g pane-base-index 1

tmux pane index starting with 1
As you can see from this screen shot, the pane index now starts with 1.

April 20, 2014

പാചകക്കുറിപ്പുകൾ : ഒരു വിപ്ലവത്തിനു സമയമായി

(ഗൂഗിൾ പ്ലസ്സിൽ പോസ്റ്റ് ചെയ്തതാണ്, ഇവിടെ അധികം പാചകക്കാരെ കണ്ടിട്ടില്ല, എന്നാലും വിപ്ലവത്തിന്റെ വിത്ത് പാകിയേക്കാം).

പ്രിയപ്പെട്ടവരേ,

ഇവിടെ പലരും നല്ല ചിക്കൻ, ബീഫ്‌‌, പോർക്ക്, പായസം എന്നീ വിഭവങ്ങളുണ്ടാക്കി അതിന്റെ ഫോട്ടോയൊക്കെ ഇട്ട് പാചകക്കുറിപ്പടിയും ഇടുന്നത് കണ്ടിട്ടുണ്ടാകുമല്ലോ? ഈ പാചകക്കുറിപ്പുകളുടെ ഒരു പ്രശ്നം എന്തെന്നാൽ അതൊന്നും റിപ്പീറ്റബിൾ അല്ല എന്നതാണ്. അതായത് അതുപയോഗിച്ച് രണ്ടുപേർ പാചകം ചെയ്താൽ രണ്ടും രണ്ടു വിധത്തിലായിരിക്കും. മാത്രവുമല്ല അതിലെ നിർദ്ദേശങ്ങൾ പലപ്പോഴും അവ്യക്തമായിരിക്കും. കുറച്ചു നാൾ മുമ്പ് നിശി[1] പോസ്റ്റ് ചെയ്ത് അടപ്രഥമൻ & പാലട പ്രഥമൻ ഉണ്ടാക്കാൻ ശ്രമിച്ച് ഞങ്ങളുടെ ക്ലബ്ബിലെ നീന്തൽക്കുളം കലങ്ങുകയുണ്ടായി. ഞാൻ ഇലക്ട്രോണിക്സ് ഇഞ്ചിനീയറിങ്ങാണ് പഠിച്ചതെന്ന് നിങ്ങളിൽ ചിലർക്കെങ്കിലും അറിവുണ്ടാകും. ആയതിനാൽ ഇഞ്ചിനിയറിങ് മേഖലയിൽ ഞങ്ങൾ ഇഞ്ചിനീയറന്മാർ കാലാകാലങ്ങളായി ഉപയോഗിക്കുന്ന ചില ബെസ്റ്റ് പ്രാക്റ്റീസുകൾ പാചകക്കുറിപ്പുകളിൽ അപ്ലൈ ചെയ്ത്, പാചകക്കുറിപ്പ് ആരുപയോഗിച്ചാലും അവസാനം കിട്ടുന്ന വിഭവം ഒരുപോലെ ആക്കുന്ന ഒരു നിലയിലേക്ക് എത്തിക്കുക എന്നതാണ് ഈ വിപ്ലവം കൊണ്ടുദ്ദേശിക്കുന്നത്. ആംപ്ലിഫയറിന്റെ സർക്യൂട്ട് ഡയഗ്രം ഫോളോ ചെയ്താൽ ആംപ്ലിഫയർ തന്നെയാണല്ലോ കിട്ടുക, അസ്റ്റേബിൾ മൾട്ടി വൈബ്രേറ്ററോ, ഷ്മിറ്റ് ട്രിഗറോ ഒന്നും അല്ലല്ലോ കിട്ടുന്നത്.
ഈ വിപ്ലവത്തിന്റെ അടിസ്ഥാന തത്വങ്ങൾ ഇവയാണ്:
  1. പാചകക്കുറിപ്പുകൾക്ക് എസ് ഐ യൂണിറ്റ് ഉപയോഗിക്കും. കുറച്ച് ചിക്കൻ, ഒരു സ്പൂൺ മല്ലിപ്പൊടി എന്നൊന്നും പറയരുത്. 157ഗ്രാം Gallus gallus domesticus മാംസം, 5.5 ഗ്രാം Coriandrum sativum പൗഡർ എന്നൊക്കെ വേണം പാചകക്കുറിപ്പുകളിൽ എഴുതാൻ.
  2. നിർദ്ദേശങ്ങൾ കൃത്യവും പാചകം ചെയ്യുന്നവർക്ക് സംശയലേശമന്യേ പാലിക്കാൻ പറ്റുന്നവയും ആകണം. ഉദാ: അടുപ്പിലിരിക്കുന്ന മിശ്രിതം ഇളക്കുക എന്നതു വളരെ അവ്യക്തമാണ്. പകരം, പാത്രത്തിലെ മിശ്രിതം മൂന്ന് സെന്റീമീറ്റർ വാട്ടവും പിടിക്ക് 15 സെന്റീമീറ്റർ നീളവുമുള്ള തവികൊണ്ട് മേജർ ആക്സിസ് 16 സെന്റീമീറ്ററും, മൈനർ ആക്സിസ് 7 സെന്റീമീറ്ററും ആയ എലിപ്സിന്റെ രൂപത്തിൽ ക്ലോക്‌‌വൈസ് ദിശയിൽ 45 ആർപ്പിഎമ്മിൽ 14.8 സെക്കന്റു നേരത്തേക്ക് ഇളക്കുക എന്നത് ആർക്കും ഒരു പോലെ ചെയ്യാൻ പറ്റുന്നതാണല്ലോ?
ഈ രീതി ഉപയോഗിച്ച് എഴുതിയ ഒരു പാചകക്കുറിപ്പ് നിങ്ങളുടെ റെഫറൻസിനായി ചേർക്കുന്നു
ചായ

Bill of materials
  1. കോപ്പർ (Cu, Atomic number 29) പാത്രം: ഡയമീറ്റർ 15 സെമീ, ആഴം 10 സെമീ
  2. H2O (വെള്ളം) 150 മി.ലി
    .
  3. Bos primigenius (പശു) ന്റെ പാൽ : 75 മി.ലി.
  4. C6H12O6 : 15 ഗ്രാം.
  5. Camellia sinensis ന്റെ ഇലയുടെ പൗഡർ : 5 ഗ്രാം
  6. Mesh : 0.310 mm dia, #of wires /mm : 2
  7. Spoon : 10 സെ.മീ നീളം, 5 മി.ലി കപ്പാസിറ്റി
  8. സെൽഷ്യസ് തെർമോമീറ്റർ : 0-150 ഡിഗ്രീ സെൽഷ്യസ് വരെയുള്ളത്.
  9. ടംബ്ലർ : സിലിക്കാ ഗ്ലാസ് കൊണ്ടുണ്ടാക്കിയത്.
രീതി:

സ്റ്റൗവ് 1.5 kwh ഔട്ട്പുട്ട് ചൂട് കിട്ടുന്ന രീതിയിൽ ക്രമീകരിക്കുക. ഐറ്റം #2 ഐറ്റം #1 ൽ ഒഴിച്ച് സ്റ്റൗവിൽ വയ്ക്കുക. തെർമോമീറ്റർ ഉപയോഗിച്ച് പാത്രത്തിലെ ഉള്ളടക്കത്തിന്റെ ചൂട് മോണിറ്റർ ചെയ്യുക. അന്തരീക്ഷ മർദ്ദം 1 അറ്റ്മോസ്ഫിയർ ആണെങ്കിൽ 100 ഡിഗ്രീ സെൽഷ്യസിൽ ഇത് തിളയ്ക്കാൻ തുടങ്ങും. അപ്പോൾ ഐറ്റങ്ങൾ 4ഉം 5ഉം ചേർക്കുക. #7 ഉപയോഗിച്ച് 10 സെ മീ വ്യാസമുള്ള വൃത്താകാരത്തിൽ 30 ആർപ്പിഎമ്മിൽ 8 സെക്കന്റ് ക്ലോക്കിന്റെ ദിശയിൽ ഇളക്കുക. ഒരു മിനിട്ട് 27 സെക്കന്റ് കഴിയുമ്പോൾ‌ പാത്രത്തിലേക്ക് ഐറ്റം 3 ചേർക്കുക. 1 മിനിട്ട് 26 സെക്കന്റിനു ശേഷം സ്പൂൺ ഉപയോഗിച്ച് 10 സെമീ വ്യാസമുള്ള വൃത്താകാരത്തിൽ 15 ആർപ്പിഎമ്മിൽ ക്ലോക്കിന്റെ ദിശയിൽ 4 പ്രാവശ്യം ഇളക്കുക. ഓരോ 15 സെക്കന്റിടവിട്ട് 6 പ്രാവശ്യം ഇതുപോലെ ഇളക്കുക.
സ്റ്റൗ ഓഫ് ചെയ്യുക. ചായ റെഡി. മെഷ് ഉപയോഗിച്ച് ചായ ടംബ്ലറിലേക്ക് ഒഴിക്കുക. ചായയുടെ ചൂട് 60 - 80 ഡിഗ്രീ ആകുമ്പോൾ കുടിക്കാൻ തുടങ്ങാം.
[1]നിശികാന്തിന്റെ പായസത്തിന്റെ കുറിപ്പടി ഇവിടെ : https://plus.google.com/+GNisikanth/posts/8VMSiuj5Gr6

April 19, 2014

സെർച്ച് : ഗൂഗിൾ പ്ലസ് പോസ്റ്റുകളിൽ

സേർച്ചിൽ ഗൂഗിൾ ഒരു പുലിയാണെങ്കിലും ഗൂഗിൾ പ്ലസ്സിൽ പുലിയുടെ നിഴൽ പോലും അല്ല എന്നാണ് സ്വന്തം അനുഭവം. എന്തോ ഒരുകാര്യത്തിനായി എന്റെ ഒരു പോസ്റ്റ് ഗൂഗിൾ പ്ലസ്സിൽ തിരഞ്ഞ് വട്ടായി. അവസാനം ഒരു വളഞ്ഞവഴിയിൽ കൂടി കാര്യം നടത്തി. പൊതുജനോപകാരാർത്ഥം അത് ഇവിടെ ചേർക്കുന്നു.

നമ്മുടെ സ്വന്തം പോസ്റ്റുകളും അതിലെ കമന്റുകളും ഗൂഗിൾ ടേക്ക് ഔട്ട് ഉപയോഗിച്ച് ഡൗൺലോഡ് ചെയ്ത് അത് ലോക്കൽ ഡ്രൈവിൽ എക്സ്റ്റ്രാക്റ്റ് ചെയ്ത് അതിൽ സെർച്ച് ചെയ്യുക എന്നതാണ് ഈ വളഞ്ഞവഴി.

ആദ്യം https://www.google.com/settings/takeout ൽ പോയി "Create archive" എന്ന ബട്ടൺ അമർത്തുക. അപ്പോൾ വരുന്ന പേജിൽ Google+ Stream മാത്രം സെലക്റ്റ് ചെയ്ത് Create Archive ചെയ്യാൻ ഗൂഗിളിനോടു പറയുക. അപ്പോൾ ഗൂഗിൾ പറയും, ആർക്കൈവ് ഉണ്ടാക്കുകയാണ്, സംഭവം റെഡിയാകുമ്പോ‌‌ൾ മെയിൽ അയക്കാമെന്ന്. ഇനി മെയിൽ വരുന്നതുവരെ കാത്തിരിക്കുക. ഡൗൺലോഡ് റെഡിയായെന്നു പറഞ്ഞു മെയിൽ വന്നാൽ ഓടിപ്പോയി ആ ആർക്കൈവ് ഡൗൺലോഡ് ചെയ്യുക. കുറേ അധികം കുക്കികളും മറ്റു അനുസാരികളും ഈ ഡൗൺലോഡിന് വേണമെന്നുള്ളതിനാൽ കുക്കികൾ എനേബിൾ ചെയ്യാൻ മറക്കരുത്. ഒരു ആർക്കൈവ് നിശ്ചിത തവണകൾ/ദിവസങ്ങൾ മാത്രമേ ലഭ്യമായിരിക്കുകയുള്ളൂ എന്നു തോന്നുന്നു.

ആർക്കൈവ് കിട്ടിയാൽ അത് ഒരു ഫോൾഡറിലേക്ക് എക്സ്റ്റ്രാക്റ്റ് ചെയ്യുക. അതിനുള്ളിലെ ഫോൾഡറുകളിലേക്ക് പോകുമ്പോ‌‌ൾ Google+ Stream എന്ന ഒരു ഫോൾഡറിൽ നിങ്ങൾളുടെ പോസ്റ്റുകൾ എല്ലാം കമന്റുകൾ ഉൾപ്പടെ html ഫയലുകൾ ആയി കാണാൻ പറ്റും. ആർക്കൈവിൽ പ്രൈവറ്റ് പോസ്റ്റുകളും വരുമെന്നതിനാൽ ആർക്കൈവ് ഫയലും എക്സ്റ്റ്രാക്റ്റ് ചെയ്ത ഫയലുകളും സൂക്ഷിച്ച് വയ്ക്കേണ്ടത് നിങ്ങളുടെ സ്വന്തം കടമയാണ്.

ഇനി ആവശ്യമുള്ള സേർച്ചെല്ലാം ലോക്കൽ html ഫയലുകളിൽ ചെയ്യാവുന്നതാണ്. വിൻഡോസിന്റെ ഫൈൻഡ് യൂട്ടിലിറ്റിയിൽ ഫയലുകളുടെ ഉള്ളടക്കവും തിരയാൻ ഒരു ഓപ്ഷനുണ്ട്. Find എന്ന ഡോസ് കമാന്റും ഉപയോഗിക്കാവുന്നതാണ്.

ഈ പരിപാടി ഉപയോഗിച്ച് നമ്മുടെ സ്വന്തം പോസ്റ്റുകളിലും, അവയിൽ വന്നകമന്റുകളും മാത്രമേ കിട്ടുകയുള്ളൂ. നമ്മൾ മറ്റുള്ളവരുടെ പോസ്റ്റിൽ എഴുതിയ കമന്റുകൾ ഇതുപോലെ കിട്ടാൻ വല്ല വഴിയുമുണ്ടെങ്കിൽ ദയവായി പങ്കുവയ്ക്കുക.

വിൻഡോസ് ഉപയോക്താക്കൾക്ക് ഇനി വീട്ടിൽ പോകാം, ബാക്കി ലിനക്സ് ഉപയോക്താക്കൾക്കാണ്.

grep ഉപയോഗിച്ച് പാറ്റേണുകൾ html ഫയലുകളിൽ സെർച്ച് ചെയ്യാവുന്നതാണ്. ഉദാ:
grep "search pattern" *.html
ഫയലുകളുടെ പേരിൽ പല സ്പെഷ്യൽ ക്യാരക്റ്ററുകളും ഉള്ളതിനാൽ ചിലപ്പോൾ grep: invalid option -- '(' എന്നൊക്കെ പറഞ്ഞെന്നിരിക്കും. അപ്പോൾ grep നു ശേഷം രണ്ട് മൈനസ് കൊടുത്താൽ മതിയാകും :
grep -- "search pattern" *.html

April 15, 2014

സ്വതന്ത്രം.in

സ്വതന്ത്രസോഫ്റ്റ്‌‌വേറിനെ കൂടുതൽ ജനങ്ങളിലേക്കെത്തിക്കുക എന്ന ലക്ഷ്യവുമായി മലയാളത്തിൽ ഒരു പോർട്ടൽ/മാഗസിൻ തുടങ്ങിയിരിക്കുന്നു : http://swathanthram.in/ വായിക്കുക, പങ്കാളികളാകുക, പ്രചരിപ്പിക്കുക.
ഈ ഉദ്യമത്തിന്റെ ശില്പികളായ സ്വതന്ത്ര സോഫ്റ്റ്‌‌വേർ പ്രവർത്തകർക്ക് നന്ദി.

March 27, 2014

exiftool

കൂൾ റീഡറിനെ(http://coolreader.org/e-index.htm) കുറിച്ചെഴുതണോ അതോ എംപിഡിയെ (https://en.wikipedia.org/wiki/Music_Player_Daemon) കുറിച്ചെഴുതണോ എന്നു കൺഫ്യു ആയപ്പോൾ എക്സിഫ് ടൂളിനെ (exiftool)‌‌ ക്കുറിച്ചെഴുതാം എന്നു വിചാരിച്ചു.
എക്സിഫ്‌‌ടൂൾ എന്ന പേര് കുറച്ച് തെറ്റിദ്ധാരണാജനകമാണെന്നാണ് എന്റെ വിനീതാഭിപ്രായം. കാരണം മറ്റൊന്നുമല്ല, പേരു കേൾക്കുമ്പോൾ ഇമേജ് ഫയലുകളിലെ എക്സിഫ് ഡേറ്റാ എടുക്കാനുള്ള ഒരു ടൂളാണെന്നാണ് തോന്നും. ഒന്നു രണ്ടു പ്രാവശ്യം ഉപയോഗിച്ചു നോക്കിയപ്പോഴാണ് സംഭവം മിക്കവാറും എല്ലാ തരം മീഡിയ ഫയലുകളിൽ നിന്നും മെറ്റാഡേറ്റാ എടുക്കാൻ പറ്റിയ ഒരു സാധനമാണെന്നു മനസ്സിലായത്.
ഏതെങ്കിലും ക്യാമറയിൽ നിന്നുള്ള ഫോട്ടോ ഫയലിൽ എക്സിഫ് ടൂൾ ഓടിച്ചാൽ അതിലുള്ള ഒരു വിധം എല്ലാ മെറ്റാഡേറ്റയും അതു ലിസ്റ്റ് ചെയ്യും. ഉദാ :
exiftool  IMG_3924.CR2
ExifTool Version Number         : 9.46
File Name                       : IMG_3924.CR2
Directory                       : .
File Size                       : 8.7 MB
File Modification Date/Time     : 2011:09:29 21:17:53+05:30
File Access Date/Time           : 2014:03:27 19:13:21+05:30
File Inode Change Date/Time     : 2013:08:17 19:52:54+05:30
File Permissions                : rwxr--r--
File Type                       : CR2
MIME Type                       : image/x-canon-cr2

Light Value                     : 11.0
Red Balance                     : 2.027344
കാനണിൽ നിന്നുള്ള റോ ഫയലിൽ നിന്ന് 285 ടാഗുകൾ ലിസ്റ്റ് ചെയ്തു
ആദ്യമായി exiftool ഉപയോഗിച്ചത് ടാബ്‌‌ലറ്റിന്റെ മെമ്മറി കാർഡിലെ ഫയലുകൾ റിക്കവർ ചെയ്തപ്പോഴാണ്. റിക്കവർ ചെയ്ത ഫയലുകളുടെ പേരെല്ലാം ഒരു വഴിക്കായിരുന്നു. ഫോട്ടോകളുടേയും വീഡിയോകളുടേയും പേരും മോഡിഫിക്കേഷൻ ടൈമും ഷൂട്ട് ചെയ്ത ഡേറ്റ്/സമയ പ്രകാരം ആക്കാൻ നോക്കിയപ്പോൾ exiftool ആയിരുന്നു സഹായത്തിനെത്തിയത്. എക്സിഫ് ടൂളിന് -T എന്നൊരോപ്ഷനുണ്ട്, അതും ആവശ്യമുള്ള ടാഗ് നേമും കൊടുത്താൽ ആ ടാഗ് മാത്രം ഫയലിൽ നിന്ന് എടുത്തു തരും. 
exiftool -T -DateTimeOriginal IMG_3924.CR2
2011:09:18 15:52:28
നേരത്തേ പറഞ്ഞതുപോലെ പേരു മാറ്റി ഫയൽമോഡിഫിക്കേഷൻ ടൈം മാറ്റാൻ നോക്കിയപ്പോൾ, ടാഗിലെ സമയം ടച്ച് കമാന്റിനുപയോഗിക്കാവുന്ന രീതിയിലാക്കാൻ കുറേ മെനക്കെടേണ്ടിവരുമെന്നാണ് കരുതിയത്. എന്നാൽ -d എന്ന ഓപ്ഷനുപയോഗിച്ച് ഇഷ്ടമുള്ള ഡേറ്റ് ഫോർമാറ്റ് കൊടുക്കാൻ പറ്റുമെന്നു മനസ്സിലായി.
exiftool -d "%Y%m%d_%H%M.%S" -T -DateTimeOriginal IMG_3924.CR2 
20110918_1552.28
ആനന്ദലബ്ധിക്കിനിയെന്തു വേണം ;)
അടുത്തത് എംപീത്രീ ഫയലുകളിലെ ലിറിക്സ് ടാഗുമായി മല്പിടിത്തം നടത്തിയപ്പോൾ എക്സിഫ് ടൂൾ രക്ഷപ്പെടുത്തിയ കഥയാണ്. മുമ്പ് പാട്ടുകേൾക്കാൻ ഉപയോഗിച്ചിരുന്നത് അമറോക് മ്യൂസിക് പ്ലയറായിരുന്നു. അമറോക്കിന് id3 ടാഗിലുള്ള ലിറിക്സ് വായിക്കാൻ പറ്റില്ലെന്നുള്ളെത് ഒരു വലിയ പ്രശ്നമായിരുന്നു. അതു പരിഹരിക്കാൻ വേണ്ടി ഒരു അമറോക് പ്ലഗിൻ എഴുതാം എന്നു വിചാരിച്ച് നോക്കിയപ്പോൾ ഒരു വിധത്തിലും ലിറിക്സ് ഫയലുകളിൽ നിന്ന് എടുക്കാൻ പറ്റുന്നില്ല. (അന്നു ഐഡിത്രീയോടുള്ള കലിപ്പിലിട്ട പോസ്റ്റ് ഇവിടെ : http://primejyothi.blogspot.in/2013/12/id3-blues.html). id3info യും id3v2ഉം ഒക്കെ ഉപയോഗിച്ചു നോക്കിയപ്പോൾ‌ അതിൽ ലിറിക്സൊന്നും കിട്ടുന്നില്ല. അപ്പോഴാണ് എക്സിഫ് ടൂൾ ഓടിച്ചു നോക്കിയത്. ഔട്ട്പുട്ട് കണ്ട് കിടുങ്ങിപ്പോയി. ആ എംപിത്രീയിലുണ്ടായിരുന്ന സകല ടാഗുകളും അതു ലിസ്റ്റ് ചെയ്തു. ദാ ഉദാഹരണം (സ്ഥലം ലാഭിക്കാനായി ലിറിക്സ് കുറച്ച് കട്ട് ചെയ്തിട്ടുണ്ട്)
exiftool Pularmanjiloode-320-OnamwitheeNam2013.mp3
ExifTool Version Number         : 9.46
File Name                       : Pularmanjiloode-320-OnamwitheeNam2013.mp3
Directory                       : .
File Size                       : 14 MB
File Modification Date/Time     : 2014:02:04 14:46:32+05:30
File Access Date/Time           : 2014:03:26 18:37:13+05:30
File Inode Change Date/Time     : 2014:02:04 14:46:32+05:30
File Permissions                : rw-rw-r--
File Type                       : MP3
MIME Type                       : audio/mpeg
MPEG Audio Version              : 1
Audio Layer                     : 3
Audio Bitrate                   : 320 kbps
Sample Rate                     : 44100
Channel Mode                    : Stereo
MS Stereo                       : Off
Intensity Stereo                : Off
Copyright Flag                  : False
Original Media                  : False
Emphasis                        : None
ID3 Size                        : 187144
Title                           : Pularmanjiloode Alayaan
Artist                          : G Venugopal, G Nisikanth
Album                           : Onam with eeNam 2013
Recording Time                  : 2013
Track                           : 13
Comment (xxx)                   : (ID3v1 Comment) Visit [http://www.onam.eenam.com](http://www.onam.eenam.com) for
Lyrics                          :   പുലർമഞ്ഞിലൂടെ അലയാൻ, ... അലയാൻ, കുളിർ.കാറ്റിൽ മോഹം അലിയാൻ
Popularimeter                   :  Rating=0 Count=110
User Defined Text               : (FMPS_Playcount) 110
Genre                           : Festival Songs
Lyricist                        : G Nisikanth
Composer                        : G Nisikanth
Picture Mime Type               : image/jpeg
Picture Type                    : Front Cover
Picture Description             : Pularmanjoloode_final.jpg
Picture                         : (Binary data 183885 bytes, use -b option to extract)
Year                            : 2013
Comment                         : Visit [http://www.onam.eenam.com](http://www.onam.eenam.com) for
Date/Time Original              : 2013
Duration                        : 0:05:51 (approx)
അപ്പോൾ പറഞ്ഞു വന്നത് ഇനി ഏതെങ്കിലും ഫയലിൽ നിന്ന് മെറ്റാഡേറ്റ വേർതിരിച്ചെടുക്കണമെങ്കിൽ എക്സിഫ് ടൂൾ ഉപയോഗിച്ചു നോക്കാവുന്നതാണ്. ഏതൊക്കെ ഫയലുകൾ സപ്പോർട്ട് ചെയ്യുന്നെന്നറിയാൻ exiftool എന്നു മാത്രം റൺ ചെയ്യുക. ഏതെല്ലാം ടാഗുകൾ സപ്പോർട്ട് ചെയ്യുമെന്നറിയാൻ exiftool -list എന്നു റൺ ചെയ്യുക. എന്റെ സിസ്റ്റത്തിൽ ഏകദേശം മൂവായിരം ലൈനുകളിലായി പന്ത്രണ്ടായിരം ടാഗുകൾ ലിസ്റ്റ് ചെയ്തു ;)

March 25, 2014

ഗാലിഫൈ

പ്രോഗ്രാം കോർഡമ്പ് ചെയ്തോ? കമ്പൈലർ എണ്ണമില്ലാത്ത എററുകൾ തരുന്നോ? ലവൻ നിങ്ങളുടെ കോഡ് കൊളമാക്കിയോ? ഇത്തരം സന്ദർഭങ്ങളിലുപയോഗിക്കാൻ പറ്റിയ തെറികളുണ്ടോ നിങ്ങളുടെ പക്കൽ? ഇല്ലെങ്കിൽ ഇതാ ഗാലിഫൈ സ്ക്രിപ്റ്റ്. പതിനഞ്ച് ഹൈക്വാളിറ്റി ബിൽറ്റിൻ തെറികളുമായി ഗാലിഫൈ സ്ക്രിപ്റ്റ് ഡൗൺലോഡൂ : http://goo.gl/cVKglH
ബിൽറ്റിൻ എന്റ്രികൾ പോര എങ്കിൽ കസ്റ്റം എന്റ്രികൾ ~/.galify.rc എന്ന ഫയലിൽ ചേർക്കാവുന്നതാണ്

ഈ സ്കിപ്റ്റ് എഴുതാനുള്ള പ്രചോദനം സുബിൻ ഡയസ്പോറയിൽ ഇട്ട ഈ പോസ്റ്റാണ് : https://poddery.com/posts/1033614

March 15, 2014

MiniDLNA : a lightweight DLNA/UPnP server for Linux

I used to use XBMC to stream videos from my Fedora system to my Andorid phone and Tablet. Of late I started to think that XBMC was little too much for streaming videos and started to look for alternatives. Few days back I found MiniDLNA, a light weight DLNA server. The installation and configuration in Fedora was pretty simple and it was up and running in no time.
Here are the installation/configuration steps I followed.
Install the MiniDLNA

sudo yum install minidlna

Minor changes are required in /etc/minidlna.conf to configure the server. I had to change the values for the following parameters in the /etc/minidlna.conf

network_interface=em1
port=8200
user=minidlna
media_dir=/xxx/yyy/zzzz # More media directories will need multiple media_dir entries.
friendly_name=MiniDLNA

Open up the port 8200 in firewall and the configuration is done.
Start the miniDLNA server as follows :

sudo systemctl start minidlna.service

Fire up your favorite DLNA/UPnP client from the mobile device (I use UPnPlay) and enjoy the videos.