Saturday, July 28, 2012

Infix to postfix conversion algorithm


This blog has been moved to android.rahulblogs.com
For this post please go to 


http://algo.rahulblogs.com/2012/07/infix-to-postfix-conversion-algorithm/

Tuesday, June 26, 2012

Trek to Thirumaleguppi

Its been a long time since I have been writing a travel blog, and the reason was pretty much because of laziness. So here I am with a new travel blog about my 3rd trekking experience, a place called Thirumaleguppi(apparently it means three peaks) . Although it took me a complete day to remember this name and a whole night, full of bumpy night to reach there, this place worth this trouble.
As you will find Karnataka full of Tourist places specially Natural beauty, sometimes I doubt why people doesn't consider it as a must go travel destination rather than just a IT Hub. Anyways here is my journey details.

Distance : This place is around 300 Kms from Bangalore City Near to Mangalore.

How To reach : you can hire a travel company to arrange the cabs according to your need, or you can take train till Mangalore and can hire cab from there. Once you reach the place, you have to take a Jeep to reach the base camp, as it is around 40 mins ride from the village to base camp.And I must say it is one of the most difficult part of journey, as you will every part of your body shaking specially stomach.


When to Go : I will suggest to go there before heavy rainy season starts which almost be there around July. As this place is surrounded by thick forest too. And slippery place can make your trekking difficult.

What to do : Its a pretty straight forward answer, "do Trekking" :).

How's the trek : Trek is nice and if it is not raining i guess you won't find much problem.  The distance is around 7 Kms one way. And apart from one particular place between peak two and three, it is decent trek.

What to Carry : As water falls is there in between, you may find leeches few places. so I would suggest carry all the necessary items accordingly like knife, salt and specially any spray, it will help you to remove leeches as well as it can be used if you get any strain in your muscles. Apart from these carry raincoat, water bottles and some snacks, as the whole trek will take around 8 hours to complete. Also take care of your shoes, as at the time of getting down, the place is slippery.And yeah if you are planning to stay overnight there please carry the sleeping bag too. Also pack your medicine box with first-aid as well as motion-sickness tablets as road is very bumpy.

Fee : To trek there you have to take the permission of Forest department, they charge around 275 Rs per person. Although as you will take some local guide for trekking, he will arrange it for you, so you don't need to bother. For your reference I am sharing a guide number and name where we stayed, he arrange our breakfast-lunch-dinner as well as the passes and night stay. His name is Satish, and number is 08263-249595 / 9481074530 / 8722847688)

What else : Apart from this, if you want to trek more, you can also go to Kudremukh, it is just adjacent to Thirumaleguppi. One fall is also there which is called as Somavathi Falls, and I must say the water is cold man.

If you are interested to go for other places to trek, I guess you can contact Bangalore Mountaineering Club, those guys organize trekking almost every weekend. I hope this blog will help your preparation for Trekking to Thirumaleguppi.

Keep Enjoying.

Friday, June 15, 2012

OpenGrok : Installation Guide

Hi Guys,
Here is one more useful post for Linux users who use grep to search strings or references in huge code-base.So here it is
Prerequisites :
1. jdk 1.6 + version
2.  tomcat 6 + version
3. exuberant-ctags
I will suggest that become root user (using sudo -s) so that you don’t need to give sudo prefix and then type the password every time you want to run any command. One line command to install all of these :
apt-get install sun-java6-jdk tomcat6 tomcat6-admin exuberant-ctags
4. Download the opengrok-0.8.1 from the site.
Steps:
1. Extract the downloaded package.
2. Create a directory structure like follows
  • mkdir /opengrok
  • mkdir /opengrok/bin(this will contain all lib file and jar file)
  • mkdir /opengrok/data ( this will contain the index data).
3. Go to extracted opengrok directory and run following commnad
  • cp -r run.sh opengrok.jar lib /opengrok/bin
4. Go to /opengrok/bin, open the run.sh file and Edit it in the following way
  • modify SRC_ROOT = /path/to/your/project/directory
  • modify DATA_ROOT = /opengrok/data
  • modify EXUB_CTAGS = /usr/bin/ctags (this is default location for ctags, you can verify with ur system if it doesn’t exist there)
5.  Go to extracted opengrok directory, and create one folder called source
  • mkdir source
  • cd source
  • unzip ../source.war
