tag:blogger.com,1999:blog-64124216478063242252024-03-12T05:12:06.365-04:00InnovateKaran Dwivedi's BlogProgrammergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-6412421647806324225.post-28013075176673224742017-02-20T22:55:00.001-05:002017-02-21T00:04:28.375-05:00Install python scapy on MAC OS X Sierra<div dir="ltr" style="text-align: left;" trbidi="on">
Python ships by default with OSX and resides in the path /usr/bin/python. Having run into a lot of problems with installing and using scapy and other packages with the correct version of python, pip and homebrew, I decided to write steps that anyone can follow to setup a clean and working python environment in OSX without running it in a virtual environment.<br />
<br />
Step 0: Check existing python version by the command `<i>which python</i>`. This should yield<br />
<i>$ /usr/bin/python</i><br />
<br />
Step 1: Install homebrew<br />
<i>$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</i><br />
(Reference: https://brew.sh/)<br />
<br />
Step 2: Install python and pip using brew and pypcap using pip:<br />
<i>brew install python</i><br />
<i>pip install pypcap</i><br />
<br />
Step 3: Setup your PATH variable correctly in ~/.bashrc to use the python installed by the above command in /usr/local/bin:<br />
<i>PATH=/usr/local:/usr/local/bin:$PATH</i><br />
(add the above line at the end of your ~/.bashrc or ~/.zshrc, whichever shell you are using)<br />
<br />
Step 4: Force updates to PATH variable by using source:<br />
<i>$ source ~/.bashrc</i><br />
<i><br /></i>
Step 5: At this point, if everything worked correctly, the output of `<i>which python</i>` and `<i>which pip</i>`should yield <i>/usr/local/bin/python </i>and <i>/usr/local/bin/pip </i>respectively<br />
<br />
Step 6: Install scapy<br />
<i>$ pip install scapy</i><br />
<i><br /></i>
Step 7: Run scapy<br />
If you get errors like "INFO: Can't import packageXYZ. ...", see step 8 below to fix dependencies.<br />
<br />
Step 8: Fix Dependencies<br />
i) pyx<br />
(If using python 2.7): $ <i>pip install pyx==0.12.1 -I --no-cache</i><br />
<i>(</i>If using python 3): $ <i>pip install pyx</i><br />
<br />
ii) pycrypto<br />
<i>$ pip install pycrypto</i><br />
<br />
iii) ecdsa lib<br />
$ <i>pip install ecdsa</i><br />
<br />
Step 9: Test scapy again<br />
<i>19:55:35 Karans-MacBook-Pro ~: scapy</i><br />
<i>Welcome to Scapy (2.3.3)</i><br />
<i>>>></i><br />
<br />
The above shows a successful run of scapy with all dependencies correctly installed.<br />
<br /></div>
Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com3tag:blogger.com,1999:blog-6412421647806324225.post-50765066764794317002014-08-24T23:33:00.002-04:002014-08-24T23:36:08.757-04:00Accessing files on android via MTP on Linux<div dir="ltr" style="text-align: left;" trbidi="on">
I recently purchased a <a href="http://www.motorola.com/us/FLEXR1-1/Moto-X/FLEXR1.html" target="_blank">Motorola MotoX</a> from an AT&T store. Although it is a fabulous piece of hardware, the first trouble i encountered was getting access to files on my fedora 19. The internal memory was not being automatically mounted neither via MTP nor PTP. This was a bit frustrating. <br />
<br />
However, the problem can be solved in 15-20 mins with a bunch of yum install commands. One needs to install gMTP and its dependencies which can be found <a href="http://gmtp.sourceforge.net/downloads.html" target="_blank">here</a>. Download the source code and extract it. Run ./configure, make and make install. If you encounter errors like 'Package somename was not found', you need to explicitly install it and re-run ./configure. I personally remember installing at least 5-7 dependencies before i got it working.<br />
<br />
e.g. yum install fuse-devel libid3tag-devel libmtp-devel libmad-devel fuse fuse-libs libmtp simple-mtpfs glib2-devel<br />
<br />
Once done, run gMTP and enable MTP mode on your android phone. You should now see the files listed in the gMTP window as shown below<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ8o1-sYohrn_v1bmHngMGEB8G5dez5k7hnlTHZPpxWdT5hEO6mB1XDPB2JHxE8Q7yBqLC43L0iOSRLtYpwlEQBNa9men-tsJYJkqsg5bY4gj125Qlmh3T0nrEMjSf2jLmZHJihl9ams4/s1600/gmtp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ8o1-sYohrn_v1bmHngMGEB8G5dez5k7hnlTHZPpxWdT5hEO6mB1XDPB2JHxE8Q7yBqLC43L0iOSRLtYpwlEQBNa9men-tsJYJkqsg5bY4gj125Qlmh3T0nrEMjSf2jLmZHJihl9ams4/s1600/gmtp.png" height="179" width="320" /></a></div>
</div>
Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-11743272482359390462014-02-11T11:37:00.003-05:002014-02-12T12:04:16.991-05:00Inmobi Hackathon 2014 : Experience and review<div dir="ltr" style="text-align: left;" trbidi="on">
Last week, i attended <a href="http://www.inmobi.com/" target="_blank">Inmobi's</a> <a href="http://en.wikipedia.org/wiki/Hackathon" target="_blank">hackathon</a> organized at their Bangalore campus. It was dedicated to <a href="http://en.wikipedia.org/wiki/Aaron_Swartz" target="_blank">Aaron Swartz</a>, a brilliant computer scientist who gave up his life while fighting surveillance and for a free and open internet world. Therefore, the hackathon was named as "FreedomHack". It all started the week before when one of my friends called up to discuss an idea which he thought was really worth implementing and wanted to know my opinion. Realizing that it was worth our time, i agreed and we formed a gang of 3 guys who registered to attend the 24 hour hackathon.<br />
<br />
I reached at sharp 9am (yes, it was on Saturday and it is difficult for us engineers to get up early). However, i was excited about our idea and took all the required hardware with me in a back-pack. My team-mates also reached within 10-15 minutes. If i recall correctly, there were around 44-46 teams consisting of 3-4 members each. We were given our ID cards (labeled "Hackers"), were asked to give our notebook's serial number after which we were alloted a big space to work.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX9Br3FE1HNJbqF3UGdcGPW80zaxHekH_oyTzHHrqPeFNXCcos-3_vge_024x9-m-QsMcWdQzlZ_hyphenhyphen7EWiqHx89bXOhRp9rm6vYxOMrGeRzI9qsUbLVJIiY1RE1Rtl3m3eWJ0969VAIRA/s1600/IMG_20140209_074149.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX9Br3FE1HNJbqF3UGdcGPW80zaxHekH_oyTzHHrqPeFNXCcos-3_vge_024x9-m-QsMcWdQzlZ_hyphenhyphen7EWiqHx89bXOhRp9rm6vYxOMrGeRzI9qsUbLVJIiY1RE1Rtl3m3eWJ0969VAIRA/s1600/IMG_20140209_074149.jpg" height="320" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">My ID Card</td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxmzvVgC94SRTUUEV6GCjp7St85Pqo_ORonEUGeJ2_UJt7JU3QbGDa0KCql_Kw2FtkuWjE19a4AE4U_fhfbtMED9WqISMjALtsHRrckuXFGaiNo2hEVHABKjc8-Fb9o8kfpEcTu5nHxow/s1600/IMG_20140209_140137.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxmzvVgC94SRTUUEV6GCjp7St85Pqo_ORonEUGeJ2_UJt7JU3QbGDa0KCql_Kw2FtkuWjE19a4AE4U_fhfbtMED9WqISMjALtsHRrckuXFGaiNo2hEVHABKjc8-Fb9o8kfpEcTu5nHxow/s1600/IMG_20140209_140137.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">My Team(from left): Saurabh, Harshit & Me</td></tr>
</tbody></table>
<br />
We spent the first hour planning our hack on what we really wished to achieve and how we would divide the work among ourselves. Our app was called "Go Green". It had two use-cases:-<br />
<br />
i) Given two points (a departing point and an arrival point, be it any city or location in the world), our application would mark those two points on a map and would display the best path to follow such that the carbon footprint is minimized.<br />
<br />
ii) If one has already traveled in the past and his/her gmail account contains a copy of the ticket (the ticket maybe booked by famous travel websites like makemytrip.com/yatra.com), the application would fetch all travel details from one's email and show them within a single page. Then, if the user selects any of those journeys, the application would again plot the starting and end point of the journey and show the carbon footprint of the trip.<br />
<br />
The basic idea of creating this application was two-fold:-<br />
<br />
i) To make the users more aware of the increasing carbon-dioxide in the atmosphere and how they contribute to it.<br />
<br />
ii) Help users in planning their future trips smartly by suggesting the best path to travel to minimize carbon footprint.<br />
<br />
Furthermore, the application could generate revenue by displaying advertisements suitable to the mode of travel. So for example, if air-travel is involved, advertisements related to offers by airlines can be published. If one travels by road, then bus travel agencies can post their ads and so on.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv0t1JNYgUQBHHM2_MPOJKiwXrzBvqwOMxnuQyHpeoN2vUlXXxnpbbhHSrAKRANyskyzxElYlDmBkEk-yhst_O-mci2KRqZdXqkZQZNF6HBRkovU7_3MTxtJ5O7ObrJsjYyzEUmSrvToI/s1600/IMG_20140209_091308.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv0t1JNYgUQBHHM2_MPOJKiwXrzBvqwOMxnuQyHpeoN2vUlXXxnpbbhHSrAKRANyskyzxElYlDmBkEk-yhst_O-mci2KRqZdXqkZQZNF6HBRkovU7_3MTxtJ5O7ObrJsjYyzEUmSrvToI/s1600/IMG_20140209_091308.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Central point for free beverages</td></tr>
</tbody></table>
Inmobi offered us a feast throughout the event. They served breakfast, lunch on both days and dinner on the first day. Beverages and snacks could be consumed anytime by us throughout the event. In the evening, they also served burgers from McDonalds. Plus, we also got free Tshirts. There were some talks by invited persons on how to create better hacks and how to take our ideas to the next level. I felt that there should be no interruptions between the hackathon as it breaks concentration and rhythm. Talks are good at the start and end of the hackathon, but not quite in the middle.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2_yUvI1EtC6Hr-3wDlUHFybXDFO66jUETk9c9dbIOy9meZy60KecROf15vjGxxAZbiXhAsPfgMpV8_UMbL2SBFVG9xgBP06ze-Gk2iH6PiM9SOP5ImxYZNxIf1780c_UJQ6I1k875vA0/s1600/IMG_20140209_091345.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2_yUvI1EtC6Hr-3wDlUHFybXDFO66jUETk9c9dbIOy9meZy60KecROf15vjGxxAZbiXhAsPfgMpV8_UMbL2SBFVG9xgBP06ze-Gk2iH6PiM9SOP5ImxYZNxIf1780c_UJQ6I1k875vA0/s1600/IMG_20140209_091345.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Workspace allocated to each team</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Anyways, we completed 25% of our application by the first day's evening. The struggle started when we encountered issues during integration. We spent considerable time in optimizing code and how data from the lowest php based layer could be handed over to the upper layer which would ultimately be displayed in the User Interface. At around 2:30 am after several cups of tea/coffee, we started resolving our issues and by 6am, we had completed 90% of the application. It was the result of the good initial plan which we had laid down when we started. Demos started at 10:30 AM on sunday and the hackathon concluded by 2:30PM. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Q1QtZv29-WrITLiHsJKwNPN1-JXffYle5w5tXvasnzopPJzYvLkWMg_Zq6aVRBZtT_UP2q90BZPSGI4oi24UYbQ_gM23TCnamkiW6HBTDJL_5OZfRoMIf5YLJcI7U6JgqZC_gKTKInc/s1600/IMG_20140209_032750.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Q1QtZv29-WrITLiHsJKwNPN1-JXffYle5w5tXvasnzopPJzYvLkWMg_Zq6aVRBZtT_UP2q90BZPSGI4oi24UYbQ_gM23TCnamkiW6HBTDJL_5OZfRoMIf5YLJcI7U6JgqZC_gKTKInc/s1600/IMG_20140209_032750.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">My teammate trying to get a nap (for hardly 5 mins)</td></tr>
</tbody></table>
It was a great experience. I learned a lot during a short time and saw some clever hacks by my peers. Thanks to everyone at Inmobi for organizing a wonderful event and giving us an opportunity to display our ideas. Lastly, thanks to my team-mates for staying up all night and helping each other in bug-fixing and even encouraging when one felt a little low. </div>
Technorati Tags: <a href="http://technorati.com/tag/inmobi">inmobi</a>, <a href="http://technorati.com/tag/hackathon">hackathon</a>, <a href="http://technorati.com/tag/experience">experience</a>, <a href="http://technorati.com/tag/2014">2014</a>, <a href="http://technorati.com/tag/review">review</a>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-32421921252852602752014-01-26T07:06:00.002-05:002014-01-30T12:00:48.606-05:00Battle of sorting algorithms (Which sorting algorithm is the best?)<div dir="ltr" style="text-align: left;" trbidi="on">
I was recently going through MIT Opencourseware's Algorithms course by professor Erik Demaine and Charles Leiserson (fantastic teaching by the way!). After finishing up the lectures on sorting and worse case linear order statistics, an innocent question to ask is "Which sorting algorithm is best?". Mind you, the lectures are exhaustive and walk you through the running time of almost all discussed algorithms. But there are constraints and involvement of constants which hinder the practical applicability of these algorithms. In this post, i wish to delineate the algorithm selection mystery assuming you are sorting numbers. (You can extend the below mentioned analysis for floating points, strings and so on).<br />
<br />
Algorithms based on comparing a pair of numbers and minimizing the number of comparisons have a tight lower bound of (n log n). This means that nlogn is the <u>worst case</u> runtime of the <u>best</u> comparison based sorting algorithm. And the best algorithm, in practice, is <a href="http://en.wikipedia.org/wiki/Quicksort#Analysis_of_Randomized_quicksort" target="_blank">randomized quick sort</a>.The advantage of randomized quick sort is that it avoids the worst case of quick sort (which might take upto O(n^2) time for selected inputs such as sorted or a reverse sorted array).<br />
<b><br /></b>
<b>So, is randomized quick sort the answer to all problems?</b><br />
<br />
As the lecture demonstrates, we can sort in linear time too. With algorithms such as <a href="http://en.wikipedia.org/wiki/Counting_sort" target="_blank">counting sort</a> and <a href="http://en.wikipedia.org/wiki/Radix_sort" target="_blank">radix sort</a>, it is quite possible to get a upper bound of O(n), where n is the number of elements to be sorted. These algorithms do not fall under the comparison based model.<br />
<br />
<b>So, are counting sort and radix sort the answer to all problems?</b><br />
<br />
Not quite. Each of them is useful in their own way. For example, after going through the rigorous analysis presented in the lecture, i've come up with a criteria of when to use each of them:<br />
<br />
1) Counting sort (Stable): Use it when<br />
<br />
i) You know the maximum number in the elements to be sorted.<br />
ii) All numbers are integers<br />
iii) You can afford to allocate two auxiliary storages of size equal to the number of elements.<br />
iv) The numbers themselves are not very large (perhaps less than 10,000). This limit can be increased if you can write a multi-threaded version of counting sort where you sort the numbers in parallel.<br />
<br />
2) Radix sort (MSD implementations can be stable): Use it when<br />
<br />
i) You know the range of numbers to be sorted<br />
ii) Elements to be sorted consists of only integers, fixed size strings or anything which can be converted to a fixed size integer.<br />
iii) The number of digits in each integer is less than log n where base of the log is the base of the number to be sorted. For example, if we desire to sort 10^6 integers which are all in base 10, then we'll check if log 10^6 base 10 is less than the number of digits in each integer. If yes, we'll go ahead with the sort. The logic of this check is explained in the lecture found <a href="http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video-lectures/lecture-5-linear-time-sorting-lower-bounds-counting-sort-radix-sort/" target="_blank">here</a>.<br />
<br />
3) Randomized quick sort: Use it when<br />
<br />
i) When 1) and 2) cannot be applied.<br />
ii) You want to your algorithm to work well with cache. </div>
Technorati Tags: <a href="http://technorati.com/tag/MIT">MIT</a>, <a href="http://technorati.com/tag/algorithms">algorithms</a>, <a href="http://technorati.com/tag/sorting">sorting</a>, <a href="http://technorati.com/tag/couting-sort">counting-sort</a>, <a href="http://technorati.com/tag/radix-sort">radix-sort</a>, <a href="http://technorati.com/tag/best-sorting-algorithm">best-sorting-algorithm</a>, <a href="http://technorati.com/tag/quick-sort">quick-sort</a>, <a href="http://technorati.com/tag/randomized-quick-sort">randomized-quick-sort</a>
Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-10529864828971287292013-05-12T10:03:00.001-04:002014-11-21T04:48:38.951-05:00Clarification on SIGKILL, SIGTERM, SIGINT, SIGQUIT, SIGSTP and SIGHUP<div dir="ltr" style="text-align: left;" trbidi="on">
A few days ago, i landed upon unix signals that lead to process termination. I guess i was trying to remember the signals generated in linux when one presses Ctrl+Z and Ctrl+C. Memory did not serve me at that moment and i decided to look these up, one more time. I realized that having a consolidated book which explains these terms clearly is better than searching loads of webpages. I did the later since i had kept my unix os book away from my reach.To my disappointment, there was no single link that listed out all differences in an orderly fashion.<br />
<br />
Hence, in this post, i wish to delineate these terms by consolidating my findings from stackoverflow, wikipedia and other unix internals websites. Here it goes:<br />
<br />
SIGKILL: Terminates a process immediately. This signal cannot be handled (caught), ignored or blocked. (The "kill -9" command in linux generates the same signal).<br />
<br />
SIGTERM: Terminates a process immediately. However, this signal can be handled, ignored or caught in code. If the signal is not caught by a process, the process is killed. Also, this is used for graceful termination of a process. (The "kill" command in linux if specified without any signal number like -9, will send SIGTERM)<br />
<br />
SIGINT: Interrupts a process. (The default action is to terminate gracefully). This too, like, SIGTERM can be handled, ignored or caught. The difference between SIGINT and SIGTERM is that the former can be sent from a terminal as input characters. This is the signal generated when a user presses Ctrl+C. (Sidenote: Ctrl+C denotes EOT(End of Transmission) for (say) a network stream)<br />
<br />
SIGQUIT: Terminates a process. This is different from both SIGKILL and SIGTERM in the sense that it generates a core dump of the process and also cleans up resources held up by a process. Like SIGINT, this can also be sent from the terminal as input characters. It can be handled, ignored or caught in code. This is the signal generated when a user presses Ctrl+\. <br />
<br />
SIGSTP: Suspends a process. This too, can be handled, ignored or blocked. Since it does not terminate the process, the process can be resumed by sending a SIGCONT signal. This signal can be generated by pressing Ctrl+Z. (Sidenote: Ctrl+Z stands for substitute character which indicates End-of-File in DOS)<br />
<br />
SIGHUP: (From Wikipedia): Hangs up a process when the controlling terminal is disconnected. This especially relates to modem/dial in connections. A process has to explicitly handle this signal for it to work. A good use is to "poke" a process and letting the process (as defined by the programmer) decide what to do with the signal is described <a href="http://www.ocf.berkeley.edu/~mahrud/blog/2012/12/restarting-gnome-shell-terminal-or-sighup/" target="_blank">here</a>. Hence, SIGHUP can be handled, ignored or caught. This is the signal generated when a user presses Ctrl+D.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/unix">unix</a>, <a href="http://technorati.com/tag/signals">signals</a>, <a href="http://technorati.com/tag/unix-signals">Unix-signals</a>, <a href="http://technorati.com/tag/sigint">SIGINT</a>, <a href="http://technorati.com/tag/sigterm">SIGTERM</a>,
<a href="http://technorati.com/tag/sigkill">SIGKILL</a> <a href="http://technorati.com/tag/sigquit">SIGQUIT</a>,
<a href="http://technorati.com/tag/sigstp">SIGSTP</a>, <a href="http://technorati.com/tag/sighup">SIGHUP</a> </div>
Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com6tag:blogger.com,1999:blog-6412421647806324225.post-89608065520254595352013-04-29T13:57:00.001-04:002013-05-01T06:42:38.586-04:00Designing a good security policy for your websites<div dir="ltr" style="text-align: left;" trbidi="on">
Recently, i went through web server security and security analysis of forums based on phpBB. Although i do agree that humans are the weakest link in the security chain, there are a few measures a web developer can take to prevent malicious users from exploiting their website.<br />
<br />
1) The login page (or any other page that requires authentication) should use HTTPS. The best approach is to use HTTPS throughout your website.<br />
<br />
2) Set secure cookies and check them on each request from the user. This goes hand in hand with step 1.<br />
<br />
3) Limit the maximum number of login attempts (say 5). Also, use techniques like exponential delay at each failed login attempt.<br />
<br />
4) Deploy captcha verification on pages that require authentication (probably couple the captcha with the login page). Captcha should be account based rather than IP based (doing so prevents DDOS attacks since step 3 should stop login attempts after a few incorrect tries regardless of the IP used to log into the account)<br />
<br />
5) After the maximum number of invalid login attempts have been reached, a web developer can go with two approaches.<br />
i) Deactivate the account and send password reset link at the user's registered email.<br />
OR<br />
ii) Throw up a security question (entered earlier by the user) and follow the deactivation step if this too fails.<br />
<br />
6) Set a password complexity policy (make digits, mixed alphabets and special characters mandatory along with a minimum password length)<br />
<br />
7) Change the session ID on each request (for websites that require extra-security). Also, make sure that the session ID or any other session information is not a part of the query string (this will not be much of a problem if HTTPS is used throughout the website)<br />
<br />
8) Force logout after a fixed period of inactivity.<br />
<br />
9) Make extra authentication checks for administrator logins.<br />
<br />
10) Never trust user input. Always validate it.<br />
<br />
11) Maintain a blacklist (or whitelist) of users (IP based or whatever suits you best) to block malicious users who try to attack your website. It's not recommended to block them forever. <br />
<br />
12) Understand and write your robots.txt with diligence.<br />
<br />
13) Use vulnerability scanners to scan your website for security loopholes. Some good ones are jsky, acunetix and w3af. Fix the issues these scanners list and re-scan to confirm from various other scanners.<br />
<br />
14) Take regular backups of your website. In case of a security incident, the migration to another webserver or to restore the site back will be seamless with proper backups.<br />
<br />
15) Monitor your website traffic and statistics on a regular basis. Watch out for unusual traffic (depending on IP, location, webpage requested and so on). Use google's webmaster's tool and google analytics to aid you in the development and monitoring process.<br />
<br />
These are just my thoughts. Feedback or any other addition to the above listed policy is appreciated.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/security">security</a>, <a href="http://technorati.com/tag/policy">Policy</a>, <a href="http://technorati.com/tag/web%20security">Web security</a>, <a href="http://technorati.com/tag/phpbb">phpBB</a></div>
Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com6tag:blogger.com,1999:blog-6412421647806324225.post-70113580653024432352011-09-15T11:27:00.000-04:002011-09-15T11:37:48.326-04:00Mobremote: An insider's viewA usual morning at college with an ongoing data structures class suddenly hit us (Me and Nitesh) with a new software idea. Remote Control via text messages!<br />
<br />
A lot has already been achieved in Remote Control, now that mobile devices are faster, slimmer and easy to use. But we had a different idea in our mind. To create something that eliminates the cost factor of a fancy cellphone. We started searching and we came across loads of different software, but we found some things common in almost all of them:<br />
<br />
1. Either the user requires a second cellphone attached to his computer and controls the computer via another cellphone with him.<br />
<br />
2. The cellphone as well as the computer have a fast internet connection and the client running on the computer talks with the cellphone via a protocol delivering the computer's current state on the cellphone's screen.<br />
<br />
3. The cellphone updates a part of a common web server/user profiles (3rd party over which user has very little control) and the client would read the profile. This mostly is facilitated via a sms gateway (generally owned by a 3rd party website) which is most cases demands premium sms charges or subscription to their service.<br />
<br />
In all the above mentioned, there are charges involved that the user needs to pay in order to control his computer remotely, either overhead of a second cellphone, bandwidth charges or lastly, premium sms or subscription charges.<br />
<br />
The solution of these problems became the central idea behind our project and we named it <b>MOBREMOTE</b>. (short for Mobile Remote)<br />
<br />
<br />
Mobremote provides the user with ability to send text messages containing the desired command to execute on his computer. There is absolutely NO need of an internet connection on the user's cellphone. The only requirement is that of an existing gmail account and the client computer only requires a minimal internet connection (even dialups would do!) which is generally cheaper than the cost of an additional cellphone and mostly better than subscription charges.<br />
<br />
Advantages:<br />
1. NO premium charges of sending the text message<br />
2. NO internet connectivity required on the cellphone (saving extra bandwidth charges)<br />
3. NO monthly subscription charges<br />
4. Full Control over what can be remotely done with the cellphone (with different layers of security at each level)<br />
<br />
<br />
So how do implement our idea? It's plain and simple. We came across a platform known as <a href="http://www.txtweb.com">txtWeb</a> which runs in India, United States Of America and Canada. The platform is run by Intuit, based in United States itself. Their primary aim is to bring the power of internet to user's cellphone for no extra charges except the cost of a standard text message. txtWeb has dedicated numbers assigned for each of these countries. <br />
<br />
The path that we followed in implementing Mobremote was:<br />
<br />
User's cellphone sends message at txtweb's number->> Process message and check for correctness->> Forward the message's content to user's specified gmail account->>Create a separate application to run on user's computer->>The application would periodically check for incoming commands in user's gmail account->> If the received message from user's gmail inbox passes all security checks, execute the specified command in the message.<br />
<br />
This was the ultimate solution for us to go ahead and bring convert our idea into reality. So we started building a text-message handling application. We hosted the application on Google AppEngine for reliability, security as well as diagnostic reasons. Next we map a keyword on txtWeb's website that would point to our application hosted on AppEngine. By doing so, we ensure that when the user sends a message with our keyword and his details to txtWeb, txtWeb would in turn run our application with the message as a parameter and return the result back to the user (or forward the message to user's gmail account, sending back a success message to user's cellphone). We designed a format in which the user is required to specify his details in the text message. <br />
<br />
Mobremote's current format is:<br />
@mobremote -k (security key) -e (gmailid@gmail.com) -s command -c (command to execute)<br />
<br />
Security key (5 digits entered in the Mobremote software installed on the user's computer) is implemented as a part of Mobremote’s security in order to protect the user’s computer from unwanted/fake commands from any other person other than the owner of the computer himself. The user is required to fill in the details specified in braces and send the text message to one of the txtWeb's numbers (9243342000 or 9900173324 for India, and 898932 for US and Canada).<br />
<br />
The command is specified as digits ending with a $ sign. Mobremote currently supports 9 most basic commands the user may need when he/she is not physically near their computer.<br />
The number to command mapping is as follows:<br />
<br />
0:Stop listening to incoming commands from cellphone<br />
<br />
1:Lock computer<br />
<br />
2:Sleep Computer<br />
<br />
3:Hibernate computer<br />
<br />
4:Log off user<br />
<br />
5:Restart computer<br />
<br />
6:Shutdown computer<br />
<br />
7:Force shutdown computer<br />
<br />
8:End Unresponsive program<br />
<br />
<br />
EXAMPLE: If your gmail id is dev@gmail.com with the configured security key as 12345 and you want to restart your computer, you will send to the appropriate txtWeb number: @mobremote -k 12345 -e dev@gmail.com -s command -c 5$<br />
<br />
We offer several help options to our users via text messages like:<br />
<br />
1. To get information on mobremote, send “@mobremote” (without quotes) to the above txtWeb number which applies to you according to your location.<br />
2. To get the format of sending commands, send “@mobremote format”<br />
3. To get a list of supported commands, send “@mobremote help”<br />
4. To view an example, send “@mobremote example”<br />
<br />
<br />
So, uptil now, our text message has travelled from user's cellphone to his/her gmail account. As stated above, we create another application that would run on the user's machine and regularly check for any incoming emails in the format of Mobremote. So we started writing code to create a good user interface along with added security to extend what the user can accomplish by using Mobremote. We wrote code in C++ utilizing Qt framework to provide a user friendly GUI. The user is required to fill in his details in the Mobremote software which includes his gmail account details, mobile number and security key and set the software in Running mode in order to listen to incoming commands from user's cellphone.<br />
<br />
The Gmail ID and security key is required to be sent in the text message from user’s cellphone, so the user needs to remember these details entered on his/her computer. Mobremote executes commands only when it verifies user’s identity via his/her gmail account ID and security key.<br />
<br />
The software installed on the end user's machine uses PHP with IMAP+SSL to securely fetch email messages containing commands sent from user's cellphone. To provide a scripting environment, we require installation of Apache.<br />
<br />
We bought our own domain <a href="http://www.mobremote.com">www.mobremote.com</a> and created a website for our project.<br />
<br />
After 6 months of coding, testing, debugging, finally we packed everything into a installer and it was ready to be distributed. We uploaded both 32 and 64 bit installer for Windows XP/Vista/7 along with Wampserver (contains Apache for Mobremote to make use of) in the download section of our website <a href="http://www.mobremote.com/download">www.mobremote.com/download</a><br />
<br />
Developing Mobremote was truly a learning and fun-filled experience. Of course, there were times when we were so frustrated that we wanted to smash our computer itself, but in the end it worked out well and we were good to go. Mobremote is written in around 5 computer languages all working together to provide remote control facility to the user. Ahead of time, we plan to add more features to Mobremote, including starting/stopping applications, automated downloads, facebook/twitter status updates and the list goes on!<br />
<br />
Mobremote was developed with an open mind so it's free to use and re-distribute. However, we do not share our source code with anyone. Developers who are willing to contribute to our project can visit <a href="http://www.mobremote.com/for-devs">For Devs</a> for more details.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/mobremote">mobremote</a>, <a href="http://technorati.com/tag/remote">remote</a>, <a href="http://technorati.com/tag/sms">sms</a>, <a href="http://technorati.com/tag/mobile">mobile</a>, <a href="http://technorati.com/tag/cellphone">cellphone</a>, <a href="http://technorati.com/tag/software">software</a>, <a href="http://technorati.com/tag/free">free</a>, <a href="http://technorati.com/tag/txtweb">txtweb</a>, <a href="http://technorati.com/tag/remotecontrol">remote-control</a>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-76928927635906716912011-08-13T17:38:00.000-04:002011-08-13T17:58:58.071-04:00Plunge into Windows 7 and Windows 8 Preview<div dir="ltr" style="text-align: left;" trbidi="on"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">I've started writing for the technical section (named Tech-Tonic) of our college's e-magazine. Here's the first article published in August. </span><br />
<br />
<div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Windows 7 has been around for quite a while and Windows 8 Beta is around the corner. After the delayed production of Windows Vista (Codenamed Longhorn) which was not as successful as its predecessor, Windows 7 has stood up to the mark when it comes to end user satisfaction, usability and reliability.</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">In this edition, I would be highlighting specific features of Windows 7 that you should be aware and make use of so as to harness the full capability of Windows 7. In the “Tips & Tricks” section, this edition will carry some selected shortcuts for better maintaining and managing Windows 7. Finally, I will conclude with the expected feature set and how Windows 8 will differ from current line of operating systems.</span></div><br />
<div class="MsoNormal"><u><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Windows 7 Libraries</span></u></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Libraries serve as virtual folders inside Windows 7. Many of us have various files cluttered all over our hard drive or even on external storage devices. This is time consuming when it comes to finding a particular file that u edited 3 months ago and now have forgotten where u actually saved it! Libraries solve this problem quite efficiently. Users can add folders to a library without copying or creating shortcuts to the folder. The added folder appears under the library which can be accessed the same way as u access a real folder. For example, I capture photos from my Sony Digital Camera and transfer them to my notebook running Windows 7. By default, Sony’s camera creates a folder named 101MSDCF and stores all captured photos in it. When my memory card fills up, I store some photos in the camera’s internal memory, which resides in a different location. Similarly, I also transfer images from a Olympus DigiCam from a relative of mine which has its own folder structure. After a year, I have tens of hundreds of folders all containing the photos I took or transferred but in separate locations. It’s a mess trying to remember which folder was copied to which location and retrieving a single image from a thousand captured from a single trip. This is when Windows 7’s Libraries come to play.</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">By default, Windows 7 includes 4 pre-defined libraries: Documents, Pictures, Music and Videos. Users can also create custom libraries to store relevant data according to need. For demonstration purpose, I’m going to create a custom library.</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">I open up explorer (Ctrl+E), select Libraries, click on “New library” and enter the library name as “Trip pics”.</span></div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3WDSSExplFyvdBCTlj1Bqgqy-87s87rapbzYkAyYvetT-TIcC-49z6NN8Jde9gs0GfCGPSYDOJkLr4cLxb-SOA0RiTlLnl5bfXmXVx3nVx-qu5Xt-YXHyY1NhZjQbiw0PxdzRXEe40Ys/s1600/pic-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3WDSSExplFyvdBCTlj1Bqgqy-87s87rapbzYkAyYvetT-TIcC-49z6NN8Jde9gs0GfCGPSYDOJkLr4cLxb-SOA0RiTlLnl5bfXmXVx3nVx-qu5Xt-YXHyY1NhZjQbiw0PxdzRXEe40Ys/s400/pic-1.png" width="400" /></a></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">In order to add folders to my Trip pics library, I navigate to each folder and select “Include in Library” drop down menu to select the library in which I want to put the selected folder. Alternatively, I right click the desired folder, select Include in library>Name of library I wish the folder to add to. Note that non-indexed locations, network paths and files from CD/DVD CANNOT be added to a library. To add non-indexed and network locations, use a 3<sup>rd</sup> party tool named “Win 7 Library Tool”.</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Also note the effects of deleting folders from within a library and from their original location. If files/subfolders change in their original location, these changes are reflected in the library to which they belong. Files or subfolders deleted from their original location do not appear in the library at all. Deleting files or folders from within a library also affects the original folder or files. However, if folders are “removed” by selecting the locations link in a library and clicking on “Remove”, the folder is no longer a part of the library and is temporarily removed WITHOUT affecting files or subfolders in the original location.</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"><br />
</span><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSBZsHvRhNp28tQPJSQZCNZz6Y2p8PZ_tO90zXPcVlttKIgpSf6eRZUyQd4Iy63pGOLBqjKG_ywn_DZIPkzcTFJFsdPFFQ_mwmEzKpmwA0I8x7eEKlip5Vg8oRjAWW56p1wO-z30VLkY0/s1600/pic-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSBZsHvRhNp28tQPJSQZCNZz6Y2p8PZ_tO90zXPcVlttKIgpSf6eRZUyQd4Iy63pGOLBqjKG_ywn_DZIPkzcTFJFsdPFFQ_mwmEzKpmwA0I8x7eEKlip5Vg8oRjAWW56p1wO-z30VLkY0/s400/pic-2.png" width="400" /></a></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"><br />
</span><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">After adding all the folders that I wish to keep in a separate library, I get something like shown in figure below:</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"><br />
</span><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo8Wp0U_4buKEUC2a5SkQ8l4FQT66Qf0jkb-1SNgrXSHZspzgVlISeGd7KzvtZoux_ukeSxHnH5rIN1U-_6tqu9nWdEwWPib9PpeDNvwuNeY9_9EnA2x0P2WdkYhv_aXKIrThqARVmXc4/s1600/pic-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo8Wp0U_4buKEUC2a5SkQ8l4FQT66Qf0jkb-1SNgrXSHZspzgVlISeGd7KzvtZoux_ukeSxHnH5rIN1U-_6tqu9nWdEwWPib9PpeDNvwuNeY9_9EnA2x0P2WdkYhv_aXKIrThqARVmXc4/s400/pic-3.png" width="400" /></a></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"><br />
</span><span style="font-family: "Times New Roman","serif"; font-size: 14pt; line-height: 115%;"></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">I now have a clean way to have a quick glance and work with my scattered files from a central location. Yay!</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><u><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Homegroups</span></u></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Homegroups make file and printer sharing between Windows 7 machines fairly simple. However, there are some things u should keep in mind <u>before </u>getting started with your own homegroups. First and foremost, you should be connected to a network that has its location set to home. Secondly, homegroups require IPv6 to be enabled on your home network. Double check these two pre-requisites from your adapter settings via Network and Sharing Center.</span></div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRS3sQlsuWOp_j9Z_P_F1sj2LGKUjHEVJL_fVELTGRcvCG0lbP-mG-UIy3MnFVoUh8I_63a2s0bD3KvY64BGY9I8RPqFtbVdgcnLYqBRICusO40c_4oKL9yEAai3FWG9ScJmmquBguqlg/s1600/pic-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRS3sQlsuWOp_j9Z_P_F1sj2LGKUjHEVJL_fVELTGRcvCG0lbP-mG-UIy3MnFVoUh8I_63a2s0bD3KvY64BGY9I8RPqFtbVdgcnLYqBRICusO40c_4oKL9yEAai3FWG9ScJmmquBguqlg/s400/pic-4.png" width="400" /></a></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"><br />
</span><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"><br />
</span><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">After I’ve ensured the above requirements, I open my explorer and select Homegroup. While creating a homegroup, I have the ability to share Pictures, Documents, Music, Printers and Videos [Libraries, not folders]. After making my selections, Windows 7 assigns a password for other Windows 7 machines to connect to your homegroup.</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">On other computers, Windows 7 detects existing homegroups and provides you the option to add the computer to the created homegroup. Once this is complete, your libraries, printers as well as media can be accessed from other computers that are a part of the same homegroup. On other computers, navigate to Homegroups and select “Join Now”.</span></div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRLmnP80htpY9tFTZd-x9Xq3u0Rnj74Wr36xDM3ja6pd93FPfFYYkO4C8y2A2VvfE91RSHc3zaV6nVMT58MTTa8hsrldmYNJoPmcxBDSHn1MqtYZv6Ft20z7xaoAqwM9tz01KRyp_sWTQ/s1600/pic-7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRLmnP80htpY9tFTZd-x9Xq3u0Rnj74Wr36xDM3ja6pd93FPfFYYkO4C8y2A2VvfE91RSHc3zaV6nVMT58MTTa8hsrldmYNJoPmcxBDSHn1MqtYZv6Ft20z7xaoAqwM9tz01KRyp_sWTQ/s400/pic-7.png" width="400" /></a></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">To change homegroup settings, such as Turning off password protected sharing (to not force users to type the password), change media sharing options, alter homegroup password, navigate to Control Panel->Network Internet->Homegroup. As a side note, other computers should have Network Discovery turned on, as well as File and Printer sharing to take the full advantage of homegroups.</span></div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlVegyLTD8XPCulMsBdBgwU0Z8JKpQzqB_50cHJbIac_ubDmsvc-_5nKGVDcu-Ay-JK8Y2-58m-MmXC_z4OGE_z4M0d11-F3-YE6wnsNyaf_8SagLimW3z9_eZ-8kXjH2KomOjokopecY/s1600/pic-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlVegyLTD8XPCulMsBdBgwU0Z8JKpQzqB_50cHJbIac_ubDmsvc-_5nKGVDcu-Ay-JK8Y2-58m-MmXC_z4OGE_z4M0d11-F3-YE6wnsNyaf_8SagLimW3z9_eZ-8kXjH2KomOjokopecY/s400/pic-6.png" width="400" /></a></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">However, before printing from other computers to a printer attached on a homegroup hosting computer, make sure u double click the printer in Network and Sharing Center->View computers and devices and the printer will be automatically installed for you to use.</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Homegroups form a mesh-type of sharing where files shared by people in the homegroup are accessible by anyone in the homegroup. For users who shared files via Sharing Tab in folder properties in previous versions of Windows can also share files by Public Folders in Windows 7. However, sharing files/folders via the Public folders method requires a copy of the files to be present in the public folder. Homegroups simplify this procedure by placing links of shared libraries (which in turn use links to real folders) instead of the entire contents.</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">If media sharing is enabled (i.e. “Share my pictures, music and videos to all devices on my network” is checked) files from media libraries are available <u>directly</u> in windows media player of members in the homegroup without having the need to share them explicitly as files.</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">To add a custom library to your homegroup, simply navigate to your library via explorer and select the “Share with” option. U can specify nobody (deny), read, read/write or even specific permissions to different users in the homegroup.</span></div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJUIlr9AzgUs-wLN5r-7Sv-URdajpCeucNa5NVBcaNHCzThaalh_NppowIor4PocAPJ2R0sHBJEAKJu3iBkSl4nXOteEztwUHf_W8V8JjyrbAbr8XupYBAgiLoyaxiI7H_9GAXcq7rbf8/s1600/pic-8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJUIlr9AzgUs-wLN5r-7Sv-URdajpCeucNa5NVBcaNHCzThaalh_NppowIor4PocAPJ2R0sHBJEAKJu3iBkSl4nXOteEztwUHf_W8V8JjyrbAbr8XupYBAgiLoyaxiI7H_9GAXcq7rbf8/s400/pic-8.png" width="400" /></a></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"><br />
</span><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"></span></div><div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.5in;"><br />
</div><div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.5in;"><u><span style="font-family: "Lucida Handwriting"; font-size: 13pt; line-height: 115%;">Tips & Tricks</span></u></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><br />
</div><div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Essential Windows 7 management shortcuts for everyday use:</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><br />
</div><div class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">1. Win+1,2,3,4…: Launches shortcuts in taskbar bar in order from left</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">2. Win+Alt+1,2,3,4…: Opens up jump list for program in the taskbar in order from left</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">3. Win+Home: Minimizes every other window except the current one</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">4. Win+T: Cycle through programs in taskbar</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">5. Win+B: Select programs in order in the notification area</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">6. Win+Up/Down: Maximize/Minimize the current window</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">7. Win+Left/Right: Moves the current window to the left/right side of the screen</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">8. Ctrl+Shift+Esc: Opens up task manager <u>without</u> using Ctrl+Alt+Delete</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">9. Ctrl+Shift+N: Creates a new folder in the current directory</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">10. F10: Toggles the menu bar in Windows Explorer</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">11. Shift+F10: Opens the context menu for the current selection</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">12. Alt+Up: Move one folder up in the hierarchy</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">13. Shift+Delete: Delete the current selection permanently, without moving to recycle bin</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">14. Alt+Enter: Opens the properties of the current selection</span></div><div class="MsoNormal" style="margin-left: .5in; text-indent: -.5in;"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">15. F3 or Win+F: Opens up Windows Search</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">16. Ctrl+Esc: Opens up start menu (called as Orb in Windows 7)</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">17. Alt+Space: Opens up windows system menu (Restore, Move, Size, Minimize, Maximize, Close)</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">18. F2: Rename the current selection</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">19. Hold current window with mouse and shake left and right quickly several times: Minimizes every other window except the current one (=Win+Home)</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">20. Win+Tab/ Win+Shift+Tab: Flip 3D open windows in forward/reverse order</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Previewing Windows 8</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">In the past 1-2 years, the Redmond based company is releasing a line of products for home/office use with lightning speed. With the release of Windows 7 and Internet Explorer 9, Microsoft made a mark yet again in both home and enterprise environments. But innovation and creativity does not halt as we already see milestones and newer windows 8 builds being mentioned on the internet.</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">The start menu (Orb in Windows 7) was doomed to be changed since Windows Vista. However it was untouched until Windows 7. In windows 8 we see a focus of touch input to control your favorite programs, although the same could be achieved via mouse and keyboard. The applications are now displayed in a larger form of vista gadgets, called as “Tiles” in windows 8. Users can now scroll through program tiles by using hand flicks both to the left and the right. Touch input, much like tablet pc, uses on screen keyboard to deliver keystrokes.</span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Microsoft has been considerate to post preview videos titled “Building Windows 8”. Using tiles allows the user to focus on a single application while keeping background tasks unaffected. Also, expanding a tile shows detailed information and allows user interaction.</span></div><div align="center" class="MsoNormal" style="text-align: center;"><span style="font-size: 13pt; line-height: 115%;"><br />
</span><span style="font-size: 13pt; line-height: 115%;"></span></div><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/p92QfWOw88I?feature=player_embedded' frameborder='0'></iframe></div><div align="center" class="MsoNormal" style="text-align: center;"><span style="font-size: 13pt; line-height: 115%;"><br />
</span><span style="font-size: 13pt; line-height: 115%;"></span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">The complete User Interface was re-designed when Microsoft transited from Windows XP to Windows Vista. Windows 7 is built on the same kernel with some improvements over the vista kernel. </span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Rumors are spread throughout the internet with respect to Windows 8 features. Most systems today run on a 32 bit and some on 64 bit operating system. Windows Core development team <u>may</u> make Windows 8 a 128bit operating system allowing huge amount of allocable memory addresses. Some even say that Windows 8 will be EFI compatible, which is still to replace the current BIOS based systems.</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;"> </span></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">With every new version of Windows, users expect speed and ease of use. However, providing eye-candy user interface can negatively impacts overall performance. We expect a balance of both system speed along with pleasing UI. Ideally, this is what makes an operating system successful and marketable.</span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"></div><div class="MsoNormal"><span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Have a happy tech-month.</span><br />
<br />
<span style="font-family: "Times New Roman","serif"; font-size: 13pt; line-height: 115%;">Technorati Tags: </span><a href="http://technorati.com/tag/Windows%208">Windows 8</a>, <a href="http://technorati.com/tag/Windows%207">Windows 7</a>, <a href="http://technorati.com/tag/Microsoft">Microsoft</a>, <a href="http://technorati.com/tag/article">article</a>, <a href="http://technorati.com/tag/magazine">Magazine</a>, <a href="http://technorati.com/tag/operating%20system">operating system</a>, <a href="http://technorati.com/tag/libraries">libraries</a>, <a href="http://technorati.com/tag/homegroup">homegroups</a></div></div>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-41669923640613347272011-06-25T14:23:00.000-04:002011-06-27T05:54:54.668-04:00Internship @ A Service Provider<div dir="ltr" style="text-align: left;" trbidi="on">The summer of 2011 was getting stressful than the last semester. As usual, i had a BIG to-do list. One of the task was sorta necessary and i was looking forward to it i.e. a 21 day internship, to be done as a part of our Bachelor of Engineering's course in Computer Science.<br />
This year, <a href="http://www.bsnl.co.in/">BSNL</a> a.k.a. Bharat Sanchar Nigam Limited (India's Largest Internet Service Provider) was hosting training for 2/3 year engineering students of Electronics/Electrical/Computer Science students. The RTTC (Regional Telecom Training Center) which is only one for a particular state was nearby my home. I initially joined their 4 weeks programme.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm5eA5I6hW-gqDGlNXRsAUs1jZr8Hi4oHKO7Lebdc4JwYigEYtHRtIeQxsFig01jww3WTy4sKs_CA5KF9hDbwTMZt6PePyL7VHXKQ95DRHecABwTkUz71JSbDPpnCszy0qoZJM-7oHhrU/s1600/bsnllogo.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm5eA5I6hW-gqDGlNXRsAUs1jZr8Hi4oHKO7Lebdc4JwYigEYtHRtIeQxsFig01jww3WTy4sKs_CA5KF9hDbwTMZt6PePyL7VHXKQ95DRHecABwTkUz71JSbDPpnCszy0qoZJM-7oHhrU/s1600/bsnllogo.gif" /></a>The RTTC is quite big, consisting of 3 floors, equipped with large lecture halls, conference rooms, seminar halls, a library, communication labs along with a separate MSC (Mobile Switching Center) and offices of the instructors (or rather employees of BSNL)<br />
<br />
The first day, our mentor (more of a batch in-charge) T. D. Mishra, introduced himself and other senior employees present there. He handed over our schedule to us along with the timings. The four weeks were divided into separate units that include sessions, labs as well as visits to telephone exchanges. The lectures started with the overview of telecom networks and job opportunities for engineering students in the field of telecommunication. In the first week, we covered <a href="http://en.wikipedia.org/wiki/Pulse-code_modulation">The PCM Principle</a> along with <a href="http://searchnetworking.techtarget.com/definition/digital-switch">Digital Switching</a>. These topics demonstrate how every bit of your voice that u speak in your telephone reaches from point A to point B within no time via a huge network starting from the local loop(the line from your home which connects to the service provider's nearest exchange) to the ISP's switching modules, trunk lines (hopping from one exchange to the other) via copper or optical fibers to the correct exchange which further routes the signal to the nearest exchange the called person is connected to and finally transmitting it via another local loop to the correct telephone which decodes the signal back to comprehensible voice that the other person is able to hear and respond to in a similar manner.<br />
<u><b><br />
</b></u><br />
<u><b><i>Fun Fact</i></b></u>: A mobile number generally is over <b>100</b> digits long! This includes all codes and identification numbers that can be used to pin-point a particular SIM card uniquely in the entire world. But when limited to within a country and considering the large amount of Service providers present, subscribers need to only remember 10 digits.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"></div>The second week was fun, conceptually as well as physically. We had a fiber optic systems session, coupled with <a href="http://en.wikipedia.org/wiki/Synchronous_Digital_Hierarchy">SDH</a> and <a href="http://en.wikipedia.org/wiki/DWDM#Dense_WDM">DWDM</a> concepts. Then two labs relating to fiber optics, where we understood how practically SDH systems are laid out in a large service provider's network, how they actually work and in what manner are they easy to troubleshoot.<br />
<br />
<u><i><b>Fun fact</b></i></u>: A single optical fiber can be used to such an extent that it can facilitate simultaneous <b>1,25,000 calls</b> via wavelength windows and loads of multiplexing. This is the reason why tariffs exist that reduce calls costs to only a few cents per minute.<br />
<br />
Following this, the most interesting lab was where we got to join two optical fibers by <a href="http://www.thefoa.org/tech/ref/termination/fusion.html">fusion spilicing</a>. The week ended with our first exchange visit where we got to enter all the rooms that stated "No Entry" or "Not Allowed" :-) including the MDF (Main Distribution Frame) Room, Switching and Power/Backup rooms. <br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEENR_3ZFbz52i5Cmq21eQELIPbDLhDoXHd5yaa8TqvR_2XWr833m3Vlssif4c3dzlOtvreAu6fwCuaWl48tVtQTfB1UIBs2aPvYdrkdeROnmedgCFfPIdUzYdSvMpeM3fDifeBb2a2Ac/s1600/IMAG0136.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEENR_3ZFbz52i5Cmq21eQELIPbDLhDoXHd5yaa8TqvR_2XWr833m3Vlssif4c3dzlOtvreAu6fwCuaWl48tVtQTfB1UIBs2aPvYdrkdeROnmedgCFfPIdUzYdSvMpeM3fDifeBb2a2Ac/s400/IMAG0136.jpg" width="236" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Side View of MDF room (Click to view Full size image)</td></tr>
</tbody></table> <br />
The third week seemed small to me, but it had great sessions, especially the GSM and CDMA parts as well as the visit to the Mobile Switching Center. I could not manage to get pictures of the inside of the MSC, but it was fascinating how it served millions of subscribers simultaneously.<br />
<br />
<u><i><b>Fun Fact</b></i></u>: GSM is the most widely used mobile communication standard, because of which it is termed as "Global Systems for Mobile Communications" <br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_UhPFHEjr3Ch9anwnZh5UnsBQizH7CDAEamY6WeFgN9xlerBiobJKsjRqh4-sqvbCYP_-LcdAwMCaZ2dD9PEFqrOmesfBIV2aHcP0bio_MS69f4EkHG23N1yFxsKfl0wcnCYqasSVXZg/s1600/IMAG0132.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_UhPFHEjr3Ch9anwnZh5UnsBQizH7CDAEamY6WeFgN9xlerBiobJKsjRqh4-sqvbCYP_-LcdAwMCaZ2dD9PEFqrOmesfBIV2aHcP0bio_MS69f4EkHG23N1yFxsKfl0wcnCYqasSVXZg/s320/IMAG0132.jpg" width="190" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">(Click to view full size image) </td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody>
<tr></tr>
<tr><td class="tr-caption" style="text-align: center;">Fig: A section of the MDF installed in an exchange. The mesh of wires terminating into vertical white boxes(called as modules) interconnect the subscriber's landline to the exchange's switching system</td></tr>
</tbody></table>The final week was the best of them all as it included the concept of Intelligent Networks (seriously, that was a wow!), how <a href="http://www.tekelec.com/ss7/members/ssp.asp">SSP's</a>, <a href="http://en.wikipedia.org/wiki/Service_Control_Point">SCP's</a> and <a href="http://www.telecomspace.com/ss7-in.html">SMP's</a> work together in a secure manner to provide amazing services throughout the country. The last visit was to the biggest exchange in the city. Except for WiMAX, every other technology was implemented, including the 16Mbps-100Mbps fiber lines that provided high end connectivity to subscribers (IIRC it was implemented by using a HUAWEI box). Further, the exchange had separate 2G (more in number) and 3G racks (comparatively less in number) which were mostly implemented by Ericsson. The CDMA division was implemented by ZTE's BTS's (Base Trans-Receive Station, what is referred to as a "mobile tower" by the general public) and a software named Netnumen provided all possible controls for both physical and radio configurations. Amongst all these, the MSC's HLR's and VLR's were held in their own server racks (MSC is a collective term consisting of all mobile related registers). HLR or the "Home Location Register" (is populated with cell phone numbers local to a resident area) and VLR or the "Visitor Location Register" (temporary register, which is populated by roaming cellphone numbers) is an integral part of every MSC. By registers i mean to imply databases with focus on regular backups.<br />
<br />
<u><i><b>Fun Fact</b></i></u>: BSNL's NIB (National Internet Backbone) consists of five Cisco 12416 routers interconnected in a mesh, each costing nearly 1 million dollars (~5 Crores INR)<br />
<br />
<br />
The meaning of internship is not limited to going to a company and performing a task for a specified period of time, rather it involves regular learning, hands on experience along with the huge amount of life lessons that u get in a very short period of time. Special thanks to Mr. T.D. Mishra for sticking by me and answering even the most stupid question i had. After the completion of my training, everytime i move around and see cellphone towers(technically called as BTS's) it reminds me of my days at BSNL.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/BSNL">BSNL</a>, <a href="http://technorati.com/tag/internship">internship</a>, <a href="http://technorati.com/tag/mobile">mobile</a>, <a href="http://technorati.com/tag/rttc">rttc</a>, <a href="http://technorati.com/tag/training">training</a>, <a href="http://technorati.com/tag/GSM">GSM</a>, <a href="http://technorati.com/tag/CDMA">CDMA</a>, <a href="http://technorati.com/tag/NIB">NIB</a>, <a href="http://technorati.com/tag/server">server</a>, <a href="http://technorati.com/tag/telecommunication">telecommunication</a> </div>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-85122397479444654182011-01-06T08:21:00.000-05:002011-01-06T12:01:14.114-05:00Tid-Bits of Routing<style type="text/css">
p { margin-bottom: 0.08in; }
</style> <br />
<div style="margin-bottom: 0in;">The most fascinating part about networks is Routing. As the term indicates Routing describes the path a data packet takes to reach its destination. The term seems simple enough, but I will go step by step to describe the complex bits and bytes of the process of routing. </div><div style="margin-bottom: 0in;">Every network device (for example a router, a computer, multilayer switches) contains a pre-configured routing table. On a host computer, this can be viewed by typing the “netstat –r” command or simply “route print” at the command line (in case of windows systems) and the “route” command for linux based systems.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj40P5c4nU8jkp1GHPuU67WvTWqdsuxTx-rH_-NQkLq9wi3oHHJjh6GD0Qesn2N5J_GgziAp9GaeTxa5XK0VuUpAnjFYtywgmTOxY2HuXOS5hTOi224TN0QbMpx1SmAKEhlC8A-afy-eWQ/s1600/routing+table.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj40P5c4nU8jkp1GHPuU67WvTWqdsuxTx-rH_-NQkLq9wi3oHHJjh6GD0Qesn2N5J_GgziAp9GaeTxa5XK0VuUpAnjFYtywgmTOxY2HuXOS5hTOi224TN0QbMpx1SmAKEhlC8A-afy-eWQ/s1600/routing+table.png" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><br />
</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">In general, an IPv6 routing table and an interface list (in a case of a computer) will accompany the IPv4 table when u view the routing table of a device that supports both protocols. The routing table is composed of 6 parts as follows:-</div><ol><li><div style="margin-bottom: 0in;"><b>Network Destination</b>: The IP address of the network of the device listed as the final destination for a packet.</div></li>
<li><div style="margin-bottom: 0in;"><b>Netmask</b>: Commonly termed as “Subnet Mask”. Separates the Network ID with the host ID.</div></li>
<li><div style="margin-bottom: 0in;"><b>Gateway</b>: The router through which the packet has to travel to reach to its destination.</div></li>
<li><div style="margin-bottom: 0in;"><b>Interface</b>: The IP address of the network adapter from which the packet originated (the local computer)</div></li>
<li><div style="margin-bottom: 0in;"><b>Metric</b>: A term which relates indirectly to the cost involved for the packet to reach to its destination if it takes the specified route. The lesser the metric, the better and faster the transfer of a packet.</div></li>
<li><div style="margin-bottom: 0in;"><b>Persistent Routes</b>: Manually added routes are termed as “Persistent” which stay even if the device reboots.</div></li>
</ol><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">Let’s take an example route from the above routing table. The 6<sup>th</sup> entry in the routing table is shown as follows:-</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">192.168.91.0 255.255.255.0 On-link 192.168.91.1 4501</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">The “On-link” in the gateway column specifies that the packet can be directly forwarded to the specified network destination without any routing (i.e. the destination is on the local subnet)</div><div style="margin-bottom: 0in;">It signifies that in order for a packet to travel from the interface with an IP address of 192.168.91.1 to the 192.168.91.0 network with a subnet mask of 255.255.255.0 it can to be directly forwarded to the network i.e. no routing required, with a cost of 4501.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">If a gateway was specified e.g. 192.168.1.1 then the packet had to travel through it to reach the mentioned network destination. Complex algorithms are employed to determine each metric. Another thing to note here is the network destination specified as 0.0.0.0. This denotes <u>all other</u> network destinations other than the ones listed in the routing table.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">By default, there are no persistent routes. But they can be added via command line.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">To add a route manually type at the command line:-</div><div style="margin-bottom: 0in;">route add “network destination” mask “netmask” “gateway”<br />
e.g. route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 </div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">To add a persistent route, type:</div><div style="margin-bottom: 0in;">route add “network destination” mask “netmask” “gateway” –p</div><div style="margin-bottom: 0in;">e.g. route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 -p<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO6XBFnbNjkxay7O1Xl3sDhFp5w3pdn2FFH_G6On5b7UFEboDrcvzJaYh5DmLFsNwECPSIn2eEN5ZGhTg6S9FGXi6R0dyjvDfg9eCVmdOSLx0a5neZQpy79-bFoX6HPrXcR_hQZVlco9k/s1600/proute.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO6XBFnbNjkxay7O1Xl3sDhFp5w3pdn2FFH_G6On5b7UFEboDrcvzJaYh5DmLFsNwECPSIn2eEN5ZGhTg6S9FGXi6R0dyjvDfg9eCVmdOSLx0a5neZQpy79-bFoX6HPrXcR_hQZVlco9k/s1600/proute.png" /></a></div><br />
</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">If no metric is specified, it can be automatically calculated by the device.</div><div style="margin-bottom: 0in;"><br />
To delete a route type:</div><div style="margin-bottom: 0in;">route delete “network destination”</div><div style="margin-bottom: 0in;">route delete 192.168.1.0<br />
<br />
</div><div style="margin-bottom: 0in;">Routing can be broadly classified into two categories: Static and Dynamic</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;"><b>Static Routing</b>: Network devices have to be configured and updated manually.</div><div style="margin-bottom: 0in;"><b>Dynamic Routing</b>: Network devices communicate with each other to share their routing information.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">Routing is governed by Routing Protocols which can also be divided into two categories: Distance Vector Routing and Link State Routing Protocol.</div><div style="margin-bottom: 0in;"><b><br />
</b></div><div style="margin-bottom: 0in;"><b>Distance Vector Routing Protocols</b>: Each router communicates all the networks it knows about to other routers to which it is directly attached. Communication takes place on a regular basis.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;"><b>Link State Routing Protocols</b>: Each router generates a network map. A router communicates information about the networks it is connected to through LSAs i.e. Link State Advertisements. But communication, unlike distance vector routing protocols, takes places only when a change is made to the network.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">Distance Vector Protocols include RIP(Routing Information Protocol), RIPv2 and BGP(Border Gateway Protocol).</div><div style="margin-bottom: 0in;">RIP and RIPv2 both support a maximum of 15 hops(1 hop= 1 jump from a router) and updates every 30 seconds. RIP uses broadcast communication whereas RIPv2 uses multicast communication for obtaining updates. Also, RIPv2 supports authentication whereas RIP does not.</div><div style="margin-bottom: 0in;"><br />
</div><div style="margin-bottom: 0in;">Link State Protocols include OSPF (Open Shortest Path First) and IS-IS (Intermediate System to Intermediate System) Protocols.</div><div style="margin-bottom: 0in;"><br />
OSPF is used in medium-large networks which gives preferences to certain paths based upon metrics. </div><div style="margin-bottom: 0in;">IS-IS is designed with the OSI model. Interestingly, IS-IS is another name for a router.</div><div style="margin-bottom: 0in;"><br />
<b>Hybrid Routing Protocol</b> includes Cisco’s EIGRP(Extended Interior Gateway Routing Protocol). It uses the Diffusing Update Algorithm (DUAL) whereby each router keep a copy of it’s neighbor’s routing table and it periodically checks the state of its neighbors by sending a packet.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/networks">Networks</a>, <a href="http://technorati.com/tag/Protocols">Protocols</a>, <a href="http://technorati.com/tag/Routing">Routing</a> </div><div style="margin-bottom: 0in;"><br />
</div>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-64164036363914392062010-07-20T02:02:00.000-04:002010-08-24T14:29:30.233-04:00Holidays and stuff...Yeah, summer time, vacation time. The second semester ended and it was a huge relief as with that, the first year of Engineering also came to an end. I had a BIG TO-DO list for the upcoming 2 months.<br />
<br />
After 2 semesters, my CGPA stood at 9.52 on a ten point scale. The semester contained much ups and downs at random intervals. Anyways, that didn't change my music listening. This time i was trying out indie-electro bands, like <a href="http://www.last.fm/music/Death+Cab+for+Cutie">Death Cab for Cutie</a>, <a href="http://www.last.fm/music/The+Postal+Service">The Postal Service</a> and <a href="http://www.last.fm/music/Owl+City">Owl City</a>. These bands had some amazing tracks like Marching bands of Manhattan, Soul Meets Body, Such Great Heights, Fireflies, Saltwater Room and many more.<br />
<br />
Other thing that i would like to mention here is about a clear-type font called Calibri. Calibri is of Sans-serif typeface now widely adopted by Microsoft as default font in their applications. My liking for calibri began while i was reading through blogs. It's currently my default font in Windows, IE, Firefox and other applications.<br />
<br />
Regarding gaming, i think i mentioned in some previous posts that my integrated video chip could not handle much, so i got some games for my Playstation 2. I got <a href="http://www.gamespot.com/ps2/driving/needforspeedundercover/index.html">NFS Undercover</a> (yes i know it's too late but i can't help it), <a href="http://www.gamespot.com/ps2/sports/internationaltennispro/index.html">Tennis</a> (A new version), and <a href="http://www.gamespot.com/ps2/driving/granturismo4/index.html">Gran Turismo 4</a> (Long awaited :)) The PS2 has been around for 10 years since it's release in 2000 and these were some of the last games to exist on this platform.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/technology">technology</a>, <a href="http://technorati.com/tag/holidays">holidays</a>, <a href="http://technorati.com/tag/gaming">gaming</a>, <a href="http://technorati.com/tag/fonts">fonts</a>, <a href="http://technorati.com/tag/racing">racing</a>, <a href="http://technorati.com/tag/Playstation+2">Playstation 2</a>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-52769117536433388712009-12-25T08:31:00.000-05:002010-08-24T14:35:46.088-04:00Change Log of the past 6 monthsIt was after 4.5 months that i returned back home from college. It was a hard time as one has to manage his studies taking care of his routine, food, clothes, and what all is required to leave a healthy life @ any college. The first semester is an important part of the 4 year BE. After the completion of the first sem, i currently have a healthy GPA of 9.38 on a ten point scale.<br />
<br />
December is vacation time for most of the college students. I had pre-planned my vacations in all respects. Most of the part dealt with gaming and other computing activities that i could not indulge into while i was at college. To start with, i completed <a href="http://en.wikipedia.org/wiki/Far_Cry">Farcry</a>, probably rated as one of the best FPS of all time. Graphics rendering was not good on my notebook, but i should appreciate what the integrated intel chipset could do with 1759MB of shared memory. Today, many people have completed even <a href="http://en.wikipedia.org/wiki/Far_Cry_2">Farcry 2</a> , but that can hardly run on my machine. The second game i started with was <a href="http://en.wikipedia.org/wiki/Machinarium">Machinarium</a>, a super puzzle game. The biggest thing about this game is that it relies entirely on the flash engine. And <a href="http://www.amanitadesign.com/">Amanita Designs</a> have put their heart and soul into creating this amazing piece of adventure.<br />
<br />
Regarding computing, i had several things in mind. I wanted to learn Visual C# completely. The confusing part was with the pre-knowledge of C++, Visual C++ was a good second option. It carried great weightage as the new code i had thought of implementing in Firefox was based on Visual C++. I was unfamiliar with <a href="https://developer.mozilla.org/en/Mozilla_Source_Code_%28Mercurial%29">Mercurial</a> (and the huge list of hg commands) which were a sort of prerequisite to begin coding for mozilla. During this year, i had succeeded in creating some windows form applications of general use in Visual C#. I finally went with C# and currently in the process of learning. The second thing regarding computing was getting back my data from my old desktop to my notebook. I had two options, direct LAN or WAN. I tried both ways, first LAN, i got a nearly constant speed of 10MBPS. Switching to WAN via my Siemens 802.11 a/b/g Router gave me a maximum of 54Mbps, much slower than what a single LAN wire would easily provide. At the end of nearly 4 hrs, i ended up transferring 150GB of data :)<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWE6rERgYKa5btBIHZZQ5ZDe1mOyv2qQLolbPDEEQN5BLZX5Ha5I-G5Pxpjjk0Lo9rQJeLU0UWYgu8OciwLKTJaxsWzNk7d3PPSKm6Omd0Wwg-sqV8UxaP2OmLYu91yyIb2LDCmkLev0E/s1600-h/hddcpy.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5419173591786053826" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWE6rERgYKa5btBIHZZQ5ZDe1mOyv2qQLolbPDEEQN5BLZX5Ha5I-G5Pxpjjk0Lo9rQJeLU0UWYgu8OciwLKTJaxsWzNk7d3PPSKm6Omd0Wwg-sqV8UxaP2OmLYu91yyIb2LDCmkLev0E/s400/hddcpy.jpg" style="height: 250px; width: 400px;" /></a><br />
<br />
<br />
Christmas time one of the most awesome period of the year (Even though i hate cold weather :P). This year, i got for myself a 1600 CPI iball laser mouse and some comic books, including Superman Adventures, Batman, Justice League and Spiderman. My old 800 CPI mouse had a defective scroll wheel. Things at home had changed somewhat. I had shifted to a new temporary home far away from my old place, something that i hardly liked. So meeting old friends was an integral part of this vacation. These holidays are coming to an end in a week's time from now and i'm already waiting for the next semester to be over as soon as possible.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/change+log">change log</a>, <a href="http://technorati.com/tag/christmas">christmas</a>, <a href="http://technorati.com/tag/computing">computing</a>, <a href="http://technorati.com/tag/vacation">vacation</a>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-40167782943344711922009-06-27T03:12:00.000-04:002010-08-24T14:47:17.841-04:00Adjusting to Mandriva LinuxI did a clean install of Mandriva Linux (i586) powerpack 2008 yesterday on a separate 25GB partition (ext3 formatted), thereby dual booting with Windows Vista Home Premium.<br />
<br />
One of the early problems i faced was regarding writing data on NTFS formatted drives (i had 3 of them!). Thankfully Linux programmers have written out a library known as ntfs-3g to enable write support on the Linux kernel. Fetch the ntfs-3g through "Mandriva Linux Control Center", unmount the NTFS drive through disk drake, switch to "Expert mode", change the type of the drive to "NTFS-3G", uncheck ro (read-only) from options, and re-mount the drive for the changes to take place.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAvTIMXF6ks1lSYGlVgYrXl-zfsbeOPp66vIAR7hoIVUNXG8keYO9Um7nvgvDnbtg8iEvWFXiIn6RcxaUsDtVyax7cy7-eCn5YVkbl8-S8rENNTLN5SxJKPo9diQ4vZFNbJceXQf-B0qI/s1600-h/snapshot4.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5351904876035968482" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAvTIMXF6ks1lSYGlVgYrXl-zfsbeOPp66vIAR7hoIVUNXG8keYO9Um7nvgvDnbtg8iEvWFXiIn6RcxaUsDtVyax7cy7-eCn5YVkbl8-S8rENNTLN5SxJKPo9diQ4vZFNbJceXQf-B0qI/s320/snapshot4.png" style="cursor: pointer; height: 240px; width: 320px;" /></a><br />
<br />
<br />
<br />
The same thing can be done through "Configuration Editor".<br />
<br />
<br />
Second thing was getting my windows applications to run so that i dont feel like i'm in a no-man's land :)<br />
<br />
The default "Software Management" tool was useful in itself but it is not a complete solution. I fetched software info's as well as their main updates from Online Repositories through Konsole. A useful website for this job is :- http://easyurpmi.zarb.org<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh32gAos-HOMCRQQ-LvIBGAtVoRiXwAi4758bMvX9UGW6XqoUvuw2fH0ZLlOca-cXnitVt-91rPibxW1Ja9xFS6-odq4utIecfwWe0hf2l0IPxRiXPpz31NTBKcbG9PyaqhJ7g0x4zvwqs/s1600-h/snapshot2.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5351906990846367970" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh32gAos-HOMCRQQ-LvIBGAtVoRiXwAi4758bMvX9UGW6XqoUvuw2fH0ZLlOca-cXnitVt-91rPibxW1Ja9xFS6-odq4utIecfwWe0hf2l0IPxRiXPpz31NTBKcbG9PyaqhJ7g0x4zvwqs/s320/snapshot2.png" style="cursor: pointer; height: 240px; width: 320px;" /></a><br />
<br />
<br />
<br />
<br />
The links to the repositories (which are infact Konsole commands) are provided by selecting the appropriate linux, its version as well as its architecture.<br />
<br />
To integrate those repositories into the "Software Management", the Konsole commands have to be executed as root.<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCCBJv-zWwvDmdNR8nCHcE8us422qpdqqqPSSRXKgZ2fsFV51EuuDos5zmNNEveWfFdDvjZDHQacc4GM2vmoopXyMewFW_e38KqT10tdN1-HpyNE94VqCWze_DADIysoi5rSTF9njpY-M/s1600-h/snapshot3.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5351908553720668098" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCCBJv-zWwvDmdNR8nCHcE8us422qpdqqqPSSRXKgZ2fsFV51EuuDos5zmNNEveWfFdDvjZDHQacc4GM2vmoopXyMewFW_e38KqT10tdN1-HpyNE94VqCWze_DADIysoi5rSTF9njpY-M/s320/snapshot3.png" style="cursor: pointer; height: 240px; width: 320px;" /></a><br />
<br />
<br />
Next, i updated my system via "Mandriva Control Center". I had around a 1100 updates (now that figure seems a little big for my 256Kbps connection :) ). After the updation process is complete, switch back to "Software management". Applications are now updated and new ones are added.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7iPDsMvCUVNVrI-9idQKcpKnK6OOMOpU3DFcMevl437Va_o84GcnNXl0SwEAwcK-qOJWXgG9rcn8hyphenhyphenFn91OCgX8WO9BVsjT8iL2GBosvntUHf1kKk7CnBRBWLgx1I01JbifnMSzse_U4/s1600-h/snapshot5.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5351919108135000418" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7iPDsMvCUVNVrI-9idQKcpKnK6OOMOpU3DFcMevl437Va_o84GcnNXl0SwEAwcK-qOJWXgG9rcn8hyphenhyphenFn91OCgX8WO9BVsjT8iL2GBosvntUHf1kKk7CnBRBWLgx1I01JbifnMSzse_U4/s320/snapshot5.png" style="cursor: pointer; height: 240px; width: 320px;" /></a><br />
<br />
After doing this much, i felt somewhere near to being @ my home.<br />
<br />
<br />
The one thing that surprised me in linux was its Konsole being case sensitive, as it is seen here while i was trying to install Nvidia Drivers for my 6200TC:-<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4ZknUjgiVJHcaU9NjC6zrdcx1YPpV3_nDJqSf1qF2n_-NUBtdBnwWU51YXJPN_CsWv3kJCiINSH1k8XeS3ec8EatzUyS3L9afu0eiMr4uhq1IEvXECmzySaRark7pGxMP6x_tUdziInY/s1600-h/snapshot6.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5351976467086538690" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4ZknUjgiVJHcaU9NjC6zrdcx1YPpV3_nDJqSf1qF2n_-NUBtdBnwWU51YXJPN_CsWv3kJCiINSH1k8XeS3ec8EatzUyS3L9afu0eiMr4uhq1IEvXECmzySaRark7pGxMP6x_tUdziInY/s320/snapshot6.png" style="cursor: pointer; height: 202px; width: 320px;" /></a><br />
<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/mandriva">mandriva</a>, <a href="http://technorati.com/tag/linux">linux</a>, <a href="http://technorati.com/tag/repository">repository</a>, <a href="http://technorati.com/tag/ntfs">ntfs</a>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-9661445995244359572009-04-04T18:07:00.001-04:002010-08-24T14:49:25.908-04:00My First Windows Application!It's a Web Searcher!<br />
<br />
U need to have .NET framework 3.5 installed along with windows installer 3.1 in order to run the application.....<br />
<br />
Here's the <a href="http://www.mediafire.com/?s2wmijgr1y8">LINK</a> for the software.<br />
<br />
Technorati Tags: <a href="http://technorati.com/tag/searcher">Web Searcher</a>, <a href="http://technorati.com/tag/mediafire">mediafire</a>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0tag:blogger.com,1999:blog-6412421647806324225.post-67888251327993226342009-04-04T18:05:00.000-04:002009-12-24T11:44:41.286-05:00International Students Software Competition ( ISSC 2007) At Bangkok, ThailandI with my 2 friends( team of three) represented our nation at Bangkok in International Students Software Competition, which consisted of programming ( problem solving). We stood first at the All India Level after qualifying the state level. We programmed on Java, rest teams like Sri lanka used C++, Thailand folks themselves used Java, Taiwan team worked on C++ as well, etc. There were 2 rounds on two separate days, trials and finals, we stood fourth overall. Its a great pride to represent your motherland, that was the most amazing thing that we experienced. Rest details can also be found at <a href="http://www.jaipuria.com/">this site</a> in the achievements of last 6 years list. Some Pics of Bangkok of our trips taken by my taiwan friend, Danny, can be seen <a href="http://www.flickr.com/photos/20131503@N07/sets/72157603497031253/">here</a>Programmergamerhttp://www.blogger.com/profile/10837024763607943216noreply@blogger.com0