<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-565658202629296128</id><updated>2012-02-16T22:31:02.232-05:00</updated><category term='GDM'/><category term='fsck'/><category term='Bamboo'/><category term='Wget'/><category term='dd'/><category term='C'/><category term='RAID'/><category term='Annoyances'/><category term='Misc'/><category term='disk'/><category term='SQLite'/><category term='RPM'/><category term='sed'/><category term='threading'/><category term='Embedded'/><category term='Forumlas'/><category term='APR'/><category term='GNUPlot'/><category term='VPN'/><category term='GCC'/><category term='awk'/><category term='Games'/><category term='GIT'/><category term='Backup'/><category term='GIMP'/><category term='Networking'/><category term='Mono'/><category term='vim'/><category term='Apache'/><category term='bash twitter'/><category term='Video'/><category term='proc'/><category term='patch'/><category term='Bing Duh'/><category term='SSH'/><category term='Scheduling'/><category term='Window Managers'/><category term='TAGS'/><category term='SFTP'/><category term='Web Services'/><category term='parallel architecture'/><category term='apt'/><category term='Photography'/><category term='Perl'/><category term='multi-core'/><category term='diff'/><category term='Memory Leak'/><category term='bash'/><category term='Latex'/><category term='Grep'/><category term='Low End'/><category term='POSIX'/><category term='Firefox'/><category term='initrd'/><category term='Upgrade'/><category term='Sound'/><category term='CMS'/><category term='HTML'/><category term='Emacsclient'/><category term='Bluetooth'/><category term='VNC'/><category term='Emacs'/><category term='svn'/><category term='Enlightenment'/><category term='nautilus'/><category term='File System'/><category term='Samba'/><category term='ISO'/><category term='Shared'/><category term='uniq'/><category term='graphs'/><category term='Firewall'/><category term='GNU'/><category term='Signals'/><category term='GNOME'/><category term='C++'/><category term='Shell'/><category term='serial-console'/><category term='pthread'/><category term='Makefile'/><category term='find'/><category term='commands'/><category term='Audio'/><category term='Small Devices'/><category term='tee'/><category term='Mozilla'/><category term='Live'/><category term='cut'/><category term='Clustering'/><category term='Live-CD'/><category term='Wacom'/><category term='Virtualization'/><category term='Book'/><category term='Android'/><category term='debootstrap'/><category term='Websites'/><category term='debug'/><category term='screen'/><category term='coredump'/><category term='boot'/><category term='Debian'/><category term='mount'/><category term='real-time'/><category term='ascii art'/><category term='SCP'/><category term='Google'/><category term='SOAP'/><category term='regex'/><category term='PHP'/><category term='oprofile'/><category term='Web conference'/><category term='gtags'/><category term='Install'/><category term='Ubiquity'/><category term='Database'/><category term='Linux'/><category term='X server'/><category term='kernel'/><category term='Tools'/><category term='OLPC'/><category term='Ubuntu'/><title type='text'>Linux Digest</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default?start-index=101&amp;max-results=100'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>166</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1895195505639062000</id><published>2011-12-15T23:25:00.000-05:00</published><updated>2011-12-15T23:25:43.728-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Dos2unix using Emacs</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;To convert a buffer(file) from dos file encoding to unix in Emacs use&lt;br /&gt;&lt;br /&gt;&lt;code&gt; M-x set-buffer-file-coding-system RET undecided-unix &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you do a TAB after RET, you will see the gazillion other encoding schemes supported by Emacs.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1895195505639062000?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1895195505639062000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1895195505639062000&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1895195505639062000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1895195505639062000'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/12/dos2unix-using-emacs.html' title='Dos2unix using Emacs'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7707982339464839721</id><published>2011-12-12T14:08:00.000-05:00</published><updated>2011-12-12T14:08:02.057-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Install'/><category scheme='http://www.blogger.com/atom/ns#' term='Live-CD'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Upgrade'/><title type='text'>Installing Ubuntu without CD or USB</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The following article is helpful if ...&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;... you are one of those few lucky people who still has an antiquated machine without a CD drive or a boot-able USB thing (check)&amp;nbsp;&lt;/li&gt;&lt;li&gt;... you are running a very old version of Ubuntu - 8.04 (check)&amp;nbsp;&lt;/li&gt;&lt;li&gt;... and you don't want to do an incremental network upgrade all the way from 8.04 to 8.10 to 9.04 .. yawn .. to 11.10 (check)&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Read&amp;nbsp;&lt;a href="https://help.ubuntu.com/community/Installation/FromLinux#Live_CD"&gt;this&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(In a nutshell - installing Ubuntu using a spare partition from an existing Linux system to house the Ubuntu CD image).&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7707982339464839721?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7707982339464839721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7707982339464839721&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7707982339464839721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7707982339464839721'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/12/installing-ubuntu-without-cd-or-usb.html' title='Installing Ubuntu without CD or USB'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-3222262739287872825</id><published>2011-12-09T15:33:00.001-05:00</published><updated>2011-12-09T15:35:05.247-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Emacs shell</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Emacs has a full terminal emulation that can be started using &lt;code&gt;M-x term &lt;/code&gt;. However, Eamcs also has a shell which is not a complete terminal emulator but works nicely for running quick commands.&lt;br /&gt;&lt;br /&gt;Start Emacs shell using &lt;code&gt;M-x shell &lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;To get to the previous command use &lt;code&gt;M-x p &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;More details available &lt;a href="http://www.masteringemacs.org/articles/2010/12/13/complete-guide-mastering-eshell/"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-3222262739287872825?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/3222262739287872825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=3222262739287872825&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3222262739287872825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3222262739287872825'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/12/emacs-shell.html' title='Emacs shell'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5874057889389617034</id><published>2011-12-09T15:25:00.001-05:00</published><updated>2011-12-09T15:25:58.728-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Reading man pages within Emacs</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;code&gt;M-x man &lt;/code&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;code&gt; M-x woman &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Isn't Emacs awesome?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5874057889389617034?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5874057889389617034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5874057889389617034&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5874057889389617034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5874057889389617034'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/12/reading-man-pages-within-emacs.html' title='Reading man pages within Emacs'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2620158617471292115</id><published>2011-11-30T11:16:00.001-05:00</published><updated>2011-11-30T11:17:13.952-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Emacs Undo</title><content type='html'>Did not know that instead of the finger breaking &lt;code&gt;C-_&lt;/code&gt;, undo on emacs can also be done using &lt;code&gt;C-/&lt;/code&gt; and &lt;code&gt;C-x u&lt;/code&gt;, though I don't like the last one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2620158617471292115?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2620158617471292115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2620158617471292115&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2620158617471292115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2620158617471292115'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/11/emacs-undo.html' title='Emacs Undo'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2307190432276431115</id><published>2011-11-30T10:46:00.001-05:00</published><updated>2011-11-30T11:12:11.799-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacsclient'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Emacsclient</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I have been using Emacs over gnu screen so that I can have my buffers and windows from work when I connect from home. The only problem is that over gnu screen, the Control-Up/Down/... does not work and instead I get the 5A, 5B, ... characters. The same is true for Alt and Shift.&amp;nbsp;However, if I use Emacs over bash rather than gnu screen, &amp;nbsp;it works fine but I can't get my old buffers as it creates a new instance. Enter Emacsclient for the rescue.&lt;br /&gt;&lt;br /&gt;Emacsclient can not only be used to tell a running Emacs session to visit a file but it can also be used to open a new Emacs frame and have your buffers from the other frame shown here. (Viola)&lt;br /&gt;&lt;br /&gt;In order to get this to work, you need to start the Emacs server. This can be either done at run-time by&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;code&gt;M-x server-start&lt;/code&gt;&lt;/blockquote&gt;OR, add it to your &lt;code&gt;.emacs&lt;/code&gt; file&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;code&gt;;; Start the emacs server&lt;/code&gt;&lt;br /&gt;&lt;code&gt;(server-start) &lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;Now, create a few aliases in your &lt;code&gt;.bashrc&lt;/code&gt;.&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;&lt;code&gt;### Open emacs in console mode, non-gui&lt;/code&gt;&lt;br /&gt;&lt;code&gt;alias em='emacs -nw'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;### Tell running emacs to visit a file&lt;/code&gt;&lt;br /&gt;&lt;code&gt;alias ecf='emacsclient -n'&lt;/code&gt;&lt;br /&gt;&lt;code&gt;### Start emacs with new frame&lt;/code&gt;&lt;br /&gt;&lt;code&gt;alias ecn='emacsclient -nw -c' &lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;So, now I can run &lt;code&gt;ecn&lt;/code&gt; and it would start a new Emacs instance but still show me the buffers from the existing one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2307190432276431115?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2307190432276431115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2307190432276431115&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2307190432276431115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2307190432276431115'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/11/emacsclient.html' title='Emacsclient'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5966996407643066057</id><published>2011-11-29T20:41:00.001-05:00</published><updated>2011-11-29T20:46:04.689-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VNC'/><title type='text'>X11Vnc Shift Key Fix</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There is a known bug with X11VNC where the Shift key does not work (&lt;a href="https://bugs.launchpad.net/ubuntu/+source/x11vnc/+bug/551147"&gt;ref&lt;/a&gt;). The quick fix is to add &lt;code&gt;-xkb&lt;/code&gt; to the command string as suggested &lt;a href="http://www.bramschoenmakers.nl/en/node/714"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My X11Vnc string looks like:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ x11vnc -usepw -forever -xkb -display :0 &lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5966996407643066057?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5966996407643066057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5966996407643066057&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5966996407643066057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5966996407643066057'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/11/x11vnc-shift-key-fix.html' title='X11Vnc Shift Key Fix'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6101220464857349773</id><published>2011-03-03T12:41:00.001-05:00</published><updated>2011-03-03T12:47:19.783-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dd'/><category scheme='http://www.blogger.com/atom/ns#' term='File System'/><title type='text'>Finding read throughput using "dd"</title><content type='html'>If you are trying to find the read throughput of a device (like an SD card), you can do the following:&lt;br /&gt;&lt;br /&gt;1. If possible unmount the device but keep it connected. Let's say you are looking at an SD card at sdd. (Don't worry about the volumes)&lt;br /&gt;2. Run the following:&lt;br /&gt;&lt;code&gt;sudo dd if=/dev/sdd of=/dev/null bs=50M count=1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This will print the read throughput, something like this:&lt;br /&gt;&lt;code&gt;1+0 records in&lt;br /&gt;1+0 records out&lt;br /&gt;52428800 bytes (52 MB) copied, 2.62946 s, &lt;b&gt;19.9 MB/s&lt;/b&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now, if the device is mounted, you might see a variability in the throughput because of file system page caching between runs. To avoid that, free the page caches using:&lt;br /&gt;&lt;code&gt;sync; echo 1 | sudo tee /proc/sys/vm/drop_caches&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;NOTE: To free deentries and inodes the following can be used:&lt;br /&gt;&lt;code&gt;sync; echo 2 | sudo tee /proc/sys/vm/drop_caches&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you want to free up everything (page caches, deentries and inodes), do the following:&lt;br /&gt;&lt;code&gt;sync; echo 3 | sudo tee /proc/sys/vm/drop_caches&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6101220464857349773?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6101220464857349773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6101220464857349773&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6101220464857349773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6101220464857349773'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/03/finding-read-throughput-using-dd.html' title='Finding read throughput using &quot;dd&quot;'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6883114390885533838</id><published>2011-03-03T12:36:00.001-05:00</published><updated>2011-03-07T10:02:17.678-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='proc'/><category scheme='http://www.blogger.com/atom/ns#' term='tee'/><title type='text'>Use tee to set values in proc or sysfs</title><content type='html'>There are times when you can't do a &lt;code&gt;"echo something &gt; /proc/somewhere"&lt;/code&gt;, especially when you got to use "sudo".&lt;br /&gt;&lt;br /&gt;Using tee helps:&lt;br /&gt;&lt;br /&gt;&lt;code&gt; echo value | sudo tee /proc/somewhere &lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6883114390885533838?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6883114390885533838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6883114390885533838&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6883114390885533838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6883114390885533838'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/03/use-tee-to-set-values-in-proc-or-sysfs.html' title='Use tee to set values in proc or sysfs'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-3116053369636560642</id><published>2011-02-10T17:09:00.000-05:00</published><updated>2011-02-10T17:09:58.936-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='screen'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Control-S freezes puttty</title><content type='html'>Saw a weird behavior yesterday. CTRL-S would freeze putty. It turned out to be problem related to XOFF which is triggered by CTRL+S (the terminal will accept keys but it won't show the result for that, weird!). A simple fix is CTRL+Q to trigger XON. However, that does not work well with emacs which relies a lot on CTRL+S (for searching and saving)&lt;br /&gt;&lt;br /&gt;Just add the following to &lt;code&gt;.bashrc&lt;/code&gt; file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt; stty ixany&lt;br /&gt;stty ixoff -ixon&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-3116053369636560642?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/3116053369636560642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=3116053369636560642&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3116053369636560642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3116053369636560642'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/02/control-s-freezes-puttty.html' title='Control-S freezes puttty'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2980315509224400223</id><published>2011-01-03T11:37:00.001-05:00</published><updated>2011-01-03T11:43:09.129-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='nautilus'/><title type='text'>.thumbnails eating up space in $HOME</title><content type='html'>I have a restriction of 50K # of files that can be created in the &lt;code&gt;$HOME&lt;/code&gt; folder at work and for no apparent reason I reached that limit a couple of days back. So, there was something that had created 50K files in &lt;code&gt;$HOME&lt;/code&gt; and I did not know about it.&lt;br /&gt;&lt;br /&gt;Ran the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ for x in `find $HOME -name "[.]*"`; do echo "$x has `find $x | wc -l` file"; done&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The result listed a folder &lt;code&gt;$HOME/.thumbnails&lt;/code&gt; that had around 47776 files. It appears that Nautilus creates thumbnails of every picture or PDF that you have opened. However, Nautilus does not delete the files.&lt;br /&gt;&lt;br /&gt;If you have such a restriction and need to get rid of these files, add a crob job that does deletes the files older than 7 days.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ find ~/.thumbnails -type f -atime +7 -exec rm {} \;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Another method is to change the Gnome settings. Run the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ gconf-editor&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Under &lt;code&gt;desktop -&gt; gnome -&gt; thumbnail_cache&lt;/code&gt; change the values for &lt;code&gt;maximum_age&lt;/code&gt; and &lt;code&gt;maximum_size&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2980315509224400223?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2980315509224400223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2980315509224400223&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2980315509224400223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2980315509224400223'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2011/01/thumbnails-eating-up-space-in-home.html' title='.thumbnails eating up space in $HOME'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5890702887186271737</id><published>2010-12-09T11:33:00.000-05:00</published><updated>2010-12-09T11:33:51.828-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='diff'/><title type='text'>Using diff</title><content type='html'>Remember: when using diff, use the following flags&lt;br /&gt;&lt;br /&gt; diff -Naur&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-N = Treat absent files as empty&lt;br /&gt;-a = Treat all files as text&lt;br /&gt;-u = Output 3 lines of unified content&lt;br /&gt;-r = Recursively compare any subdirectories found&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5890702887186271737?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5890702887186271737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5890702887186271737&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5890702887186271737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5890702887186271737'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/12/using-diff.html' title='Using diff'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8238085984135947010</id><published>2010-06-08T09:56:00.001-04:00</published><updated>2010-06-10T21:04:43.309-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>netconsole</title><content type='html'>Yet another mechanism to get the kernel debug messages is netconsole which&amp;nbsp;sends the messages over Ethernet. You would not be able to get those early printks or crashes but it is useful nonetheless.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Setting up netconsole is fairly easy. You can either pass the netconsole parameters at the boot time or enable it after the machine has booted using modprobe.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Setting netconsole using boot parameters&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Add the following parameter to the kernel boot string&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;netconsole=[s-port]@[s-ip]/[dev],[t-port]@[t-ip]/[t-mac]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;s-port = source port, default is 6665&lt;/div&gt;&lt;div&gt;s-ip = source IP address&lt;/div&gt;&lt;div&gt;dev = device (eth0, eth1 ...)&lt;/div&gt;&lt;div&gt;t-port = target port, default is 6666&lt;/div&gt;&lt;div&gt;t-ip = target &amp;nbsp;IP address&lt;/div&gt;&lt;div&gt;t-mac = target MAC address&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For example:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;netconsole=1234@10.1.1.152/eth0, 1235@10.1.1.153/11:22:33:44:55&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Setting netconsole using modprobe&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It is preferred to use modprobe instead of insmod&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;$ sudo modprobe netconsole netconsole="@/,@t-ip/"&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;For example:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;$ sudo modprobe netconsole netconsole="@/,@10.1.1.153/"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Target (receiver) side&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Use netcat to get the messages&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;$ nc -l -u [t-port]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The full documentation on using the netconsole can be found in the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;"Documentation/networking/netconsole.txt"&lt;/span&gt;&lt;/span&gt; file in the kernel folder.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Online resources - &amp;nbsp;&lt;a href="http://support.coraid.com/support/cln/CLN-HOWTO/ar01s09.html"&gt;1&lt;/a&gt;, &lt;a href="http://madwifi-project.org/wiki/DevDocs/KernelOops"&gt;2&lt;/a&gt;, &lt;a href="http://gus3.typepad.com/i_am_therefore_i_think/2010/03/using-netconsole-on-linux.html"&gt;3&lt;/a&gt;&amp;nbsp;(some of these might be dated ... )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8238085984135947010?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8238085984135947010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8238085984135947010&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8238085984135947010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8238085984135947010'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/06/netconsole.html' title='netconsole'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5992323579843875613</id><published>2010-04-15T17:44:00.000-04:00</published><updated>2010-04-15T17:44:46.804-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>Kernel debugging using KGDB</title><content type='html'>KGDB is full integrated with the latest kernel. These instructions are for &lt;code&gt;linux-2.6.31.12&lt;/code&gt;. Not sure if these will work for any previous or later versions.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;code&gt;make menuconfig&lt;/code&gt; and select the following&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Select Kernel Hacking → KGDB: kernel debugging with remote gdb&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Select KGDB: use kgdb over the serial console&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;li&gt;Build the kernel&lt;br /&gt;&amp;nbsp;&lt;code&gt;make bzImage; make modules; sudo make modules_install&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Install the kernel. Copy &lt;code&gt;bzImage&lt;/code&gt;, &lt;code&gt;System.map&lt;/code&gt; and &lt;code&gt;.config&lt;/code&gt; into &lt;code&gt;/boot&lt;/code&gt;&lt;/li&gt;&lt;li&gt;On another machine (say remote) where the serial null modem cable is connected, copy the entire kernel folder that you compiled on the target machine.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Restart the target machine. &amp;nbsp;At the grub menu, select your kernel, edit it and add the following at the end of the kernel line:&lt;br /&gt;&lt;code&gt;&amp;nbsp;kgdboc=ttyS0,115200 kgdbwait&lt;/code&gt;&lt;br /&gt;This is assuming that you have a serial port and it is connected on &lt;code&gt;ttyS0&lt;/code&gt;. Boot into your kernel. It will wait for gdb to connect.&lt;/li&gt;&lt;li&gt;On the remote machine, go&amp;nbsp;in the kernel folder you copied over and debug &lt;code&gt;vmlinx&lt;/code&gt; by starting gdb&lt;/li&gt;&lt;ol&gt;&lt;li&gt;&lt;code&gt; gdb ./vmliux&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Set the baud rate - &lt;code&gt;(gdb) set remotebaud 115200&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Connect to the target - &lt;code&gt;(gdb) target remote /dev/ttyS0&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Run the kernel - &lt;code&gt;(gdb) continue &lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div&gt;For more details, refer to the docbook on KGDB in the kernel documentation folder. Just do a &lt;code&gt; make htmldocs &lt;/code&gt; to convert into a readable format. You would have to install &lt;code&gt; xmlto&lt;/code&gt;&amp;nbsp;first. &lt;code&gt;sudo aptitude install xmlto &lt;/code&gt; should help.&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5992323579843875613?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5992323579843875613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5992323579843875613&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5992323579843875613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5992323579843875613'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/04/kernel-debugging-using-kgdb.html' title='Kernel debugging using KGDB'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8854294378961540823</id><published>2010-04-15T17:12:00.000-04:00</published><updated>2010-04-15T17:12:01.292-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='disk'/><category scheme='http://www.blogger.com/atom/ns#' term='fsck'/><category scheme='http://www.blogger.com/atom/ns#' term='boot'/><title type='text'>Force fsck on reboot</title><content type='html'>If you want to force an fsck check on your drives on reboot do the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt; sudo touch /forcefsck &lt;br /&gt;sudo shutdown -r now &lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8854294378961540823?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8854294378961540823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8854294378961540823&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8854294378961540823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8854294378961540823'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/04/force-fsck-on-reboot.html' title='Force fsck on reboot'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5970912192877956038</id><published>2010-04-06T20:19:00.008-04:00</published><updated>2010-04-20T12:07:45.922-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='serial-console'/><title type='text'>Serial console debugging</title><content type='html'>Setting up the serial console&lt;br /&gt;&lt;br /&gt;1. First find which devices are attached to the system&lt;br /&gt;&lt;br /&gt;&lt;code&gt;dmesg | grep "tty"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. For the device found above (say &lt;code&gt;ttyS0&lt;/code&gt;), create the &lt;code&gt; /etc/event.d/ttyS0 &lt;/code&gt; file with the following contents&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# ttyS0 - getty&lt;br /&gt;#&lt;br /&gt;# This service maintains a getty on ttyS0 from&lt;br /&gt;# the point the system is started until it is&lt;br /&gt;# shut down again.&lt;br /&gt;&lt;br /&gt;start on runlevel 2&lt;br /&gt;start on runlevel 3&lt;br /&gt;start on runlevel 4&lt;br /&gt;start on runlevel 5&lt;br /&gt;&lt;br /&gt;stop on runlevel 0&lt;br /&gt;stop on runlevel 1&lt;br /&gt;stop on runlevel 6&lt;br /&gt;&lt;br /&gt;respawn&lt;br /&gt;exec /sbin/getty -L 115200 ttyS0 vt102 &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Edit &lt;code&gt;/etc/securetty&lt;/code&gt; and add &lt;code&gt;ttyS0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;4. During reboot edit the kernel in grub menu (press 'e'). At the end of the kernel line add &lt;code&gt;console=ttyS0,115200n8 tty1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;5. Boot into your kernel&lt;br /&gt;&lt;br /&gt;6. Once you log in, if you want all the dmesg output to go on the serial console do the following: &lt;br /&gt;&lt;code&gt;sudo tail -f /var/log/kern.log &amp;gt; /dev/ttyS0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setting up the client&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Open &lt;code&gt;minicom&lt;/code&gt; and set the port as the one you are talking on, it could be ttySn or ttyUSBn depending on if you are using a serial port or a USB to serial converter. (e.g. &lt;code&gt;ttyS0, ttyUSB0&lt;/code&gt;)&lt;br /&gt;&lt;br /&gt;2. Set the setting as 115200 baud,  8 bits, 1 stop bit, no parity, no flow control &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; There is another program called &lt;code&gt;gtkterm&lt;/code&gt; if you don't fancy the command line applications.  Also I would recommend using &lt;code&gt;konsole&lt;/code&gt; to run &lt;code&gt;minicom&lt;/code&gt; within as it supports unlimited buffer, which can be very useful if you are trying to look at the &lt;code&gt; /var/log/kern.log &lt;/code&gt; of the target machine, for example.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update (Apr 20, 2010):&lt;/b&gt; Only if you want to have a serial console (like a bash on the serial port) should you do the getty for ttyS0. If you just want all the kernel message sent to the terminals just do the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 14px; line-height: 20px; white-space: pre;"&gt;# echo 8 &amp;gt; /proc/sys/kernel/printk &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 14px; line-height: 20px; white-space: pre;"&gt; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;Read &lt;a href="http://madwifi-project.org/wiki/DevDocs/KernelOops"&gt;this&lt;/a&gt; article for more details on kernel oops.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5970912192877956038?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5970912192877956038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5970912192877956038&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5970912192877956038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5970912192877956038'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/04/serial-console-debugging.html' title='Serial console debugging'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2683146002690139552</id><published>2010-03-11T18:05:00.001-05:00</published><updated>2010-03-11T18:06:33.050-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Latex'/><title type='text'>Texmaker</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.xm1math.net/texmaker/texmaker128.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.xm1math.net/texmaker/texmaker128.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.xm1math.net/texmaker/"&gt;Texmaker&lt;/a&gt; is yet another GUI centric tool for LaTeX and a pretty good one. The latest edition (1.9.9) has been spruced up and looks pretty neat. One of the best features in Texmaker that is not available in other tools like Kile, LyX, &amp;nbsp;is the online spell-check. For a person like me who makes a billion spelling mistakes, the online spell-check is a savior. Texmaker is available across platforms for free. Check the download &lt;a href="http://www.xm1math.net/texmaker/download.html"&gt;page&lt;/a&gt; for more details.&lt;br /&gt;&lt;br /&gt;For Ubuntu users&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;$ sudo aptitude install texmaker&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2683146002690139552?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2683146002690139552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2683146002690139552&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2683146002690139552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2683146002690139552'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/03/texmaker.html' title='Texmaker'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-4092505648895085657</id><published>2010-02-15T12:07:00.000-05:00</published><updated>2010-02-15T12:07:20.930-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Photography'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>HDR Photography open source tool</title><content type='html'>&lt;a href="http://qtpfsgui.sourceforge.net/"&gt;Luminance HDR&lt;/a&gt; is an open-source tool for creating HDR images (&lt;a href="http://images.google.com/images?sourceid=chrome&amp;amp;q=HDR%20Images&amp;amp;um=1&amp;amp;ie=UTF-8&amp;amp;sa=N&amp;amp;hl=en&amp;amp;tab=wi"&gt;for example&lt;/a&gt;). The idea is to take multiple shots with varying exposure across the dynamic range and then merge all of these together to create one beautiful HDR image.&lt;br /&gt;&lt;br /&gt;The package name is called &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;qtpfsqui&lt;/span&gt; and it is available via Ubuntu's package manager.&amp;nbsp;I have not installed it yet, would be doing it later. I am waiting to get a tripod first. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-4092505648895085657?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/4092505648895085657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=4092505648895085657&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4092505648895085657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4092505648895085657'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/02/hdr-photography-open-source-tool.html' title='HDR Photography open source tool'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5501864994104034857</id><published>2010-02-08T11:57:00.000-05:00</published><updated>2010-02-08T11:57:17.944-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Graphical SVN clients on Ubuntu</title><content type='html'>Two ways of doing it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Kdesvn&lt;/b&gt;: (&lt;a href="http://kdesvn.alwins-world.de/"&gt;http://kdesvn.alwins-world.de/&lt;/a&gt;) - A client that works well with GNOME as well.&lt;br /&gt;&lt;br /&gt;But, the winner is:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RabbitVCS&lt;/b&gt;: (&lt;a href="http://rabbitvcs.org/"&gt;http://rabbitvcs.org/&lt;/a&gt;). RabbitVCS integrates with Nautilus and works like glue. People used to TortoiseSVN on Windows won't miss a thing. Easy to configure and use.&lt;br /&gt;&lt;br /&gt;On the same note, if you are looking for free hosting service for your project look at &lt;a href="http://www.unfuddle.com/"&gt;&lt;b&gt;Unfuddle&lt;/b&gt;&lt;/a&gt; (for a free single user private account) or Google &lt;a href="http://code.google.com/projecthosting/"&gt;&lt;b&gt;project&lt;/b&gt; &lt;b&gt;hosting&lt;/b&gt;&lt;/a&gt;&amp;nbsp;if you are looking for open-source.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5501864994104034857?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5501864994104034857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5501864994104034857&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5501864994104034857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5501864994104034857'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2010/02/graphical-svn-clients-on-ubuntu.html' title='Graphical SVN clients on Ubuntu'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5332999739793668646</id><published>2009-11-18T11:36:00.002-05:00</published><updated>2010-06-23T15:56:43.524-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Annoyances'/><title type='text'>PC Speaker</title><content type='html'>If you are getting mad by the sound of the PC Speaker while you are working in the console mode, kill it before it drives you mad.&lt;br /&gt;&lt;br /&gt;&lt;code&gt; sudo rmmod pcspkr&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update: &lt;/b&gt;It is better to do,&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo modprobe -r pcspkr&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5332999739793668646?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5332999739793668646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5332999739793668646&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5332999739793668646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5332999739793668646'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/11/pc-speaker.html' title='PC Speaker'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2332966465480938083</id><published>2009-11-01T11:25:00.001-05:00</published><updated>2011-03-07T10:00:39.300-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Latex'/><title type='text'>Latex tip - how to include graphics</title><content type='html'>&lt;b&gt;Tools&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First convert your PNG file to EPS format. For that the &lt;code&gt;&lt;a href="http://www.henlich.de/media/png2eps/png2eps"&gt;png2eps&lt;/a&gt;&lt;/code&gt; can be used. To make &lt;code&gt;png2eps&lt;/code&gt; work you would need to install the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;pngcheck (part of netpbm)&lt;/li&gt;&lt;li&gt;pngtopnm (part of netpbm)&lt;/li&gt;&lt;li&gt;pnmtotiff (part of netpbm)&lt;/li&gt;&lt;li&gt;tiff2ps (part of libtiff-tools)&lt;/li&gt;&lt;li&gt;sed basename bc (should come default with your distro)&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;code&gt; $ sudo aptitude install pngcheck libtiff4 libtiff-tools netpbm&lt;/code&gt;&lt;br /&gt;&lt;code&gt; $ wget http://www.henlich.de/media/png2eps/png2eps&lt;/code&gt;&lt;br /&gt;&lt;code&gt; $ chmod a+x png2eps &lt;/code&gt;&lt;br /&gt;&lt;code&gt; $ ./png2eps myimage.png &amp;gt; myimage.eps &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Using graphics&lt;br /&gt;&lt;br /&gt;&lt;code&gt;\documentclass[a4paper,10pt]{article}&lt;br /&gt;\usepackage{graphics}&lt;br /&gt;\usepackage{graphicx}&lt;br /&gt;&lt;br /&gt;\begin{figure}&lt;br /&gt;\caption{some figure}&lt;br /&gt;\begin{center}&lt;br /&gt;\includegraphics[bb=0 0 438 476]{myimage.eps}&lt;br /&gt;\end{center}&lt;br /&gt;\end{figure}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;NOTE: Although I prefer PNG, if you have a jpj file, the &lt;a href="http://www.pdflib.com/download/free-software/jpeg2ps/"&gt;jpg2eps&lt;/a&gt; tool can be used.&lt;br /&gt;&lt;br /&gt;[Source: &lt;a href="http://www.henlich.de/software/png2eps/"&gt;A PNG to EPS convertor&lt;/a&gt;, &lt;a href="http://www.artofproblemsolving.com/LaTeX/AoPS_L_PictMan.php"&gt;Images in LaTeX&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt;&lt;br /&gt;I have found it much easier to create illustrations in &lt;a href="http://live.gnome.org/Dia"&gt;Dia&lt;/a&gt; and export them directly in the eps format. Dia is available for Windows, Mac and Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2332966465480938083?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2332966465480938083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2332966465480938083&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2332966465480938083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2332966465480938083'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/11/latex-tip-how-to-include-graphics.html' title='Latex tip - how to include graphics'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8632065448169687969</id><published>2009-11-01T10:05:00.000-05:00</published><updated>2009-11-01T10:05:11.472-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Empathy has a long way to go!</title><content type='html'>The new IM client on 9.10, Empathy, is not at all impressive or may I say that I am so used to Pidgin that I had to switch back.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is bad?&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Notification mechanism - when someone pings you, the new chat window does not show up but is hidden in the notification area, which is really weird&lt;/li&gt;&lt;li&gt;Does not give too many options under preferences&lt;/li&gt;&lt;li&gt;You can't search for contacts while they are offline (which is required because most of the people are invisible these days)&lt;/li&gt;&lt;li&gt;You can't add a buddy pounce&lt;/li&gt;&lt;li&gt;Empathy would always remember your password. If you tell it not to, it won't log you in and once you give your password, it stays there. (this is really weird)&lt;/li&gt;&lt;li&gt;You can't close a conversation with the ESC key&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The GREAT news is that Pidgin now supports voice and video, so can someone please tell me why they hell did Gnome decide to dump Pidgin for Empathy :-o&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How to install Pidgin?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo aptitude install pidgin pidgin-themes pidgin-facebookchat pidgin-musictracker&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8632065448169687969?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8632065448169687969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8632065448169687969&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8632065448169687969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8632065448169687969'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/11/empathy-has-long-way-to-go.html' title='Empathy has a long way to go!'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-3727346518849023919</id><published>2009-10-29T17:24:00.000-04:00</published><updated>2009-10-29T17:24:11.395-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Latex'/><title type='text'>Latex tip - don't forget to run bibtex</title><content type='html'>If you compile your &lt;code&gt;.tex&lt;/code&gt; file and end up seeing an error "&lt;code&gt;.bbl&lt;/code&gt; could not be located", after you open the &lt;code&gt;.dvi&lt;/code&gt; file generated, you will notice that the reference section is missing. This is because in the first run LaTeX created the &lt;code&gt;.aux&lt;/code&gt; file which needs to be fed to Bibtex which will generate the &lt;code&gt;.bbl&lt;/code&gt; file. &lt;br /&gt;&lt;br /&gt;So,&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#1 $ latex source.tex&lt;br /&gt;#2 $ bibtex source.aux (generated in Step #1)&lt;br /&gt;#3 $ latex source.tex&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Kile does this in one shot, it is able to figure out that bibtex needs to be run in the middle.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Q:&lt;/b&gt; Is there any another way to do this in one shot from the command line?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-3727346518849023919?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/3727346518849023919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=3727346518849023919&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3727346518849023919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3727346518849023919'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/latex-tip-dont-forget-to-run-bibtex.html' title='Latex tip - don&apos;t forget to run bibtex'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7526431989206567962</id><published>2009-10-29T15:11:00.000-04:00</published><updated>2009-10-29T15:11:24.928-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLite'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><title type='text'>Sqlite</title><content type='html'>SQLite is a C library that implements an SQL database engine. Programs that link with the SQLite library can have SQL database&amp;nbsp;access without running a separate RDBMS process. (&lt;code&gt;src: aptitude show sqlite&lt;/code&gt;)&lt;br /&gt;&lt;br /&gt;To install sqlite on Ubuntu&lt;br /&gt;&lt;br /&gt;&lt;code&gt; $ sudo aptitude install sqlite3&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Help&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.sqlite.org/docs.html"&gt;SQLite documentation&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://www.sqlite.org/quickstart.html"&gt;SQLite in 5 minutes or less&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://www.aspfree.com/c/a/Database/Using-SQLite-for-Simple-Database-Storage/"&gt;Using SQLite for simple database storage&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sqlite.org/c3ref/intro.html"&gt;C\C++ API reference&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7526431989206567962?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7526431989206567962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7526431989206567962&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7526431989206567962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7526431989206567962'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/sqlite.html' title='Sqlite'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6406256343543950428</id><published>2009-10-29T11:19:00.003-04:00</published><updated>2009-10-29T11:26:53.708-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 9.10 is here</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://linuxmedia.hu/images/UbuntuLozengeStrapLogo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="97" src="http://linuxmedia.hu/images/UbuntuLozengeStrapLogo.png" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Ubuntu 9.10 Karmic Koala is here. Download &lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;now&lt;/a&gt;&amp;nbsp;or upgrade from existing installation.&lt;br /&gt;&lt;br /&gt;Check the&amp;nbsp;&lt;a href="https://help.ubuntu.com/community/UpgradeNotes"&gt;upgrade notes&lt;/a&gt;&amp;nbsp;before going for an upgrade.&lt;br /&gt;&lt;br /&gt;[Source:&amp;nbsp;&lt;a href="http://www.ubuntu.com/getubuntu/upgrading"&gt;Upgrading to Ubuntu 9.10&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start System/Administration/Update Manager&lt;/li&gt;&lt;li&gt;Click the Check button to check for new updates&lt;/li&gt;&lt;li&gt;If there are any updates to install, use the Install Updates button to install them, and press Check again after that is complete&lt;/li&gt;&lt;li&gt;A message will appear informing you of the availability of the new release&lt;/li&gt;&lt;li&gt;Click Upgrade&lt;/li&gt;&lt;li&gt;Follow the on-screen instructions&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;b&gt;On the&amp;nbsp;blog-sphere&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://lifehacker.com/5392639/ubuntu-910-karmic-koala-out-now"&gt;LifeHacker&lt;/a&gt;, &lt;a href="http://linux.slashdot.org/story/09/10/29/128205/Ubuntu-910-Officially-Released"&gt;Slashdot&lt;/a&gt;, &lt;a href="http://www.linuxinsider.com/rsstory/68492.html"&gt;LinuxInsider&lt;/a&gt;,&lt;a href="http://www.linuxtoday.com/news_story.php3?ltsn=2009-10-29-004-39-RV-DT-UB"&gt;LinuxToday&lt;/a&gt;, &lt;a href="http://news.zdnet.co.uk/leader/0,1000002982,39846686,00.htm"&gt;ZDNet&lt;/a&gt;, &lt;a href="http://www.theregister.co.uk/2009/10/29/ubuntu_9_10_review/"&gt;TheRegister&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6406256343543950428?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6406256343543950428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6406256343543950428&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6406256343543950428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6406256343543950428'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/ubuntu-910-is-here.html' title='Ubuntu 9.10 is here'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-3909600747771987840</id><published>2009-10-28T23:05:00.000-04:00</published><updated>2009-10-28T23:05:58.739-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Latex'/><title type='text'>Latex Math symbols</title><content type='html'>&lt;b&gt;&lt;/b&gt;&lt;br /&gt;A good &lt;a href="http://www.blogger.com/%20http://web.ift.uib.no/Teori/KURS/WRK/TeX/symALL.html"&gt;online&lt;/a&gt; reference to the different Math symbols in LaTeX. The file &lt;a href="http://web.ift.uib.no/Teori/KURS/WRK/TeX/A.tex"&gt;A.tex&lt;/a&gt; has all the symbols for ready reference.&lt;br /&gt;&lt;br /&gt;Download the file&lt;br /&gt;&lt;code&gt;$ latex A.tex&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Open DVI file in Evince or Okular.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tools&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;You would need to install latex(TeX-Live). Also, KBibTex, Kile and Lyx are highly recommended tools&lt;br /&gt;&lt;br /&gt;&lt;code&gt; sudo aptitude install texlive-full kile kbibtex lyx &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ubuntu LaTeX help &lt;a href="https://help.ubuntu.com/community/LaTeX"&gt;guide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-3909600747771987840?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/3909600747771987840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=3909600747771987840&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3909600747771987840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3909600747771987840'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/latex-math-symbols.html' title='Latex Math symbols'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8573104813832050582</id><published>2009-10-28T11:22:00.002-04:00</published><updated>2009-10-28T11:26:36.768-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Shared'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Shared libraries</title><content type='html'>Remember&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gcc -shared -Wl,-soname,your_soname -o library_name file_list library_list&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Which means, if you have &lt;code&gt;a.c&lt;/code&gt; and b.c&lt;br /&gt;&lt;br /&gt;&lt;code&gt;gcc -fPIC -g -c -Wall a.c&lt;br /&gt;gcc -fPIC -g -c -Wall b.c&lt;br /&gt;gcc -shared -Wl,-soname,libmystuff.so.1 \&lt;br /&gt;-o libmystuff.so.1.0.1 a.o b.o -lc &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then create the symbolic links to &lt;code&gt; libmystuff.so&lt;/code&gt; and &lt;code&gt;libmystuff.so.1&lt;/code&gt;  from libmystuff.so.1.0.1  and don't forget to add the libraries to the standard path &lt;code&gt;/usr/local/lib&lt;/code&gt; OR add the path to &lt;code&gt; LD_LIBRARY_PATH&lt;/code&gt; before executing.&lt;br /&gt;&lt;br /&gt;More details: &lt;a href="http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html"&gt;Creating shared libraries&lt;/a&gt;&lt;br /&gt;Very good How-To: &lt;a href="http://tldp.org/HOWTO/Program-Library-HOWTO/index.html"&gt;Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8573104813832050582?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8573104813832050582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8573104813832050582&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8573104813832050582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8573104813832050582'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/shared-libraries.html' title='Shared libraries'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2418873435287748296</id><published>2009-10-26T13:37:00.000-04:00</published><updated>2009-10-26T13:37:46.505-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pthread'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='POSIX'/><category scheme='http://www.blogger.com/atom/ns#' term='threading'/><title type='text'>pthread</title><content type='html'>A very good one-shot &lt;a href="http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html"&gt;tutorial&lt;/a&gt; to the POSIX thread libraries (pthread). Talks all about threading, synchronization and scheduling with example code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2418873435287748296?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2418873435287748296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2418873435287748296&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2418873435287748296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2418873435287748296'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/pthread.html' title='pthread'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1833000922364245334</id><published>2009-10-23T11:43:00.001-04:00</published><updated>2009-10-23T11:44:48.835-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scheduling'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='real-time'/><title type='text'>Deadline scheduling for Linux kernel</title><content type='html'>A new scheduler class has been proposed for including deadline based scheduling algorithms like EDF&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The&amp;nbsp;&lt;code&gt;SCHED_DEADLINE&lt;/code&gt;&amp;nbsp;&lt;a href="http://www.evidence.eu.com/content/view/313/390/"&gt;details&lt;/a&gt;&lt;/li&gt;&lt;li&gt;News on &lt;a href="http://www.osnews.com/story/22373/Deadline_Scheduling_in_the_Linux_Kernel"&gt;OS-News&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The &lt;a href="http://lwn.net/Articles/353797/"&gt;email&lt;/a&gt; archived on LKML&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The public git repository is available on gitorious&lt;/div&gt;&lt;div&gt;&lt;code&gt;git clone git://gitorious.org/sched_deadline/linux-deadline.git&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1833000922364245334?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1833000922364245334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1833000922364245334&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1833000922364245334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1833000922364245334'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/deadline-scheduling-for-linux-kernel.html' title='Deadline scheduling for Linux kernel'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-3454915245078209242</id><published>2009-10-22T18:40:00.000-04:00</published><updated>2009-10-22T18:40:50.241-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='diff'/><title type='text'>Generating patches without cleaning code</title><content type='html'>Instead of generating a patch from two pristine copies of the code (one with your changes and both not compiled), it is useful to create a exclude-list of all the files that you want to ignore.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;.*&lt;br /&gt;&amp;nbsp;*.lds&lt;br /&gt;&amp;nbsp;*.o&lt;br /&gt;&amp;nbsp;*.o.*&lt;br /&gt;&amp;nbsp;*.a&lt;br /&gt;&amp;nbsp;*.s&lt;br /&gt;&amp;nbsp;*.ko&lt;br /&gt;&amp;nbsp;*.so&lt;br /&gt;&amp;nbsp;*.so.dbg&lt;br /&gt;&amp;nbsp;*.mod.c&lt;br /&gt;&amp;nbsp;*.i&lt;br /&gt;&amp;nbsp;*.lst&lt;br /&gt;&amp;nbsp;*.symtypes&lt;br /&gt;&amp;nbsp;*.order&lt;br /&gt;&amp;nbsp;*.elf&lt;br /&gt;&amp;nbsp;*.bin&lt;br /&gt;&amp;nbsp;*.gz&lt;br /&gt;&amp;nbsp;*.lzma&lt;br /&gt;&amp;nbsp;*.patch&lt;br /&gt;&amp;nbsp;*.gcno&lt;br /&gt;&amp;nbsp;tags&lt;br /&gt;&amp;nbsp;TAGS&lt;br /&gt;&amp;nbsp;bzImage&lt;br /&gt;&amp;nbsp;vmlinux&lt;br /&gt;&amp;nbsp;System.map&lt;br /&gt;&amp;nbsp;Module.markers&lt;br /&gt;&amp;nbsp;Module.symvers&lt;br /&gt;&amp;nbsp;!.gitignore&lt;br /&gt;&amp;nbsp;!.mailmap&lt;br /&gt;&amp;nbsp;patches-*&lt;br /&gt;&amp;nbsp;patches&lt;br /&gt;&amp;nbsp;series&lt;br /&gt;&amp;nbsp;exclude-list&lt;br /&gt;&amp;nbsp;filefortag&lt;br /&gt;&amp;nbsp;filelist&lt;br /&gt;&amp;nbsp;cscope.*&lt;br /&gt;&amp;nbsp;ncscope.*&lt;br /&gt;&amp;nbsp;GPATH&lt;br /&gt;&amp;nbsp;GRTAGS&lt;br /&gt;&amp;nbsp;GSYMS&lt;br /&gt;&amp;nbsp;GTAGS&lt;br /&gt;&amp;nbsp;*.orig&lt;br /&gt;&amp;nbsp;*~&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then create the patch&lt;br /&gt;&lt;br /&gt;&lt;code&gt;  diff --exclude-from /path/to/exclude-list -urNd linux-2.6.24-hunterwala linux-2.6.24 &amp;gt; patch_file &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Each line in exclude-list is a pattern which diff would match and ignore the files. I am having trouble excluding following directories. &lt;br /&gt;&lt;br /&gt;&lt;code&gt;include/asm&lt;br /&gt;include/asm-*/asm-offsets.h&lt;br /&gt;include/config&lt;br /&gt;include/linux/autoconf.h&lt;br /&gt;include/linux/compile.h&lt;br /&gt;include/linux/version.h&lt;br /&gt;include/linux/utsrelease.h&lt;br /&gt;include/linux/bounds.h&lt;br /&gt;include/generated&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So, the &lt;code&gt;-N&lt;/code&gt; passed to diff would treat these as new files and include them in the patch. :(&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;TODO&lt;/span&gt;: Update post once I find a better way to handle directories.&lt;br /&gt;&lt;br /&gt;[The exclude list above has been taken from &lt;code&gt;.gitignore&lt;/code&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-3454915245078209242?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/3454915245078209242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=3454915245078209242&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3454915245078209242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3454915245078209242'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/generating-patches-without-cleaning.html' title='Generating patches without cleaning code'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1951737281084747808</id><published>2009-10-21T21:06:00.000-04:00</published><updated>2009-10-21T21:06:21.981-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-core'/><category scheme='http://www.blogger.com/atom/ns#' term='threading'/><title type='text'>Threading and parallelism</title><content type='html'>Another good series of articles found on &lt;a href="http://www.embedded.com/"&gt;www.embedded.com&lt;/a&gt; on threading and parallelism&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.embedded.com/design/multicore/220600336"&gt;Part 1&lt;/a&gt;: Parallelism and threading primer&lt;br /&gt;&lt;a href="http://www.embedded.com/design/multicore/220600414?cid=RSSfeed_embedded_news"&gt;Part 2&lt;/a&gt;: The threading development cycle&lt;br /&gt;&lt;a href="http://www.embedded.com/design/embeddeddsp/220600724?cid=RSSfeed_embedded_news"&gt;Part 3&lt;/a&gt;: Debuging and tuning multi-threaded code&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1951737281084747808?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1951737281084747808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1951737281084747808&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1951737281084747808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1951737281084747808'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/threading-and-parallelism.html' title='Threading and parallelism'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-680990341791245289</id><published>2009-10-21T12:25:00.001-04:00</published><updated>2009-10-23T11:35:53.810-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>Linux performance analysis for embedded system</title><content type='html'>Nice series of articles found on &lt;a href="http://www.embedded.com/"&gt;www.embedded.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.embedded.com/design/opensource/220800008?pgno=3"&gt;Part 1&lt;/a&gt;:&amp;nbsp;Available tools&lt;br /&gt;&lt;a href="http://www.embedded.com/design/opensource/220900078?cid=RSSfeed_embedded_news"&gt;Part 2&lt;/a&gt;: Profiling/analysis methods and techniques&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-680990341791245289?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/680990341791245289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=680990341791245289&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/680990341791245289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/680990341791245289'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/linux-performance-analysis-for-embedded.html' title='Linux performance analysis for embedded system'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-978482909022809590</id><published>2009-10-21T11:14:00.000-04:00</published><updated>2009-10-21T11:14:44.094-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>fscanf</title><content type='html'>Did not know this until yesterday.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;fscanf (fptr, "%*s");&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^^^&lt;/code&gt;&lt;br /&gt;This reads the line from the file but does not store it in any local variable, as compared to this,&lt;br /&gt;&lt;br /&gt;&lt;code&gt;fscanf (fptr, "%s", buffer);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Handy '*' :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-978482909022809590?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/978482909022809590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=978482909022809590&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/978482909022809590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/978482909022809590'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/fscanf.html' title='fscanf'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2592236783440151725</id><published>2009-10-19T15:31:00.000-04:00</published><updated>2009-10-19T15:31:36.027-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='find'/><title type='text'>Find executables</title><content type='html'>To find all the executables files&lt;br /&gt;&lt;br /&gt;&lt;code&gt;find . -type f -executable -name "whatever*" &lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2592236783440151725?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2592236783440151725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2592236783440151725&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2592236783440151725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2592236783440151725'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/find-executables.html' title='Find executables'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7165998261228180191</id><published>2009-10-16T12:27:00.003-04:00</published><updated>2010-04-20T12:12:17.119-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>Kernel debugging tools</title><content type='html'>While working inside the kernel you are prone to crashes, oops and complete kernel freeze. Some of these tools\methods help&lt;br /&gt;&lt;br /&gt;1. lockdep&lt;br /&gt;&lt;a href="http://www.mjmwired.net/kernel/Documentation/lockdep-design.txt"&gt;http://www.mjmwired.net/kernel/Documentation/lockdep-design.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. netconsole&lt;br /&gt;&lt;a href="http://www.mjmwired.net/kernel/Documentation/networking/netconsole.txt"&gt;http://www.mjmwired.net/kernel/Documentation/networking/netconsole.txt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using netconsole inside Ubuntu&lt;br /&gt;&lt;a href="https://wiki.ubuntu.com/KernelTeam/Netconsole"&gt;https://wiki.ubuntu.com/KernelTeam/Netconsole&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another netconsole tutorial&lt;br /&gt;&lt;a href="http://www.cyberciti.biz/tips/linux-netconsole-log-management-tutorial.html"&gt;http://www.cyberciti.biz/tips/linux-netconsole-log-management-tutorial.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Debugging kernel Oops&lt;br /&gt;&lt;a href="https://wiki.ubuntu.com/DebuggingKernelOops"&gt;https://wiki.ubuntu.com/DebuggingKernelOops&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. Using the built-in kernel debugger&lt;br /&gt;&lt;a href="http://oss.sgi.com/projects/kdb/"&gt;http://oss.sgi.com/projects/kdb/&lt;/a&gt;&lt;br /&gt;IBM tutorial (&lt;a href="http://www.ibm.com/developerworks/linux/library/l-kdbug/"&gt;http://www.ibm.com/developerworks/linux/library/l-kdbug/&lt;/a&gt;) .. looks dated .. not sure if this works with 2.6.24+ kernels&lt;br /&gt;&lt;br /&gt;5. Nice article on&amp;nbsp;&lt;a href="http://elinux.org/Kernel_Debugging_Tips"&gt;Kernel_Debugging_Tips&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6. Another brilliant article on &lt;a href="http://madwifi-project.org/wiki/DevDocs/KernelOops"&gt;Kernel oops&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: I recently posted a &lt;a href="http://linux-digest.blogspot.com/2010/04/kernel-debugging-using-kgdb.html"&gt;piece&lt;/a&gt; on how to use KGDB over the serial null modem cable&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7165998261228180191?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7165998261228180191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7165998261228180191&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7165998261228180191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7165998261228180191'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/kernel-debugging-tools.html' title='Kernel debugging tools'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7511295288149622044</id><published>2009-10-02T10:28:00.002-04:00</published><updated>2009-10-02T14:09:09.262-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Print the IP of the machine at login</title><content type='html'>Wanted to know the IP address of the test machine the moment I log in. include the following in your &lt;code&gt;.bashrc&lt;/code&gt; file.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;echo "Welcome to" `hostname` "("`ifconfig eth0 | grep "inet addr:" | awk -F: '{print($2)}' | sed "s/ /:/g" | awk -F: '{print($1)}' `")" &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Not very efficient use of sed and awk :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7511295288149622044?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7511295288149622044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7511295288149622044&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7511295288149622044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7511295288149622044'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/10/print-ip-of-machine-at-login.html' title='Print the IP of the machine at login'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-237139627374272194</id><published>2009-09-30T10:52:00.003-04:00</published><updated>2009-09-30T10:55:18.613-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>Script to install a new kernel</title><content type='html'>&lt;code&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# (c) Hunterwala&lt;br /&gt;&lt;br /&gt;if [ $(/usr/bin/id -u) -ne 0 ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    echo "run this script with sudo"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    exit 2&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -z $1 ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    echo "kernel version not found"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    echo "usage: ./install_kernel [kernel_version]"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    exit 2&lt;br /&gt;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    VERSION=$1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    echo "using $VERSION" &lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ ! -d /lib/modules/$VERSION ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    echo "kernel modules not installed"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    echo "run make install_modules from the kernel directory"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;    exit 2&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;BOOTDIR=/boot&lt;br /&gt;&lt;br /&gt;echo "Installing kernel ........................"&lt;br /&gt;cp $PWD/.config $BOOTDIR/config-$VERSION&lt;br /&gt;cp $PWD/System.map $BOOTDIR/System.map-$VERSION&lt;br /&gt;cp $PWD/arch/i386/boot/bzImage $BOOTDIR/vmlinuz-$VERSION&lt;br /&gt;echo "done"&lt;br /&gt;&lt;br /&gt;echo "Creating initrd image ...................."&lt;br /&gt;update-initramfs -c -k $VERSION&lt;br /&gt;echo "done"&lt;br /&gt;&lt;br /&gt;echo "Updating grub ............................"&lt;br /&gt;update-grub&lt;br /&gt;echo "done"&lt;br /&gt;&lt;br /&gt;echo "Linux kernel $VERSION successfully installed"&lt;br /&gt;echo "Please restart and select $VERSION in grub menu"&lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-237139627374272194?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/237139627374272194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=237139627374272194&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/237139627374272194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/237139627374272194'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/09/script-to-install-new-kernel.html' title='Script to install a new kernel'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6772389563928793095</id><published>2009-09-28T12:47:00.001-04:00</published><updated>2009-09-28T12:48:54.247-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Backup of .emacs</title><content type='html'>&lt;code&gt;&lt;br /&gt;(global-set-key "%" 'match-paren)&lt;br /&gt;(defun match-paren (arg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;  "Go to the matching paren if on a paren; otherwise insert %."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  (interactive "p")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;  (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        ((looking-at "\\s\)") (forward-char 1) (backward-list 1))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        (t (self-insert-command (or arg 1)))))&lt;br /&gt;&lt;br /&gt;(defun my-linux-c-mode ()&lt;br /&gt;&amp;nbsp;&amp;nbsp;  "C mode with adjusted defaults for use with the linux kernel."&lt;br /&gt;&amp;nbsp;&amp;nbsp;  (c-set-style "linux"))&lt;br /&gt;&lt;br /&gt;(add-hook 'c-mode-hook 'my-linux-c-mode)&lt;br /&gt;&lt;br /&gt;(server-start)&lt;br /&gt;&lt;br /&gt;(custom-set-variables&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; custom-set-variables was added by Custom.&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; If you edit it by hand, you could mess it up, so be careful.&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; Your init file should contain only one such instance.&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; If there is more than one, they won't work right.&lt;br /&gt;&amp;nbsp;&amp;nbsp; '(show-paren-mode t)&lt;br /&gt;&amp;nbsp;&amp;nbsp; '(transient-mark-mode t))&lt;br /&gt;(custom-set-faces&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; custom-set-faces was added by Custom.&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; If you edit it by hand, you could mess it up, so be careful.&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; Your init file should contain only one such instance.&lt;br /&gt;&amp;nbsp;&amp;nbsp;  ;; If there is more than one, they won't work right.&lt;br /&gt; )&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6772389563928793095?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6772389563928793095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6772389563928793095&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6772389563928793095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6772389563928793095'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/09/backup-of-emacs.html' title='Backup of .emacs'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5815335275364659689</id><published>2009-09-27T22:40:00.002-04:00</published><updated>2009-09-27T22:42:46.429-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>Kernel module programming</title><content type='html'>Found a nice article on TLDP on Linux kernel module programming in the 2.6 kernel. (&lt;a href="http://www.tldp.org/LDP/lkmpg/2.6/html/index.html"&gt;link&lt;/a&gt;)&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5815335275364659689?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5815335275364659689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5815335275364659689&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5815335275364659689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5815335275364659689'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/09/kernel-module-programming.html' title='Kernel module programming'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2219793938478027633</id><published>2009-09-27T13:49:00.005-04:00</published><updated>2009-09-27T13:59:02.017-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Audio'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Using VLC player to play Internet Radio</title><content type='html'>Agent M sent me a link to a very good online western classical radio &lt;a href="http://htc-01.media.globix.net/COMP005996MOD1/meta/wqxr_live_low.asx?classicalwebcast.com"&gt;site&lt;/a&gt;. In order to play the radio inside Firefox on Ubuntu the gstreamer plugins are required. The other option is to play it through VLC player.&lt;br /&gt;&lt;br /&gt;Install VLC player&lt;br /&gt;&lt;code&gt;%% sudo aptitude install vlc&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Open the link in VLC, &lt;code&gt;Media-&gt;Open Network&lt;/code&gt;, enter the URL and you are good to go. &lt;br /&gt;&lt;br /&gt;To avoid this step every time, create a launcher. &lt;br /&gt;&lt;br /&gt;1. Right click on the desktop, "Create launcher"&lt;br /&gt;2. Give it a name, "My Radio"&lt;br /&gt;3. In the command use the following &lt;code&gt; /usr/bin/vlc "URL" &lt;/code&gt;&lt;br /&gt;4. You can specify a tool-tip comment as well, "ABCD Radio"&lt;br /&gt;5. Click on the icon and select the icon of your choice form &lt;code&gt;/usr/share/icons/hicolor/scalable&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Enjoy the music&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2219793938478027633?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2219793938478027633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2219793938478027633&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2219793938478027633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2219793938478027633'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/09/using-vlc-player-to-play-internet-radio.html' title='Using VLC player to play Internet Radio'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-4380786383394978268</id><published>2009-09-10T17:53:00.003-04:00</published><updated>2009-09-10T18:08:01.076-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Battery monitoring from console</title><content type='html'>If you prefer to work on a console based machine (without gdm\kdm), the following script is useful if you are running your laptop on battery. It shows the current battery charge and can be used for monitoring the battery discharge.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#!/bin/sh                                                                                                                                                    &lt;br /&gt;# While working in console mode (without gdm) this script                                                                                                    &lt;br /&gt;# tells you the remaining charge of your laptop battery                                                                                                      &lt;br /&gt;#                                                                                                                                                            &lt;br /&gt;# Run it along with watch on a separate tty                                                                                                                  &lt;br /&gt;# $ watch -n 10 ./batmon                                                                                                                                 &lt;br /&gt;#                                                                                                                                                            &lt;br /&gt;# (c) Hunterwala, 2009                                                                                                                                       &lt;br /&gt;#                                                                                                                                                            &lt;br /&gt;# TODO: check for error levels and buzz using pcspkr mod                                                                                                     &lt;br /&gt;# when the charge level decreases beyond that level.                                                                                                         &lt;br /&gt;&lt;br /&gt;PROC_PATH="/proc/acpi/battery/BAT0"&lt;br /&gt;&lt;br /&gt;org_cap=`cat $PROC_PATH/info | grep "last full capacity" | sed "s/ //g" | awk -F: '{print($2)}' | sed "s/mAh//g"`&lt;br /&gt;rem_cap=`cat $PROC_PATH/state | grep "remaining capacity" | sed "s/ //g" | awk -F: '{print($2)}'| sed "s/mAh//g"`&lt;br /&gt;message=`cat $PROC_PATH/state | grep "charging state" | sed "s/ //g" | awk -F: '{print($2)}'| sed "s/mAh//g"`&lt;br /&gt;&lt;br /&gt;diff=$(echo "($org_cap-$rem_cap)" | bc)&lt;br /&gt;total_per=$(echo "100-($diff*100/$org_cap)" | bc)&lt;br /&gt;&lt;br /&gt;echo "Battery is" $message ":" $total_per"%"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Save this script as &lt;code&gt;batmon.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Change the permissions &lt;code&gt;chmod a+x batmon.sh&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Run it on a separate tty &lt;code&gt; watch -n 10 ./batmon.sh&lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-4380786383394978268?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/4380786383394978268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=4380786383394978268&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4380786383394978268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4380786383394978268'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/09/battery-monitoring-from-console.html' title='Battery monitoring from console'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1878487497201569153</id><published>2009-08-31T07:15:00.003-04:00</published><updated>2009-08-31T07:21:02.483-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>64 bit division</title><content type='html'>If you are trying to do this inside the kernel:&lt;br /&gt;&lt;code&gt;unsigned long long arg1, arg2;&lt;br /&gt;arg1 = arg1/arg2;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and you get this error:&lt;br /&gt;&lt;code&gt;Unknown symbol __udivdi3&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You ought to do this instead:&lt;br /&gt;&lt;code&gt;unsigned long long arg1, arg2;&lt;br /&gt;unsigned long temp =  arg1;&lt;br /&gt;do_div(temp, arg2);&lt;br /&gt;arg1 = temp;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1878487497201569153?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1878487497201569153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1878487497201569153&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1878487497201569153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1878487497201569153'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/08/64-bit-division.html' title='64 bit division'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-9125808208015612936</id><published>2009-08-26T11:54:00.003-04:00</published><updated>2009-08-26T12:16:29.336-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='RPM'/><title type='text'>Installing RPMs on Ubuntu</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Method 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Install rpm&lt;br /&gt;&lt;code&gt;$ sudo aptitude install rpm &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Along with other things it would install &lt;code&gt;rpm2cpio&lt;/code&gt;. (RPM and initramfs use the CPIO archiver)&lt;br /&gt;&lt;br /&gt;2. Extract the contents of the RPM&lt;br /&gt;&lt;code&gt;$ rpm2cpio &lt; some-package.rpm | cpio -i --make-directories --verbose&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Copy over the required files to the different directories.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Method 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Install alien&lt;br /&gt;&lt;code&gt;$ sudo aptitude install alien&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. Covert the &lt;code&gt;.rpm&lt;/code&gt; to &lt;code&gt;.deb&lt;/code&gt;&lt;br /&gt;&lt;code&gt;$ sudo alien --to-deb --scripts --verbose some-package.rpm &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;NOTE: Alien internally uses &lt;code&gt;rpm2cpio&lt;/code&gt;, so make sure you have installed &lt;code&gt;rpm&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;--scripts&lt;/code&gt; : If the &lt;code&gt;.rpm&lt;/code&gt; has scripts then you need to include those&lt;br /&gt;&lt;br /&gt;3. Install the &lt;code&gt;.deb&lt;/code&gt; file.&lt;br /&gt;&lt;code&gt; sudo dpkg -i some-package.deb&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The advantage of converting it to &lt;code&gt;.deb&lt;/code&gt; and installing using &lt;code&gt;dpkg&lt;/code&gt; is that you can manage the install\uninstall\reinstall and version using apt\aptitude.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-9125808208015612936?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/9125808208015612936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=9125808208015612936&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/9125808208015612936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/9125808208015612936'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/08/installing-rpms-on-ubuntu.html' title='Installing RPMs on Ubuntu'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7908049292182070695</id><published>2009-08-20T21:47:00.002-04:00</published><updated>2009-08-20T21:55:10.594-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='X server'/><title type='text'>LCD monitor resolution</title><content type='html'>Got a new Samsung 22" 1920x1080 monitor and the default resolution being shown was 1280x800. Now with 8.04 I used to do &lt;code&gt;dpkg-reconfigure xserver-xorg&lt;/code&gt; and it would redo the X11 configuration.&lt;br /&gt;&lt;br /&gt;In Jaunty, the above command just configures the keyboard setting. In order to get the monitor to work with the correct resolution do&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ xrandr &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This would probe the monitor and display the resolutions, then do the following&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ xrandr --output VGA --auto --above LVDS&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7908049292182070695?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7908049292182070695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7908049292182070695&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7908049292182070695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7908049292182070695'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/08/lcd-monitor-resolution.html' title='LCD monitor resolution'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2073424667006550032</id><published>2009-08-13T13:07:00.002-04:00</published><updated>2009-08-13T13:10:01.984-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>emacs - indent entire buffer</title><content type='html'>&lt;code&gt;c-set-style {chose the mode}&lt;br /&gt;C-x h &lt;br /&gt;C-M \ &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Line 2: selects the entire buffer&lt;br /&gt;Line 3: changes the indentation&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2073424667006550032?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2073424667006550032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2073424667006550032&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2073424667006550032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2073424667006550032'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/08/emacs-indent-entire-buffer.html' title='emacs - indent entire buffer'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7866297195455861912</id><published>2009-08-03T20:30:00.004-04:00</published><updated>2009-08-03T20:38:23.113-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='GDM'/><title type='text'>20 great GDM screens for Ubuntu</title><content type='html'>Awesome GDM screens for Ubuntu, &lt;a href="http://ubuntumanual.org/posts/222/20-gdm-themes-for-ubuntu-you-probably-haven-t-seen-before"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Installing is very easy:&lt;br /&gt;&lt;br /&gt;1. Click on the theme you like and download the archive.&lt;br /&gt;2. Right click on your name on the upper right-side toolbar and select "Setup login screen"&lt;br /&gt;3. Click on "Local" pane, then on the "Add" button, browse to the folder where you downloaded the archive (tar.gz) and then select the theme.&lt;br /&gt;&lt;br /&gt;Bingo! you are done. logout and log back in!!&lt;br /&gt;&lt;br /&gt;The best part is that you can select "Random from selected", pick the best ones and every time you login, it would be a different theme!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7866297195455861912?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7866297195455861912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7866297195455861912&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7866297195455861912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7866297195455861912'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/08/20-great-gdm-screens-for-ubuntu.html' title='20 great GDM screens for Ubuntu'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1744616058831224637</id><published>2009-08-03T10:08:00.004-04:00</published><updated>2009-08-03T10:12:01.035-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>emacs client</title><content type='html'>When one instance of emacs is already running and you want to open files from command line into the same instance, use emacs client.&lt;br /&gt;&lt;br /&gt;First, start the emacs server. Add the following line in your &lt;code&gt;.emacs&lt;/code&gt; file:&lt;br /&gt;&lt;code&gt;(server-start)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Start emacs, and use emacs client from the command line to open the files in the already open emacs instance:&lt;br /&gt;&lt;code&gt;emacsclient -n filename&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It helps to create an alias:&lt;br /&gt;&lt;code&gt;alias cemacs='emacsclient -n'&lt;br /&gt;alias emacs='emacs &amp;'&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1744616058831224637?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1744616058831224637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1744616058831224637&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1744616058831224637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1744616058831224637'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/08/emacs-client.html' title='emacs client'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6943464637177827588</id><published>2009-07-19T10:48:00.007-04:00</published><updated>2009-07-21T22:18:03.386-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apt'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>new system</title><content type='html'>Just installed a new system with a fresh Ubuntu install? Install all the packages in one shot,&lt;br /&gt;&lt;br /&gt;&lt;code&gt;~$ sudo aptitude install build-essential ddd insight kdbg kdevelop eclipse eclipse-cdt eclipse-jdt kompare kate bless kile lyx cscope global octave kmplot vim emacs virtualbox-ose pdfedit scribus inkscape checkgmail kompozer manpages manpages-posix easytag gtkpod vlc libncurses5 libncurses5-dev dialog curl sun-java6-jre sun-java6-jdk wireshark qt4-dev-tools qt4-assistant qt4-designer qdevelop monodevelop umbrello git git-core gitk git-gui graphviz doxygen doxygen-gui&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Apart from that, install the individual &lt;code&gt;.deb&lt;/code&gt; for&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://dev.chromium.org/getting-involved/dev-channel"&gt;Google Chrome&lt;/a&gt; (dev channel)  &lt;br /&gt;2. &lt;a href="http://www.skype.com/download/skype/linux/"&gt;Skype&lt;/a&gt; for 32 bit (64-bit still shaky)&lt;br /&gt;3. &lt;a href="http://picasa.google.com/linux/"&gt;Picasa&lt;/a&gt; for Linux&lt;br /&gt;&lt;br /&gt;Before installing new packages, do&lt;br /&gt;&lt;code&gt;~$ sudo apt-get update; sudo apt-get upgrade&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6943464637177827588?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6943464637177827588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6943464637177827588&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6943464637177827588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6943464637177827588'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/07/new-system.html' title='new system'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-4246481063956449512</id><published>2009-07-18T17:01:00.001-04:00</published><updated>2009-07-18T17:03:14.480-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>sudo first</title><content type='html'>Check if you running your script through sudo.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;if [[ $(/usr/bin/id -u) -ne 0 ]]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "Not running as root"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;exit&lt;br /&gt;fi&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-4246481063956449512?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/4246481063956449512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=4246481063956449512&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4246481063956449512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4246481063956449512'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/07/sudo-first.html' title='sudo first'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5227089208189513870</id><published>2009-07-13T21:03:00.001-04:00</published><updated>2009-07-13T21:05:23.482-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>Linux Kernel design patterns</title><content type='html'>Linux kernel design patterns, &lt;a href="http://lwn.net/Articles/336224/"&gt;part 1&lt;/a&gt;, &lt;a href="http://lwn.net/Articles/336255/"&gt;part 2&lt;/a&gt; and &lt;a href="http://lwn.net/Articles/336262/"&gt;part 3&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5227089208189513870?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5227089208189513870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5227089208189513870&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5227089208189513870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5227089208189513870'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/07/linux-kernel-design-patterns.html' title='Linux Kernel design patterns'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8614480883173824842</id><published>2009-07-13T20:53:00.002-04:00</published><updated>2009-11-02T11:45:44.052-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNUPlot'/><title type='text'>Gnuplot - resources</title><content type='html'>Very useful gnuplot resources&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The official gnuplot &lt;a href="http://www.gnuplot.info/docs/gnuplot.html"&gt;documentation&lt;/a&gt; and &lt;a href="http://www.gnuplot.info/screenshots/index.html#demos"&gt;demos&lt;/a&gt;&amp;nbsp;(The demos are really useful as they give the scripts that can me modified to suit your plot)&lt;/li&gt;&lt;li&gt;&lt;a href="http://t16web.lanl.gov/Kawano/gnuplot/intro/index-e.html"&gt;Introduction to gnuplot&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Creating graphs with gnuplot &lt;a href="http://ldn.linuxfoundation.org/article/generating-graphs-with-gnuplot-part-1"&gt;part1&lt;/a&gt;, &lt;a href="http://ldn.linuxfoundation.org/article/generating-graphs-with-gnuplot-part-2"&gt;part2&lt;/a&gt; and &lt;a href="http://ldn.linuxfoundation.org/article/generating-graphs-with-gnuplot-part-3"&gt;part3&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8614480883173824842?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8614480883173824842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8614480883173824842&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8614480883173824842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8614480883173824842'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/07/gnuplot.html' title='Gnuplot - resources'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6580810891207598830</id><published>2009-06-28T09:07:00.003-04:00</published><updated>2009-06-28T09:12:31.582-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='GIT'/><title type='text'>Git</title><content type='html'>Started using git.. this page would get more info as I learn more.&lt;br /&gt;&lt;br /&gt;1. A very good presentation\video - &lt;a href="http://excess.org/article/2008/07/ogre-git-tutorial/"&gt;here&lt;/a&gt;&lt;br /&gt;2. Git documentation guide\book - &lt;a href="http://book.git-scm.com/"&gt;here&lt;/a&gt;&lt;br /&gt;3. Understanding Git, another tutorial - &lt;a href="http://www.eecs.harvard.edu/~cduan/technical/git/"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6580810891207598830?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6580810891207598830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6580810891207598830&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6580810891207598830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6580810891207598830'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/git.html' title='Git'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7482053271847554231</id><published>2009-06-27T16:58:00.006-04:00</published><updated>2009-06-28T09:47:47.558-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash twitter'/><title type='text'>Tweet from the command line</title><content type='html'>Do this from the command line&lt;br /&gt;&lt;br /&gt;&lt;code&gt; curl -u username:password -d status="the message" http://twitter.com/statuses/update.xml&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Add the following function in your &lt;code&gt;.bashrc&lt;/code&gt; file.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;# function to tweet&lt;br /&gt;tweet() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;flag=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;if [[ -z "$1" &amp;&amp; -z "$2" ]]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "Usage: tweet password \"message\""&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "Make sure the message is within quotes"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;flag=1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;fi&lt;br /&gt;&amp;nbsp;&amp;nbsp;if [ ${flag} == "0" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;echo "Sending message...."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;curl -u username:$1 -d status="$2" http://twitter.com/statuses/update.xml&lt;br /&gt;&amp;nbsp;&amp;nbsp;fi&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and then do&lt;br /&gt;&lt;code&gt; $tweet password "The message goes here" &lt;code&gt;&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://www.commandlinefu.com/commands/matching/twitter/dHdpdHRlcg==/sort-by-votes"&gt;Source&lt;/a&gt;]&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7482053271847554231?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7482053271847554231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7482053271847554231&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7482053271847554231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7482053271847554231'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/tweet-from-command-line.html' title='Tweet from the command line'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5858028623431664259</id><published>2009-06-15T15:31:00.004-04:00</published><updated>2009-06-15T15:43:58.965-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><title type='text'>more vim</title><content type='html'>Useful stuff to put inside your &lt;code&gt;~/.vimrc&lt;/code&gt; file&lt;br /&gt;&lt;br /&gt;&lt;code&gt;" Set tab width&lt;br /&gt;set tabstop=4&lt;br /&gt;set softtabstop=4&lt;br /&gt;set shiftwidth=4&lt;br /&gt;set smarttab&lt;br /&gt;set smartindent&lt;br /&gt;set expandtab&lt;br /&gt;set cursorline&lt;br /&gt;&lt;br /&gt;" Show line numbers and cursor position&lt;br /&gt;set ruler&lt;br /&gt;set number&lt;br /&gt;&lt;br /&gt;" Disable default splash screen&lt;br /&gt;set shortmess+=I&lt;br /&gt;set guioptions-=T&lt;br /&gt;&lt;br /&gt;" Show tabs and trailing white spaces&lt;br /&gt;set list listchars=tab:-»,trail:·,extends:»&lt;br /&gt;&lt;br /&gt;" Don't generate backup files&lt;br /&gt;set nobackup&lt;br /&gt;&lt;br /&gt;" Set default color scheme to something&lt;br /&gt;colorscheme something&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you don't have it, create a folder &lt;code&gt;~/.vim/colors&lt;/code&gt; and put the color scheme inside.&lt;br /&gt;&lt;br /&gt;Color schemes are available &lt;a href="http://www.cs.cmu.edu/~maverick/VimColorSchemeTest/index-c.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5858028623431664259?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5858028623431664259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5858028623431664259&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5858028623431664259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5858028623431664259'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/more-vim.html' title='more vim'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-9080637337239452983</id><published>2009-06-11T15:18:00.004-04:00</published><updated>2009-06-11T15:35:13.470-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='oprofile'/><title type='text'>oprofile</title><content type='html'>&lt;code&gt;oprofile&lt;/code&gt; is very helpful in getting a trace out of the kernel especially to know the %age usage of methods from the kernel and the application. Helps in debugging some weird problems.&lt;br /&gt;&lt;br /&gt;First, enable &lt;code&gt;oprofile&lt;/code&gt; in the kernel, it is good to build it part of the kernel rather than a kernel module, so make sure in the menuconfig option it is a [*] rather than [m].&lt;br /&gt;&lt;br /&gt;You can install the oprofile client once you boot back into your file system.&lt;br /&gt;&lt;code&gt;sudo apt-get install oprofile oprofile-gui&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Before starting your application, initialize&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --init &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The following two options can be done once in the beginning&lt;br /&gt;&lt;br /&gt;Tell oprofile the path to your compiled and unstripped &lt;code&gt;vmlinux&lt;/code&gt; file so that it can pick the symbols from there&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --vmlinux=/path/to/kernel/image&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Set the call stack depth&lt;br /&gt;&lt;code&gt;# sudo opcontrol --callgraph=#depth&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now check the status,&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --status&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Reset the earlier dump,&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --reset&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Start the profiler&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --start&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Run your application&lt;br /&gt;&lt;code&gt;$ ./mystupidapp &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;All done, stop the profiler&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --stop&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Get the dump&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --dump&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now, get the report&lt;br /&gt;&lt;code&gt;$ sudo opreport -l (and various options if you want) &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Clear it,&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --reset&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Deinit,&lt;br /&gt;&lt;code&gt;$ sudo opcontrol --deinit&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and start again if you want to.&lt;br /&gt;&lt;br /&gt;I use alias(es) in the &lt;code&gt;.bashrc&lt;/code&gt; file. Really helps!&lt;br /&gt;&lt;code&gt;alias opc='sudo opcontrol'&lt;br /&gt;alias opcdeinit='opc --deinit'&lt;br /&gt;alias opcdump='opc --dump'&lt;br /&gt;alias opcinit='opc --init'&lt;br /&gt;alias opcreset='opc --reset'&lt;br /&gt;alias opcstart='opc --start'&lt;br /&gt;alias opcstatus='opc --status'&lt;br /&gt;alias opcstop='opc --stop'&lt;br /&gt;alias opr='sudo opreport -l'&lt;br /&gt;alias oprcall='opr -c'&lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-9080637337239452983?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/9080637337239452983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=9080637337239452983&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/9080637337239452983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/9080637337239452983'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/oprofile.html' title='oprofile'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8921856388549155851</id><published>2009-06-11T13:56:00.003-04:00</published><updated>2009-06-11T13:59:24.940-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>sending stdout and stderr to single file</title><content type='html'>I get confused all the time with this. To send both the stdout and stderr message from the console to a file do&lt;br /&gt;&lt;br /&gt;&lt;code&gt; $ app &gt; log.file 2&gt;&amp;1&lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8921856388549155851?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8921856388549155851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8921856388549155851&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8921856388549155851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8921856388549155851'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/sending-stdout-and-stderr-to-single.html' title='sending stdout and stderr to single file'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-3103279567694795741</id><published>2009-06-10T22:21:00.003-04:00</published><updated>2009-06-10T22:43:39.207-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bing Duh'/><title type='text'>Bing !</title><content type='html'>I am not sure if the search results given by bing are going to be anything to brag about or any different (good\worst) than Google's but there are certain features in bing (the ones that I noticed, there might be a gazillion according to peeps at MS) which might find their way into Google soon, in one way or the other ;)&lt;br /&gt;&lt;br /&gt;1. Tiny website preview\summary with the context of the search word\phrase - move to mouse to right of the result, a yellow dot appears which gives a snapshot of the result - handy and avoids opening the page to see if the result makes sense.&lt;br /&gt;&lt;br /&gt;2. Video preview - this is the best one, while searching for videos (especially the useful ones :D ), bing plays them right in the search result panel. Isn't that nice!&lt;br /&gt;&lt;br /&gt;3. Enhanced pages for Wikipedia results - you can click on the link to "enhanced page" and the wikipedia entry opens right inside the search panel. Do know how useful that is!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-3103279567694795741?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/3103279567694795741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=3103279567694795741&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3103279567694795741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3103279567694795741'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/bing.html' title='Bing !'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2501353669672198599</id><published>2009-06-09T17:39:00.004-04:00</published><updated>2009-06-10T22:44:32.600-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>emacs - match parenthesis</title><content type='html'>One good thing I liked about &lt;code&gt;vim&lt;/code&gt; is that the parenthesis matching is so damn easy - use &lt;code&gt; % &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So, in order to enable the same in emacs, add the following in your &lt;code&gt;.emacs&lt;/code&gt; file &lt;code&gt;&lt;br /&gt;(global-set-key "%" 'match-paren)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(defun match-paren (arg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"Go to the matching paren if on a paren; otherwise insert %."&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(interactive "p")&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;((looking-at "\\s\)") (forward-char 1) (backward-list 1))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(t (self-insert-command (or arg 1))))) &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;[&lt;a href="http://grok2.tripod.com/"&gt;source&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2501353669672198599?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2501353669672198599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2501353669672198599&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2501353669672198599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2501353669672198599'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/emacs-match-parenthesis.html' title='emacs - match parenthesis'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7057168862872483371</id><published>2009-06-09T11:36:00.005-04:00</published><updated>2009-06-10T22:45:17.952-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>emacs lightweight options and vim</title><content type='html'>I use emacs all of the time. However, the problem with emacs is that it is very heavy duty and usually not available on embedded targets.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Zile&lt;/code&gt; and &lt;code&gt;mg&lt;/code&gt; and two light-weight options for emacs (&lt;code&gt;sudo apt-get install mg zile &lt;/code&gt;)&lt;br /&gt;&lt;br /&gt;Also, it is good to know how to use &lt;code&gt;vim&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Quick starter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Open file &lt;code&gt;[Esc first] :e&lt;/code&gt;&lt;br /&gt;Save &amp; Exit - &lt;code&gt;[Esc first] :wq&lt;/code&gt;&lt;br /&gt;Save - &lt;code&gt;[Esc first]:w&lt;/code&gt;&lt;br /&gt;Don't save &amp; Exit - &lt;code&gt;[Esc first]:!q&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Up - &lt;code&gt;[Esc first] k or Up arrow&lt;/code&gt;&lt;br /&gt;down - &lt;code&gt;[Esc first] j or Down arrow&lt;/code&gt;&lt;br /&gt;left - &lt;code&gt;[Esc first] h or Left arrow&lt;/code&gt;&lt;br /&gt;right - &lt;code&gt;[Esc first] l or right arrow&lt;/code&gt;&lt;br /&gt;start of line - &lt;code&gt;[Esc first] ^&lt;/code&gt;&lt;br /&gt;end of line - &lt;code&gt;[Esc first] $&lt;/code&gt;&lt;br /&gt;page up  - &lt;code&gt;cntrl+b&lt;/code&gt;&lt;br /&gt;page down - &lt;code&gt;cntrl+f&lt;/code&gt;&lt;br /&gt;Goto line x - &lt;code&gt;xG&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;undo - &lt;code&gt;[Esc first] u&lt;/code&gt;&lt;br /&gt;redo - &lt;code&gt;[Esc First] Shift+r&lt;/code&gt;&lt;br /&gt;delete char - &lt;code&gt;[Esc First] x&lt;/code&gt;&lt;br /&gt;delete word - &lt;code&gt;[Esc First] dw&lt;/code&gt;&lt;br /&gt;delete line - &lt;code&gt;[Esc First] dd&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;search - &lt;code&gt;[Esc first] /&lt;/code&gt;&lt;br /&gt;next - &lt;code&gt; n&lt;/code&gt;&lt;br /&gt;prev - &lt;code&gt;Shift+n&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;help - &lt;code&gt;[Esc first]:help&lt;/code&gt;&lt;br /&gt;or start from command line&lt;br /&gt;&lt;code&gt;$ vimtutor&lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7057168862872483371?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7057168862872483371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7057168862872483371&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7057168862872483371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7057168862872483371'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/emacs-lightweight-options-and-vim.html' title='emacs lightweight options and vim'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-3752071935708280348</id><published>2009-06-09T00:42:00.001-04:00</published><updated>2009-06-09T00:44:13.711-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><category scheme='http://www.blogger.com/atom/ns#' term='sed'/><title type='text'>Regular expressions and Sed</title><content type='html'>Bruce Barnett is God!&lt;br /&gt;&lt;br /&gt;1. Regular expression tutorial, &lt;a href="http://www.grymoire.com/Unix/Regular.html"&gt;here&lt;/a&gt;&lt;br /&gt;2. Awesome Sed tutorial, &lt;a href="http://www.grymoire.com/Unix/Sed.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-3752071935708280348?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/3752071935708280348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=3752071935708280348&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3752071935708280348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/3752071935708280348'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/regular-expressions-and-sed.html' title='Regular expressions and Sed'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1458101286399301860</id><published>2009-06-02T10:58:00.003-04:00</published><updated>2009-06-02T11:00:44.875-04:00</updated><title type='text'>Weird</title><content type='html'>I was just checking the post list on this blog and for 2008 and 2009 I have not made any posts in the months of March and April. Strange!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1458101286399301860?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1458101286399301860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1458101286399301860&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1458101286399301860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1458101286399301860'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/weird.html' title='Weird'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6897062757581450935</id><published>2009-06-02T10:53:00.005-04:00</published><updated>2011-03-17T10:36:59.262-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TAGS'/><category scheme='http://www.blogger.com/atom/ns#' term='gtags'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Using gtags (global)</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;As a follow up to the last &lt;a href="http://linux-digest.blogspot.com/2009/06/global-and-gtags.html"&gt;post&lt;/a&gt;, I tried emacs+gtags and it is really powerful when compared to emacs+etags.&lt;br /&gt;&lt;br /&gt;Important things to get started.&lt;br /&gt;&lt;br /&gt;First run gtags on the code.&lt;br /&gt;&lt;code&gt;$ gtags &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This would create four files &lt;code&gt;GPATH, GRTAGS, GSYMS, GTAGS&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Open emacs and enable gtags&lt;br /&gt;&lt;code&gt; M-x gtags-mode RET&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To enable auto completion of function names\symbols etc use, &lt;br /&gt;&lt;code&gt; M-x gtags-make-complete-list&lt;/code&gt;&lt;br /&gt;&lt;b&gt;NOTE&lt;/b&gt;: This is deprecated and not required now.&lt;br /&gt;&lt;br /&gt;To locate a function use,&lt;br /&gt;&lt;code&gt; M-x gtags-find-tag function_name&lt;/code&gt;.&lt;br /&gt;You can also use &lt;code&gt; M-. &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If more than one is found a stack is returned. Select one and hit RET. In order to get the stack use,&lt;br /&gt;&lt;code&gt; M-x gtags-pop-stack&lt;/code&gt;.&lt;br /&gt;You can also use &lt;code&gt; M-*&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To find a symbol use,&lt;br /&gt;&lt;code&gt; M-x gtags-find-symbol m_myVar &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To find anything use,&lt;br /&gt;&lt;code&gt; M-x gtags-find-with-grep "gtags rules" &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Once you modify the code, just update the code&lt;br /&gt;&lt;code&gt; global -u -v &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To visit the tags folder use,&lt;br /&gt;&lt;code&gt; M-x gtags-visit-rootdir &lt;/code&gt; and point it to the folder that has the TAGS!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6897062757581450935?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6897062757581450935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6897062757581450935&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6897062757581450935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6897062757581450935'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/using-gtags-global.html' title='Using gtags (global)'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7695680260947051573</id><published>2009-06-01T17:34:00.003-04:00</published><updated>2009-06-01T18:06:26.376-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TAGS'/><category scheme='http://www.blogger.com/atom/ns#' term='gtags'/><category scheme='http://www.blogger.com/atom/ns#' term='GNU'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>global and gtags</title><content type='html'>I have heard a lot about GNU GLOBAL source code tag system, need to try it out.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gnu.org/software/global/globaldoc.html"&gt;GNU global&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7695680260947051573?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7695680260947051573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7695680260947051573&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7695680260947051573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7695680260947051573'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/global-and-gtags.html' title='global and gtags'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8624254856322963057</id><published>2009-06-01T17:00:00.003-04:00</published><updated>2009-06-01T17:09:25.020-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>emacs - system wide copy and paste</title><content type='html'>Using &lt;code&gt;[M]-W&lt;/code&gt; and &lt;code&gt;[C]-Y&lt;/code&gt; one can copy and paste inside emacs but it only works for the emacs buffers. In order to enable system wide copy\paste (through the clipboard) with other applications set the following in the .emacs file&lt;br /&gt;&lt;br /&gt;&lt;code&gt;(setq x-select-enable-clipboard t)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;OR use &lt;br /&gt;&lt;br /&gt;&lt;code&gt; META-X set-variable RET x-select-enable-clipboard RET t&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Lot more &lt;a href="http://www.emacswiki.org/cgi-bin/wiki/CopyAndPaste"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;[&lt;a href="http://stackoverflow.com/questions/64360/how-to-copy-text-from-emacs-to-another-application-on-linux"&gt;src&lt;/a&gt;]&lt;/font&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8624254856322963057?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8624254856322963057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8624254856322963057&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8624254856322963057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8624254856322963057'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/emacs-system-wide-copy-and-paste.html' title='emacs - system wide copy and paste'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8237774867984066915</id><published>2009-06-01T14:40:00.001-04:00</published><updated>2009-06-01T14:41:50.456-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='initrd'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>initird</title><content type='html'>Nice (but a little old) article on initrd internals. Click &lt;a href="http://www.ibm.com/developerworks/linux/library/l-initrd.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8237774867984066915?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8237774867984066915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8237774867984066915&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8237774867984066915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8237774867984066915'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/initird.html' title='initird'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2291268982246549559</id><published>2009-06-01T14:22:00.003-04:00</published><updated>2009-06-11T10:28:02.209-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Bash scripting</title><content type='html'>1. A very good basic BASH scripting tutorial. Click &lt;a href="http://linuxcommand.org/"&gt;here&lt;/a&gt;&lt;br /&gt;2. A very advanced tutorial at TLDP. Click &lt;a href="http://tldp.org/LDP/abs/html/index.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2291268982246549559?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2291268982246549559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2291268982246549559&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2291268982246549559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2291268982246549559'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/06/bash-scripting.html' title='Bash scripting'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7348878520786144833</id><published>2009-05-31T08:45:00.004-04:00</published><updated>2009-05-31T08:50:02.225-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>Linux embedded Systems</title><content type='html'>Nice tutorial that concludes a series of tutorials on embedded Linux system development by noted ARM Linux kernel hackers Vincent Sanders and Daniel Silverstone, &lt;a href="http://www.linuxfordevices.com/articles/AT6899729163.html"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7348878520786144833?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7348878520786144833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7348878520786144833&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7348878520786144833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7348878520786144833'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/linux-embedded-systems.html' title='Linux embedded Systems'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8148332847689100396</id><published>2009-05-28T11:20:00.007-04:00</published><updated>2009-05-28T11:46:56.943-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ascii art'/><title type='text'>ASCII art</title><content type='html'>This is amazing stuff!! &lt;pre&gt; _   _             _                          _       &lt;br /&gt;| | | |_   _ _ __ | |_ ___ _ ____      ____ _| | __ _ &lt;br /&gt;| |_| | | | | '_ \| __/ _ \ '__\ \ /\ / / _` | |/ _` |&lt;br /&gt;|  _  | |_| | | | | ||  __/ |   \ V  V / (_| | | (_| |&lt;br /&gt;|_| |_|\__,_|_| |_|\__\___|_|    \_/\_/ \__,_|_|\__,_|&lt;br /&gt;&lt;/pre&gt; OR &lt;pre&gt; _   _  __  __  _  _  ____  ____  ____  _    _    __    __      __   &lt;br /&gt;( )_( )(  )(  )( \( )(_  _)( ___)(  _ \( \/\/ )  /__\  (  )    /__\  &lt;br /&gt; ) _ (  )(__)(  )  (   )(   )__)  )   / )    (  /(__)\  )(__  /(__)\ &lt;br /&gt;(_) (_)(______)(_)\_) (__) (____)(_)\_)(__/\__)(__)(__)(____)(__)(__)&lt;br /&gt;&lt;/pre&gt; Make you own and embed it in your source code :)&lt;br /&gt;Click &lt;a href="http://www.network-science.de/ascii/"&gt;here&lt;/a&gt; to convert. They have various fonts as you see ;)&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8148332847689100396?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8148332847689100396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8148332847689100396&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8148332847689100396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8148332847689100396'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/ascii-art.html' title='ASCII art'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2258418110366886646</id><published>2009-05-26T15:40:00.005-04:00</published><updated>2009-05-31T08:50:21.518-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>ping sweep</title><content type='html'>You have a machine on the subnet for which you know the MAC address but you don't know what IP address it got after a restart, use &lt;code&gt;nmap&lt;/code&gt; and do a ping sweep:&lt;br /&gt;&lt;br /&gt;&lt;code&gt; sudo nmap -n -sP 192.168.1.0/24 | grep "00:11:22:33:44"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;-n &lt;/code&gt; tells nmap not to never do reverse DNS resolution on the active IP address it finds. Makes scanning faster&lt;br /&gt;&lt;code&gt;-sP &lt;/code&gt; Only perform a ping scan (host discovery) and prints the results, go no further.&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2258418110366886646?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2258418110366886646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2258418110366886646&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2258418110366886646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2258418110366886646'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/ping-sweep.html' title='ping sweep'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1295333924315001429</id><published>2009-05-22T21:37:00.005-04:00</published><updated>2009-05-22T21:57:31.482-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>HTML editor</title><content type='html'>I am working on creating the website for my lab and I had to find a good open source alternative to Dreamweaver. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bluefish.openoffice.nl/images/logo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://bluefish.openoffice.nl/images/logo.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://bluefish.openoffice.nl/"&gt;Bluefish Editor&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;It is a nice editor but it is not a WYSIWYG. One needs to go back to learning HTML and family and it becomes irritating after sometime.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://kdewebdev.org/images/logos/quanta2.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 128px; height: 81px;" src="http://kdewebdev.org/images/logos/quanta2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;span style="font-weight:bold;"&gt;&lt;a href="http://quanta.kdewebdev.org/"&gt;Quanta Plus&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;Like Bluefish but more crappy and archaic. I would suggest installing software using &lt;code&gt;aptitude&lt;/code&gt; rather than &lt;code&gt;apt-get&lt;/code&gt; because it is easy to &lt;code&gt;purge&lt;/code&gt; and clean the dependency chain that it creates.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://kompozer.sourceforge.net/images/kompozer_128x128.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://kompozer.sourceforge.net/images/kompozer_128x128.png" border="0" alt="" /&gt;&lt;/a&gt; &lt;span style="font-weight:bold;"&gt;&lt;a href="http://kompozer.net/"&gt;KompoZer&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;This is best editor. Powered by Mozilla (even looks like Firefox) and is a WYSIWYG with powerful features like tag view, source view and preview. It provides easy layering (div) and properties. It took me 10 minutes to create the same page that took 1 hour in Bluefish. Winner!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1295333924315001429?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1295333924315001429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1295333924315001429&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1295333924315001429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1295333924315001429'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/html-editor.html' title='HTML editor'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8825212270763845241</id><published>2009-05-22T15:14:00.004-04:00</published><updated>2009-05-22T15:22:24.755-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>[Book]  Beginning Perl</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/51P22GCZBFL._BO2,204,203,200_PIsitb-sticker-arrow-big-search,TopRight,35,-76_AA240_SH20_OU01_.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 240px; height: 240px;" src="http://ecx.images-amazon.com/images/I/51P22GCZBFL._BO2,204,203,200_PIsitb-sticker-arrow-big-search,TopRight,35,-76_AA240_SH20_OU01_.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Beginning Perl by Simon Cozens is available in PDF format online under the Creative Commons license. Nice resource, if you are starting from scratch. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.perl.org/books/beginning-perl/"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[Image courtsey: &lt;a href="http://www.amazon.com"&gt;http://www.amazon.com&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8825212270763845241?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8825212270763845241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8825212270763845241&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8825212270763845241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8825212270763845241'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/book-beginning-perl.html' title='[Book]  Beginning Perl'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-5203306282866549138</id><published>2009-05-22T11:45:00.002-04:00</published><updated>2009-05-22T11:49:31.037-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><title type='text'>Changing the default size of gnome-terminal</title><content type='html'>The small window can be a pita sometimes.&lt;br /&gt;&lt;br /&gt;Figure out what size you want to make the terminal. (If you have compiz enabled, while dragging the right bottom edge, you can get the size in the center of the screen, else trial-and-error)&lt;br /&gt;&lt;br /&gt;Add gnome-terminal to the panel, change the properties and add the following to the command&lt;br /&gt;&lt;br /&gt;&lt;code&gt; gnome-terminal --geometry 152x55&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(or whatever size you prefer)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-5203306282866549138?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/5203306282866549138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=5203306282866549138&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5203306282866549138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/5203306282866549138'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/changing-default-size-of-gnome-terminal.html' title='Changing the default size of gnome-terminal'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2215832380067849845</id><published>2009-05-22T11:38:00.003-04:00</published><updated>2009-05-22T15:21:36.835-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='commands'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>[Book] Linux in a nutshell</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://covers.oreilly.com/images/9780596009304/cat.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 180px; height: 270px;" src="http://covers.oreilly.com/images/9780596009304/cat.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This O'Reilly book is a good starter for people new to Linux. &lt;a href="http://www.oreillynet.com/linux/cmd/" target="_blank"&gt; Here &lt;/a&gt; are the list of useful commands from the book.&lt;br /&gt;&lt;br /&gt;[Image courtsey &lt;a href="http://www.oreillynet.com"&gt;http://www.oreillynet.com&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2215832380067849845?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2215832380067849845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2215832380067849845&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2215832380067849845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2215832380067849845'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/book-linux-in-nutshell.html' title='[Book] Linux in a nutshell'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1428789006724351282</id><published>2009-05-22T11:32:00.008-04:00</published><updated>2009-06-11T10:29:06.303-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='awk'/><category scheme='http://www.blogger.com/atom/ns#' term='uniq'/><category scheme='http://www.blogger.com/atom/ns#' term='cut'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Using cut and uniq</title><content type='html'>For some weird reason I had to do this, &lt;code&gt;cut&lt;/code&gt; and &lt;code&gt;uniq&lt;/code&gt; turned out to be quite handy and can be used along with &lt;code&gt;sed&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cat /proc/cpuinfo | grep "model name" | uniq | cut -d: -f2&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So, instead of this&lt;br /&gt;&lt;code&gt;model name : Intel(R) Core(TM)2 Duo CPU     E8500  @ 3.16GHz&lt;br /&gt;model name : Intel(R) Core(TM)2 Duo CPU     E8500  @ 3.16GHz&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I get this&lt;br /&gt;&lt;code&gt;Intel(R) Core(TM)2 Duo CPU     E8500  @ 3.16GHz&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;OK, another approach is to use &lt;code&gt;awk&lt;/code&gt;&lt;br /&gt;&lt;code&gt;cat /proc/cpuinfo | grep "model name" | uniq | awk -F: '{print($2)}'&lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1428789006724351282?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1428789006724351282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1428789006724351282&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1428789006724351282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1428789006724351282'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/using-cut-and-uniq.html' title='Using cut and uniq'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7263358174543520322</id><published>2009-05-19T12:09:00.004-04:00</published><updated>2009-05-22T15:33:58.532-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Emacs command list</title><content type='html'>Sometimes I tend to forget some of these :D :P&lt;br /&gt;&lt;br /&gt;&lt;code&gt;C = Control&lt;br /&gt;M = Meta = Alt|Esc&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Basics&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-x C-f "find" file i.e. open/create a file in buffer&lt;br /&gt;C-x C-s save the file&lt;br /&gt;C-x C-w write the text to an alternate name&lt;br /&gt;C-x C-v find alternate file&lt;br /&gt;C-x i insert file at cursor position&lt;br /&gt;C-x b create/switch buffers&lt;br /&gt;C-x C-b show buffer list&lt;br /&gt;C-x k kill buffer&lt;br /&gt;C-z suspend emacs&lt;br /&gt;C-X C-c close down emacs&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Basic movement&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-f forward char&lt;br /&gt;C-b backward char&lt;br /&gt;C-p previous line&lt;br /&gt;C-n next line&lt;br /&gt;M-f forward one word&lt;br /&gt;M-b backward one word&lt;br /&gt;C-a beginning of line&lt;br /&gt;C-e end of line&lt;br /&gt;C-v one page up&lt;br /&gt;M-v scroll down one page&lt;br /&gt;M-&lt; beginning of text&lt;br /&gt;M-&gt; end of text &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Editing&lt;/span&gt;&lt;br /&gt;&lt;code&gt;M-n repeat the following command n times&lt;br /&gt;C-u repeat the following command 4 times&lt;br /&gt;C-u n repeat n times&lt;br /&gt;C-d delete a char&lt;br /&gt;M-d delete word&lt;br /&gt;M-Del delete word backwards&lt;br /&gt;C-k kill line&lt;br /&gt;&lt;br /&gt;C-Space Set beginning mark (for region marking for example)&lt;br /&gt;C-W "kill" (delete) the marked region region&lt;br /&gt;M-W copy the marked region&lt;br /&gt;C-y "yank" (paste) the copied/killed region/line&lt;br /&gt;M-y yank earlier text (cycle through kill buffer)&lt;br /&gt;C-x C-x exchange cursor and mark&lt;br /&gt;&lt;br /&gt;C-t transpose two chars&lt;br /&gt;M-t transpose two words&lt;br /&gt;C-x C-t transpose lines&lt;br /&gt;M-u make letters uppercase in word from cursor position to end&lt;br /&gt;M-c simply make first letter in word uppercase&lt;br /&gt;M-l opposite to M-u&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Important&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-g quit the running/entered command&lt;br /&gt;C-x u undo previous action&lt;br /&gt;M-x revert-buffer RETURN (insert like this) undo all changes since last save&lt;br /&gt;M-x recover-file RETURN Recover text from an autosave-file&lt;br /&gt;M-x recover-session RETURN if you edited several files&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Online-Help&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-h c which command does this keystroke invoke&lt;br /&gt;C-h k which command does this keystroke invoke and what does it do?&lt;br /&gt;C-h l what were my last 100 typed keys&lt;br /&gt;C-h w what key-combo does this command have?&lt;br /&gt;C-h f what does this function do&lt;br /&gt;C-h v what's this variable and what is it's value&lt;br /&gt;C-h b show all keycommands for this buffer&lt;br /&gt;C-h t start the emacs tutorial&lt;br /&gt;C-h i start the info reader&lt;br /&gt;C-h C-k start up info reader and go to a certain key-combo point&lt;br /&gt;C-h F show the emacs FAQ&lt;br /&gt;C-h p show infos about the Elisp package on this machine&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Search/Replace&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-s Search forward&lt;br /&gt;C-r search backward&lt;br /&gt;C-g return to where search started (if you are still in search mode)&lt;br /&gt;M-% query replace&lt;br /&gt;&lt;br /&gt;    Space or y replace this occurrence&lt;br /&gt;    Del or n don't replace&lt;br /&gt;    . only replace this and exit (replace)&lt;br /&gt;    , replace and pause (resume with Space or y)&lt;br /&gt;    ! replace all following occurrences&lt;br /&gt;    ^ back to previous match&lt;br /&gt;    RETURN or q quit replace &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Search/Replace with regular expressions&lt;/span&gt;&lt;br /&gt;Characters to use in regular expressions:&lt;br /&gt;&lt;code&gt;^ beginning of line&lt;br /&gt;$ end of line&lt;br /&gt;. single char&lt;br /&gt;.* group or null of chars&lt;br /&gt;\&lt; beginning of a word&lt;br /&gt;\&gt; end of a word&lt;br /&gt;[] every char inside the backets (for example [a-z] means every small letter)&lt;br /&gt;&lt;br /&gt;M C-s RETURN search for regular expression forward&lt;br /&gt;M C-r RETURN search for regular expression backward&lt;br /&gt;M C-s incremental search&lt;br /&gt;C-s repeat incremental search&lt;br /&gt;M C-r incremental search backwards&lt;br /&gt;C-r repeat backwards&lt;br /&gt;M-x query-replace-regexp search and replace&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Window-Commands&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-x 2 split window vertically&lt;br /&gt;C-x o change to other window&lt;br /&gt;C-x 0 delete window&lt;br /&gt;C-x 1 close all windows except the one the cursors in&lt;br /&gt;C-x ^ enlarge window&lt;br /&gt;M-x shrink-window command says it ;-)&lt;br /&gt;M C-v scroll other window&lt;br /&gt;C-x 4 f find file in other window&lt;br /&gt;C-x 4 o change to other window&lt;br /&gt;C-x 4 0 kill buffer and window&lt;br /&gt;C-x 5 2 make new frame&lt;br /&gt;C-x 5 f find file in other frame&lt;br /&gt;C-x 5 o change to other frame&lt;br /&gt;C-x 5 0 close this frame&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Bookmark commands&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-x r m set a bookmark at current cursor pos&lt;br /&gt;C-x r b jump to bookmark&lt;br /&gt;M-x bookmark-rename says it&lt;br /&gt;M-x bookmark-delete "&lt;br /&gt;M-x bookmark-save "&lt;br /&gt;C-x r l list bookmarks&lt;br /&gt;&lt;br /&gt;    d mark bookmark for deletion&lt;br /&gt;    r rename bookmark&lt;br /&gt;    s save all listed bookmarks&lt;br /&gt;    f show bookmark the cursor is over&lt;br /&gt;    m mark bookmarks to be shown in multiple window&lt;br /&gt;    v show marked bookmarks (or the one the cursor is over)&lt;br /&gt;    t toggle listing of the corresponding paths&lt;br /&gt;    w " path to this file&lt;br /&gt;    x delete marked bookmarks&lt;br /&gt;    Del ?&lt;br /&gt;    q quit bookmark list&lt;br /&gt;&lt;br /&gt;M-x bookmark-write write all bookmarks in given file&lt;br /&gt;M-x bookmark-load load bookmark from given file&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Shell&lt;/span&gt;&lt;br /&gt;&lt;code&gt;M-x shell starts shell modus&lt;br /&gt;C-c C-c same as C-c under unix (stop running job)&lt;br /&gt;C-d delete char forward&lt;br /&gt;C-c C-d Send EOF&lt;br /&gt;C-c C-z suspend job (C-z under unix)&lt;br /&gt;M-p show previous commands&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DIRectory EDitor (dired)&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-x d start up dired&lt;br /&gt;C (large C) copy&lt;br /&gt;d mark for erase&lt;br /&gt;D delete right away&lt;br /&gt;e or f open file or directory&lt;br /&gt;g reread directory structure from file&lt;br /&gt;G change group permissions (chgrp)&lt;br /&gt;k delete line from listing on screen (don't actually delete)&lt;br /&gt;m mark with *&lt;br /&gt;n move to next line&lt;br /&gt;o open file in other window and go there&lt;br /&gt;C-o open file in other window but don't change there&lt;br /&gt;P print file&lt;br /&gt;q quit dired&lt;br /&gt;Q do query-replace in marked files&lt;br /&gt;R rename file&lt;br /&gt;u remove mark&lt;br /&gt;v view file content&lt;br /&gt;x delete files marked with D&lt;br /&gt;z compress file&lt;br /&gt;M-Del remove all marks (whatever kind)&lt;br /&gt;~ mark backup files (name~ files) for deletion&lt;br /&gt;# mark auto-save files (#name#) for deletion&lt;br /&gt;*/ mark directory with * (C-u * removes that mark again)&lt;br /&gt;= compare this file with marked file&lt;br /&gt;M-= compare this file with it's backup file&lt;br /&gt;! apply shell command to this file&lt;br /&gt;M-} change to the next file marked with * od D&lt;br /&gt;M-{ " previous "&lt;br /&gt;% d mark files described through regular expression for deletion&lt;br /&gt;% m " (with *)&lt;br /&gt;+ create directory&lt;br /&gt;&gt; changed to next dir&lt;br /&gt;&lt; change to previous dir&lt;br /&gt;s toggle between sorting by name or date&lt;br /&gt;M-x speedbar starts up a separate window with a directory view&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Telnet&lt;/span&gt;&lt;br /&gt;&lt;code&gt;M-x telnet starts up telnet-modus&lt;br /&gt;C-d either delete char or send EOF&lt;br /&gt;C-c C-c stop running job (similar to C-c under unix)&lt;br /&gt;C-c C-d send EOF&lt;br /&gt;C-c C-o clear output of last command&lt;br /&gt;C-c C-z suspend execution of command&lt;br /&gt;C-c C-u kill line backwards&lt;br /&gt;M-p recall previous command&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Text&lt;/span&gt;&lt;br /&gt;Works only in text mode&lt;br /&gt;&lt;code&gt;M-s center line&lt;br /&gt;M-S center paragraph&lt;br /&gt;M-x center-region name says&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Macro-commands&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-x ( start macro definition&lt;br /&gt;C-x ) end of macro definition&lt;br /&gt;C-x e execute last definied macro&lt;br /&gt;M-n C-x e execute last defined macro n times&lt;br /&gt;M-x name-last-kbd-macro give name to macro (for saving)&lt;br /&gt;M-x insert-keyboard-macro save named macro into file&lt;br /&gt;M-x load-file load macro&lt;br /&gt;M-x macroname execute macroname&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Programming&lt;/span&gt;&lt;br /&gt;&lt;code&gt;M C-\ indent region between cursor and mark&lt;br /&gt;M-m move to first (non-space) char in this line&lt;br /&gt;M-^ attach this line to previous&lt;br /&gt;M-; formatize and indent comment&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;C, C++ and Java Modes&lt;/span&gt;&lt;br /&gt;&lt;code&gt;M-a beginning of statement&lt;br /&gt;M-e end of statement&lt;br /&gt;M C-a beginning of function&lt;br /&gt;M C-e end of function&lt;br /&gt;C-c RETURN Set cursor to beginning of function and mark at the end&lt;br /&gt;C-c C-q indent the whole function according to indention style&lt;br /&gt;C-c C-a toggle modus in which after electric signs (like {}:';./*) emacs does the indention&lt;br /&gt;C-c C-d toggle auto hungry mode in which emacs deletes groups of spaces with one del-press&lt;br /&gt;C-c C-u go to beginning of this preprocessor statement&lt;br /&gt;C-c C-c comment out marked area&lt;br /&gt;M-x outline-minor-mode collapses function definitions in a file to a mere {...}&lt;br /&gt;M-x show-subtree If you are in one of the collapsed functions, this un-collapses it &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In order to achive some of the feats coming up now you have to run etags *.c *.h *.cpp (or what ever ending you source files have) in the source directory&lt;br /&gt;&lt;br /&gt;&lt;code&gt;M-. (Thats Meta dot) If you are in a function call, this will take you to it's definition&lt;br /&gt;M-x tags-search ENTER Searches through all you etaged&lt;br /&gt;M-, (Meta comma) jumps to the next occurence for tags-search&lt;br /&gt;M-x tags-query-replace yum. This lets you replace some text in all the tagged files&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;GDB (Debugger)&lt;/span&gt;&lt;br /&gt;&lt;code&gt;M-x gdb starts up gdm in an extra window&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Version Control&lt;/span&gt;&lt;br /&gt;&lt;code&gt;C-x v d show all registered files in this dir&lt;br /&gt;C-x v = show diff between versions&lt;br /&gt;C-x v u remove all changes since last checkin&lt;br /&gt;C-x v ~ show certain version in different window&lt;br /&gt;C-x v l print log&lt;br /&gt;C-x v i mark file for version control add&lt;br /&gt;C-x v h insert version control header into file&lt;br /&gt;C-x v r check out named snapshot&lt;br /&gt;C-x v s create named snapshot&lt;br /&gt;C-x v a create changelog file in gnu-style&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(Reference: http://lpn.rnbhq.org/tools/xemacs/emacs_ref.html)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7263358174543520322?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7263358174543520322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7263358174543520322&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7263358174543520322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7263358174543520322'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/emacs-command-list.html' title='Emacs command list'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8233014226558964655</id><published>2009-05-17T17:21:00.003-04:00</published><updated>2009-05-22T15:34:09.633-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mount'/><category scheme='http://www.blogger.com/atom/ns#' term='ISO'/><title type='text'>Mounting an ISO</title><content type='html'>&lt;code&gt; sudo mount -t iso9660 -o loop /path/to/the/iso /folder/to/mount/into &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In case you are getting errors like &lt;code&gt;ISOFS: Unable to identify CD-ROM format.&lt;/code&gt;, do a &lt;code&gt; file /path/to/the/iso&lt;/code&gt; and confirm that the file that you think is an ISO, actually is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8233014226558964655?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8233014226558964655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8233014226558964655&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8233014226558964655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8233014226558964655'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/mounting-iso.html' title='Mounting an ISO'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2998179279184889007</id><published>2009-05-17T17:10:00.003-04:00</published><updated>2009-05-17T17:21:26.238-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCP'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='SFTP'/><title type='text'>Using ssh, scp, sftp</title><content type='html'>&lt;span style="font-weight:bold;"&gt;SSH&lt;/span&gt;&lt;br /&gt;The server node should be running the SSH server&lt;br /&gt;&lt;br /&gt;&lt;code&gt; sudo aptitude install openssh-server&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Connect to the server&lt;br /&gt;&lt;br /&gt;&lt;code&gt; ssh username@ipaddress:port&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Connect to the server with X enabled &lt;br /&gt;&lt;br /&gt;&lt;code&gt; ssh username@ipaddress:port&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note: specify port only if the default 22 is not being used.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SCP&lt;/span&gt;&lt;br /&gt;scp can be used to transfer the files between the nodes (works on top of SSH)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;From remote node to local node&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cd local_folder &lt;br&gt; scp username@ipaddress:port:/home/username/path/to/folder_file . &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;From local node to remote node&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt; scp /path/to/local/folder_file username@ipaddress:port:/home/username/path &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SFTP&lt;/span&gt;&lt;br /&gt;If you have a luxury of a GUI, you can copy using sftp.&lt;br /&gt;&lt;br /&gt;Open nautilus (if using Gnome) and type in the location bar the address to the server.&lt;br /&gt;&lt;br /&gt;&lt;code&gt; nautilus --no-dektop --browser &lt;br&gt; Location Bar: sftp://username@ipaddress:port/home/username&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Although you can go to the &lt;code&gt;root&lt;/code&gt; folder as well, but is not a good practice to screw around in that area&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2998179279184889007?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2998179279184889007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2998179279184889007&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2998179279184889007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2998179279184889007'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/05/using-ssh-scp-sftp.html' title='Using ssh, scp, sftp'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1562904399969459689</id><published>2009-01-29T15:13:00.007-05:00</published><updated>2009-01-30T09:43:09.890-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Getting the VPN to work</title><content type='html'>&lt;span style="font-weight:bold;"&gt;&lt;font color="red"&gt;Update: Doesn't work&lt;/font&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;-+-&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;After connecting to the VPN server, can't access the sites. Need to add stuff to the routing table. Wrote the bash script for that:&lt;br /&gt;&lt;br /&gt;Soon after getting connected on VPN, do &lt;code&gt;ifconfig&lt;/code&gt;, get the IP address associated to the ppp0 (p-t-p), specify your local router gateway and the interface you are connected through (wireless or wired) and fire the script!&lt;br /&gt;&lt;br /&gt;&lt;code&gt; #!bin/sh&lt;br /&gt;# Check for command line&lt;br /&gt;if [ -z "$1" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;echo "usage: ./vpn.sh [p-t-p] [GW] [Interface]"&lt;br /&gt;&amp;nbsp;&amp;nbsp;exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -z "$2" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;echo "usage: ./vpn.sh [p-t-p] [GW] [Interface]"&lt;br /&gt;&amp;nbsp;&amp;nbsp;exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;if [ -z "$3" ]; then&lt;br /&gt;&amp;nbsp;&amp;nbsp;echo "usage: ./vpn.sh [p-t-p] [GW] [Interface]"&lt;br /&gt;&amp;nbsp;&amp;nbsp;exit&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;VPN_REMOTE_IP=$1 &lt;br /&gt;ALLTARGET="198.82.0.0/16" # All class C addresses&lt;br /&gt;GATEWAY=$2&lt;br /&gt;INTERFACE=$3 #eth0 or eth1&lt;br /&gt;&lt;br /&gt;# change!&lt;br /&gt;route add -host $VPN_REMOTE_IP gw $GATEWAY dev $INTERFACE&lt;br /&gt;route add -net $ALLTARGET dev ppp0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Run this script as sudo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1562904399969459689?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1562904399969459689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1562904399969459689&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1562904399969459689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1562904399969459689'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/getting-vpn-to-work.html' title='Getting the VPN to work'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-4416340660983345020</id><published>2009-01-27T18:54:00.007-05:00</published><updated>2009-01-29T15:31:19.422-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VNC'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='X server'/><title type='text'>Using VNC over SSH</title><content type='html'>Okay, now I need to connect to this Linux box in the department which is running Matlab and access it on the wire. &lt;br /&gt;&lt;br /&gt;Options:&lt;br /&gt;&lt;br /&gt;1. SSH + X11 forwarding [slow]&lt;br /&gt;&lt;br /&gt;&lt;code&gt;% ssh -X username@hostname&lt;br /&gt;% matlab &amp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In order to have SSH forward X11 by default change the following in &lt;code&gt;/etc/ssh/ssh_config&lt;/code&gt; and also remove the &lt;code&gt;#&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;ForwardAgent yes (default no)&lt;br /&gt;ForwardX11 yes (default is no)&lt;br /&gt;StrictHostKeyChecking no (default is ask)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this you can now use&lt;br /&gt;&lt;br /&gt;&lt;code&gt; ssh username@hostname&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. VNC without SSH. [fast]&lt;br /&gt;&lt;code&gt;% vncviewer hostname:display&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. VNC tunneling over SSH [faster]&lt;br /&gt;&lt;code&gt;% ssh -C -L 5901/localhost/5901 username@hostname&lt;br /&gt;% vncviewer localhost:5901&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ensure that &lt;code&gt;vncserver&lt;/code&gt; is running on the remote node and also that you have set your &lt;code&gt;vncpasswd&lt;/code&gt;. The "display" is the number that you get after starting the &lt;code&gt;vncserver&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NOTE&lt;/span&gt;: &lt;br /&gt;If you are running compiz\beryl (any composite window manager), Matlab's pre-bundled java does not support it and hence it would not render it properly with option (1). You would have to point to the latest version of the JVM before starting matlab&lt;br /&gt;&lt;br /&gt;&lt;code&gt; % export MATLAB_JAVA=/usr/lib/java/blah-blah/jre&lt;br /&gt;% matlab &amp; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt;&lt;br /&gt;Got a local copy of Matlab and realized that it has the same problem and is solved by pointing to the latest JVM. Create a launcher that takes care of setting up the environment before the launch.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;env MATLAB_JAVA="/usr/lib/jvm/java-6-sun/jre" xterm "/home/piyush/matlab-2007b/bin/matlab"&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-4416340660983345020?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/4416340660983345020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=4416340660983345020&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4416340660983345020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4416340660983345020'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/using-vnc-over-ssh.html' title='Using VNC over SSH'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7642178839582875757</id><published>2009-01-15T12:49:00.001-05:00</published><updated>2009-01-15T12:50:57.232-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><title type='text'>Using goto is not evil.</title><content type='html'>In fact I find it a much better way of handling exceptions in C as compared to that fucked up if-else nesting that I did for that protocol stack!&lt;br /&gt;&lt;br /&gt;Read &lt;a href="http://kerneltrap.org/node/553/2131"&gt;this&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7642178839582875757?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7642178839582875757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7642178839582875757&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7642178839582875757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7642178839582875757'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/using-goto-is-not-evil.html' title='Using goto is not evil.'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-4822194896179788958</id><published>2009-01-12T21:27:00.004-05:00</published><updated>2009-06-02T07:46:46.757-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Block copy and paste in emacs</title><content type='html'>1. Select the block that you need to cut or copy&lt;br /&gt;&lt;br /&gt;Mark set with &lt;code&gt;[control]+[spacebar]&lt;/code&gt;. Then move down the cursor to which you need to copy\cut. OR, &lt;code&gt;[control]+[spacebar]+[spacebar]&lt;/code&gt; and page down to the desired block in one shot!&lt;br /&gt;&lt;br /&gt;2. Copy using &lt;code&gt;[alt]+[w]&lt;/code&gt;, OR Cut using &lt;code&gt;[control]+[w]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Then go to the line\buffer where you want to paste\yank using &lt;code&gt;[control]+[y]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-4822194896179788958?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/4822194896179788958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=4822194896179788958&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4822194896179788958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/4822194896179788958'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/block-copy-and-paste-in-emacs.html' title='Block copy and paste in emacs'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1960863807913036181</id><published>2009-01-02T19:04:00.005-05:00</published><updated>2009-06-02T07:48:25.657-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='initrd'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>Viewing the initrd image</title><content type='html'>&lt;code&gt;initrd&lt;/code&gt; is a RAM disk file image of the kernel used at the time of boot. On Ubuntu it is created using &lt;code&gt;mkinitramfs&lt;/code&gt; or &lt;code&gt;update-initramfs&lt;/code&gt; commands when a new kernel is installed. This image is a gunzip\cpio archive.&lt;br /&gt;&lt;br /&gt;To see the contents do the following&lt;br /&gt;&lt;br /&gt;1. Copy the initrd image which you want to open into a directory somewhere &lt;code&gt;/home/node/temp&lt;/code&gt;. Let's say it is &lt;code&gt;initrd-2.6.24-generic&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. Do the following now:&lt;br /&gt;&lt;br /&gt;&lt;code&gt; cat initrd-2.6.24-generic | gunzip | cpio -ivdm &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;OR,&lt;br /&gt;&lt;br /&gt;&lt;code&gt; bzcat initrd-2.6.24-generic | cpio -ivdm &lt;/code&gt;&lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1960863807913036181?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1960863807913036181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1960863807913036181&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1960863807913036181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1960863807913036181'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/viewing-initrd-image.html' title='Viewing the initrd image'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-720112121628637325</id><published>2009-01-01T18:13:00.005-05:00</published><updated>2009-01-03T12:41:25.500-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>your own system call in 5 easy steps</title><content type='html'>You *might* want to write your system call for various reasons&lt;br /&gt;&lt;br /&gt;Assuming the path to your kernel source is "L". Create a new folder L/mysyscall. Inside the folder create the source file mysyscall.c and a Makefile&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 1. Changing the System Table&lt;/span&gt;&lt;br /&gt;&lt;code&gt;L/arch/x86/kernel/syscall_table_32.S&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Add your system call at the end of the file.&lt;br /&gt;&lt;br /&gt;&lt;code&gt; .long sys_new_system_call &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 2. Changing the unistd.h&lt;/span&gt;&lt;br /&gt;&lt;code&gt;L/linux/include/asm-x86/unistd_32.h&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Add your system call at the end of the existing list and append the next number&lt;br /&gt;&lt;br /&gt;&lt;code&gt; #define __NR_new_system_call XXX &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Where XXX is the existing system call number plus 1. Also update the total system calls (as you just added another)&lt;br /&gt;&lt;code&gt; #define __NR_syscalls XXY&lt;/code&gt;&lt;br /&gt;Where XXY is XXX+1&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 3: Changing syscalls.h&lt;/span&gt;&lt;br /&gt;&lt;code&gt;L/include/linux/syscalls.h&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Add the declaration of your system call at the end.&lt;br /&gt;&lt;code&gt; asmlinkage long new_system_call (whatever params you want to pass) &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 4: Changing the kernel Makefile&lt;/span&gt;&lt;br /&gt;Add the new folder to the kernel compile&lt;br /&gt;&lt;br /&gt;&lt;code&gt; core-y += /kernel /blah /blah /blah &lt;span style="font-weight:bold;"&gt;/mysyscall&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Step 5: Write your system call&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Write whatever crap you want to write inside the mysyscall.c file&lt;br /&gt;&lt;br /&gt;&lt;code&gt; asmlinkage long new_system_call (whatever params you want to pass)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;// whatever you want to do&lt;br /&gt;} &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Change the makefile as well and add the following line&lt;br /&gt;&lt;br /&gt;&lt;code&gt; obj-y := mysyscall.o &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Compile your kernel and test the system call from a user level program. You can create a header file that the user space program can use. &lt;br /&gt;&lt;br /&gt;&lt;code&gt; /* header.h */&lt;br /&gt;#include &lt; linux/unistd.h &gt;&lt;br /&gt;#define __NR_new_system_call XXX&lt;br /&gt;&lt;br /&gt;/* if you system call returns int and takes no parameter&lt;br /&gt; * use this macro&lt;br /&gt; */&lt;br /&gt;_syscall0(int,new_system_call)&lt;br /&gt;&lt;br /&gt;/* Otherwise, depending on the number of parameters&lt;br /&gt; * being passed use the _syscallN macro, N being the no&lt;br /&gt; * of params, like&lt;br /&gt;_syscall1(int, new_system_call, int) &lt;/code&gt;&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;Last thing to do is to test the code:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;  /* test client */&lt;br /&gt;#include "header.h"&lt;br /&gt;&lt;br /&gt;int main (void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;printf ("System call returned %d \n", new_system_call());&lt;br /&gt;&amp;nbsp;&amp;nbsp;return 1;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NOTE&lt;/span&gt;&lt;br /&gt;Starting around kernel 2.6.18, the &lt;code&gt;_syscallXX&lt;/code&gt; macros were removed from header files supplied to user space. Instead we need to use &lt;code&gt;syscall()&lt;/code&gt; function.&lt;br /&gt;&lt;br /&gt;&lt;code&gt; printf ("System call returned %d \n", syscall (__NR_new_system_call, params_if_any));&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;or, make the following changes in the header.h&lt;br /&gt;&lt;br /&gt;&lt;code&gt; /* header.h */&lt;br /&gt;#include &lt; linux/unistd.h &gt;&lt;br /&gt;#include &lt; sys/syscall.h &gt;&lt;br /&gt;#define __NR_new_system_call XXX&lt;br /&gt;&lt;br /&gt;long new_system_call (params_if_any)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return syscall (__NR_new_system_call, params_if_any);&lt;br /&gt;} &lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-720112121628637325?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/720112121628637325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=720112121628637325&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/720112121628637325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/720112121628637325'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/your-own-system-call-in-5-easy-steps.html' title='your own system call in 5 easy steps'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8415879462413748390</id><published>2008-12-31T16:58:00.012-05:00</published><updated>2009-08-24T12:31:44.627-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='initrd'/><category scheme='http://www.blogger.com/atom/ns#' term='GCC'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Kernel compile notes</title><content type='html'>NOTE: The upstream (git) kernel *sometimes* does not compile with gcc-4.x. Install gcc-3.4 and change /usr/bin/gcc (which links to gcc-4.x) to point to gcc-3.4 instead.&lt;br /&gt;&lt;br /&gt;Compile using make-kpkg on Debian. Kernel compiles as a .deb (initrd image + modules) and can be directly installed using &lt;code&gt;dpkg -i&lt;/code&gt;. (&lt;a href="http://newbiedoc.sourceforge.net/system/kernel-pkg.html#BUILD-KERNEL-PKG"&gt;Steps&lt;/a&gt;, &lt;a href="https://wiki.ubuntu.com/KernelTeam/GitKernelBuild"&gt;UbuntuWiki&lt;/a&gt;). The problem with make-kpkg is that every time you make a change to the kernel code it recompiles everything from scratch, which is a pain in the neck! To avoid that, it is better to compile the kernel from scratch and not use jazzy distro scripts&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The old fashioned way&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Go to the kernel directory (say, kernel_dir) and edit the Makefile to specify the &lt;code&gt;EXTRAVERSION&lt;/code&gt;. (This is what &lt;code&gt;--append-to-version&lt;/code&gt; does in &lt;code&gt;make-kpkg&lt;/code&gt;). It is good to do this as it helps to identify your kernel from the rest.&lt;br /&gt;&lt;br /&gt;2. Configure the kernel&lt;br /&gt;&lt;code&gt;make menuconfig&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you do not know where to start for, use&lt;br /&gt;&lt;code&gt; make defconfig&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This creates a default configuration for i386. You can then confirm the configuration with &lt;br /&gt;&lt;code&gt; make menuconfig&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;[OLD]It might be useful to run (not required) &lt;br /&gt;&lt;code&gt;make oldconfig&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3. Compile the kernel and modules&lt;br /&gt;&lt;code&gt;make bzImage&lt;br /&gt;make modules &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In the 2.6+ kernel, you can just do the following instead&lt;br /&gt;&lt;br /&gt;&lt;code&gt;make -j N&lt;/code&gt;, where N is the number of parallel compilation tasks you want to kick in for a faster compile. (N = 2,4,...)&lt;br /&gt;&lt;br /&gt;TIP: If you have already compiled and installed the kernel once and later made changes ONLY to the kernel, doing a &lt;code&gt;make&lt;/code&gt; would build the modules too. To avoid that do&lt;br /&gt;&lt;br /&gt;&lt;code&gt; make bzImage&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;TIP: To reduce the compilation noise you can forward the output of make to &lt;code&gt;/dev/null&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;4. Install the modules in &lt;code&gt;/lib/modules&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt; sudo make modules_install &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Confirm that &lt;code&gt;/lib/modules/&lt;/code&gt; has the modules corresponding to your kernel version.&lt;br /&gt;&lt;br /&gt;5. Copy the kernel image binaries to &lt;code&gt;/boot&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Lets say that the kernel version (along with the EXTRAVERSION) is 2.6.24-custom.010209&lt;br /&gt;&lt;br /&gt;&lt;code&gt; cd kernel_dir&lt;br /&gt;sudo mv arch/i386/boot/bzImage /boot/vmlinuz-2.6.24-custom.010209&lt;br /&gt;sudo mv .config /boot/config-2.6.24-custom.010209&lt;br /&gt;sudo mv  System.map /boot/System.map-2.6.24-custom.010209&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;6. Create the RAM Disk image (initrd).&lt;br /&gt;&lt;br /&gt;In Ubuntu the &lt;code&gt;mkinitrd&lt;/code&gt; is no longer supported. Instead &lt;code&gt;mkinitramfs&lt;/code&gt; is used.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;update-initramfs -c -k 2.6.24-custom.010209 # your kernel version &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that update-initramfs looks at &lt;code&gt;/lib/module&lt;/code&gt; for the kernel version. Make sure that you have installed the modules in step 4.&lt;br /&gt;&lt;br /&gt;The initrd file &lt;code&gt;initrd-2.6.24-custom.010209&lt;/code&gt; would be created in &lt;code&gt;/boot&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;NOTE: Usually the following are selected by default at the time of kernel configuration. If these are not set, you might get a kernel panic while booting.&lt;br /&gt;&lt;code&gt; CONFIG_BLK_DEV_RAM=y&lt;br /&gt;CONFIG_BLK_DEV_INITRD=y&lt;br /&gt;CONFIG_CRAMFS=y &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;7. Last step is to update grub&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo update-grub &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Check in &lt;code&gt;/boot/grub/menu.lst&lt;/code&gt; and confirm.&lt;br /&gt;&lt;br /&gt;8. Reboot, and select your kernel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8415879462413748390?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8415879462413748390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8415879462413748390&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8415879462413748390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8415879462413748390'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/kernel-compile-notes.html' title='Kernel compile notes'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-1502736204063922924</id><published>2008-12-31T16:51:00.002-05:00</published><updated>2008-12-31T16:57:45.213-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sound'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Getting the front-mic to work</title><content type='html'>Weird problem. By default the front-mic does not work on my laptop. In order to get it to work, there is some magic that needs to be done with the ALSA Mixer.&lt;br /&gt;&lt;br /&gt;1. Open Alsa mixer, select Input source as "Front Mic". Close Alsa mixer&lt;br /&gt;2. Now open Alsa mixer again and now select the Input source  as "Mic". Close Alsa mixer.&lt;br /&gt;3. The front mic starts working again! (Need to find the real fucking reason behind this)&lt;br /&gt;&lt;br /&gt;(confirmed: &lt;a href="https://answers.launchpad.net/ubuntu/+source/gnome-media/+question/17991"&gt;link&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-1502736204063922924?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/1502736204063922924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=1502736204063922924&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1502736204063922924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/1502736204063922924'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2009/01/getting-front-mic-to-work.html' title='Getting the front-mic to work'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7096710374291867729</id><published>2008-12-25T22:16:00.004-05:00</published><updated>2008-12-25T22:20:23.469-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><title type='text'>Linux system calls</title><content type='html'>1. How to implement my own system call in kernel 2.6 -&gt; &lt;a href="http://www.tldp.org/HOWTO/html_single/Implement-Sys-Call-Linux-2.6-i386/"&gt;here&lt;/a&gt;&lt;br /&gt;2. IBM developerWorks "Kernel command using Linux system calls" -&gt; &lt;a href="http://www.ibm.com/developerworks/linux/library/l-system-calls/"&gt;here&lt;/a&gt;&lt;br /&gt;3. Linux system call table -&gt; &lt;a href="http://docs.cs.up.ac.za/programming/asm/derick_tut/syscalls.html"&gt;here&lt;/a&gt; &lt;br /&gt;4. How system call works on Linux/i386 -&gt; &lt;a href="http://www.tldp.org/LDP/khg/HyperNews/get/syscall/syscall86.html"&gt;here&lt;/a&gt;&lt;br /&gt;5. syscalls() man page -&gt; &lt;a href="http://linux.die.net/man/2/syscalls"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7096710374291867729?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7096710374291867729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7096710374291867729&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7096710374291867729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7096710374291867729'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/12/linux-system-calls.html' title='Linux system calls'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2713633783224482585</id><published>2008-12-24T22:48:00.003-05:00</published><updated>2008-12-24T22:56:18.713-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNOME'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Pandora as an application on Gnome using firefox</title><content type='html'>Firefox supports multiple profiles. You can create a dedicated profile for Pandora.&lt;br /&gt;&lt;br /&gt;1. Close firefox and start it from the command prompt using&lt;br /&gt;&lt;br /&gt;&lt;code&gt;firefox -no-remote -ProfileManager&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2. Create a new profile and call it Pandora&lt;br /&gt;&lt;br /&gt;3. Customize the profile. Install the add-on "Compact Menu 2" and remove all the toolbars.&lt;br /&gt;&lt;br /&gt;4. Make pandora.com the home page.&lt;br /&gt;&lt;br /&gt;5. ProfileManager makes the last profile as default. Start profile manager again and select the "default" profile so that it opens your actual profile.&lt;br /&gt;&lt;br /&gt;6. You can create a GNOME launcher now and give the following command&lt;br /&gt;&lt;br /&gt;&lt;code&gt;firefox -no-remote -P Pandora&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;7. Go to menu edit and add this under (say) "Sound &amp; Video"&lt;br /&gt;&lt;br /&gt;8. Search google images and get a PNG or SVG image for Pandora.&lt;br /&gt;&lt;br /&gt;9. If you are using Avante-window-manager (AWM) you can add this to your launcher.&lt;br /&gt;&lt;br /&gt;10. Enjoy the music!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2713633783224482585?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2713633783224482585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2713633783224482585&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2713633783224482585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2713633783224482585'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/12/pandora-as-application-on-gnome-using.html' title='Pandora as an application on Gnome using firefox'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8068441031363433896</id><published>2008-12-24T09:55:00.004-05:00</published><updated>2008-12-24T09:59:44.037-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Convert Firefox into Chrome in 4 simple steps</title><content type='html'>1. Install the following Add-ons : Compact Menu 2, Download Satusbar, Stylish&lt;br /&gt;2. Install the following theme : Chromifox&lt;br /&gt;3. Install the following styles using Stylish: Back/Forward drop-down, Tab bar on top&lt;br /&gt;4. Right click on the menubar, hide it and click on customize. Add compact menu on the right side along with the the new tab button.&lt;br /&gt;&lt;br /&gt;Restart Firefox. Bingo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8068441031363433896?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8068441031363433896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8068441031363433896&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8068441031363433896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8068441031363433896'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/12/convert-firefox-into-chrome-in-4-simple.html' title='Convert Firefox into Chrome in 4 simple steps'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8805944821393658175</id><published>2008-11-20T13:05:00.005-05:00</published><updated>2008-12-24T22:58:06.930-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>FAQs</title><content type='html'>comp.lang.c FAQ on C &lt;a href="http://c-faq.com/index.html"&gt;here&lt;/a&gt;.&lt;br /&gt;C++ FAQ LITE &lt;a href="http://www.parashift.com/c++-faq-lite/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8805944821393658175?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8805944821393658175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8805944821393658175&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8805944821393658175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8805944821393658175'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/11/faqs.html' title='FAQs'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-592788035026020195</id><published>2008-11-13T09:59:00.001-05:00</published><updated>2008-11-13T10:00:10.141-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Makefile'/><title type='text'>Debugging Makefiles</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a target='_blank' href='http://www-128.ibm.com/developerworks/library/l-debugmake.html'&gt;Read&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-592788035026020195?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/592788035026020195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=592788035026020195&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/592788035026020195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/592788035026020195'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/11/debugging-makefiles.html' title='Debugging Makefiles'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2463509150843482048</id><published>2008-11-13T09:43:00.002-05:00</published><updated>2008-12-24T22:58:34.043-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Programing static and shared libraries</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;a target='_blank' href='http://www.linux.org/docs/ldp/howto/Program-Library-HOWTO/index.html'&gt;Read.&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2463509150843482048?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2463509150843482048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2463509150843482048&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2463509150843482048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2463509150843482048'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/11/programing-static-and-shared-libraries.html' title='Programing static and shared libraries'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7417763224402965587</id><published>2008-10-13T12:43:00.002-04:00</published><updated>2009-06-01T14:24:18.456-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='Makefile'/><title type='text'>Bash programming</title><content type='html'>Helpful in Makefile and making scripts. Click &lt;a href="http://www.faqs.org/docs/Linux-HOWTO/Bash-Prog-Intro-HOWTO.html"&gt;here&lt;/a&gt; &lt;br /&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7417763224402965587?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7417763224402965587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7417763224402965587&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7417763224402965587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7417763224402965587'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/10/bash-programming.html' title='Bash programming'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-8871145517387493472</id><published>2008-10-13T12:08:00.000-04:00</published><updated>2008-10-13T12:09:30.803-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Makefile'/><title type='text'>Makefile tutorial</title><content type='html'>&lt;a href="http://www.eng.hawaii.edu/Tutor/Make/index.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-8871145517387493472?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/8871145517387493472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=8871145517387493472&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8871145517387493472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/8871145517387493472'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/10/makefile-tutorial.html' title='Makefile tutorial'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2371424633567041904</id><published>2008-10-07T11:46:00.003-04:00</published><updated>2008-10-07T11:51:04.547-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wacom'/><category scheme='http://www.blogger.com/atom/ns#' term='Bamboo'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Getting Bamboo to work on Ubuntu</title><content type='html'>Wacom is very well supported on Linux but to make it to work with all the features you need to build the driver.&lt;br /&gt;&lt;br /&gt;Ubuntu's Wacom wiki page has all the details .. &lt;a href="https://help.ubuntu.com/community/Wacom"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just to reiterate the steps .. &lt;a href="http://ubuntuforums.org/showthread.php?t=765915"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dklevine.com/general/software/tc1000/jarnal.htm"&gt;Jarnal&lt;/a&gt; is a good application that you can use for taking notes. Apart from that inkscape and GIMP can be used for drawing\sketching.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2371424633567041904?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2371424633567041904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2371424633567041904&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2371424633567041904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2371424633567041904'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/10/getting-bamboo-to-work-on-ubuntu.html' title='Getting Bamboo to work on Ubuntu'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-7064984864288500521</id><published>2008-09-19T12:20:00.008-04:00</published><updated>2009-06-02T07:50:45.892-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Latex'/><category scheme='http://www.blogger.com/atom/ns#' term='Forumlas'/><title type='text'>Using Latex for formulas</title><content type='html'>&lt;font color="red"&gt;NOTE: This is only if you are using it within OpenOffice&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;All of this translates to the formulas below&lt;br /&gt;&lt;br /&gt;&lt;code&gt;P_total = AC{V^2}f + {%tau}AVI_shortf + VI_leak newline&lt;br /&gt;P_o = C_o {{V_o}^2}f newline&lt;br /&gt;P_n = 0.5 P_o newline&lt;br /&gt;I_leak = K_2 W(V over {T_ox})^2  func e^({{%alpha}T_ox over V}) newline &lt;br /&gt;sum from 0 to 100 (a^2)(b^3)d newline&lt;br /&gt;where,  left lbrace {stack{a, contanst# b, variable # d, dynamic}} right rbrace&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_HZRP1w28NJY/SNPcEZJWEfI/AAAAAAAABd4/k_3BP97hnQA/s1600-h/formulas.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_HZRP1w28NJY/SNPcEZJWEfI/AAAAAAAABd4/k_3BP97hnQA/s400/formulas.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5247779958844428786" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-7064984864288500521?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/7064984864288500521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=7064984864288500521&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7064984864288500521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/7064984864288500521'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/09/using-latex-for-formulas.html' title='Using Latex for formulas'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_HZRP1w28NJY/SNPcEZJWEfI/AAAAAAAABd4/k_3BP97hnQA/s72-c/formulas.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2026380734108717635</id><published>2008-09-19T12:20:00.003-04:00</published><updated>2008-09-19T12:39:19.030-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GNUPlot'/><category scheme='http://www.blogger.com/atom/ns#' term='graphs'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Using GNUPlot</title><content type='html'>One of the most useful applications on Linux if you happen to be creating plots. I have been using it for creating the graphs for the Computer Architecture papers and I found it very very helpful&lt;br /&gt;&lt;br /&gt;GNU plot takes in data in the following format&lt;br /&gt;&lt;br /&gt;10 324.12 12312 56&lt;br /&gt;100 34231.3  2312123 67&lt;br /&gt;&lt;br /&gt;There are three columns here, there can be any number, make sure the date is separated by a space. You can make your program write the date directly in a file, call it whatever you want to "simout.dat"&lt;br /&gt;&lt;br /&gt;# Fire gnuplot&lt;br /&gt;&lt;code&gt; gnuplot&amp;gt &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# draw using the first to columns from the data file&lt;br /&gt;&lt;code&gt; gnuplot&amp;gt plot "simout.dat" using 1:2 &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# draw using the first and second col AND first and third col.&lt;br /&gt;&lt;code&gt; gnuplot&amp;gt plot "simout.dat" using 1:2, "simout.dat" using 1:3 &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;#draw using lines &lt;br /&gt;&lt;code&gt; gnuplot&amp;gt plot "simout.dat" using 1:2 with lines, "simout.dat" using 1:3 with lines &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# draw using points on the lines&lt;br /&gt;&lt;code&gt; gnuplot&amp;gt plot "simout.dat" using 1:2 with linespoint, "simout.dat" using 1:3 with linespoint &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# draw with a legend for the lines&lt;br /&gt;&lt;code&gt; gnuplot&amp;gt plot "simout.dat" using 1:2 with linespoint ti "Marks in CA", "simout.dat" using 1:3 with linespoint ti "Marks in WUC" &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# set title&lt;br /&gt;&lt;code&gt; set title "The title of the plot"&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# set X label&lt;br /&gt;&lt;code&gt; set xlabel "Blocks (N)" &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# Set Y label&lt;br /&gt;&lt;code&gt; set ylabel "Performance [MFlops]" &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# Set x and y Range&lt;br /&gt;&lt;code&gt; set xrange [100:10000]&lt;/code&gt;&lt;br /&gt;&lt;code&gt; set yrange [0:10e6]&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;# Set log scale on X &lt;br /&gt;&lt;code&gt; set logscale x &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There are so many other things that you can do with GNUPlot, which I even don't know as I am still learning how to use it.&lt;br /&gt;&lt;br /&gt;Excellent tutorial &lt;a href="http://t16web.lanl.gov/Kawano/gnuplot/intro/index-e.html"&gt;here&lt;/a&gt; (that is how I got started).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2026380734108717635?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2026380734108717635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2026380734108717635&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2026380734108717635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2026380734108717635'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/09/using-gnuplot.html' title='Using GNUPlot'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-179918481117587203</id><published>2008-09-16T20:39:00.005-04:00</published><updated>2009-07-30T11:08:10.606-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='debootstrap'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Building debain systems using debootstrap</title><content type='html'>Some useful links used while creating the Debian based device&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.debian-administration.org/articles/426"&gt;Installing new Debian Systems using debootstrap&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Dd_(Unix)"&gt;dd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://help.ubuntu.com/6.10/ubuntu/installation-guide/i386/linux-upgrade.html"&gt;Installing Ubuntu from a Linux\Unix System&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Loopback_disk_device"&gt;Loopback Disk Device&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Chroot"&gt;chroot&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.subvs.co.uk/apt-proxy_on_ubuntu"&gt;Using apt-proxy&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://emqbit.com/deboostrap-debian"&gt;Debootstrap tute&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-179918481117587203?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/179918481117587203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=179918481117587203&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/179918481117587203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/179918481117587203'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/09/building-debain-systems-using.html' title='Building debain systems using debootstrap'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-2446813206146953662</id><published>2008-09-02T18:45:00.003-04:00</published><updated>2008-09-02T18:48:22.148-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Using commands recursively with find</title><content type='html'>I copied my home folder to Windows for a backup and when I copied them back for some weird reason all the directories had executables privileges.&lt;br /&gt;&lt;br /&gt;This is what I did to get rid of it recursively&lt;br /&gt;&lt;br /&gt;&lt;code&gt; $ find . -type d -exec chmod 755 {} \; &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;you can pass any command as an argument to -exec. Some useful things that you can do with find are &lt;a href="http://www.wagoneers.com/UNIX/FIND/find-usage.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-2446813206146953662?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/2446813206146953662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=2446813206146953662&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2446813206146953662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/2446813206146953662'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/09/using-commands-recursively-with-find.html' title='Using commands recursively with find'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-6424650104208413667</id><published>2008-08-31T01:54:00.001-04:00</published><updated>2008-08-31T01:55:52.722-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mozilla'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubiquity'/><title type='text'>Ubiquity .. Mozilla Labs</title><content type='html'>&lt;object width="400" height="298"&gt; &lt;param name="allowfullscreen" value="true" /&gt; &lt;param name="allowscriptaccess" value="always" /&gt; &lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1561578&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt; &lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=1561578&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="298"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/1561578?pg=embed&amp;amp;sec=1561578"&gt;Ubiquity for Firefox&lt;/a&gt; from &lt;a href="http://vimeo.com/user532161?pg=embed&amp;amp;sec=1561578"&gt;Aza Raskin&lt;/a&gt; on &lt;a href="http://vimeo.com?pg=embed&amp;amp;sec=1561578"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Web 2.0 at its best. Watch out for Ubiquity&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-6424650104208413667?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/6424650104208413667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=6424650104208413667&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6424650104208413667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/6424650104208413667'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/08/ubiquity-mozilla-labs.html' title='Ubiquity .. Mozilla Labs'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-565658202629296128.post-75436837551365148</id><published>2008-08-30T15:26:00.001-04:00</published><updated>2008-08-30T15:27:49.038-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kernel'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Build a custom kernel</title><content type='html'>&lt;a href="https://help.ubuntu.com/community/Kernel/Compile"&gt;Compiling the ubuntu kernel&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/565658202629296128-75436837551365148?l=linux-digest.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linux-digest.blogspot.com/feeds/75436837551365148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=565658202629296128&amp;postID=75436837551365148&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/75436837551365148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/565658202629296128/posts/default/75436837551365148'/><link rel='alternate' type='text/html' href='http://linux-digest.blogspot.com/2008/08/build-custom-kernel.html' title='Build a custom kernel'/><author><name>Piyush Garyali</name><uri>https://profiles.google.com/107225383835145979905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-BMoJALUmVSs/AAAAAAAAAAI/AAAAAAAAF2o/f9YZjOw8NvI/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