6. open WEB_INF/web.xml file and add the following code and save it
DATA_ROOT/opengrok/dataREQUIRED: Full path of the directory where data files generated by OpenGrok are stored
SRC_ROOT
//path/to/your/source/directory
REQUIRED: Full path to source tree
SCAN_REPOS
false
Set this variable to true if you would like the web application to scan for external repositories (Mercurial)
Here one more thing you do check for CONFIGURATION tab and in that please check the path of opengrok configuration file. The path should be same as the correct location of that configuration file.
7. Again zip the code
  • cd source
  • zip -r source.war ./
8. Now finally we need to start indexing, so just go to /opengrok/bin folder and give the following command
  • java -Xmx1524m -jar opengrok.jar -W /opengrok/configuration.xml -P -S -v -s  /path/to/your/source/directory  -d /opengrok/data
9.  After indexing completes, you have to modify the admin rights for apache so that you can manage it, So open /etc/tomcat6/tomcat-users.xml and add the following line


10. Now your setup is ready, you just need to deploy the source.war you created earlier. for that follow these steps
  • http://localhost:8080
  • click on manager webapp or directly open the link [http://localhost:8080/manager/html]
  • give username “admin” and password “admin”
  • There is a option in that page called Select War File to upload, there click Browse button and give the path for your source.war file.
  • And finally click on Deploy.
  • After Deploy is complete in List of Application on the same page, you can see /source click on it. And you have just completed the installation. you can see the opengrok home page.
11. If you are getting the permission denied error then add the following code in /etc/tomcat6/policy.d/50local.policy
grant codeBase "file:${catalina.base}/webapps/opengrok/" {
     permission java.security.AllPermission;
}; grant codeBase "file:${catalina.base}/webapps/opengrok/WEB-INF/lib/"; {    permission java.security.AllPermission; };
Thanks for Vincent Liu for his wonderful post which helped me a lot.

Tuesday, March 6, 2012

When to use the workqueue in driver code / What is workqueue

Hey guys,
Here is one more post about kernel, As I am going through Kernel code, I feel this doubt. Theoretically it is assumed that workqueue increased the performance. As you are allowing the interrupt to be enabled. So it means you are ready to handle another interrupt while putting the previous interrupt handler code in workqueue.
But is it a good way to put all the interrupt handler code in the workqueue function, The Answer is NO. Why ? To be part of my belief first you have to understand the basic functionality of workqueue. Linux Kernel developer came with this concept, because they want to reduce the overhead of unnecessary execution of code at the cost of performance(As no other interrupt will be allowed during that time). So what they do is, they divided the functionality in two parts, crucial part and the normal part. With this approach they decided which code should be executed before enabling the interrupt and which part should be executed later.
In summary,what developer should do is, decide the importance of the code in terms of functionality and performance and accordingly put the rest of the Not-so-Crucial part in the work function.
Hope it will help.

Thursday, March 1, 2012

Difference between schedule_work() and queue_work()

Hi Guys,
If you are newbie in Linus Kernel, you may have this doubt that what is the difference between these two methods,basically it is related to the choice that whether you want a dedicated workqueue(which in turn will need dedicated kernel thread) for your driver or you just want to use the default workqueue provided by kernel.
So if you want to control the workfunction in terms of scheduling independently,
you should go for create_workqueue method to create a workqueue. This function will create a workqueue and which in turn will create a seperate Kernel Thread on each and every processor available. Here I would also like to introduce a different version of same method which iscreate_singlethread_workqueue(), you should use this function only when you want to create only a single thread for all the processor.

Monday, February 20, 2012

Android: Push Platform logs in Kernel logs

Hi all,
Its good to write a new post after a long long time. So here I am with a very useful post about the debugging. Sometimes debugging your application could be a problem, when you don’t know whether this issue is because of platform code or kernel code. Specifically I must say, you will feel this scenario when you have to measure some time, and you need to decide whether this is coming from the kernel side or platform side. But as platform and kernel code uses different type of time-stamp, it is almost impossible to debug. So for that there is one command in the adb itself. Here are the steps :
1. Go to adb shell.
2. Type “logcat -f /dev/ksmg
3. just use dmesg or cat /proc/kmsg to see the complete logs.
Here is one prerequisite, your phone should be rooted. otherwise you won’t have permission to the above steps. I hope it will help you.