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.

March 4, 2014

KDE Connect

Updated KDE connect to the latest version (https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp)
For the new features, the latest desktop client in KDE need to be built from source. The source code is available at : git://anongit.kde.org/kdeconnect-kde

The new version support browsing the device SD card contents from KDE. Loading the folders take a bit of time, but once loaded it browsing through the folders are reasonably fast.

In the previous version I was unable to sync the clipboards if the text was not English. This version does not have that limitation.

A must have application if you use KDE.

February 28, 2014

ccache - file not recognized: File truncated

Two days back I decided to pull the latest changes for GIMP.  While compiling got the error
".libs/gimpnumberpairentry.o: file not recognized: File truncated"
It took a while to figure out the error was caused by ccache. The solution was pretty simple - clean the ~/.ccache using ccache -C

February 24, 2014

JOSM Tile stitching script

I wrote a Linux shell utility to combine the OpenStreetMap map tiles downloaded by JOSM into a single big image. The script is available here : https://github.com/primejyothi/jMapStitch

January 29, 2014

Standardizing glyph names in Unicode fonts

On New year's eve, Rajeesh K Nambiar  conducted a nice font training session. During the session he mentioned that the glyph names in different Malayalam Unicode fonts maintained by SMC are not standardized and this is causing a bit of problems in the maintenance of different fonts.

Here is a small utility I have developed that will help in renaming the glyphs in the font SFD files : https://github.com/primejyothi/glyphRen

It takes a reference file that contains the Unicode Code points and the corresponding names and rename the glyphs in the SFD file based on that. The composite characters will be renamed based on the constituent glyphs.

Hope this utility will make things little bit easy for the font maintainers.

This program is dedicated to Rajeesh for teaching me the first glyphs of Malayalam fonts.

January 28, 2014

Multiple windows with tmux & gvim

ഞാൻ പ്രോഗ്രാമുകൾ എഴുതുമ്പോൾ കമ്പൈൽ ചെയ്യാനും ടെസ്റ്റ് ചെയ്യാനും മറ്റുമായി അഞ്ചാറ് ടെർമിലുകളും വിം സെഷനുകളും ഉണ്ടാകും. ഏതെങ്കിലും വിൻഡോയിലേക്ക് പോകണമെങ്കിൽ കുറേ alt + tab / alt + shift + tab അടിച്ചു നോക്കണം. അത്യാവശ്യമായി ഒരു വിൻഡോ നോക്കിയിട്ട് കിട്ടിയില്ലെങ്കിലത്തെ കാര്യം പറയണ്ടല്ലോ?
gvim വിൻഡോ സ്പ്ലിറ്റ് ചെയ്ത് ഫയലുകളുടെ കാര്യം ശരിയാക്കി. ടെർമിനലുകൾ നാലെണ്ണെം സ്ക്രീനിന്റെ നാലു കോർണറുകളിലാക്കി നോക്കി. alt + tab അടിക്കാതെ കൃത്യമായ ടെർമിനൽ സെലക്റ്റ് ചെയ്യണമെങ്കിൽ മൗസ് ഉപയോഗിക്കണം. അത് കുറച്ചു ബുദ്ധിമുട്ടുള്ള പണിയായതിനാൽ വേറെ വഴി അന്വേഷിക്കാൻ തുടങ്ങി. അങ്ങനെയാണ് tmux ൽ എത്തിച്ചേരുന്നത്.

tmux
GNU Screen പോലൊരു ടെർമിനൽ മൾട്ടിപ്ലക്സറാണ് tmux. ഞാൻ സ്ക്രീനിനു പകരം tmux ഉപയോഗിക്കാനുള്ള കാരണം tmux ൽ പുതിയ ഒരു വിൻഡോപേൻ (Window pane) ഉണ്ടാക്കുമ്പോൾ‌ നേരത്തേ വർക്ക് ചെയ്തുകൊണ്ടിരുന്ന ഡയറക്റ്ററിയിൽ തന്നെ ഒരു ഷെൽ കിട്ടും എന്നതാണ്. GNU screen ൽ നമ്മൾ തന്നെ ഒരു ഷെൽ സ്റ്റാർട്ട് ചെയ്യണം.

tmux എങ്ങനെ ഉപയോഗിക്കാം എന്നു നോക്കാം:
ഫെഡോറയിൽ sudo yum installl tmux എന്ന കമാന്റുപയോഗിച്ചും ഉബുണ്ടുവിൽ sudo apt-get install tmux എന്ന കമാന്റും ഉപയോഗിച്ച് tmux ഇൻസ്റ്റാൾ ചെയ്യാം.

അടുത്ത പരിപാടി tmux  നമുക്ക് വേണ്ട രീതിയിൽ കോൺഫ്യുഗർ ചെയ്യുകയാണ്. ഇതിനായി ഹോം ഡയറക്റ്ററിയിലെ .tmux.conf എന്ന ഫയലിൽ ആവശ്യമായ മാറ്റങ്ങൾ വരുത്തണം. എന്റെ .tmux.conf ഫയൽ ഇവിടെ ചേർക്കുന്നു.

unbind C-b
set -g prefix C-a
set -g display-panes-time 2000
set -g mode-mouse on
set -g mouse-select-pane on

ഇതിൽ unbind C-b & set -g prefix C-a എന്ന വരികൾ ഡിഫോൾട്ട് പ്രിഫിക്സ് കീ ആയ ctrl + b എന്നതിനു പകരം  ctrl + a ആക്കുന്നു. എനിക്ക്  ctrl + b അമർത്തുന്നതിനേക്കാൾ  ctrl + a അമർത്തുന്നതാണെളുപ്പം എന്നതുകൊണ്ടാണ് പ്രിഫിക്സ് കീ (ഇനി മുതൽ ഇത് C-a എന്നാകും എഴുതുന്നത്‌‌) മാറ്റിയത്.

tmux എന്ന കമാന്റ് കൊടുത്താൽ ഒരു tmux സെഷൻ തുടങ്ങും. ഈ സ്ക്രീൻ എങ്ങനെ സ്പ്ലിറ്റ് ചെയ്യാമെന്നു നോക്കാം. C-a + % എന്നു കൊടുത്താൽ സ്ക്രീൻ ലംബമായി സ്പ്ലിറ്റ് ചെയ്യും. C-a + " എന്നു കൊടുത്താൽ സ്ക്രീൻ തിരശ്ചീനമായും സ്പ്ലിറ്റ് ആകും. ആവശ്യാനുസരണം സ്പ്ലിറ്റ് ചെയ്ത് ഒരു സ്ക്രീനിൽ തന്നെ ഒന്നിലധികം ഷെല്ലുകൾ ഓപ്പൺ ചെയ്യാവുന്നതാണ്. ഒരു വിൻഡോപേനിൽ നിന്നും മറ്റൊരു വിൻഡോപേനിലേക്കു മാറാൻ പല രീതികളുണ്ട്. ഒന്നാമത്തേത് C-a q ഉപയോഗിച്ചാണ്. ഇങ്ങനെ ചെയ്യുമ്പോൾ ഓരോ വിൻഡോപേനിന്റെയും നമ്പരുകൾ സ്കീനിൽ തെളിഞ്ഞു വരും. നമുക്ക് പോകേണ്ട വിൻഡോപേനിന്റെ നമ്പർ അമർത്തിയാൽ അതിലേക്കു പോകും. ഈ നമ്പർ സ്ക്രീനിൽ കാണിക്കുന്ന സമയം കുറവാണെങ്കിൽ display-panes-time എന്ന ഓപ്ഷൻ .tmux.conf ൽ മാറ്റിയാൽ മതിയാകും. നമ്പരുകൾ എത്ര മില്ലി സെക്കന്റ് കാണിക്കണമെന്ന്  display-panes-time നോടു ചേർത്താൽ മതിയാകും.

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

മൗസ് ഉപയോഗിച്ചും വിൻഡോപേനുകൾ മാറാവുന്നതാണ് . അതിനായി set -g mode-mouse on &‌ set -g mouse-select-pane on എന്നിവ .tmux.conf ൽ ചേർക്കണം. ഇങ്ങനെ ചെയ്താലുള്ള ഒരു പ്രശ്നം ഡിഫോൾട്ട് മൗസ് ഓപ്പറേഷനുകൾക്ക് ഷിഫ്റ്റ് കീ കൂടി ഉപയോഗിക്കണം എന്നതാണ്.



gvim
vim-ൽ സ്ക്രീൻ സ്പ്ലിറ്റ് ചെയ്യാൻ :sp [file name]  :vsp [file name]  കമാന്റുകൾ ഉപയോഗിക്കാം. ഫയലിന്റെ പേരുകൾ കൊടുത്തില്ലെങ്കിൽ ഇപ്പോഴുള്ള ഫയലിന്റെ വിൻഡോ സ്പ്ലിറ്റ് ചെയ്യും.
:sp സ്ക്രീൻ തിരശ്ചീനമായും :vsp സ്ക്രീൻ ലംബമായും സ്ക്രീൻ സ്പ്ലിറ്റ് ചെയ്യും. ctrl w+w ഉപയോഗിച്ച് ഒരു വിൻഡോയിൽ നിന്നും മറ്റൊന്നിലേക്ക് നീങ്ങാവുന്നതാണ്.
വിം ന്റെ ചിത്രത്തിൽ താഴെ വലതുവശത്ത് കാണുന്നത്  രണ്ടു ഫയലുകൾ diff ചെയ്യുന്നതാണ്. സ്പ്ലിറ്റ് ചെയ്ത് ഫയലുകൾ ഓപ്പൺ ചെയ്തശേഷം  :set diff  എന്നു കൊടുത്താൽ വിം തന്നെ ഡിഫ് ചെയ്യും. രണ്ടു വിൻഡോയിലും :set scrollbind എന്നുകൊടുത്താൽ ഒരു ഫയലിനെ സ്ക്രോൾ ചെയ്യുമ്പോൾ മറ്റേ ഫയലും അതുപോലെ സ്ക്രോൾ ആയിക്കൊള്ളും.

tmux-ഉം gvim-ഉം ഈ വിധത്തിൽ ഉപയോഗിച്ചാൽ ആറേഴു വിൻഡോകൾക്കു പകരം രണ്ടു വിൻഡോകൾ കൊണ്ട് കാര്യം നടക്കും.

January 8, 2014

ഡോക്സിജൻ

Doxygen ഒരു അപാര സംഭവം തന്നെ. Call graph എല്ലാം കിടിലം. അതിനേക്കാൾ കിടിലമാണ് ടെക്കിൽ കയറ്റിയിറക്കി നീറ്റാക്കി തന്ന പിഡിഎഫ്. കണ്ടിട്ട് എന്റെ തന്നെ കണ്ണ് നിറഞ്ഞു പോയി. ഞാനെഴുതിയ പ്രോഗ്രാമിൽ നിന്നും ഇത്രയും സുന്ദരമായ ഒരു ഡോക്യുമെന്റ്, അതും കണ്ടന്റ്സും ഇൻഡെക്സും സഹിതം തന്നാൽ പിന്നെ കണ്ണു നിറയാതിരിക്കുന്നതെങ്ങനെ :)

January 3, 2014

kde-connect

Successfully connected Android 2.3 to KDE/Fedora. Multimedia remote control from phone work like a charm with Clementine. :)